* Synced the perlfaq
[p5sagit/p5-mst-13.2.git] / lib / pwd.pl
index 47539aa..1eb1ce7 100644 (file)
@@ -3,12 +3,18 @@
 #
 # This library is no longer being maintained, and is included for backward
 # compatibility with Perl 4 programs which may require it.
+# This legacy library is deprecated and will be removed in a future
+# release of perl.
 #
 # In particular, this should not be used as an example of modern Perl
 # programming techniques.
 #
 # Suggested alternative: Cwd
-#
+
+warn( "The 'pwd.pl' legacy library is deprecated and will be"
+      . " removed in the next major release of perl. Please use the"
+      . " Cwd module instead." );
+
 ;# $RCSfile: pwd.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:24:11 $
 ;#
 ;# $Log:       pwd.pl,v $
@@ -25,7 +31,7 @@ sub main'initpwd {
     if ($ENV{'PWD'}) {
        local($dd,$di) = stat('.');
        local($pd,$pi) = stat($ENV{'PWD'});
-       if ($di != $pi || $dd != $pd) {
+       if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) {
            chop($ENV{'PWD'} = `pwd`);
        }
     }
@@ -35,7 +41,7 @@ sub main'initpwd {
     if ($ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|) {
        local($pd,$pi) = stat($2);
        local($dd,$di) = stat($1);
-       if ($di == $pi && $dd == $pd) {
+       if (defined $pd and defined $dd and $di == $pi and $dd == $pd) {
            $ENV{'PWD'}="$2$3";
        }
     }