This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
VMS tweak (suggested by Craig A. Berry <craig.berry@metamor.com>)
[perl5.git] / XSUB.h
diff --git a/XSUB.h b/XSUB.h
index adbbd63..c2e621c 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -1,3 +1,6 @@
+#ifndef _INC_PERL_XSUB_H
+#define _INC_PERL_XSUB_H 1
+
 #define ST(off) PL_stack_base[ax + (off)]
 
 #if defined(CYGWIN) && defined(USE_DYNAMIC_LOADING)
@@ -11,6 +14,9 @@
        I32 ax = mark - PL_stack_base + 1;      \
        I32 items = sp - mark
 
+#define dXSTARG SV * targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
+                            ? PAD_SV(PL_op->op_targ) : sv_newmortal())
+
 #define XSANY CvXSUBANY(cv)
 
 #define dXSI32 I32 ix = XSANY.any_i32
 #  include "objXSUB.h"
 #endif /* PERL_OBJECT || PERL_CAPI */
 
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT)
+#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
 #  undef aTHX
 #  undef aTHX_
-#  undef _aTHX
 #  define aTHX         PERL_GET_THX
 #  define aTHX_                aTHX,
-#  define _aTHX                ,aTHX
 #endif
 
-#if defined(PERL_CAPI)
+#if (defined(PERL_CAPI) || defined(PERL_IMPLICIT_SYS)) && !defined(PERL_CORE)
 #  ifndef NO_XSLOCKS
 #    undef closedir
 #    undef opendir
 #    define read               PerlLIO_read
 #    define rename             PerlLIO_rename
 #    define setmode            PerlLIO_setmode
-#    define stat               PerlLIO_stat
+#    define stat(buf,sb)       PerlLIO_stat(buf,sb)
 #    define tmpnam             PerlLIO_tmpnam
 #    define umask              PerlLIO_umask
 #    define unlink             PerlLIO_unlink
 #    define socketpair         PerlSock_socketpair
 #  endif  /* NO_XSLOCKS */
 #endif  /* PERL_CAPI */
+
+#endif /* _INC_PERL_XSUB_H */          /* include guard */