buncha MacPerl patches for bleadperl
[p5sagit/p5-mst-13.2.git] / regexec.c
index 826dae2..c70d1b1 100644 (file)
--- 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);