This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Awk print statement alters the argument variable's content
- From: Brian Inglis <Brian dot Inglis at SystematicSw dot ab dot ca>
- To: cygwin at cygwin dot com
- Date: Fri, 13 Jan 2017 01:31:35 -0700
- Subject: Re: Awk print statement alters the argument variable's content
- Authentication-results: sourceware.org; auth=none
- References: <2241d4bbc7904b6aaf52d33fa820eab2@SESOEX0018.global.scd.scania.com>
- Reply-to: Brian dot Inglis at SystematicSw dot ab dot ca
On 2017-01-12 05:26, Lundberg Christer wrote:
> This program run with GNU awk 4.1.4 (currently installed with
> Cygwin):
>
> awk '
> BEGIN { OFMT="%.8g"
> buf = 1+0.1
> buf = buf "a"
> print "Length before print:", length(buf)
> print buf " "
> print buf
> print buf " "
> print "Length after print:", length(buf)
> }
> '
>
> produces the following output on our system:
>
> Length before print: 4
> 1.1a
> 1.1
> 1.1
> Length after print: 3
>
> so it appears that the "print buf" statement unexpectedly alters the
> content of buf.
> With awk 4.1.3, we got the expected output
>
> Length before print: 4
> 1.1a
> 1.1a
> 1.1a
> Length after print: 4
Confirmed problem with any OFMT except default or %.6g, also goes
away if you change awk line 3 to: buf = "" buf "a":
$ uname -srvmo
CYGWIN_NT-10.0 2.6.1(0.305/5/3) 2016-12-16 11:55 x86_64 Cygwin
$ awk --version
GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.1)
Copyright (C) 1989, 1991-2016 Free Software Foundation.
--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple