From: Denys Vlasenko Date: Mon, 10 Dec 2018 11:33:40 +0000 (+0100) Subject: bc: simplify bc_program_print() X-Git-Tag: 1_30_0~236 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=44d79d866dc4c9bb0c3bba47612feae78365a046;p=oweals%2Fbusybox.git bc: simplify bc_program_print() function old new delta bc_program_print 730 713 -17 Signed-off-by: Denys Vlasenko --- diff --git a/miscutils/bc.c b/miscutils/bc.c index 33abe9366..1879581e3 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -5737,15 +5737,14 @@ static BcStatus bc_program_print(char inst, size_t idx) { BcStatus s = BC_STATUS_SUCCESS; BcResult *r; - size_t len, i; - char *str; - BcNum *num = NULL; + BcNum *num; bool pop = inst != BC_INST_PRINT; if (!BC_PROG_STACK(&G.prog.results, idx + 1)) return bc_error_stack_has_too_few_elements(); r = bc_vec_item_rev(&G.prog.results, idx); + num = NULL; // is this NULL necessary? s = bc_program_num(r, &num, false); if (s) return s; @@ -5754,16 +5753,18 @@ static BcStatus bc_program_print(char inst, size_t idx) if (!s) bc_num_copy(&G.prog.last, num); } else { + char *str; idx = (r->t == BC_RESULT_STR) ? r->d.id.idx : num->rdx; str = *bc_program_str(idx); if (inst == BC_INST_PRINT_STR) { - for (i = 0, len = strlen(str); i < len; ++i) { - char c = str[i]; + for (;;) { + char c = *str++; + if (c == '\0') break; bb_putchar(c); - if (c == '\n') G.prog.nchars = SIZE_MAX; ++G.prog.nchars; + if (c == '\n') G.prog.nchars = 0; } } else {