]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix problem with non-ASCII MML description strings
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 30 Sep 2019 15:13:10 +0000 (17:13 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 30 Sep 2019 15:13:10 +0000 (17:13 +0200)
* 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).

lisp/gnus/mml.el

index 7fd78d7b9c11927cfcafd7da654270866a1e9ff2..5b31da2870cb86aba6670d89b5ea6d2e2046f7d4 100644 (file)
@@ -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)))))