summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/ice-9/ports.scm11
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))))))))