[PATCH 2/4] git_config: don't peek at global config_parameters
- From
Jeff King <peff@peff.net>
- Date
- May 24, 2011, 22:49 UTC
- Message-ID
- <20110524224945.GB24527@sigill.intra.peff.net>
- In-Reply-To
- <20110524224903.GA16265@sigill.intra.peff.net>
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 <peff@peff.net> --- config.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/config.c b/config.c index 46aeb9c..fb88839 100644 --- a/config.c +++ b/config.c @@ -850,7 +850,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) @@ -882,9 +882,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; + } return ret == 0 ? found : ret; }
-- 1.7.4.5.7.g2e01