diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2019-03-24 08:20:04 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-03-24 13:21:22 (GMT) |
commit | d877418390168c9696fd46d5e78ca3362f26f74c (patch) | |
tree | 822a8c0457a95d8b171689c528d98036198eba87 | |
parent | d2d3f27300967e76e0c9f3a916e7e236ff95f1aa (diff) | |
download | git-d877418390168c9696fd46d5e78ca3362f26f74c.zip git-d877418390168c9696fd46d5e78ca3362f26f74c.tar.gz git-d877418390168c9696fd46d5e78ca3362f26f74c.tar.bz2 |
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>
-rw-r--r-- | diff.c | 12 | ||||
-rw-r--r-- | parse-options-cb.c | 4 |
2 files changed, 3 insertions, 13 deletions
@@ -5254,6 +5254,7 @@ static void prep_parse_options(struct diff_options *options) OPT_SET_INT('z', NULL, &options->line_termination, N_("do not munge pathnames and use NULs as output field terminators in --raw or --numstat"), 0), + OPT__ABBREV(&options->abbrev), OPT_CALLBACK_F(0, "output-indicator-new", &options->output_indicators[OUTPUT_INDICATOR_NEW], N_("<char>"), @@ -5448,17 +5449,6 @@ int diff_opt_parse(struct diff_options *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))) { options->a_prefix = optarg; return argcount; diff --git a/parse-options-cb.c b/parse-options-cb.c index 2733393..6e2e8d6 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -22,8 +22,8 @@ int parse_opt_abbrev_cb(const struct option *opt, const char *arg, int unset) opt->long_name); if (v && v < MINIMUM_ABBREV) v = MINIMUM_ABBREV; - else if (v > 40) - v = 40; + else if (v > the_hash_algo->hexsz) + v = the_hash_algo->hexsz; } *(int *)(opt->value) = v; return 0; |