emacs: Make the part content available to `mm-inlinable-p'.
authorDavid Edmondson <dme@dme.org>
Thu, 19 Jan 2012 09:34:07 +0000 (09:34 +0000)
committerDavid Bremner <bremner@debian.org>
Thu, 26 Jan 2012 12:10:55 +0000 (08:10 -0400)
The `mm-inlinable-p' function works better if it has access to the
data of the relevant part, so load that content before calling it.

Don't load the content for parts that the user has indicated no desire
to inline.

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

emacs/notmuch-show.el

index e6a5b31fee3c0f3d820d973d029204248429a6d0..c37479a52f043b506130aaa81c01383840920b32 100644 (file)
@@ -429,14 +429,15 @@ 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)))))
+       ;; If the user wants the part inlined, insert the content and
+       ;; test whether we are able to inline it (which includes both
+       ;; capability and suitability tests).
+       (when (mm-inlined-p handle)
+         (insert (notmuch-show-get-bodypart-content msg part nth))
+         (when (mm-inlinable-p handle)
+           (set-buffer display-buffer)
+           (mm-display-part handle)
+           t))))))
 
 (defvar notmuch-show-multipart/alternative-discouraged
   '(