aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-08-14 13:26:40 -0700
committerJunio C Hamano <gitster@pobox.com>2023-08-14 13:26:40 -0700
commitaea6c0531cc97af2054455dcf4f39bd904dafb50 (patch)
treee685187e5e75079986a52e20ba2f33dc2188e5dc
parentMerge branch 'ob/rebase-conflict-advice-i18n-fix' (diff)
parentparse-options: disallow negating OPTION_SET_INT 0 (diff)
downloadgit-aea6c0531cc97af2054455dcf4f39bd904dafb50.tar.gz
git-aea6c0531cc97af2054455dcf4f39bd904dafb50.zip
Merge branch 'rs/parse-opt-forbid-set-int-0-without-noneg'
Developer support to detect meaningless combination of options. * rs/parse-opt-forbid-set-int-0-without-noneg: parse-options: disallow negating OPTION_SET_INT 0
-rw-r--r--parse-options.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/parse-options.c b/parse-options.c
index 87c9fae634..60224cf8d0 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -480,6 +480,9 @@ static void parse_options_check(const struct option *opts)
opts->long_name))
optbug(opts, "uses feature "
"not supported for dashless options");
+ if (opts->type == OPTION_SET_INT && !opts->defval &&
+ opts->long_name && !(opts->flags & PARSE_OPT_NONEG))
+ optbug(opts, "OPTION_SET_INT 0 should not be negatable");
switch (opts->type) {
case OPTION_COUNTUP:
case OPTION_BIT: