Message ID | 20190429141337.6804-1-n.merinov@inango-systems.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Herbert Xu |
Headers | show |
Series | expand: Fix trailing newlines processing in backquote expanding | expand |
Hi Herbert, Do you want any changes to this patch from us? This patch in state "Under Review" more then 8 months. Regards, Nikolai ----- Original Message ----- > From: "n merinov" <n.merinov@inango-systems.com> > To: dash@vger.kernel.org > Cc: "os" <os@inango-systems.com>, "n merinov" <n.merinov@inango-systems.com> > Sent: Monday, April 29, 2019 7:13:37 PM > Subject: [PATCH] expand: Fix trailing newlines processing in backquote expanding > According to POSIX.1-2008 we should remove newlines only at the end of > the substitution. Newlines-only substitions causes dash to remove > newlines before beggining of the substitution. The following code: > > cat <<END > 1 > $(echo "") > 2 > END > > prints "1<newline>2" instead of expected "1<newline><newline>2". > > This patch fixes trailing newlines processing in backquote expanding. > > Signed-off-by: Nikolai Merinov <n.merinov@inango-systems.com> > --- > src/expand.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/expand.c b/src/expand.c > index af9cac9..1b1f95e 100644 > --- a/src/expand.c > +++ b/src/expand.c > @@ -525,7 +525,7 @@ read: > > /* Eat all trailing newlines */ > dest = expdest; > - for (; dest > (char *)stackblock() && dest[-1] == '\n';) > + for (; dest > ((char *)stackblock() + startloc) && dest[-1] == '\n';) > STUNPUTC(dest); > expdest = dest; > > -- > 2.17.1
On Mon, Jan 13, 2020 at 02:08:05PM +0200, Nikolai Merinov wrote: > Hi Herbert, > > Do you want any changes to this patch from us? This patch in state "Under Review" more then 8 months. Sorry I just had no time to work on dash patches. I'll try to work on the backlog fairly soon. Cheers,
On Mon, Apr 29, 2019 at 07:13:37PM +0500, Nikolai Merinov wrote: > According to POSIX.1-2008 we should remove newlines only at the end of > the substitution. Newlines-only substitions causes dash to remove > newlines before beggining of the substitution. The following code: > > cat <<END > 1 > $(echo "") > 2 > END > > prints "1<newline>2" instead of expected "1<newline><newline>2". > > This patch fixes trailing newlines processing in backquote expanding. > > Signed-off-by: Nikolai Merinov <n.merinov@inango-systems.com> > --- > src/expand.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Patch applied. Thanks.
diff --git a/src/expand.c b/src/expand.c index af9cac9..1b1f95e 100644 --- a/src/expand.c +++ b/src/expand.c @@ -525,7 +525,7 @@ read: /* Eat all trailing newlines */ dest = expdest; - for (; dest > (char *)stackblock() && dest[-1] == '\n';) + for (; dest > ((char *)stackblock() + startloc) && dest[-1] == '\n';) STUNPUTC(dest); expdest = dest;
According to POSIX.1-2008 we should remove newlines only at the end of the substitution. Newlines-only substitions causes dash to remove newlines before beggining of the substitution. The following code: cat <<END 1 $(echo "") 2 END prints "1<newline>2" instead of expected "1<newline><newline>2". This patch fixes trailing newlines processing in backquote expanding. Signed-off-by: Nikolai Merinov <n.merinov@inango-systems.com> --- src/expand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)