diff options
author | Peter Stephenson <pws@zsh.org> | 2015-09-02 14:20:44 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2015-09-02 14:20:44 +0100 |
commit | 0e63286bd47bab051d49597d3df160b1e9dbb6a3 (patch) | |
tree | 64e3ef590205fce45a6065df33b4cf1f4a57055e | |
parent | 8e3ca08f13f198caa7cd7dc2bb37863238bea4f2 (diff) | |
download | zsh-0e63286bd47bab051d49597d3df160b1e9dbb6a3.tar.gz zsh-0e63286bd47bab051d49597d3df160b1e9dbb6a3.tar.xz zsh-0e63286bd47bab051d49597d3df160b1e9dbb6a3.zip |
36399: Shell code text with multiple here documents wasn't shown properly.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/text.c | 4 | ||||
-rw-r--r-- | Test/A04redirect.ztst | 31 |
3 files changed, 38 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 167d2f408..805d3eade 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-09-02 Peter Stephenson <p.stephenson@samsung.com> + + * 36399: Src/text.c, Test/A04redirect.ztst: shell code with + multiple here documents wasn't shown properly. + 2015-09-01 Mikael Magnusson <mikachu@gmail.com> * 36380: Src/utils.c: Avoid gcc case syntax diff --git a/Src/text.c b/Src/text.c index 3978a26a9..7e65f43a4 100644 --- a/Src/text.c +++ b/Src/text.c @@ -77,8 +77,8 @@ taddpending(char *str1, char *str2) */ if (tpending) { int oldlen = strlen(tpending); - tpending = zrealloc(tpending, len + oldlen); - sprintf(tpending + oldlen, "%s%s", str1, str2); + tpending = zrealloc(tpending, len + oldlen + 1); + sprintf(tpending + oldlen, "\n%s%s", str1, str2); } else { tpending = (char *)zalloc(len); sprintf(tpending, "%s%s", str1, str2); diff --git a/Test/A04redirect.ztst b/Test/A04redirect.ztst index 602341d05..d7fe22fb0 100644 --- a/Test/A04redirect.ztst +++ b/Test/A04redirect.ztst @@ -555,3 +555,34 @@ 0:Assignment with exec used for redirection: POSIX_BUILTINS >x=And this ?This should appear, too + + fn-two-heres() { +# tabs below + cat <<-x <<-y + foo + x + bar + y + } + which -x2 fn-two-heres + fn-two-heres + eval "$(which -x2 fn-two-heres)" + fn-two-heres + print $functions[fn-two-heres] +0:Two here-documents in a line are shown correctly. +>fn-two-heres () { +> cat <<x <<y +>foo +>x +>bar +>y +>} +>foo +>bar +>foo +>bar +> cat <<x <<y +>foo +>x +>bar +>y |