summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 7416f0e3e2..1f558f7284 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -937,7 +937,7 @@ die(pat, va_alist)
}
restartop = die_where(message);
if ((!restartop && was_in_eval) || oldrunlevel > 1)
- longjmp(top_env, 3);
+ Siglongjmp(top_env, 3);
return restartop;
}
@@ -997,11 +997,10 @@ char *message;
}
}
fputs(message, stderr);
- (void)fflush(stderr);
+ (void)Fflush(stderr);
if (e_fp) {
-#ifdef DOSISH
fclose(e_fp);
-#endif
+ e_fp = Nullfp;
(void)UNLINK(e_tmpname);
}
statusvalue = SHIFTSTATUS(statusvalue);
@@ -1135,7 +1134,7 @@ PP(pp_caller)
GV* tmpgv;
dbargs = GvAV(gv_AVadd(tmpgv = gv_fetchpv("DB::args", TRUE,
SVt_PVAV)));
- SvMULTI_on(tmpgv);
+ GvMULTI_on(tmpgv);
AvREAL_off(dbargs); /* XXX Should be REIFY */
}
@@ -1828,6 +1827,9 @@ PP(pp_goto)
}
if (do_dump) {
+#ifdef VMS
+ if (!retop) retop = main_start;
+#endif
restartop = retop;
do_undump = TRUE;
@@ -1839,7 +1841,7 @@ PP(pp_goto)
if (stack == signalstack) {
restartop = retop;
- longjmp(top_env, 3);
+ Siglongjmp(top_env, 3);
}
RETURNOP(retop);
@@ -2038,9 +2040,9 @@ PP(pp_require)
sv = POPs;
if (SvNIOKp(sv) && !SvPOKp(sv)) {
- if (atof(patchlevel) + 0.000999 < SvNV(sv))
- DIE("Perl %3.3f required--this is only version %s, stopped",
- SvNV(sv),patchlevel);
+ if (atof(patchlevel) + 0.00000999 < SvNV(sv))
+ DIE("Perl %s required--this is only version %s, stopped",
+ SvPV(sv,na),patchlevel);
RETPUSHYES;
}
name = SvPV(sv, na);