On Mon, 28 May 2012, Peter Wang <novalazy@gmail.com> wrote: > 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. Will fix >> 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. Will fix >> + 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. I think I agree: the reason I kept it is that the first case is the existing error message. Any comments from anyone? Best wishes Mark