From: Earnie B. <ea...@us...> - 2005-07-29 11:10:50
|
On 1:29:54 am 2005-07-29 Mo DeJong <md...@un...> wrote: > Hello > > I am trying to use the MSYS-1.0.10.exe release but it > seems an env variable related path bug has slipped > into the code. The problem is that Win32 paths > like "C:/foo" are getting hosed by the msys path > conversion code for env vars. Here is an example Makefile > that demonstrates the problem. Note that this is execing > a native Win32 program that appears on the PATH. > > $ cat Makefile > DIR_NATIVE_BROKEN=C:/msys_new/msys_mingw7/home/Mo/build/thread > > all: broken > > broken: > TCLLIBPATH="C:/foo $(DIR_NATIVE_BROKEN)" \ > tclsh print.tcl > > $ cat print.tcl > puts "env(TCLLIBPATH) is $env(TCLLIBPATH) > > > $ make > TCLLIBPATH="C:/foo C:/msys_new/msys_mingw7/home/Mo/build/thread" \ > tclsh print.tcl > env(TCLLIBPATH) is C;C:\msys_new\msys_mingw7\foo C;C:\msys_new\msys_mi > ngw7\msys_ > new\msys_mingw7\home\Mo\build\thread > > > Can anyone suggest a workaround? I can't pass Win32 paths with > backslashes to this program. I need for msys to just > leave the path alone if it is a valid Win32 native path like > "C:/foo". I don't want to have to revert back to msys 1.0.8 > (which I know does not contain this bug), but it seems to be > my only choice right now. > I know where the problem is occurring; it is getting confused in the path list logic. I'll have a look at it. Will having the double quotes as part of the value of TCLLIBPATH work for you? $ make TCLLIBPATH='"c:/foo c:/msys_new/msys_mingw7/home/Mo/build/thread"' \ tclsh print.tcl env(TCLLIBPATH) is "c:/foo c:/msys_new/msys_mingw7/home/Mo/build/thread" Earnie |