X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/7dc99a4bbbb8b791b58bd8bd34a3b149e3c0bb52..426032f767763b46f462de51d1ebded34f671d79:/ui-shared.c diff --git a/ui-shared.c b/ui-shared.c index c8c1c21..657e8af 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -69,9 +69,9 @@ char *cgit_pageurl(const char *reponame, const char *pagename, pagename); } else { if (query) - return fmt("?r=%s&p=%s&%s", reponame, pagename, query); + return fmt("?r=%s&p=%s&%s", reponame, pagename, query); else - return fmt("?r=%s&p=%s", reponame, pagename); + return fmt("?r=%s&p=%s", reponame, pagename); } } @@ -87,6 +87,70 @@ char *cgit_currurl() return fmt("%s/", cgit_virtual_root); } +static char *repolink(char *title, char *class, char *page, char *head, + char *path) +{ + char *delim = "?"; + + html("url); + if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') + html("/"); + html(page); + html("/"); + if (path) + html_attr(path); + } else { + html(cgit_script_name); + html("?url="); + html_attr(cgit_repo->url); + if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') + html("/"); + html(page); + html("/"); + if (path) + html_attr(path); + delim = "&"; + } + if (head && strcmp(head, cgit_query_head)) { + html(delim); + html("h="); + html_attr(head); + delim = "&"; + } + return fmt("%s", delim); +} + +void cgit_tree_link(char *name, char *title, char *class, char *head, + char *rev, char *path) +{ + char *delim; + + delim = repolink(title, class, "tree", head, path); + if (rev && strcmp(rev, cgit_query_head)) { + html(delim); + html("id="); + html_attr(rev); + } + html("'>"); + html_txt(name); + html(""); +} void cgit_print_date(time_t secs, char *format) {