]> code.delx.au - gnu-emacs/commitdiff
Merge from gnus--rel--5.10
authorMiles Bader <miles@gnu.org>
Sat, 26 Apr 2008 04:30:32 +0000 (04:30 +0000)
committerMiles Bader <miles@gnu.org>
Sat, 26 Apr 2008 04:30:32 +0000 (04:30 +0000)
Revision: emacs@sv.gnu.org/emacs--rel--22--patch-259

lisp/gnus/ChangeLog
lisp/gnus/mm-encode.el

index f0ba8af760e01b9b90989b3918c9480abe26cdd8..d934d6c2c2ee2c56ab76a714e9f1c292a05d2912 100644 (file)
@@ -1,3 +1,9 @@
+2008-04-24  Luca Capello  <luca@pca.it>  (tiny change)
+
+       * mm-encode.el (mm-safer-encoding): Add optional argument `type'.
+       Don't use QP for message/rfc822.
+       (mm-content-transfer-encoding): Pass `type' to mm-safer-encoding.
+
 2008-04-13  Reiner Steib  <Reiner.Steib@gmx.de>
 
        [Backport GNKSA related changes from the Gnus trunk.]
index d22c59c5018180fa5c9ac34dded165667fc0776f..3101b14d19e0789533c50cf0abdd7e7a2e828a9a 100644 (file)
@@ -96,14 +96,19 @@ This variable should never be set directly, but bound before a call to
       "application/octet-stream"
     (mailcap-extension-to-mime (match-string 0 file))))
 
-(defun mm-safer-encoding (encoding)
+(defun mm-safer-encoding (encoding &optional type)
   "Return an encoding similar to ENCODING but safer than it."
   (cond
    ((eq encoding '7bit) '7bit) ;; 7bit is considered safe.
-   ((memq encoding '(8bit quoted-printable)) 'quoted-printable)
+   ((memq encoding '(8bit quoted-printable))
+    ;; According to RFC2046, 5.2.1, RFC822 Subtype, "quoted-printable" is not
+    ;; a valid encoding for message/rfc822:
+    ;; No encoding other than "7bit", "8bit", or "binary" is permitted for the
+    ;; body of a "message/rfc822" entity.
+    (if (string= type "message/rfc822") '8bit 'quoted-printable))
    ;; The remaining encodings are binary and base64 (and perhaps some
    ;; non-standard ones), which are both turned into base64.
-   (t 'base64)))
+   (t (if (string= type "message/rfc822") 'binary 'base64))))
 
 (defun mm-encode-content-transfer-encoding (encoding &optional type)
   "Encode the current buffer with ENCODING for MIME type TYPE.
@@ -178,7 +183,7 @@ The encoding used is returned."
                            (mm-qp-or-base64)
                          (cadr (car rules)))))
                   (if mm-use-ultra-safe-encoding
-                      (mm-safer-encoding encoding)
+                      (mm-safer-encoding encoding type)
                     encoding))))
        (pop rules)))))