Skip to content
Snippets Groups Projects
Verified Commit 8e8ba64f authored by Juliana Sims's avatar Juliana Sims
Browse files

guile: Use char-sets for char-pred arguments.

* lib/guile.scm (%string-trim, string-split): Use char-sets for char-pred.
* test/test-string.scm: Add string-index test using char-sets.
parent 50815144
No related branches found
No related tags found
1 merge request!285Add more string utilities
......@@ -2222,6 +2222,7 @@
(define (string-split str char-pred)
(let ((char-pred (match char-pred
((? char? a) (lambda (b) (char=? a b)))
((? char-set? cs) (lambda (c) (char-set-contains? cs c)))
((? procedure?) char-pred))))
(call-with-input-string str
(lambda (port)
......@@ -2286,6 +2287,7 @@
(let ((char-pred
(match char-pred
((? char?) (lambda (c) (char=? c char-pred)))
((? char-set? cs) (lambda (c) (char-set-contains? cs c)))
((? procedure?) char-pred))))
(let lp ((i 0)
(sl (string->list (substring s start end))))
......
......@@ -49,13 +49,16 @@
;; "ululululul")
(with-additional-imports
((only (guile) string-index string-rindex
((only (guile) char-set:lower-case
string-index string-rindex
string-prefix? string-prefix-ci?
string-suffix? string-suffix-ci?))
(test-call "2" (lambda (str c) (string-index str c)) "fox" #\x)
(test-call "2" (lambda (str c) (string-index str c)) "fox"
(lambda (c) (char=? c #\x)))
(test-call "0" (lambda (str) (string-index str char-set:lower-case))
"fox")
(test-call "2" (lambda (str c start) (string-index str c start)) "fox" #\x 1)
(test-call "1" (lambda (str c start end) (string-index str c start end))
"fox" #\o 0 2)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment