[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gawk] [PATCH] gawk: Comply with IEEE Std 1003.1
From: |
arnold |
Subject: |
Re: [bug-gawk] [PATCH] gawk: Comply with IEEE Std 1003.1 |
Date: |
Wed, 15 Aug 2018 11:54:20 -0600 |
User-agent: |
Heirloom mailx 12.4 7/29/08 |
Thanks for the note.
Arnold
Samy Mahmoudi <address@hidden> wrote:
> Hi Arnold,
>
> After some tests I could confirm gawk --posix either issues an error or
> runs as expected. I forgot to let you know.
>
> Best regards,
> Samy Mahmoudi
>
> Le mar. 31 juil. 2018 ?? 15:17, <address@hidden> a ??crit :
>
> > Hi.
> >
> > > $ nawk -v x='abc\
> > > > def' 'BEGIN { print x }'
> > > abc
> > > def
> > > ----> Does this mean nawk does not fully comply with the standard ?
> >
> > Yes. nawk was written before the standard was. It's behavior is
> > different from gawk's. I don't intend to change gawk's though.
> >
> > > What I have not noticed before submitting the patch, is that both nawk
> > > and gawk behaved differently depending on quoting type.
> >
> > This is an issue with the shell, not nawk/gawk. The shell removes the
> > \-newline combination inside double quotes (along with much other
> > processing). nawk/gawk never see the backslash or the newline.
> >
> > Characters inside single quotes are left TOTALLY ALONE so nawk/gawk sees
> > the backslash and the newline.
> >
> > > $ gawk (--posix|--traditional|<nothing>) -v x='abc\
> > > > def' 'BEGIN {print x}'
> > > abc\def
> >
> > I changed gawk to remove the \ in this case. That was a (small) bug.
> >
> > > $ gawk (--posix|--traditional|<nothing>) -v x="abc\
> > > >
> > > > def" 'BEGIN {print x}'
> > > abc
> > > def
> >
> > The first newline is ignored since the shell removes it. The second
> > one is literally there, since it's inside a quoted string. Gawk
> > takes it as-is. After my changes, with --posix only, gawk will
> > issue an error.
> >
> > Hope this helps,
> >
> > Arnold
> >