applied suggested patch; removed $VERSION = $VERSION hack
[p5sagit/p5-mst-13.2.git] / ext / Fcntl / Fcntl.pm
index f1edb8e..1eb14e9 100644 (file)
@@ -45,29 +45,49 @@ what constants are implemented in your system.
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $AUTOLOAD);
 
 require Exporter;
-require DynaLoader;
-@ISA = qw(Exporter DynaLoader);
+use XSLoader ();
+@ISA = qw(Exporter);
 $VERSION = "1.03";
 # Items to export into callers namespace by default
 # (move infrequently used names to @EXPORT_OK below)
 @EXPORT =
   qw(
        FD_CLOEXEC
+       F_ALLOCSP
+       F_ALLOCSP64
+       F_COMPAT
+       F_DUP2FD
        F_DUPFD
        F_EXLCK
+       F_FREESP
+       F_FREESP64
+       F_FSYNC
+       F_FSYNC64
        F_GETFD
        F_GETFL
        F_GETLK
+       F_GETLK64
        F_GETOWN
+       F_NODNY
        F_POSIX
+       F_RDACC
+       F_RDDNY
        F_RDLCK
+       F_RWACC
+       F_RWDNY
        F_SETFD
        F_SETFL
        F_SETLK
+       F_SETLK64
        F_SETLKW
+       F_SETLKW64
        F_SETOWN
+       F_SHARE
        F_SHLCK
        F_UNLCK
+       F_UNSHARE
+       F_WRACC
+       F_WRDNY
        F_WRLCK
        O_ACCMODE
        O_APPEND
@@ -78,6 +98,7 @@ $VERSION = "1.03";
        O_DSYNC
        O_EXCL
        O_EXLOCK
+       O_LARGEFILE
        O_NDELAY
        O_NOCTTY
        O_NONBLOCK
@@ -89,6 +110,11 @@ $VERSION = "1.03";
        O_TEXT
        O_TRUNC
        O_WRONLY
+       O_ALIAS
+       O_RSRC
+       SEEK_SET
+       SEEK_CUR
+       SEEK_END
      );
 
 # Other items we are prepared to export if requested
@@ -97,9 +123,12 @@ $VERSION = "1.03";
        FASYNC
        FCREAT
        FDEFER
+       FDSYNC
        FEXCL
+       FLARGEFILE
        FNDELAY
        FNONBLOCK
+       FRSYNC
        FSYNC
        FTRUNC
        LOCK_EX
@@ -110,15 +139,15 @@ $VERSION = "1.03";
 # Named groups of exports
 %EXPORT_TAGS = (
     'flock'   => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
-    'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FEXCL
-                    FNDELAY FNONBLOCK FSYNC FTRUNC)],
+    'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
+                    FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
 );
 
 sub AUTOLOAD {
     (my $constname = $AUTOLOAD) =~ s/.*:://;
     my $val = constant($constname, 0);
     if ($! != 0) {
-       if ($! =~ /Invalid/) {
+       if ($! =~ /Invalid/ || $!{EINVAL}) {
            $AutoLoader::AUTOLOAD = $AUTOLOAD;
            goto &AutoLoader::AUTOLOAD;
        }
@@ -132,6 +161,6 @@ sub AUTOLOAD {
     goto &$AUTOLOAD;
 }
 
-bootstrap Fcntl $VERSION;
+XSLoader::load 'Fcntl', $VERSION;
 
 1;