From 80cd2075669dd66cb3841ad209ef9e786b6754ec Mon Sep 17 00:00:00 2001 From: Mario Domenech Goulart Date: Sun, 19 Jan 2014 20:08:17 -0200 Subject: [PATCH 2/2] srfi-13: fix bug in string-trim-right The bug in srfi-13's reference implementation was found by Seth Alves, who also provided the fix (see http://lists.gnu.org/archive/html/chicken-hackers/2014-01/msg00016.html ) His patch has been amended with some tests. Signed-off-by: Evan Hanson --- srfi-13.scm | 2 +- tests/srfi-13-tests.scm | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/srfi-13.scm b/srfi-13.scm index 876a2bd..65b748f 100644 --- a/srfi-13.scm +++ b/srfi-13.scm @@ -1066,7 +1066,7 @@ (let-optionals* criteria+start+end ((criteria char-set:whitespace) rest) (let-string-start+end (start end) string-trim-right s rest (cond ((string-skip-right s criteria start end) => - (lambda (i) (%substring/shared s 0 (+ 1 i)))) + (lambda (i) (%substring/shared s start (+ 1 i)))) (else ""))))) (define (string-trim-both s . criteria+start+end) diff --git a/tests/srfi-13-tests.scm b/tests/srfi-13-tests.scm index a9735cc..1262b82 100644 --- a/tests/srfi-13-tests.scm +++ b/tests/srfi-13-tests.scm @@ -706,3 +706,11 @@ (test "string-index-right" #f (string-index-right "abbb" #\a 1)) (test "string-skip-right" #f (string-skip-right "abbb" #\b 1)) + +;; Tests to check the string-trim-right issue found by Seth Alves +;; http://lists.gnu.org/archive/html/chicken-hackers/2014-01/msg00016.html +(test "string-trim-right" "" (string-trim-right "" char-whitespace? 0 0)) +(test "string-trim-right" "" (string-trim-right "a" char-whitespace? 0 0)) +(test "string-trim-right" "" (string-trim-right "a " char-whitespace? 0 0)) +(test "string-trim-right" "bc" (string-trim-right "abc " char-whitespace? 1)) +(test "string-trim-right" "" (string-trim-right "abc " char-whitespace? 4 4)) -- 1.7.10.4