summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeder O. Klingenberg <peder@klingenberg.no>2015-01-26 04:19:51 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2015-01-26 04:19:51 +0000
commitf6019361e26b0b305129b2230136d87df5d636c2 (patch)
treea6bc1c606636b5586afe80065b6c6847f53a8aeb
parent8e39ec680c7068c2dc2143bf915e5acca7bf7c0f (diff)
downloademacs-f6019361e26b0b305129b2230136d87df5d636c2.tar.gz
[Gnus] Fixups when displaying certain attachments
-rw-r--r--lisp/gnus/ChangeLog8
-rw-r--r--lisp/gnus/mm-decode.el20
2 files changed, 22 insertions, 6 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index e47e8ad282c..7ef526b4253 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,11 @@
+2015-01-26 Peder O. Klingenberg <peder@klingenberg.no>
+
+ * 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 <larsi@gnus.org>
* nnimap.el (nnimap-request-accept-article): Allow respooling using
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index fb32ad9e8e6..f03b9c9b484 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/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)