summary refs log tree commit diff
path: root/src/arith_yacc.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2020-04-29 00:19:59 +1000
committerHerbert Xu <herbert@gondor.apana.org.au>2020-05-15 16:24:38 +1000
commit07951cfffb218291e7574b874660eab652cb54f1 (patch)
treeba85a61937b42600400e9fb7a78e0181ce627fb9 /src/arith_yacc.c
parentparser: Catch errors in expandstr (diff)
downloaddash-07951cfffb218291e7574b874660eab652cb54f1.tar.gz
dash-07951cfffb218291e7574b874660eab652cb54f1.zip
parser: Fix alias expansion after heredoc or newlines
This script should print OK:

	alias a="case x in " b=x
	a
	b) echo BAD;; esac

	alias BEGIN={ END=}
	BEGIN
		cat <<- EOF > /dev/null
			$(:)
		EOF
	END

	: <<- EOF &&
		$(:)
	EOF
	BEGIN
		echo OK
	END

However, because the value of checkkwd is either zeroed when it
shouldn't, or isn't zeroed when it should, dash currently gets
it wrong in every case.

This patch fixes it by saving checkkwd and zeroing it where needed.

Suggested-by: Harald van Dijk <harald@gigawatt.nl>
Reported-by: Harald van Dijk <harald@gigawatt.nl>
Reported-by: Martijn Dekker <martijn@inlv.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src/arith_yacc.c')
0 files changed, 0 insertions, 0 deletions