From 123c20d60d4c953785c39e0979042a5cc3c9382c Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 28 Dec 2019 19:37:15 -0500 Subject: [PATCH] WIP: (read-bytevector!) --- scheme/base.sld | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scheme/base.sld b/scheme/base.sld index 1fb4e6c6..7d1abc9d 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -191,7 +191,7 @@ ; ; ; following byte vector functions are not implemented yet: read-bytevector -; read-bytevector! + read-bytevector! write-bytevector ; ; : No unicode support at this time @@ -733,6 +733,16 @@ (loop (+ n 1))) (else bv)))))) (loop 0))) + ;; TODO: need to finish and debug the following function: + (define (read-bytevector! vec . opts) + (letrec ((len (bytevector-length vec)) + (port (if (> (length opts) 0) (car opts) (current-output-port))) + (start (if (> (length opts) 1) (cadr opts) 0)) + (end (if (> (length opts) 2) (caddr opts) len)) + (bv (read-bytevector (- end start) port)) + ) + (bytevector-copy! vec start bv) + (- end start))) ;; TODO: return number of bytes read (define (write-bytevector vec . opts) (letrec ((len (bytevector-length vec)) (port (if (> (length opts) 0) (car opts) (current-output-port)))