all repos — cgit @ 103940fe6b0914dc42b8b033d1d328f38135ca5f

a hyperfast web frontend for git written in c

Add ofs argument to cgit_log_link and use it in ui-log.c

This fixes a bug in the prev/next links on the log page: when on the default
branch the links to prev/next page would contain h=(null).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Lars Hjemli hjemli@gmail.com
Fri, 29 Jun 2007 20:27:41 +0200
commit

103940fe6b0914dc42b8b033d1d328f38135ca5f

parent

382805ee83b6e6f165159312a9fe20e3971897b6

6 files changed, 30 insertions(+), 16 deletions(-)

jump to
M cgit.hcgit.h

@@ -206,7 +206,7 @@

extern void cgit_tree_link(char *name, char *title, char *class, char *head, char *rev, char *path); extern void cgit_log_link(char *name, char *title, char *class, char *head, - char *rev, char *path); + char *rev, char *path, int ofs); extern void cgit_commit_link(char *name, char *title, char *class, char *head, char *rev); extern void cgit_diff_link(char *name, char *title, char *class, char *head,
M ui-log.cui-log.c

@@ -113,17 +113,15 @@

if (pager) { html("<div class='pager'>"); if (ofs > 0) { - html("&nbsp;<a href='"); - html(cgit_pageurl(cgit_query_repo, cgit_query_page, - fmt("h=%s&amp;ofs=%d", tip, ofs-cnt))); - html("'>[prev]</a>&nbsp;"); + cgit_log_link("[prev]", NULL, NULL, cgit_query_head, + cgit_query_sha1, cgit_query_path, + ofs - cnt); + html("&nbsp;"); } - if ((commit = get_revision(&rev)) != NULL) { - html("&nbsp;<a href='"); - html(cgit_pageurl(cgit_query_repo, "log", - fmt("h=%s&amp;ofs=%d", tip, ofs+cnt))); - html("'>[next]</a>&nbsp;"); + cgit_log_link("[next]", NULL, NULL, cgit_query_head, + cgit_query_sha1, cgit_query_path, + ofs + cnt); } html("</div>"); }
M ui-repolist.cui-repolist.c

@@ -98,7 +98,7 @@ html("<td>");

html_link_open(cgit_repourl(cgit_repo->url), NULL, "button"); html("summary</a>"); - cgit_log_link("log", NULL, "button", NULL, NULL, NULL); + cgit_log_link("log", NULL, "button", NULL, NULL, NULL, 0); cgit_tree_link("tree", NULL, "button", NULL, NULL, NULL); html("</td>"); }
M ui-shared.cui-shared.c

@@ -163,9 +163,25 @@ 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,

@@ -302,7 +318,7 @@ 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);
M ui-summary.cui-summary.c

@@ -27,7 +27,7 @@ commit->object.parsed = 0;

if (commit && !parse_commit(commit)){ info = cgit_parse_commit(commit); html("<tr><td>"); - cgit_log_link(ref, NULL, NULL, ref, NULL, NULL); + cgit_log_link(ref, NULL, NULL, ref, NULL, NULL, 0); html("</td><td>"); cgit_print_age(commit->date, -1, NULL); html("</td><td>");
M ui-tree.cui-tree.c

@@ -93,7 +93,7 @@ htmlf("</td><td class='ls-size'>%li</td>", size);

html("<td>"); cgit_log_link("log", NULL, "button", cgit_query_head, curr_rev, - fullpath); + fullpath, 0); html("</td></tr>\n"); free(name); return 0;