diff options
author | Jeff King <peff@peff.net> | 2011-05-25 02:49:45 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-25 03:20:56 +0400 |
commit | 5a0c9eeb89a19a05cbc2bf570f69f1724ef873dd (patch) | |
tree | 2fec7cb617ed76289978bea5876fecde13060619 | |
parent | 3ddf0968c2f64a9f9fa6880d9c22d40459c88335 (diff) |
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 <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | config.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -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; |