From: Marc Hoersken Date: Wed, 11 Nov 2020 20:20:20 +0000 (+0100) Subject: pathhelp.pm: fix use of pwd -L in Msys environment X-Git-Tag: curl-7_76_0~105 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b2b3c91ed7fb44e6c6bc2f6984615b1635a5db03;p=thirdparty%2Fcurl.git pathhelp.pm: fix use of pwd -L in Msys environment While Msys2 has a pwd binary which supports -L, Msys1 only has a shell built-in with that feature. Reviewed-by: Jay Satiro Part of #6179 --- diff --git a/tests/pathhelp.pm b/tests/pathhelp.pm index f3bdc5bdf9..0603d509dd 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;