Change 31431 by [EMAIL PROTECTED] on 2007/06/21 03:15:59

        Make File::Spec::VMS->splitdir stop returning an empty first directory
        when passed a relative path.  Also, don't split on escaped directory 
        delimiters.

Affected files ...

... //depot/perl/lib/File/Spec/VMS.pm#47 edit
... //depot/perl/lib/File/Spec/t/Spec.t#24 edit

Differences ...

==== //depot/perl/lib/File/Spec/VMS.pm#47 (text) ====
Index: perl/lib/File/Spec/VMS.pm
--- perl/lib/File/Spec/VMS.pm#46~28001~ 2006-04-28 06:34:39.000000000 -0700
+++ perl/lib/File/Spec/VMS.pm   2007-06-20 20:15:59.000000000 -0700
@@ -4,7 +4,7 @@
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '1.4';
+$VERSION = '1.4_01';
 
 @ISA = qw(File::Spec::Unix);
 
@@ -274,7 +274,8 @@
                                                # .--]          ==> .-.-]
                                                # [--]          ==> [-.-]
     $dirspec = "[$dirspec]" unless $dirspec =~ /[\[<]/; # make legal
-    my(@dirs) = split('\.', vmspath($dirspec));
+    $dirspec =~ s/^(\[|<)\./$1/;
+    my(@dirs) = split /(?<!\^)\./, vmspath($dirspec);
     $dirs[0] =~ s/^[\[<]//s;  $dirs[-1] =~ s/[\]>]\Z(?!\n)//s;
     @dirs;
 }

==== //depot/perl/lib/File/Spec/t/Spec.t#24 (text) ====
Index: perl/lib/File/Spec/t/Spec.t
--- perl/lib/File/Spec/t/Spec.t#23~29004~       2006-10-12 08:07:17.000000000 
-0700
+++ perl/lib/File/Spec/t/Spec.t 2007-06-20 20:15:59.000000000 -0700
@@ -358,16 +358,17 @@
 [ "VMS->splitdir('[]')",          ''          ],
 [ "VMS->splitdir('d1.d2.d3')",    'd1,d2,d3'  ],
 [ "VMS->splitdir('[d1.d2.d3]')",  'd1,d2,d3'  ],
-[ "VMS->splitdir('.d1.d2.d3')",   ',d1,d2,d3' ],
-[ "VMS->splitdir('[.d1.d2.d3]')", ',d1,d2,d3' ],
-[ "VMS->splitdir('.-.d2.d3')",    ',-,d2,d3'  ],
-[ "VMS->splitdir('[.-.d2.d3]')",  ',-,d2,d3'  ],
+[ "VMS->splitdir('.d1.d2.d3')",   'd1,d2,d3' ],
+[ "VMS->splitdir('[.d1.d2.d3]')", 'd1,d2,d3' ],
+[ "VMS->splitdir('.-.d2.d3')",    '-,d2,d3'  ],
+[ "VMS->splitdir('[.-.d2.d3]')",  '-,d2,d3'  ],
 [ "VMS->splitdir('[d1.d2]')",                  'd1,d2'  ],
 [ "VMS->splitdir('[d1-.--d2]')",       'd1-,--d2'  ],
 [ "VMS->splitdir('[d1---.-.d2]')",     'd1---,-,d2'  ],
 [ "VMS->splitdir('[d1.---.d2]')",      'd1,-,-,-,d2'  ],
 [ "VMS->splitdir('[d1---d2]')",        'd1---d2'  ],
 [ "VMS->splitdir('[d1.][000000.d2]')",  'd1,d2'  ],
+[ "VMS->splitdir('[.d1.d2^.d3]')", 'd1,d2^.d3' ],
 
 [ "VMS->catdir('')",                                                      ''   
              ],
 [ "VMS->catdir('d1','d2','d3')",                                          
'[.d1.d2.d3]'         ],
End of Patch.

Reply via email to