diff options
author | Denys Vlasenko | 2023-06-15 13:56:12 +0200 |
---|---|---|
committer | Denys Vlasenko | 2023-06-15 13:56:12 +0200 |
commit | ea6dcbe2839fb21049baadd0d5da903ae11661ec (patch) | |
tree | 66408551d3fdb6957e1ced4951c23b5f24226965 /shell/hush_test | |
parent | 22cb0d573a5cabd24fa648f1a13c22acf661a4a3 (diff) | |
download | busybox-ea6dcbe2839fb21049baadd0d5da903ae11661ec.zip busybox-ea6dcbe2839fb21049baadd0d5da903ae11661ec.tar.gz |
shell/math: fix order of expansion of variables to numbers
This fixes arith-assign-in-varexp1.tests
function old new delta
evaluate_string 1132 1258 +126
arith_lookup_val 143 - -143
arith_apply 1132 977 -155
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 126/-298) Total: -172 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test')
-rw-r--r-- | shell/hush_test/hush-arith/arith-assign-in-varexp1.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-arith/arith-assign-in-varexp1.tests | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/shell/hush_test/hush-arith/arith-assign-in-varexp1.right b/shell/hush_test/hush-arith/arith-assign-in-varexp1.right new file mode 100644 index 0000000..1feb307 --- /dev/null +++ b/shell/hush_test/hush-arith/arith-assign-in-varexp1.right @@ -0,0 +1,2 @@ +7:7 +x=3 diff --git a/shell/hush_test/hush-arith/arith-assign-in-varexp1.tests b/shell/hush_test/hush-arith/arith-assign-in-varexp1.tests new file mode 100755 index 0000000..fc8ac9d --- /dev/null +++ b/shell/hush_test/hush-arith/arith-assign-in-varexp1.tests @@ -0,0 +1,9 @@ +exec 2>&1 +a='x=1' +b='x=2' +c='x=3' +# The variables should evaluate immediately when they encountered, +# not when they go into an operation. Here, order of evaluation +# of names to numbers should be a,b,c - not b,c,a: +echo 7:$((a+b*c)) +echo "x=$x" |