From 666d8aa22e6926f5d5320cb2c48d6641485e576e Mon Sep 17 00:00:00 2001 From: "Craig A. Berry" Date: Sat, 16 Jan 2010 16:31:01 -0600 Subject: [PATCH] Correct VMS-specific handling of $! in Perl_magic_get. 0097b436152452e403cc71b4f1a1cfd30ec0ba1a had introduced a test failure on VMS because it only set the POK flag in the non-VMS code path, which was an easy mistake to make because accumulated patches had over time made the #ifdef jungle way more tangled than it needed to be. There is really only one line that needs to be VMS-specific. --- mg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mg.c b/mg.c index ddfc2ff..1728752 100644 --- a/mg.c +++ b/mg.c @@ -1035,13 +1035,13 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg) sv_copypv(sv, PL_ors_sv); break; case '!': + { + dSAVE_ERRNO; #ifdef VMS sv_setnv(sv, (NV)((errno == EVMSERR) ? vaxc$errno : errno)); - sv_setpv(sv, errno ? Strerror(errno) : ""); #else - { - dSAVE_ERRNO; sv_setnv(sv, (NV)errno); +#endif #ifdef OS2 if (errno == errno_isOS2 || errno == errno_isOS2_set) sv_setpv(sv, os2error(Perl_rc)); @@ -1051,7 +1051,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg) SvPOK_on(sv); /* may have got removed during taint processing */ RESTORE_ERRNO; } -#endif + SvRTRIM(sv); SvNOK_on(sv); /* what a wonderful hack! */ break; -- 1.8.3.1