fix diagnostics to report "our" vs "my" correctly
[p5sagit/p5-mst-13.2.git] / lib / Cwd.pm
index 64798da..ee1bc28 100644 (file)
@@ -32,7 +32,7 @@ The getcwd() function re-implements the getcwd(3) (or getwd(3)) functions
 in Perl.
 
 The abs_path() function takes a single argument and returns the
-absolute pathname for that argument. It uses the same algoritm as
+absolute pathname for that argument. It uses the same algorithm as
 getcwd(). (actually getcwd() is abs_path("."))
 
 The fastcwd() function looks the same as getcwd(), but runs faster.
@@ -118,7 +118,7 @@ sub fastcwd {
     for (;;) {
        my $direntry;
        ($odev, $oino) = ($cdev, $cino);
-       chdir('..') || return undef;
+       CORE::chdir('..') || return undef;
        ($cdev, $cino) = stat('.');
        last if $odev == $cdev && $oino == $cino;
        opendir(DIR, '.') || return undef;
@@ -136,10 +136,11 @@ sub fastcwd {
        unshift(@path, $direntry);
     }
     $path = '/' . join('/', @path);
+    if ($^O eq 'apollo') { $path = "/".$path; }
     # At this point $path may be tainted (if tainting) and chdir would fail.
     # To be more useful we untaint it then check that we landed where we started.
     $path = $1 if $path =~ /^(.*)$/;   # untaint
-    chdir($path) || return undef;
+    CORE::chdir($path) || return undef;
     ($cdev, $cino) = stat('.');
     die "Unstable directory path, current directory changed unexpectedly"
        if $cdev != $orig_cdev || $cino != $orig_cino;
@@ -259,9 +260,9 @@ sub abs_path
 sub fast_abs_path {
     my $cwd = getcwd();
     my $path = shift || '.';
-    chdir($path) || croak "Cannot chdir to $path:$!";
+    CORE::chdir($path) || croak "Cannot chdir to $path:$!";
     my $realpath = getcwd();
-    chdir($cwd)  || croak "Cannot chdir back to $cwd:$!";
+    CORE::chdir($cwd)  || croak "Cannot chdir back to $cwd:$!";
     $realpath;
 }
 
@@ -269,7 +270,7 @@ sub fast_abs_path {
 # --- PORTING SECTION ---
 
 # VMS: $ENV{'DEFAULT'} points to default directory at all times
-# 06-Mar-1996  Charles Bailey  bailey@genetics.upenn.edu
+# 06-Mar-1996  Charles Bailey  bailey@newman.upenn.edu
 # Note: Use of Cwd::chdir() causes the logical name PWD to be defined
 #   in the process logical name table as the default device and directory
 #   seen by Perl. This may not be the same as the default device
@@ -371,6 +372,12 @@ sub _qnx_abs_path {
         *abs_path      = \&_qnx_abs_path;
         *fast_abs_path = \&_qnx_abs_path;
     }
+    elsif ($^O eq 'cygwin') {
+        *getcwd        = \&cwd;
+        *fastgetcwd    = \&cwd;
+        *fastcwd       = \&cwd;
+        *abs_path      = \&fast_abs_path;
+    }
 }
 
 # package main; eval join('',<DATA>) || die $@;        # quick test