aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2019-10-09 02:04:38 +0530
committerArun Isaac2019-10-09 02:04:38 +0530
commit121073cb725aef9baecaac0cfb6cf3f5a287c4e7 (patch)
treef8870bbb9ebc839b8b6df45a42321e65e1e1d4ca
parente0849c498564b4d23df503a34c22fb237551bbc8 (diff)
downloadguile-email-121073cb725aef9baecaac0cfb6cf3f5a287c4e7.tar.gz
guile-email-121073cb725aef9baecaac0cfb6cf3f5a287c4e7.tar.lz
guile-email-121073cb725aef9baecaac0cfb6cf3f5a287c4e7.zip
email: Return keywords header as a list.
* email/email.scm (parse-email-headers): Return keywords header as a list of strings. * tests/email.scm ("keywords header must be a list"): New test.
-rw-r--r--email/email.scm2
-rw-r--r--tests/email.scm11
2 files changed, 13 insertions, 0 deletions
diff --git a/email/email.scm b/email/email.scm
index 8cb9757..fdd8031 100644
--- a/email/email.scm
+++ b/email/email.scm
@@ -873,6 +873,8 @@ list of header keys and values."
(disposition . ,post-process-content-disposition)
(subject . ,(match-lambda* (`(subject ,subject)
`(subject ,(decode-mime-encoded-word subject)))))
+ (keywords . ,(lambda (_ value)
+ (cons 'keywords (string-split value #\,))))
(fields . ,(lambda (_ . fields)
(add-default-headers (post-process-fields fields))))
(*text* . ,(lambda (_ value) value))
diff --git a/tests/email.scm b/tests/email.scm
index c82f567..03c3b70 100644
--- a/tests/email.scm
+++ b/tests/email.scm
@@ -365,6 +365,17 @@ copyright =A9")
(content-transfer-encoding . quoted-printable))
"copyright �"))
+(test-alist= "keywords header must be a list"
+ (parse-email-headers
+ "Keywords: foo, bar
+")
+
+ `((keywords " foo" " bar")
+ (content-type (type . text)
+ (subtype . plain)
+ (charset . "utf-8"))
+ (content-transfer-encoding . 7bit)))
+
(test-equal "parse name-addr email address"
(parse-email-address "Foo <foo@example.org>")
'((name . "Foo") (address . "foo@example.org")))