fix broken abs2rel() (from François Allard <franka@host.ott.igs.net>)
Gurusamy Sarathy [Wed, 2 Feb 2000 06:41:17 +0000 (06:41 +0000)]
p4raw-id: //depot/perl@4949

lib/File/Spec/Win32.pm

index 0ea4970..48ad847 100644 (file)
@@ -309,14 +309,18 @@ sub abs2rel {
     $path_directories = CORE::join( '\\', @pathchunks );
     $base_directories = CORE::join( '\\', @basechunks );
 
-    # $base now contains the directories the resulting relative path 
-    # must ascend out of before it can descend to $path_directory.  So, 
+    # $base_directories now contains the directories the resulting relative
+    # path must ascend out of before it can descend to $path_directory.  So, 
     # replace all names with $parentDir
-    $base_directories =~ s|[^/]+|..|g ;
+
+    #FA Need to replace between backslashes...
+    $base_directories =~ s|[^\\]+|..|g ;
 
     # Glue the two together, using a separator if necessary, and preventing an
     # empty result.
-    if ( $path ne '' && $base ne '' ) {
+
+    #FA Must check that new directories are not empty.
+    if ( $path_directories ne '' && $base_directories ne '' ) {
         $path_directories = "$base_directories\\$path_directories" ;
     } else {
         $path_directories = "$base_directories$path_directories" ;