diff options
author | René Scharfe <l.s.r@web.de> | 2019-06-22 12:03:40 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-06-24 12:34:20 -0700 |
commit | 39c575c96967f325a995cf9716a46f7e924714f5 (patch) | |
tree | dbc3d1e379336cd70d43d08a64061f1574dab276 /config.c | |
parent | 664178e8e23fbd6d79b02ea51374015023c02102 (diff) | |
download | git-39c575c96967f325a995cf9716a46f7e924714f5.tar.gz |
config: simplify parsing of unit factors
Just return the value of the factor or zero for unrecognized strings
instead of using an output reference and a separate return value to
indicate success. This is shorter and simpler.
It basically reverts that function to before c8deb5a146 ("Improve error
messages when int/long cannot be parsed from config", 2007-12-25), while
keeping the better messages, so restore its old name, get_unit_factor(),
as well.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 30 |
1 files changed, 12 insertions, 18 deletions
@@ -834,24 +834,16 @@ static int git_parse_source(config_fn_t fn, void *data, return error_return; } -static int parse_unit_factor(const char *end, uintmax_t *factor) +static uintmax_t get_unit_factor(const char *end) { - if (!*end) { - *factor = 1; + if (!*end) return 1; - } - else if (!strcasecmp(end, "k")) { - *factor = 1024; - return 1; - } - else if (!strcasecmp(end, "m")) { - *factor = 1024 * 1024; - return 1; - } - else if (!strcasecmp(end, "g")) { - *factor = 1024 * 1024 * 1024; - return 1; - } + else if (!strcasecmp(end, "k")) + return 1024; + else if (!strcasecmp(end, "m")) + return 1024 * 1024; + else if (!strcasecmp(end, "g")) + return 1024 * 1024 * 1024; return 0; } @@ -867,7 +859,8 @@ static int git_parse_signed(const char *value, intmax_t *ret, intmax_t max) val = strtoimax(value, &end, 0); if (errno == ERANGE) return 0; - if (!parse_unit_factor(end, &factor)) { + factor = get_unit_factor(end); + if (!factor) { errno = EINVAL; return 0; } @@ -896,7 +889,8 @@ static int git_parse_unsigned(const char *value, uintmax_t *ret, uintmax_t max) val = strtoumax(value, &end, 0); if (errno == ERANGE) return 0; - if (!parse_unit_factor(end, &factor)) { + factor = get_unit_factor(end); + if (!factor) { errno = EINVAL; return 0; } |