X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/44947bfcdc0d6e8c7d673bea0538cbf2a182f289..4a0be586662843382ecfa53af34a13b291312bc0:/ui-shared.c diff --git a/ui-shared.c b/ui-shared.c index 9ab6409..15d8254 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -127,7 +127,7 @@ static char *repolink(char *title, char *class, char *page, char *head, html_attr(path); delim = "&"; } - if (head && head != cgit_query_head) { + if (head && strcmp(head, cgit_repo->defbranch)) { html(delim); html("h="); html_attr(head); @@ -136,16 +136,62 @@ static char *repolink(char *title, char *class, char *page, char *head, return fmt("%s", delim); } +static void reporevlink(char *page, char *name, char *title, char *class, + char *head, char *rev, char *path) +{ + char *delim; + + delim = repolink(title, class, page, head, path); + if (rev && strcmp(rev, cgit_query_head)) { + html(delim); + html("id="); + html_attr(rev); + } + html("'>"); + html_txt(name); + html(""); +} + void cgit_tree_link(char *name, char *title, char *class, char *head, char *rev, char *path) +{ + reporevlink("tree", name, title, class, head, rev, path); +} + +void cgit_log_link(char *name, char *title, char *class, char *head, + char *rev, char *path) +{ + reporevlink("log", name, title, class, head, rev, path); +} + +void cgit_commit_link(char *name, char *title, char *class, char *head, + char *rev) +{ + if (strlen(name) > cgit_max_msg_len && cgit_max_msg_len >= 15) { + name[cgit_max_msg_len] = '\0'; + name[cgit_max_msg_len - 1] = '.'; + name[cgit_max_msg_len - 2] = '.'; + name[cgit_max_msg_len - 3] = '.'; + } + reporevlink("commit", name, title, class, head, rev, NULL); +} + +void cgit_diff_link(char *name, char *title, char *class, char *head, + char *new_rev, char *old_rev, char *path) { char *delim; - delim = repolink(title, class, "tree", head, path); - if (rev && rev != cgit_query_head) { + delim = repolink(title, class, "diff", head, path); + if (new_rev && strcmp(new_rev, cgit_query_head)) { html(delim); html("id="); - html_attr(rev); + html_attr(new_rev); + delim = "&"; + } + if (old_rev) { + html(delim); + html("id2="); + html_attr(old_rev); } html("'>"); html_txt(name);