[PATCH v6 1/6] cli: command line parsing: allow default for keyword options

Peter Wang novalazy at gmail.com
Mon May 28 06:31:52 PDT 2012


On Sun, 27 May 2012 09:22:21 +0100, Mark Walters <markwalters1009 at 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


More information about the notmuch mailing list