Consistent unixy path handling in File::Find::_find_opt.
authorCraig A. Berry <craigberry@mac.com>
Tue, 21 Aug 2012 00:15:23 +0000 (19:15 -0500)
committerCraig A. Berry <craigberry@mac.com>
Tue, 21 Aug 2012 02:17:10 +0000 (21:17 -0500)
Back in a1ccf0c4149b we converted the current working directory to
Unix format on VMS, but neglected to change what later gets pasted
onto it with a hard-coded slash delimiter.  The resulting mongrel
filespec was invalid and of course would not appear to exist even
if the file did exist under a properly assembled name.

So this commit makes the use of Unix-style paths on VMS within
_find_opt consistent.

The bug was tickled by a recent change to Module::Pluggable, whose
tests and the tests of other modules that depend on it started
failing en masse.

lib/File/Find.pm

index ba71ab4..1ebc98f 100644 (file)
@@ -3,7 +3,7 @@ use 5.006;
 use strict;
 use warnings;
 use warnings::register;
-our $VERSION = '1.21';
+our $VERSION = '1.22';
 require Exporter;
 require Cwd;
 
@@ -523,6 +523,7 @@ sub _find_opt {
     Proc_Top_Item:
     foreach my $TOP (@_) {
        my $top_item = $TOP;
+       $top_item = VMS::Filespec::unixify($top_item) if $Is_VMS;
 
        ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;