From 06746c1c405c8a2e5719bd7bf8ddd7eb22957158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sat, 24 Jun 2023 22:05:20 +0200 Subject: [PATCH] Move simplified string-utf8? to util-utf8. --- src/Makefile | 2 +- src/util-mail.scm | 1 + src/util-string.scm | 10 ---------- src/util-utf8.scm | 10 ++++++++++ 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Makefile b/src/Makefile index 2f88ed3..855a36a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -314,7 +314,7 @@ util-proc.o: util-proc.import.scm util-proc.import.scm: $(UTIL-PROC-SOURCES) 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.import.scm: $(UTIL-MAIL-SOURCES) diff --git a/src/util-mail.scm b/src/util-mail.scm index 4467928..99bcb68 100644 --- a/src/util-mail.scm +++ b/src/util-mail.scm @@ -37,6 +37,7 @@ (chicken keyword) (chicken string) util-io + util-utf8 util-string) ;; All emails go to this override diff --git a/src/util-string.scm b/src/util-string.scm index ac967ef..584b3b5 100644 --- a/src/util-string.scm +++ b/src/util-string.scm @@ -30,8 +30,6 @@ ( string-first+rest - string-utf8? - string->qp string-upcase @@ -56,12 +54,6 @@ (cons key-str val)) (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. (define (string->list/utf8 str) (irregex-extract (irregex "." 'u) str)) @@ -111,8 +103,6 @@ (test-equal? string-first+rest (string-first+rest "asdf") '("asdf" . "")) - (test-true string-utf8? (string-utf8? "ěščř")) - (test-false string-utf8? (string-utf8? "Hello World!")) (test-equal? string->qp (string->qp "asdf") "asdf") diff --git a/src/util-utf8.scm b/src/util-utf8.scm index b647c13..84ff0a9 100644 --- a/src/util-utf8.scm +++ b/src/util-utf8.scm @@ -44,6 +44,8 @@ utf8-string->list list->utf8-string + string-utf8? + util-utf8-tests! ) @@ -272,6 +274,12 @@ (loop (cdr lst) (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 (define (util-utf8-tests!) (run-tests @@ -303,6 +311,8 @@ (test-equal? utf8-string-next-char (utf8-string-next-char "ěščř" 2) 4) + (test-true string-utf8? (string-utf8? "ěščř")) + (test-false string-utf8? (string-utf8? "Hello World!")) )) )