This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regexec.c: Add parameter to static fcn
[perl5.git] / doop.c
diff --git a/doop.c b/doop.c
index f5a40ef..54e35f1 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -225,41 +225,41 @@ S_do_trans_complex(pTHX_ SV * const sv)
            d = s;
        dstart = d;
 
-           while (s < send) {
-               STRLEN len;
-               const UV comp = utf8n_to_uvchr(s, send - s, &len,
-                                              UTF8_ALLOW_DEFAULT);
-               UV     ch;
-                short sch;
-
-                sch = tbl->map[comp >= size ? size : comp];
-
-               if (sch >= 0) {
-                    ch = (UV)sch;
-                  replace:
-                   matches++;
-                   if (LIKELY(!squash || ch != pch)) {
-                       d = uvchr_to_utf8(d, ch);
-                       pch = ch;
-                   }
-                   s += len;
-                   continue;
-               }
-               else if (sch == -1) {   /* -1 is unmapped character */
-                   Move(s, d, len, U8);
-                   d += len;
-               }
-               else if (sch == -2)     /* -2 is delete character */
-                   matches++;
-                else {
-                    assert(sch == -3);  /* -3 is empty replacement */
-                    ch = comp;
-                    goto replace;
+        while (s < send) {
+            STRLEN len;
+            const UV comp = utf8n_to_uvchr(s, send - s, &len,
+                                           UTF8_ALLOW_DEFAULT);
+            UV     ch;
+            short sch;
+
+            sch = tbl->map[comp >= size ? size : comp];
+
+            if (sch >= 0) {
+                ch = (UV)sch;
+              replace:
+                matches++;
+                if (LIKELY(!squash || ch != pch)) {
+                    d = uvchr_to_utf8(d, ch);
+                    pch = ch;
                 }
-
-               s += len;
-               pch = 0xfeedface;
-           }
+                s += len;
+                continue;
+            }
+            else if (sch == -1) {      /* -1 is unmapped character */
+                Move(s, d, len, U8);
+                d += len;
+            }
+            else if (sch == -2)     /* -2 is delete character */
+                matches++;
+            else {
+                assert(sch == -3);  /* -3 is empty replacement */
+                ch = comp;
+                goto replace;
+            }
+
+            s += len;
+            pch = 0xfeedface;
+        }
 
        if (grows) {
            sv_setpvn(sv, (char*)dstart, d - dstart);
@@ -1018,7 +1018,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right)
     STRLEN rightlen;
     const char *lc;
     const char *rc;
-    STRLEN len;
+    STRLEN len = 0;
     STRLEN lensave;
     const char *lsave;
     const char *rsave;
@@ -1095,17 +1095,22 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right)
      * portion.  That means that at least one of the operands has to be
      * entirely non-UTF-8, and the length of that operand has to be before the
      * first above-FF in the other */
-    if (left_utf8) {
-        if (right_utf8 || rightlen > leftlen) {
-            Perl_croak(aTHX_ fatal_above_ff_msg, PL_op_desc[optype]);
+    if (left_utf8 || right_utf8) {
+        if (left_utf8) {
+            if (right_utf8 || rightlen > leftlen) {
+                Perl_croak(aTHX_ FATAL_ABOVE_FF_MSG, PL_op_desc[optype]);
+            }
+            len = rightlen;
         }
-        len = rightlen;
-    }
-    else if (right_utf8) {
-        if (leftlen > rightlen) {
-            Perl_croak(aTHX_ fatal_above_ff_msg, PL_op_desc[optype]);
+        else if (right_utf8) {
+            if (leftlen > rightlen) {
+                Perl_croak(aTHX_ FATAL_ABOVE_FF_MSG, PL_op_desc[optype]);
+            }
+            len = leftlen;
         }
-        len = leftlen;
+
+        Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
+                               DEPRECATED_ABOVE_FF_MSG, PL_op_desc[optype]);
     }
     else {  /* Neither is UTF-8 */
         len = MIN(leftlen, rightlen);