X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=io.lisp;h=c444e0f903b92531170d06ecf93990af090ea0df;hp=008c46ed325f3eb6485be9f472989da30fe1daa9;hb=a377884abb0f3f36a67d335214bf2936b7c32070;hpb=50db84ba1704d03eda2f084d706cfc4b220447ab diff --git a/io.lisp b/io.lisp index 008c46e..c444e0f 100644 --- a/io.lisp +++ b/io.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: io.lisp,v 1.2 2003/05/09 05:12:15 kevin Exp $ +;;;; $Id: io.lisp,v 1.10 2003/06/20 08:50:38 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" @@ -55,9 +55,27 @@ :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))) + (dotimes (i n) + (declare (fixnum i)) + (write-char char stream))) + +(defun print-n-strings (str n stream) + (declare (fixnum n) (optimize (speed 3) (safety 0) (space 0))) + (dotimes (i n) + (declare (fixnum i)) + (write-string str stream))) + (defun indent-spaces (n &optional (stream *standard-output*)) "Indent n*2 spaces to output stream" - (write-string (make-string (+ n n) #\space) stream)) + (print-n-chars #\space (+ n n) stream)) + + +(defun indent-html-spaces (n &optional (stream *standard-output*)) + "Indent n*2 html spaces to output stream" + (print-n-strings " " (+ n n) stream)) + (defun print-list (l &optional (output *standard-output*)) "Print a list to a stream" @@ -145,3 +163,9 @@ (setf pos 0)))) (buf-flush buf out))) +(declaim (inline write-fixnum)) +(defun write-fixnum (n s) + #+allegro (excl::print-fixnum s 10 n) + #-allegro (write-string (write-to-string n) s)) + +