Use starts_with() for C strings instead of memcmp()

Convert three cases of checking for a constant prefix using memcmp() to starts_with(). This way there is no need for magic string length constants and we avoid running over the end of the string should it be shorter than the prefix. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

René Scharfe committed Jun 6, 2014 at 19:24 UTC 50e19a83585bd1aeae6aa01d31e5f783b7ef8b1b
3 files changed +3 -3
builtin/for-each-ref.c
+1 -1
@@ -193,7 +193,7 @@ static int verify_format(const char *format)
193 at = parse_atom(sp + 2, ep);
194 cp = ep + 1;
195
196 - if (!memcmp(used_atom[at], "color:", 6))
196 + if (starts_with(used_atom[at], "color:"))
197 need_color_reset_at_eol = !!strcmp(used_atom[at], color_reset);
198 }
199 return 0;
fetch-pack.c
+1 -1
@@ -507,7 +507,7 @@ static void filter_refs(struct fetch_pack_args *args,
507 int keep = 0;
508 next = ref->next;
509
510 - if (!memcmp(ref->name, "refs/", 5) &&
510 + if (starts_with(ref->name, "refs/") &&
511 check_refname_format(ref->name, 0))
512 ; /* trash */
513 else {
remote.c
+1 -1
@@ -1194,7 +1194,7 @@ static int match_explicit(struct ref *src, struct ref *dst,
1194 case 1:
1195 break;
1196 case 0:
1197 - if (!memcmp(dst_value, "refs/", 5))
1197 + if (starts_with(dst_value, "refs/"))
1198 matched_dst = make_linked_ref(dst_value, dst_tail);
1199 else if (is_null_sha1(matched_src->new_sha1))
1200 error("unable to delete '%s': remote ref does not exist",