diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/File/Spec/VMS.pm')
-rw-r--r-- | Master/tlpkg/tlperl/lib/File/Spec/VMS.pm | 17 |
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 ); |