Correct read-bytevector logic for small reads

This commit is contained in:
Vasilij Schneidermann 2024-03-18 02:06:27 +01:00
parent d0e6dc7556
commit 1b1e8b311b

View file

@ -135,9 +135,11 @@
(if (zero? n) (if (zero? n)
#u8() #u8()
(let ((in (if (pair? o) (car o) (current-input-port))) (let ((in (if (pair? o) (car o) (current-input-port)))
(res (make-bytevector n))) (vec (make-bytevector n))
(read-bytevector! res in) (res (read-bytevector! vec in)))
res))) (cond ((eof-object? res) res)
((< res n) (subbytes vec 0 i))
(else res)))))
(define (read-bytevector! vec . o) (define (read-bytevector! vec . o)
(let* ((in (if (pair? o) (car o) (current-input-port))) (let* ((in (if (pair? o) (car o) (current-input-port)))