Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > 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 commit 63e7e9d8b6 ("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 > commit 727b6fc3ed ("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@xxxxxxxxx> > --- > revision.c | 1 + > t/t4202-log.sh | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- > 2 files changed, 56 insertions(+), 5 deletions(-) > > diff --git a/revision.c b/revision.c > index 8a8c1789c7..4883cdd2d0 100644 > --- a/revision.c > +++ b/revision.c > @@ -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")) { Looks good. I however wonder if it is a better approach in the longer term to treat the .ignore_case field just like .extended_regexp_option field, i.e. not committing immediately to .regflags but commit it after config and command line parsing is done, just like we make the "BRE? ERE?" decision in grep_commit_pattern_type(). Thanks.