mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-24 10:24:53 +01:00
cli: add .present field to opt desc to check if the arg was present
Add pointer to boolean .present field to opt desc, which (if non-NULL) will be set to TRUE if the argument in question is present on the command line. Unchanged otherwise.
This commit is contained in:
parent
25960b5ecd
commit
bc99087ff9
2 changed files with 11 additions and 3 deletions
|
@ -128,6 +128,8 @@ parse_position_arg (const char *arg_str, int pos_arg_index,
|
|||
if (arg_desc->opt_position) {
|
||||
if (pos_arg_counter == pos_arg_index) {
|
||||
*arg_desc->opt_position = arg_str;
|
||||
if (arg_desc->present)
|
||||
*arg_desc->present = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
pos_arg_counter++;
|
||||
|
@ -202,10 +204,13 @@ parse_option (int argc, char **argv, const notmuch_opt_desc_t *options, int opt_
|
|||
else
|
||||
INTERNAL_ERROR ("unknown or unhandled option \"%s\"", try->name);
|
||||
|
||||
if (opt_status)
|
||||
return opt_index+1;
|
||||
else
|
||||
if (! opt_status)
|
||||
return -1;
|
||||
|
||||
if (try->present)
|
||||
*try->present = TRUE;
|
||||
|
||||
return opt_index+1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -27,6 +27,9 @@ typedef struct notmuch_opt_desc {
|
|||
/* Must be set except for opt_inherit and opt_position. */
|
||||
const char *name;
|
||||
|
||||
/* Optional, if non-NULL, set to TRUE if the option is present. */
|
||||
notmuch_bool_t *present;
|
||||
|
||||
/* Must be set for opt_keyword and opt_flags. */
|
||||
const struct notmuch_keyword *keywords;
|
||||
} notmuch_opt_desc_t;
|
||||
|
|
Loading…
Reference in a new issue