hush: improve ${var#...}, ${var:+...} and ${var/.../...} - handle quoting

dollar_altvalue1 test partially fails: word splitting of unquoted ${var:+...}
is not correct

function                                             old     new   delta
encode_then_expand_vararg                              -     443    +443
expand_one_var                                      1599    1610     +11
parse_stream                                        2756    2753      -3
encode_string                                        250     242      -8
setup_heredoc                                        308     298     -10
expand_and_evaluate_arith                            106      96     -10
encode_then_expand_string                            142     126     -16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/5 up/down: 454/-47)           Total: 407 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2018-07-17 14:21:38 +02:00
parent 1fbb73fc4c
commit b762c784ca
19 changed files with 291 additions and 57 deletions

View File

@@ -0,0 +1,12 @@
f() { for i; do echo "|$i|"; done; }
v=xx
f ${v/'x'/"y z"}
f ${v/"x"/'y z'}
f "${v/'x'/"y z"}"
f "${v/"x"/'y z'}"
f ${v//'x'/"y z"}
f ${v//"x"/'y z'}
f "${v//'x'/"y z"}"
f "${v//"x"/'y z'}"