зеркало из https://github.com/microsoft/git.git
log: make --regexp-ignore-case work with --perl-regexp
Make the --regexp-ignore-case option work with --perl-regexp. This never worked, and there was no test for this. Fix the bug and add a test. When PCRE support was added in commit63e7e9d8b6
("git-grep: Learn PCRE", 2011-05-09) compile_pcre_regexp() would only check opt->ignore_case, but when the --perl-regexp option was added in commit727b6fc3ed
("log --grep: accept --basic-regexp and --perl-regexp", 2012-10-03) the code didn't set the opt->ignore_case. Change the test suite to test for -i and --invert-regexp with basic/extended/perl patterns in addition to fixed, which was the only patternType that was tested for before in combination with those options. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
9df46763ef
Коммит
9e3cbc59d5
|
@ -1991,6 +1991,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|||
} else if (!strcmp(arg, "--extended-regexp") || !strcmp(arg, "-E")) {
|
||||
revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_ERE;
|
||||
} else if (!strcmp(arg, "--regexp-ignore-case") || !strcmp(arg, "-i")) {
|
||||
revs->grep_filter.ignore_case = 1;
|
||||
revs->grep_filter.regflags |= REG_ICASE;
|
||||
DIFF_OPT_SET(&revs->diffopt, PICKAXE_IGNORE_CASE);
|
||||
} else if (!strcmp(arg, "--fixed-strings") || !strcmp(arg, "-F")) {
|
||||
|
|
|
@ -231,14 +231,47 @@ second
|
|||
initial
|
||||
EOF
|
||||
test_expect_success 'log --invert-grep --grep' '
|
||||
git log --pretty="tformat:%s" --invert-grep --grep=th --grep=Sec >actual &&
|
||||
test_cmp expect actual
|
||||
# Fixed
|
||||
git -c grep.patternType=fixed log --pretty="tformat:%s" --invert-grep --grep=th --grep=Sec >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# POSIX basic
|
||||
git -c grep.patternType=basic log --pretty="tformat:%s" --invert-grep --grep=t[h] --grep=S[e]c >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# POSIX extended
|
||||
git -c grep.patternType=basic log --pretty="tformat:%s" --invert-grep --grep=t[h] --grep=S[e]c >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# PCRE
|
||||
if test_have_prereq PCRE
|
||||
then
|
||||
git -c grep.patternType=perl log --pretty="tformat:%s" --invert-grep --grep=t[h] --grep=S[e]c >actual &&
|
||||
test_cmp expect actual
|
||||
fi
|
||||
'
|
||||
|
||||
test_expect_success 'log --invert-grep --grep -i' '
|
||||
echo initial >expect &&
|
||||
git log --pretty="tformat:%s" --invert-grep -i --grep=th --grep=Sec >actual &&
|
||||
test_cmp expect actual
|
||||
|
||||
# Fixed
|
||||
git -c grep.patternType=fixed log --pretty="tformat:%s" --invert-grep -i --grep=th --grep=Sec >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# POSIX basic
|
||||
git -c grep.patternType=basic log --pretty="tformat:%s" --invert-grep -i --grep=t[h] --grep=S[e]c >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# POSIX extended
|
||||
git -c grep.patternType=extended log --pretty="tformat:%s" --invert-grep -i --grep=t[h] --grep=S[e]c >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# PCRE
|
||||
if test_have_prereq PCRE
|
||||
then
|
||||
git -c grep.patternType=perl log --pretty="tformat:%s" --invert-grep -i --grep=t[h] --grep=S[e]c >actual &&
|
||||
test_cmp expect actual
|
||||
fi
|
||||
'
|
||||
|
||||
test_expect_success 'log --grep option parsing' '
|
||||
|
@ -256,8 +289,25 @@ test_expect_success 'log -i --grep' '
|
|||
|
||||
test_expect_success 'log --grep -i' '
|
||||
echo Second >expect &&
|
||||
|
||||
# Fixed
|
||||
git log -1 --pretty="tformat:%s" --grep=sec -i >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp expect actual &&
|
||||
|
||||
# POSIX basic
|
||||
git -c grep.patternType=basic log -1 --pretty="tformat:%s" --grep=s[e]c -i >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# POSIX extended
|
||||
git -c grep.patternType=extended log -1 --pretty="tformat:%s" --grep=s[e]c -i >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
# PCRE
|
||||
if test_have_prereq PCRE
|
||||
then
|
||||
git -c grep.patternType=perl log -1 --pretty="tformat:%s" --grep=s[e]c -i >actual &&
|
||||
test_cmp expect actual
|
||||
fi
|
||||
'
|
||||
|
||||
test_expect_success 'log -F -E --grep=<ere> uses ere' '
|
||||
|
|
Загрузка…
Ссылка в новой задаче