From 6e12a88a1ead182632e7d7d69cd9e54b0e65f8c0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 21 Jun 2009 16:10:02 +0200 Subject: [PATCH] bytevectors: Add support for `equal?'. Patch from Guile `master' by me. --- src/bytevector.c | 5 +++++ tests/bytevector.test | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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" -- 2.11.4.GIT