hush: fix improper handling of newline and hash chars in few corner cases

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This commit is contained in:
Denys Vlasenko
2010-11-22 17:58:14 +01:00
parent 1e23f32453
commit 7b4c0fd5f4
7 changed files with 160 additions and 123 deletions

View File

@@ -0,0 +1,2 @@
Done:0
abc=123

View File

@@ -0,0 +1,5 @@
# This must be interpreted as assignments
a=1 b\
=2 c=3
echo Done:$?
echo abc=$a$b$c

View File

@@ -0,0 +1,2 @@
Nothing:
String: #should-be-echoed

View File

@@ -0,0 +1,2 @@
echo Nothing: #should-not-be-echoed
echo String: ""#should-be-echoed

View File

@@ -0,0 +1 @@
Done:0

View File

@@ -0,0 +1,18 @@
# bug was that we treated <newline> as ';' in this line:
true || echo foo |
echo BAD1 | cat
# variation on the same theme
true || echo foo |
# comment
echo BAD2 | cat
# variation on the same theme
true || echo foo |
echo BAD3 | cat
# this should error out, but currently works in hush:
#true || echo foo |;
echo Done:$?