Greetings. Re this:
Date: Sun, 01 Apr 2012 11:49:33 +0100
From: Duncan Moore <address@hidden>
To: "address@hidden" <address@hidden>
Subject: [bug-gawk] getline difference from gawk versions >=4.0.0
Hi
b.awk:
BEGIN {
system("echo 1 > f")
while ((getline a[++c] < "f") > 0) {}
print c
}
gawk -f b.awk
Prior to gawk 4.0.0 this outputs:
1
For 4.0.0 and 4.0.1 it outputs:
2
Regards
Duncan Moore
This is an interesting test case. I get different answers with different
versions of awk. Brian Kernighan's awk prints 1, mawk prints 2.
It is clearly an artifact of the implementation, although I think that
in this case 2 is the correct answer; the expression creating the "lvalue"
to be assigned for getline should be completely evaluated before getline
is invoked, making getline act more like a function call.
It is probably worth documenting this as Yet Another Dark Corner in
the language.
Thanks!
Arnold