busybox/shell/ash_test/ash-quoting
Denys Vlasenko f50e14632f ash: parser: Fix parameter expansion inside inner double quotes
Upstream email:

    parser: Fix parameter expansion inside inner double quotes

    The parsing of parameter expansion inside inner double quotes
    breaks because we never look for ENDVAR while innerdq is true.

            echo "${x#"${x+''}"''}

    This patch fixes it by pushing the syntax stack if innerdq is
    true and we enter a new parameter expansion.

    This patch also fixes a corner case where a bad substitution error
    occurs within arithmetic expansion.

    Reported-by: Denys Vlasenko <vda.linux@googlemail.com>
    Fixes: ab1cecb40478 (" parser: Add syntax stack for recursive...")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

function                                             old     new   delta
readtoken1                                          2880    2898     +18

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-02 21:00:59 +02:00
..
bkslash_case1.right ash : fix double-quoted "\z" handling 2018-02-13 14:44:11 +01:00
bkslash_case1.tests ash : fix double-quoted "\z" handling 2018-02-13 14:44:11 +01:00
bkslash_case2.right hush: fix a backslash-removal bug in case 2018-04-02 17:25:18 +02:00
bkslash_case2.tests hush: fix a backslash-removal bug in case 2018-04-02 17:25:18 +02:00
bkslash_in_varexp.right shell: two new tests, both fail for ash and hush 2018-03-02 17:13:22 +01:00
bkslash_in_varexp.tests shell: tweak bkslash_in_varexp.tests, add bkslash_in_varexp1.tests 2018-03-02 18:12:12 +01:00
bkslash_in_varexp1.right shell: tweak bkslash_in_varexp.tests, add bkslash_in_varexp1.tests 2018-03-02 18:12:12 +01:00
bkslash_in_varexp1.tests shell: tweak bkslash_in_varexp.tests, add bkslash_in_varexp1.tests 2018-03-02 18:12:12 +01:00
dollar_repl_slash_bash1.right
dollar_repl_slash_bash1.tests hush testsuite: add many tests from ash testsuite 2016-10-02 17:39:31 +02:00
dollar_repl_slash_bash2.right ash,hush: new test dollar_repl_slash_bash2.tests 2018-03-30 23:25:24 +02:00
dollar_repl_slash_bash2.tests ash,hush: new test dollar_repl_slash_bash2.tests 2018-03-30 23:25:24 +02:00
dollar_squote_bash1.right
dollar_squote_bash1.tests
dollar_squote_bash2.right ash: fix handling of NULs in $'abc\000def\x00asd'. Closes 9286 2016-09-25 20:54:25 +02:00
dollar_squote_bash2.tests ash: fix handling of NULs in $'abc\000def\x00asd'. Closes 9286 2016-09-25 20:54:25 +02:00
mode_x.right ash: add LINENO support 2018-01-27 22:02:05 +01:00
mode_x.tests ash: improve set -x to quote strings as necessary 2017-07-21 13:20:14 +02:00
quote_in_varexp1.right ash: parser: Fix parameter expansion inside inner double quotes 2018-04-02 21:00:59 +02:00
quote_in_varexp1.tests ash: parser: Fix parameter expansion inside inner double quotes 2018-04-02 21:00:59 +02:00
quoted_punct.right ash: fix escaping of a few characters (broken by last commits) 2017-07-05 22:19:28 +02:00
quoted_punct.tests ash: fix escaping of a few characters (broken by last commits) 2017-07-05 22:19:28 +02:00
squote_in_varexp.right shell: two new tests, both fail for ash and hush 2018-03-02 17:13:22 +01:00
squote_in_varexp.tests shell: two new tests, both fail for ash and hush 2018-03-02 17:13:22 +01:00
squote_in_varexp1.right hush: fix a='a\\'; echo "${a%\\\\}" 2018-03-02 20:48:36 +01:00
squote_in_varexp1.tests hush: fix a='a\\'; echo "${a%\\\\}" 2018-03-02 20:48:36 +01:00
squote_in_varexp2.right hush: fix a='a\\'; echo "${a%\\\\}" 2018-03-02 20:48:36 +01:00
squote_in_varexp2.tests hush: fix a='a\\'; echo "${a%\\\\}" 2018-03-02 20:48:36 +01:00
squote_in_varexp3.right ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
squote_in_varexp3.tests ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
unicode_8x_chars.right ash: fix matching of unicode greek letter rho (cf 81) and similar cases 2017-07-05 19:10:21 +02:00
unicode_8x_chars.tests ash: fix matching of unicode greek letter rho (cf 81) and similar cases 2017-07-05 19:10:21 +02:00