From 64aa86b720641cb50be9636e6c20d4dbbea6fed0 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 7 Sep 2021 18:16:45 +0200 Subject: [PATCH] ash: LINENO starts from 0 in -c SCRIPT mode The var_LINENO3.tests fails for hush: it does start from 0, but does not increment. Signed-off-by: Denys Vlasenko --- shell/ash.c | 2 +- shell/ash_test/ash-misc/control_char3.right | 2 +- shell/ash_test/ash-misc/control_char4.right | 2 +- shell/ash_test/ash-misc/shift1.right | 2 +- shell/ash_test/ash-misc/tickquote1.right | 2 +- .../ash-parsing/groups_and_keywords2.right | 2 +- shell/ash_test/ash-psubst/emptytick.right | 4 +-- .../ash_test/ash-vars/param_expand_alt.right | 4 +-- .../ash-vars/param_expand_assign.right | 14 ++++---- .../param_expand_bash_substring.right | 10 +++--- .../ash-vars/param_expand_default.right | 2 +- .../param_expand_indicate_error.right | 32 +++++++++---------- shell/ash_test/ash-vars/var6.right | 4 +-- shell/ash_test/ash-vars/var_LINENO3.right | 2 ++ shell/ash_test/ash-vars/var_LINENO3.tests | 2 ++ shell/hush_test/hush-vars/var_LINENO3.right | 2 ++ shell/hush_test/hush-vars/var_LINENO3.tests | 2 ++ 17 files changed, 49 insertions(+), 41 deletions(-) create mode 100644 shell/ash_test/ash-vars/var_LINENO3.right create mode 100755 shell/ash_test/ash-vars/var_LINENO3.tests create mode 100644 shell/hush_test/hush-vars/var_LINENO3.right create mode 100755 shell/hush_test/hush-vars/var_LINENO3.tests diff --git a/shell/ash.c b/shell/ash.c index 79fa3adba..35dbb2f28 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -14698,7 +14698,7 @@ int ash_main(int argc UNUSED_PARAM, char **argv) // ^^ not necessary since now we special-case fd 0 // in save_fd_on_redirect() - lineno = 1; + lineno = 0; // bash compat // dash: evalstring(minusc, sflag ? 0 : EV_EXIT); // The above makes // ash -sc 'echo $-' diff --git a/shell/ash_test/ash-misc/control_char3.right b/shell/ash_test/ash-misc/control_char3.right index 283e02cbb..654005d24 100644 --- a/shell/ash_test/ash-misc/control_char3.right +++ b/shell/ash_test/ash-misc/control_char3.right @@ -1 +1 @@ -SHELL: line 1: : not found +SHELL: line 0: : not found diff --git a/shell/ash_test/ash-misc/control_char4.right b/shell/ash_test/ash-misc/control_char4.right index 2bf18e684..ec9d5fc98 100644 --- a/shell/ash_test/ash-misc/control_char4.right +++ b/shell/ash_test/ash-misc/control_char4.right @@ -1 +1 @@ -SHELL: line 1: -: not found +SHELL: line 0: -: not found diff --git a/shell/ash_test/ash-misc/shift1.right b/shell/ash_test/ash-misc/shift1.right index b53453c3a..fdba79fd3 100644 --- a/shell/ash_test/ash-misc/shift1.right +++ b/shell/ash_test/ash-misc/shift1.right @@ -1,5 +1,5 @@ 2 3 4 -0: shift: line 1: Illegal number: -1 +0: shift: line 0: Illegal number: -1 1 2 3 4 2 3 4 3 4 diff --git a/shell/ash_test/ash-misc/tickquote1.right b/shell/ash_test/ash-misc/tickquote1.right index 2e661bfe3..e55a31c2d 100644 --- a/shell/ash_test/ash-misc/tickquote1.right +++ b/shell/ash_test/ash-misc/tickquote1.right @@ -1 +1 @@ -./tickquote1.tests: line 1: syntax error: unterminated quoted string +./tickquote1.tests: line 0: syntax error: unterminated quoted string diff --git a/shell/ash_test/ash-parsing/groups_and_keywords2.right b/shell/ash_test/ash-parsing/groups_and_keywords2.right index 3fcbeb662..2ce38fe6e 100644 --- a/shell/ash_test/ash-parsing/groups_and_keywords2.right +++ b/shell/ash_test/ash-parsing/groups_and_keywords2.right @@ -1,3 +1,3 @@ -./groups_and_keywords2.tests: eval: line 1: syntax error: unexpected ")" +./groups_and_keywords2.tests: eval: line 2: syntax error: unexpected ")" Fail:2 ./groups_and_keywords2.tests: line 8: syntax error: unexpected ")" diff --git a/shell/ash_test/ash-psubst/emptytick.right b/shell/ash_test/ash-psubst/emptytick.right index 459c4f735..8fe9839ca 100644 --- a/shell/ash_test/ash-psubst/emptytick.right +++ b/shell/ash_test/ash-psubst/emptytick.right @@ -1,8 +1,8 @@ 0 0 -./emptytick.tests: line 1: : Permission denied +./emptytick.tests: line 2: : Permission denied 127 -./emptytick.tests: line 1: : Permission denied +./emptytick.tests: line 3: : Permission denied 127 0 0 diff --git a/shell/ash_test/ash-vars/param_expand_alt.right b/shell/ash_test/ash-vars/param_expand_alt.right index 1303f8064..d10f1206f 100644 --- a/shell/ash_test/ash-vars/param_expand_alt.right +++ b/shell/ash_test/ash-vars/param_expand_alt.right @@ -1,5 +1,5 @@ -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution __ _z_ _z_ _ _ _ _ _ diff --git a/shell/ash_test/ash-vars/param_expand_assign.right b/shell/ash_test/ash-vars/param_expand_assign.right index 6e9ea1379..52eaef9f8 100644 --- a/shell/ash_test/ash-vars/param_expand_assign.right +++ b/shell/ash_test/ash-vars/param_expand_assign.right @@ -1,11 +1,11 @@ -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution 0 -SHELL: line 1: 1: bad variable name -SHELL: line 1: 1: bad variable name -SHELL: line 1: 1: bad variable name -SHELL: line 1: 1: bad variable name +SHELL: line 0: 1: bad variable name +SHELL: line 0: 1: bad variable name +SHELL: line 0: 1: bad variable name +SHELL: line 0: 1: bad variable name _aa _aa _aa diff --git a/shell/ash_test/ash-vars/param_expand_bash_substring.right b/shell/ash_test/ash-vars/param_expand_bash_substring.right index 687dd9002..22a0b2881 100644 --- a/shell/ash_test/ash-vars/param_expand_bash_substring.right +++ b/shell/ash_test/ash-vars/param_expand_bash_substring.right @@ -1,8 +1,8 @@ -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: missing '}' +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: missing '}' 0 1 =|| 1:1 =|| diff --git a/shell/ash_test/ash-vars/param_expand_default.right b/shell/ash_test/ash-vars/param_expand_default.right index 7a42f67e8..0852105ca 100644 --- a/shell/ash_test/ash-vars/param_expand_default.right +++ b/shell/ash_test/ash-vars/param_expand_default.right @@ -1,4 +1,4 @@ -SHELL: line 1: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution _0 _0 _ _ _ _word _word _aaaa _aaaa _aaaa _aaaa _aaaa diff --git a/shell/ash_test/ash-vars/param_expand_indicate_error.right b/shell/ash_test/ash-vars/param_expand_indicate_error.right index 33afacee0..53ea07181 100644 --- a/shell/ash_test/ash-vars/param_expand_indicate_error.right +++ b/shell/ash_test/ash-vars/param_expand_indicate_error.right @@ -1,14 +1,14 @@ -SHELL: line 1: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution 1 0 ==== _ -SHELL: line 1: 1: parameter not set -SHELL: line 1: 1: parameter not set or null -SHELL: line 1: 1: message1 -SHELL: line 1: 1: message1 -SHELL: line 1: 1: unset! -SHELL: line 1: 1: null or unset! +SHELL: line 0: 1: parameter not set +SHELL: line 0: 1: parameter not set or null +SHELL: line 0: 1: message1 +SHELL: line 0: 1: message1 +SHELL: line 0: 1: unset! +SHELL: line 0: 1: null or unset! ==== _aaaa _aaaa @@ -19,20 +19,20 @@ _aaaa _aaaa ==== _ -SHELL: line 1: f: parameter not set -SHELL: line 1: f: parameter not set or null -SHELL: line 1: f: message3 -SHELL: line 1: f: message3 -SHELL: line 1: f: unset! -SHELL: line 1: f: null or unset! +SHELL: line 0: f: parameter not set +SHELL: line 0: f: parameter not set or null +SHELL: line 0: f: message3 +SHELL: line 0: f: message3 +SHELL: line 0: f: unset! +SHELL: line 0: f: null or unset! ==== _ _ -SHELL: line 1: f: parameter not set or null +SHELL: line 0: f: parameter not set or null _ -SHELL: line 1: f: message4 +SHELL: line 0: f: message4 _ -SHELL: line 1: f: null or unset! +SHELL: line 0: f: null or unset! ==== _fff _fff diff --git a/shell/ash_test/ash-vars/var6.right b/shell/ash_test/ash-vars/var6.right index b37417fa1..e83f7b5eb 100644 --- a/shell/ash_test/ash-vars/var6.right +++ b/shell/ash_test/ash-vars/var6.right @@ -1,2 +1,2 @@ -SHELL: line 1: syntax error: bad substitution -SHELL: line 1: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution +SHELL: line 0: syntax error: bad substitution diff --git a/shell/ash_test/ash-vars/var_LINENO3.right b/shell/ash_test/ash-vars/var_LINENO3.right new file mode 100644 index 000000000..198c3cc99 --- /dev/null +++ b/shell/ash_test/ash-vars/var_LINENO3.right @@ -0,0 +1,2 @@ +LINENO starts from 0 in -c +and increments on next line: 1 diff --git a/shell/ash_test/ash-vars/var_LINENO3.tests b/shell/ash_test/ash-vars/var_LINENO3.tests new file mode 100755 index 000000000..4502edfe0 --- /dev/null +++ b/shell/ash_test/ash-vars/var_LINENO3.tests @@ -0,0 +1,2 @@ +$THIS_SH -c 'echo "LINENO starts from $LINENO in -c" +echo "and increments on next line: $LINENO"' diff --git a/shell/hush_test/hush-vars/var_LINENO3.right b/shell/hush_test/hush-vars/var_LINENO3.right new file mode 100644 index 000000000..198c3cc99 --- /dev/null +++ b/shell/hush_test/hush-vars/var_LINENO3.right @@ -0,0 +1,2 @@ +LINENO starts from 0 in -c +and increments on next line: 1 diff --git a/shell/hush_test/hush-vars/var_LINENO3.tests b/shell/hush_test/hush-vars/var_LINENO3.tests new file mode 100755 index 000000000..4502edfe0 --- /dev/null +++ b/shell/hush_test/hush-vars/var_LINENO3.tests @@ -0,0 +1,2 @@ +$THIS_SH -c 'echo "LINENO starts from $LINENO in -c" +echo "and increments on next line: $LINENO"'