Eli Zaretskii wrote:

I revisited the patch posted there to allow -j without sh.exe, and I'm afraid I 
don't understand the patch.

I wrote it quite a while ago... I hope I still remember it right

 It does this:

 . add "^()" to sh_chars_dos[] in job.c
 . use '^' to escape special characters such as \ and " in job.c
 . removes the code fragment in main.c that forces job_slots = 1 if sh.exe is 
not available

Can someone please explain which part(s) of this patch solve(s) the original 
problem?

all of them, with the possible exclusion of the change to sh_chars_dos (IIRC that controls which strings need to be quoted, but I'm not 100% sure. If that's true, the change is correct and needed). Caret-escaping solves the actual problem, it's equivalent to backslash-escaping for sh.exe, and apparently the issue was that the DOS command.com wasn't able of any sort of escaping. The change to main.c enables parallel building with a cmd shell, rather than just with an UNIX shell, since the escaping issue is "solved"

For that matter, what shell features are required to enable -j on Windows, and 
why?
caret-escaping. Why I'm not sure, I just remember -j causes temporary batch files to be generated and run, and to build the command lines in them required escaping


_______________________________________________
Make-w32 mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/make-w32

Reply via email to