aboutsummaryrefslogtreecommitdiff
path: root/shell/math.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/math.c')
-rw-r--r--shell/math.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/shell/math.c b/shell/math.c
index c1bf324f8..748c3b3ad 100644
--- a/shell/math.c
+++ b/shell/math.c
@@ -518,7 +518,7 @@ static const char op_tokens[] ALIGN1 = {
518 '(', 0, TOK_LPAREN, 518 '(', 0, TOK_LPAREN,
519 0 519 0
520}; 520};
521#define ptr_to_rparen (&op_tokens[sizeof(op_tokens)-7]) 521#define END_POINTER (&op_tokens[sizeof(op_tokens)-1])
522 522
523#if ENABLE_FEATURE_SH_MATH_BASE 523#if ENABLE_FEATURE_SH_MATH_BASE
524static arith_t strto_arith_t(const char *nptr, char **endptr) 524static arith_t strto_arith_t(const char *nptr, char **endptr)
@@ -653,13 +653,13 @@ evaluate_string(arith_state_t *math_state, const char *expr)
653 * are to be applied in order. At the end, there should be a final 653 * are to be applied in order. At the end, there should be a final
654 * result on the integer stack */ 654 * result on the integer stack */
655 655
656 if (expr != ptr_to_rparen + 1) { 656 if (expr != END_POINTER) {
657 /* If we haven't done so already, 657 /* If we haven't done so already,
658 * append a closing right paren 658 * append a closing right paren
659 * and let the loop process it */ 659 * and let the loop process it */
660 expr = ptr_to_rparen; 660 expr = END_POINTER;
661//bb_error_msg("expr=')'"); 661 op = TOK_RPAREN;
662 goto tok_find; 662 goto tok_found1;
663 } 663 }
664 /* At this point, we're done with the expression */ 664 /* At this point, we're done with the expression */
665 if (numstackptr != numstack + 1) { 665 if (numstackptr != numstack + 1) {
@@ -725,7 +725,7 @@ evaluate_string(arith_state_t *math_state, const char *expr)
725 } 725 }
726 } 726 }
727 } 727 }
728 tok_find: 728
729 p = op_tokens; 729 p = op_tokens;
730 while (1) { 730 while (1) {
731 /* Compare expr to current op_tokens[] element */ 731 /* Compare expr to current op_tokens[] element */
@@ -792,7 +792,6 @@ evaluate_string(arith_state_t *math_state, const char *expr)
792 * "applied" in this way. 792 * "applied" in this way.
793 */ 793 */
794 prec = PREC(op); 794 prec = PREC(op);
795//bb_error_msg("prec:%02x", prec);
796 if ((prec > 0 && prec < UNARYPREC) || prec == SPEC_PREC) { 795 if ((prec > 0 && prec < UNARYPREC) || prec == SPEC_PREC) {
797 /* not left paren or unary */ 796 /* not left paren or unary */
798 if (lasttok != TOK_NUM) { 797 if (lasttok != TOK_NUM) {