summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Fcntl.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Fcntl.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/Fcntl.pm112
1 files changed, 27 insertions, 85 deletions
diff --git a/Master/tlpkg/tlperl/lib/Fcntl.pm b/Master/tlpkg/tlperl/lib/Fcntl.pm
index 83edeb60d85..cc35ff02be8 100644
--- a/Master/tlpkg/tlperl/lib/Fcntl.pm
+++ b/Master/tlpkg/tlperl/lib/Fcntl.pm
@@ -56,14 +56,34 @@ See L<perlfunc/stat> about the S_I* constants.
=cut
use strict;
-our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD);
+our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
require Exporter;
-use XSLoader ();
+require XSLoader;
@ISA = qw(Exporter);
-BEGIN {
- $VERSION = "1.06";
-}
+$VERSION = '1.11';
+
+XSLoader::load();
+
+# Named groups of exports
+%EXPORT_TAGS = (
+ 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
+ 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
+ FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
+ 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)],
+ 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
+ _S_IFMT S_IFREG S_IFDIR S_IFLNK
+ S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
+ S_IRUSR S_IWUSR S_IXUSR S_IRWXU
+ S_IRGRP S_IWGRP S_IXGRP S_IRWXG
+ S_IROTH S_IWOTH S_IXOTH S_IRWXO
+ S_IREAD S_IWRITE S_IEXEC
+ S_ISREG S_ISDIR S_ISLNK S_ISSOCK
+ S_ISBLK S_ISCHR S_ISFIFO
+ S_ISWHT S_ISENFMT
+ S_IFMT S_IMODE
+ )],
+);
# Items to export into callers namespace by default
# (move infrequently used names to @EXPORT_OK below)
@@ -140,7 +160,7 @@ BEGIN {
);
# Other items we are prepared to export if requested
-@EXPORT_OK = qw(
+@EXPORT_OK = (qw(
DN_ACCESS
DN_ATTRIB
DN_CREATE
@@ -148,97 +168,19 @@ BEGIN {
DN_MODIFY
DN_MULTISHOT
DN_RENAME
- FAPPEND
- FASYNC
- FCREAT
- FDEFER
- FDSYNC
- FEXCL
- FLARGEFILE
- FNDELAY
- FNONBLOCK
- FRSYNC
- FSYNC
- FTRUNC
F_GETLEASE
F_GETSIG
F_NOTIFY
F_SETLEASE
F_SETSIG
- LOCK_EX
LOCK_MAND
- LOCK_NB
LOCK_READ
LOCK_RW
- LOCK_SH
- LOCK_UN
LOCK_WRITE
O_IGNORE_CTTY
O_NOATIME
O_NOLINK
O_NOTRANS
- SEEK_CUR
- SEEK_END
- SEEK_SET
- S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
- S_IREAD S_IWRITE S_IEXEC
- S_IRGRP S_IWGRP S_IXGRP S_IRWXG
- S_IROTH S_IWOTH S_IXOTH S_IRWXO
- S_IRUSR S_IWUSR S_IXUSR S_IRWXU
- S_ISUID S_ISGID S_ISVTX S_ISTXT
- _S_IFMT S_IFREG S_IFDIR S_IFLNK
- &S_ISREG &S_ISDIR &S_ISLNK &S_ISSOCK &S_ISBLK &S_ISCHR &S_ISFIFO
- &S_ISWHT &S_ISENFMT &S_IFMT &S_IMODE
-);
-# Named groups of exports
-%EXPORT_TAGS = (
- 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
- 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
- FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
- 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)],
- 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
- _S_IFMT S_IFREG S_IFDIR S_IFLNK
- S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
- S_IRUSR S_IWUSR S_IXUSR S_IRWXU
- S_IRGRP S_IWGRP S_IXGRP S_IRWXG
- S_IROTH S_IWOTH S_IXOTH S_IRWXO
- S_IREAD S_IWRITE S_IEXEC
- S_ISREG S_ISDIR S_ISLNK S_ISSOCK
- S_ISBLK S_ISCHR S_ISFIFO
- S_ISWHT S_ISENFMT
- S_IFMT S_IMODE
- )],
-);
-
-# Force the constants to become inlined
-BEGIN {
- XSLoader::load 'Fcntl', $VERSION;
-}
-
-sub S_IFMT { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT() }
-sub S_IMODE { $_[0] & 07777 }
-
-sub S_ISREG { ( $_[0] & _S_IFMT() ) == S_IFREG() }
-sub S_ISDIR { ( $_[0] & _S_IFMT() ) == S_IFDIR() }
-sub S_ISLNK { ( $_[0] & _S_IFMT() ) == S_IFLNK() }
-sub S_ISSOCK { ( $_[0] & _S_IFMT() ) == S_IFSOCK() }
-sub S_ISBLK { ( $_[0] & _S_IFMT() ) == S_IFBLK() }
-sub S_ISCHR { ( $_[0] & _S_IFMT() ) == S_IFCHR() }
-sub S_ISFIFO { ( $_[0] & _S_IFMT() ) == S_IFIFO() }
-sub S_ISWHT { ( $_[0] & _S_IFMT() ) == S_IFWHT() }
-sub S_ISENFMT { ( $_[0] & _S_IFMT() ) == S_IFENFMT() }
-
-sub AUTOLOAD {
- (my $constname = $AUTOLOAD) =~ s/.*:://;
- die "&Fcntl::constant not defined" if $constname eq 'constant';
- my ($error, $val) = constant($constname);
- if ($error) {
- my (undef,$file,$line) = caller;
- die "$error at $file line $line.\n";
- }
- no strict 'refs';
- *$AUTOLOAD = sub { $val };
- goto &$AUTOLOAD;
-}
+), map {@{$_}} values %EXPORT_TAGS);
1;