about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorBart Schaefer <schaefer@zsh.org>2024-01-24 17:56:21 -0800
committerBart Schaefer <schaefer@zsh.org>2024-01-24 17:56:21 -0800
commitb3e763cc228b182019c22a3490312f7b17df4029 (patch)
treeb0315a4630780b167c83a78f69fceb0a4560579e /Src
parent0fccdf0d57fb8ed4b88df6681d15822f3c4e784f (diff)
downloadzsh-b3e763cc228b182019c22a3490312f7b17df4029.tar.gz
zsh-b3e763cc228b182019c22a3490312f7b17df4029.tar.xz
zsh-b3e763cc228b182019c22a3490312f7b17df4029.zip
52482: strip trailing newlines in emulation modes of ${ command; }
Diffstat (limited to 'Src')
-rw-r--r--Src/subst.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Src/subst.c b/Src/subst.c
index 3a1187350..650c09de2 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -2005,6 +2005,12 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags,
 		int onoerrs = noerrs, rplylen;
 		noerrs = 2;
 		rplylen = zstuff(&cmdarg, rplytmp);
+		if (! EMULATION(EMULATE_ZSH)) {
+		    /* bash and ksh strip trailing newlines here */
+		    while (rplylen > 0 && cmdarg[rplylen-1] == '\n')
+			rplylen--;
+		    cmdarg[rplylen] = 0;
+		}
 		noerrs = onoerrs;
 		if (rplylen >= 0)
 		    setsparam("REPLY", metafy(cmdarg, rplylen, META_REALLOC));