From 0e63286bd47bab051d49597d3df160b1e9dbb6a3 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 2 Sep 2015 14:20:44 +0100 Subject: 36399: Shell code text with multiple here documents wasn't shown properly. --- ChangeLog | 5 +++++ Src/text.c | 4 ++-- 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 + + * 36399: Src/text.c, Test/A04redirect.ztst: shell code with + multiple here documents wasn't shown properly. + 2015-09-01 Mikael Magnusson * 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 <foo +>x +>bar +>y +>} +>foo +>bar +>foo +>bar +> cat <foo +>x +>bar +>y -- cgit 1.4.1