X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/0f23d4651c80170574c0ab2f091c0718150631ce..121e65391446069a538ae8d3f7938452178de7c6:/ui-shared.c?ds=sidebyside diff --git a/ui-shared.c b/ui-shared.c index d4c4bb9..ac5a287 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -69,7 +69,11 @@ const char *cgit_currenturl(void) { if (!ctx.qry.url) return cgit_rooturl(); - return ctx.qry.url; + const char *root = cgit_rooturl(); + size_t len = strlen(root); + if (len && root[len - 1] == '/') + return fmtalloc("%s%s", root, ctx.qry.url); + return fmtalloc("%s/%s", root, ctx.qry.url); } const char *cgit_rooturl(void) @@ -82,7 +86,7 @@ const char *cgit_rooturl(void) const char *cgit_loginurl(void) { - static const char *login_url = 0; + static const char *login_url; if (!login_url) login_url = fmtalloc("%s?p=login", cgit_rooturl()); return login_url; @@ -119,7 +123,7 @@ char *cgit_fileurl(const char *reponame, const char *pagename, char *cgit_pageurl(const char *reponame, const char *pagename, const char *query) { - return cgit_fileurl(reponame, pagename, 0, query); + return cgit_fileurl(reponame, pagename, NULL, query); } const char *cgit_repobasename(const char *reponame) @@ -555,25 +559,32 @@ void cgit_submodule_link(const char *class, char *path, const char *rev) item = lookup_path(list, path); } } - html("module_link, dir, rev); + if (item || ctx.repo->module_link) { + html("module_link, dir, rev); + } + html("'>"); + html_txt(path); + html(""); } else { - html("#"); + html(""); + html_txt(path); + html(""); } - html("'>"); - html_txt(path); - html(""); html_txtf(" @ %.7s", rev); if (item && tail) path[len - 1] = tail; @@ -884,6 +895,8 @@ static void print_header(void) cgit_add_hidden_formfields(0, 1, ctx.qry.page); html(" "); html(""); html("");