summaryrefslogtreecommitdiff
path: root/sha1_name.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2015-05-21 04:45:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-05-22 16:33:08 (GMT)
commita1ad0eb0cb1c9c83492b17d7a218be084466bf9a (patch)
treed5998d1d97fea0969bbda130ddd4bfc7d58c9a55 /sha1_name.c
parente291c75a95d60862cbe12897b5cffb01ba4cedd5 (diff)
downloadgit-a1ad0eb0cb1c9c83492b17d7a218be084466bf9a.zip
git-a1ad0eb0cb1c9c83492b17d7a218be084466bf9a.tar.gz
git-a1ad0eb0cb1c9c83492b17d7a218be084466bf9a.tar.bz2
sha1_name: refactor upstream_mark
We will be adding new mark types in the future, so separate the suffix data from the logic. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_name.c')
-rw-r--r--sha1_name.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sha1_name.c b/sha1_name.c
index 461157a..1005f45 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -415,12 +415,12 @@ static int ambiguous_path(const char *path, int len)
return slash;
}
-static inline int upstream_mark(const char *string, int len)
+static inline int at_mark(const char *string, int len,
+ const char **suffix, int nr)
{
- const char *suffix[] = { "@{upstream}", "@{u}" };
int i;
- for (i = 0; i < ARRAY_SIZE(suffix); i++) {
+ for (i = 0; i < nr; i++) {
int suffix_len = strlen(suffix[i]);
if (suffix_len <= len
&& !memcmp(string, suffix[i], suffix_len))
@@ -429,6 +429,12 @@ static inline int upstream_mark(const char *string, int len)
return 0;
}
+static inline int upstream_mark(const char *string, int len)
+{
+ const char *suffix[] = { "@{upstream}", "@{u}" };
+ return at_mark(string, len, suffix, ARRAY_SIZE(suffix));
+}
+
static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned lookup_flags);
static int interpret_nth_prior_checkout(const char *name, int namelen, struct strbuf *buf);