Import Oort Gnus v0.09.
[elisp/gnus.git-] / lisp / rfc2047.el
index 1947b9e..fdce08d 100644 (file)
@@ -27,7 +27,9 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(eval-when-compile
+  (require 'cl)
+  (defvar message-posting-charset))
 
 (require 'qp)
 (require 'mm-util)
@@ -65,8 +67,8 @@ The values can be:
     (iso-8859-4 . Q)
     (iso-8859-5 . B)
     (koi8-r . B)
-    (iso-8859-7 . Q)
-    (iso-8859-8 . Q)
+    (iso-8859-7 . B)
+    (iso-8859-8 . B)
     (iso-8859-9 . Q)
     (iso-8859-14 . Q)
     (iso-8859-15 . Q)
@@ -81,7 +83,8 @@ The values can be:
     (iso-2022-jp-2 . B)
     (iso-2022-int-1 . B))
   "Alist of MIME charsets to RFC2047 encodings.
-Valid encodings are nil, `Q' and `B'.")
+Valid encodings are nil, `Q' and `B'.  These indicate binary (no) encoding,
+quoted-printable and base64 respectively.")
 
 (defvar rfc2047-encoding-function-alist
   '((Q . rfc2047-q-encode-region)
@@ -517,6 +520,14 @@ The buffer may be narrowed."
                   (prog1
                       (match-string 0)
                     (delete-region (match-beginning 0) (match-end 0)))))
+         ;; Remove newlines between decoded words.  Though such things
+         ;; must not be essentially there.
+         (save-restriction
+           (narrow-to-region e (point))
+           (goto-char e)
+           (while (re-search-forward "[\n\r]+" nil t)
+             (replace-match " "))
+           (goto-char (point-max)))
          (when (and (mm-multibyte-p)
                     mail-parse-charset
                     (not (eq mail-parse-charset 'us-ascii))