From 8110dde8ae405081459b62ae2dbf0710c8332b6b Mon Sep 17 00:00:00 2001 From: Dan Kegel Date: Wed, 17 Feb 2010 23:11:04 -0800 Subject: [PATCH] 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 deletion(-) diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index d1019ccb879..fdb4404e3d1 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 2c30f6c6ff8..317fbdd6bfe 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 a72e35d2339..c53aa1ff7c4 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 -- 2.11.4.GIT