diff options
author | René Scharfe <l.s.r@web.de> | 2014-03-22 18:15:56 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-24 15:12:45 -0700 |
commit | 218c45a45c4e1c3b09a1b6b2bc6e6ed457e38a9f (patch) | |
tree | ea626083417207c37c0caf707ffdc47fbbbe2bb9 | |
parent | 31a8189ad1a0ab6e933cdafb560c513632028d59 (diff) | |
download | git-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.c | 5 | ||||
-rwxr-xr-x | t/t4209-log-pickaxe.sh | 5 |
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(®ex, needle, REG_EXTENDED | REG_NEWLINE); + int cflags = REG_EXTENDED | REG_NEWLINE; + if (DIFF_OPT_TST(o, PICKAXE_IGNORE_CASE)) + cflags |= REG_ICASE; + err = regcomp(®ex, 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 && |