1
Fork 0
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:
Dave Love 2002-10-18 10:55:38 +00:00
parent c2e5122264
commit 5d54c59d41

View file

@ -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)