X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/9ccb31f93bbfdb2e29acd0451c7419410a8499b8..6c72d195a44add86e50e54c2c80795702dc3fc9f:/perl.c diff --git a/perl.c b/perl.c index fc231b1..14357b7 100644 --- a/perl.c +++ b/perl.c @@ -453,6 +453,7 @@ perl_destruct(register PerlInterpreter *sv_interp) envgv = Nullgv; siggv = Nullgv; incgv = Nullgv; + hintgv = Nullgv; errgv = Nullgv; argvgv = Nullgv; argvoutgv = Nullgv; @@ -1434,11 +1435,17 @@ perl_eval_pv(char *p, I32 croak_on_error) void perl_require_pv(char *pv) { - SV* sv = sv_newmortal(); + SV* sv; + dSP; + PUSHSTACKi(SI_REQUIRE); + PUTBACK; + sv = sv_newmortal(); sv_setpv(sv, "require '"); sv_catpv(sv, pv); sv_catpv(sv, "'"); perl_eval_sv(sv, G_DISCARD); + SPAGAIN; + POPSTACK; } void @@ -1864,10 +1871,12 @@ init_main_stash(void) HvNAME(defstash) = savepv("main"); incgv = gv_HVadd(gv_AVadd(gv_fetchpv("INC",TRUE, SVt_PVAV))); GvMULTI_on(incgv); + hintgv = gv_fetchpv("\010",TRUE, SVt_PV); /* ^H */ + GvMULTI_on(hintgv); defgv = gv_fetchpv("_",TRUE, SVt_PVAV); errgv = gv_HVadd(gv_fetchpv("@", TRUE, SVt_PV)); GvMULTI_on(errgv); - replgv = gv_HVadd(gv_fetchpv("\022", TRUE, SVt_PV)); /* ^R */ + replgv = gv_fetchpv("\022", TRUE, SVt_PV); /* ^R */ GvMULTI_on(replgv); (void)form("%240s",""); /* Preallocate temp - for immediate signals. */ sv_grow(ERRSV, 240); /* Preallocate - for immediate signals. */