diff options
| author | Vicent Martà <vicent@github.com> | 2013-07-09 16:54:34 -0700 |
|---|---|---|
| committer | Vicent Martà <vicent@github.com> | 2013-07-09 16:54:34 -0700 |
| commit | 550cd2d776e6b14ab7bb48c98c8d28969cdcf1cb (patch) | |
| tree | cbec4a13d1974bf2bce5eb34903f80f2ca568dc2 /src | |
| parent | 3eae9467e59241f5af6218ca079f96273fe1bc57 (diff) | |
| parent | e4fda954d6d914609498fc3bcbd27b4e2b5834d3 (diff) | |
| download | libgit2-550cd2d776e6b14ab7bb48c98c8d28969cdcf1cb.tar.gz | |
Merge pull request #1716 from arrbee/fix-config-get-multivar
Fix git_config_get_multivar with interleaved missing entries
Diffstat (limited to 'src')
| -rw-r--r-- | src/config.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/config.c b/src/config.c index 068c40260..2a058549f 100644 --- a/src/config.c +++ b/src/config.c @@ -534,7 +534,7 @@ int git_config_get_multivar( { file_internal *internal; git_config_backend *file; - int ret = GIT_ENOTFOUND; + int ret = GIT_ENOTFOUND, err; size_t i; /* @@ -547,9 +547,10 @@ int git_config_get_multivar( continue; file = internal->file; - ret = file->get_multivar(file, name, regexp, cb, payload); - if (ret < 0 && ret != GIT_ENOTFOUND) - return ret; + if (!(err = file->get_multivar(file, name, regexp, cb, payload))) + ret = 0; + else if (err != GIT_ENOTFOUND) + return err; } return (ret == GIT_ENOTFOUND) ? config_error_notfound(name) : 0; |
