From 418468f46e06584afcd51bd001ebb38531e85c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Tue, 11 Apr 2023 14:07:21 +0200 Subject: [PATCH] Convert subject to list. --- src/Makefile | 3 ++- src/util-mail.scm | 6 ++++-- src/util-string.scm | 7 ++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Makefile b/src/Makefile index ca96ed0..008c961 100644 --- a/src/Makefile +++ b/src/Makefile @@ -313,7 +313,8 @@ UTIL-PROC-SOURCES=util-proc.scm 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-MAIL-SOURCES=util-mail.scm util-io.import.scm \ + util-string.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 0b7ae4b..13be163 100644 --- a/src/util-mail.scm +++ b/src/util-mail.scm @@ -35,14 +35,16 @@ (import scheme (chicken base) (chicken keyword) - util-io) + util-io + util-string) ;; All emails go to this override (define *mailto-override* (make-parameter "dominik.pantucek@trustica.cz")) ;; Encodes given UTF-8 string as quoted-printable (define (string->qp str) - str) + (let ((lst (string->list/utf8 str))) + str)) ;; Ensures the subject has proper encoding (define (encode-subject subj) diff --git a/src/util-string.scm b/src/util-string.scm index 4cf369a..1d0788c 100644 --- a/src/util-string.scm +++ b/src/util-string.scm @@ -32,6 +32,7 @@ string-first+rest string-utf8? string-tests! + string->list/utf8 ) (import scheme @@ -63,8 +64,12 @@ ;; Returns true, if given string contains UTF-8 characters (define (string-utf8? str) (let ((asciilen (string-length str)) - (utf8len (length (irregex-extract (irregex "." 'u) 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)) ;; Performs utils module self-tests. (define (string-tests!)