summaryrefslogtreecommitdiff
path: root/regexec.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-02-11 17:12:49 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-02-11 17:12:49 +0000
commit30edbf31611701ee49012392542f33ef851b0523 (patch)
tree26d82b88bd406e18bce52667d4c5f819bbd6b302 /regexec.c
parent66fd8cb95c4406632e1d0e384b66b49a32063913 (diff)
downloadperl-30edbf31611701ee49012392542f33ef851b0523.tar.gz
Retract #8762.
p4raw-id: //depot/perl@8769
Diffstat (limited to 'regexec.c')
-rw-r--r--regexec.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/regexec.c b/regexec.c
index 826dae232c..c70d1b1655 100644
--- a/regexec.c
+++ b/regexec.c
@@ -2075,6 +2075,13 @@ S_regmatch(pTHX_ regnode *prog)
sayNO;
break;
case SANY:
+ if (do_utf8) {
+ locinput += PL_utf8skip[nextchr];
+ if (locinput > PL_regeol)
+ sayNO;
+ nextchr = UCHARAT(locinput);
+ break;
+ }
if (!nextchr && locinput >= PL_regeol)
sayNO;
nextchr = UCHARAT(++locinput);
@@ -3556,7 +3563,15 @@ S_regrepeat(pTHX_ regnode *p, I32 max)
}
break;
case SANY:
- scan = loceol;
+ if (do_utf8) {
+ loceol = PL_regeol;
+ while (hardcount < max && scan < loceol) {
+ scan += UTF8SKIP(scan);
+ hardcount++;
+ }
+ } else {
+ scan = loceol;
+ }
break;
case EXACT: /* length of string is 1 */
c = (U8)*STRING(p);