mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(mm-body-7-or-8): Don't special-case Mule.
(mm-encode-body): Just call mm-encode-coding-region in encoding case.
This commit is contained in:
parent
c2e5122264
commit
5d54c59d41
1 changed files with 18 additions and 53 deletions
|
|
@ -1,5 +1,5 @@
|
|||
;;; mm-bodies.el --- functions for decoding MIME things
|
||||
;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
|
||||
|
|
@ -56,8 +56,8 @@ Valid encodings are `7bit', `8bit', `quoted-printable' and `base64'."
|
|||
(defun mm-encode-body ()
|
||||
"Encode a body.
|
||||
Should be called narrowed to the body that is to be encoded.
|
||||
If there is more than one non-ASCII MULE charset, then list of found
|
||||
MULE charsets are returned.
|
||||
If there is more than one non-ASCII Mule charset, then the list of found
|
||||
Mule charsets is returned.
|
||||
If successful, the MIME charset is returned.
|
||||
If no encoding was done, nil is returned."
|
||||
(if (not (mm-multibyte-p))
|
||||
|
|
@ -73,8 +73,7 @@ If no encoding was done, nil is returned."
|
|||
nil))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let ((charsets (mm-find-mime-charset-region (point-min) (point-max)))
|
||||
charset)
|
||||
(let ((charsets (mm-find-mime-charset-region (point-min) (point-max))))
|
||||
(cond
|
||||
;; No encoding.
|
||||
((null charsets)
|
||||
|
|
@ -84,29 +83,10 @@ If no encoding was done, nil is returned."
|
|||
charsets)
|
||||
;; We encode.
|
||||
(t
|
||||
(let ((charset (car charsets))
|
||||
start)
|
||||
(when (or t
|
||||
;; We always decode.
|
||||
(not (mm-coding-system-equal
|
||||
charset buffer-file-coding-system)))
|
||||
(while (not (eobp))
|
||||
(if (eq (mm-charset-after) 'ascii)
|
||||
(when start
|
||||
(save-restriction
|
||||
(narrow-to-region start (point))
|
||||
(mm-encode-coding-region
|
||||
start (point) (mm-charset-to-coding-system charset))
|
||||
(goto-char (point-max)))
|
||||
(setq start nil))
|
||||
(unless start
|
||||
(setq start (point))))
|
||||
(forward-char 1))
|
||||
(when start
|
||||
(mm-encode-coding-region start (point)
|
||||
(mm-charset-to-coding-system charset))
|
||||
(setq start nil)))
|
||||
charset)))))))
|
||||
(mm-encode-coding-region (point-min) (point-max)
|
||||
(mm-charset-to-coding-system
|
||||
(car charsets)))
|
||||
(car charsets)))))))
|
||||
|
||||
(eval-when-compile (defvar message-posting-charset))
|
||||
|
||||
|
|
@ -133,27 +113,12 @@ If no encoding was done, nil is returned."
|
|||
|
||||
(defun mm-body-7-or-8 ()
|
||||
"Say whether the body is 7bit or 8bit."
|
||||
(cond
|
||||
((not (featurep 'mule))
|
||||
(if (save-excursion
|
||||
(goto-char (point-min))
|
||||
(skip-chars-forward mm-7bit-chars)
|
||||
(eobp))
|
||||
'7bit
|
||||
'8bit))
|
||||
(t
|
||||
;; Mule version
|
||||
(if (and (null (delq 'ascii
|
||||
(mm-find-charset-region (point-min) (point-max))))
|
||||
;;!!!The following is necessary because the function
|
||||
;;!!!above seems to return the wrong result under
|
||||
;;!!!Emacs 20.3. Sometimes.
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(skip-chars-forward mm-7bit-chars)
|
||||
(eobp)))
|
||||
'7bit
|
||||
'8bit))))
|
||||
(if (save-excursion
|
||||
(goto-char (point-min))
|
||||
(skip-chars-forward mm-7bit-chars)
|
||||
(eobp))
|
||||
'7bit
|
||||
'8bit))
|
||||
|
||||
;;;
|
||||
;;; Functions for decoding
|
||||
|
|
@ -213,7 +178,7 @@ If no encoding was done, nil is returned."
|
|||
The characters in CHARSET should then be decoded."
|
||||
(if (stringp charset)
|
||||
(setq charset (intern (downcase charset))))
|
||||
(if (or (not charset)
|
||||
(if (or (not charset)
|
||||
(eq 'gnus-all mail-parse-ignored-charsets)
|
||||
(memq 'gnus-all mail-parse-ignored-charsets)
|
||||
(memq charset mail-parse-ignored-charsets))
|
||||
|
|
@ -226,7 +191,7 @@ The characters in CHARSET should then be decoded."
|
|||
(if (and (not coding-system)
|
||||
(listp mail-parse-ignored-charsets)
|
||||
(memq 'gnus-unknown mail-parse-ignored-charsets))
|
||||
(setq coding-system
|
||||
(setq coding-system
|
||||
(mm-charset-to-coding-system mail-parse-charset)))
|
||||
(when (and charset coding-system
|
||||
;; buffer-file-coding-system
|
||||
|
|
@ -242,7 +207,7 @@ The characters in CHARSET should then be decoded."
|
|||
"Decode STRING with CHARSET."
|
||||
(when (stringp charset)
|
||||
(setq charset (intern (downcase charset))))
|
||||
(when (or (not charset)
|
||||
(when (or (not charset)
|
||||
(eq 'gnus-all mail-parse-ignored-charsets)
|
||||
(memq 'gnus-all mail-parse-ignored-charsets)
|
||||
(memq charset mail-parse-ignored-charsets))
|
||||
|
|
@ -253,7 +218,7 @@ The characters in CHARSET should then be decoded."
|
|||
(if (and (not coding-system)
|
||||
(listp mail-parse-ignored-charsets)
|
||||
(memq 'gnus-unknown mail-parse-ignored-charsets))
|
||||
(setq coding-system
|
||||
(setq coding-system
|
||||
(mm-charset-to-coding-system mail-parse-charset)))
|
||||
(when (and charset coding-system
|
||||
(mm-multibyte-p)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue