Dan Kegel : cmd: Fix 'else', with tests.

Alexandre Julliard julliard at winehq.org
Thu Feb 18 12:49:23 CST 2010


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

Author: Dan Kegel <dank at kegel.com>
Date:   Wed Feb 17 23:11:04 2010 -0800

cmd: Fix 'else', with tests.

---

 programs/cmd/builtins.c                  |    2 +-
 programs/cmd/tests/test_builtins.cmd     |   13 +++++++++++++
 programs/cmd/tests/test_builtins.cmd.exp |    4 ++++
 3 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index d1019cc..fdb4404 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1072,7 +1072,7 @@ void WCMD_part_execute(CMD_LIST **cmdList, WCHAR *firstcmd, WCHAR *variable,
       /* Execute any statements appended to the line */
       /* FIXME: Only if previous call worked for && or failed for || */
       if ((*cmdList)->prevDelim == CMD_ONFAILURE ||
-          (*cmdList)->prevDelim != CMD_ONSUCCESS) {
+          (*cmdList)->prevDelim == CMD_ONSUCCESS) {
         if (processThese && (*cmdList)->command) {
           WCMD_execute ((*cmdList)->command, (*cmdList)->redirects, variable,
                         value, cmdList);
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 2c30f6c..317fbdd 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -23,3 +23,16 @@ cd dummydir
 echo %~dp0
 cd ..
 rmdir dummydir
+
+echo ------------ Testing if/else --------------
+echo if/else should work with blocks
+if 0 == 0 (
+  echo if seems to work
+) else (
+  echo if seems to be broken
+)
+if 1 == 0 (
+  echo else seems to be broken
+) else (
+  echo else seems to work
+)
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index a72e35d..c53aa1f 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -16,3 +16,7 @@ bar
 ~dp0 should be directory containing batch file
 @pwd@\
 @pwd@\
+------------ Testing if/else --------------
+if/else should work with blocks
+if seems to work
+else seems to work




More information about the wine-cvs mailing list