diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/parse.c | 2 | ||||
-rw-r--r-- | Test/A04redirect.ztst | 15 |
3 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index cb270edb0..112a53d1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-05-08 Peter Stephenson <p.stephenson@samsung.com> + + * 41060: Src/parse.c, Test/A04redirect.ztst: combination + of HERE document and |& was broken by miscounting wordcode owing + to missing flag. + 2017-05-04 Daniel Shahaf <d.s@daniel.shahaf.name> * 41038: NEWS: Document recent, backwards-compatible precommand diff --git a/Src/parse.c b/Src/parse.c index 6fe283dcb..83e87afed 100644 --- a/Src/parse.c +++ b/Src/parse.c @@ -2143,7 +2143,7 @@ par_redir(int *rp, char *idstring) * the definition of WC_REDIR_WORDS. */ ecispace(r, ncodes); *rp = r + ncodes; - ecbuf[r] = WCB_REDIR(type); + ecbuf[r] = WCB_REDIR(type | REDIR_FROM_HEREDOC_MASK); ecbuf[r + 1] = fd1; /* diff --git a/Test/A04redirect.ztst b/Test/A04redirect.ztst index d7fe22fb0..a5de552c1 100644 --- a/Test/A04redirect.ztst +++ b/Test/A04redirect.ztst @@ -586,3 +586,18 @@ >x >bar >y + + fn-here-pipe() { + cat <<-HERE |& cat + FOO + HERE + } + fn-here-pipe + which fn-here-pipe +0:Combination of HERE-document and |& +>FOO +>fn-here-pipe () { +> cat <<HERE 2>&1 | cat +>FOO +>HERE +>} |