From 1090db5e2bcf6a1a2635018d3c739bbf71753e71 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 22 Jun 2014 22:39:57 +0900 Subject: [PATCH] Adding bytevector-pad-left. --- lib/chibi/bytevector.scm | 6 ++++++ lib/chibi/bytevector.sld | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) 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"))