use skip_prefix to avoid repeating strings

It's a common idiom to match a prefix and then skip past it
with strlen, like:

  if (starts_with(foo, "bar"))
	  foo += strlen("bar");

This avoids magic numbers, but means we have to repeat the
string (and there is no compiler check that we didn't make a
typo in one of the strings).

We can use skip_prefix to handle this case without repeating
ourselves.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2014-06-18 15:48:29 -04:00
committed by Junio C Hamano
parent ae021d8791
commit 95b567c7c3
10 changed files with 44 additions and 54 deletions

View File

@ -911,10 +911,8 @@ static int grab_nth_branch_switch(unsigned char *osha1, unsigned char *nsha1,
const char *match = NULL, *target = NULL;
size_t len;
if (starts_with(message, "checkout: moving from ")) {
match = message + strlen("checkout: moving from ");
if (skip_prefix(message, "checkout: moving from ", &match))
target = strstr(match, " to ");
}
if (!match || !target)
return 0;