]> git.cworth.org Git - obsolete/notmuch-old/commitdiff
config: Check 'config get' arity exactly
authorPeter Wang <novalazy@gmail.com>
Sat, 14 Apr 2012 01:41:02 +0000 (11:41 +1000)
committerDavid Bremner <bremner@debian.org>
Sat, 28 Apr 2012 13:13:55 +0000 (10:13 -0300)
Require that 'config get' is passed exactly one additional argument,
instead of silently ignoring extra arguments. As a side-effect, produce
more specific error messages for the 'config' command as a whole.

notmuch-config.c

index 85fc7745bb81bb5b5d6b1c41c0bd7fb99ac49e91..f9eb97780c54673ca61bcae292e077c22b66745f 100644 (file)
@@ -804,15 +804,26 @@ notmuch_config_command (void *ctx, int argc, char *argv[])
 {
     argc--; argv++; /* skip subcommand argument */
 
-    if (argc < 2) {
-       fprintf (stderr, "Error: notmuch config requires at least two arguments.\n");
+    if (argc < 1) {
+       fprintf (stderr, "Error: notmuch config requires at least one argument.\n");
        return 1;
     }
 
-    if (strcmp (argv[0], "get") == 0)
+    if (strcmp (argv[0], "get") == 0) {
+       if (argc != 2) {
+           fprintf (stderr, "Error: notmuch config get requires exactly "
+                    "one argument.\n");
+           return 1;
+       }
        return notmuch_config_command_get (ctx, argv[1]);
-    else if (strcmp (argv[0], "set") == 0)
+    } else if (strcmp (argv[0], "set") == 0) {
+       if (argc < 2) {
+           fprintf (stderr, "Error: notmuch config set requires at least "
+                    "one argument.\n");
+           return 1;
+       }
        return notmuch_config_command_set (ctx, argv[1], argc - 2, argv + 2);
+    }
 
     fprintf (stderr, "Unrecognized argument for notmuch config: %s\n",
             argv[0]);