diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-12 23:29:57 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-12 23:29:57 +0100 |
commit | 03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c (patch) | |
tree | b134cbc7f0afbf76c54847624310e6a1d2774f83 /shell/math.c | |
parent | 045f4ad92c07434625e168bc8c37aa0e89f6e58e (diff) | |
download | busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.gz busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.bz2 busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.zip |
hush: use ash's read builtin
function old new delta
shell_builtin_read - 1000 +1000
set_local_var_from_halves - 24 +24
setvar2 - 7 +7
...
popstring 140 134 -6
ash_main 1375 1368 -7
setvar 184 174 -10
arith_set_local_var 36 - -36
builtin_read 1096 185 -911
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 5/23 up/down: 1038/-1007) Total: 31 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/math.c')
-rw-r--r-- | shell/math.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/shell/math.c b/shell/math.c index 76159b299..91fb28f05 100644 --- a/shell/math.c +++ b/shell/math.c | |||
@@ -25,14 +25,6 @@ | |||
25 | * | 25 | * |
26 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 26 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
27 | */ | 27 | */ |
28 | #include "libbb.h" | ||
29 | #include "math.h" | ||
30 | |||
31 | #define a_e_h_t arith_eval_hooks_t | ||
32 | #define lookupvar (math_hooks->lookupvar) | ||
33 | #define setvar (math_hooks->setvar) | ||
34 | #define endofname (math_hooks->endofname) | ||
35 | |||
36 | /* Copyright (c) 2001 Aaron Lehmann <aaronl@vitelus.com> | 28 | /* Copyright (c) 2001 Aaron Lehmann <aaronl@vitelus.com> |
37 | 29 | ||
38 | Permission is hereby granted, free of charge, to any person obtaining | 30 | Permission is hereby granted, free of charge, to any person obtaining |
@@ -99,7 +91,6 @@ | |||
99 | * whitespace chars should be considered. Look below the "#include"s for a | 91 | * whitespace chars should be considered. Look below the "#include"s for a |
100 | * precompiler test. | 92 | * precompiler test. |
101 | */ | 93 | */ |
102 | |||
103 | /* | 94 | /* |
104 | * Aug 26, 2001 Manuel Novoa III | 95 | * Aug 26, 2001 Manuel Novoa III |
105 | * | 96 | * |
@@ -109,7 +100,6 @@ | |||
109 | * modified slightly to take account of my changes to the code. | 100 | * modified slightly to take account of my changes to the code. |
110 | * | 101 | * |
111 | */ | 102 | */ |
112 | |||
113 | /* | 103 | /* |
114 | * (C) 2003 Vladimir Oleynik <dzo@simtreas.ru> | 104 | * (C) 2003 Vladimir Oleynik <dzo@simtreas.ru> |
115 | * | 105 | * |
@@ -126,6 +116,13 @@ | |||
126 | * - protect $((num num)) as true zero expr (Manuel`s error) | 116 | * - protect $((num num)) as true zero expr (Manuel`s error) |
127 | * - always use special isspace(), see comment from bash ;-) | 117 | * - always use special isspace(), see comment from bash ;-) |
128 | */ | 118 | */ |
119 | #include "libbb.h" | ||
120 | #include "math.h" | ||
121 | |||
122 | #define a_e_h_t arith_eval_hooks_t | ||
123 | #define lookupvar (math_hooks->lookupvar) | ||
124 | #define setvar (math_hooks->setvar ) | ||
125 | #define endofname (math_hooks->endofname) | ||
129 | 126 | ||
130 | #define arith_isspace(arithval) \ | 127 | #define arith_isspace(arithval) \ |
131 | (arithval == ' ' || arithval == '\n' || arithval == '\t') | 128 | (arithval == ' ' || arithval == '\n' || arithval == '\t') |
@@ -420,7 +417,7 @@ arith_apply(operator op, v_n_t *numstack, v_n_t **numstackptr, a_e_h_t *math_hoo | |||
420 | } | 417 | } |
421 | /* save to shell variable */ | 418 | /* save to shell variable */ |
422 | sprintf(buf, arith_t_fmt, rez); | 419 | sprintf(buf, arith_t_fmt, rez); |
423 | setvar(numptr_m1->var, buf, 0); | 420 | setvar(numptr_m1->var, buf); |
424 | /* after saving, make previous value for v++ or v-- */ | 421 | /* after saving, make previous value for v++ or v-- */ |
425 | if (op == TOK_POST_INC) | 422 | if (op == TOK_POST_INC) |
426 | rez--; | 423 | rez--; |