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>
This commit is contained in:
Jeff King 2015-05-21 00:45:39 -04:00 committed by Junio C Hamano
parent e291c75a95
commit a1ad0eb0cb

View File

@ -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);