Allow overriding charset in some decoding functions
authorKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 27 Nov 2013 06:39:16 +0000 (06:39 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 27 Nov 2013 06:39:16 +0000 (06:39 +0000)
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-html.el
lisp/mm-view.el
lisp/rfc2231.el

index ed12191..fc3a58f 100644 (file)
@@ -1,5 +1,13 @@
 2013-11-27  Katsumi Yamaoka  <yamaoka@jpl.org>
 
+       * gnus-art.el (article-de-quoted-unreadable)
+       (article-de-base64-unreadable, gnus-mime-copy-part)
+       * gnus-html.el (gnus-article-html)
+       * mm-view.el (mm-inline-text-html-render-with-w3)
+       (mm-inline-text-html-render-with-w3m-standalone)
+       * rfc2231.el (rfc2231-decode-encoded-string):
+       Allow overriding charset by mm-charset-override-alist.
+
        * gnus-art.el (gnus-article-browse-html-parts):
        Replace LWSPs with `&nbsp;'s in header.
 
index 7161b9a..2b14714 100644 (file)
@@ -2666,7 +2666,7 @@ If READ-CHARSET, ask for a coding system."
                            (string-match "quoted-printable" type))))
        (article-goto-body)
        (quoted-printable-decode-region
-        (point) (point-max) (mm-charset-to-coding-system charset))))))
+        (point) (point-max) (mm-charset-to-coding-system charset nil t))))))
 
 (defun article-de-base64-unreadable (&optional force read-charset)
   "Translate a base64 article.
@@ -2697,7 +2697,8 @@ If READ-CHARSET, ask for a coding system."
          (narrow-to-region (point) (point-max))
          (base64-decode-region (point-min) (point-max))
          (mm-decode-coding-region
-          (point-min) (point-max) (mm-charset-to-coding-system charset)))))))
+          (point-min) (point-max)
+          (mm-charset-to-coding-system charset nil t)))))))
 
 (eval-when-compile
   (require 'rfc1843))
@@ -5248,7 +5249,8 @@ are decompressed."
       (switch-to-buffer (generate-new-buffer filename))
       (if (or coding-system
              (and charset
-                  (setq coding-system (mm-charset-to-coding-system charset))
+                  (setq coding-system (mm-charset-to-coding-system
+                                       charset nil t))
                   (not (eq coding-system 'ascii))))
          (progn
            (mm-enable-multibyte)
index 2700af3..36c1677 100644 (file)
@@ -143,7 +143,8 @@ CHARS is a regexp-like character alternative (e.g., \"[)$]\")."
                 (charset (mail-content-type-get (mm-handle-type handle)
                                                 'charset)))
            (when (and charset
-                      (setq charset (mm-charset-to-coding-system charset))
+                      (setq charset (mm-charset-to-coding-system
+                                     charset nil t))
                       (not (eq charset 'ascii)))
              (insert (prog1
                          (mm-decode-coding-string (buffer-string) charset)
index 9512a41..48124f1 100644 (file)
                                  (match-end 2))))
                    (if (fboundp 'w3-coding-system-for-mime-charset)
                        (w3-coding-system-for-mime-charset bsubstr)
-                     (mm-charset-to-coding-system bsubstr))))
+                     (mm-charset-to-coding-system bsubstr nil t))))
            (delete-region (point-min) (point-max))
            (insert (mm-decode-string text charset))))
        (save-window-excursion
                                                'charset)
                         (symbol-name mail-parse-charset)))
            cs)
-       (unless (and charset
-                    (setq cs (mm-charset-to-coding-system charset))
-                    (not (eq cs 'ascii)))
+       (if (and charset
+                (setq cs (mm-charset-to-coding-system charset nil t))
+                (not (eq cs 'ascii)))
+           (setq charset (format "%s" (mm-coding-system-to-mime-charset cs)))
          ;; The default.
          (setq charset "iso-8859-1"
                cs 'iso-8859-1))
index e8d7075..4baacde 100644 (file)
@@ -215,7 +215,8 @@ These look like:
  \"''This%20is%20%2A%2A%2Afun%2A%2A%2A\", or
  \"This is ***fun***\"."
   (string-match "\\`\\(?:\\([^']+\\)?'\\([^']+\\)?'\\)?\\(.+\\)" string)
-  (let ((coding-system (mm-charset-to-coding-system (match-string 1 string)))
+  (let ((coding-system (mm-charset-to-coding-system
+                       (match-string 1 string) nil t))
        ;;(language (match-string 2 string))
        (value (match-string 3 string)))
     (mm-with-unibyte-buffer