On Sun, 27 May 2012 09:22:21 +0100, Mark Walters <markwalters1009@gmail.com> wrote: > This changes the parsing for "keyword" options so that if the option > is specified with no argument the argument is parsed as if it were > passed an empty string. This make it easier to add options to existing > boolean arguments (the existing --option can default to TRUE). > --- > command-line-arguments.c | 17 +++++++++++++---- > 1 files changed, 13 insertions(+), 4 deletions(-) > > diff --git a/command-line-arguments.c b/command-line-arguments.c > index 76b185f..2fb8a1b 100644 > --- a/command-line-arguments.c > +++ b/command-line-arguments.c > @@ -11,10 +11,15 @@ > */ > > static notmuch_bool_t > -_process_keyword_arg (const notmuch_opt_desc_t *arg_desc, const char *arg_str) { > +_process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { > > const notmuch_keyword_t *keywords = arg_desc->keywords; > > + if (next == 0) { > + /* No keyword given */ > + arg_str=""; > + } > + Whitespace. > while (keywords->name) { > if (strcmp (arg_str, keywords->name) == 0) { > if (arg_desc->output_var) { > @@ -24,7 +29,10 @@ _process_keyword_arg (const notmuch_opt_desc_t *arg_desc, const char *arg_str) { > } > keywords++; > } > - fprintf (stderr, "unknown keyword: %s\n", arg_str); > + if (next!=0) Whitespace. > + fprintf (stderr, "unknown keyword: %s\n", arg_str); > + else > + fprintf (stderr, "option %s needs a keyword\n", arg_desc->name); I think "keyword argument" is clearer. Peter