summaryrefslogtreecommitdiffhomepage
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2021-09-07 18:16:45 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2021-09-07 18:16:45 +0200
commit64aa86b720641cb50be9636e6c20d4dbbea6fed0 (patch)
tree831e13eec7b361f1f9b37a4359594969eee0050c /shell
parentd6c9cbc0727cc3875672ae280ec129514a9d8594 (diff)
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 <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c2
-rw-r--r--shell/ash_test/ash-misc/control_char3.right2
-rw-r--r--shell/ash_test/ash-misc/control_char4.right2
-rw-r--r--shell/ash_test/ash-misc/shift1.right2
-rw-r--r--shell/ash_test/ash-misc/tickquote1.right2
-rw-r--r--shell/ash_test/ash-parsing/groups_and_keywords2.right2
-rw-r--r--shell/ash_test/ash-psubst/emptytick.right4
-rw-r--r--shell/ash_test/ash-vars/param_expand_alt.right4
-rw-r--r--shell/ash_test/ash-vars/param_expand_assign.right14
-rw-r--r--shell/ash_test/ash-vars/param_expand_bash_substring.right10
-rw-r--r--shell/ash_test/ash-vars/param_expand_default.right2
-rw-r--r--shell/ash_test/ash-vars/param_expand_indicate_error.right32
-rw-r--r--shell/ash_test/ash-vars/var6.right4
-rw-r--r--shell/ash_test/ash-vars/var_LINENO3.right2
-rwxr-xr-xshell/ash_test/ash-vars/var_LINENO3.tests2
-rw-r--r--shell/hush_test/hush-vars/var_LINENO3.right2
-rwxr-xr-xshell/hush_test/hush-vars/var_LINENO3.tests2
17 files changed, 49 insertions, 41 deletions
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"'