expr: on error, exit with exitcode 2

expr_main                                            101     110      +9
This commit is contained in:
Denis Vlasenko 2008-11-11 22:36:58 +00:00
parent 98f5cdfca7
commit 272710fe93

View File

@ -481,24 +481,21 @@ static VALUE *eval(void)
} }
int expr_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int expr_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int expr_main(int argc, char **argv) int expr_main(int argc UNUSED_PARAM, char **argv)
{ {
VALUE *v; VALUE *v;
if (argc == 1) { xfunc_error_retval = 2; /* coreutils compat */
G.args = argv + 1;
if (*G.args == NULL) {
bb_error_msg_and_die("too few arguments"); bb_error_msg_and_die("too few arguments");
} }
G.args = argv + 1;
v = eval(); v = eval();
if (*G.args) if (*G.args)
bb_error_msg_and_die("syntax error"); bb_error_msg_and_die("syntax error");
if (v->type == INTEGER) if (v->type == INTEGER)
printf("%" PF_REZ "d\n", PF_REZ_TYPE v->u.i); printf("%" PF_REZ "d\n", PF_REZ_TYPE v->u.i);
else else
puts(v->u.s); puts(v->u.s);
fflush_stdout_and_exit(null(v)); fflush_stdout_and_exit(null(v));
} }