summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/auto/Storable
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/auto/Storable')
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/BIN_VERSION_NV.al12
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/BIN_WRITE_VERSION_NV.al12
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/CAN_FLOCK.al21
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Storable/Storable.dllbin0 -> 73216 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/_freeze.al23
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/_retrieve.al31
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/_store.al41
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/_store_fd.al27
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/autosplit.ix28
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/fd_retrieve.al25
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/file_magic.al21
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/freeze.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/lock_nstore.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/lock_retrieve.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/lock_store.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/logcarp.al12
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/logcroak.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/nfreeze.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/nstore.al17
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/nstore_fd.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/read_magic.al69
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/retrieve.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/show_file_magic.al30
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/store.al20
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/store_fd.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Storable/thaw.al28
26 files changed, 574 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/BIN_VERSION_NV.al b/Master/tlpkg/tlperl/lib/auto/Storable/BIN_VERSION_NV.al
new file mode 100644
index 00000000000..add6a1d678b
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/BIN_VERSION_NV.al
@@ -0,0 +1,12 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 192 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\BIN_VERSION_NV.al)"
+sub BIN_VERSION_NV {
+ sprintf "%d.%03d", BIN_MAJOR(), BIN_MINOR();
+}
+
+# end of Storable::BIN_VERSION_NV
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/BIN_WRITE_VERSION_NV.al b/Master/tlpkg/tlperl/lib/auto/Storable/BIN_WRITE_VERSION_NV.al
new file mode 100644
index 00000000000..e17ce4d2c3a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/BIN_WRITE_VERSION_NV.al
@@ -0,0 +1,12 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 196 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\BIN_WRITE_VERSION_NV.al)"
+sub BIN_WRITE_VERSION_NV {
+ sprintf "%d.%03d", BIN_MAJOR(), BIN_WRITE_MINOR();
+}
+
+# end of Storable::BIN_WRITE_VERSION_NV
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/CAN_FLOCK.al b/Master/tlpkg/tlperl/lib/auto/Storable/CAN_FLOCK.al
new file mode 100644
index 00000000000..c0df84b654f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/CAN_FLOCK.al
@@ -0,0 +1,21 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 83 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\CAN_FLOCK.al)"
+#
+# Determine whether locking is possible, but only when needed.
+#
+
+sub CAN_FLOCK; my $CAN_FLOCK; sub CAN_FLOCK {
+ return $CAN_FLOCK if defined $CAN_FLOCK;
+ require Config; import Config;
+ return $CAN_FLOCK =
+ $Config{'d_flock'} ||
+ $Config{'d_fcntl_can_lock'} ||
+ $Config{'d_lockf'};
+}
+
+# end of Storable::CAN_FLOCK
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll b/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
new file mode 100755
index 00000000000..419c2877140
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/_freeze.al b/Master/tlpkg/tlperl/lib/auto/Storable/_freeze.al
new file mode 100644
index 00000000000..5e1ea07846a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/_freeze.al
@@ -0,0 +1,23 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 330 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\_freeze.al)"
+# Internal freeze routine
+sub _freeze {
+ my $xsptr = shift;
+ my $self = shift;
+ logcroak "not a reference" unless ref($self);
+ logcroak "too many arguments" unless @_ == 0; # No @foo in arglist
+ my $da = $@; # Don't mess if called from exception handler
+ my $ret;
+ # Call C routine mstore or net_mstore, depending on network order
+ eval { $ret = &$xsptr($self) };
+ logcroak $@ if $@ =~ s/\.?\n$/,/;
+ $@ = $da;
+ return $ret ? $ret : undef;
+}
+
+# end of Storable::_freeze
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/_retrieve.al b/Master/tlpkg/tlperl/lib/auto/Storable/_retrieve.al
new file mode 100644
index 00000000000..f16abc56b2a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/_retrieve.al
@@ -0,0 +1,31 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 364 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\_retrieve.al)"
+# Internal retrieve routine
+sub _retrieve {
+ my ($file, $use_locking) = @_;
+ local *FILE;
+ open(FILE, $file) || logcroak "can't open $file: $!";
+ binmode FILE; # Archaic systems...
+ my $self;
+ my $da = $@; # Could be from exception handler
+ if ($use_locking) {
+ unless (&CAN_FLOCK) {
+ logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O";
+ return undef;
+ }
+ flock(FILE, LOCK_SH) || logcroak "can't get shared lock on $file: $!";
+ # Unlocking will happen when FILE is closed
+ }
+ eval { $self = pretrieve(*FILE) }; # Call C routine
+ close(FILE);
+ logcroak $@ if $@ =~ s/\.?\n$/,/;
+ $@ = $da;
+ return $self;
+}
+
+# end of Storable::_retrieve
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/_store.al b/Master/tlpkg/tlperl/lib/auto/Storable/_store.al
new file mode 100644
index 00000000000..19ed0287800
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/_store.al
@@ -0,0 +1,41 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 239 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\_store.al)"
+# Internal store to file routine
+sub _store {
+ my $xsptr = shift;
+ my $self = shift;
+ my ($file, $use_locking) = @_;
+ logcroak "not a reference" unless ref($self);
+ logcroak "wrong argument number" unless @_ == 2; # No @foo in arglist
+ local *FILE;
+ if ($use_locking) {
+ open(FILE, ">>$file") || logcroak "can't write into $file: $!";
+ unless (&CAN_FLOCK) {
+ logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O";
+ return undef;
+ }
+ flock(FILE, LOCK_EX) ||
+ logcroak "can't get exclusive lock on $file: $!";
+ truncate FILE, 0;
+ # Unlocking will happen when FILE is closed
+ } else {
+ open(FILE, ">$file") || logcroak "can't create $file: $!";
+ }
+ binmode FILE; # Archaic systems...
+ my $da = $@; # Don't mess if called from exception handler
+ my $ret;
+ # Call C routine nstore or pstore, depending on network order
+ eval { $ret = &$xsptr(*FILE, $self) };
+ close(FILE) or $ret = undef;
+ unlink($file) or warn "Can't unlink $file: $!\n" if $@ || !defined $ret;
+ logcroak $@ if $@ =~ s/\.?\n$/,/;
+ $@ = $da;
+ return $ret ? $ret : undef;
+}
+
+# end of Storable::_store
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/_store_fd.al b/Master/tlpkg/tlperl/lib/auto/Storable/_store_fd.al
new file mode 100644
index 00000000000..ad88105864a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/_store_fd.al
@@ -0,0 +1,27 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 292 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\_store_fd.al)"
+# Internal store routine on opened file descriptor
+sub _store_fd {
+ my $xsptr = shift;
+ my $self = shift;
+ my ($file) = @_;
+ logcroak "not a reference" unless ref($self);
+ logcroak "too many arguments" unless @_ == 1; # No @foo in arglist
+ my $fd = fileno($file);
+ logcroak "not a valid file descriptor" unless defined $fd;
+ my $da = $@; # Don't mess if called from exception handler
+ my $ret;
+ # Call C routine nstore or pstore, depending on network order
+ eval { $ret = &$xsptr($file, $self) };
+ logcroak $@ if $@ =~ s/\.?\n$/,/;
+ local $\; print $file ''; # Autoflush the file if wanted
+ $@ = $da;
+ return $ret ? $ret : undef;
+}
+
+# end of Storable::_store_fd
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Storable/autosplit.ix
new file mode 100644
index 00000000000..f68bf3f340d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/autosplit.ix
@@ -0,0 +1,28 @@
+# Index created by AutoSplit for ..\..\lib\Storable.pm
+# (file acts as timestamp)
+package Storable;
+sub logcroak ;
+sub logcarp ;
+sub CAN_FLOCK ;
+sub show_file_magic ;
+sub file_magic ;
+sub read_magic ;
+sub BIN_VERSION_NV ;
+sub BIN_WRITE_VERSION_NV ;
+sub store ;
+sub nstore ;
+sub lock_store ;
+sub lock_nstore ;
+sub _store ;
+sub store_fd ;
+sub nstore_fd ;
+sub _store_fd ;
+sub freeze ;
+sub nfreeze ;
+sub _freeze ;
+sub retrieve ;
+sub lock_retrieve ;
+sub _retrieve ;
+sub fd_retrieve ;
+sub thaw ;
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/fd_retrieve.al b/Master/tlpkg/tlperl/lib/auto/Storable/fd_retrieve.al
new file mode 100644
index 00000000000..b25d7b009c3
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/fd_retrieve.al
@@ -0,0 +1,25 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 387 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\fd_retrieve.al)"
+#
+# fd_retrieve
+#
+# Same as retrieve, but perform from an already opened file descriptor instead.
+#
+sub fd_retrieve {
+ my ($file) = @_;
+ my $fd = fileno($file);
+ logcroak "not a valid file descriptor" unless defined $fd;
+ my $self;
+ my $da = $@; # Could be from exception handler
+ eval { $self = pretrieve($file) }; # Call C routine
+ logcroak $@ if $@ =~ s/\.?\n$/,/;
+ $@ = $da;
+ return $self;
+}
+
+# end of Storable::fd_retrieve
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/file_magic.al b/Master/tlpkg/tlperl/lib/auto/Storable/file_magic.al
new file mode 100644
index 00000000000..1bce16c051c
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/file_magic.al
@@ -0,0 +1,21 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 118 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\file_magic.al)"
+sub file_magic {
+ my $file = shift;
+ my $fh = new FileHandle;
+ open($fh, "<". $file) || die "Can't open '$file': $!";
+ binmode($fh);
+ defined(sysread($fh, my $buf, 32)) || die "Can't read from '$file': $!";
+ close($fh);
+
+ $file = "./$file" unless $file; # ensure TRUE value
+
+ return read_magic($buf, $file);
+}
+
+# end of Storable::file_magic
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/freeze.al b/Master/tlpkg/tlperl/lib/auto/Storable/freeze.al
new file mode 100644
index 00000000000..7e1a45687b2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/freeze.al
@@ -0,0 +1,18 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 311 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\freeze.al)"
+#
+# freeze
+#
+# Store oject and its hierarchy in memory and return a scalar
+# containing the result.
+#
+sub freeze {
+ _freeze(\&mstore, @_);
+}
+
+# end of Storable::freeze
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/lock_nstore.al b/Master/tlpkg/tlperl/lib/auto/Storable/lock_nstore.al
new file mode 100644
index 00000000000..2c5d9950595
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/lock_nstore.al
@@ -0,0 +1,17 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 230 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\lock_nstore.al)"
+#
+# lock_nstore
+#
+# Same as nstore, but flock the file first (advisory locking).
+#
+sub lock_nstore {
+ return _store(\&net_pstore, @_, 1);
+}
+
+# end of Storable::lock_nstore
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/lock_retrieve.al b/Master/tlpkg/tlperl/lib/auto/Storable/lock_retrieve.al
new file mode 100644
index 00000000000..1e2879fc48a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/lock_retrieve.al
@@ -0,0 +1,17 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 355 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\lock_retrieve.al)"
+#
+# lock_retrieve
+#
+# Same as retrieve, but with advisory locking.
+#
+sub lock_retrieve {
+ _retrieve($_[0], 1);
+}
+
+# end of Storable::lock_retrieve
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/lock_store.al b/Master/tlpkg/tlperl/lib/auto/Storable/lock_store.al
new file mode 100644
index 00000000000..4a863b15a97
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/lock_store.al
@@ -0,0 +1,17 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 221 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\lock_store.al)"
+#
+# lock_store
+#
+# Same as store, but flock the file first (advisory locking).
+#
+sub lock_store {
+ return _store(\&pstore, @_, 1);
+}
+
+# end of Storable::lock_store
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/logcarp.al b/Master/tlpkg/tlperl/lib/auto/Storable/logcarp.al
new file mode 100644
index 00000000000..bbdd382ff31
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/logcarp.al
@@ -0,0 +1,12 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 79 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\logcarp.al)"
+sub logcarp {
+ Carp::carp(@_);
+}
+
+# end of Storable::logcarp
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/logcroak.al b/Master/tlpkg/tlperl/lib/auto/Storable/logcroak.al
new file mode 100644
index 00000000000..9c8daff7dae
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/logcroak.al
@@ -0,0 +1,17 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 70 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\logcroak.al)"
+#
+# Use of Log::Agent is optional. If it hasn't imported these subs then
+# Autoloader will kindly supply our fallback implementation.
+#
+
+sub logcroak {
+ Carp::croak(@_);
+}
+
+# end of Storable::logcroak
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/nfreeze.al b/Master/tlpkg/tlperl/lib/auto/Storable/nfreeze.al
new file mode 100644
index 00000000000..92f4641d461
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/nfreeze.al
@@ -0,0 +1,17 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 321 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\nfreeze.al)"
+#
+# nfreeze
+#
+# Same as freeze but in network order.
+#
+sub nfreeze {
+ _freeze(\&net_mstore, @_);
+}
+
+# end of Storable::nfreeze
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/nstore.al b/Master/tlpkg/tlperl/lib/auto/Storable/nstore.al
new file mode 100644
index 00000000000..d865716dd5c
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/nstore.al
@@ -0,0 +1,17 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 212 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\nstore.al)"
+#
+# nstore
+#
+# Same as store, but in network order.
+#
+sub nstore {
+ return _store(\&net_pstore, @_, 0);
+}
+
+# end of Storable::nstore
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/nstore_fd.al b/Master/tlpkg/tlperl/lib/auto/Storable/nstore_fd.al
new file mode 100644
index 00000000000..5979b873150
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/nstore_fd.al
@@ -0,0 +1,18 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 282 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\nstore_fd.al)"
+#
+# nstore_fd
+#
+# Same as store_fd, but in network order.
+#
+sub nstore_fd {
+ my ($self, $file) = @_;
+ return _store_fd(\&net_pstore, @_);
+}
+
+# end of Storable::nstore_fd
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/read_magic.al b/Master/tlpkg/tlperl/lib/auto/Storable/read_magic.al
new file mode 100644
index 00000000000..40b54af7556
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/read_magic.al
@@ -0,0 +1,69 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 131 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\read_magic.al)"
+sub read_magic {
+ my($buf, $file) = @_;
+ my %info;
+
+ my $buflen = length($buf);
+ my $magic;
+ if ($buf =~ s/^(pst0|perl-store)//) {
+ $magic = $1;
+ $info{file} = $file || 1;
+ }
+ else {
+ return undef if $file;
+ $magic = "";
+ }
+
+ return undef unless length($buf);
+
+ my $net_order;
+ if ($magic eq "perl-store" && ord(substr($buf, 0, 1)) > 1) {
+ $info{version} = -1;
+ $net_order = 0;
+ }
+ else {
+ $net_order = ord(substr($buf, 0, 1, ""));
+ my $major = $net_order >> 1;
+ return undef if $major > 4; # sanity (assuming we never go that high)
+ $info{major} = $major;
+ $net_order &= 0x01;
+ if ($major > 1) {
+ return undef unless length($buf);
+ my $minor = ord(substr($buf, 0, 1, ""));
+ $info{minor} = $minor;
+ $info{version} = "$major.$minor";
+ $info{version_nv} = sprintf "%d.%03d", $major, $minor;
+ }
+ else {
+ $info{version} = $major;
+ }
+ }
+ $info{version_nv} ||= $info{version};
+ $info{netorder} = $net_order;
+
+ unless ($net_order) {
+ return undef unless length($buf);
+ my $len = ord(substr($buf, 0, 1, ""));
+ return undef unless length($buf) >= $len;
+ return undef unless $len == 4 || $len == 8; # sanity
+ $info{byteorder} = substr($buf, 0, $len, "");
+ $info{intsize} = ord(substr($buf, 0, 1, ""));
+ $info{longsize} = ord(substr($buf, 0, 1, ""));
+ $info{ptrsize} = ord(substr($buf, 0, 1, ""));
+ if ($info{version_nv} >= 2.002) {
+ return undef unless length($buf);
+ $info{nvsize} = ord(substr($buf, 0, 1, ""));
+ }
+ }
+ $info{hdrsize} = $buflen - length($buf);
+
+ return \%info;
+}
+
+# end of Storable::read_magic
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/retrieve.al b/Master/tlpkg/tlperl/lib/auto/Storable/retrieve.al
new file mode 100644
index 00000000000..b996685671a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/retrieve.al
@@ -0,0 +1,18 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 345 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\retrieve.al)"
+#
+# retrieve
+#
+# Retrieve object hierarchy from disk, returning a reference to the root
+# object of that tree.
+#
+sub retrieve {
+ _retrieve($_[0], 0);
+}
+
+# end of Storable::retrieve
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/show_file_magic.al b/Master/tlpkg/tlperl/lib/auto/Storable/show_file_magic.al
new file mode 100644
index 00000000000..c7422c6648a
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/show_file_magic.al
@@ -0,0 +1,30 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 96 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\show_file_magic.al)"
+sub show_file_magic {
+ print <<EOM;
+#
+# To recognize the data files of the Perl module Storable,
+# the following lines need to be added to the local magic(5) file,
+# usually either /usr/share/misc/magic or /etc/magic.
+#
+0 string perl-store perl Storable(v0.6) data
+>4 byte >0 (net-order %d)
+>>4 byte &01 (network-ordered)
+>>4 byte =3 (major 1)
+>>4 byte =2 (major 1)
+
+0 string pst0 perl Storable(v0.7) data
+>4 byte >0
+>>4 byte &01 (network-ordered)
+>>4 byte =5 (major 2)
+>>4 byte =4 (major 2)
+>>5 byte >0 (minor %d)
+EOM
+}
+
+# end of Storable::show_file_magic
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/store.al b/Master/tlpkg/tlperl/lib/auto/Storable/store.al
new file mode 100644
index 00000000000..c9cee55076e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/store.al
@@ -0,0 +1,20 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 200 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\store.al)"
+#
+# store
+#
+# Store target object hierarchy, identified by a reference to its root.
+# The stored object tree may later be retrieved to memory via retrieve.
+# Returns undef if an I/O error occurred, in which case the file is
+# removed.
+#
+sub store {
+ return _store(\&pstore, @_, 0);
+}
+
+# end of Storable::store
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/store_fd.al b/Master/tlpkg/tlperl/lib/auto/Storable/store_fd.al
new file mode 100644
index 00000000000..8e3b72c1199
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/store_fd.al
@@ -0,0 +1,18 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 272 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\store_fd.al)"
+#
+# store_fd
+#
+# Same as store, but perform on an already opened file descriptor instead.
+# Returns undef if an I/O error occurred.
+#
+sub store_fd {
+ return _store_fd(\&pstore, @_);
+}
+
+# end of Storable::store_fd
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/thaw.al b/Master/tlpkg/tlperl/lib/auto/Storable/thaw.al
new file mode 100644
index 00000000000..495a71769eb
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/thaw.al
@@ -0,0 +1,28 @@
+# NOTE: Derived from ..\..\lib\Storable.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Storable;
+
+#line 404 "..\..\lib\Storable.pm (autosplit into ..\..\lib\auto\Storable\thaw.al)"
+#
+# thaw
+#
+# Recreate objects in memory from an existing frozen image created
+# by freeze. If the frozen image passed is undef, return undef.
+#
+sub thaw {
+ my ($frozen) = @_;
+ return undef unless defined $frozen;
+ my $self;
+ my $da = $@; # Could be from exception handler
+ eval { $self = mretrieve($frozen) }; # Call C routine
+ logcroak $@ if $@ =~ s/\.?\n$/,/;
+ $@ = $da;
+ return $self;
+}
+
+1;
+__END__
+
+1;
+# end of Storable::thaw