From 5a0c9eeb89a19a05cbc2bf570f69f1724ef873dd Mon Sep 17 00:00:00 2001 From: Jeff King Date: Tue, 24 May 2011 18:49:45 -0400 Subject: [PATCH] git_config: don't peek at global config_parameters The config_parameters list in config.c is an implementation detail of git_config_from_parameters; instead, that function should tell us whether it found anything. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- config.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/config.c b/config.c index 230fe2c0a..065c5b7d5 100644 --- a/config.c +++ b/config.c @@ -832,7 +832,7 @@ int git_config_from_parameters(config_fn_t fn, void *data) for (ct = config_parameters; ct; ct = ct->next) if (fn(ct->name, ct->value, data) < 0) return -1; - return 0; + return config_parameters != NULL; } int git_config_early(config_fn_t fn, void *data, const char *repo_config) @@ -864,9 +864,16 @@ int git_config_early(config_fn_t fn, void *data, const char *repo_config) found += 1; } - ret += git_config_from_parameters(fn, data); - if (config_parameters) - found += 1; + switch (git_config_from_parameters(fn, data)) { + case -1: /* error */ + ret--; + break; + case 0: /* found nothing */ + break; + default: /* found at least one item */ + found++; + break; + } if (found == 0) return -1; -- 2.30.2