
Hi Timo,
On Mon, Apr 23, 2012 at 9:57 PM, Timo Ketola timo@exertus.fi wrote:
If one command fails, 'run' command should terminate and not execute any remaining variables.
Signed-off-by: Timo Ketola timo@exertus.fi
Tested on sandbox after a bit of investigation.
Tested-by: Simon Glass sjg@chromium.org Acked-by: Simon Glass sjg@chromium.org
This is a clear bug, since cmd_process() returns 1 on failure, but we need builtin_run_command() to return -1. I suspect this might be the problem that Wolfgang found some months ago, although perhaps in a more subtle form.
We really need some tests for this sort of thing - I did create a few for the new run_command_list(), but will make time to add some tests for standard run_command() also.
Thanks for finding and fixing this.
Regards, Simon
This is based on u-boot-imx.git next. I hope that doesn't cause too much trouble.
common/main.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/common/main.c b/common/main.c index db181d3..3b9e39a 100644 --- a/common/main.c +++ b/common/main.c @@ -1338,7 +1338,8 @@ static int builtin_run_command(const char *cmd, int flag) continue; }
- rc = cmd_process(flag, argc, argv, &repeatable);
- if (cmd_process(flag, argc, argv, &repeatable))
- rc = -1;
/* Did the user stop this? */ if (had_ctrlc ()) -- 1.7.5.4