summaryrefslogtreecommitdiff
path: root/lisp/gnus/mml.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/gnus/mml.el')
-rw-r--r--lisp/gnus/mml.el19
1 files changed, 9 insertions, 10 deletions
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index 4a0d40ac0ed..7fd78d7b9c1 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -295,14 +295,6 @@ part. This is for the internal use, you should never modify the value.")
(t
(mm-find-mime-charset-region point (point)
mm-hack-charsets))))
- ;; If the user has inserted a Content-Type header, then
- ;; respect that instead of overwriting with "text/plain".
- (save-restriction
- (narrow-to-region point (point))
- (let ((content-type (mail-fetch-field "content-type")))
- (when (and content-type
- (eq (car tag) 'part))
- (setcdr (assq 'type tag) content-type))))
(when (and (not raw) (memq nil charsets))
(if (or (memq 'unknown-encoding mml-confirmation-set)
(message-options-get 'unknown-encoding)
@@ -479,10 +471,13 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(declare-function libxml-parse-html-region "xml.c"
(start end &optional base-url discard-comments))
-(defun mml-generate-mime (&optional multipart-type)
+(defun mml-generate-mime (&optional multipart-type content-type)
"Generate a MIME message based on the current MML document.
MULTIPART-TYPE defaults to \"mixed\", but can also
-be \"related\" or \"alternate\"."
+be \"related\" or \"alternate\".
+
+If CONTENT-TYPE (and there's only one part), override the content
+type detected."
(let ((cont (mml-parse))
(mml-multipart-number mml-multipart-number)
(options message-options))
@@ -490,6 +485,10 @@ be \"related\" or \"alternate\"."
nil
(when (and (consp (car cont))
(= (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))))