Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Here document in code chunks
On Wed, 2 Sep 2015 10:03:47 +0100
Peter Stephenson <p.stephenson@xxxxxxxxxxx> wrote:
> On Wed, 2 Sep 2015 10:50:07 +0200
> Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
>> % f() { cat << x << y; }
>> foo
>> x
>> bar
>> y
>> % which f
>> f () {
>> cat <<x <<y
>> foo
>> xbar
>> y
>> }
>>
>> There should be a newline between x and bar in the output. The
>> function itself works fine.
It seems to be this simple. (Here, here.)
pws
diff --git a/Src/text.c b/Src/text.c
index 3978a26..7e65f43 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 602341d..d7fe22f 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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author