busybox/shell/ash_test/ash-vars
Denys Vlasenko 680c3016a2 ash: parser: Allow newlines within parameter substitution
Upstream commit:

Date: Thu, 22 Mar 2018 21:41:24 +0800
parser: Allow newlines within parameter substitution

    On Fri, Mar 16, 2018 at 11:27:22AM +0800, Herbert Xu wrote:
    > On Thu, Mar 15, 2018 at 10:49:15PM +0100, Harald van Dijk wrote:
    > >
    > > Okay, it can be trivially modified to something that does work in other
    > > shells (even if it were actually executed), but gets rejected at parse time
    > > by dash:
    > >
    > >   if false; then
    > >     : ${$+
    > >   }
    > >   fi
    >
    > That's just a bug in dash's parser with ${} in general, because
    > it bombs out without the if clause too:
    >
    > 	: ${$+
    > 	}

    This patch fixes the parsing of newlines with parameter substitution.

    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11 12:39:18 +02:00
..
empty.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
empty.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
glob_and_vars.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
glob_and_vars.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
param_expand_alt2.right ash: parser: Allow newlines within parameter substitution 2018-04-11 12:39:18 +02:00
param_expand_alt2.tests ash: parser: Allow newlines within parameter substitution 2018-04-11 12:39:18 +02:00
param_expand_alt.right shell: remove ${#+} tests, it is not a valid construct 2017-07-26 00:30:02 +02:00
param_expand_alt.tests shell: remove ${#+} tests, it is not a valid construct 2017-07-26 00:30:02 +02:00
param_expand_assign.right ash: update testsuite (we now error out on ${#=}) 2017-08-14 15:01:32 +02:00
param_expand_assign.tests ash: add a few tests from hush-vars/* 2017-07-25 14:55:05 +02:00
param_expand_bash_substring.right shell: echo ${?:0} was fixed sometime ago, enable it in tests 2018-01-13 19:28:19 +01:00
param_expand_bash_substring.tests shell: echo ${?:0} was fixed sometime ago, enable it in tests 2018-01-13 19:28:19 +01:00
param_expand_default.right ash: import param_expand_default.tests from hush 2017-07-25 15:25:07 +02:00
param_expand_default.tests ash: import param_expand_default.tests from hush 2017-07-25 15:25:07 +02:00
param_expand_indicate_error.right hush: treat ${#?} as "length of $?" 2017-07-25 15:18:57 +02:00
param_expand_indicate_error.tests hush: treat ${#?} as "length of $?" 2017-07-25 15:18:57 +02:00
param_expand_len1.right hush: fix ${##}, ${#?}, ${#!} handling 2017-07-26 00:07:27 +02:00
param_expand_len1.tests hush: fix ${##}, ${#?}, ${#!} handling 2017-07-26 00:07:27 +02:00
param_expand_len.right ash: [PARSER] Fix parsing of ${##1} 2016-10-26 15:56:53 +02:00
param_expand_len.tests ash: [PARSER] Fix parsing of ${##1} 2016-10-26 15:56:53 +02:00
param_glob.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
param_glob.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
param_subshell.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
param_subshell.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
readonly0.right ash: [VAR] Move unsetvar functionality into setvareq 2017-07-25 16:29:36 +02:00
readonly0.tests ash: suppress readonly1.tests false positive; add readonly0.tests 2017-07-21 13:37:25 +02:00
readonly1.right ash: suppress readonly1.tests false positive; add readonly0.tests 2017-07-21 13:37:25 +02:00
readonly1.tests ash: suppress readonly1.tests false positive; add readonly0.tests 2017-07-21 13:37:25 +02:00
star.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
star.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
unset.right ash: [VAR] Move unsetvar functionality into setvareq 2017-07-25 16:29:36 +02:00
unset.tests ash: [VAR] Move unsetvar functionality into setvareq 2017-07-25 16:29:36 +02:00
var1.right sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var1.tests sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var2.right sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var2.tests sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var3.right
var3.tests
var4.right sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var4.tests sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var5.right sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var5.tests sh testsuite: sync ash-vars/ and hush-vars/ 2016-10-02 18:17:15 +02:00
var_bash1.right
var_bash1.tests
var_bash1a.right ash: fix handling of ${VAR: -2} 2016-07-25 03:56:00 +02:00
var_bash1a.tests typo fix 2017-07-06 19:50:42 +02:00
var_bash1b.right ash: more general format ${var:EXPR:EXPR} 2017-07-17 17:49:11 +02:00
var_bash1b.tests ash: more general format ${var:EXPR:EXPR} 2017-07-17 17:49:11 +02:00
var_bash2.right
var_bash2.tests
var_bash3.right ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
var_bash3.tests
var_bash4.right ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
var_bash4.tests ash testsuite: update some of variable tests with newer versions from hush 2016-10-02 18:08:04 +02:00
var_bash5.right ash testsuite: update some of variable tests with newer versions from hush 2016-10-02 18:08:04 +02:00
var_bash5.tests ash testsuite: update some of variable tests with newer versions from hush 2016-10-02 18:08:04 +02:00
var_bash6.right ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
var_bash6.tests ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
var_bash7.right ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
var_bash7.tests ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
var_bash_repl_empty_pattern.right ash testsuite: add two hush tests from last commit 2018-01-25 14:09:06 +01:00
var_bash_repl_empty_pattern.tests ash testsuite: add two hush tests from last commit 2018-01-25 14:09:06 +01:00
var_bash_repl_empty_var.right ash testsuite: add two hush tests from last commit 2018-01-25 14:09:06 +01:00
var_bash_repl_empty_var.tests ash testsuite: add two hush tests from last commit 2018-01-25 14:09:06 +01:00
var_expand_in_assign.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_expand_in_assign.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_expand_in_redir.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_expand_in_redir.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_expand_on_ifs.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_expand_on_ifs.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_in_pipes.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_in_pipes.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_leak.right
var_leak.tests
var_leaks.right ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_leaks.tests ash testsuite: add most of hust tests which pass for ash 2016-10-03 00:06:55 +02:00
var_LINENO1.right shells: fix var_LINENO1.tests false positive, add it to ash tests too 2018-03-31 20:31:13 +02:00
var_LINENO1.tests shells: fix var_LINENO1.tests false positive, add it to ash tests too 2018-03-31 20:31:13 +02:00
var_posix1.right ash testsuite: update some of variable tests with newer versions from hush 2016-10-02 18:08:04 +02:00
var_posix1.tests ash testsuite: update some of variable tests with newer versions from hush 2016-10-02 18:08:04 +02:00
var_serial.right hush: rework input char buffering to allow more than one-deep peek 2016-09-29 16:59:06 +02:00
var_serial.tests hush: rework input char buffering to allow more than one-deep peek 2016-09-29 16:59:06 +02:00
var_subst_in_for.right hush: rework input char buffering to allow more than one-deep peek 2016-09-29 16:59:06 +02:00
var_subst_in_for.tests hush: rework input char buffering to allow more than one-deep peek 2016-09-29 16:59:06 +02:00
var_unbackslash1.right ash: fix arithmetic closing )) split by backslash-newline 2016-09-29 17:58:58 +02:00
var_unbackslash1.tests shell testsuite: add trailing newline to var_unbackslash1.tests 2016-09-29 20:02:53 +02:00
var_unbackslash.right hush: rework input char buffering to allow more than one-deep peek 2016-09-29 16:59:06 +02:00
var_unbackslash.tests hush: rework input char buffering to allow more than one-deep peek 2016-09-29 16:59:06 +02:00
var_wordsplit_ifs1.right ash: expand: Fixed "$@" expansion when EXP_FULL is false 2016-10-02 02:46:56 +02:00
var_wordsplit_ifs1.tests ash: expand: Fixed "$@" expansion when EXP_FULL is false 2016-10-02 02:46:56 +02:00
var_wordsplit_ifs2.right ash: [EXPAND] Do not split quoted VSLENGTH and VSTRIM 2016-10-01 20:55:02 +02:00
var_wordsplit_ifs2.tests ash: [EXPAND] Do not split quoted VSLENGTH and VSTRIM 2016-10-01 20:55:02 +02:00
var_wordsplit_ifs3.right ash: [EXPAND] Do not split quoted VSLENGTH and VSTRIM 2016-10-01 20:55:02 +02:00
var_wordsplit_ifs3.tests ash: [EXPAND] Do not split quoted VSLENGTH and VSTRIM 2016-10-01 20:55:02 +02:00
var-do-not-collapse-arithmetic-expansion-at-parse-time.right ash: remove arithmetic expansion collapsing at parse time 2015-05-18 09:56:16 +02:00
var-do-not-collapse-arithmetic-expansion-at-parse-time.tests ash: remove arithmetic expansion collapsing at parse time 2015-05-18 09:56:16 +02:00
var-do-not-expand-tilde-in-parameter-expansion-in-quotes.right ash: do not expand tilde in parameter expansion within quotes 2015-05-18 09:53:26 +02:00
var-do-not-expand-tilde-in-parameter-expansion-in-quotes.tests ash: do not expand tilde in parameter expansion within quotes 2015-05-18 09:53:26 +02:00
var-do-not-quote-backslashes-in-parameter-expansions-outside-quotes.right ash: move parse-time quote flag detection to run-time 2015-05-18 09:57:51 +02:00
var-do-not-quote-backslashes-in-parameter-expansions-outside-quotes.tests ash: move parse-time quote flag detection to run-time 2015-05-18 09:57:51 +02:00
var-expand-tilde-in-parameter-expansion.right
var-expand-tilde-in-parameter-expansion.tests
var-pattern-replacement-in-parameter-expansion-1.right testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-1.tests testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-2.right testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-2.tests testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-3.right testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-3.tests testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-4.right testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-4.tests testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-5.right testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-pattern-replacement-in-parameter-expansion-5.tests testsuite: add some tests for ash 2015-05-18 10:13:21 +02:00
var-runtime-quote-detection.right ash: move parse-time quote flag detection to run-time 2015-05-18 09:57:51 +02:00
var-runtime-quote-detection.tests ash: move parse-time quote flag detection to run-time 2015-05-18 09:57:51 +02:00
var-utf8-length.right ash: fix corruption of ${#var} if $var contains UTF-8 characters 2016-03-22 18:19:29 -04:00
var-utf8-length.tests hush: "adopt" ash var-utf8-length.tests 2017-07-06 19:29:23 +02:00