summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2013-11-02 17:28:48 -0700
committerFather Chrysostomos <sprout@cpan.org>2013-11-08 17:55:52 -0800
commit5450b4d821fab857cc229e3d2904470db00469c2 (patch)
tree235703f349ebf3424ca928a46e4cc8418f54e0be /pp_ctl.c
parent716c4914fdaea8c408dec12ceccabd6040eb1262 (diff)
downloadperl-5450b4d821fab857cc229e3d2904470db00469c2.tar.gz
Make &CORE::exit respect vmsish exit hint
by removing the hint from the exit op itself and just having pp_exit look in the cop hint hash, where it is already stored (as a result of having been in %^H at compile time). &CORE:: subs intentionally lack a nextstate op (cop) so they can see the hints in the caller’s nextstate op.
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 1ef091d35b..f039e345a1 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3173,7 +3173,8 @@ PP(pp_exit)
else {
anum = SvIVx(POPs);
#ifdef VMS
- if (anum == 1 && (PL_op->op_private & OPpEXIT_VMSISH))
+ if (anum == 1
+ && SvTRUE(cop_hints_fetch_pvs(PL_curcop, "vmsish_exit", 0)))
anum = 0;
VMSISH_HUSHED =
VMSISH_HUSHED || (PL_curcop->op_private & OPpHUSH_VMSISH);