Module: wine Branch: master Commit: 303af43ff5ded3c148c7e10ab7d9b0cd18de4bdf URL: http://source.winehq.org/git/wine.git/?a=commit;h=303af43ff5ded3c148c7e10ab7...
Author: Frédéric Delanoy frederic.delanoy@gmail.com Date: Sat Aug 20 01:58:57 2011 +0200
cmd: Fix a FOR parsing bug when multiple spaces follow an IN.
---
programs/cmd/builtins.c | 4 +++- programs/cmd/tests/test_builtins.cmd | 1 + programs/cmd/tests/test_builtins.cmd.exp | 1 + 3 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 8bb84f6..e738626 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -976,7 +976,9 @@ void WCMD_for (WCHAR *p, CMD_LIST **cmdList) { while (*curPos && *curPos==' ') curPos++;
/* Ensure line continues with IN */ - if (!*curPos || lstrcmpiW (curPos, inW)) { + if (!*curPos + || CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT, + curPos, 3, inW, -1) != CSTR_EQUAL) { WCMD_output (WCMD_LoadMessage(WCMD_SYNTAXERR)); return; } diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index a83e568..ffbc814 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -318,6 +318,7 @@ for %%i in (A B C) do echo %%j for %%i in (A B C) do call :forTestFun1 %%i for %%i in (1,4,1) do echo %%i for %%i in (A, B,C) do echo %%i +for %%i in (X) do echo %%i goto :endForTestFun1 :forTestFun1 echo %1 diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 7ebe57a..2954e16 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -223,6 +223,7 @@ C A B C +X ...imbricated FORs @todo_wine@X Y @todo_wine@X Y