Update Changes.
[p5sagit/p5-mst-13.2.git] / pp_ctl.c
index 0f034ee..046c666 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -91,7 +91,7 @@ PP(pp_regcomp)
     if (SvROK(tmpstr)) {
        SV *sv = SvRV(tmpstr);
        if(SvMAGICAL(sv))
-           mg = mg_find(sv, 'r');
+           mg = mg_find(sv, PERL_MAGIC_qr);
     }
     if (mg) {
        regexp *re = (regexp *)mg->mg_obj;
@@ -227,9 +227,9 @@ PP(pp_substcont)
        I32 i;
        if (SvTYPE(sv) < SVt_PVMG)
            (void)SvUPGRADE(sv, SVt_PVMG);
-       if (!(mg = mg_find(sv, 'g'))) {
-           sv_magic(sv, Nullsv, 'g', Nullch, 0);
-           mg = mg_find(sv, 'g');
+       if (!(mg = mg_find(sv, PERL_MAGIC_regex_global))) {
+           sv_magic(sv, Nullsv, PERL_MAGIC_regex_global, Nullch, 0);
+           mg = mg_find(sv, PERL_MAGIC_regex_global);
        }
        i = m - orig;
        if (DO_UTF8(sv))
@@ -312,18 +312,18 @@ PP(pp_formline)
     register char *s;
     register char *send;
     register I32 arg;
-    register SV *sv;
-    char *item;
-    I32 itemsize;
-    I32 fieldsize;
+    register SV *sv = Nullsv;
+    char *item = Nullch;
+    I32 itemsize  = 0;
+    I32 fieldsize = 0;
     I32 lines = 0;
     bool chopspace = (strchr(PL_chopset, ' ') != Nullch);
-    char *chophere;
-    char *linemark;
+    char *chophere = Nullch;
+    char *linemark = Nullch;
     NV value;
-    bool gotsome;
+    bool gotsome = FALSE;
     STRLEN len;
-    STRLEN fudge = SvCUR(tmpForm) * (IN_BYTE ? 1 : 3) + 1;
+    STRLEN fudge = SvCUR(tmpForm) * (IN_BYTES ? 1 : 3) + 1;
     bool item_is_utf = FALSE;
 
     if (!SvMAGICAL(tmpForm) || !SvCOMPILED(tmpForm)) {
@@ -373,7 +373,7 @@ PP(pp_formline)
                PerlIO_printf(Perl_debug_log, "%-16s%ld\n", name, (long) arg);
            else
                PerlIO_printf(Perl_debug_log, "%-16s\n", name);
-       } )
+       } );
        switch (*fpc++) {
        case FF_LINEMARK:
            linemark = t;
@@ -887,7 +887,7 @@ PP(pp_sort)
     register I32 max;
     HV *stash;
     GV *gv;
-    CV *cv;
+    CV *cv = 0;
     I32 gimme = GIMME;
     OP* nextop = PL_op->op_next;
     I32 overloading = 0;
@@ -1031,7 +1031,7 @@ PP(pp_sort)
                        ? ( (PL_op->op_private & OPpSORT_INTEGER)
                            ? ( overloading ? amagic_i_ncmp : sv_i_ncmp)
                            : ( overloading ? amagic_ncmp : sv_ncmp))
-                       : ( (PL_op->op_private & OPpLOCALE)
+                       : ( IN_LOCALE_RUNTIME
                            ? ( overloading
                                ? amagic_cmp_locale
                                : sv_cmp_locale_static)
@@ -1434,10 +1434,6 @@ Perl_die_where(pTHX_ char *message, STRLEN msglen)
            }
            else {
                sv_setpvn(ERRSV, message, msglen);
-               if (PL_hints & HINT_UTF8)
-                   SvUTF8_on(ERRSV);
-               else
-                   SvUTF8_off(ERRSV);
            }
        }
        else
@@ -2836,6 +2832,9 @@ S_doeval(pTHX_ int gimme, OP** startop)
     PL_compcv = (CV*)NEWSV(1104,0);
     sv_upgrade((SV *)PL_compcv, SVt_PVCV);
     CvEVAL_on(PL_compcv);
+    assert(CxTYPE(&cxstack[cxstack_ix]) == CXt_EVAL);
+    cxstack[cxstack_ix].blk_eval.cv = PL_compcv;
+
 #ifdef USE_THREADS
     CvOWNER(PL_compcv) = 0;
     New(666, CvMUTEXP(PL_compcv), 1, perl_mutex);
@@ -3020,7 +3019,7 @@ PP(pp_require)
     SV *sv;
     char *name;
     STRLEN len;
-    char *tryname;
+    char *tryname = Nullch;
     SV *namesv = Nullsv;
     SV** svp;
     I32 gimme = GIMME_V;
@@ -3033,7 +3032,7 @@ PP(pp_require)
 
     sv = POPs;
     if (SvNIOKp(sv)) {
-       if (SvPOK(sv) && SvNOK(sv)) {           /* require v5.6.1 */
+       if (SvPOK(sv) && SvNOK(sv) && SvNV(sv)) {               /* require v5.6.1 */
            UV rev = 0, ver = 0, sver = 0;
            STRLEN len;
            U8 *s = (U8*)SvPVX(sv);
@@ -3593,14 +3592,14 @@ S_doparseform(pTHX_ SV *sv)
     STRLEN len;
     register char *s = SvPV_force(sv, len);
     register char *send = s + len;
-    register char *base;
+    register char *base = Nullch;
     register I32 skipspaces = 0;
-    bool noblank;
-    bool repeat;
+    bool noblank   = FALSE;
+    bool repeat    = FALSE;
     bool postspace = FALSE;
     U16 *fops;
     register U16 *fpc;
-    U16 *linepc;
+    U16 *linepc = 0;
     register I32 arg;
     bool ischop;
 
@@ -3779,7 +3778,7 @@ S_doparseform(pTHX_ SV *sv)
     }
     Copy(fops, s, arg, U16);
     Safefree(fops);
-    sv_magic(sv, Nullsv, 'f', Nullch, 0);
+    sv_magic(sv, Nullsv, PERL_MAGIC_fm, Nullch, 0);
     SvCOMPILED_on(sv);
 }