shell/math: randomconfig fix

This commit is contained in:
Denis Vlasenko 2009-04-03 21:13:31 +00:00
parent 60b392fd5b
commit cc8289dc04
2 changed files with 4 additions and 6 deletions

View File

@ -414,14 +414,14 @@ arith_apply(operator op, v_n_t *numstack, v_n_t **numstackptr, a_e_h_t *math_hoo
rez %= numptr_val; rez %= numptr_val;
} }
if (tok_have_assign(op)) { if (tok_have_assign(op)) {
char buf[sizeof(arith_t_type)*3 + 2]; char buf[sizeof(arith_t)*3 + 2];
if (numptr_m1->var == NULL) { if (numptr_m1->var == NULL) {
/* Hmm, 1=2 ? */ /* Hmm, 1=2 ? */
goto err; goto err;
} }
/* save to shell variable */ /* save to shell variable */
snprintf(buf, sizeof(buf), arith_t_fmt, (arith_t_type) rez); sprintf(buf, arith_t_fmt, rez);
setvar(numptr_m1->var, buf, 0); setvar(numptr_m1->var, buf, 0);
/* after saving, make previous value for v++ or v-- */ /* after saving, make previous value for v++ or v-- */
if (op == TOK_POST_INC) if (op == TOK_POST_INC)
@ -668,7 +668,7 @@ arith(const char *expr, int *perrcode, a_e_h_t *math_hooks)
} /* while */ } /* while */
} }
/*- /*
* Copyright (c) 1989, 1991, 1993, 1994 * Copyright (c) 1989, 1991, 1993, 1994
* The Regents of the University of California. All rights reserved. * The Regents of the University of California. All rights reserved.
* *

View File

@ -76,13 +76,11 @@
#define _SHELL_MATH_ #define _SHELL_MATH_
#if ENABLE_SH_MATH_SUPPORT_64 #if ENABLE_SH_MATH_SUPPORT_64
typedef int64_t arith_t; typedef long long arith_t;
#define arith_t_type long long
#define arith_t_fmt "%lld" #define arith_t_fmt "%lld"
#define strto_arith_t strtoll #define strto_arith_t strtoll
#else #else
typedef long arith_t; typedef long arith_t;
#define arith_t_type long
#define arith_t_fmt "%ld" #define arith_t_fmt "%ld"
#define strto_arith_t strtol #define strto_arith_t strtol
#endif #endif