* mm-bodies.el (mm-encode-body): Use coding system rather than charset to
authorKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 5 Aug 2005 05:58:05 +0000 (05:58 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 5 Aug 2005 05:58:05 +0000 (05:58 +0000)
 encode text.

* mm-util.el (mm-find-mime-charset-region): Attempt to reduce the number of
 charsets if utf-8 is available (XEmacs).

lisp/ChangeLog
lisp/mm-bodies.el
lisp/mm-util.el

index 47d35bc..f4e86a2 100644 (file)
@@ -1,3 +1,11 @@
+2005-08-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * mm-bodies.el (mm-encode-body): Use coding system rather than
+       charset to encode text.
+
+       * mm-util.el (mm-find-mime-charset-region): Attempt to reduce the
+       number of charsets if utf-8 is available (XEmacs).
+
 2005-08-04  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-art.el (gnus-button-valid-localpart-regexp): New variable
index a9b34be..940febc 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mm-bodies.el --- Functions for decoding MIME things
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -93,7 +93,8 @@ If no encoding was done, nil is returned."
     (save-excursion
       (if charset
          (progn
-           (mm-encode-coding-region (point-min) (point-max) charset)
+           (mm-encode-coding-region (point-min) (point-max)
+                                    (mm-charset-to-coding-system charset))
            charset)
        (goto-char (point-min))
        (let ((charsets (mm-find-mime-charset-region (point-min) (point-max)
index 2517919..b1cda89 100644 (file)
@@ -747,6 +747,17 @@ charset, and a longer list means no appropriate charset."
     (if (and (memq 'iso-2022-jp-2 charsets)
             (memq 'iso-2022-jp-2 hack-charsets))
        (setq charsets (delq 'iso-2022-jp charsets)))
+    ;; Attempt to reduce the number of charsets if utf-8 is available.
+    (if (and (featurep 'xemacs)
+            (> (length charsets) 1)
+            (mm-coding-system-p 'utf-8))
+       (let ((mm-coding-system-priorities
+              (cons 'utf-8 mm-coding-system-priorities)))
+         (setq charsets
+               (mm-delete-duplicates
+                (mapcar 'mm-mime-charset
+                        (delq 'ascii
+                              (mm-find-charset-region b e)))))))
     charsets))
 
 (defmacro mm-with-unibyte-buffer (&rest forms)