diff options
author | Steve Peters <steve@fisharerojo.org> | 2006-03-07 04:48:29 +0000 |
---|---|---|
committer | Steve Peters <steve@fisharerojo.org> | 2006-03-07 04:48:29 +0000 |
commit | 23bb49fa8c98c39adab74ba793fe7dad073789c2 (patch) | |
tree | c90fa0db0ebecc88d32a2577eaa0f7cc7437045b | |
parent | 71fbae4b4b3f337a0c2643cc859be9d389fd2e98 (diff) | |
download | perl-23bb49fa8c98c39adab74ba793fe7dad073789c2.tar.gz |
Upgrade to PathTools-3.17
p4raw-id: //depot/perl@27398
-rw-r--r-- | ext/Cwd/Cwd.xs | 2 | ||||
-rw-r--r-- | ext/Cwd/t/cwd.t | 9 | ||||
-rw-r--r-- | lib/Cwd.pm | 11 | ||||
-rw-r--r-- | lib/File/Spec.pm | 12 |
4 files changed, 25 insertions, 9 deletions
diff --git a/ext/Cwd/Cwd.xs b/ext/Cwd/Cwd.xs index 4bcbf6021e..039adb93f6 100644 --- a/ext/Cwd/Cwd.xs +++ b/ext/Cwd/Cwd.xs @@ -409,7 +409,7 @@ PPCODE: } void -getcwd() +getcwd(...) PROTOTYPE: DISABLE PPCODE: { diff --git a/ext/Cwd/t/cwd.t b/ext/Cwd/t/cwd.t index 0b6edcdec6..4ec7b9ab5c 100644 --- a/ext/Cwd/t/cwd.t +++ b/ext/Cwd/t/cwd.t @@ -18,7 +18,7 @@ use lib File::Spec->catdir('t', 'lib'); use Test::More; require VMS::Filespec if $^O eq 'VMS'; -my $tests = 29; +my $tests = 30; # _perl_abs_path() currently only works when the directory separator # is '/', so don't test it when it won't work. my $EXTRA_ABSPATH_TESTS = ($Config{prefix} =~ m/\//) && $^O ne 'cygwin'; @@ -125,6 +125,13 @@ foreach my $func (qw(cwd getcwd fastcwd fastgetcwd)) { dir_ends_with( $result, $Test_Dir, "$func()" ); } +{ + # Some versions of File::Path (e.g. that shipped with perl 5.8.5) + # call getcwd() with an argument (perhaps by calling it as a + # method?), so make sure that doesn't die. + is getcwd(), getcwd('foo'), "Call getcwd() with an argument"; +} + # Cwd::chdir should also update $ENV{PWD} dir_ends_with( $ENV{PWD}, $Test_Dir, 'Cwd::chdir() updates $ENV{PWD}' ); my $updir = File::Spec->updir; diff --git a/lib/Cwd.pm b/lib/Cwd.pm index b6f0a2ad2e..21cc263a5f 100644 --- a/lib/Cwd.pm +++ b/lib/Cwd.pm @@ -171,7 +171,7 @@ use strict; use Exporter; use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); -$VERSION = '3.15'; +$VERSION = '3.17'; @ISA = qw/ Exporter /; @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); @@ -357,6 +357,15 @@ unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { } } +if ($^O eq 'cygwin') { + # We need to make sure cwd() is called with no args, because it's + # got an arg-less prototype and will die if args are present. + local $^W = 0; + my $orig_cwd = \&cwd; + *cwd = sub { &$orig_cwd() } +} + + # set a reasonable (and very safe) default for fastgetcwd, in case it # isn't redefined later (20001212 rspier) *fastgetcwd = \&cwd; diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm index 4554eb1def..9aac374c13 100644 --- a/lib/File/Spec.pm +++ b/lib/File/Spec.pm @@ -3,7 +3,7 @@ package File::Spec; use strict; use vars qw(@ISA $VERSION); -$VERSION = '3.15'; +$VERSION = '3.17'; $VERSION = eval $VERSION; my %module = (MacOS => 'Mac', @@ -230,10 +230,10 @@ from the base path to the destination path: $rel_path = File::Spec->abs2rel( $path ) ; $rel_path = File::Spec->abs2rel( $path, $base ) ; -If C<$base> is not present or '', then L<cwd()|Cwd> is used. If C<$base> is +If C<$base> is not present or '', then L<Cwd::cwd()|Cwd> is used. If C<$base> is relative, then it is converted to absolute form using L</rel2abs()>. This means that it is taken to be relative to -L<cwd()|Cwd>. +L<Cwd::cwd()|Cwd>. On systems with the concept of volume, if C<$path> and C<$base> appear to be on two different volumes, we will not attempt to resolve the two @@ -246,7 +246,7 @@ C<$base> filename as well. Otherwise all path components are assumed to be directories. If C<$path> is relative, it is converted to absolute form using L</rel2abs()>. -This means that it is taken to be relative to L<cwd()|Cwd>. +This means that it is taken to be relative to L<Cwd::cwd()|Cwd>. No checks against the filesystem are made. On VMS, there is interaction with the working environment, as logicals and @@ -261,9 +261,9 @@ Converts a relative path to an absolute path. $abs_path = File::Spec->rel2abs( $path ) ; $abs_path = File::Spec->rel2abs( $path, $base ) ; -If C<$base> is not present or '', then L<cwd()|Cwd> is used. If C<$base> is relative, +If C<$base> is not present or '', then L<Cwd::cwd()|Cwd> is used. If C<$base> is relative, then it is converted to absolute form using L</rel2abs()>. This means that it -is taken to be relative to L<cwd()|Cwd>. +is taken to be relative to L<Cwd::cwd()|Cwd>. On systems with the concept of volume, if C<$path> and C<$base> appear to be on two different volumes, we will not attempt to resolve the two |