(rfc2047-encode): See which encoding is shorter --
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 17 Oct 2003 17:52:01 +0000 (17:52 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 17 Oct 2003 17:52:01 +0000 (17:52 +0000)
base64 or QP.

lisp/ChangeLog
lisp/rfc2047.el

index a9b33db..20cf2c0 100644 (file)
@@ -1,5 +1,8 @@
 2003-10-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+       * rfc2047.el (rfc2047-encode): See which encoding is shorter --
+       base64 or QP.
+
        * nnmail.el (nnmail-article-group): Default to "bogus".
 
        * mail-source.el (mail-source-delete-incoming): Change to nil.
index 7dc6ae8..bc54575 100644 (file)
@@ -405,11 +405,15 @@ By default, the region is treated as containing addresses (see
               (mm-charset-to-coding-system mime-charset)))
         ;; Fixme: Better, calculate the number of non-ASCII
         ;; characters, at least for 8-bit charsets.
-        (encoding (if (assq mime-charset
-                            rfc2047-charset-encoding-alist)
-                      (cdr (assq mime-charset
+        (encoding (or (cdr (assq mime-charset
                                  rfc2047-charset-encoding-alist))
-                    'B))
+                      ;; For the charsets that don't have a preferred
+                      ;; encoding, choose the one that's shorter.
+                      (save-restriction
+                        (narrow-to-region b e)
+                        (if (eq (mm-qp-or-base64) 'base64)
+                            'B
+                          'Q))))
         (start (concat
                 "=?" (downcase (symbol-name mime-charset)) "?"
                 (downcase (symbol-name encoding)) "?"))