freebsd-dev/bin/sh/tests/parser/line-cont11.0
Jilles Tjoelker 0b4b9c8158 sh: Allow backslash-newline continuation in more places:
* directly after a $
 * directly after ${
 * between the characters of a multi-character operator token
 * within a parameter name
2014-10-19 11:59:15 +00:00

24 lines
467 B
Plaintext

# $FreeBSD$
T=$(mktemp "${TMPDIR:-/tmp}/sh-test.XXXXXXXX") || exit
trap 'rm -f -- "$T"' 0
w='#A'
# A naive pgetc_linecont() would push back two characters here, which
# fails if a new buffer is read between the two characters.
c='${w#\#}'
c=$c$c$c$c
c=$c$c$c$c
c=$c$c$c$c
c=$c$c$c$c
c=$c$c$c$c
c=$c$c$c$c
printf 'v=%s\n' "$c" >"$T"
. "$T"
if [ "${#v}" != 4096 ]; then
echo "Length is bad (${#v})"
exit 3
fi
case $v in
*[!A]*) echo "Content is bad"; exit 3 ;;
esac