diff options
author | Jeremy Compostella <jeremy.compostella@gmail.com> | 2020-02-19 14:51:43 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2020-02-19 14:51:43 +0100 |
commit | e1e1bd8f85c53fea9f61b6ec99b461ddd93461b9 (patch) | |
tree | 8983fc9eee3d1c075fa1450128994cf9fac43451 | |
parent | b3de1302ca347b95fe6aa2608aba550292d32353 (diff) | |
download | emacs-e1e1bd8f85c53fea9f61b6ec99b461ddd93461b9.tar.gz |
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.
-rw-r--r-- | lisp/gnus/mml.el | 19 |
1 files changed, 14 insertions, 5 deletions
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)) |