Updated order of read-bytevector! arguments.

This commit is contained in:
Alex Shinn 2012-11-23 17:28:07 +09:00
parent f63d55aadb
commit 0c7a01d13a
2 changed files with 22 additions and 17 deletions

View file

@ -102,20 +102,25 @@
(bytevector-u8-set! res i x) (bytevector-u8-set! res i x)
(lp (+ i 1)))))))))) (lp (+ i 1))))))))))
(define (read-bytevector! vec start end . o) (define (read-bytevector! vec . o)
(if (>= start end) (let* ((in (if (pair? o) (car o) (current-input-port)))
0 (o (if (pair? o) (cdr o) o))
(let* ((res (read-bytevector (start (if (pair? o) (car o) 0))
(- end start) (end (if (and (pair? o) (pair? (cdr o)))
(if (pair? o) (car o) (current-input-port)))) (cadr o)
(len (bytevector-length res))) (bytevector-length vec))))
(cond (if (>= start end)
((zero? len) 0
(read-char (open-input-string ""))) (let* ((res (read-bytevector (- end start) in))
(else (len (bytevector-length res)))
(do ((i 0 (+ i 1))) (cond
((>= i len) len) ((zero? len)
(bytevector-u8-set! vec (+ i start) (bytevector-u8-ref res i)))))))) (read-char (open-input-string "")))
(else
(do ((i 0 (+ i 1)))
((>= i len) len)
(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)))

View file

@ -1526,17 +1526,17 @@
(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 0 5 (open-input-bytevector #u8(6 7 8 9 10))) (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 5)
bv)) bv))
(test #u8(6 7 8 4 5) (test #u8(6 7 8 4 5)
(let ((bv (bytevector 1 2 3 4 5))) (let ((bv (bytevector 1 2 3 4 5)))
(read-bytevector! bv 0 3 (open-input-bytevector #u8(6 7 8 9 10))) (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 3)
bv)) bv))
(test #u8(1 2 3 6 5) (test #u8(1 2 3 6 5)
(let ((bv (bytevector 1 2 3 4 5))) (let ((bv (bytevector 1 2 3 4 5)))
(read-bytevector! bv 3 4 (open-input-bytevector #u8(6 7 8 9 10))) (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 3 4)
bv)) bv))
(test #u8(1 2 3) (test #u8(1 2 3)