* lineio.scm (make-line-buffering-input-port): Properly test for
authorJim Blandy <jimb@red-bean.com>
Wed, 8 Jan 1997 01:27:12 +0000 (01:27 +0000)
committerJim Blandy <jimb@red-bean.com>
Wed, 8 Jan 1997 01:27:12 +0000 (01:27 +0000)
the case of an empty buffer list.  The old code assumed that '()
was false.

ice-9/lineio.scm

index ffde886..28e4a65 100644 (file)
 
         (read-string (lambda ()
                       (cond
-                       (buffers        (let ((answer (car buffers)))
-                                         (set! buffers (cdr buffers))
-                                         answer))
-
-                       ((ungetc-char-ready? self)      (read-line self 'include-newline))
-
-                       (else                           (read-line underlying-port 'include-newline)))))
-                          
-        )
+                       ((not (null? buffers))
+                        (let ((answer (car buffers)))
+                          (set! buffers (cdr buffers))
+                          answer))
+                       ((ungetc-char-ready? self)
+                        (read-line self 'include-newline))
+                       (else
+                        (read-line underlying-port 'include-newline))))))
 
     (set-object-property! self 'unread-string unread-string)
     (set-object-property! self 'read-string read-string)