hush/shell/hush_test/hush-misc/heredoc_backslash1.tests
Denys Vlasenko 77b32ccbf2 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 <dvlasenk@redhat.com>
2010-09-06 11:27:32 +02:00

55 lines
948 B
Plaintext
Executable File

# 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 <<EOF2
a\
b
123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
c\
EOF2
EOF2
echo
echo Quoted -heredoc:
cat <<-"EOF3"
a\
b
123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
c\
EOF3
# In -heredoc case the marker is detected even if it is indented.
echo
echo Unquoted -heredoc:
cat <<-EOF4
a\
b
123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
c\
EOF4
EOF4
# The marker is not detected if preceding line ends in backslash.
# TODO: marker should be detected even if it is split by line continuation:
# EOF\
# 4
# but currently hush doesn't do it. (Tab before "4" is not allowed, though.)
echo
echo "Done: $?"