summaryrefslogtreecommitdiff
path: root/parse-options.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2019-01-27 00:35:25 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-01-28 00:28:18 (GMT)
commitf62470c650e0db9536f32b9e1ecbe7d25f759031 (patch)
treea2173e2a99bc2deec3126be06a440b0071bd9d96 /parse-options.c
parentbaa4adc66aefe2c3cc15b573b8a19dec786a1641 (diff)
downloadgit-f62470c650e0db9536f32b9e1ecbe7d25f759031.zip
git-f62470c650e0db9536f32b9e1ecbe7d25f759031.tar.gz
git-f62470c650e0db9536f32b9e1ecbe7d25f759031.tar.bz2
parse-options: add OPT_BITOP()
This is needed for diff_opt_parse() where we do value = (value & ~mask) | some_more; Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'parse-options.c')
-rw-r--r--parse-options.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/parse-options.c b/parse-options.c
index 779034e..62d94ca 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -109,6 +109,13 @@ static int get_value(struct parse_opt_ctx_t *p,
*(int *)opt->value &= ~opt->defval;
return 0;
+ case OPTION_BITOP:
+ if (unset)
+ BUG("BITOP can't have unset form");
+ *(int *)opt->value &= ~opt->extra;
+ *(int *)opt->value |= opt->defval;
+ return 0;
+
case OPTION_COUNTUP:
if (*(int *)opt->value < 0)
*(int *)opt->value = 0;