[PATCH 3/7] Add helper for skipping namespace prefixes
From: Richard Maw <hidden>
Date: 2017-08-13 19:36:37
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Richard Maw <hidden>
Date: 2017-08-13 19:36:37
Subsystem:
the rest · Maintainer:
Linus Torvalds
Normally your own namespace is known and you only need to skip that prefix, but when you need to classify the type of a ref it helps to be able to consider what type of ref it would be if it were outside of a namespace. --- git-compat-util.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/git-compat-util.h b/git-compat-util.h
index db9c22d..c5e0a34 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h@@ -501,6 +501,25 @@ static inline int skip_prefix_mem(const char *buf, size_t len, return 0; } +static inline int skip_namespace(const char *refname, const char **out) +{ + const char *c = refname; + + while (skip_prefix(c, "refs/namespaces/", &c)) { + c = strchr(c, '/'); + if (!c) + return 0; + + c++; + } + + if (c == refname) + return 0; + + *out = c; + return 1; +} + /* * If buf ends with suffix, return 1 and subtract the length of the suffix * from *len. Otherwise, return 0 and leave *len untouched.
--
2.9.0