Greetings,
Enclosed please find a patch to the File::Spec implementation
that shipped with the [EMAIL PROTECTED] pre-5.8.1 release kit.
For me I can now run the test:
perl lib/File/Spec/t/rel2abs2rel.t
after either having issued:
set default DKA200:[USERS.PERL]
Or making use of the USERS rooted logical DKA200:[USERS.]
after having issued:
set default USERS:[PERL]
and test # 4 now passes in the latter case with this
modification to VMS.pm. I have not yet had a chance
to test any further ramifications of this patch. I have not
had a chance to run "mmk test". I do not yet know if it
will have any effect good or bad on MakeMaker with
a usevmsdebug build. Nonetheless I'd like to get this out
to the vmsperl list for widespread testing so that I can better
assess how quickly it should be submitted to the pumpking.
Reports are welcome. Thanks.
diff -ru perl_20898/lib/File/Spec/VMS.pm perl/lib/File/Spec/VMS.pm
--- perl_20898/lib/File/Spec/VMS.pm 2003-08-21 11:48:45.000000000 -0400
+++ perl/lib/File/Spec/VMS.pm 2003-08-29 15:59:16.000000000 -0400
@@ -412,6 +412,18 @@
$base = $self->canonpath( $base ) ;
}
+ # Are we even starting $path on the same device as _cwd? Note that rooted
+ # logical paths or cwds may be on the same device but the comparison
+ # that ignores device differences is not even a good idea there.
+ # Hence we fall back to returning the absolute $path spec
+ # if there is a case blind device difference of any sort
+ # and we do not even try to call sys$parse().
+ my $path_device = ($self->splitpath( $path, 1 ))[0];
+ my $base_device = ($self->splitpath( $base, 1 ))[0];
+ if ( lc( $path_device ) ne lc( $base_device ) ) {
+ return ( $path ) ;
+ }
+
# Split up paths
my ( $path_directories, $path_file ) =
($self->splitpath( $path, 1 ))[1,2] ;
End of patch.
Also as an enclosure to avert
Notes derived wrappering trouble:
(See attached file: file_spec_20898.patch)
Peter Prymmer
file_spec_20898.patch
Description: Binary data
