* gnus-art.el (gnus-mime-display-single): Use utf-8 by default for decoding
authorKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 23 Aug 2007 04:42:05 +0000 (04:42 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 23 Aug 2007 04:42:05 +0000 (04:42 +0000)
 text/calendar parts.

* message.el (message-forward-make-body-mime): Always mark body as having no
 illegible text; remove signed-or-encrypted argument.
(message-forward-make-body): Don't pass signed-or-encrypted arg to it.

* mml.el (mml-generate-mime): Make sure it uses multibyte temp buffer.
(mml-generate-mime-1): Don't encode body if it is specified to be in raw form;
 don't make buffer be unibyte when inserting multibyte string.

lisp/ChangeLog
lisp/gnus-art.el
lisp/message.el
lisp/mml.el

index ff1c1b8..0c31aed 100644 (file)
@@ -1,3 +1,16 @@
+2007-08-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-art.el (gnus-mime-display-single): Use utf-8 by default for
+       decoding text/calendar parts.
+
+       * message.el (message-forward-make-body-mime): Always mark body as
+       having no illegible text; remove signed-or-encrypted argument.
+       (message-forward-make-body): Don't pass signed-or-encrypted arg to it.
+
+       * mml.el (mml-generate-mime): Make sure it uses multibyte temp buffer.
+       (mml-generate-mime-1): Don't encode body if it is specified to be in
+       raw form; don't make buffer be unibyte when inserting multibyte string.
+
 2007-08-17  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * imap.el (imap-logout-timeout): New variable.
index 80e2cd2..aed35eb 100644 (file)
@@ -5521,8 +5521,9 @@ If displaying \"text/html\" is discouraged \(see
            (gnus-article-insert-newline)
            (mm-insert-inline
             handle
-            (let ((charset (mail-content-type-get (mm-handle-type handle)
-                                                  'charset)))
+            (let ((charset (or (mail-content-type-get (mm-handle-type handle)
+                                                      'charset)
+                               (and (equal type "text/calendar") 'utf-8))))
               (cond ((not charset)
                      (mm-string-as-multibyte (mm-get-part handle)))
                     ((eq charset 'gnus-decoded)
index 3fe09f7..ab42c33 100644 (file)
@@ -6852,8 +6852,7 @@ Optional DIGEST will use digest to forward."
        (dolist (elem ignored)
          (message-remove-header elem t))))))
 
-(defun message-forward-make-body-mime (forward-buffer
-                                      &optional signed-or-encrypted)
+(defun message-forward-make-body-mime (forward-buffer)
   (let ((b (point)))
     (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n")
     (save-restriction
@@ -6864,11 +6863,10 @@ Optional DIGEST will use digest to forward."
        (replace-match "X-From-Line: "))
       (goto-char (point-max)))
     (insert "<#/part>\n")
-    (when signed-or-encrypted
-      ;; Consider there is no illegible text.
-      (add-text-properties
-       b (point)
-       `(no-illegible-text t rear-nonsticky t start-open t)))))
+    ;; Consider there is no illegible text.
+    (add-text-properties
+     b (point)
+     `(no-illegible-text t rear-nonsticky t start-open t))))
 
 (defun message-forward-make-body-mml (forward-buffer)
   (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n")
@@ -6992,20 +6990,17 @@ is for the internal use."
   (if digest
       (message-forward-make-body-digest forward-buffer)
     (if message-forward-as-mime
-       (let (signed-or-encrypted)
-         (if (and message-forward-show-mml
-                  (not (and (eq message-forward-show-mml 'best)
-                            ;; Use the raw form in the body if it contains
-                            ;; signed or encrypted message so as not to be
-                            ;; destroyed by re-encoding.
-                            (with-current-buffer forward-buffer
-                              (condition-case nil
-                                  (setq signed-or-encrypted
-                                        (message-signed-or-encrypted-p))
-                                (error t))))))
-             (message-forward-make-body-mml forward-buffer)
-           (message-forward-make-body-mime forward-buffer
-                                           signed-or-encrypted)))
+       (if (and message-forward-show-mml
+                (not (and (eq message-forward-show-mml 'best)
+                          ;; Use the raw form in the body if it contains
+                          ;; signed or encrypted message so as not to be
+                          ;; destroyed by re-encoding.
+                          (with-current-buffer forward-buffer
+                            (condition-case nil
+                                (message-signed-or-encrypted-p)
+                              (error t))))))
+           (message-forward-make-body-mml forward-buffer)
+         (message-forward-make-body-mime forward-buffer))
       (message-forward-make-body-plain forward-buffer)))
   (message-position-point))
 
index 5ff55db..2e56b76 100644 (file)
@@ -445,7 +445,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
        (mml-multipart-number mml-multipart-number))
     (if (not cont)
        nil
-      (with-temp-buffer
+      (mm-with-multibyte-buffer
        (if (and (consp (car cont))
                 (= (length cont) 1))
            (mml-generate-mime-1 (car cont))
@@ -564,14 +564,13 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
                      (progn
                        (mm-enable-multibyte)
                        (insert contents)
-                       (setq charset (mm-encode-body charset)))
+                       (unless raw
+                         (setq charset (mm-encode-body charset))))
                    (insert contents)))))
              (setq encoding (mm-encode-buffer type)
                    coded (mm-string-as-multibyte (buffer-string))))
            (mml-insert-mime-headers cont type charset encoding nil)
-           (insert "\n")
-           (mm-with-unibyte-current-buffer
-             (insert coded)))))
+           (insert "\n" coded))))
        ((eq (car cont) 'external)
        (insert "Content-Type: message/external-body")
        (let ((parameters (mml-parameter-string