git_config_get_expiry_in_days() calls git_parse_signed() with the maximum value of int, which is equivalent to calling git_parse_int(). Do that instead, as its shorter and clearer.
This requires demoting "days" to int to match. Promote "scale" to intmax_t in turn to arrive at the same result when multiplying them.
Signed-off-by: René Scharfe <l.s.r@web.de> --- Patch formatted with --function-context for easier review.
config.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Show changes to config.c +3 −3
diff --git a/config.c b/config.c index 1738c0cb0d..7f6d53b473 100644 --- a/config.c +++ b/config.c @@ -2434,22 +2434,22 @@ int repo_config_get_expiry(struct repository *r, const char *key, char **output) int repo_config_get_expiry_in_days(struct repository *r, const char *key, timestamp_t *expiry, timestamp_t now) { const char *expiry_string; - intmax_t days; + int days; timestamp_t when; if (repo_config_get_string_tmp(r, key, &expiry_string)) return 1; /* no such thing */ - if (git_parse_signed(expiry_string, &days, maximum_signed_value_of_type(int))) { - const int scale = 86400; + if (git_parse_int(expiry_string, &days)) { + const intmax_t scale = 86400; *expiry = now - days * scale; return 0; } if (!parse_expiry_date(expiry_string, &when)) { *expiry = when; return 0; } return -1; /* thing exists but cannot be parsed */ }
-- 2.52.0