Denys Vlasenko
19a74a54de
shell/math: change ?: nesting code to not have 63 level nesting limitation
...
function old new delta
evaluate_string 1406 1432 +26
arith 36 29 -7
arith_apply 998 990 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 26/-15) Total: 11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2023-06-17 11:03:02 +02:00
Denys Vlasenko
6221832bc1
shell/math.h: update comments, rearrange struct members for smaller code
...
function old new delta
arith_apply 1000 998 -2
evaluate_string 1414 1406 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-10) Total: -10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2023-06-17 10:40:29 +02:00
Denys Vlasenko
e127985839
shell/math: fix ?: to not evaluate not-taken branches
...
This fixes ash-arith-arith-ternary1/2.tests
function old new delta
evaluate_string 1271 1432 +161
arith_apply 968 1000 +32
arith 22 36 +14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 207/0) Total: 207 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2023-06-16 19:51:01 +02:00
Denys Vlasenko
8b35f207bb
shell: move all definitions of strto_arith_t() together
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-26 14:02:10 +02:00
Denys Vlasenko
9edd268bad
shell: implement optional "BASE#nnnn" numeric literals
...
function old new delta
evaluate_string 729 851 +122
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-19 17:23:31 +02:00
Denys Vlasenko
9bf6780c28
shell: add TODO comment about BASE#nnn literals
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-16 09:56:45 +02:00
Denys Vlasenko
0b8835861b
Make it possible to select "sh" and "bash" aliases without selecting ash or hush
...
The same can be done for msh, but we are probably better off just deleting it
in a next versio or two.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2016-12-23 16:56:43 +01:00
Denys Vlasenko
1961aea305
move endofname() to libbb
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-26 00:36:53 +01:00
Denys Vlasenko
bed7c81ea2
shell/math: deconvolute and explain ?: handling. Give better error message
...
function old new delta
arith_apply 1271 1283 +12
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-09-16 11:50:46 +02:00
Denys Vlasenko
063847d6bd
shell/math: return string error indicator, not integer
...
function old new delta
expand_and_evaluate_arith 87 106 +19
expand_one_var 1563 1570 +7
arith 12 18 +6
evaluate_string 678 680 +2
arith_apply 1269 1271 +2
builtin_umask 133 132 -1
ash_arith 118 75 -43
expand_vars_to_list 1094 1038 -56
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/3 up/down: 36/-100) Total: -64 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-09-15 13:33:02 +02:00
Denys Vlasenko
0eac8ff164
shell/math.c: stop using bss variable
...
function old new delta
evaluate_string - 678 +678
expand_one_var 1543 1563 +20
builtin_type 114 116 +2
expand_and_evaluate_arith 89 87 -2
prev_chk_var_recursive 4 - -4
ash_arith 122 118 -4
arith_lookup_val 142 132 -10
arith 674 12 -662
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 2/4 up/down: 700/-682) Total: 18 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-09-13 12:49:52 +02:00
Denys Vlasenko
06d44d7dfb
shell/math.c: rename arith_eval_hooks to arith_state, put error code into it
...
function old new delta
expand_and_evaluate_arith 79 89 +10
arith 675 674 -1
arith_lookup_val 151 142 -9
ash_arith 135 122 -13
arith_apply 1304 1269 -35
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/4 up/down: 10/-58) Total: -48 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-09-13 12:49:03 +02:00
Denys Vlasenko
8b2f13d84d
shell: unify endofname() in hush and ash
...
function old new delta
builtin_umask 132 133 +1
changepath 195 194 -1
expand_and_evaluate_arith 77 69 -8
ash_arith 143 135 -8
expand_one_var 1551 1515 -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/4 up/down: 1/-53) Total: -52 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-09-07 12:19:33 +02:00
Denys Vlasenko
03dad22f8a
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>
2010-01-12 23:29:57 +01:00
Denys Vlasenko
71016baf55
printf: accept negative numbers for %x; sh: overflowed numbers are 0
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-05 16:24:29 +02:00
Denis Vlasenko
f81e8dbc74
*: make "pragma GCC visibility push(hidden)" less ugly
2009-04-09 12:35:13 +00:00
Denis Vlasenko
cc8289dc04
shell/math: randomconfig fix
2009-04-03 21:13:31 +00:00
Mike Frysinger
98c52645c0
split math code out of ash and into a standalone library so we can use it in any shell (like hush!)
2009-04-02 10:02:37 +00:00