> It appears that only gawk saves $3 from the last input line for use in > the END clause, where darwin awk (maybe others too, I haven't looked > elsewhere) discards it. On Solaris 8, /usr/bin/awk and /usr/bin/nawk leave $3 empty, while /usr/xpg4/bin/awk leaves it populated. POSIX states that inside END, $NF must retain at the value it had for the last record read (which would imply that $3 should do likewise), but I saw nothing that actually required $3 remain populated. At any rate, it is a definite portability pitfall, so how about the following patch? 2007-09-12 Eric Blake <ebb9@xxxxxxx> Document another awk pitfall. * doc/autoconf.texi (Limitations of Usual Tools) <awk>: Document limitation of field variables in END. Reported by Gary V. Vaughan. Index: doc/autoconf.texi =================================================================== RCS file: /sources/autoconf/autoconf/doc/autoconf.texi,v retrieving revision 1.1174 diff -u -p -r1.1174 autoconf.texi --- doc/autoconf.texi 13 Sep 2007 03:21:18 -0000 1.1174 +++ doc/autoconf.texi 13 Sep 2007 03:51:47 -0000 @@ -13361,6 +13361,23 @@ input in this case. Portable scripts ca awk 'BEGIN @{print "hello world"@}' </dev/null @end example +Posix says that in an @samp{END} action, @samp{$NF} (and presumably, +@samp{$1}) retain their value from the last record read, if no +intervening @samp{getline} occurred. However, some implementations +(such as Solaris 10 @samp{/usr/bin/awk}, @samp{nawk}, or Darwin +@samp{awk}) reset these variables. A workaround is to use an +intermediate variable prior to the @samp{END} block. For example: + +@example +$ @kbd{cat end.awk} +@{ tmp = $1 @} +END @{ print "a", $1, $NF, "b", tmp @} +$ @kbd{echo 1 | awk -f end.awk} +a b 1 +$ @kbd{echo 1 | gawk -f end.awk} +a 1 1 b 1 +@end example + If you want your program to be deterministic, don't depend on @code{for} on arrays: -- View this message in context: http://www.nabble.com/Re%3A-FYI%3A-fix-bootstrap-translation-download-on-darwin-tf4432919.html#a12648290 Sent from the Gnu - Autoconf - General mailing list archive at Nabble.com. _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf