Re: [PATCH v2] grep: avoid setting UTF mode when dangerous with PCRE
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Nov 19, 2021, 06:58 UTC
- Message-ID
- <211119.86r1bc4om5.gmgdl@evledraar.gmail.com>
- In-Reply-To
- <HAQR2R.KZGF0ERBQ2Z72@effective-light.com>
On Thu, Nov 18 2021, Hamza Mahfooz wrote:
Show 19 quoted lines
> If none of the patches that are trying to fix our usage of PCRE2 are > ACKed. > It would be preferable (from my perspective) to revert only ae39ba431a > (grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data, > 2021-10-15) and disable the feature (for the time being) if PCRE2 is > selected, like so: > > diff --git a/pretty.c b/pretty.c > index 1af5b093ae..a53d008d1e 100644 > --- a/pretty.c > +++ b/pretty.c > @@ -452,7 +452,7 @@ static void append_line_with_color(struct strbuf > *sb, struct grep_opt *opt, > buf = line; > eol = buf + linelen; > > - if (!opt || !want_color(color) || opt->invert) > + if (!opt || !want_color(color) || opt->invert || opt->pcre2) > goto end;
I see that depending on LC_ALL the behavior of grep.patternType=extended can exhibit some of the same issues with character splitting, so perhaps what we'd do with the C library serves as a useful guide?