diff options
context:
space:
mode:
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
Fix the submodule rows in the tree listing
A submodule row linked to a path with its trailing slash stripped, was labelled by its path rather than its entry name, shared the name's element with its hash, claimed a size of zero and offered a blame button that cannot work on a gitlink.
Diffstat (limited to '')
-rw-r--r--source/ui-tree.c7
1 file changed, 5 insertions, 2 deletions
diff --git a/source/ui-tree.c b/source/ui-tree.c
index cf3938e..ce57f92 100644
--- a/source/ui-tree.c
+++ b/source/ui-tree.c
@@ -333,7 +333,10 @@ static void print_ls_row(const struct object_id *oid, const char *pathname,
free(buf);
strbuf_release(&linkpath);
}
- htmlf("</td><td class='ls-size'>%lu</td>", size);
+ if (S_ISGITLINK(mode))
+ html("</td><td class='ls-size'>-</td>");
+ else
+ htmlf("</td><td class='ls-size'>%lu</td>", size);
html("<td class='ls-links'>");
cgit_log_link("log", NULL, "button", ctx.qry.head,
@@ -345,7 +348,7 @@ static void print_ls_row(const struct object_id *oid, const char *pathname,
if (!S_ISGITLINK(mode))
cgit_plain_link("plain", NULL, "button", ctx.qry.head,
walk->rev, fullpath.buf);
- if (!S_ISDIR(mode) && ctx.repo->enable_blame)
+ if (!S_ISDIR(mode) && !S_ISGITLINK(mode) && ctx.repo->enable_blame)
cgit_blame_link("blame", NULL, "button", ctx.qry.head,
walk->rev, fullpath.buf);
html("</td></tr>\n");