summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/File/Spec/VMS.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/VMS.pm17
1 files changed, 9 insertions, 8 deletions
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm b/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
index 254f5248cd8..c0cc1e50434 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
@@ -4,8 +4,8 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.56';
-$VERSION =~ tr/_//;
+$VERSION = '3.63_01';
+$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
@@ -39,7 +39,10 @@ via the C<DECC$FILENAME_UNIX_REPORT> CRTL feature.
my $use_feature;
BEGIN {
- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
+ if (eval { local $SIG{__DIE__};
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
+ require VMS::Feature; }) {
$use_feature = 1;
}
}
@@ -437,15 +440,13 @@ Attempt to convert an absolute file specification to a relative specification.
sub abs2rel {
my $self = shift;
- return vmspath(File::Spec::Unix::abs2rel( $self, @_ ))
- if ((grep m{/}, @_) && !(grep m{(?<!\^)[\[<:]}, @_));
-
my($path,$base) = @_;
+
$base = $self->_cwd() unless defined $base and length $base;
# If there is no device or directory syntax on $base, make sure it
# is treated as a directory.
- $base = VMS::Filespec::vmspath($base) unless $base =~ m{(?<!\^)[\[<:]};
+ $base = vmspath($base) unless $base =~ m{(?<!\^)[\[<:]};
for ($path, $base) { $_ = $self->rel2abs($_) }
@@ -461,7 +462,7 @@ sub abs2rel {
my ($path_volume, $path_directories, $path_file) = $self->splitpath($path);
my ($base_volume, $base_directories, $base_file) = $self->splitpath($base);
- return $path unless lc($path_volume) eq lc($base_volume);
+ return $self->canonpath( $path ) unless lc($path_volume) eq lc($base_volume);
# Now, remove all leading components that are the same
my @pathchunks = $self->splitdir( $path_directories );