-rw-r--r-- | ui-shared.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/ui-shared.c b/ui-shared.c index 64c237f..bfcc2ac 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -158,19 +158,35 @@ static void reporevlink(char *page, char *name, char *title, char *class, 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) + char *rev, char *path, int ofs) { - reporevlink("log", name, title, class, head, rev, path); + char *delim; + + delim = repolink(title, class, "log", head, path); + if (rev && strcmp(rev, cgit_query_head)) { + html(delim); + html("id="); + html_attr(rev); + delim = "&"; + } + if (ofs > 0) { + html(delim); + html("ofs="); + htmlf("%d", ofs); + } + html("'>"); + html_txt(name); + html("</a>"); } 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] = '.'; @@ -297,17 +313,17 @@ void cgit_print_pageheader(char *title, int show_search) html_txt(cgit_repo->name); html(" ("); html_txt(cgit_query_head); html(") : "); reporevlink(NULL, "summary", NULL, NULL, cgit_query_head, NULL, NULL); html(" "); cgit_log_link("log", NULL, NULL, cgit_query_head, - cgit_query_sha1, cgit_query_path); + cgit_query_sha1, cgit_query_path, 0); html(" "); cgit_tree_link("tree", NULL, NULL, cgit_query_head, cgit_query_sha1, NULL); html(" "); cgit_commit_link("commit", NULL, NULL, cgit_query_head, cgit_query_sha1); html(" "); cgit_diff_link("diff", NULL, NULL, cgit_query_head, |