X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=parse-options.h;h=f66ca352dc050bd65fdc15a7dd763b69cdec92df;hb=ee68b87a62a245fca46374fe5132aec58d802baa;hp=4ee443dafe146f05d1fe2a46e7e39ca6fdd608f9;hpb=196821f440d46029f0399a7d97c0cfc78a870244;p=git.git diff --git a/parse-options.h b/parse-options.h index 4ee443daf..f66ca352d 100644 --- a/parse-options.h +++ b/parse-options.h @@ -111,6 +111,31 @@ extern int parse_options(int argc, const char **argv, extern NORETURN void usage_with_options(const char * const *usagestr, const struct option *options); +/*----- incremantal advanced APIs -----*/ + +enum { + PARSE_OPT_HELP = -1, + PARSE_OPT_DONE, + PARSE_OPT_UNKNOWN, +}; + +struct parse_opt_ctx_t { + const char **argv; + const char **out; + int argc, cpidx; + const char *opt; + int flags; +}; + +extern int parse_options_usage(const char * const *usagestr, + const struct option *opts); + +extern void parse_options_start(struct parse_opt_ctx_t *ctx, + int argc, const char **argv, int flags); + +extern int parse_options_end(struct parse_opt_ctx_t *ctx); + + /*----- some often used options -----*/ extern int parse_opt_abbrev_cb(const struct option *, const char *, int); extern int parse_opt_approxidate_cb(const struct option *, const char *, int);