From 77b32ccbf2a1a77911b486b673008a4cb82bb8b7 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 6 Sep 2010 11:27:32 +0200 Subject: hush: fix backslash and terminator handling in <<[-]["]heredoc["] function old new delta parse_stream 2339 2395 +56 expand_pseudo_dquoted 104 118 +14 parse_stream_dquoted 296 300 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 74/0) Total: 74 bytes Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-misc/heredoc_backslash1.right | 27 +++++++++++ shell/hush_test/hush-misc/heredoc_backslash1.tests | 54 ++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 shell/hush_test/hush-misc/heredoc_backslash1.right create mode 100755 shell/hush_test/hush-misc/heredoc_backslash1.tests (limited to 'shell/hush_test') diff --git a/shell/hush_test/hush-misc/heredoc_backslash1.right b/shell/hush_test/hush-misc/heredoc_backslash1.right new file mode 100644 index 0000000..234c017 --- /dev/null +++ b/shell/hush_test/hush-misc/heredoc_backslash1.right @@ -0,0 +1,27 @@ +Quoted heredoc: +a\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- +c\ + +Unquoted heredoc: +a b + 123456 -qwerty-\t-\-\"-\'-`-\--\z-\*-\?- + -qwerty-\t-\-\"-\'-`-\--\z-\*-\?- +cEOF2 + +Quoted -heredoc: +a\ +b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- +-$a-\t-\\-\"-\'-\`-\--\z-\*-\?- +c\ + +Unquoted -heredoc: +a b + 123456 -qwerty-\t-\-\"-\'-`-\--\z-\*-\?- +-qwerty-\t-\-\"-\'-`-\--\z-\*-\?- +cEOF4 + +Done: 0 diff --git a/shell/hush_test/hush-misc/heredoc_backslash1.tests b/shell/hush_test/hush-misc/heredoc_backslash1.tests new file mode 100755 index 0000000..b70467d --- /dev/null +++ b/shell/hush_test/hush-misc/heredoc_backslash1.tests @@ -0,0 +1,54 @@ +# Test for correct handling of backslashes. +# Note that some lines in each heredoc start with a tab. + +a=qwerty + +echo Quoted heredoc: +cat <<"EOF1" +a\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- +c\ +EOF1 +echo + +echo Unquoted heredoc: +cat <