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>
This commit is contained in:
René Scharfe 2014-03-22 18:15:56 +01:00 committed by Junio C Hamano
parent 31a8189ad1
commit 218c45a45c
2 changed files with 9 additions and 1 deletions

View File

@ -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];

View File

@ -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 &&