# HG changeset patch # User Dave Love # Date 1034938538 0 # Node ID bce2c13027f2f3a525399441049bbd4bb2538bd5 # Parent cdc6e9b808d6bfebba7cd47a8e07311eef892edc (mm-body-7-or-8): Don't special-case Mule. (mm-encode-body): Just call mm-encode-coding-region in encoding case. diff -r cdc6e9b808d6 -r bce2c13027f2 lisp/gnus/mm-bodies.el --- a/lisp/gnus/mm-bodies.el Fri Oct 18 10:54:31 2002 +0000 +++ b/lisp/gnus/mm-bodies.el Fri Oct 18 10:55:38 2002 +0000 @@ -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 ;; MORIOKA Tomohiko @@ -56,8 +56,8 @@ (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 @@ 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 @@ 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 @@ (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 @@ 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 @@ (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 @@ "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 @@ (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)