diff options
author | Katsumi Yamaoka <[email protected]> | 2008-09-09 22:48:45 +0000 |
---|---|---|
committer | Katsumi Yamaoka <[email protected]> | 2008-09-09 22:48:45 +0000 |
commit | c0ccb0d665e74d401e057f501962e6a017d84469 (patch) | |
tree | 9cdfb06e2ca0973aca3117b538dc9f5f14d4d7b9 | |
parent | f1ba6ccdf54c37205c0e5e332c55a86b7a1f38c8 (diff) |
* 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.
-rw-r--r-- | lisp/gnus/ChangeLog | 6 | ||||
-rw-r--r-- | lisp/gnus/gnus-art.el | 26 |
2 files changed, 20 insertions, 12 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 7fdda1bceb..fa7d7926a3 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,5 +1,11 @@ 2008-09-09 Katsumi Yamaoka <[email protected]> + * 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 <[email protected]> + * gnus-art.el (gnus-mime-strip-charset-parameters): Remove. (gnus-mime-set-charset-parameters): New function. (gnus-mime-view-part-as-charset): Use it to correctly display part diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 1438842a01..476f294515 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -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))) |