diff --git a/src/config.c b/src/config.c index 9e62df0c5..ec350f8fd 100644 --- a/src/config.c +++ b/src/config.c @@ -394,12 +394,15 @@ int git_config_get_long(git_config *cfg, const char *name, long int *out) case '\0': break; case 'k': + case 'K': num *= 1024; break; case 'm': + case 'M': num *= 1024 * 1024; break; case 'g': + case 'G': num *= 1024 * 1024 * 1024; break; default: diff --git a/tests/resources/config/config5 b/tests/resources/config/config5 index 645fe7645..8ab60ccec 100644 Binary files a/tests/resources/config/config5 and b/tests/resources/config/config5 differ diff --git a/tests/t15-config.c b/tests/t15-config.c index 1cf4b418f..8e0d3215c 100644 --- a/tests/t15-config.c +++ b/tests/t15-config.c @@ -142,12 +142,21 @@ BEGIN_TEST(config5, "test number suffixes") must_pass(git_config_get_long(cfg, "number.k", &i)); must_be_true(i == 1 * 1024); + must_pass(git_config_get_long(cfg, "number.kk", &i)); + must_be_true(i == 1 * 1024); + must_pass(git_config_get_long(cfg, "number.m", &i)); must_be_true(i == 1 * 1024 * 1024); + must_pass(git_config_get_long(cfg, "number.mm", &i)); + must_be_true(i == 1 * 1024 * 1024); + must_pass(git_config_get_long(cfg, "number.g", &i)); must_be_true(i == 1 * 1024 * 1024 * 1024); + must_pass(git_config_get_long(cfg, "number.gg", &i)); + must_be_true(i == 1 * 1024 * 1024 * 1024); + git_config_free(cfg); END_TEST