This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Rework join_exact()
This re formats and refactors portions of join_exact() that look for the
tricky Greek fold sequences. I renamed various variables, etc, to help
me understand what was going on. It turns out that there were two
off-by-one bugs that prevented this from working properly.
The first bug had the loop quit one too soon The boundary should be
"<=", and not strictly less-than. This means that if the sequence is
the last thing in the string (or only thing) it will not be found.
The other bug had the end-needle parameter be 1 too short, which means
that this would succeed with only the first 3 bytes of the sequence
(now called 'tail'), thus matching many more things than it should
(provided it got the chance to match at all given the first bug).