Craig A. Berry [Sat, 16 Jan 2010 22:31:01 +0000 (16:31 -0600)]
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.
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));
SvPOK_on(sv); /* may have got removed during taint processing */
RESTORE_ERRNO;
}
-#endif
+
SvRTRIM(sv);
SvNOK_on(sv); /* what a wonderful hack! */
break;