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) (unidiff)
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) (ignore whitespace changes)
-rw-r--r--ui-log.c11
-rw-r--r--ui-shared.c1
2 files changed, 8 insertions, 4 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
137{ 137{
138 struct rev_info rev; 138 struct rev_info rev;
139 struct commit *commit; 139 struct commit *commit;
140 const char *argv[] = {NULL, NULL, NULL, NULL, NULL}; 140 const char *argv[] = {NULL, NULL, NULL, NULL, NULL};
141 int argc = 2; 141 int argc = 2;
142 int i, columns = 3; 142 int i, columns = 3;
143 143
144 if (!tip) 144 if (!tip)
145 tip = ctx.qry.head; 145 tip = ctx.qry.head;
146 146
147 argv[1] = disambiguate_ref(tip); 147 argv[1] = disambiguate_ref(tip);
148 148
149 if (grep && pattern && (!strcmp(grep, "grep") || 149 if (grep && pattern) {
150 !strcmp(grep, "author") || 150 if (!strcmp(grep, "grep") || !strcmp(grep, "author") ||
151 !strcmp(grep, "committer"))) 151 !strcmp(grep, "committer"))
152 argv[argc++] = fmt("--%s=%s", grep, pattern); 152 argv[argc++] = fmt("--%s=%s", grep, pattern);
153 if (!strcmp(grep, "range"))
154 argv[1] = pattern;
155 }
153 156
154 if (path) { 157 if (path) {
155 argv[argc++] = "--"; 158 argv[argc++] = "--";
156 argv[argc++] = path; 159 argv[argc++] = path;
157 } 160 }
158 init_revisions(&rev, NULL); 161 init_revisions(&rev, NULL);
159 rev.abbrev = DEFAULT_ABBREV; 162 rev.abbrev = DEFAULT_ABBREV;
160 rev.commit_format = CMIT_FMT_DEFAULT; 163 rev.commit_format = CMIT_FMT_DEFAULT;
161 rev.verbose_header = 1; 164 rev.verbose_header = 1;
162 rev.show_root_diff = 0; 165 rev.show_root_diff = 0;
163 setup_revisions(argc, argv, &rev, NULL); 166 setup_revisions(argc, argv, &rev, NULL);
164 load_ref_decorations(DECORATE_FULL_REFS); 167 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)
729 NULL); 729 NULL);
730 html("</td><td class='form'>"); 730 html("</td><td class='form'>");
731 html("<form class='right' method='get' action='"); 731 html("<form class='right' method='get' action='");
732 if (ctx->cfg.virtual_root) 732 if (ctx->cfg.virtual_root)
733 html_url_path(cgit_fileurl(ctx->qry.repo, "log", 733 html_url_path(cgit_fileurl(ctx->qry.repo, "log",
734 ctx->qry.path, NULL)); 734 ctx->qry.path, NULL));
735 html("'>\n"); 735 html("'>\n");
736 cgit_add_hidden_formfields(1, 0, "log"); 736 cgit_add_hidden_formfields(1, 0, "log");
737 html("<select name='qt'>\n"); 737 html("<select name='qt'>\n");
738 html_option("grep", "log msg", ctx->qry.grep); 738 html_option("grep", "log msg", ctx->qry.grep);
739 html_option("author", "author", ctx->qry.grep); 739 html_option("author", "author", ctx->qry.grep);
740 html_option("committer", "committer", ctx->qry.grep); 740 html_option("committer", "committer", ctx->qry.grep);
741 html_option("range", "range", ctx->qry.grep);
741 html("</select>\n"); 742 html("</select>\n");
742 html("<input class='txt' type='text' size='10' name='q' value='"); 743 html("<input class='txt' type='text' size='10' name='q' value='");
743 html_attr(ctx->qry.search); 744 html_attr(ctx->qry.search);
744 html("'/>\n"); 745 html("'/>\n");
745 html("<input type='submit' value='search'/>\n"); 746 html("<input type='submit' value='search'/>\n");
746 html("</form>\n"); 747 html("</form>\n");
747 } else { 748 } else {
748 site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); 749 site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0);
749 if (ctx->cfg.root_readme) 750 if (ctx->cfg.root_readme)
750 site_link("about", "about", NULL, hc(cmd, "about"), 751 site_link("about", "about", NULL, hc(cmd, "about"),
751 NULL, 0); 752 NULL, 0);
752 html("</td><td class='form'>"); 753 html("</td><td class='form'>");