Move simplified string-utf8? to util-utf8.

This commit is contained in:
Dominik Pantůček 2023-06-24 22:05:20 +02:00
parent 0b383c6fa6
commit 06746c1c40
4 changed files with 12 additions and 11 deletions

View file

@ -314,7 +314,7 @@ util-proc.o: util-proc.import.scm
util-proc.import.scm: $(UTIL-PROC-SOURCES) util-proc.import.scm: $(UTIL-PROC-SOURCES)
UTIL-MAIL-SOURCES=util-mail.scm util-io.import.scm \ UTIL-MAIL-SOURCES=util-mail.scm util-io.import.scm \
util-string.import.scm util-string.import.scm util-utf8.import.scm
util-mail.o: util-mail.import.scm util-mail.o: util-mail.import.scm
util-mail.import.scm: $(UTIL-MAIL-SOURCES) util-mail.import.scm: $(UTIL-MAIL-SOURCES)

View file

@ -37,6 +37,7 @@
(chicken keyword) (chicken keyword)
(chicken string) (chicken string)
util-io util-io
util-utf8
util-string) util-string)
;; All emails go to this override ;; All emails go to this override

View file

@ -30,8 +30,6 @@
( (
string-first+rest string-first+rest
string-utf8?
string->qp string->qp
string-upcase string-upcase
@ -56,12 +54,6 @@
(cons key-str val)) (cons key-str val))
(cons str "")))) (cons str ""))))
;; Returns true, if given string contains UTF-8 characters
(define (string-utf8? str)
(let ((asciilen (string-length str))
(utf8len (length (string->list/utf8 str))))
(not (= asciilen utf8len))))
;; Converts given UTF-8 string into a list of UTF-8 string characters. ;; Converts given UTF-8 string into a list of UTF-8 string characters.
(define (string->list/utf8 str) (define (string->list/utf8 str)
(irregex-extract (irregex "." 'u) str)) (irregex-extract (irregex "." 'u) str))
@ -111,8 +103,6 @@
(test-equal? string-first+rest (test-equal? string-first+rest
(string-first+rest "asdf") (string-first+rest "asdf")
'("asdf" . "")) '("asdf" . ""))
(test-true string-utf8? (string-utf8? "ěščř"))
(test-false string-utf8? (string-utf8? "Hello World!"))
(test-equal? string->qp (test-equal? string->qp
(string->qp "asdf") (string->qp "asdf")
"asdf") "asdf")

View file

@ -44,6 +44,8 @@
utf8-string->list utf8-string->list
list->utf8-string list->utf8-string
string-utf8?
util-utf8-tests! util-utf8-tests!
) )
@ -272,6 +274,12 @@
(loop (cdr lst) (loop (cdr lst)
(prepend-unicode-char-to-utf8-list (car lst) res))))) (prepend-unicode-char-to-utf8-list (car lst) res)))))
;; Returns true, if given string contains UTF-8 characters
(define (string-utf8? s)
(let ((asciilen (string-length s))
(utf8len (utf8-string-length s)))
(not (= asciilen utf8len))))
;; Module self-tests ;; Module self-tests
(define (util-utf8-tests!) (define (util-utf8-tests!)
(run-tests (run-tests
@ -303,6 +311,8 @@
(test-equal? utf8-string-next-char (test-equal? utf8-string-next-char
(utf8-string-next-char "ěščř" 2) (utf8-string-next-char "ěščř" 2)
4) 4)
(test-true string-utf8? (string-utf8? "ěščř"))
(test-false string-utf8? (string-utf8? "Hello World!"))
)) ))
) )