cli: fix top level --help combined with other options
authorJani Nikula <jani@nikula.org>
Sun, 8 Mar 2015 16:18:54 +0000 (18:18 +0200)
committerDavid Bremner <david@tethera.net>
Wed, 11 Mar 2015 07:07:41 +0000 (08:07 +0100)
If the top level --help is combined with other options, help
fails. For example:

    $ notmuch --version --help

    Sorry, --help is not a known command. There's not much I can do to help.

Fix this by adjusting argc and argv appropriately. The help command
ignores argv[0] anyway, so we don't have to set it to "help".

notmuch.c

index 0fac0997865e6acd8622707c49d2d29999d488e3..1717e8b3683c485e4652e37abc9886e13d2afa49 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -315,7 +315,13 @@ main (int argc, char *argv[])
     }
 
     if (print_help) {
-       ret = notmuch_help_command (NULL, argc - 1, &argv[1]);
+       /*
+        * Pass the first positional argument as argv[1] so the help
+        * command can give help for it. The help command ignores the
+        * argv[0] passed to it.
+        */
+       ret = notmuch_help_command (NULL, argc - opt_index + 1,
+                                   argv + opt_index - 1);
        goto DONE;
     }