]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix conversion of text/html->multipart/related
authorJeremy Compostella <jeremy.compostella@gmail.com>
Wed, 19 Feb 2020 13:51:43 +0000 (14:51 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 19 Feb 2020 13:51:43 +0000 (14:51 +0100)
* lisp/gnus/mml.el (mml-expand-all-html-into-multipart-related):
New function (bug#39230).
(mml-generate-mime): Use it to expand all HTML parts, no matter
where in the MIME tree.

lisp/gnus/mml.el

index cdd8f3d3a50610e42f5566f2c8b009af2698bd48..3d86c5bc407233195168c219834d8a095e02242d 100644 (file)
@@ -487,11 +487,8 @@ type detected."
                 (= (length cont) 1)
                 content-type)
        (setcdr (assq 'type (cdr (car cont))) content-type))
-      (when (and (consp (car cont))
-                (= (length cont) 1)
-                (fboundp 'libxml-parse-html-region)
-                (equal (cdr (assq 'type (car cont))) "text/html"))
-       (setq cont (mml-expand-html-into-multipart-related (car cont))))
+      (when (fboundp 'libxml-parse-html-region)
+       (setq cont (mapcar 'mml-expand-all-html-into-multipart-related cont)))
       (prog1
          (with-temp-buffer
            (set-buffer-multibyte nil)
@@ -510,6 +507,18 @@ type detected."
            (buffer-string))
        (setq message-options options)))))
 
+(defun mml-expand-all-html-into-multipart-related (cont)
+  (cond ((and (eq (car cont) 'part)
+             (equal (cdr (assq 'type cont)) "text/html"))
+        (mml-expand-html-into-multipart-related cont))
+       ((eq (car cont) 'multipart)
+        (let ((cur (cdr cont)))
+          (while (consp cur)
+            (setcar cur (mml-expand-all-html-into-multipart-related (car cur)))
+            (setf cur (cdr cur))))
+        cont)
+       (t cont)))
+
 (defun mml-expand-html-into-multipart-related (cont)
   (let ((new-parts nil)
        (cid 1))