summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2014-03-22 18:15:56 +0100
committerJunio C Hamano <gitster@pobox.com>2014-03-24 15:12:45 -0700
commit218c45a45c4e1c3b09a1b6b2bc6e6ed457e38a9f (patch)
treeea626083417207c37c0caf707ffdc47fbbbe2bb9
parent31a8189ad1a0ab6e933cdafb560c513632028d59 (diff)
downloadgit-218c45a45c4e1c3b09a1b6b2bc6e6ed457e38a9f.tar.gz
pickaxe: honor -i when used with -S and --pickaxe-regex
accccde4 (pickaxe: allow -i to search in patch case-insensitively) allowed case-insenitive matching for -G and -S, but for the latter only if fixed string matching is used. Allow it for -S and regular expression matching as well to make the support complete. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--diffcore-pickaxe.c5
-rwxr-xr-xt/t4209-log-pickaxe.sh5
2 files changed, 9 insertions, 1 deletions
diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c
index 401eb72c61..cb758515ec 100644
--- a/diffcore-pickaxe.c
+++ b/diffcore-pickaxe.c
@@ -237,7 +237,10 @@ static void diffcore_pickaxe_count(struct diff_options *o)
if (opts & DIFF_PICKAXE_REGEX) {
int err;
- err = regcomp(&regex, needle, REG_EXTENDED | REG_NEWLINE);
+ int cflags = REG_EXTENDED | REG_NEWLINE;
+ if (DIFF_OPT_TST(o, PICKAXE_IGNORE_CASE))
+ cflags |= REG_ICASE;
+ err = regcomp(&regex, needle, cflags);
if (err) {
/* The POSIX.2 people are surely sick */
char errbuf[1024];
diff --git a/t/t4209-log-pickaxe.sh b/t/t4209-log-pickaxe.sh
index 138118add1..844df760f7 100755
--- a/t/t4209-log-pickaxe.sh
+++ b/t/t4209-log-pickaxe.sh
@@ -88,6 +88,11 @@ test_log expect_second -S Picked
test_log_icase expect_second -S picked
test_log_icase expect_nomatch -S pickle
+test_log expect_nomatch -S p.cked --pickaxe-regex
+test_log expect_second -S P.cked --pickaxe-regex
+test_log_icase expect_second -S p.cked --pickaxe-regex
+test_log_icase expect_nomatch -S p.ckle --pickaxe-regex
+
test_expect_success 'log -S --textconv (missing textconv tool)' '
echo "* diff=test" >.gitattributes &&
test_must_fail git -c diff.test.textconv=missing log -Sfoo &&