about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <p.w.stephenson@ntlworld.com>2019-06-24 20:19:19 +0100
committerPeter Stephenson <p.w.stephenson@ntlworld.com>2019-06-24 20:19:19 +0100
commit4384fdc7f0b5a1de78af344446fcbb90b7182c9e (patch)
tree2bd41329e19b03588b20d16346bb00948c3fee1b /Src
parent1b1cb4416105e083eaf34379efacfd4cafa77fb0 (diff)
downloadzsh-4384fdc7f0b5a1de78af344446fcbb90b7182c9e.tar.gz
zsh-4384fdc7f0b5a1de78af344446fcbb90b7182c9e.tar.xz
zsh-4384fdc7f0b5a1de78af344446fcbb90b7182c9e.zip
44446: Fix here document with file descriptor declarator.
Add unit test.
Diffstat (limited to 'Src')
-rw-r--r--Src/parse.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Src/parse.c b/Src/parse.c
index 27234497b..53709ac00 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -2279,7 +2279,8 @@ par_redir(int *rp, char *idstring)
 void
 setheredoc(int pc, int type, char *str, char *termstr, char *munged_termstr)
 {
-    ecbuf[pc] = WCB_REDIR(type | REDIR_FROM_HEREDOC_MASK);
+    int varid = WC_REDIR_VARID(ecbuf[pc]) ? REDIR_VARID_MASK : 0;
+    ecbuf[pc] = WCB_REDIR(type | REDIR_FROM_HEREDOC_MASK | varid);
     ecbuf[pc + 2] = ecstrcode(str);
     ecbuf[pc + 3] = ecstrcode(termstr);
     ecbuf[pc + 4] = ecstrcode(munged_termstr);