Branch: refs/heads/yves/fix_accept_in_curlyx_whilem
Home: https://github.com/Perl/perl5
Commit: 60ac05159437c818d7a1f17140e8d3e3178d557e
https://github.com/Perl/perl5/commit/60ac05159437c818d7a1f17140e8d3e3178d557e
Author: Yves Orton <[email protected]>
Date: 2023-01-14 (Sat, 14 Jan 2023)
Changed paths:
M MANIFEST
M regexec.c
M t/re/pat_re_eval.t
M t/re/re_tests
M t/re/regexp.t
A t/re/regexp_normal.t
Log Message:
-----------
regexec.c - fix accept in CURLYX/WHILEM construct.
The ACCEPT logic didnt know how to handle WHILEM, which for
some reason does not have a next_off defined. I am not sure why.
This was revealed by forcing CURLYX optimisations off. This includes
a patch to test what happens if we embed an eval group in the tests
run by regexp.t when run via regexp_normal.t, which disabled CURLYX ->
CURLYN and CURLYM optimisations and revealed this issue.
This adds t/re/regexp_normal.t which test "normalized" forms of
the patterns in t/re/re_tests by munging them in various ways
to see if they still behave as expected. For instance injecting
a (?{}) can disable optimisations.