hush: fix word splitting in ${v:+ARG} - dollar_altvalue1 test

ash might be a bit buggy, need to investigate dollar_altvalue9 test

function                                             old     new   delta
expand_one_var                                      1639    2236    +597
expand_variables                                     112     128     +16
expand_vars_to_list                                 1117    1097     -20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 613/-20)           Total: 593 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2018-07-20 16:18:59 +02:00
parent 57235beb69
commit 294eb4612c
5 changed files with 284 additions and 61 deletions

View File

@@ -0,0 +1,24 @@
Unquoted 1:
|a|
|x y|
|1|
|2|
|1 2|
|A|
|B|
|C D|
|zb|
Quoted 1:
|a 'x y' 1 2 '' 1 2 A B C D zb|
Unquoted 2:
|ax y|
|1|
|2|
|1 2|
|A|
|B|
|C D|
|z|
|b|
Quoted 2:
|a 'x y' 1 2 '' 1 2 A B C D z b|

View File

@@ -0,0 +1,17 @@
f() { for i; do echo "|$i|"; done; }
echo Unquoted 1:
x='1 2'; f a${x:+ 'x y' $x '' "$x" `echo A B` "`echo C D`" z}b
echo Quoted 1:
x='1 2'; f "a${x:+ 'x y' $x '' "$x" `echo A B` "`echo C D`" z}b"
echo Unquoted 2:
x='1 2'; f a${x:+'x y' $x '' "$x" `echo A B` "`echo C D`" z }b
echo Quoted 2:
x='1 2'; f "a${x:+ 'x y' $x '' "$x" `echo A B` "`echo C D`" z }b"
#echo Unquoted 3:
#e=
#x='1 2'; f a${x:+'x y' $x '' "$x" $e $e "$e" $e `echo A B` "`echo C D`" z }b
#echo Quoted 3:
#x='1 2'; f "a${x:+ 'x y' $x '' "$x" $e $e "$e" $e `echo A B` "`echo C D`" z }b"