yet more cleanups of the PERL_OBJECT, MULTIPLICITY and USE_THREADS
[p5sagit/p5-mst-13.2.git] / ext / Fcntl / Fcntl.xs
index 9034031..bc16cc9 100644 (file)
@@ -1,3 +1,4 @@
+#define PERL_NO_GET_CONTEXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -5,7 +6,13 @@
 #ifdef VMS
 #  include <file.h>
 #else
+#if defined(__GNUC__) && defined(__cplusplus) && defined(WIN32)
+#define _NO_OLDNAMES
+#endif 
 #  include <fcntl.h>
+#if defined(__GNUC__) && defined(__cplusplus) && defined(WIN32)
+#undef _NO_OLDNAMES
+#endif 
 #endif
 
 /* This comment is a kludge to get metaconfig to see the symbols
 */
 
 static int
-not_here(s)
-char *s;
+not_here(char *s)
 {
     croak("%s not implemented on this architecture", s);
     return -1;
 }
 
 static double
-constant(name, arg)
-char *name;
-int arg;
+constant(char *name, int arg)
 {
     errno = 0;
     switch (*name) {
@@ -45,39 +49,57 @@ int arg;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "F_EXLCK"))
+#ifdef F_EXLCK
+               return F_EXLCK;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "F_GETFD"))
 #ifdef F_GETFD
                return F_GETFD;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "F_GETFL"))
+#ifdef F_GETFL
+               return F_GETFL;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "F_GETLK"))
 #ifdef F_GETLK
                return F_GETLK;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "F_GETLK64"))
+#ifdef F_GETLK64
+               return F_GETLK64;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "F_GETOWN"))
 #ifdef F_GETOWN
                return F_GETOWN;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "F_SETFD"))
-#ifdef F_SETFD
-               return F_SETFD;
+           if (strEQ(name, "F_POSIX"))
+#ifdef F_POSIX
+               return F_POSIX;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "F_GETFL"))
-#ifdef F_GETFL
-               return F_GETFL;
+           if (strEQ(name, "F_RDLCK"))
+#ifdef F_RDLCK
+               return F_RDLCK;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "F_POSIX"))
-#ifdef F_POSIX
-               return F_POSIX;
+           if (strEQ(name, "F_SETFD"))
+#ifdef F_SETFD
+               return F_SETFD;
 #else
                goto not_there;
 #endif
@@ -93,21 +115,33 @@ int arg;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "F_SETLK64"))
+#ifdef F_SETLK64
+               return F_SETLK64;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "F_SETLKW"))
 #ifdef F_SETLKW
                return F_SETLKW;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "F_SETLKW64"))
+#ifdef F_SETLKW64
+               return F_SETLKW64;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "F_SETOWN"))
 #ifdef F_SETOWN
                return F_SETOWN;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "F_RDLCK"))
-#ifdef F_RDLCK
-               return F_RDLCK;
+           if (strEQ(name, "F_SHLCK"))
+#ifdef F_SHLCK
+               return F_SHLCK;
 #else
                goto not_there;
 #endif
@@ -150,6 +184,12 @@ int arg;
 #else
            goto not_there;
 #endif
+       if (strEQ(name, "FDEFER"))
+#ifdef FDEFER
+           return FDEFER;
+#else
+           goto not_there;
+#endif
         if (strEQ(name, "FEXCL"))
 #ifdef FEXCL
             return FEXCL;
@@ -214,93 +254,93 @@ int arg;
        break;
     case 'O':
        if (strnEQ(name, "O_", 2)) {
-           if (strEQ(name, "O_CREAT"))
-#ifdef O_CREAT
-               return O_CREAT;
+           if (strEQ(name, "O_ACCMODE"))
+#ifdef O_ACCMODE
+               return O_ACCMODE;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_EXCL"))
-#ifdef O_EXCL
-               return O_EXCL;
+           if (strEQ(name, "O_APPEND"))
+#ifdef O_APPEND
+               return O_APPEND;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_NOCTTY"))
-#ifdef O_NOCTTY
-               return O_NOCTTY;
+           if (strEQ(name, "O_ASYNC"))
+#ifdef O_ASYNC
+               return O_ASYNC;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_TRUNC"))
-#ifdef O_TRUNC
-               return O_TRUNC;
+           if (strEQ(name, "O_BINARY"))
+#ifdef O_BINARY
+               return O_BINARY;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_APPEND"))
-#ifdef O_APPEND
-               return O_APPEND;
+           if (strEQ(name, "O_CREAT"))
+#ifdef O_CREAT
+               return O_CREAT;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_NONBLOCK"))
-#ifdef O_NONBLOCK
-               return O_NONBLOCK;
+           if (strEQ(name, "O_DEFER"))
+#ifdef O_DEFER
+               return O_DEFER;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_NDELAY"))
-#ifdef O_NDELAY
-               return O_NDELAY;
+           if (strEQ(name, "O_DSYNC"))
+#ifdef O_DSYNC
+               return O_DSYNC;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_RDONLY"))
-#ifdef O_RDONLY
-               return O_RDONLY;
+           if (strEQ(name, "O_EXCL"))
+#ifdef O_EXCL
+               return O_EXCL;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_RDWR"))
-#ifdef O_RDWR
-               return O_RDWR;
+           if (strEQ(name, "O_EXLOCK"))
+#ifdef O_EXLOCK
+               return O_EXLOCK;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_WRONLY"))
-#ifdef O_WRONLY
-               return O_WRONLY;
+           if (strEQ(name, "O_LARGEFILE"))
+#ifdef O_LARGEFILE
+               return O_LARGEFILE;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_BINARY"))
-#ifdef O_BINARY
-               return O_BINARY;
+           if (strEQ(name, "O_NDELAY"))
+#ifdef O_NDELAY
+               return O_NDELAY;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_EXLOCK"))
-#ifdef O_EXLOCK
-               return O_EXLOCK;
+           if (strEQ(name, "O_NOCTTY"))
+#ifdef O_NOCTTY
+               return O_NOCTTY;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_SHLOCK"))
-#ifdef O_SHLOCK
-               return O_SHLOCK;
+           if (strEQ(name, "O_NONBLOCK"))
+#ifdef O_NONBLOCK
+               return O_NONBLOCK;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_ASYNC"))
-#ifdef O_ASYNC
-               return O_ASYNC;
+           if (strEQ(name, "O_RDONLY"))
+#ifdef O_RDONLY
+               return O_RDONLY;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_DSYNC"))
-#ifdef O_DSYNC
-               return O_DSYNC;
+           if (strEQ(name, "O_RDWR"))
+#ifdef O_RDWR
+               return O_RDWR;
 #else
                goto not_there;
 #endif
@@ -310,15 +350,33 @@ int arg;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "O_SHLOCK"))
+#ifdef O_SHLOCK
+               return O_SHLOCK;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "O_SYNC"))
 #ifdef O_SYNC
                return O_SYNC;
 #else
                goto not_there;
 #endif
-           if (strEQ(name, "O_DEFER"))
-#ifdef O_DEFER
-               return O_DEFER;
+           if (strEQ(name, "O_TEXT"))
+#ifdef O_TEXT
+               return O_TEXT;
+#else
+               goto not_there;
+#endif
+           if (strEQ(name, "O_TRUNC"))
+#ifdef O_TRUNC
+               return O_TRUNC;
+#else
+               goto not_there;
+#endif
+           if (strEQ(name, "O_WRONLY"))
+#ifdef O_WRONLY
+               return O_WRONLY;
 #else
                goto not_there;
 #endif