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>

Jeff King committed May 21, 2015 at 00:45 UTC a1ad0eb0cb1c9c83492b17d7a218be084466bf9a
1 file changed +9 -3
sha1_name.c
+9 -3
@@ -415,12 +415,12 @@ static int ambiguous_path(const char *path, int len)
415 return slash;
416 }
417
418 -static inline int upstream_mark(const char *string, int len)
418 +static inline int at_mark(const char *string, int len,
419 + const char **suffix, int nr)
420 {
420 - const char *suffix[] = { "@{upstream}", "@{u}" };
421 int i;
422
423 - for (i = 0; i < ARRAY_SIZE(suffix); i++) {
423 + for (i = 0; i < nr; i++) {
424 int suffix_len = strlen(suffix[i]);
425 if (suffix_len <= len
426 && !memcmp(string, suffix[i], suffix_len))
@@ -429,6 +429,12 @@ static inline int upstream_mark(const char *string, int len)
429 return 0;
430 }
431
432 +static inline int upstream_mark(const char *string, int len)
433 +{
434 + const char *suffix[] = { "@{upstream}", "@{u}" };
435 + return at_mark(string, len, suffix, ARRAY_SIZE(suffix));
436 +}
437 +
438 static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned lookup_flags);
439 static int interpret_nth_prior_checkout(const char *name, int namelen, struct strbuf *buf);
440