summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Peters <steve@fisharerojo.org>2006-03-07 04:48:29 +0000
committerSteve Peters <steve@fisharerojo.org>2006-03-07 04:48:29 +0000
commit23bb49fa8c98c39adab74ba793fe7dad073789c2 (patch)
treec90fa0db0ebecc88d32a2577eaa0f7cc7437045b
parent71fbae4b4b3f337a0c2643cc859be9d389fd2e98 (diff)
downloadperl-23bb49fa8c98c39adab74ba793fe7dad073789c2.tar.gz
Upgrade to PathTools-3.17
p4raw-id: //depot/perl@27398
-rw-r--r--ext/Cwd/Cwd.xs2
-rw-r--r--ext/Cwd/t/cwd.t9
-rw-r--r--lib/Cwd.pm11
-rw-r--r--lib/File/Spec.pm12
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