From: Jeremy Compostella Date: Wed, 19 Feb 2020 13:51:43 +0000 (+0100) Subject: Fix conversion of text/html->multipart/related X-Git-Tag: emacs-28.0.90~7867 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e1e1bd8f85c53fea9f61b6ec99b461ddd93461b9;p=emacs.git Fix conversion of text/html->multipart/related * 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. --- diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index cdd8f3d3a50..3d86c5bc407 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -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))