http://bugs.winehq.org/show_bug.cgi?id=27741
Jason Edmeades us@edmeades.me.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |us@edmeades.me.uk
--- Comment #5 from Jason Edmeades us@edmeades.me.uk 2012-11-04 18:23:31 CST --- 99% of this will be fixed when I get my fix for 21047 in (all todos were I think)
The problem is I have one case I cannot see how to resolve at present, and its an extreme corner case which I think is best left waiting for a real life usecase (other than a todo in tests) is for %a in.... for %a in .... When reading the 2nd line, wine finds the %a and helpfully expands it, meaning the for loop logic doesnt find a variable anymore. No idea how windows does this, other than not expanding anything after a 'for'...
It does expand the rest on the line, e.g. the %%a in the brackets is correctly expanded: for %%a in ("foobar") do ( echo %%a for %%a in (%%a) do ( echo %%a ) )
Something like the following (yes, I am warped at times) doesnt work in windows: for /f "delims=:" %%a in ("in (jason) do echo %%b") do ( echo %%a for %%b %%a )
So I think windows see's a line starting with for, and does special processing / no expanding until it gets beyond the first '('. More testing/experimenting, but wanted to document findings so far.
I have very strong suspicions that for (at least, possibly 'if' too) has special, individual parsing which might explain why this happens - for example you cannot 'call' a for loop, and whilst the following works for echo, it doesnt work for a 'for' loop... "for %a in (echo.hello) do %a"