[RFC PATCHv2 7/8] vim: mailcap: show all alternatives if none preferred

2016-10-14 Thread Nick Howell
Display all parts of a multipart/alternative message (or message-part) if no alternative_preference matches any of the alternative mimetypes. E.g. if a message is multipart/alternative with options text/plain and text/html, and the alternative_preference is ['application/pdf'], no preference

[RFC PATCHv2 8/8] vim: mailcap: handle mailcap failure gracefully

2016-10-14 Thread Nick Howell
--- vim/notmuch.vim | 6 ++ 1 file changed, 6 insertions(+) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index cdcaa5f..79a0e27 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -374,6 +374,12 @@ ruby << EOF io.each_line do |l|

[RFC PATCHv2 5/8] vim: mailcap: redraw after processing

2016-10-14 Thread Nick Howell
--- vim/notmuch.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index a20dd86..5cb8d20 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -370,6 +370,7 @@ ruby << EOF VIM::command("syntax region nmShowMsg#{i}Body start='\\%%%il'

[RFC PATCHv2 2/8] vim: mailcap: forbid access to display server

2016-10-14 Thread Nick Howell
Default to prevent mailcap from accessing the display server. Potential concerns: a malicious .mailcap file + attachment could read your keystrokes, or if the .mailcap file is non-malicious, an attachment exploiting a vulnerability in your mailcap viewer. In principle we should probably try to

[RFC PATCHv2 0/8] vim: add mailcap filtering to show

2016-10-14 Thread Nick Howell
This patch series adds the ability to display parts with non-plaintext mime types. It uses the mailcap facility (see the commit message for the first patch) to transform to plaintext. The latter patches add special handling for multipart/alternative (instead of just treating it as

[RFC PATCH 5/7] vim: mailcap: redraw after processing

2016-10-14 Thread Nick Howell
--- vim/notmuch.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index a20dd86..5cb8d20 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -370,6 +370,7 @@ ruby << EOF VIM::command("syntax region nmShowMsg#{i}Body start='\\%%%il'

[RFC PATCH 3/7] vim: mailcap: gracefully handle missing mimetype

2016-10-14 Thread Nick Howell
Some plaintext messages do not specify a mimetype. Instead of failing in this situation, just assume the part is plaintext. (Maybe a better strategy would be to check if the message contains non-unicode first?) --- vim/notmuch.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff

[RFC PATCH 4/7] vim: mailcap: don't corrupt the view if filters write to stderr

2016-10-14 Thread Nick Howell
--- vim/notmuch.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/notmuch.vim b/vim/notmuch.vim index 89fa2dc..a20dd86 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -347,7 +347,7 @@ ruby << EOF parts.each do |part|

[RFC PATCHv2 1/8] vim: show: add mailcap filtering

2016-10-14 Thread Nick Howell
Add mailcap filters, which allow us to display multiple parts. See http://packages.debian.org/unstable/net/mime-support for details on run-mailcap, the mailcap program we default to; the TLDR is that mailcap is a program which accepts a mimetype argument, looks up a translation program based on

[RFC PATCH 2/7] vim: mailcap: forbid access to display server

2016-10-14 Thread Nick Howell
Default to prevent mailcap from accessing the display server. Potential concerns: a malicious .mailcap file + attachment could read your keystrokes, or if the .mailcap file is non-malicious, an attachment exploiting a vulnerability in your mailcap viewer. In principle we should probably try to

[RFC PATCH 6/7] vim: mailcap: show all alternatives if none preferred

2016-10-14 Thread Nick Howell
Display all parts of a multipart/alternative message (or message-part) if no alternative_preference matches any of the alternative mimetypes. E.g. if a message is multipart/alternative with options text/plain and text/html, and the alternative_preference is ['application/pdf'], no preference

[RFC PATCH 2/2] vim: compose: attachment support

2016-10-14 Thread Nick Howell
Adds attachment support through the mail gem. Notmuch-Attach headers list files which are added to the message before sending. Files are added by constructing a new post-processed transport Mail object using the Notmuch-Attach header and the original Mail object. Any attachments added (say by

[RFC PATCH 0/7] vim: add mailcap filtering to show

2016-10-14 Thread Nick Howell
This patch series adds the ability to display parts with non-plaintext mime types. It uses the mailcap facility (see the commit message for the first patch) to transform to plaintext. The latter patches add special handling for multipart/alternative (instead of just treating it as