Make vms.c's Perl_flex_fstat preserve errno on success.
authorCraig A. Berry <craigberry@mac.com>
Mon, 25 Mar 2013 01:39:38 +0000 (20:39 -0500)
committerCraig A. Berry <craigberry@mac.com>
Mon, 25 Mar 2013 01:39:38 +0000 (20:39 -0500)
commita1027d22c953600ee4d8f92e053e9f49029ed34f
tree5aa567ad29d5f293ef976ca1ae81e2191878406d
parent49e623dcba6e8f377bd00fd36832fc84b540a538
Make vms.c's Perl_flex_fstat preserve errno on success.

The CRTL's fstat() sets errno to EVMSERR and vaxc$errno to RMS$_IOP
when called on a proccess-permanent file (i.e., stdin, stdout, or
stderr).  That error generally means a rewind operation on a file
that cannot be rewound.  It's odd that fstat is doing such a thing,
but we can at least protect ourselves from the effects of it by
saving errno and restoring it on a successful call.

This cures a couple of test failures and TODOs in t/io/errno.t.
t/io/errno.t
vms/vms.c