diff-parseopt: convert --[no-]abbrev
OPT__ABBREV() has the same behavior as the deleted code with one difference: it does check for valid number and error out if not. And the '40' change is self explanatory. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
d2d3f27300
commit
d877418390
12
diff.c
12
diff.c
@ -5254,6 +5254,7 @@ static void prep_parse_options(struct diff_options *options)
|
|||||||
OPT_SET_INT('z', NULL, &options->line_termination,
|
OPT_SET_INT('z', NULL, &options->line_termination,
|
||||||
N_("do not munge pathnames and use NULs as output field terminators in --raw or --numstat"),
|
N_("do not munge pathnames and use NULs as output field terminators in --raw or --numstat"),
|
||||||
0),
|
0),
|
||||||
|
OPT__ABBREV(&options->abbrev),
|
||||||
OPT_CALLBACK_F(0, "output-indicator-new",
|
OPT_CALLBACK_F(0, "output-indicator-new",
|
||||||
&options->output_indicators[OUTPUT_INDICATOR_NEW],
|
&options->output_indicators[OUTPUT_INDICATOR_NEW],
|
||||||
N_("<char>"),
|
N_("<char>"),
|
||||||
@ -5448,17 +5449,6 @@ int diff_opt_parse(struct diff_options *options,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* misc options */
|
/* misc options */
|
||||||
else if (!strcmp(arg, "--no-abbrev"))
|
|
||||||
options->abbrev = 0;
|
|
||||||
else if (!strcmp(arg, "--abbrev"))
|
|
||||||
options->abbrev = DEFAULT_ABBREV;
|
|
||||||
else if (skip_prefix(arg, "--abbrev=", &arg)) {
|
|
||||||
options->abbrev = strtoul(arg, NULL, 10);
|
|
||||||
if (options->abbrev < MINIMUM_ABBREV)
|
|
||||||
options->abbrev = MINIMUM_ABBREV;
|
|
||||||
else if (the_hash_algo->hexsz < options->abbrev)
|
|
||||||
options->abbrev = the_hash_algo->hexsz;
|
|
||||||
}
|
|
||||||
else if ((argcount = parse_long_opt("src-prefix", av, &optarg))) {
|
else if ((argcount = parse_long_opt("src-prefix", av, &optarg))) {
|
||||||
options->a_prefix = optarg;
|
options->a_prefix = optarg;
|
||||||
return argcount;
|
return argcount;
|
||||||
|
@ -22,8 +22,8 @@ int parse_opt_abbrev_cb(const struct option *opt, const char *arg, int unset)
|
|||||||
opt->long_name);
|
opt->long_name);
|
||||||
if (v && v < MINIMUM_ABBREV)
|
if (v && v < MINIMUM_ABBREV)
|
||||||
v = MINIMUM_ABBREV;
|
v = MINIMUM_ABBREV;
|
||||||
else if (v > 40)
|
else if (v > the_hash_algo->hexsz)
|
||||||
v = 40;
|
v = the_hash_algo->hexsz;
|
||||||
}
|
}
|
||||||
*(int *)(opt->value) = v;
|
*(int *)(opt->value) = v;
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user