AV* comppadlist;
I32 i;
- PL_in_eval = EVAL_INEVAL;
+ PL_in_eval = ((saveop && saveop->op_type == OP_REQUIRE)
+ ? (EVAL_INREQUIRE | (PL_in_eval & EVAL_INEVAL))
+ : EVAL_INEVAL);
PUSHMARK(SP);
CvDEPTH(PL_compcv) = 1;
SP = PL_stack_base + POPMARK; /* pop original mark */
PL_op = saveop; /* The caller may need it. */
+ PL_lex_state = LEX_NOTPARSING; /* $^S needs this. */
#ifdef USE_THREADS
MUTEX_LOCK(&PL_eval_mutex);
PL_eval_owner = 0;
U8 *s = (U8*)SvPVX(sv);
U8 *end = (U8*)SvPVX(sv) + SvCUR(sv);
if (s < end) {
- rev = utf8_to_uv(s, &len, 0);
+ rev = utf8_to_uv_chk(s, &len, 0);
s += len;
if (s < end) {
- ver = utf8_to_uv(s, &len, 0);
+ ver = utf8_to_uv_chk(s, &len, 0);
s += len;
if (s < end)
- sver = utf8_to_uv(s, &len, 0);
+ sver = utf8_to_uv_chk(s, &len, 0);
}
}
if (PERL_REVISION < rev