diff --git a/lib/chibi/string.scm b/lib/chibi/string.scm index 4f281f9a..9a19fcc4 100644 --- a/lib/chibi/string.scm +++ b/lib/chibi/string.scm @@ -37,6 +37,13 @@ ((pred (string-cursor-ref str i)) i) (else (lp (string-cursor-next str i))))))) +(define (string-find? str x . o) + (let ((start (if (pair? o) (car o) (string-cursor-start str))) + (end (if (and (pair? o) (pair? (cdr o))) + (cadr o) + (string-cursor-end str)))) + (< (string-find str x start end) end))) + (define (string-find-right str x . o) (let ((pred (make-char-predicate x)) (start (if (pair? o) (car o) (string-cursor-start str)))) diff --git a/lib/chibi/string.sld b/lib/chibi/string.sld index 170dd48f..1f2db0bb 100644 --- a/lib/chibi/string.sld +++ b/lib/chibi/string.sld @@ -8,7 +8,7 @@ string-trim string-trim-left string-trim-right string-mismatch string-mismatch-right string-prefix? string-suffix? - string-find string-find-right string-skip string-skip-right + string-find string-find-right string-find? string-skip string-skip-right string-fold string-fold-right string-map string-for-each string-contains make-string-searcher string-downcase-ascii string-upcase-ascii)