emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/gnus rfc2047.el mm-util.el ChangeLog


From: Katsumi Yamaoka
Subject: [Emacs-diffs] emacs/lisp/gnus rfc2047.el mm-util.el ChangeLog
Date: Wed, 10 Dec 2008 10:02:52 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Katsumi Yamaoka <yamaoka>       08/12/10 10:02:52

Modified files:
        lisp/gnus      : rfc2047.el mm-util.el ChangeLog 

Log message:
        * rfc2047.el (rfc2047-charset-to-coding-system): Add new argument
        `allow-override' which says whether to use `mm-charset-override-alist'.
        (rfc2047-decode-encoded-words): Use it.
        
        * mm-util.el (mm-charset-override-alist): Fix custom type;
        add `(gb2312 . gbk)' to choices.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/gnus/rfc2047.el?cvsroot=emacs&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/gnus/mm-util.el?cvsroot=emacs&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/gnus/ChangeLog?cvsroot=emacs&r1=1.775&r2=1.776

Patches:
Index: rfc2047.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/gnus/rfc2047.el,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- rfc2047.el  27 Jun 2008 07:34:48 -0000      1.42
+++ rfc2047.el  10 Dec 2008 10:02:50 -0000      1.43
@@ -902,9 +902,13 @@
            (error
             (goto-char beg))))))))
 
-(defun rfc2047-charset-to-coding-system (charset)
+(defun rfc2047-charset-to-coding-system (charset &optional allow-override)
   "Return coding-system corresponding to MIME CHARSET.
-If your Emacs implementation can't decode CHARSET, return nil."
+If your Emacs implementation can't decode CHARSET, return nil.
+
+If allow-override is given, use `mm-charset-override-alist' to
+map undesired charset names to their replacement.  This should
+only be used for decoding, not for encoding."
   (when (stringp charset)
     (setq charset (intern (downcase charset))))
   (when (or (not charset)
@@ -912,7 +916,7 @@
            (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)))
+  (let ((cs (mm-charset-to-coding-system charset nil allow-override)))
     (cond ((eq cs 'ascii)
           (setq cs (or (mm-charset-to-coding-system mail-parse-charset)
                        'raw-text)))
@@ -933,7 +937,7 @@
     (while words
       (setq word (pop words))
       (if (and (setq cs (rfc2047-charset-to-coding-system
-                        (setq charset (car word))))
+                        (setq charset (car word)) t))
               (condition-case code
                   (cond ((char-equal ?B (nth 1 word))
                          (setq text (base64-decode-string

Index: mm-util.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/gnus/mm-util.el,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- mm-util.el  2 Oct 2008 17:27:27 -0000       1.74
+++ mm-util.el  10 Dec 2008 10:02:51 -0000      1.75
@@ -397,15 +397,42 @@
 You may add pairs like (iso-8859-1 . windows-1252) here,
 i.e. treat iso-8859-1 as windows-1252.  windows-1252 is a
 superset of iso-8859-1."
-  :type '(list (set :inline t
-                   (const (iso-8859-1 . windows-1252))
-                   (const (iso-8859-8 . windows-1255))
-                   (const (iso-8859-9 . windows-1254))
-                   (const (undecided  . windows-1252)))
-              (repeat :inline t
-                      :tag "Other options"
-                      (cons (symbol :tag "From charset")
-                            (symbol :tag "To charset"))))
+  :type
+  '(list
+    :convert-widget
+    (lambda (widget)
+      (let ((defaults
+             (delq nil
+                   (mapcar (lambda (pair)
+                             (if (mm-charset-to-coding-system (cdr pair))
+                                 pair))
+                           '((gb2312 . gbk)
+                             (iso-8859-1 . windows-1252)
+                             (iso-8859-8 . windows-1255)
+                             (iso-8859-9 . windows-1254)
+                             (undecided  . windows-1252)))))
+           (val (copy-sequence (default-value 'mm-charset-override-alist)))
+           pair rest)
+       (while val
+         (push (if (and (prog1
+                            (setq pair (assq (caar val) defaults))
+                          (setq defaults (delq pair defaults)))
+                        (equal (car val) pair))
+                   `(const ,pair)
+                 `(cons :format "%v"
+                        (const :format "(%v" ,(caar val))
+                        (symbol :size 3 :format " . %v)\n" ,(cdar val))))
+               rest)
+         (setq val (cdr val)))
+       (while defaults
+         (push `(const ,(pop defaults)) rest))
+       (widget-convert
+        'list
+        `(set :inline t :format "%v" ,@(nreverse rest))
+        `(repeat :inline t :tag "Other options"
+                 (cons :format "%v"
+                       (symbol :size 3 :format "(%v")
+                       (symbol :size 3 :format " . %v)\n")))))))
   :version "22.1" ;; Gnus 5.10.9
   :group 'mime)
 

Index: ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/gnus/ChangeLog,v
retrieving revision 1.775
retrieving revision 1.776
diff -u -b -r1.775 -r1.776
--- ChangeLog   6 Dec 2008 17:26:19 -0000       1.775
+++ ChangeLog   10 Dec 2008 10:02:51 -0000      1.776
@@ -1,3 +1,12 @@
+2008-12-10  Katsumi Yamaoka  <address@hidden>
+
+       * rfc2047.el (rfc2047-charset-to-coding-system): Add new argument
+       `allow-override' which says whether to use `mm-charset-override-alist'.
+       (rfc2047-decode-encoded-words): Use it.
+
+       * mm-util.el (mm-charset-override-alist): Fix custom type;
+       add `(gb2312 . gbk)' to choices.
+
 2008-12-04  Katsumi Yamaoka  <address@hidden>
 
        * mm-view.el (mm-inline-text-html-render-with-w3m): Make it simple and




reply via email to

[Prev in Thread] Current Thread [Next in Thread]