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