mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-20 22:21:41 +00:00
cmd_test: check for binary operators before unary
This better mirrors the behaviour of bash, for example: $ if test -z = -z; then echo yes; else echo no; fi yes This is parsed as a string comparison of "-z" and "-z", since the check for the binary "=" operator occurs first. Without this change, the command would be parsed as a -z test of "-", followed by a syntax error; a trailing -z without and operand. This is a behavioural change, but I believe any commands affected were previously invalid or bizarely formed. Signed-off-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
parent
490ba833d5
commit
4c80f29edd
1 changed files with 4 additions and 4 deletions
|
@ -39,10 +39,6 @@ const struct {
|
|||
int op;
|
||||
int adv;
|
||||
} op_adv[] = {
|
||||
{0, "-o", OP_OR, 1},
|
||||
{0, "-a", OP_AND, 1},
|
||||
{0, "-z", OP_STR_EMPTY, 2},
|
||||
{0, "-n", OP_STR_NEMPTY, 2},
|
||||
{1, "=", OP_STR_EQ, 3},
|
||||
{1, "!=", OP_STR_NEQ, 3},
|
||||
{1, "<", OP_STR_LT, 3},
|
||||
|
@ -53,6 +49,10 @@ const struct {
|
|||
{1, "-le", OP_INT_LE, 3},
|
||||
{1, "-gt", OP_INT_GT, 3},
|
||||
{1, "-ge", OP_INT_GE, 3},
|
||||
{0, "-o", OP_OR, 1},
|
||||
{0, "-a", OP_AND, 1},
|
||||
{0, "-z", OP_STR_EMPTY, 2},
|
||||
{0, "-n", OP_STR_NEMPTY, 2},
|
||||
};
|
||||
|
||||
static int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
|
|
Loading…
Add table
Reference in a new issue