From 15f5fc513d45cb6173c1a319e3c58b724c3da4db Mon Sep 17 00:00:00 2001 From: Mark Walters Date: Wed, 31 Jul 2013 19:39:05 +0100 Subject: [PATCH] emacs: bugfix attachment content-type as mime-type handling Notmuch puts attachments in as declared content-type except when the content-type is application/octet-stream it tries to guess the type from the filename/extension. This means that viewing a pdf (for example) which is sent as application/octet-strem invokes the pdf viewer rather than just offering to save the part. Recent changes to the attachment handling (commit 1546387d) changed (broke) this. This patch stores the calculated mime-type with the part and changes the attachment part handlers can use it instead. --- emacs/notmuch-show.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index c4e0a996..82b70baf 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -892,6 +892,9 @@ If HIDE is non-nil then initially hide this part." (notmuch-show-insert-part-header nth mime-type content-type (plist-get part :filename)))) (content-beg (point))) + ;; Store the computed mime-type for later use (e.g. by attachment handlers). + (plist-put part :computed-type mime-type) + (if (not hide) (notmuch-show-insert-bodypart-internal msg part mime-type nth depth button) (button-put button :notmuch-lazy-part @@ -2055,10 +2058,10 @@ caller is responsible for killing this buffer as appropriate." (message-id (notmuch-show-get-message-id)) (nth (plist-get part :id)) (buf (notmuch-show-generate-part-buffer message-id nth)) - (content-type (plist-get part :content-type)) + (computed-type (plist-get part :computed-type)) (filename (plist-get part :filename)) (disposition (if filename `(attachment (filename . ,filename))))) - (mm-make-handle buf (list content-type) nil nil disposition))) + (mm-make-handle buf (list computed-type) nil nil disposition))) (defun notmuch-show-apply-to-current-part-handle (fn) "Apply FN to an mm-handle for the part containing point.