X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/a7cf406c802394460cb14c79f3f43582d1428a45..d14d77fe95c3b6224b40df9b101dded0deea913c:/ui-shared.c diff --git a/ui-shared.c b/ui-shared.c index 9ec646b..6a41fb0 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -112,10 +112,10 @@ char *cgit_currurl() { if (!cgit_virtual_root) return cgit_script_name; - else if (cgit_query_page) - return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); - else if (cgit_query_repo) - return fmt("%s/%s/", cgit_virtual_root, cgit_query_repo); + else if (ctx.qry.page) + return fmt("%s/%s/%s/", cgit_virtual_root, ctx.qry.repo, ctx.qry.page); + else if (ctx.qry.repo) + return fmt("%s/%s/", cgit_virtual_root, ctx.qry.repo); else return fmt("%s/", cgit_virtual_root); } @@ -179,7 +179,7 @@ static void reporevlink(char *page, char *name, char *title, char *class, char *delim; delim = repolink(title, class, page, head, path); - if (rev && strcmp(rev, cgit_query_head)) { + if (rev && strcmp(rev, ctx.qry.head)) { html(delim); html("id="); html_attr(rev); @@ -201,7 +201,7 @@ void cgit_log_link(char *name, char *title, char *class, char *head, char *delim; delim = repolink(title, class, "log", head, path); - if (rev && strcmp(rev, cgit_query_head)) { + if (rev && strcmp(rev, ctx.qry.head)) { html(delim); html("id="); html_attr(rev); @@ -256,7 +256,7 @@ void cgit_diff_link(char *name, char *title, char *class, char *head, char *delim; delim = repolink(title, class, "diff", head, path); - if (new_rev && strcmp(new_rev, cgit_query_head)) { + if (new_rev && strcmp(new_rev, ctx.qry.head)) { html(delim); html("id="); html_attr(new_rev); @@ -272,13 +272,19 @@ void cgit_diff_link(char *name, char *title, char *class, char *head, html(""); } +void cgit_patch_link(char *name, char *title, char *class, char *head, + char *rev) +{ + reporevlink("patch", name, title, class, head, rev, NULL); +} + void cgit_object_link(struct object *obj) { char *page, *arg, *url; if (obj->type == OBJ_COMMIT) { cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL, - cgit_query_head, sha1_to_hex(obj->sha1)); + ctx.qry.head, sha1_to_hex(obj->sha1)); return; } else if (obj->type == OBJ_TREE) { page = "tree"; @@ -291,7 +297,7 @@ void cgit_object_link(struct object *obj) arg = "id"; } - url = cgit_pageurl(cgit_query_repo, page, + url = cgit_pageurl(ctx.qry.repo, page, fmt("%s=%s", arg, sha1_to_hex(obj->sha1))); html_link_open(url, NULL, NULL); htmlf("%s %s", typename(obj->type), @@ -304,6 +310,8 @@ void cgit_print_date(time_t secs, char *format) char buf[64]; struct tm *time; + if (!secs) + return; time = gmtime(&secs); strftime(buf, sizeof(buf)-1, format, time); html_txt(buf); @@ -313,6 +321,8 @@ void cgit_print_age(time_t t, time_t max_relative, char *format) { time_t now, secs; + if (!t) + return; time(&now); secs = now - t; @@ -364,6 +374,8 @@ void cgit_print_docstart(char *title, struct cacheitem *item) html_txt(title); html("\n"); htmlf("\n", cgit_version); + if (cgit_robots && *cgit_robots) + htmlf("\n", cgit_robots); html("\n"); @@ -380,7 +392,7 @@ int print_branch_option(const char *refname, const unsigned char *sha1, int flags, void *cb_data) { char *name = (char *)refname; - html_option(name, name, cgit_query_head); + html_option(name, name, ctx.qry.head); return 0; } @@ -411,10 +423,10 @@ int print_archive_ref(const char *refname, const unsigned char *sha1, hashcpy(fileid, sha1); } if (!*header) { - html("