(retracted by #12485)
Jarkko Hietaniemi [Wed, 17 Oct 2001 19:57:34 +0000 (19:57 +0000)]
Thou shalt not #ifdef inside macro invocations,
noticed by Rafael Garcia-Suarez.

p4raw-id: //depot/perl@12479

mg.c

diff --git a/mg.c b/mg.c
index 28acb57..99bee0a 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -1964,13 +1964,13 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            STATUS_POSIX_SET(SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv));
        break;
     case '!':
-       SETERRNO(SvIOK(sv) ? SvIVX(sv) : SvOK(sv) ? sv_2iv(sv) : 0,
+#define GETERRNO(sv) (SvIOK(sv) ? SvIVX(sv) : SvOK(sv) ? sv_2iv(sv) : 0)
 #ifdef VMS
-                (SvIV(sv) == EVMSERR) ? 4 : vaxc$errno
+       SETERRNO(GETERRNO(sv),
+                (SvIV(sv) == EVMSERR) ? 4 : vaxc$errno);
 #else
-                0
+       SETERRNO(GETERRNO(sv), 0);
 #endif
-                );
        break;
     case '<':
        PL_uid = SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv);