Importing Gnus v5.8.2.
[elisp/gnus.git-] / lisp / rfc2047.el
index 6e7512c..3344753 100644 (file)
@@ -297,12 +297,14 @@ Should be called narrowed to the head of the message."
                       (match-string 0)
                     (delete-region (match-beginning 0) (match-end 0)))))
          (when (and (mm-multibyte-p)
                       (match-string 0)
                     (delete-region (match-beginning 0) (match-end 0)))))
          (when (and (mm-multibyte-p)
-                    mail-parse-charset)
+                    mail-parse-charset
+                    (not (eq mail-parse-charset 'gnus-decoded)))
            (mm-decode-coding-region b e mail-parse-charset))
          (setq b (point)))
        (when (and (mm-multibyte-p)
                   mail-parse-charset
            (mm-decode-coding-region b e mail-parse-charset))
          (setq b (point)))
        (when (and (mm-multibyte-p)
                   mail-parse-charset
-                  (not (eq mail-parse-charset 'us-ascii)))
+                  (not (eq mail-parse-charset 'us-ascii))
+                  (not (eq mail-parse-charset 'gnus-decoded)))
          (mm-decode-coding-region b (point-max) mail-parse-charset))))))
 
 (defun rfc2047-decode-string (string)
          (mm-decode-coding-region b (point-max) mail-parse-charset))))))
 
 (defun rfc2047-decode-string (string)
@@ -336,9 +338,16 @@ Valid ENCODINGs are \"B\" and \"Q\".
 If your Emacs implementation can't decode CHARSET, it returns nil."
   (if (stringp charset)
     (setq charset (intern (downcase charset))))
 If your Emacs implementation can't decode CHARSET, it returns nil."
   (if (stringp charset)
     (setq charset (intern (downcase charset))))
-  (if (or (not charset) (memq charset mail-parse-ignored-charsets))
+  (if (or (not charset) 
+         (eq 'gnus-all mail-parse-ignored-charsets)
+         (memq 'gnus-all mail-parse-ignored-charsets)
+         (memq charset mail-parse-ignored-charsets))
       (setq charset mail-parse-charset))
   (let ((cs (mm-charset-to-coding-system charset)))
       (setq charset mail-parse-charset))
   (let ((cs (mm-charset-to-coding-system charset)))
+    (if (and (not cs) charset 
+            (listp mail-parse-ignored-charsets)
+            (memq 'gnus-unknown mail-parse-ignored-charsets))
+      (setq cs (mm-charset-to-coding-system mail-parse-charset)))
     (when cs
       (when (and (eq cs 'ascii)
                 mail-parse-charset)
     (when cs
       (when (and (eq cs 'ascii)
                 mail-parse-charset)