Ævar Arnfjörð Bjarmason  <[email protected]> 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 <[email protected]>
> ---
>  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.

Reply via email to