From 40c05d623239dcd5ea427eba85a0722cfc6ab76a Mon Sep 17 00:00:00 2001 From: keiichi Date: Tue, 10 Nov 1998 09:20:32 +0000 Subject: [PATCH] (mime-content-transfer-encoding-priority-list): New variable. (mime-edit-translate-single-part-tag): Change return value to `nil' or a cons which include content-type and encoding. (mime-edit-translate-region): Generate `encodeing' from return value of `mime-edit-translate-single-part-tag'. --- mime-edit.el | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/mime-edit.el b/mime-edit.el index bca7c68..c101699 100644 --- a/mime-edit.el +++ b/mime-edit.el @@ -506,6 +506,11 @@ If encoding is nil, it is determined from its contents." (make-variable-buffer-local 'mime-transfer-level-string) +;;; @@ about content transfer encoding + +(defvar mime-content-transfer-encoding-priority-list + '(nil "8bit" "binary")) + ;;; @@ about message inserting ;;; @@ -1958,8 +1963,12 @@ Content-Transfer-Encoding: 7bit (if encoding (insert "Content-Transfer-Encoding: " encoding "\n")) (eword-encode-header) - )) - t))) + ) + (cons (and contype + (downcase contype)) + (and encoding + (downcase encoding)))) + ))) (defun mime-edit-translate-region (beg end &optional boundary multipart) (or boundary @@ -1995,22 +2004,26 @@ Content-Transfer-Encoding: 7bit (t ;; It's a multipart message. (goto-char (point-min)) - (and (mime-edit-translate-single-part-tag boundary) - (while (mime-edit-translate-single-part-tag boundary "\n"))) - ;; Define Content-Type as "multipart/mixed". - (setq contype - (concat "multipart/mixed;\n boundary=\"" boundary "\"")) - ;; Content-Transfer-Encoding must be "7bit". - ;; The following encoding can be `nil', but is - ;; specified as is since there is no way that a user - ;; specifies it. - (setq encoding "7bit") - ;; Insert the trailer. - (goto-char (point-max)) - (insert "\n--" boundary "--\n") - )) - (list contype encoding boundary nparts) - )))) + (let ((prio mime-content-transfer-encoding-priority-list) + part-info nprio) + (when (setq part-info + (mime-edit-translate-single-part-tag boundary)) + (and (setq nprio (member (cdr part-info) prio)) + (setq prio nprio)) + (while (setq part-info + (mime-edit-translate-single-part-tag boundary "\n")) + (and (setq nprio (member (cdr part-info) prio)) + (setq prio nprio)))) + ;; Define Content-Type as "multipart/mixed". + (setq contype + (concat "multipart/mixed;\n boundary=\"" boundary "\"")) + (setq encoding (car prio)) + ;; Insert the trailer. + (goto-char (point-max)) + (insert "\n--" boundary "--\n") + ))) + (list contype encoding boundary nparts) + )))) (defun mime-edit-normalize-body () "Normalize the body part by inserting appropriate message tags." -- 1.7.10.4