r5066: *** empty log message ***
[kmrcl.git] / io.lisp
diff --git a/io.lisp b/io.lisp
index 753cc44e9b988c555ca0512bb55b8440a02842f3..69bcb649d84081078ce46cc0c1870a0c8ef8edc4 100644 (file)
--- 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.7 2003/06/06 21:59:29 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -16,7 +16,7 @@
 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
-(in-package :kmrcl)
+(in-package #:kmrcl)
 
 (defun print-file-contents (file &optional (strm *standard-output*))
   "Opens a reads a file. Returns the contents as a single string"
                         :if-exists :supersede)
       (stream-subst old new in out))))
 
-
+(defun print-n-chars (char n stream)
+  (declare (fixnum n)
+          (optimize (speed 3) (safety 0) (space 0)))
+  (do ((i 0 (1+ i)))
+      ((= i n) char)
+    (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