Fix setting of buffer-file-coding-system for MIME message.
authorKenichi Handa <handa@m17n.org>
Sat, 19 Feb 2011 09:22:24 +0000 (18:22 +0900)
committerKenichi Handa <handa@m17n.org>
Sat, 19 Feb 2011 09:22:24 +0000 (18:22 +0900)
lisp/ChangeLog
lisp/mail/rmail.el
lisp/mail/rmailmm.el

index 8caa24c..e0c9f55 100644 (file)
@@ -1,3 +1,11 @@
+2011-02-19  Kenichi Handa  <handa@m17n.org>
+
+       * mail/rmailmm.el (rmail-mime-find-header-encoding): Be sure to
+       get the header copy into the temporary buffer.
+       (rmail-mime-insert-decoded-text): Ignore us-ascii.
+       (rmail-show-mime): When rmail-mime-coding-system is nil, set
+       buffer-file-coding-system to undecided.
+
 2011-02-18  Eli Zaretskii  <eliz@gnu.org>
 
        * image-mode.el (image-toggle-display-image): Disable
index 370999d..fc4b642 100644 (file)
@@ -4287,7 +4287,7 @@ With prefix argument N moves forward N messages with these labels.
 
 ;;;***
 \f
-;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "7f6ad821b4543a18139fee9250beea5c")
+;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "9c0902449733cabd5c7e7d17092a7c69")
 ;;; Generated autoloads from rmailmm.el
 
 (autoload 'rmail-mime "rmailmm" "\
index d6af925..e44dd87 100644 (file)
@@ -471,10 +471,11 @@ See `rmail-mime-entity' for the detail."
 HEADER is a header component of a MIME-entity object (see
 `rmail-mime-entity')."
   (with-temp-buffer
-    (let ((last-coding-system-used nil))
+    (let ((buf (current-buffer)))
       (with-current-buffer rmail-mime-mbox-buffer
-       (let ((rmail-buffer rmail-mime-mbox-buffer)
-             (rmail-view-buffer rmail-mime-view-buffer))
+       (let ((last-coding-system-used nil)
+             (rmail-buffer rmail-mime-mbox-buffer)
+             (rmail-view-buffer buf))
          (save-excursion
            (goto-char (aref header 0))
            (rmail-copy-headers (point) (aref header 1)))))
@@ -513,7 +514,9 @@ HEADER is a header component of a MIME-entity object (see
              ((string= transfer-encoding "quoted-printable")
               (quoted-printable-decode-region pos (point))))))
     (decode-coding-region pos (point) coding-system)
-    (if (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system))
+    (if (and
+        (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system))
+        (not (eq (coding-system-base coding-system) 'us-ascii)))
        (setq rmail-mime-coding-system coding-system))
     (or (bolp) (insert "\n"))))
 
@@ -1301,7 +1304,10 @@ attachments as specfied by `rmail-mime-attachment-dirs-alist'."
                      (rmail-mime-find-header-encoding
                       (rmail-mime-entity-header entity)))))
          (set-buffer-file-coding-system
-          (coding-system-base rmail-mime-coding-system) t t))
+          (if rmail-mime-coding-system
+              (coding-system-base rmail-mime-coding-system)
+            'undecided)
+          t t))
       ;; Decoding failed.  ENTITY is an error message.  Insert the
       ;; original message body as is, and show warning.
       (let ((region (with-current-buffer rmail-mime-mbox-buffer