cmd_test: evaluate to false without any arguments
authorStephen Warren <swarren@nvidia.com>
Mon, 3 Feb 2014 20:21:05 +0000 (13:21 -0700)
committerTom Rini <trini@ti.com>
Wed, 19 Feb 2014 14:47:33 +0000 (09:47 -0500)
This emulates bash:
$ if test; then echo yes; else echo no; fi
no

Currently, the code sets expr = -1 in this case, which gets mapped to
0 (true) at the end of do_test() by the logical -> shell exit code
conversion.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
common/cmd_test.c

index b927d09eb3e01204b928a4900219e45b63dca24e..4c2f967c6dc060c710afe644be519a83e18caf69 100644 (file)
@@ -77,7 +77,7 @@ static int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        left = argc - 1;
        ap = argv + 1;
-       expr = -1;
+       expr = 0;
        last_unop = OP_INVALID;
        last_binop = OP_INVALID;
        last_expr = -1;