X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=command-line-arguments.c;h=3fa8d9044966973cc0a53ba8249e431577fc69fb;hb=288c3660d8798141d86faee30b4394a450dda0ba;hp=39940d5fb9fd891076482c389782d93fd2783d20;hpb=bc99087ff95d0cdada827f3b838d05e0c9448b63;p=notmuch diff --git a/command-line-arguments.c b/command-line-arguments.c index 39940d5f..3fa8d904 100644 --- a/command-line-arguments.c +++ b/command-line-arguments.c @@ -13,22 +13,23 @@ static notmuch_bool_t _process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { - const notmuch_keyword_t *keywords = arg_desc->keywords; + const notmuch_keyword_t *keywords; if (next == '\0') { /* No keyword given */ arg_str = ""; } - while (keywords->name) { - if (strcmp (arg_str, keywords->name) == 0) { - if (arg_desc->opt_flags) - *arg_desc->opt_flags |= keywords->value; - else - *arg_desc->opt_keyword = keywords->value; - return TRUE; - } - keywords++; + for (keywords = arg_desc->keywords; keywords->name; keywords++) { + if (strcmp (arg_str, keywords->name) != 0) + continue; + + if (arg_desc->opt_flags) + *arg_desc->opt_flags |= keywords->value; + else + *arg_desc->opt_keyword = keywords->value; + + return TRUE; } if (next != '\0') fprintf (stderr, "Unknown keyword argument \"%s\" for option \"%s\".\n", arg_str, arg_desc->name); @@ -39,21 +40,20 @@ _process_keyword_arg (const notmuch_opt_desc_t *arg_desc, char next, const char static notmuch_bool_t _process_boolean_arg (const notmuch_opt_desc_t *arg_desc, char next, const char *arg_str) { - - if (next == '\0') { - *arg_desc->opt_bool = TRUE; - return TRUE; - } - if (strcmp (arg_str, "false") == 0) { - *arg_desc->opt_bool = FALSE; - return TRUE; - } - if (strcmp (arg_str, "true") == 0) { - *arg_desc->opt_bool = TRUE; - return TRUE; + notmuch_bool_t value; + + if (next == '\0' || strcmp (arg_str, "true") == 0) { + value = TRUE; + } else if (strcmp (arg_str, "false") == 0) { + value = FALSE; + } else { + fprintf (stderr, "Unknown argument \"%s\" for (boolean) option \"%s\".\n", arg_str, arg_desc->name); + return FALSE; } - fprintf (stderr, "Unknown argument \"%s\" for (boolean) option \"%s\".\n", arg_str, arg_desc->name); - return FALSE; + + *arg_desc->opt_bool = value; + + return TRUE; } static notmuch_bool_t