X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=io.lisp;h=2dcf7959b8574add12e9f6c4f96c48bff63ed12d;hb=0b55b495d74fc4fe1eea77acc4758ed6241aa3c8;hp=753cc44e9b988c555ca0512bb55b8440a02842f3;hpb=4de7f25a69c218303f170314ac26217770a531ed;p=kmrcl.git diff --git a/io.lisp b/io.lisp index 753cc44..2dcf795 100644 --- a/io.lisp +++ b/io.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: io.lisp,v 1.1 2003/04/28 23:51:59 kevin Exp $ +;;;; $Id: io.lisp,v 1.6 2003/05/09 09:35:04 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -55,26 +55,23 @@ :if-exists :supersede) (stream-subst old new in out)))) - +(defmacro print-n-chars (char n stream) + (let ((i (gensym))) + `(dotimes (,i ,n) + (declare (fixnum ,i)) + (write-char ,char ,stream)))) + (defun indent-spaces (n &optional (stream *standard-output*)) "Indent n*2 spaces to output stream" - (when (numberp n) - (let ((fmt (format nil "~~~DT" (+ n n)))) - (format stream fmt)))) + (print-n-chars #\space (+ n n) stream)) (defun print-list (l &optional (output *standard-output*)) "Print a list to a stream" - (if (consp l) - (progn - (mapcar (lambda (x) (princ x output) (princ #\newline output)) l) - t) - nil)) + (format output "~{~A~%~}" l)) (defun print-rows (rows &optional (ostrm *standard-output*)) "Print a list of list rows to a stream" - (dolist (r rows) - (mapcar (lambda (a) (princ a ostrm) (princ #\space ostrm)) r) - (terpri ostrm))) + (dolist (r rows) (format ostrm "~{~A~^ ~}~%" r))) ;; Buffered stream substitute