summaryrefslogtreecommitdiff
path: root/src/refs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/refs.c')
-rw-r--r--src/refs.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/refs.c b/src/refs.c
index bae62158b..60ed9ffb1 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -513,20 +513,19 @@ int git_reference_foreach(
git_reference *ref;
int error;
- if (git_reference_iterator_new(&iter, repo) < 0)
- return -1;
+ if ((error = git_reference_iterator_new(&iter, repo)) < 0)
+ return error;
while ((error = git_reference_next(&ref, iter)) == 0) {
if (callback(ref, payload)) {
- error = GIT_EUSER;
- goto out;
+ error = giterr_user_cancel();
+ break;
}
}
if (error == GIT_ITEROVER)
error = 0;
-out:
git_reference_iterator_free(iter);
return error;
}
@@ -540,20 +539,19 @@ int git_reference_foreach_name(
const char *refname;
int error;
- if (git_reference_iterator_new(&iter, repo) < 0)
- return -1;
+ if ((error = git_reference_iterator_new(&iter, repo)) < 0)
+ return error;
while ((error = git_reference_next_name(&refname, iter)) == 0) {
if (callback(refname, payload)) {
- error = GIT_EUSER;
- goto out;
+ error = giterr_user_cancel();
+ break;
}
}
if (error == GIT_ITEROVER)
error = 0;
-out:
git_reference_iterator_free(iter);
return error;
}
@@ -568,20 +566,19 @@ int git_reference_foreach_glob(
const char *refname;
int error;
- if (git_reference_iterator_glob_new(&iter, repo, glob) < 0)
- return -1;
+ if ((error = git_reference_iterator_glob_new(&iter, repo, glob)) < 0)
+ return error;
while ((error = git_reference_next_name(&refname, iter)) == 0) {
if (callback(refname, payload)) {
- error = GIT_EUSER;
- goto out;
+ error = giterr_user_cancel();
+ break;
}
}
if (error == GIT_ITEROVER)
error = 0;
-out:
git_reference_iterator_free(iter);
return error;
}