On Tue, Apr 06, 2021 at 02:00:24PM +0200, Marek Vasut wrote: > In case exit is called in a script without parameter, the command > returns -2 ; in case exit is called with a numerical parameter, > the command returns -2 and lower. This leads to the following problem: > => setenv foo 'echo bar ; exit 1' ; run foo ; echo $? > bar > 0 > => setenv foo 'echo bar ; exit 0' ; run foo ; echo $? > bar > 0 > => setenv foo 'echo bar ; exit -2' ; run foo ; echo $? > bar > 0 > That is, no matter what the 'exit' command argument is, the return > value is always 0 and so it is not possible to use script return > value in subsequent tests. > > Fix this and simplify the exit command such that if exit is called with > no argument, the command returns 0, just like 'true' in cmd/test.c. In > case the command is called with any argument that is positive integer, > the argument is set as return value. > => setenv foo 'echo bar ; exit 1' ; run foo ; echo $? > bar > 1 > => setenv foo 'echo bar ; exit 0' ; run foo ; echo $? > bar > 0 > => setenv foo 'echo bar ; exit -2' ; run foo ; echo $? > bar > 0 > > Note that this does change ABI established in 2004 , although it is > unclear whether that ABI was originally OK or not. > > Fixes: c26e454dfc6 > Signed-off-by: Marek Vasut <[email protected]> > Cc: Pantelis Antoniou <[email protected]> > Cc: Tom Rini <[email protected]>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: PGP signature

