From: Ludovic Courtès Date: Sun, 21 Jun 2009 14:10:02 +0000 (+0200) Subject: bytevectors: Add support for `equal?'. X-Git-Url: https://repo.or.cz/w/guile-r6rs-libs.git/commitdiff_plain/6e12a88a1ead182632e7d7d69cd9e54b0e65f8c0 bytevectors: Add support for `equal?'. Patch from Guile `master' by me. --- diff --git a/src/bytevector.c b/src/bytevector.c index b8aab3a..5bc44c9 100644 --- a/src/bytevector.c +++ b/src/bytevector.c @@ -295,6 +295,11 @@ SCM_SMOB_PRINT (scm_tc16_r6rs_bytevector, print_bytevector, return 1; } +SCM_SMOB_EQUALP (scm_tc16_r6rs_bytevector, bytevector_equal_p, bv1, bv2) +{ + return scm_r6rs_bytevector_eq_p (bv1, bv2); +} + SCM_SMOB_FREE (scm_tc16_r6rs_bytevector, free_bytevector, bv) { diff --git a/tests/bytevector.test b/tests/bytevector.test index ebe6136..fc539b3 100644 --- a/tests/bytevector.test +++ b/tests/bytevector.test @@ -123,7 +123,12 @@ (bytevector-sint-set! b 0 -16 (endianness big) 2) (bytevector-sint-set! b 1 -16 (endianness little) 2) (equal? (bytevector->u8-list b) - '(#xff #xf0 #xff))))) + '(#xff #xf0 #xff)))) + + (pass-if "equal?" + (let ((bv1 (u8-list->bytevector (iota 123))) + (bv2 (u8-list->bytevector (iota 123)))) + (equal? bv1 bv2)))) (with-test-prefix "2.4 Operations on Integers of Arbitrary Size"