fix heredocs

pull/436/head
romkatv 5 years ago
parent 770bf93444
commit b59f74a7bd

@ -198,6 +198,11 @@ function _parse_buffer() {
(( ic )) && tokens[1,0]=(${(Z+C+)s}) || tokens[1,0]=(${(z)s})
done
if [[ $token == '<<'(|-) ]]; then
state=h
continue
fi
case $state in
t|p*)
if (( $+__pb_term[$token] )); then
@ -218,16 +223,23 @@ function _parse_buffer() {
state[1]=
continue;;
h)
skip=${(b)token}
state=s
while (( $#tokens )); do
(( e = ${tokens[(i)$token]} ))
if [[ $tokens[e-1] == ';' && $tokens[e+1] == ';' ]]; then
tokens[1,e]=()
break
else
tokens[1,e]=()
fi
done
while (( $#alp && alp[-1] >= $#tokens )); do
aln[-1]=()
alp[-1]=()
done
state=t
continue;;
esac
if [[ $token == '<<'(|-) ]]; then
state=h
continue
fi
if (( $+__pb_redirect[${token#<0-255>}] )); then
state+=r
continue

Loading…
Cancel
Save