summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Compostella <jeremy.compostella@gmail.com>2020-02-19 14:51:43 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2020-02-19 14:51:43 +0100
commite1e1bd8f85c53fea9f61b6ec99b461ddd93461b9 (patch)
tree8983fc9eee3d1c075fa1450128994cf9fac43451
parentb3de1302ca347b95fe6aa2608aba550292d32353 (diff)
downloademacs-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.el19
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))