diff --git a/lib/chibi/bytevector.scm b/lib/chibi/bytevector.scm index 4b6041a1..e2cd8e73 100644 --- a/lib/chibi/bytevector.scm +++ b/lib/chibi/bytevector.scm @@ -49,6 +49,12 @@ (+ (arithmetic-shift n 8) (bytevector-u8-ref bv i))))))) +(define (bytevector-pad-left bv len) + (let ((diff (- len (bytevector-length bv)))) + (if (positive? diff) + (bytevector-append bv (make-bytevector diff 0)) + bv))) + ;;> \section{Hex string conversion} ;;> Big-endian conversion, guaranteed padded to even length. diff --git a/lib/chibi/bytevector.sld b/lib/chibi/bytevector.sld index 42b83a86..1923cc02 100644 --- a/lib/chibi/bytevector.sld +++ b/lib/chibi/bytevector.sld @@ -3,8 +3,9 @@ (export bytevector-u16-ref-le bytevector-u16-ref-be bytevector-u32-ref-le bytevector-u32-ref-be + bytevector-pad-left integer->bytevector bytevector->integer integer->hex-string hex-string->integer bytevector->hex-string hex-string->bytevector) - (import (chibi) (srfi 33)) + (import (scheme base) (srfi 33)) (include "bytevector.scm"))