summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2010-06-19 12:32:37 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2010-06-19 12:32:37 (UTC)
commita579fb02561c98a146c9e707d098d2b10aa02015 (patch) (side-by-side diff)
treee1911ad2d4fb342945474f8fa34fa5bd5e73cab0
parent47187b33be1c3de43fbed6f350ab05bc978aacd0 (diff)
downloadcgit-a579fb02561c98a146c9e707d098d2b10aa02015.zip
cgit-a579fb02561c98a146c9e707d098d2b10aa02015.tar.gz
cgit-a579fb02561c98a146c9e707d098d2b10aa02015.tar.bz2
ui-log.c: allow commit range as search expression
Inspired-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--ui-log.c9
-rw-r--r--ui-shared.c1
2 files changed, 7 insertions, 3 deletions
diff --git a/ui-log.c b/ui-log.c
index 0947604..4441d1d 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -137,28 +137,31 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
{
struct rev_info rev;
struct commit *commit;
const char *argv[] = {NULL, NULL, NULL, NULL, NULL};
int argc = 2;
int i, columns = 3;
if (!tip)
tip = ctx.qry.head;
argv[1] = disambiguate_ref(tip);
- if (grep && pattern && (!strcmp(grep, "grep") ||
- !strcmp(grep, "author") ||
- !strcmp(grep, "committer")))
+ if (grep && pattern) {
+ if (!strcmp(grep, "grep") || !strcmp(grep, "author") ||
+ !strcmp(grep, "committer"))
argv[argc++] = fmt("--%s=%s", grep, pattern);
+ if (!strcmp(grep, "range"))
+ argv[1] = pattern;
+ }
if (path) {
argv[argc++] = "--";
argv[argc++] = path;
}
init_revisions(&rev, NULL);
rev.abbrev = DEFAULT_ABBREV;
rev.commit_format = CMIT_FMT_DEFAULT;
rev.verbose_header = 1;
rev.show_root_diff = 0;
setup_revisions(argc, argv, &rev, NULL);
load_ref_decorations(DECORATE_FULL_REFS);
diff --git a/ui-shared.c b/ui-shared.c
index 8827fff..0f65474 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -729,24 +729,25 @@ void cgit_print_pageheader(struct cgit_context *ctx)
NULL);
html("</td><td class='form'>");
html("<form class='right' method='get' action='");
if (ctx->cfg.virtual_root)
html_url_path(cgit_fileurl(ctx->qry.repo, "log",
ctx->qry.path, NULL));
html("'>\n");
cgit_add_hidden_formfields(1, 0, "log");
html("<select name='qt'>\n");
html_option("grep", "log msg", ctx->qry.grep);
html_option("author", "author", ctx->qry.grep);
html_option("committer", "committer", ctx->qry.grep);
+ html_option("range", "range", ctx->qry.grep);
html("</select>\n");
html("<input class='txt' type='text' size='10' name='q' value='");
html_attr(ctx->qry.search);
html("'/>\n");
html("<input type='submit' value='search'/>\n");
html("</form>\n");
} else {
site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0);
if (ctx->cfg.root_readme)
site_link("about", "about", NULL, hc(cmd, "about"),
NULL, 0);
html("</td><td class='form'>");