Commit 07fba63e by J. David Ibáñez Committed by Russell Belfer

Fix return value in git_config_get_multivar

If there is not an error, the return value was always the return value
of the last call to file->get_multivar

With this commit GIT_ENOTFOUND is only returned if all the calls to
filge-get_multivar return GIT_ENOTFOUND.
parent 3eae9467
......@@ -535,6 +535,7 @@ int git_config_get_multivar(
file_internal *internal;
git_config_backend *file;
int ret = GIT_ENOTFOUND;
int err;
size_t i;
/*
......@@ -547,9 +548,15 @@ 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;
err = file->get_multivar(file, name, regexp, cb, payload);
switch (err) {
case GIT_OK:
ret = GIT_OK;
case GIT_ENOTFOUND:
break;
default:
return err;
}
}
return (ret == GIT_ENOTFOUND) ? config_error_notfound(name) : 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment