notmuch-mutt: Fix tagging issues
authorKevin J. McCarthy <kevin@8t8.us>
Sat, 7 Sep 2013 17:07:57 +0000 (10:07 -0700)
committerDavid Bremner <bremner@debian.org>
Mon, 9 Sep 2013 01:47:51 +0000 (22:47 -0300)
This patch fixes three issues with "notmuch-mutt tag":

1. The message_id was not shell quoted.
   Thanks to Jason Miller for the bug report and patch.

2. The tags passed into tag_action() were not being properly quoted.
   The "join before shell_quote" was combining multiple tags into a
   single argument to notmuch tag: '+one -two -three' instead of
   '+one' '-two' '-three'.

3. A "--" was added between the tags and search-term as shown in the
   current notmuch-tag man page.

Thanks to Tomi Ollila for suggesting the simple fix of using
the list form of system(), which bypasses the shell.

contrib/notmuch-mutt/notmuch-mutt

index c69b35c98651115e0f42dea17d70641752f51ef9..4969e4be64c3f29140e25b97ee137947058cd8ca 100755 (executable)
@@ -113,9 +113,7 @@ sub tag_action(@) {
     my $mid = get_message_id();
     defined $mid or die "notmuch-mutt: cannot find Message-Id, abort.\n";
 
-    system("notmuch tag "
-          . shell_quote(join(' ', @_))
-          . " id:$mid");
+    system("notmuch", "tag", @_, "--", "id:$mid");
 }
 
 sub die_usage() {