mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-27 21:27:58 +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 (arg_desc->opt_position) {
|
||||||
if (pos_arg_counter == pos_arg_index) {
|
if (pos_arg_counter == pos_arg_index) {
|
||||||
*arg_desc->opt_position = arg_str;
|
*arg_desc->opt_position = arg_str;
|
||||||
|
if (arg_desc->present)
|
||||||
|
*arg_desc->present = TRUE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
pos_arg_counter++;
|
pos_arg_counter++;
|
||||||
|
@ -202,10 +204,13 @@ parse_option (int argc, char **argv, const notmuch_opt_desc_t *options, int opt_
|
||||||
else
|
else
|
||||||
INTERNAL_ERROR ("unknown or unhandled option \"%s\"", try->name);
|
INTERNAL_ERROR ("unknown or unhandled option \"%s\"", try->name);
|
||||||
|
|
||||||
if (opt_status)
|
if (! opt_status)
|
||||||
return opt_index+1;
|
|
||||||
else
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
if (try->present)
|
||||||
|
*try->present = TRUE;
|
||||||
|
|
||||||
|
return opt_index+1;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,9 @@ typedef struct notmuch_opt_desc {
|
||||||
/* Must be set except for opt_inherit and opt_position. */
|
/* Must be set except for opt_inherit and opt_position. */
|
||||||
const char *name;
|
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. */
|
/* Must be set for opt_keyword and opt_flags. */
|
||||||
const struct notmuch_keyword *keywords;
|
const struct notmuch_keyword *keywords;
|
||||||
} notmuch_opt_desc_t;
|
} notmuch_opt_desc_t;
|
||||||
|
|
Loading…
Reference in a new issue