aboutsummaryrefslogtreecommitdiff
path: root/refs.c
diff options
context:
space:
mode:
authorMichael Haggerty <mhagger@alum.mit.edu>2017-03-20 17:33:08 +0100
committerJunio C Hamano <gitster@pobox.com>2017-04-14 03:54:31 -0700
commite121b9cb5f358c9779e02a2bf96fc545a896ab13 (patch)
tree0ed10b75766e68dc634ea4f148a796d41a44ff6b /refs.c
parent470be518623b0ca7a30bdb1fcef483f63a8e72ec (diff)
downloadgit-e121b9cb5f358c9779e02a2bf96fc545a896ab13.tar.gz
git-e121b9cb5f358c9779e02a2bf96fc545a896ab13.tar.xz
refs_ref_iterator_begin(): new function
Extract a new function from `do_for_each_ref()`. It will be useful elsewhere. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/refs.c b/refs.c
index aa461156c..2ae18097d 100644
--- a/refs.c
+++ b/refs.c
@@ -1230,6 +1230,18 @@ int head_ref(each_ref_fn fn, void *cb_data)
return head_ref_submodule(NULL, fn, cb_data);
}
+struct ref_iterator *refs_ref_iterator_begin(
+ struct ref_store *refs,
+ const char *prefix, int trim, int flags)
+{
+ struct ref_iterator *iter;
+
+ iter = refs->be->iterator_begin(refs, prefix, flags);
+ iter = prefix_ref_iterator_begin(iter, prefix, trim);
+
+ return iter;
+}
+
/*
* Call fn for each reference in the specified submodule for which the
* refname begins with prefix. If trim is non-zero, then trim that
@@ -1247,8 +1259,7 @@ static int do_for_each_ref(struct ref_store *refs, const char *prefix,
if (!refs)
return 0;
- iter = refs->be->iterator_begin(refs, prefix, flags);
- iter = prefix_ref_iterator_begin(iter, prefix, trim);
+ iter = refs_ref_iterator_begin(refs, prefix, trim, flags);
return do_for_each_ref_iterator(iter, fn, cb_data);
}