X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=genutils.lisp;fp=genutils.lisp;h=be156cc325bcfc012e875eb64cc92a50c276b57d;hb=93b0a41567a808a95f8fc07bd7c76cedc5fbfa40;hp=6125aba7262e95696eac18ee766088f75f42b406;hpb=7249fcd884a04be929dc6895c91e82be747c9533;p=kmrcl.git diff --git a/genutils.lisp b/genutils.lisp index 6125aba..be156cc 100644 --- a/genutils.lisp +++ b/genutils.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: genutils.lisp,v 1.8 2002/11/07 04:07:02 kevin Exp $ +;;;; $Id: genutils.lisp,v 1.9 2002/11/07 22:08:41 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -218,15 +218,17 @@ (defmacro with-each-stream-line ((var stream) &body body) (let ((eof (gensym)) + (eof-value (gensym)) (strm (gensym))) - `(let ((,strm ,stream)) - (do ((,var (read-line stream nil ,eof) (read-line stream nil ,eof))) - (eq ,var ,eof) + `(let ((,strm ,stream) + (,eof ',eof-value)) + (do ((,var (read-line ,strm nil ,eof) (read-line ,strm nil ,eof))) + ((eql ,var ,eof)) ,@body)))) (defmacro with-each-file-line ((var file) &body body) (let ((stream (gensym))) - `(with-open-file (,stream file :direction :input) + `(with-open-file (,stream ,file :direction :input) (with-each-stream-line (,var ,stream) ,@body))))