hush: rework input char buffering to allow more than one-deep peek
This fixes backslash+newline continuation in $VAR\ NAME construct. (ash has a bug there as well). function old new delta file_peek2 - 74 +74 parse_dollar 746 773 +27 expand_vars_to_list 1143 1167 +24 setup_string_in_str 32 46 +14 setup_file_in_str 33 47 +14 file_get 264 278 +14 static_peek2 - 7 +7 file_peek 91 72 -19 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 5/1 up/down: 174/-19) Total: 155 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
3
shell/hush_test/hush-vars/var_unbackslash1.right
Normal file
3
shell/hush_test/hush-vars/var_unbackslash1.right
Normal file
@@ -0,0 +1,3 @@
|
||||
Ok
|
||||
Ba d
|
||||
Ok
|
15
shell/hush_test/hush-vars/var_unbackslash1.tests
Executable file
15
shell/hush_test/hush-vars/var_unbackslash1.tests
Executable file
@@ -0,0 +1,15 @@
|
||||
ad="Ok"
|
||||
a="Ba"
|
||||
|
||||
# "Ok"
|
||||
echo $a\
|
||||
d
|
||||
|
||||
# This variable contains backslash+newline!
|
||||
e='echo $a\
|
||||
d'
|
||||
|
||||
# "Ba d"
|
||||
eval $e
|
||||
# "Ok"
|
||||
eval "$e"
|
Reference in New Issue
Block a user