X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/caed6cb27f1869b0590cab56fc3394762892d049..6bcda2f73da605d48279341b1905c1b234a39368:/ui-shared.c?ds=sidebyside diff --git a/ui-shared.c b/ui-shared.c index bd74f42..838437c 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -65,6 +65,13 @@ const char *cgit_hosturl() return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port); } +const char *cgit_currenturl() +{ + if (!ctx.qry.url) + return cgit_rooturl(); + return ctx.qry.url; +} + const char *cgit_rooturl() { if (ctx.cfg.virtual_root) @@ -144,10 +151,10 @@ static void site_url(const char *page, const char *search, const char *sort, int { char *delim = "?"; - if (ctx.cfg.virtual_root) - html_attr(ctx.cfg.virtual_root); + if (!page) + html_attr(cgit_currenturl()); else - html_url_path(ctx.cfg.script_name); + html_attr(cgit_rooturl()); if (page) { htmlf("?p=%s", page); @@ -273,9 +280,9 @@ void cgit_summary_link(const char *name, const char *title, const char *class, } void cgit_tag_link(const char *name, const char *title, const char *class, - const char *head, const char *rev) + const char *tag) { - reporevlink("tag", name, title, class, head, rev, NULL); + reporevlink("tag", name, title, class, tag, NULL, NULL); } void cgit_tree_link(const char *name, const char *title, const char *class, @@ -443,8 +450,8 @@ static void cgit_self_link(char *name, const char *title, const char *class) else if (!strcmp(ctx.qry.page, "summary")) cgit_summary_link(name, title, class, ctx.qry.head); else if (!strcmp(ctx.qry.page, "tag")) - cgit_tag_link(name, title, class, ctx.qry.head, - ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL); + cgit_tag_link(name, title, class, ctx.qry.has_sha1 ? + ctx.qry.sha1 : ctx.qry.head); else if (!strcmp(ctx.qry.page, "tree")) cgit_tree_link(name, title, class, ctx.qry.head, ctx.qry.has_sha1 ? ctx.qry.sha1 : NULL, @@ -740,7 +747,7 @@ void cgit_print_docend() if (ctx.cfg.footer) html_include(ctx.cfg.footer); else { - htmlf("