summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-tree.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ui-tree.c b/ui-tree.c
index 2f052c7..5a2dd3f 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -70,18 +70,20 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
70 unsigned long size = 0; 70 unsigned long size = 0;
71 71
72 name = xstrdup(pathname); 72 name = xstrdup(pathname);
73 fullpath = fmt("%s%s%s", ctx.qry.path ? ctx.qry.path : "", 73 fullpath = fmt("%s%s%s", ctx.qry.path ? ctx.qry.path : "",
74 ctx.qry.path ? "/" : "", name); 74 ctx.qry.path ? "/" : "", name);
75 75
76 type = sha1_object_info(sha1, &size); 76 if (!S_ISGITLINK(mode)) {
77 if (type == OBJ_BAD && !S_ISGITLINK(mode)) { 77 type = sha1_object_info(sha1, &size);
78 htmlf("<tr><td colspan='3'>Bad object: %s %s</td></tr>", 78 if (type == OBJ_BAD) {
79 name, 79 htmlf("<tr><td colspan='3'>Bad object: %s %s</td></tr>",
80 sha1_to_hex(sha1)); 80 name,
81 return 0; 81 sha1_to_hex(sha1));
82 return 0;
83 }
82 } 84 }
83 85
84 html("<tr><td class='ls-mode'>"); 86 html("<tr><td class='ls-mode'>");
85 cgit_print_filemode(mode); 87 cgit_print_filemode(mode);
86 html("</td><td>"); 88 html("</td><td>");
87 if (S_ISGITLINK(mode)) { 89 if (S_ISGITLINK(mode)) {