diff options
author | Denys Vlasenko | 2018-12-11 19:42:05 +0100 |
---|---|---|
committer | Denys Vlasenko | 2018-12-11 19:44:14 +0100 |
commit | 259137d0f0600150cd783c796e4011164c44a7f0 (patch) | |
tree | 47708eb1e809eb17c1f2928656f6c6b2f0f548f7 | |
parent | 728e7c9ecb1b64473412fe45caf1623e22a9204b (diff) | |
download | busybox-259137d0f0600150cd783c796e4011164c44a7f0.zip busybox-259137d0f0600150cd783c796e4011164c44a7f0.tar.gz |
bc: convert zbc_program_op to "z" function, fix a thinko in prev commits
function old new delta
zbc_program_assign 448 447 -1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | miscutils/bc.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c index acc0b60..be118d8 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -5472,14 +5472,14 @@ static void bc_program_retire(BcResult *r, BcResultType t) bc_vec_push(&G.prog.results, r); } -static BcStatus bc_program_op(char inst) +static BC_STATUS zbc_program_op(char inst) { BcStatus s; BcResult *opd1, *opd2, res; BcNum *n1, *n2 = NULL; s = zbc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false); - if (s) return s; + if (s) RETURN_STATUS(s); bc_num_init_DEF_SIZE(&res.d.n); s = BC_STATUS_SUCCESS; @@ -5490,12 +5490,15 @@ static BcStatus bc_program_op(char inst) if (s) goto err; bc_program_binOpRetire(&res); - return s; + RETURN_STATUS(s); err: bc_num_free(&res.d.n); - return s; + RETURN_STATUS(s); } +#if ERRORS_ARE_FATAL +# define zbc_program_op(...) (zbc_program_op(__VA_ARGS__), BC_STATUS_SUCCESS) +#endif static BcStatus bc_program_read(void) { @@ -6089,7 +6092,7 @@ static BC_STATUS zbc_program_assign(char inst) #endif if (left->t == BC_RESULT_CONSTANT || left->t == BC_RESULT_TEMP) - RETURN_STATUS(("bad assignment:" + RETURN_STATUS(bc_error("bad assignment:" " left side must be scale," " ibase, obase, last, var," " or array element" @@ -6943,7 +6946,7 @@ static BcStatus bc_program_exec(void) case BC_INST_MODULUS: case BC_INST_PLUS: case BC_INST_MINUS: - s = bc_program_op(inst); + s = zbc_program_op(inst); break; case BC_INST_BOOL_NOT: s = zbc_program_prep(&ptr, &num); |