summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-09-30 17:13:10 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-09-30 17:13:10 +0200
commite7ee756f54834bda7ab2d862d7832a77de909b8e (patch)
tree5f9cf9176c8e170fe81facb19be0ed088d346eb7
parentab980bd7f5f9ec396ec84254bece6048f36ad8ff (diff)
downloademacs-e7ee756f54834bda7ab2d862d7832a77de909b8e.tar.gz
Fix problem with non-ASCII MML description strings
* lisp/gnus/mml.el (mml-insert-tag): Quote non-ASCII parameters. (mml-insert-mime-headers): Make it possible to have non-ASCII descriptions (bug#37555).
-rw-r--r--lisp/gnus/mml.el14
1 files changed, 8 insertions, 6 deletions
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index 7fd78d7b9c1..5b31da2870c 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -923,11 +923,13 @@ type detected."
(unless (eq encoding '7bit)
(insert (format "Content-Transfer-Encoding: %s\n" encoding)))
(when (setq description (cdr (assq 'description cont)))
- (insert "Content-Description: ")
- (setq description (prog1
- (point)
- (insert description "\n")))
- (mail-encode-encoded-word-region description (point)))))
+ (insert "Content-Description: "
+ ;; The current buffer is unibyte, so do the description
+ ;; encoding in a temporary buffer.
+ (with-temp-buffer
+ (insert description "\n")
+ (mail-encode-encoded-word-region (point-min) (point-max))
+ (buffer-string))))))
(defun mml-parameter-string (cont types)
(let ((string "")
@@ -1339,7 +1341,7 @@ If not set, `default-directory' will be used."
(value (pop plist)))
(when value
;; Quote VALUE if it contains suspicious characters.
- (when (string-match "[\"'\\~/*;() \t\n]" value)
+ (when (string-match "[\"'\\~/*;() \t\n[:multibyte:]]" value)
(setq value (with-output-to-string
(let (print-escape-nonascii)
(prin1 value)))))