[PATCH] emacs: Make the part content available to the mm-inline* checks.

David Edmondson dme at dme.org
Wed Jan 18 09:33:13 PST 2012


The `mm-inlinable-p' and `mm-inlined-p' functions work better if they
have access to the data of the relevant part, so load that content
before calling either function.

This fixes the display of attached image/jpeg parts, for example.
---

I dropped this on the floor after discussing it in #notmuch, sorry!

 emacs/notmuch-show.el |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 2df8d3b..71309c3 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -330,14 +330,17 @@ current buffer, if possible."
     (with-temp-buffer
       (let* ((charset (plist-get part :content-charset))
 	     (handle (mm-make-handle (current-buffer) `(,content-type (charset . ,charset)))))
-	(if (and (mm-inlinable-p handle)
-		 (mm-inlined-p handle))
-	    (let ((content (notmuch-show-get-bodypart-content msg part nth)))
-	      (insert content)
-	      (set-buffer display-buffer)
-	      (mm-display-part handle)
-	      t)
-	  nil)))))
+	(insert (notmuch-show-get-bodypart-content msg part nth))
+	(when (and (mm-inlinable-p handle)
+		   (mm-inlined-p handle))
+	  (set-buffer display-buffer)
+
+	  ;; Nonsense required to have the new gnus `shr' HTML
+	  ;; display code work.
+	  (let ((gnus-inhibit-images nil))
+	    (makunbound 'gnus-summary-buffer) ; Blech.
+	    (mm-display-part handle))
+	  t)))))
 
 (defvar notmuch-show-multipart/alternative-discouraged
   '(
-- 
1.7.8.3



More information about the notmuch mailing list