Mercurial > emacs
diff lisp/gnus/gnus-art.el @ 69949:d0312c3f2374
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-214
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 83)
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 12 Apr 2006 05:23:27 +0000 |
parents | a87e26272828 |
children | 027c07dcdee5 |
line wrap: on
line diff
--- a/lisp/gnus/gnus-art.el Wed Apr 12 05:11:12 2006 +0000 +++ b/lisp/gnus/gnus-art.el Wed Apr 12 05:23:27 2006 +0000 @@ -4477,19 +4477,29 @@ specified charset." (interactive (list nil current-prefix-arg)) (gnus-article-check-buffer) - (let* ((handle (or handle (get-text-property (point) 'gnus-data))) - contents charset - (b (point)) - (inhibit-read-only t)) + (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 type charset) (when handle (if (mm-handle-undisplayer handle) (mm-remove-part handle)) - (let ((gnus-newsgroup-charset - (or (cdr (assq arg - gnus-summary-show-article-charset-alist)) - (mm-read-coding-system "Charset: "))) - (gnus-newsgroup-ignored-charsets 'gnus-all)) - (gnus-article-press-button))))) + (when fun + (setq gnus-newsgroup-charset + (or (cdr (assq arg gnus-summary-show-article-charset-alist)) + (mm-read-coding-system "Charset: "))) + ;; Strip the charset parameter from `handle'. + (setq type (mm-handle-type + (if (equal (mm-handle-media-type handle) + "message/external-body") + (progn + (unless (mm-handle-cache handle) + (mm-extern-cache-contents handle)) + (mm-handle-cache handle)) + handle)) + charset (assq 'charset (cdr type))) + (delq charset type) + (funcall fun handle))))) (defun gnus-mime-view-part-externally (&optional handle) "View the MIME part under point with an external viewer."