summary refs log tree commit diff
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