diff options
Diffstat (limited to 'ice-9/lineio.scm')
-rw-r--r-- | ice-9/lineio.scm | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/ice-9/lineio.scm b/ice-9/lineio.scm index ffde88608..28e4a6515 100644 --- a/ice-9/lineio.scm +++ b/ice-9/lineio.scm @@ -95,15 +95,14 @@ (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) |