(perl #133951) fallback to the built-in getcwd if we can
authorTony Cook <tony@develop-help.com>
Tue, 26 Mar 2019 03:23:53 +0000 (14:23 +1100)
committerTony Cook <tony@develop-help.com>
Sun, 14 Apr 2019 23:26:29 +0000 (09:26 +1000)
12 files changed:
dist/PathTools/Cwd.pm
dist/PathTools/lib/File/Spec.pm
dist/PathTools/lib/File/Spec/AmigaOS.pm
dist/PathTools/lib/File/Spec/Cygwin.pm
dist/PathTools/lib/File/Spec/Epoc.pm
dist/PathTools/lib/File/Spec/Functions.pm
dist/PathTools/lib/File/Spec/Mac.pm
dist/PathTools/lib/File/Spec/OS2.pm
dist/PathTools/lib/File/Spec/Unix.pm
dist/PathTools/lib/File/Spec/VMS.pm
dist/PathTools/lib/File/Spec/Win32.pm
dist/PathTools/t/cwd.t

index ff0d01d..ec3ad5a 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use Exporter;
 
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//d;
 
@@ -659,6 +659,10 @@ if (exists $METHOD_MAP{$^O}) {
   }
 }
 
+# built-in from 5.30
+*getcwd = \&Internals::getcwd
+  if !defined &getcwd && defined &Internals::getcwd;
+
 # In case the XS version doesn't load.
 *abs_path = \&_perl_abs_path unless defined &abs_path;
 *getcwd = \&_perl_getcwd unless defined &getcwd;
index 3e20317..7fe3272 100644 (file)
@@ -2,7 +2,7 @@ package File::Spec;
 
 use strict;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 my %module = (
index 51210e6..2b7d18a 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::AmigaOS;
 use strict;
 require File::Spec::Unix;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
index de401b6..d44ced3 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Cygwin;
 use strict;
 require File::Spec::Unix;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
index 264bbc8..b611cd9 100644 (file)
@@ -2,7 +2,7 @@ package File::Spec::Epoc;
 
 use strict;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 require File::Spec::Unix;
index 0816bb0..3f617bd 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Functions;
 use File::Spec;
 use strict;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 require Exporter;
index 42406aa..d920d2f 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
index f91ec60..603781a 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
index 591846b..6749e60 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Unix;
 use strict;
 use Cwd ();
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 =head1 NAME
index 1e13ac6..6c20fb1 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
index a4ddca8..5934010 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.77';
+our $VERSION = '3.78';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
index 483b437..c056938 100644 (file)
@@ -10,6 +10,7 @@ chdir 't';
 use Config;
 use File::Spec;
 use File::Path;
+use Errno qw(EACCES);
 
 use lib File::Spec->catdir('t', 'lib');
 use Test::More;
@@ -208,7 +209,15 @@ SKIP: {
 
     like($abs_path,      qr|$want$|i, "Cwd::abs_path produced $abs_path");
     like($fast_abs_path, qr|$want$|i, "Cwd::fast_abs_path produced $fast_abs_path");
-    like($pas,           qr|$want$|i, "Cwd::_perl_abs_path produced $pas") if $EXTRA_ABSPATH_TESTS;
+    if ($EXTRA_ABSPATH_TESTS) {
+        # _perl_abs_path() can fail if some ancestor directory isn't readable
+        if (defined $pas) {
+            like($pas,           qr|$want$|i, "Cwd::_perl_abs_path produced $pas");
+        }
+        else {
+            is($!+0, EACCES, "check we got the expected error on failure");
+        }
+    }
 
     rmtree($test_dirs[0], 0, 0);
     1 while unlink $file;