diff options
Diffstat (limited to 'tests/pathhelp.pm')
-rw-r--r-- | tests/pathhelp.pm | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/tests/pathhelp.pm b/tests/pathhelp.pm index f3bdc5bdf..0603d509d 100644 --- a/tests/pathhelp.pm +++ b/tests/pathhelp.pm @@ -372,7 +372,15 @@ sub sys_native_abs_path { # Path is in relative form. Resolve relative directories in Unix form # *BEFORE* converting to Win32 form otherwise paths like # '../../../cygdrive/c/windows' will not be resolved. - my $cur_dir = `pwd -L`; + + my $cur_dir; + # MSys shell has built-in command. + if($^O eq 'msys') { + $cur_dir = `bash -c 'pwd -L'`; + } + else { + $cur_dir = `pwd -L`; + } if($? != 0) { warn "Can't determine current working directory.\n"; return undef; @@ -440,7 +448,13 @@ sub build_sys_abs_path { # Path is empty string. Return current directory. # Empty string processed correctly by 'cygpath'. - chomp($path = `pwd -L`); + # MSys shell has built-in command. + if($^O eq 'msys') { + chomp($path = `bash -c 'pwd -L'`); + } + else { + chomp($path = `pwd -L`); + } if($? != 0) { warn "Can't determine Unix-style current working directory.\n"; return undef; @@ -510,7 +524,15 @@ sub build_sys_abs_path { # Path in relative form. Resolve relative directories in Unix form # *BEFORE* converting to Win32 form otherwise paths like # '../../../cygdrive/c/windows' will not be resolved. - my $cur_dir = `pwd -L`; + + my $cur_dir; + # MSys shell has built-in command. + if($^O eq 'msys') { + $cur_dir = `bash -c 'pwd -L'`; + } + else { + $cur_dir = `pwd -L`; + } if($? != 0) { warn "Can't determine current working directory.\n"; return undef; |