X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/2159414a3945f059a7e52a4900ffcd1ca665e102..db4b735464aa9a3a329494b7f042413a65e182f2:/ui-shared.c?ds=sidebyside diff --git a/ui-shared.c b/ui-shared.c index 32f23f9..f8e5bef 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -144,10 +144,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(ctx.qry.url); else - html_url_path(ctx.cfg.script_name); + html_attr(cgit_rooturl()); if (page) { htmlf("?p=%s", page); @@ -273,9 +273,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 +443,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, @@ -751,31 +751,19 @@ void cgit_print_docend() static void add_clone_urls(void (*fn)(const char *), char *txt, char *suffix) { - struct strbuf buf = STRBUF_INIT; - char *h = txt, *t, c; + struct strbuf **url_list = strbuf_split_str(txt, ' ', 0); + int i; - while (h && *h) { - while (h && *h == ' ') - h++; - if (!*h) - break; - t = h; - while (t && *t && *t != ' ') - t++; - c = *t; - *t = 0; - - if (suffix && *suffix) { - strbuf_reset(&buf); - strbuf_addf(&buf, "%s/%s", h, suffix); - h = buf.buf; - } - fn(h); - *t = c; - h = t; + for (i = 0; url_list[i]; i++) { + strbuf_rtrim(url_list[i]); + if (url_list[i]->len == 0) + continue; + if (suffix && *suffix) + strbuf_addf(url_list[i], "/%s", suffix); + fn(url_list[i]->buf); } - strbuf_release(&buf); + strbuf_list_free(url_list); } void cgit_add_clone_urls(void (*fn)(const char *)) @@ -964,7 +952,7 @@ void cgit_print_pageheader(void) NULL, NULL, 0); html("