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

Reply via email to