make-w32
[Top][All Lists]

## Re: Fix for HAVE_DOS_PATHS build on cygwin

 From: William A. Hoffman Subject: Re: Fix for HAVE_DOS_PATHS build on cygwin Date: Mon, 21 Aug 2006 10:21:05 -0400

At 10:05 AM 8/21/2006, Eli Zaretskii wrote:
>> Date: Mon, 21 Aug 2006 09:08:16 -0400
>> From: "William A. Hoffman" <address@hidden>
>>
>> The only thing sh_chars_dos seems to add is * and %.   If you have a
>> \* or \%  So the question is what should happen with :
>>
>> \foo\*
>> and
>> \foo\%
>>
>> Should they be \foo* and \foo%  (I think that is what would happen now.)
>>
>> Or should they be \foo\* and \foo\% which is what would happen if dos chars
>> were included with sh chars in the code.
>>
>> It seems valid to have a directory name % on dos, but not *
>>
>> C:\Hoffman\My Builds\CMakeDev\Tests\COnly\b>dir ..\b\%
>>  Volume in drive C has no label.
>>  Volume Serial Number is 78BB-7820
>>
>>  Directory of C:\Hoffman\My Builds\CMakeDev\Tests\COnly\b\%
>>
>> The * can not be a directory name so it should not be included.
>
>The only reasonable way to test this is by crafting several
>_practical_ examples of using these characters in commands, and then
>testing these commands with and without the HAVE_DOS_PATHS patch.
>Believe me, Make's code in job.c is so complicated (and on top of that
>recursively invokes itself) that I don't even dare reasoning about its
>intricacies without stepping with a debugger through the code while
>Make handles a specific command whose semantics is well understood.
>
>So please, if you can afford that, try to throw together a few
>real-life examples, and run them.  And then let's talk about the
>results, if you see something unexpected.

Ok, so, the this works:

foo.exe: c:\hoffman\foo\bar\%sillydir\foo.c
cl c:\hoffman\foo\bar\%sillydir\foo.c

I can not think of a different example.  So, it sounds like we are ready
to go.

-Bill