show-branch: mark active branch with a '*' again

This was lost in the packed-ref updates. The original test was a bit
dubious, so I cleaned that up, too. It fixes the case when the current HEAD
is refs/heads/bla/master: the original test was true for both bla/master
_and_ master.

However, it shares a hard-to-fix bug with the original test: if the current
HEAD is refs/heads/master, and there is a branch refs/heads/heads/master,
then both are marked active.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Johannes Schindelin 2006-09-22 00:07:01 +02:00 committed by Junio C Hamano
parent 913c983e04
commit afdcec7366

View File

@ -443,6 +443,12 @@ static int rev_is_head(char *head, int headlen, char *name,
if ((!head[0]) ||
(head_sha1 && sha1 && hashcmp(head_sha1, sha1)))
return 0;
if (!strncmp(head, "refs/heads/", 11))
head += 11;
if (!strncmp(name, "refs/heads/", 11))
name += 11;
else if (!strncmp(name, "heads/", 6))
name += 6;
return !strcmp(head, name);
}