summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Cwd.pm12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Cwd.pm b/lib/Cwd.pm
index e4e94b3064..83b472cf6a 100644
--- a/lib/Cwd.pm
+++ b/lib/Cwd.pm
@@ -254,12 +254,12 @@ elsif ($^O eq 'NT' or $^O eq 'MSWin32') {
*fastgetcwd = \&_NT_cwd;
}
elsif ($^O eq 'os2') {
-
- *cwd = \&_os2_cwd;
- *getcwd = \&_os2_cwd;
- *fastgetcwd = \&_os2_cwd;
- *fastcwd = \&_os2_cwd;
-}
+ # sys_cwd may keep the builtin command
+ *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd;
+ *getcwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd;
+ *fastgetcwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd;
+ *fastcwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd;
+ }
$^W = $oldw;
# package main; eval join('',<DATA>) || die $@; # quick test