diff options
-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 |