Further fixing for #15549. Six tests are failing
Jarkko Hietaniemi [Wed, 27 Mar 2002 15:06:56 +0000 (15:06 +0000)]
under Solaris with en_US.UTF-8 but those failures seem
unrelated to the BOUND problem, will look at them later.

p4raw-id: //depot/perl@15550

regexec.c

index 5dbe166..f2d4b3d 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -1129,11 +1129,9 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *sta
                if (s == PL_bostr)
                    tmp = '\n';
                else {
-                   U8 *r = reghop3((U8*)s, -1, (U8*)startpos);
+                   U8 *r = reghop3((U8*)s, -1, (U8*)PL_bostr);
                
-                   tmp = s > (char*)r ?
-                     utf8n_to_uvchr(r, s - (char*)r, 0, 0) :
-                     utf8n_to_uvchr(s, UTF8SKIP(s), 0, 0);
+                   tmp = utf8n_to_uvchr(r, UTF8SKIP(r), 0, 0);
                }
                tmp = ((OP(c) == BOUND ?
                        isALNUM_uni(tmp) : isALNUM_LC_uvchr(UNI_TO_NATIVE(tmp))) != 0);
@@ -1174,11 +1172,9 @@ S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *sta
                if (s == PL_bostr)
                    tmp = '\n';
                else {
-                   U8 *r = reghop3((U8*)s, -1, (U8*)startpos);
+                   U8 *r = reghop3((U8*)s, -1, (U8*)PL_bostr);
                
-                   tmp = s > (char*)r ?
-                     utf8n_to_uvchr(r, s - (char*)r, 0, 0) :
-                     utf8n_to_uvchr(s, UTF8SKIP(s), 0, 0);
+                   tmp = utf8n_to_uvchr(r, UTF8SKIP(r), 0, 0);
                }
                tmp = ((OP(c) == NBOUND ?
                        isALNUM_uni(tmp) : isALNUM_LC_uvchr(UNI_TO_NATIVE(tmp))) != 0);
@@ -2565,11 +2561,9 @@ S_regmatch(pTHX_ regnode *prog)
                if (locinput == PL_bostr)
                    ln = '\n';
                else {
-                   U8 *r = reghop3((U8*)locinput, -1, (U8*)PL_reg_starttry);
+                   U8 *r = reghop3((U8*)locinput, -1, (U8*)PL_bostr);
                
-                   ln = locinput > (char*)r ?
-                     utf8n_to_uvchr(r, locinput - (char*)r, 0, 0) :
-                     utf8n_to_uvchr(locinput, UTF8SKIP(locinput), 0, 0);
+                   ln = utf8n_to_uvchr(r, UTF8SKIP(r), 0, 0);
                }
                if (OP(scan) == BOUND || OP(scan) == NBOUND) {
                    ln = isALNUM_uni(ln);