}
-void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager)
+void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern, char *path, int pager)
{
struct rev_info rev;
struct commit *commit;
int argc = 2;
int i;
- if (grep)
- argv[argc++] = fmt("--grep=%s", grep);
+ if (!tip)
+ argv[1] = cgit_query_head;
+
+ if (grep && pattern && (!strcmp(grep, "grep") ||
+ !strcmp(grep, "author") ||
+ !strcmp(grep, "committer")))
+ argv[argc++] = fmt("--%s=%s", grep, pattern);
+
if (path) {
argv[argc++] = "--";
argv[argc++] = path;
if (pager) {
html("<div class='pager'>");
if (ofs > 0) {
- html(" <a href='");
- html(cgit_pageurl(cgit_query_repo, cgit_query_page,
- fmt("h=%s&ofs=%d", tip, ofs-cnt)));
- html("'>[prev]</a> ");
+ cgit_log_link("[prev]", NULL, NULL, cgit_query_head,
+ cgit_query_sha1, cgit_query_path,
+ ofs - cnt, cgit_query_grep,
+ cgit_query_search);
+ html(" ");
}
-
if ((commit = get_revision(&rev)) != NULL) {
- html(" <a href='");
- html(cgit_pageurl(cgit_query_repo, "log",
- fmt("h=%s&ofs=%d", tip, ofs+cnt)));
- html("'>[next]</a> ");
+ cgit_log_link("[next]", NULL, NULL, cgit_query_head,
+ cgit_query_sha1, cgit_query_path,
+ ofs + cnt, cgit_query_grep,
+ cgit_query_search);
}
html("</div>");
}