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