diff options
Diffstat (limited to 'coreutils/test.c')
-rw-r--r-- | coreutils/test.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/coreutils/test.c b/coreutils/test.c index 8fa6d166f..cec3c471d 100644 --- a/coreutils/test.c +++ b/coreutils/test.c @@ -51,7 +51,7 @@ unary-operator ::= "-r"|"-w"|"-x"|"-f"|"-d"|"-c"|"-b"|"-p"| "-u"|"-g"|"-k"|"-s"|"-t"|"-z"|"-n"|"-o"|"-O"|"-G"|"-L"|"-S"; - binary-operator ::= "="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"| + binary-operator ::= "="|"=="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"| "-nt"|"-ot"|"-ef"; operand ::= <any legal UNIX file name> */ @@ -135,6 +135,7 @@ static const struct t_op { "-L", FILSYM, UNOP}, { "-S", FILSOCK, UNOP}, { "=", STREQ, BINOP}, { + "==", STREQ, BINOP}, { "!=", STRNE, BINOP}, { "<", STRLT, BINOP}, { ">", STRGT, BINOP}, { @@ -191,6 +192,11 @@ extern int test_main(int argc, char **argv) bb_error_msg_and_die("missing ]"); argv[argc] = NULL; } + if (strcmp(bb_applet_name, "[[") == 0) { + if (strcmp(argv[--argc], "]]")) + bb_error_msg_and_die("missing ]]"); + argv[argc] = NULL; + } /* Implement special cases from POSIX.2, section 4.62.4 */ switch (argc) { case 1: |