r9058: disable attrib-class
[kmrcl.git] / io.lisp
diff --git a/io.lisp b/io.lisp
index 292af3c68382cc23da07f6603a1d89ee13a84c72..6df15953c7b533c32a320a612c4b6481137a0a25 100644 (file)
--- a/io.lisp
+++ b/io.lisp
 (defun print-file-contents (file &optional (strm *standard-output*))
   "Opens a reads a file. Returns the contents as a single string"
   (when (probe-file file)
-    (with-open-file (in file :direction :input)
-      (let ((eof (gensym)))                
-       (do ((line (read-line in nil eof) 
-                  (read-line in nil eof)))
-           ((eq line eof))
-         (format strm "~A~%" line))))))
-
+    (let ((eof (cons 'eof nil)))
+      (with-open-file (in file :direction :input)
+        (do ((line (read-line in nil eof) 
+                   (read-line in nil eof)))
+            ((eq line eof))
+          (write-string line strm)
+          (write-char #\newline strm))))))
+
+(defun read-stream-to-string (in)
+  (with-output-to-string (out)
+    (let ((eof (gensym)))                  
+      (do ((line (read-line in nil eof) 
+                (read-line in nil eof)))
+         ((eq line eof))
+       (format out "~A~%" line)))))
+       
 (defun read-file-to-string (file)
   "Opens a reads a file. Returns the contents as a single string"
   (with-output-to-string (out)
     (with-open-file (in file :direction :input)
-      (let ((eof (gensym)))                
-       (do ((line (read-line in nil eof) 
-                  (read-line in nil eof)))
-           ((eq line eof))
-         (format out "~A~%" line))))))
-
+      (read-stream-to-string in))))
+
+(defun read-stream-to-strings (in)
+  (let ((lines '())
+       (eof (gensym)))             
+    (do ((line (read-line in nil eof) 
+              (read-line in nil eof)))
+       ((eq line eof))
+      (push line lines)))
+  (nreverse lines))
+    
 (defun read-file-to-strings (file)
   "Opens a reads a file. Returns the contents as a list of strings"
-  (let ((lines '()))
-    (with-open-file (in file :direction :input)
-      (let ((eof (gensym)))                
-       (do ((line (read-line in nil eof) 
-                  (read-line in nil eof)))
-           ((eq line eof))
-         (push line lines)))
-      (nreverse lines))))
+  (with-open-file (in file :direction :input)
+    (read-stream-to-strings in)))
 
 (defun file-subst (old new file1 file2)
   (with-open-file (in file1 :direction :input)