]> git.notmuchmail.org Git - notmuch/blobdiff - command-line-arguments.h
cli: some keyword options can be supplied with no argument
[notmuch] / command-line-arguments.h
index dfc808bdab7838c81746f7671ba2fa8b3b904ce9..f722f97dde6e57c691437914b91cf42128384fa9 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef NOTMUCH_OPTS_H
 #define NOTMUCH_OPTS_H
 
+#include <stdbool.h>
+
 #include "notmuch.h"
 
 /*
@@ -17,18 +19,25 @@ 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. */
-    notmuch_bool_t *present;
+    /* 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;
@@ -64,7 +73,7 @@ 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);
 
-notmuch_bool_t
+bool
 parse_position_arg (const char *arg,
                    int position_arg_index,
                    const notmuch_opt_desc_t* options);