* bug in attachment handling
@ 2013-07-30 14:53 Mark Walters
2013-07-30 15:16 ` Mark Walters
0 siblings, 1 reply; 7+ messages in thread
From: Mark Walters @ 2013-07-30 14:53 UTC (permalink / raw)
To: notmuch
[-- Attachment #1: Type: text/plain, Size: 659 bytes --]
Hi
I have been seeing a bug in attachment handling in recent notmuch. If a
pdf part is sent as application/octet-stream then notmuch says
[[file.pdf: application/octet-stream (as application/pdf) ] but when
viewing it with . v or the default button action (when customised to
view) it treats it as application/octet-stream.
I think this is a regression but haven't checked yet: it probably has a
simple fix so we may want to fix it before 0.16 (users may be grumpy
about the key binding changes etc as it is!)
I attach a pdf with this message (just a mozilla print-to-file of the
notmuch webpage) which should demonstrate the problem.
Best wishes
Mark
[-- Attachment #2: mozilla.pdf --]
[-- Type: application/octet-stream, Size: 48535 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: bug in attachment handling
2013-07-30 14:53 bug in attachment handling Mark Walters
@ 2013-07-30 15:16 ` Mark Walters
2013-07-30 16:15 ` [PATCH] emacs: bugfix attachment content-type as mime-type handling Mark Walters
0 siblings, 1 reply; 7+ messages in thread
From: Mark Walters @ 2013-07-30 15:16 UTC (permalink / raw)
To: notmuch
Hi
On Tue, 30 Jul 2013, Mark Walters <markwalters1009@gmail.com> wrote:
> Hi
>
> I have been seeing a bug in attachment handling in recent notmuch. If a
> pdf part is sent as application/octet-stream then notmuch says
> [[file.pdf: application/octet-stream (as application/pdf) ] but when
> viewing it with . v or the default button action (when customised to
> view) it treats it as application/octet-stream.
>
> I think this is a regression but haven't checked yet: it probably has a
> simple fix so we may want to fix it before 0.16 (users may be grumpy
> about the key binding changes etc as it is!)
>
> I attach a pdf with this message (just a mozilla print-to-file of the
> notmuch webpage) which should demonstrate the problem.
I have now checked that it is a regression: 0.15 is fine and git bisect
gives the first bad commit as 1546387d723ec47cd281f3c2bf6da2fddf18c045.
The problem comes because we used to store the content-type with the
button: it was called content-type but in the function
notmuch-show-insert-part-header this was the "calculated content-type"
(with declared-type being the originally declared type).
Elsewhere though content-type is used for the original declared-type
including where the version post 1546 above picks it up (in
notmuch-show-current-part-handle).
So somehow we need to get the calculated content-type into that
function. I am not sure what the cleanest way to do that is so will
just post this for now.
Best wishes
Mark
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] emacs: bugfix attachment content-type as mime-type handling
2013-07-30 15:16 ` Mark Walters
@ 2013-07-30 16:15 ` Mark Walters
2013-07-30 21:00 ` Tomi Ollila
2013-07-31 2:25 ` Austin Clements
0 siblings, 2 replies; 7+ messages in thread
From: Mark Walters @ 2013-07-30 16:15 UTC (permalink / raw)
To: notmuch
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.
---
This seems to fix the bug for me. I am not sure I like the naming
(mime-type/content-type). Maybe it would be better to be explicit with
something like calculated-content-type but probably that should be a
more wholesale renaming.
Best wishes
Mark
emacs/notmuch-show.el | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index c4e0a99..9f47f5e 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 calculated mime-type for later use (e.g. by attachment handlers).
+ (plist-put part :mime-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))
+ (mime-type (plist-get part :mime-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 mime-type) nil nil disposition)))
(defun notmuch-show-apply-to-current-part-handle (fn)
"Apply FN to an mm-handle for the part containing point.
--
1.7.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] emacs: bugfix attachment content-type as mime-type handling
2013-07-30 16:15 ` [PATCH] emacs: bugfix attachment content-type as mime-type handling Mark Walters
@ 2013-07-30 21:00 ` Tomi Ollila
2013-07-31 2:25 ` Austin Clements
1 sibling, 0 replies; 7+ messages in thread
From: Tomi Ollila @ 2013-07-30 21:00 UTC (permalink / raw)
To: Mark Walters, notmuch
On Tue, Jul 30 2013, Mark Walters <markwalters1009@gmail.com> wrote:
> 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.
> ---
> This seems to fix the bug for me. I am not sure I like the naming
> (mime-type/content-type). Maybe it would be better to be explicit with
> something like calculated-content-type but probably that should be a
> more wholesale renaming.
I tested this (before and after applying the patch), using notmuch
remotely and viewing id:87ppu0t7yf.fsf@qmul.ac.uk .
Before applying emacs promted me an output file, after applying xdg-open
was executed - which executed evince to show the pdf document in that email.
If this restores the behaviour that was experienced with notmuch 0.15(.2)
then this imho is a good fix to be applied quickly before 0.16 is released...
>
> Best wishes
>
> Mark
Tomi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] emacs: bugfix attachment content-type as mime-type handling
2013-07-30 16:15 ` [PATCH] emacs: bugfix attachment content-type as mime-type handling Mark Walters
2013-07-30 21:00 ` Tomi Ollila
@ 2013-07-31 2:25 ` Austin Clements
2013-07-31 18:39 ` [PATCH v2] " Mark Walters
1 sibling, 1 reply; 7+ messages in thread
From: Austin Clements @ 2013-07-31 2:25 UTC (permalink / raw)
To: Mark Walters; +Cc: notmuch
Quoth Mark Walters on Jul 30 at 5:15 pm:
> 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.
> ---
> This seems to fix the bug for me. I am not sure I like the naming
> (mime-type/content-type). Maybe it would be better to be explicit with
> something like calculated-content-type but probably that should be a
> more wholesale renaming.
Code LGTM, though I agree the naming could be better. It would be
nice to have a test for this so we don't regress again in the future.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] emacs: bugfix attachment content-type as mime-type handling
2013-07-31 2:25 ` Austin Clements
@ 2013-07-31 18:39 ` Mark Walters
2013-07-31 22:21 ` David Bremner
0 siblings, 1 reply; 7+ messages in thread
From: Mark Walters @ 2013-07-31 18:39 UTC (permalink / raw)
To: notmuch
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.
---
This is the same as v1 except that it uses the name computed-type
rather than mime-type for the computed mime type.
We may want to change some of the other uses of the mime-type variable
name too but the view on irc was that that could wait.
Best wishes
Mark
emacs/notmuch-show.el | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index c4e0a99..82b70ba 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.
--
1.7.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-31 22:21 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-30 14:53 bug in attachment handling Mark Walters
2013-07-30 15:16 ` Mark Walters
2013-07-30 16:15 ` [PATCH] emacs: bugfix attachment content-type as mime-type handling Mark Walters
2013-07-30 21:00 ` Tomi Ollila
2013-07-31 2:25 ` Austin Clements
2013-07-31 18:39 ` [PATCH v2] " Mark Walters
2013-07-31 22:21 ` David Bremner
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).