X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=command-line-arguments.h;h=606e5cd005f8e60326a48a7e9501263c343aaaae;hp=ff51abceb117dbac79da53c728c8555d56d37263;hb=HEAD;hpb=4a6721970a42a9f86149fb5d395d1001fed2d305 diff --git a/command-line-arguments.h b/command-line-arguments.h index ff51abce..606e5cd0 100644 --- a/command-line-arguments.h +++ b/command-line-arguments.h @@ -1,6 +1,8 @@ #ifndef NOTMUCH_OPTS_H #define NOTMUCH_OPTS_H +#include + #include "notmuch.h" /* @@ -17,36 +19,46 @@ typedef struct notmuch_keyword { typedef struct notmuch_opt_desc { /* One and only one of opt_* must be set. */ const struct notmuch_opt_desc *opt_inherit; - notmuch_bool_t *opt_bool; + bool *opt_bool; int *opt_int; int *opt_keyword; int *opt_flags; const char **opt_string; const char **opt_position; + /* for opt_keyword only: if no matching arguments were found, and + * keyword_no_arg_value is set, then use keyword_no_arg_value instead. */ + const char *keyword_no_arg_value; + /* 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. */ + bool *present; + + /* Optional, allow empty strings for opt_string. */ + bool allow_empty; + /* Must be set for opt_keyword and opt_flags. */ const struct notmuch_keyword *keywords; } notmuch_opt_desc_t; /* - This is the main entry point for command line argument parsing. - - Parse command line arguments according to structure options, - starting at position opt_index. - - All output of parsed values is via pointers in options. - - Parsing stops at -- (consumed) or at the (k+1)st argument - not starting with -- (a "positional argument") if options contains - k positional argument descriptors. - - Returns the index of first non-parsed argument, or -1 in case of error. - -*/ + * This is the main entry point for command line argument parsing. + * + * Parse command line arguments according to structure options, + * starting at position opt_index. + * + * All output of parsed values is via pointers in options. + * + * Parsing stops at -- (consumed) or at the (k+1)st argument + * not starting with -- (a "positional argument") if options contains + * k positional argument descriptors. + * + * Returns the index of first non-parsed argument, or -1 in case of error. + * + */ int parse_arguments (int argc, char **argv, const notmuch_opt_desc_t *options, int opt_index); @@ -59,12 +71,12 @@ parse_arguments (int argc, char **argv, const notmuch_opt_desc_t *options, int o */ int -parse_option (int argc, char **argv, const notmuch_opt_desc_t* options, int opt_index); +parse_option (int argc, char **argv, const notmuch_opt_desc_t *options, int opt_index); -notmuch_bool_t +bool parse_position_arg (const char *arg, int position_arg_index, - const notmuch_opt_desc_t* options); + const notmuch_opt_desc_t *options); #endif