diff options
author | Brian Fraser <fraserbn@gmail.com> | 2011-10-05 12:48:07 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-10-06 13:01:12 -0700 |
commit | ecad31f01819999d0e5aa744beb37e69192d8b71 (patch) | |
tree | 5daf7d5c1f84f9a837734246dc90ab20d9c0e4d2 /pp_ctl.c | |
parent | 1fddc1283eec7855a9c74204f8f4db3b35be302a (diff) | |
download | perl-ecad31f01819999d0e5aa744beb37e69192d8b71.tar.gz |
Make gv.c and pp_ctl.c warnings utf8-clean
Diffstat (limited to 'pp_ctl.c')
-rw-r--r-- | pp_ctl.c | 42 |
1 files changed, 24 insertions, 18 deletions
@@ -1657,8 +1657,8 @@ Perl_qerror(pTHX_ SV *err) if (PL_in_eval) { if (PL_in_eval & EVAL_KEEPERR) { - Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %s", - SvPV_nolen_const(err)); + Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %"SVf, + SVfARG(err)); } else sv_catsv(ERRSV, err); @@ -1763,20 +1763,21 @@ Perl_die_unwind(pTHX_ SV *msv) PL_curcop = oldcop; if (optype == OP_REQUIRE) { - const char* const msg = SvPVx_nolen_const(exceptsv); (void)hv_store(GvHVn(PL_incgv), - SvPVX_const(namesv), SvCUR(namesv), + SvPVX_const(namesv), + SvUTF8(namesv) ? -SvCUR(namesv) : SvCUR(namesv), &PL_sv_undef, 0); /* note that unlike pp_entereval, pp_require isn't * supposed to trap errors. So now that we've popped the * EVAL that pp_require pushed, and processed the error * message, rethrow the error */ - Perl_croak(aTHX_ "%sCompilation failed in require", - *msg ? msg : "Unknown error\n"); + Perl_croak(aTHX_ "%"SVf"Compilation failed in require", + SVfARG(exceptsv ? exceptsv : newSVpvs_flags("Unknown error\n", + SVs_TEMP))); } if (in_eval & EVAL_KEEPERR) { - Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %s", - SvPV_nolen_const(exceptsv)); + Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %"SVf, + SVfARG(exceptsv)); } else { sv_setsv(ERRSV, exceptsv); @@ -2478,7 +2479,8 @@ PP(pp_return) { /* Unassume the success we assumed earlier. */ (void)hv_delete(GvHVn(PL_incgv), - SvPVX_const(namesv), SvCUR(namesv), + SvPVX_const(namesv), + SvUTF8(namesv) ? -SvCUR(namesv) : SvCUR(namesv), G_DISCARD); DIE(aTHX_ "%"SVf" did not return a true value", SVfARG(namesv)); } @@ -3530,7 +3532,6 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq) PERL_CONTEXT *cx; I32 optype; /* Used by POPEVAL. */ SV *namesv; - const char *msg; cx = NULL; namesv = NULL; @@ -3555,7 +3556,6 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq) if (yystatus != 3) LEAVE_with_name("eval"); /* pp_entereval knows about this LEAVE. */ - msg = SvPVx_nolen_const(ERRSV); if (in_require) { if (!cx) { /* If cx is still NULL, it means that we didn't go in the @@ -3565,21 +3565,26 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq) namesv = cx->blk_eval.old_namesv; } (void)hv_store(GvHVn(PL_incgv), - SvPVX_const(namesv), SvCUR(namesv), + SvPVX_const(namesv), + SvUTF8(namesv) ? -SvCUR(namesv) : SvCUR(namesv), &PL_sv_undef, 0); - Perl_croak(aTHX_ "%sCompilation failed in require", - *msg ? msg : "Unknown error\n"); + Perl_croak(aTHX_ "%"SVf"Compilation failed in require", + SVfARG(ERRSV + ? ERRSV + : newSVpvs_flags("Unknown error\n", SVs_TEMP))); } else if (startop) { if (yystatus != 3) { POPBLOCK(cx,PL_curpm); POPEVAL(cx); } - Perl_croak(aTHX_ "%sCompilation failed in regexp", - (*msg ? msg : "Unknown error\n")); + Perl_croak(aTHX_ "%"SVf"Compilation failed in regexp", + SVfARG(ERRSV + ? ERRSV + : newSVpvs_flags("Unknown error\n", SVs_TEMP))); } else { - if (!*msg) { + if (!*(SvPVx_nolen_const(ERRSV))) { sv_setpvs(ERRSV, "Compilation error"); } } @@ -4270,7 +4275,8 @@ PP(pp_leaveeval) { /* Unassume the success we assumed earlier. */ (void)hv_delete(GvHVn(PL_incgv), - SvPVX_const(namesv), SvCUR(namesv), + SvPVX_const(namesv), + SvUTF8(namesv) ? -SvCUR(namesv) : SvCUR(namesv), G_DISCARD); retop = Perl_die(aTHX_ "%"SVf" did not return a true value", SVfARG(namesv)); |