Module: wine Branch: master Commit: 8110dde8ae405081459b62ae2dbf0710c8332b6b URL: http://source.winehq.org/git/wine.git/?a=commit;h=8110dde8ae405081459b62ae2d...
Author: Dan Kegel dank@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