[PATCH v2 21/43] refs-be-files.c: add method for for_each_reftype_...
From: David Turner <hidden>
Date: 2016-06-15 23:06:43
Subsystem:
the rest · Maintainer:
Linus Torvalds
Add method for for_each_reftype_fullpath. Signed-off-by: David Turner <redacted> --- refs-be-files.c | 11 +++++++++++ refs.c | 7 +++++++ refs.h | 3 +++ 3 files changed, 21 insertions(+)
diff --git a/refs-be-files.c b/refs-be-files.c
index 9b45468..eb18a20 100644
--- a/refs-be-files.c
+++ b/refs-be-files.c@@ -1961,6 +1961,16 @@ static int files_for_each_replace_ref(each_ref_fn fn, void *cb_data) strlen(git_replace_ref_base), 0, cb_data); } +static int files_for_each_reftype_fullpath(each_ref_fn fn, char *type, + unsigned int broken, void *cb_data) +{ + unsigned int flag = 0; + + if (broken) + flag = DO_FOR_EACH_INCLUDE_BROKEN; + return do_for_each_ref(&ref_cache, type, fn, 0, flag, cb_data); +} + static int files_for_each_namespaced_ref(each_ref_fn fn, void *cb_data) { struct strbuf buf = STRBUF_INIT;
@@ -3863,4 +3873,5 @@ struct ref_be refs_be_files = { files_for_each_rawref, files_for_each_namespaced_ref, files_for_each_replace_ref, + files_for_each_reftype_fullpath, };
diff --git a/refs.c b/refs.c
index 0375bb5..c6112ac 100644
--- a/refs.c
+++ b/refs.c@@ -1056,3 +1056,10 @@ int for_each_replace_ref(each_ref_fn fn, void *cb_data) { return the_refs_backend->for_each_replace_ref(fn, cb_data); } + +int for_each_reftype_fullpath(each_ref_fn fn, char *type, unsigned int broken, + void *cb_data) +{ + return the_refs_backend->for_each_reftype_fullpath(fn, type, broken, + cb_data); +}
diff --git a/refs.h b/refs.h
index b26cffc..5875fe5 100644
--- a/refs.h
+++ b/refs.h@@ -580,6 +580,8 @@ typedef int (*for_each_ref_in_submodule_fn)(const char *submodule, typedef int (*for_each_rawref_fn)(each_ref_fn fn, void *cb_data); typedef int (*for_each_namespaced_ref_fn)(each_ref_fn fn, void *cb_data); typedef int (*for_each_replace_ref_fn)(each_ref_fn fn, void *cb_data); +typedef int (*for_each_reftype_fullpath_fn)(each_ref_fn fn, char *type, + unsigned int broken, void *cb_data); struct ref_be { struct ref_be *next;
@@ -607,6 +609,7 @@ struct ref_be { for_each_rawref_fn for_each_rawref; for_each_namespaced_ref_fn for_each_namespaced_ref; for_each_replace_ref_fn for_each_replace_ref; + for_each_reftype_fullpath_fn for_each_reftype_fullpath; };
--
2.4.2.644.g97b850b-twtrsrc