diff --git a/collects/r6rs/private/ports.rkt b/collects/r6rs/private/ports.rkt index 1afde1a9d9..ab302937f4 100644 --- a/collects/r6rs/private/ports.rkt +++ b/collects/r6rs/private/ports.rkt @@ -643,7 +643,10 @@ (raise-type-error 'get-bytevector-all "binary port" p)) (let ([p2 (open-output-bytes)]) (copy-port p p2) - (get-output-bytes p2 #t))) + (let ([s (get-output-bytes p2 #t)]) + (if (zero? (bytes-length s)) + eof + s)))) ;; ---------------------------------------- diff --git a/collects/tests/r6rs/io/ports.sls b/collects/tests/r6rs/io/ports.sls index 643ea6fd90..c2b1f2f691 100644 --- a/collects/tests/r6rs/io/ports.sls +++ b/collects/tests/r6rs/io/ports.sls @@ -382,6 +382,10 @@ (test-transcoders bytevector->string-via-file string->bytevector-via-file)) + (let ((port (open-bytevector-input-port #vu8()))) + (test (eof-object? (get-bytevector-all port)) #t) + (test (eof-object? (get-bytevector-n port 10)) #t)) + (let ([test-i+o (lambda (buf) (let ([p (open-file-input/output-port "io-tmp1"