X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=parse-options.c;h=d218122af5c2c0cddd857fce0ae5064bf32f6387;hb=7e5eb8f1834722507e2d2171a253b78b1d924458;hp=3b71fbb5410332a3f11ca0e450a614b3345a687b;hpb=14683af812ee0b19c416223287c6e330dbdc9ffc;p=git.git diff --git a/parse-options.c b/parse-options.c index 3b71fbb54..d218122af 100644 --- a/parse-options.c +++ b/parse-options.c @@ -3,6 +3,9 @@ #include "cache.h" #include "commit.h" +static int parse_options_usage(const char * const *usagestr, + const struct option *opts); + #define OPT_SHORT 1 #define OPT_UNSET 2 @@ -230,6 +233,9 @@ is_abbreviated: abbrev_flags = flags; continue; } + /* negation allowed? */ + if (options->flags & PARSE_OPT_NONEG) + continue; /* negated and abbreviated very much? */ if (!prefixcmp("no-", arg)) { flags |= OPT_UNSET; @@ -549,8 +555,16 @@ void usage_with_options(const char * const *usagestr, exit(129); } -int parse_options_usage(const char * const *usagestr, - const struct option *opts) +void usage_msg_opt(const char *msg, + const char * const *usagestr, + const struct option *options) +{ + fprintf(stderr, "%s\n\n", msg); + usage_with_options(usagestr, options); +} + +static int parse_options_usage(const char * const *usagestr, + const struct option *opts) { return usage_with_options_internal(usagestr, opts, 0); } @@ -622,3 +636,10 @@ int parse_opt_with_commit(const struct option *opt, const char *arg, int unset) commit_list_insert(commit, opt->value); return 0; } + +int parse_opt_tertiary(const struct option *opt, const char *arg, int unset) +{ + int *target = opt->value; + *target = unset ? 2 : 1; + return 0; +}