X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=io.lisp;h=db94854156e6dbd0bae9052a5e14746bb9857f7b;hp=d4c50ef6b28a5e93c960558ffc18fbbcf3b4fc55;hb=5f3fba52fd7c9984a7f797c4720ec93799d6d786;hpb=6173eb9ecdf840a556a60092c2f458860709cfd1 diff --git a/io.lisp b/io.lisp index d4c50ef..db94854 100644 --- a/io.lisp +++ b/io.lisp @@ -29,26 +29,33 @@ (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)