4eb9d5ad9f
* directly after a $ * directly after ${ * between the characters of a multi-character operator token * within a parameter name
24 lines
467 B
Plaintext
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
|