summaryrefslogtreecommitdiff
path: root/tests/pathhelp.pm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pathhelp.pm')
-rw-r--r--tests/pathhelp.pm28
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;