mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 13:49:17 +02:00
Fixing read-bytevector! on no input (adapted patch from Lorenzo).
This commit is contained in:
parent
cdc9465b1b
commit
97ee1b7b65
2 changed files with 15 additions and 11 deletions
|
@ -111,16 +111,16 @@
|
||||||
(bytevector-length vec))))
|
(bytevector-length vec))))
|
||||||
(if (>= start end)
|
(if (>= start end)
|
||||||
0
|
0
|
||||||
(let* ((res (read-bytevector (- end start) in))
|
(let ((res (read-bytevector (- end start) in)))
|
||||||
(len (bytevector-length res)))
|
|
||||||
(cond
|
(cond
|
||||||
((zero? len)
|
((eof-object? res)
|
||||||
(read-char (open-input-string "")))
|
res)
|
||||||
(else
|
(else
|
||||||
|
(let ((len (bytevector-length res)))
|
||||||
(do ((i 0 (+ i 1)))
|
(do ((i 0 (+ i 1)))
|
||||||
((>= i len) len)
|
((>= i len) len)
|
||||||
(bytevector-u8-set! vec (+ i start) (bytevector-u8-ref res i))
|
(bytevector-u8-set! vec (+ i start) (bytevector-u8-ref res i))
|
||||||
)))))))
|
))))))))
|
||||||
|
|
||||||
(define (write-bytevector vec . o)
|
(define (write-bytevector vec . o)
|
||||||
(let* ((out (if (pair? o) (car o) (current-output-port)))
|
(let* ((out (if (pair? o) (car o) (current-output-port)))
|
||||||
|
|
|
@ -1550,6 +1550,10 @@
|
||||||
(test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3))))
|
(test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3))))
|
||||||
(test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3 4))))
|
(test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3 4))))
|
||||||
|
|
||||||
|
(test #t
|
||||||
|
(let ((bv (bytevector 1 2 3 4 5)))
|
||||||
|
(eof-object? (read-bytevector! bv (open-input-bytevector #u8())))))
|
||||||
|
|
||||||
(test #u8(6 7 8 9 10)
|
(test #u8(6 7 8 9 10)
|
||||||
(let ((bv (bytevector 1 2 3 4 5)))
|
(let ((bv (bytevector 1 2 3 4 5)))
|
||||||
(read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 5)
|
(read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 5)
|
||||||
|
|
Loading…
Add table
Reference in a new issue