Skip to content

Commit

Permalink
Produce a nicer output in case of sha1_object_info failures in ls-tre…
Browse files Browse the repository at this point in the history
…e -l

An error message is already printed by sha1_object_info itself, and
the failed entries are additionally marked in the listing.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Alex Riesen authored and Junio C Hamano committed Mar 20, 2009
1 parent 6872f60 commit e392a85
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions builtin-ls-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen,
{
int retval = 0;
const char *type = blob_type;
unsigned long size;

if (S_ISGITLINK(mode)) {
/*
Expand Down Expand Up @@ -90,17 +89,20 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen,

if (!(ls_options & LS_NAME_ONLY)) {
if (ls_options & LS_SHOW_SIZE) {
char size_text[24];
if (!strcmp(type, blob_type)) {
sha1_object_info(sha1, &size);
printf("%06o %s %s %7lu\t", mode, type,
abbrev ? find_unique_abbrev(sha1, abbrev)
: sha1_to_hex(sha1),
size);
unsigned long size;
if (sha1_object_info(sha1, &size) == OBJ_BAD)
strcpy(size_text, "BAD");
else
snprintf(size_text, sizeof(size_text),
"%lu", size);
} else
printf("%06o %s %s %7c\t", mode, type,
abbrev ? find_unique_abbrev(sha1, abbrev)
: sha1_to_hex(sha1),
'-');
strcpy(size_text, "-");
printf("%06o %s %s %7s\t", mode, type,
abbrev ? find_unique_abbrev(sha1, abbrev)
: sha1_to_hex(sha1),
size_text);
} else
printf("%06o %s %s\t", mode, type,
abbrev ? find_unique_abbrev(sha1, abbrev)
Expand Down

0 comments on commit e392a85

Please sign in to comment.