diff options
-rw-r--r-- | module/ice-9/ports.scm | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/module/ice-9/ports.scm b/module/ice-9/ports.scm index 2bc12c5c3..db1c6f7fe 100644 --- a/module/ice-9/ports.scm +++ b/module/ice-9/ports.scm @@ -241,11 +241,12 @@ (cur (port-buffer-cur buf))) (if (< cur (port-buffer-end buf)) (bytevector-u8-ref (port-buffer-bytevector buf) cur) - (let* ((buf (fill-input port)) - (cur (port-buffer-cur buf))) - (if (< cur (port-buffer-end buf)) - (bytevector-u8-ref (port-buffer-bytevector buf) cur) - the-eof-object))))) + (call-with-values (lambda () (fill-input port)) + (lambda (buf buffered) + (if (zero? buffered) + the-eof-object + (bytevector-u8-ref (port-buffer-bytevector buf) + (port-buffer-cur buf)))))))) |