From aaa6f741d48c765c5af9312004d6d49e14c9304c Mon Sep 17 00:00:00 2001 From: "Peder O. Klingenberg" Date: Mon, 26 Jan 2015 14:26:27 +1100 Subject: [PATCH] Fixups when displaying certain attachments * mm-decode.el (mm-display-part): Make non-string methods work. Non-string methods are funcalled and work just fine, the test was bogus. * mm-decode.el (mm-display-external): Show "external" lisp viewers in whole frame. --- lisp/ChangeLog | 8 ++++++++ lisp/mm-decode.el | 20 ++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9aebb5492..11f128251 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2014-12-30 Peder O. Klingenberg + + * mm-decode.el (mm-display-part): Make non-string methods work. + Non-string methods are funcalled and work just fine, the test was + bogus. + * mm-decode.el (mm-display-external): Show "external" lisp viewers in + whole frame. + 2015-01-26 Lars Ingebrigtsen * nnimap.el (nnimap-request-accept-article): Allow respooling using diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index fb32ad9e8..f03b9c9b4 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -833,18 +833,18 @@ external if displayed external." 'inline) (setq external (and method ;; If nil, we always use "save". - (stringp method) ;; 'mailcap-save-binary-file (or (eq mm-enable-external t) (and (eq mm-enable-external 'ask) (y-or-n-p (concat "Display part (" type - ") using external program" - ;; Can non-string method ever happen? + ") " (if (stringp method) (concat - " \"" (format method filename) "\"") - "") + "using external program \"" + (format method filename) "\"") + (format + "by calling `%s' on the contents)" method)) "? ")))))) (if external (mm-display-external @@ -885,7 +885,15 @@ external if displayed external." (mm-handle-media-type handle) t)))) (unwind-protect (if method - (funcall method) + (progn + (when (and (boundp 'gnus-summary-buffer) + (bufferp gnus-summary-buffer) + (buffer-name gnus-summary-buffer)) + ;; So that we pop back to the right place, sortof. + (switch-to-buffer gnus-summary-buffer) + (switch-to-buffer mm)) + (delete-other-windows) + (funcall method)) (mm-save-part handle)) (when (and (not non-viewer) method) -- 2.25.1