r4824: Auto commit for Debian build
[kmrcl.git] / buff-input.lisp
index f0802bc0bff2b141479a24a27668c0c7ab7fbf57..36ff2276527c3faa6ec0616937e76f3b1f7ff8d2 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: buff-input.lisp,v 1.5 2003/05/05 19:54:14 kevin Exp $
+;;;; $Id: buff-input.lisp,v 1.8 2003/05/06 01:50:04 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
       (setf (aref bufs i) (make-array max-field-len :element-type 'character :fill-pointer 0 :adjustable nil)))
     bufs))
 
-(defun read-buffered-fields (fields strm &optional (field-delim +field-delim+))
+(defun read-buffered-fields (fields strm &optional (field-delim +field-delim+)
+                            (eof 'eof))
   "Read a line from a stream into a field buffers"
   (declare (type base-char field-delim)
           (type vector fields))
   (setf (fill-pointer fields) 0)
   (do ((ifield 0 (1+ ifield))
        (linedone nil)
-       (eof nil))
-      (linedone (if eof 'eof fields))
+       (is-eof nil))
+      (linedone (if is-eof eof fields))
     (declare (type fixnum ifield)
-            (type boolean linedone eof))
+            (type boolean linedone is-eof))
     (let ((field (aref fields ifield)))
       (declare (type base-string field))
       (do ((ipos 0)
@@ -75,7 +76,7 @@
          (setf (fill-pointer fields) ifield)
          (setq fielddone t)
          (setq linedone t)
-         (setq eof t))
+         (setq is-eof t))
         (t
          (setf (char field ipos) rc)
          (incf ipos)))))))
     bufstruct))
 
 
-(defun read-buffered-fields2 (fields strm &optional (field-delim +field-delim+))
+(defun read-buffered-fields2 (fields strm &optional (field-delim +field-delim+)
+                             (eof 'eof))
   "Read a line from a stream into a field buffers"
   (declare (character field-delim))
   (setf (field-buffers-nfields fields) 0)
   (do ((ifield 0 (1+ ifield))
        (linedone nil)
-       (eof nil))
-      (linedone (if eof 'eof fields))
+       (is-eof nil))
+      (linedone (if is-eof eof fields))
     (declare (fixnum ifield)
-            (t linedone eof))
+            (t linedone is-eof))
     (let ((field (aref (field-buffers-buffers fields) ifield)))
       (declare (simple-string field))
       (do ((ipos 0)
          (setf (field-buffers-nfields fields) ifield)
          (setq fielddone t)
          (setq linedone t)
-         (setq eof t))
+         (setq is-eof t))
         (t
          (setf (char field ipos) rc)
          (incf ipos)))))))
 (let ((linebuffer (make-array +max-line+
                              :element-type 'character
                              :fill-pointer 0)))
-  (defun read-buffered-line (strm)
+  (defun read-buffered-line (strm eof)
     "Read a line from astream into a vector buffer"
+    (declare (optimize (speed 3) (space 0) (safety 0)))
     (let ((pos 0)
          (done nil))
-      (declare (fixnum pos) (t done))
+      (declare (fixnum pos) (boolean done))
       (setf (fill-pointer linebuffer) 0)
       (do ((c (read-char strm nil +eof-char+)
              (read-char strm nil +eof-char+)))
          (done (progn
                  (unless (eql c +eof-char+) (unread-char c strm))
-                 (if (eql c +eof-char+) 'eof linebuffer)))
+                 (if (eql c +eof-char+) eof linebuffer)))
        (declare (character c))
        (cond
        ((char= c #\Newline)