Frédéric Delanoy : cmd: Fix a FOR parsing bug when multiple spaces follow an IN.

Alexandre Julliard julliard at winehq.org
Tue Aug 23 12:44:57 CDT 2011


Module: wine
Branch: master
Commit: 303af43ff5ded3c148c7e10ab7d9b0cd18de4bdf
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=303af43ff5ded3c148c7e10ab7d9b0cd18de4bdf

Author: Frédéric Delanoy <frederic.delanoy at 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 at X Y
 @todo_wine at X Y




More information about the wine-cvs mailing list