sha1_to_hex() usage cleanup
Somebody on the #git channel complained that the sha1_to_hex() thing uses a static buffer which caused an error message to show the same hex output twice instead of showing two different ones. That's pretty easily rectified by making it uses a simple LRU of a few buffers, which also allows some other users (that were aware of the buffer re-use) to be written in a more straightforward manner. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
committed by
Junio C Hamano
parent
935e714204
commit
dcb3450fd8
@ -24,16 +24,14 @@ static const char *sha1_to_hex_zero(const unsigned char *sha1)
|
||||
|
||||
static void resolve(const char *base, struct name_entry *branch1, struct name_entry *result)
|
||||
{
|
||||
char branch1_sha1[50];
|
||||
|
||||
/* If it's already branch1, don't bother showing it */
|
||||
if (!branch1)
|
||||
return;
|
||||
memcpy(branch1_sha1, sha1_to_hex_zero(branch1->sha1), 41);
|
||||
|
||||
printf("0 %06o->%06o %s->%s %s%s\n",
|
||||
branch1->mode, result->mode,
|
||||
branch1_sha1, sha1_to_hex_zero(result->sha1),
|
||||
sha1_to_hex_zero(branch1->sha1),
|
||||
sha1_to_hex_zero(result->sha1),
|
||||
base, result->path);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user