names_conflict(): simplify implementation

Save a bunch of lines of code and a couple of strlen() calls.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty
2011-10-19 23:44:51 +02:00
committed by Junio C Hamano
parent 53699dc56b
commit 44db760870

17
refs.c
View File

@@ -1083,19 +1083,10 @@ static int remove_empty_directories(const char *file)
*/
static int names_conflict(const char *refname1, const char *refname2)
{
int len1 = strlen(refname1);
int len2 = strlen(refname2);
int cmplen;
const char *lead;
if (len1 < len2) {
cmplen = len1;
lead = refname2;
} else {
cmplen = len2;
lead = refname1;
}
return !strncmp(refname1, refname2, cmplen) && lead[cmplen] == '/';
for (; *refname1 && *refname1 == *refname2; refname1++, refname2++)
;
return (*refname1 == '\0' && *refname2 == '/')
|| (*refname1 == '/' && *refname2 == '\0');
}
/*