]> git.eshelyaron.com Git - emacs.git/commitdiff
* gnus-art.el (gnus-mime-set-charset-parameters): Add new argument
authorKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 9 Sep 2008 22:48:45 +0000 (22:48 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 9 Sep 2008 22:48:45 +0000 (22:48 +0000)
`charset'; fix name of function called recursively.
(gnus-mime-view-part-as-charset): Don't bind gnus-newsgroup-charset.

lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el

index 7fdda1bcebcbaddc0fea8809b3c4d7d051ba656b..fa7d7926a38841494f3f2d590a50c8bd379fdfb9 100644 (file)
@@ -1,3 +1,9 @@
+2008-09-09  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-art.el (gnus-mime-set-charset-parameters): Add new argument
+       `charset'; fix name of function called recursively.
+       (gnus-mime-view-part-as-charset): Don't bind gnus-newsgroup-charset.
+
 2008-09-09  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-art.el (gnus-mime-strip-charset-parameters): Remove.
index 1438842a014fe6b83472645625d7aae7d10869ab..476f294515791762fc8a3053715b3eeb8d06716c 100644 (file)
@@ -5138,11 +5138,14 @@ Compressed files like .gz and .bz2 are decompressed."
           (mm-string-to-multibyte contents)))
        (goto-char b)))))
 
-(defun gnus-mime-set-charset-parameters (handle)
-  "Set charset to parameters in HANDLE.
-The value of `gnus-newsgroup-charset' is used as a charset."
+(defun gnus-mime-set-charset-parameters (handle charset)
+  "Set CHARSET to parameters in HANDLE.
+CHARSET may either be a string or a symbol."
+  (unless (stringp charset)
+    (setq charset (symbol-name charset)))
   (if (stringp (car handle))
-      (mapc #'gnus-mime-strip-charset-parameters (cdr handle))
+      (dolist (h (cdr handle))
+       (gnus-mime-set-charset-parameters h charset))
     (let* ((type (mm-handle-type (if (equal (mm-handle-media-type handle)
                                            "message/external-body")
                                     (progn
@@ -5150,11 +5153,10 @@ The value of `gnus-newsgroup-charset' is used as a charset."
                                         (mm-extern-cache-contents handle))
                                       (mm-handle-cache handle))
                                   handle)))
-          (charset (assq 'charset (cdr type))))
-      (if charset
-         (setcdr charset (symbol-name gnus-newsgroup-charset))
-       (setcdr type (cons (cons 'charset (symbol-name gnus-newsgroup-charset))
-                          (cdr type)))))))
+          (param (assq 'charset (cdr type))))
+      (if param
+         (setcdr param charset)
+       (setcdr type (cons (cons 'charset charset) (cdr type)))))))
 
 (defun gnus-mime-view-part-as-charset (&optional handle arg)
   "Insert the MIME part under point into the current buffer using the
@@ -5164,18 +5166,18 @@ specified charset."
   (let ((handle (or handle (get-text-property (point) 'gnus-data)))
        (fun (get-text-property (point) 'gnus-callback))
        (gnus-newsgroup-ignored-charsets 'gnus-all)
-       gnus-newsgroup-charset form preferred parts)
+       charset form preferred parts)
     (when handle
       (when (prog1
                (and fun
-                    (setq gnus-newsgroup-charset
+                    (setq charset
                           (or (cdr (assq
                                     arg
                                     gnus-summary-show-article-charset-alist))
                               (mm-read-coding-system "Charset: "))))
              (if (mm-handle-undisplayer handle)
                  (mm-remove-part handle)))
-       (gnus-mime-set-charset-parameters handle)
+       (gnus-mime-set-charset-parameters handle charset)
        (when (and (consp (setq form (cdr-safe fun)))
                   (setq form (ignore-errors
                                (assq 'gnus-mime-display-alternative form)))