diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2000-10-25 21:27:08 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2000-10-25 21:27:08 +0000 |
commit | 41819ebfef1c41aa7f631e5a0ba2226f47987a77 (patch) | |
tree | 8779688219e986258378806ada1cd97ffcb8634e /lib/File/Path.pm | |
parent | 784707d55e15908335a8276d5ed4548baa321d1f (diff) | |
parent | e3830a4ec012ee625f1b3bc63b5b18c656f377da (diff) | |
download | perl-41819ebfef1c41aa7f631e5a0ba2226f47987a77.tar.gz |
Integrate with vmsperl #7430 by Charles Bailey:
Cleanup from prior patch (Charles Lane?):
- improve handling of MFDs in Basename and Path
- default to no xsubpp line # munging when building debug images
p4raw-id: //depot/perl@7445
Diffstat (limited to 'lib/File/Path.pm')
-rw-r--r-- | lib/File/Path.pm | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/File/Path.pm b/lib/File/Path.pm index daa2eae0fb..8b0772d0e1 100644 --- a/lib/File/Path.pm +++ b/lib/File/Path.pm @@ -119,16 +119,19 @@ sub mkpath { my(@created,$path); foreach $path (@$paths) { $path .= '/' if $^O eq 'os2' and $path =~ /^\w:\z/s; # feature of CRT - next if -d $path; # Logic wants Unix paths, so go with the flow. - $path = VMS::Filespec::unixify($path) if $Is_VMS; - my $parent = File::Basename::dirname($path); - # Allow for creation of new logical filesystems under VMS - if (not $Is_VMS or $parent !~ m:/[^/]+/000000/?:) { - unless (-d $parent or $path eq $parent) { - push(@created,mkpath($parent, $verbose, $mode)); + if ($Is_VMS) { + next if $path eq '/'; + $path = VMS::Filespec::unixify($path); + if ($path =~ m:^(/[^/]+)/?\z:) { + $path = $1.'/000000'; } } + next if -d $path; + my $parent = File::Basename::dirname($path); + unless (-d $parent or $path eq $parent) { + push(@created,mkpath($parent, $verbose, $mode)); + } print "mkdir $path\n" if $verbose; unless (mkdir($path,$mode)) { my $e = $!; |