From: Paul Eggert Date: Tue, 21 Nov 2006 20:54:35 +0000 (+0000) Subject: * doc/autoconf.texi: Mention that if (i in a) doesn't work with traditional Awk. X-Git-Tag: AUTOCONF-2.61a~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d352fa108d38c069f384e0a89e213792743eb35a;p=thirdparty%2Fautoconf.git * doc/autoconf.texi: Mention that if (i in a) doesn't work with traditional Awk. --- diff --git a/ChangeLog b/ChangeLog index 737d523f..1ef52996 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ that traditional Awk lacks 3-arg "split". It has it. Mention that FS must be a single character, and a few other 99-byte limits of traditional Awk. + Mention that if (i in a) doesn't work with traditional Awk. 2006-11-18 Paul Eggert diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 06651d30..f95d6204 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -13046,23 +13046,26 @@ Traditional Awk supports only the predefined functions @code{exp}, Traditional Awk @code{getline} is not at all compatible with Posix; avoid it. -In traditional Awk, @code{FS} must be a string containing just one -ordinary character, and similarly for the field-separator argument to -@code{split}. +Traditional Awk has @code{for (i in a) @dots{}} but no other uses of the +@code{in} keyword. For example, it lacks @code{if (i in a) @dots{}}. + +In code portable to both traditional and modern Awk, @code{FS} must be a +string containing just one ordinary character, and similarly for the +field-separator argument to @code{split}. Traditional Awk has a limit of 99 fields in a record. You may be able to circumvent this problem by using @code{split}. +Traditional Awk has a limit of at most 99 bytes in a number formatted by +@code{OFMT}; for example, @code{OFMT="%.300e"; print 0.1;} typically +dumps core. + The original version of Awk had a limit of at most 99 bytes per @code{split} field, 99 bytes per @code{substr} substring, and 99 bytes per run of non-special characters in a @code{printf} format, but these bugs have been fixed on all practical hosts that we know of. -Traditional Awk has a limit of at most 99 bytes in a number formatted by -@code{OFMT}; for example, @code{OFMT="%.300e"; print 0.1;} will dump -core. - @item @command{basename} @c --------------------- @prindex @command{basename}