diff options
Diffstat (limited to 'source/ui-shared.c')
| -rw-r--r-- | source/ui-shared.c | 30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 file changed, 17 insertions, 13 deletions
diff --git a/source/ui-shared.c b/source/ui-shared.c index 05fa30b..02352bf 100644 --- a/source/ui-shared.c +++ b/source/ui-shared.c @@ -1032,7 +1032,8 @@ void cgit_submodule_link(const char *class, char *path, const char *rev) { struct string_list *list; struct string_list_item *item; - char tail, *dir; + char tail; + const char *name; size_t len; len = 0; @@ -1047,6 +1048,12 @@ void cgit_submodule_link(const char *class, char *path, const char *rev) item = lookup_path(list, path); } } + + // The row shows the entry's own name, like every other row, while + // the lookups above want the full path. + name = strrchr(path, '/'); + name = name ? name + 1 : path; + if (item || ctx.repo->module_link) { html("<a "); if (class) @@ -1056,29 +1063,26 @@ void cgit_submodule_link(const char *class, char *path, const char *rev) const char *args[] = { rev }; emit_module_link(item->util, args, 1); } else { - const char *args[2]; - dir = strrchr(path, '/'); - if (dir) - dir++; - else - dir = path; - args[0] = dir; - args[1] = rev; + const char *args[] = { name, rev }; emit_module_link(ctx.repo->module_link, args, 2); } html("'>"); - html_txt(path); + html_txt(name); html("</a>"); } else { html("<span"); if (class) htmlf(" class='%s'", class); html(">"); - html_txt(path); + html_txt(name); html("</span>"); } - html_txtf(" @ %.7s", rev); - if (item && tail) + html(" @ <span class='ls-mod-hash' title='"); + html_attr(rev); + html("'>"); + html_txtf("%.7s", rev); + html("</span>"); + if (tail == '/') path[len - 1] = tail; } |
