aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2019-10-08 20:29:29 +0530
committerArun Isaac2019-10-08 20:29:29 +0530
commitf9e23ba55ca200f96e73f4a9e83f1065602b1f6f (patch)
tree88c609b7f0059729279cb3df97a9e3a44883abb7
parentb77d730f8c001f212f8e5de46cc5a4eb3277b205 (diff)
downloadguile-email-f9e23ba55ca200f96e73f4a9e83f1065602b1f6f.tar.gz
guile-email-f9e23ba55ca200f96e73f4a9e83f1065602b1f6f.tar.lz
guile-email-f9e23ba55ca200f96e73f4a9e83f1065602b1f6f.zip
email: Override invalid charset more strongly.
* email/email.scm (post-process-content-type): Use alist-combine to override charset more strongly than just appending to the alist. * tests/email.scm ("tolerate invalid charset"): Update test.
-rw-r--r--email/email.scm2
-rw-r--r--tests/email.scm3
2 files changed, 2 insertions, 3 deletions
diff --git a/email/email.scm b/email/email.scm
index 43f9a72..7cef7e7 100644
--- a/email/email.scm
+++ b/email/email.scm
@@ -680,7 +680,7 @@ values. The returned headers is a string and body is a bytevector."
;; charset. Should we check for the validity of the
;; entire Content-Type header? If so, how?
(not (valid-charset? (assoc-ref parameters 'charset)))))
- (acons 'charset "utf-8" parameters))
+ (alist-combine parameters (acons* 'charset "utf-8")))
(else parameters))))))))
(define post-process-content-disposition
diff --git a/tests/email.scm b/tests/email.scm
index fb7e618..c82f567 100644
--- a/tests/email.scm
+++ b/tests/email.scm
@@ -351,8 +351,7 @@ body" "iso-8859-1"))
`((content-transfer-encoding . 7bit)
(content-type (type . text)
(subtype . plain)
- (charset . "utf-8")
- (charset . "foo"))))
+ (charset . "utf-8"))))
(test-email= "tolerate decoding errors in body"
(parse-email