[PATCH v6 1/6] cli: command line parsing: allow default for keyword options
Mark Walters
markwalters1009 at gmail.com
Mon May 28 12:05:59 PDT 2012
On Mon, 28 May 2012, Peter Wang <novalazy at gmail.com> wrote:
> 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.
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
More information about the notmuch
mailing list