gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, feature/better-index, updated. gawk-4.1.


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/better-index, updated. gawk-4.1.0-3719-g8ded83c
Date: Sun, 14 Apr 2019 12:17:11 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, feature/better-index has been updated
       via  8ded83c76cba4b10377d0f2a70b24d21f18097fd (commit)
      from  c0668e4b76ea872479dd8506037b08054555e97f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=8ded83c76cba4b10377d0f2a70b24d21f18097fd

commit 8ded83c76cba4b10377d0f2a70b24d21f18097fd
Author: Arnold D. Robbins <address@hidden>
Date:   Sun Apr 14 19:16:58 2019 +0300

    More indexing fixes.

diff --git a/doc/gawk.texi b/doc/gawk.texi
index cf6af39..8011238 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -1323,6 +1323,7 @@ rest of the file alone.  Such jobs are often easy with 
@command{awk}.
 The @command{awk} utility interprets a special-purpose programming
 language that makes it easy to handle simple data-reformatting jobs.
 
address@hidden @command{gawk}
 The GNU implementation of @command{awk} is called @command{gawk}; if you
 invoke it with the proper options or environment variables,
 it is fully compatible with
@@ -2506,7 +2507,7 @@ which usually means whatever you type on the keyboard.  
This continues
 until you indicate end-of-file by typing @kbd{Ctrl-d}.
 (On non-POSIX operating systems, the end-of-file character may be different.)
 
address@hidden files, input @seeentry{input files}
address@hidden files @subentry input @seeentry{input files}
 @cindex input files @subentry running @command{awk} without
 @cindex @command{awk} programs @subentry running @subentry without input files
 As an example, the following program prints a friendly piece of advice
@@ -2686,7 +2687,7 @@ of some sort from @command{awk}.
 
 @cindex @code{ARGC}/@code{ARGV} variables @subentry portability and
 @cindex portability @subentry @code{ARGV} variable
address@hidden dark corner @subentry @code{ARGV} variable @subentry value of
address@hidden dark corner @subentry @code{ARGV} variable, value of
 Finally, the value of @code{ARGV[0]}
 (@pxref{Built-in Variables})
 varies depending upon your operating system.
@@ -2737,7 +2738,7 @@ of some sort from @command{awk}.
 
 @cindex @code{ARGC}/@code{ARGV} variables @subentry portability and
 @cindex portability @subentry @code{ARGV} variable
address@hidden dark corner @subentry @code{ARGV} variable @subentry value of
address@hidden dark corner @subentry @code{ARGV} variable, value of
 Finally, the value of @code{ARGV[0]}
 (@pxref{Built-in Variables})
 varies depending upon your operating system.
@@ -3577,7 +3578,7 @@ is no other option.
 
 @cindex backslash (@code{\}) @subentry continuing lines and @subentry comments 
and
 @cindex @code{\} (backslash) @subentry continuing lines and @subentry comments 
and
address@hidden commenting, backslash continuation and
address@hidden commenting @subentry backslash continuation and
 Another thing to keep in mind is that backslash continuation and
 comments do not mix. As soon as @command{awk} sees the @samp{#} that
 starts a comment, it ignores @emph{everything} on the rest of the
@@ -3930,7 +3931,7 @@ Also see
 @itemx @option{--copyright}
 @cindex @option{-C} option
 @cindex @option{--copyright} option
address@hidden GPL (General Public License), printing
address@hidden GPL (General Public License) @subentry printing
 Print the short version of the General Public License and then exit.
 
 @item @address@hidden
@@ -3960,7 +3961,7 @@ names like @code{i}, @code{j}, etc.)
 @itemx @address@hidden@var{file}]
 @cindex @option{-D} option
 @cindex @option{--debug} option
address@hidden @command{awk} debugging, enabling
address@hidden @command{awk} programs @subentry debugging, enabling
 Enable debugging of @command{awk} programs
 (@pxref{Debugging}).
 By default, the debugger reads commands interactively from the keyboard
@@ -4058,7 +4059,7 @@ for information about this option.
 @itemx @option{--help}
 @cindex @option{-h} option
 @cindex @option{--help} option
address@hidden GNU long options, printing list of
address@hidden GNU long options @subentry printing list of
 @cindex options @subentry printing list of
 @cindex printing @subentry list of options
 Print a ``usage'' message summarizing the short- and long-style options
@@ -4292,7 +4293,7 @@ Warn about constructs that are not available in the 
original version of
 @itemx @option{--version}
 @cindex @option{-V} option
 @cindex @option{--version} option
address@hidden @command{gawk} @subentry versions of @subentry information 
about, printing
address@hidden @command{gawk} @subentry versions of, printing information about
 Print version information for this particular copy of @command{gawk}.
 This allows you to determine if your copy of @command{gawk} is up to date
 with respect to whatever the Free Software Foundation is currently
@@ -4301,6 +4302,7 @@ It is also useful for bug reports
 (@pxref{Bugs}).
 
 @cindex @code{-} (hyphen) @subentry @code{--} end of options marker
address@hidden hyphen (@code{-}) @subentry @code{--} end of options marker
 @item @code{--}
 Mark the end of all options.
 Any command-line arguments following @code{--} are placed in @code{ARGV},
@@ -4502,7 +4504,7 @@ this @value{FN} itself.)
 
 @node Environment Variables
 @section The Environment Variables @command{gawk} Uses
address@hidden environment variables used by @command{gawk}
address@hidden environment variables @subentry used by @command{gawk}
 
 A number of environment variables influence how @command{gawk}
 behaves.
@@ -4518,7 +4520,7 @@ behaves.
 @node AWKPATH Variable
 @subsection The @env{AWKPATH} Environment Variable
 @cindex @env{AWKPATH} environment variable
address@hidden directories @subentry searching for source files
address@hidden directories @subentry searching @subentry for source files
 @cindex search paths @subentry for source files
 @cindex differences in @command{awk} and @command{gawk} @subentry 
@env{AWKPATH} environment variable
 @ifinfo
@@ -4604,7 +4606,7 @@ found, and @command{gawk} no longer needs to use 
@env{AWKPATH}.
 @node AWKLIBPATH Variable
 @subsection The @env{AWKLIBPATH} Environment Variable
 @cindex @env{AWKLIBPATH} environment variable
address@hidden directories @subentry searching for loadable extensions
address@hidden directories @subentry searching @subentry for loadable extensions
 @cindex search paths @subentry for loadable extensions
 @cindex differences in @command{awk} and @command{gawk} @subentry 
@code{AWKLIBPATH} environment variable
 
@@ -4761,6 +4763,7 @@ to @code{EXIT_FAILURE}.
 This @value{SECTION} describes a feature that is specific to @command{gawk}.
 
 @cindex @code{@@} (at-sign) @subentry @code{@@include} directive
address@hidden at-sign (@code{@@}) @subentry @code{@@include} directive
 @cindex file inclusion, @code{@@include} directive
 @cindex including files, @code{@@include} directive
 The @code{@@include} keyword can be used to read external @command{awk} source
@@ -4889,8 +4892,9 @@ at their beginning.  @xref{Changing The Namespace}, for 
more information.
 This @value{SECTION} describes a feature that is specific to @command{gawk}.
 
 @cindex @code{@@} (at-sign) @subentry @code{@@load} directive
address@hidden at-sign (@code{@@}) @subentry @code{@@load} directive
 @cindex loading extensions, @code{@@load} directive
address@hidden extensions @subentry loading @subentry @code{@@load} directive
address@hidden extensions @subentry loadable @subentry loading, @code{@@load} 
directive
 The @code{@@load} keyword can be used to read external @command{awk} extensions
 (stored as system shared libraries).
 This allows you to link in compiled code that may offer superior
@@ -5168,7 +5172,7 @@ $ @kbd{awk '/li/ @{ print $2 @}' mail-list}
 @c @cindex operators, @code{!~}
 @cindex @code{if} statement @subentry use of regexps in
 @cindex @code{while} statement, use of regexps in
address@hidden @address@hidden statement, use of regexps in
address@hidden @address@hidden statement @subentry use of regexps in
 @c @cindex statements, @code{if}
 @c @cindex statements, @code{while}
 @c @cindex statements, @code{do}
@@ -5226,7 +5230,7 @@ $ @kbd{awk '$1 !~ /J/' inventory-shipped}
 @end example
 
 @cindex regexp constants
address@hidden constant regexps
address@hidden constants @subentry regexp
 @cindex regular expressions, constants @seeentry{regexp constants}
 When a regexp is enclosed in slashes, such as @code{/foo/}, we call it
 a @dfn{regexp constant}, much like @code{5.27} is a numeric constant and
@@ -5235,7 +5239,7 @@ a @dfn{regexp constant}, much like @code{5.27} is a 
numeric constant and
 @node Escape Sequences
 @section Escape Sequences
 
address@hidden escape sequences @subentry in strings
address@hidden escape sequences
 @cindex backslash (@code{\}) @subentry in escape sequences
 @cindex @code{\} (backslash) @subentry in escape sequences
 Some characters cannot be included literally in string constants
@@ -5321,7 +5325,7 @@ between @samp{0} and @samp{7}.  For example, the code for 
the ASCII ESC
 @cindex @code{\} (backslash) @subentry @code{\x} escape sequence
 @cindex backslash (@code{\}) @subentry @code{\x} escape sequence
 @cindex common extensions @subentry @code{\x} escape sequence
address@hidden extensions @subentry common, @code{\x} escape sequence
address@hidden extensions @subentry common @subentry @code{\x} escape sequence
 @item address@hidden@dots{}
 The hexadecimal value @var{hh}, where @var{hh} stands for a sequence
 of hexadecimal digits (@address@hidden, and either @address@hidden
@@ -5634,7 +5638,7 @@ may not be able to match the @sc{nul} character.
 @cindex @code{[]} (square brackets), regexp operator
 @cindex square brackets (@code{[]}), regexp operator
 @cindex bracket expressions
address@hidden character sets @seealso{bracket expressions}
address@hidden character sets (in regular expressions) @seeentry{bracket 
expressions}
 @cindex character lists @seeentry{bracket expressions}
 @cindex character classes @seeentry{bracket expressions}
 @item @address@hidden@code{]}
@@ -5713,6 +5717,8 @@ This symbol is similar to @samp{*}, except that the 
preceding expression can be
 matched either once or not at all.  For example, @samp{fe?d}
 matches @samp{fed} and @samp{fd}, but nothing else.
 
address@hidden @address@hidden@}} (braces) @subentry regexp operator
address@hidden braces (@address@hidden@}}) @subentry regexp operator
 @cindex interval expressions, regexp operator
 @item @address@hidden@address@hidden@}}
 @itemx @address@hidden@address@hidden,@}}
@@ -6303,7 +6309,7 @@ method of using @samp{\y} for the GNU @samp{\b} appears 
to be the
 lesser of two evils.
 
 @cindex regular expressions @subentry @command{gawk} @subentry command-line 
options
address@hidden @command{gawk} @subentry command-line options @subentry and 
regular expressions
address@hidden @command{gawk} @subentry command-line options, regular 
expressions and
 The various command-line options
 (@pxref{Options})
 control how @command{gawk} interprets characters in regexps:
@@ -6712,7 +6718,7 @@ Reaching the end of an input file terminates the current 
input record,
 even if the last character in the file is not the character in @code{RS}.
 @value{DARKCORNER}
 
address@hidden empty strings
address@hidden empty strings @seeentry{null strings}
 @cindex null strings
 @cindex strings, empty @seeentry{null strings}
 The empty string @code{""} (a string without any characters)
@@ -6743,7 +6749,7 @@ sets the variable @code{RT} to the text in the input that 
matched
 @subsection Record Splitting with @command{gawk}
 
 @cindex common extensions @subentry @code{RS} as a regexp
address@hidden extensions @subentry common, @code{RS} as a regexp
address@hidden extensions @subentry common @subentry @code{RS} as a regexp
 When using @command{gawk}, the value of @code{RS} is not limited to a
 one-character string.  If it contains more than one character, it is
 treated as a regular expression
@@ -6846,7 +6852,7 @@ GNU/Linux systems, where the @sc{nul} character is in 
fact the record separator.
 However, this usage is @emph{not} portable
 to most other @command{awk} implementations.
 
address@hidden dark corner @subentry strings @subentry storing
address@hidden dark corner @subentry strings, storing
 Almost all other @command{awk} address@hidden least that we know
 about.} store strings internally as C-style strings.  C strings use the
 @sc{nul} character as the string terminator.  In effect, this means that
@@ -6898,7 +6904,7 @@ GNU/Linux systems, where the @sc{nul} character is in 
fact the record separator.
 However, this usage is @emph{not} portable
 to most other @command{awk} implementations.
 
address@hidden dark corner @subentry strings @subentry storing
address@hidden dark corner @subentry strings, storing
 Almost all other @command{awk} address@hidden least that we know
 about.} store strings internally as C-style strings.  C strings use the
 @sc{nul} character as the string terminator.  In effect, this means that
@@ -7194,7 +7200,7 @@ The intervening field, @code{$5}, is created with an 
empty value
 (indicated by the second pair of adjacent colons),
 and @code{NF} is updated with the value six.
 
address@hidden dark corner @subentry @code{NF} variable @subentry decrementing
address@hidden dark corner @subentry @code{NF} variable, decrementing
 @cindex @code{NF} variable, decrementing
 Decrementing @code{NF} throws away the values of the fields
 after the new value of @code{NF} and recomputes @code{$0}.
@@ -7459,7 +7465,6 @@ $ @kbd{echo ' a  b  c  d ' | awk 'BEGIN @{ FS = "[ 
\t\n]+" @}}
 @noindent
 @cindex null strings
 @cindex strings @subentry null
address@hidden empty strings @seeentry{null strings}
 In this case, the first field is null, or empty.
 
 The stripping of leading and trailing whitespace also comes into
@@ -7480,9 +7485,9 @@ Because the leading whitespace was ignored when finding 
@code{$1},
 it is not part of the new @code{$0}.  Finally, the last @code{print}
 statement prints the new @code{$0}.
 
address@hidden @code{FS} @subentry containing @code{^}
address@hidden @code{FS} variable @subentry containing @code{^}
 @cindex @code{^} (caret) @subentry in @code{FS}
address@hidden dark corner @subentry @code{^} @subentry in @code{FS}
address@hidden dark corner @subentry @code{^}, in @code{FS}
 There is an additional subtlety to be aware of when using regular expressions
 for field splitting.
 It is not well specified in the POSIX standard, or anywhere else, what @samp{^}
@@ -7511,7 +7516,7 @@ $ @kbd{echo 'xxAA  xxBxx  C' |}
 @subsection Making Each Character a Separate Field
 
 @cindex common extensions @subentry single character fields
address@hidden extensions @subentry common, single character fields
address@hidden extensions @subentry common @subentry single character fields
 @cindex differences in @command{awk} and @command{gawk} @subentry 
single-character fields
 @cindex single-character fields
 @cindex fields @subentry single-character
@@ -8288,7 +8293,7 @@ In the second case, this special processing is not done.
 @value{DARKCORNER}
 
 @cindex field separator @subentry in multiline records
address@hidden @code{FS} @subentry in multiline records
address@hidden @code{FS} variable @subentry in multiline records
 Now that the input is separated into records, the second step is to
 separate the fields in the records.  One way to do this is to divide each
 of the lines into fields in the normal manner.  This happens by default
@@ -8563,7 +8568,7 @@ rule in the program.  @xref{Next Statement}.
 
 @node Getline/Variable
 @subsection Using @code{getline} into a Variable
address@hidden @code{getline} into a variable
address@hidden @code{getline} command @subentry into a variable
 @cindex variables @subentry @code{getline} command into, using
 
 You can use @samp{getline @var{var}} to read the next record from
@@ -8617,7 +8622,7 @@ the value of @code{NF} do not change.
 @node Getline/File
 @subsection Using @code{getline} from a File
 
address@hidden @code{getline} from a file
address@hidden @code{getline} command @subentry from a file
 @cindex input redirection
 @cindex redirection of input
 @cindex @code{<} (left angle bracket) @subentry @code{<} operator (I/O)
@@ -8927,7 +8932,7 @@ You can open as many pipelines (and coprocesses) as the 
underlying operating
 system permits.
 
 @cindex side effects @subentry @code{FILENAME} variable
address@hidden @code{FILENAME} variable, @address@hidden setting with
address@hidden @code{FILENAME} variable @subentry @code{getline}, setting with
 @cindex dark corner @subentry @code{FILENAME} variable
 @cindex @code{getline} command @subentry @code{FILENAME} variable and
 @cindex @code{BEGIN} pattern @subentry @code{getline} and
@@ -9506,7 +9511,7 @@ makes a separate line.
 @cindex output @subentry records
 @cindex output record separator @address@hidden variable}
 @cindex @code{ORS} variable
address@hidden @code{BEGIN} pattern @subentry @code{OFS}/@code{ORS} variables 
@subentry assigning values to
address@hidden @code{BEGIN} pattern @subentry @code{OFS}/@code{ORS} variables, 
assigning values to
 In order to change how output fields and records are separated, assign
 new values to the variables @code{OFS} and @code{ORS}.  The usual
 place to do this is in the @code{BEGIN} rule
@@ -9597,7 +9602,7 @@ if @code{OFMT} contains anything but a floating-point 
conversion specification.
 
 @cindex @code{printf} statement
 @cindex output @subentry formatted
address@hidden formatting output
address@hidden formatting @subentry output
 For more precise control over the output format than what is
 provided by @code{print}, use @code{printf}.
 With @code{printf} you can
@@ -10392,7 +10397,7 @@ command lines to be fed to the shell.
 @cindex error output
 @cindex standard error
 @cindex file descriptors
address@hidden files, descriptors @seeentry{file descriptors}
address@hidden files @subentry descriptors @seeentry{file descriptors}
 
 Running programs conventionally have three input and output streams
 already available to them for reading and writing.  These are known
@@ -10453,9 +10458,9 @@ has been ported to, not just those that are 
POSIX-compliant:
 @cindex common extensions @subentry @code{/dev/stdin} special file
 @cindex common extensions @subentry @code{/dev/stdout} special file
 @cindex common extensions @subentry @code{/dev/stderr} special file
address@hidden extensions @subentry common, @code{/dev/stdin} special file
address@hidden extensions @subentry common, @code{/dev/stdout} special file
address@hidden extensions @subentry common, @code{/dev/stderr} special file
address@hidden extensions @subentry common @subentry @code{/dev/stdin} special 
file
address@hidden extensions @subentry common @subentry @code{/dev/stdout} special 
file
address@hidden extensions @subentry common @subentry @code{/dev/stderr} special 
file
 @cindex file names @subentry standard streams in @command{gawk}
 @cindex @code{/dev/@dots{}} special files
 @cindex files @subentry @code{/dev/@dots{}} special files
@@ -10584,7 +10589,7 @@ Doing so results in unpredictable behavior.
 
 @node Close Files And Pipes
 @section Closing Input and Output Redirections
address@hidden files, output @seeentry{output files}
address@hidden files @subentry output @seeentry{output files}
 @cindex input files @subentry closing
 @cindex output @subentry files, closing
 @cindex pipe @subentry closing
@@ -11102,6 +11107,7 @@ have the same value:
 @end example
 
 @cindex string constants
address@hidden constants @subentry string
 A @dfn{string constant} consists of a sequence of characters enclosed in
 double quotation marks.  For example:
 
@@ -11935,7 +11941,7 @@ in order from the highest precedence to the lowest:
 
 @table @code
 @cindex common extensions @subentry @code{**} operator
address@hidden extensions @subentry common, @code{**} operator
address@hidden extensions @subentry common @subentry @code{**} operator
 @cindex POSIX @command{awk} @subentry arithmetic operators and
 @item @var{x} ^ @var{y}
 @itemx @var{x} ** @var{y}
@@ -12359,8 +12365,8 @@ to a number.
 @item @var{lvalue} @code{/=} @var{divisor} @tab Divide the value of 
@var{lvalue} by @var{divisor}.
 @item @var{lvalue} @code{%=} @var{modulus} @tab Set @var{lvalue} to its 
remainder by @var{modulus}.
 @cindex common extensions @subentry @code{**=} operator
address@hidden extensions @subentry common, @code{**=} operator
address@hidden @command{awk} language, POSIX version
address@hidden extensions @subentry common @subentry @code{**=} operator
address@hidden @command{awk} @subentry language, POSIX version
 @cindex POSIX @command{awk}
 @item @var{lvalue} @code{^=} @var{power} @tab Raise @var{lvalue} to the power 
@var{power}.
 @item @var{lvalue} @code{**=} @var{power} @tab Raise @var{lvalue} to the power 
@var{power}. @value{COMMONEXT}
@@ -14010,7 +14016,7 @@ pattern.  The expression @code{/li/} has the value one 
if @samp{li}
 appears in the current input record. Thus, as a pattern, @code{/li/}
 matches any record containing @samp{li}.
 
address@hidden Boolean expressions, as patterns
address@hidden Boolean expressions @subentry as patterns
 @cindex patterns @subentry Boolean expressions as
 Boolean expressions are also commonly used as patterns.
 Whether the pattern
@@ -14155,7 +14161,7 @@ $ @kbd{echo Yes | gawk '(/1/,/2/) || /Yes/'}
 @end example
 
 @cindex range patterns, line continuation and
address@hidden dark corner @subentry range patterns @subentry line continuation 
and
address@hidden dark corner @subentry range patterns, line continuation and
 As a minor point of interest, although it is poor style,
 POSIX allows you to put a newline after the comma in
 a range pattern.  @value{DARKCORNER}
@@ -14376,7 +14382,7 @@ either a @code{BEGINFILE} or an @code{ENDFILE} rule.  
The @code{nextfile}
 statement is allowed only inside a
 @code{BEGINFILE} rule, not inside an @code{ENDFILE} rule.
 
address@hidden @code{getline} statement @subentry 
@code{BEGINFILE}/@code{ENDFILE} patterns and
address@hidden @code{getline} command @subentry @code{BEGINFILE}/@code{ENDFILE} 
patterns and
 The @code{getline} statement (@pxref{Getline}) is restricted inside
 both @code{BEGINFILE} and @code{ENDFILE}: only redirected
 forms of @code{getline} are allowed.
@@ -15151,8 +15157,8 @@ then the code in any @code{END} rules is executed.
 The @code{next} statement is not allowed inside @code{BEGINFILE} and
 @code{ENDFILE} rules. @xref{BEGINFILE/ENDFILE}.
 
address@hidden @cindex @command{awk} language, POSIX version
 @c @cindex @code{next}, inside a user-defined function
address@hidden @command{awk} @subentry language, POSIX version
 @cindex @code{BEGIN} pattern @subentry @code{next}/@code{nextfile} statements 
and
 @cindex @code{END} pattern @subentry @code{next}/@code{nextfile} statements and
 @cindex POSIX @command{awk} @subentry @code{next}/@code{nextfile} statements 
and
@@ -15644,7 +15650,7 @@ program, @command{gawk} automatically sets it to a new 
value when it
 opens the next file.
 
 @cindex @code{ENVIRON} array
address@hidden environment variables, in @code{ENVIRON} array
address@hidden environment variables @subentry in @code{ENVIRON} array
 @item @code{ENVIRON}
 An associative array containing the values of the environment.  The array
 indices are the environment variable names; the elements are the values of
@@ -15683,7 +15689,7 @@ On such systems, the @code{ENVIRON} array is empty 
(except for
 @cindex @command{gawk} @subentry @code{ERRNO} variable in
 @cindex @code{ERRNO} variable
 @cindex differences in @command{awk} and @command{gawk} @subentry @code{ERRNO} 
variable
address@hidden error handling, @code{ERRNO} variable and
address@hidden error handling @subentry @code{ERRNO} variable and
 @item @code{ERRNO #}
 If a system error occurs during a redirection for @code{getline}, during
 a read for @code{getline}, or during a @code{close()} operation, then
@@ -16092,8 +16098,8 @@ is available as an element within the @code{SYMTAB} 
array.
 <sidebar><title>Changing @code{NR} and @code{FNR}</title>
 @end docbook
 
address@hidden @code{NR} variable, changing
address@hidden @code{FNR} variable, changing
address@hidden @code{NR} variable @subentry changing
address@hidden @code{FNR} variable @subentry changing
 @cindex dark corner @subentry @code{FNR}/@code{NR} variables
 @command{awk} increments @code{NR} and @code{FNR}
 each time it reads a record, instead of setting them to the absolute
@@ -16132,8 +16138,8 @@ changed.
 @center @b{Changing @code{NR} and @code{FNR}}
 
 
address@hidden @code{NR} variable, changing
address@hidden @code{FNR} variable, changing
address@hidden @code{NR} variable @subentry changing
address@hidden @code{FNR} variable @subentry changing
 @cindex dark corner @subentry @code{FNR}/@code{NR} variables
 @command{awk} increments @code{NR} and @code{FNR}
 each time it reads a record, instead of setting them to the absolute
@@ -16710,7 +16716,7 @@ is independent of the number of elements in the array.
 @subsection Referring to an Array Element
 @cindex arrays @subentry referencing elements
 @cindex array members
address@hidden elements of arrays
address@hidden elements in arrays
 
 The principal way to use an array is to refer to one of its elements.
 An @dfn{array reference} is an expression as follows:
@@ -16921,7 +16927,7 @@ This loop executes @var{body} once for each index in 
@var{array} that the
 program has previously used, with the variable @var{var} set to that index.
 
 @cindex arrays @subentry @code{for} statement and
address@hidden @code{for} statement, looping over arrays
address@hidden @code{for} statement @subentry looping over arrays
 The following program uses this form of the @code{for} statement.  The
 first rule scans the input records and notes which words appear (at
 least once) in the input, by storing a one into the array @code{used} with
@@ -17178,7 +17184,7 @@ sorting arrays; see @ref{Array Sorting Functions}.
 @cindex array subscripts @subentry numbers as
 @cindex arrays @subentry numeric subscripts
 @cindex subscripts in arrays @subentry numbers as
address@hidden @code{CONVFMT} variable, array subscripts and
address@hidden @code{CONVFMT} variable @subentry array subscripts and
 An important aspect to remember about arrays is that @emph{array subscripts
 are always strings}.  When a numeric value is used as a subscript,
 it is converted to a string value before being used for subscripting
@@ -17357,11 +17363,11 @@ However, if @option{--lint} is provided on the 
command line
 is not in the array is deleted.
 
 @cindex common extensions @subentry @code{delete} to delete entire arrays
address@hidden extensions @subentry common, @code{delete} to delete entire 
arrays
address@hidden extensions @subentry common @subentry @code{delete} to delete 
entire arrays
 @cindex arrays @subentry deleting entire contents
 @cindex deleting entire arrays
 @cindex @code{delete} @var{array}
address@hidden differences in @command{awk} and @command{gawk} @subentry array 
elements @subentry deleting
address@hidden differences in @command{awk} and @command{gawk} @subentry array 
elements, deleting
 All the elements of an array may be deleted with a single statement
 by leaving off the subscript in the @code{delete} statement,
 as follows:
@@ -17576,7 +17582,7 @@ separate indices is recovered.
 
 @node Arrays of Arrays
 @section Arrays of Arrays
address@hidden arrays of arrays
address@hidden arrays @subentry arrays of arrays
 
 @command{gawk} goes beyond standard @command{awk}'s multidimensional
 array access and provides true arrays of
@@ -17862,7 +17868,7 @@ convention that always works---no whitespace after a 
function name.
 
 @cindex troubleshooting @subentry @command{gawk} @subentry fatal errors, 
function arguments
 @cindex @command{gawk} @subentry function arguments and
address@hidden differences in @command{awk} and @command{gawk} @subentry 
function arguments (@command{gawk})
address@hidden differences in @command{awk} and @command{gawk} @subentry 
function arguments
 Each built-in function accepts a certain number of arguments.
 In some cases, arguments can be omitted. The defaults for omitted
 arguments vary from function to function and are described under the
@@ -17881,7 +17887,7 @@ j = sqrt(i++)
 
 @cindex evaluation order @subentry functions
 @cindex functions @subentry built-in @subentry evaluation order
address@hidden built-in functions, evaluation order
address@hidden built-in functions @subentry evaluation order
 @noindent
 the variable @code{i} is incremented to the value five before @code{sqrt()}
 is called with a value of four for its actual parameter.
@@ -18315,7 +18321,7 @@ and 525 is then converted to the string @code{"525"}, 
which has
 three characters.
 
 @cindex length of input record
address@hidden input record @subentry length of
address@hidden input record, length of
 If no argument is supplied, @code{length()} returns the length of @code{$0}.
 
 @c @cindex historical features
@@ -18352,10 +18358,10 @@ been specified on the command line, @command{gawk} 
issues a
 warning about this.
 
 @cindex common extensions @subentry @code{length()} applied to an array
address@hidden extensions @subentry common, @code{length()} applied to an array
address@hidden extensions @subentry common @subentry @code{length()} applied to 
an array
 @cindex differences in @command{awk} and @command{gawk} @subentry 
@code{length()} function
 @cindex number of array elements
address@hidden array, number of elements
address@hidden arrays @subentry number of elements
 With @command{gawk} and several other @command{awk} implementations, when 
given an
 array argument, the @code{length()} function returns the number of elements
 in the array. @value{COMMONEXT}
@@ -18601,7 +18607,7 @@ In POSIX mode (@pxref{Options}), the fourth argument is 
not allowed.
 
 @item @code{sprintf(@var{format}, @var{expression1}, @dots{})}
 @cindexawkfunc{sprintf}
address@hidden formatting strings
address@hidden formatting @subentry strings
 Return (without printing) the string that @code{printf} would
 have printed out with the same arguments
 (@pxref{Printf}).
@@ -18615,7 +18621,7 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
 assigns the string @address@hidden = 3.14 (approx.)}} to the variable 
@code{pival}.
 
 @cindexgawkfunc{strtonum}
address@hidden convert string to number
address@hidden converting @subentry string to number
 @item @code{strtonum(@var{str}) #}
 Examine @var{str} and return its numeric value.  If @var{str}
 begins with a leading @samp{0}, @code{strtonum()} assumes that @var{str}
@@ -18801,7 +18807,7 @@ string = substr(string, 1, 2) "CDE" substr(string, 6)
 @cindex strings @subentry converting letter case
 @item @code{tolower(@var{string})}
 @cindexawkfunc{tolower}
address@hidden convert string to lower case
address@hidden converting @subentry string to lower case
 Return a copy of @var{string}, with each uppercase character
 in the string replaced with its corresponding lowercase character.
 Nonalphabetic characters are left unchanged.  For example,
@@ -18809,7 +18815,7 @@ Nonalphabetic characters are left unchanged.  For 
example,
 
 @item @code{toupper(@var{string})}
 @cindexawkfunc{toupper}
address@hidden convert string to upper case
address@hidden converting @subentry string to upper case
 Return a copy of @var{string}, with each lowercase character
 in the string replaced with its corresponding uppercase character.
 Nonalphabetic characters are left unchanged.  For example,
@@ -18875,7 +18881,7 @@ Although this makes a certain amount of sense, it can 
be surprising.
 @cindex escape processing @subentry @code{gsub()}/@code{gensub()}/@code{sub()} 
functions
 @cindex @code{sub()} function @subentry escape processing
 @cindex @code{gsub()} function @subentry escape processing
address@hidden @code{gensub()} function (@command{gawk}), escape processing
address@hidden @code{gensub()} function (@command{gawk}) @subentry escape 
processing
 @cindex @code{\} (backslash) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} functions and
 @cindex backslash (@code{\}) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} functions and
 @cindex @code{&} (ampersand) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} functions and
@@ -19175,7 +19181,7 @@ to do substitutions.
 
 @node I/O Functions
 @subsection Input/Output Functions
address@hidden input/output functions
address@hidden input/output @subentry functions
 
 The following functions relate to input/output (I/O).
 Optional parameters are enclosed in square brackets ([ ]):
@@ -19224,7 +19230,7 @@ This is the purpose of the @code{fflush()} 
address@hidden also
 buffers its output, and the @code{fflush()} function forces
 @command{gawk} to flush its buffers.
 
address@hidden extensions @subentry common, @code{fflush()} function
address@hidden extensions @subentry common @subentry @code{fflush()} function
 @cindex Brian Kernighan's @command{awk}
 Brian Kernighan added @code{fflush()} to his @command{awk} in April
 1992.  For two decades, it was a common extension.  In December
@@ -19612,7 +19618,7 @@ which is sufficient to represent times through
 including negative timestamps that represent times before the
 epoch.
 
address@hidden @command{date} utility, GNU
address@hidden @command{date} utility @subentry GNU
 @cindex time @subentry retrieving
 In order to make it easier to process such log files and to produce
 useful reports, @command{gawk} provides the following functions for
@@ -19810,7 +19816,7 @@ The weekday as a decimal number (1--7).  Monday is day 
one.
 The week number of the year (with the first Sunday as the first day of week 
one)
 as a decimal number (00--53).
 
address@hidden @cindex ISO 8601
address@hidden ISO @subentry ISO 8601 date and time standard
 @item %V
 The week number of the year (with the first Monday as the first
 day of week one) as a decimal number (01--53).
@@ -19911,7 +19917,7 @@ The date in VMS format (e.g., @samp{20-JUN-1991}).
 Additionally, the alternative representations are recognized but their
 normal representations are used.
 
address@hidden @code{date} utility, POSIX
address@hidden @code{date} utility @subentry POSIX
 @cindex POSIX @command{awk} @subentry @code{date} utility and
 The following example is an @command{awk} implementation of the POSIX
 @command{date} utility.  Normally, the @command{date} utility prints the
@@ -20088,7 +20094,7 @@ Operands  | 0 | 1 | 0 | 1 | 0 | 1
 @end docbook
 @end float
 
address@hidden bitwise complement
address@hidden bitwise @subentry complement
 @cindex complement, bitwise
 As you can see, the result of an AND operation is 1 only when @emph{both}
 bits are 1.
@@ -20117,12 +20123,12 @@ Optional parameters are enclosed in square brackets 
([ ]):
 @cindex @command{gawk} @subentry bitwise operations in
 @table @asis
 @cindexgawkfunc{and}
address@hidden bitwise AND
address@hidden bitwise @subentry AND
 @item @code{and(address@hidden@code{,} @var{v2} address@hidden,} 
@address@hidden)}
 Return the bitwise AND of the arguments. There must be at least two.
 
 @cindexgawkfunc{compl}
address@hidden bitwise complement
address@hidden bitwise @subentry complement
 @item @code{compl(@var{val})}
 Return the bitwise complement of @var{val}.
 
@@ -20132,7 +20138,7 @@ Return the bitwise complement of @var{val}.
 Return the value of @var{val}, shifted left by @var{count} bits.
 
 @cindexgawkfunc{or}
address@hidden bitwise OR
address@hidden bitwise @subentry OR
 @item @code{or(address@hidden@code{,} @var{v2} address@hidden,} 
@address@hidden)}
 Return the bitwise OR of the arguments. There must be at least two.
 
@@ -20142,7 +20148,7 @@ Return the bitwise OR of the arguments. There must be 
at least two.
 Return the value of @var{val}, shifted right by @var{count} bits.
 
 @cindexgawkfunc{xor}
address@hidden bitwise XOR
address@hidden bitwise @subentry XOR
 @item @code{xor(address@hidden@code{,} @var{v2} address@hidden,} 
@address@hidden)}
 Return the bitwise XOR of the arguments. There must be at least two.
 @end table
@@ -20664,9 +20670,9 @@ Many of the subsequent examples in this @value{SECTION} 
use
 the @code{return} statement.
 
 @cindex common extensions @subentry @code{func} keyword
address@hidden extensions @subentry common, @code{func} keyword
address@hidden @cindex @command{awk} language, POSIX version
address@hidden extensions @subentry common @subentry @code{func} keyword
 @c @cindex POSIX @command{awk}
address@hidden @command{awk} @subentry language, POSIX version
 @cindex POSIX @command{awk} @subentry @code{function} keyword in
 In many @command{awk} implementations, including @command{gawk},
 the keyword @code{function} may be
@@ -21335,7 +21341,8 @@ function calls, you tell @command{gawk} to use the 
@emph{value} of a
 variable as the @emph{name} of the function to call.
 
 @cindex @code{@@} (at-sign) @subentry @code{@@}-notation for indirect function 
calls
address@hidden indirect function calls, @code{@@}-notation
address@hidden at-sign (@code{@@}) @subentry @code{@@}-notation for indirect 
function calls
address@hidden indirect function calls @subentry @code{@@}-notation
 @cindex function calls @subentry indirect @subentry @code{@@}-notation for
 The syntax is similar to that of a regular function call: an identifier
 immediately followed by an opening parenthesis, any arguments, and then
@@ -21911,7 +21918,7 @@ The leading capital letter indicates that it is global, 
while the fact that
 the variable name is not all capital letters indicates that the variable is
 not one of @command{awk}'s predefined variables, such as @code{FS}.
 
address@hidden @option{--dump-variables} option, using for library functions
address@hidden @option{--dump-variables} option @subentry using for library 
functions
 It is also important that @emph{all} variables in library
 functions that do not need to save state are, in fact, declared
 address@hidden@command{gawk}'s @option{--dump-variables} command-line
@@ -23188,7 +23195,7 @@ are left alone.
 
 @cindex libraries of @command{awk} functions @subentry command-line options
 @cindex functions @subentry library @subentry command-line options
address@hidden command-line options @subentry processing
address@hidden command line @subentry options @subentry processing
 @cindex options @subentry command-line @subentry processing
 @cindex functions @subentry library @subentry C library
 @cindex arguments @subentry processing
@@ -23901,7 +23908,7 @@ uses these functions.
 @cindex libraries of @command{awk} functions @subentry group database 
@subentry reading
 @cindex functions @subentry library @subentry group database, reading
 @cindex group database, reading
address@hidden database, group, reading
address@hidden database @subentry group, reading
 @cindex @code{PROCINFO} array @subentry group membership and
 @cindex @code{getgrent()} function (C library)
 @cindex @code{getgrent()} user-defined function
@@ -24195,7 +24202,7 @@ function getgrgid(gid)
 The @code{getgruser()} function does not have a C counterpart. It takes a
 username and returns the list of groups that have the user as a member:
 
address@hidden @code{getgruser()} function, user-defined
address@hidden @code{getgruser()} user-defined function
 @example
 @c file eg/lib/groupawk.in
 function getgruser(user)
@@ -25875,7 +25882,7 @@ suggestion.
 
 @c FIXME: One day, update to current POSIX version of wc
 
address@hidden counting
address@hidden counting words, lines, and characters
 @cindex input files @subentry counting elements in
 @cindex words @subentry counting
 @cindex characters @subentry counting
@@ -28033,7 +28040,7 @@ things considerably.  What problem does this engender 
though?
 @cindex search paths @subentry for source files
 @cindex source address@hidden search path for
 @cindex files @subentry source, search path for
address@hidden directories @subentry searching
address@hidden directories @subentry searching @subentry for source files
 @item
 As an additional example of the idea that it is not always necessary to
 add new features to a program, consider the idea of having two files in
@@ -28209,7 +28216,7 @@ using this facility could lead to surprising results, 
the default is to leave it
 disabled.  If you want it, you must explicitly request it.
 
 @cindex programming conventions @subentry @code{--non-decimal-data} option
address@hidden @option{--non-decimal-data} option, @code{strtonum()} function 
and
address@hidden @option{--non-decimal-data} option @subentry @code{strtonum()} 
function and
 @cindex @code{strtonum()} function (@command{gawk}), @code{--non-decimal-data} 
option and
 @quotation CAUTION
 @emph{Use of this option is not recommended.}
@@ -28517,7 +28524,8 @@ sorted array traversal is not the default.
 @node Array Sorting Functions
 @subsection Sorting Array Values and Indices with @command{gawk}
 
address@hidden arrays @subentry sorting
address@hidden arrays @subentry sorting @subentry @code{asort()} function 
(@command{gawk})
address@hidden arrays @subentry sorting @subentry @code{asorti()} function 
(@command{gawk})
 @cindexgawkfunc{asort}
 @cindex @code{asort()} function (@command{gawk}) @subentry arrays, sorting
 @cindexgawkfunc{asorti}
@@ -29314,7 +29322,8 @@ which is correct, but possibly unexpected.
 @samp{print}, that distinction is retained.)
 
 @cindex profiling @command{awk} programs, dynamically
address@hidden @command{gawk} program @subentry dynamic profiling
address@hidden @command{gawk} @subentry dynamic profiling
address@hidden @command{gawk} @subentry profiling programs
 @cindex dynamic profiling
 Besides creating profiles when a program has completed,
 @command{gawk} can produce a profile while it is running.
@@ -29479,7 +29488,7 @@ As a result, internationalization and localization
 of programs and software systems became a common practice.
 
 @cindex internationalization @subentry localization
address@hidden @command{gawk}, internationalization and 
@seeentry{internationalization}
address@hidden @command{gawk} @subentry internationalization 
@seeentry{internationalization}
 @cindex internationalization @subentry localization @subentry @command{gawk} 
and
 For many years, the ability to provide internationalization
 was largely restricted to programs written in C and C++.
@@ -29507,7 +29516,7 @@ a requirement.
 
 @cindex internationalization
 @cindex localization @address@hidden localization}
address@hidden localization
address@hidden internationalization @subentry localization
 @dfn{Internationalization} means writing (or modifying) a program once,
 in such a way that it can use multiple languages without requiring
 further source code changes.
@@ -29561,7 +29570,7 @@ by calling the @code{textdomain()} function.
 
 @cindex @code{.pot} files
 @cindex files @subentry @code{.pot}
address@hidden portable object template files
address@hidden portable object @subentry template files
 @cindex files @subentry portable object template
 @item
 Messages from the application are extracted from the source code and
@@ -29644,7 +29653,7 @@ printf("%s", _("Don't Panic!\n"));
 @end example
 
 @cindex internationalization @subentry localization @subentry locale categories
address@hidden @command{gettext} library, locale categories
address@hidden @command{gettext} library @subentry locale categories
 @cindex locale categories
 @noindent
 This reduces the typing overhead to just three extra characters per string
@@ -29686,7 +29695,9 @@ such as @code{/[[:alnum:]]/}
 (@pxref{Bracket Expressions}).
 
 @cindex monetary information, localization
address@hidden currency symbols @subentry localization
address@hidden currency symbols, localization
address@hidden internationalization @subentry localization @subentry monetary 
information
address@hidden internationalization @subentry localization @subentry currency 
symbols
 @cindex @code{LC_MONETARY} locale category
 @item LC_MONETARY
 Monetary information, such as the currency symbol, and whether the
@@ -29833,8 +29844,8 @@ BEGIN @{
 @}
 @end example
 
address@hidden @code{_} (underscore) @subentry translatable string
address@hidden underscore (@code{_}) @subentry translatable string
address@hidden @code{_} (underscore) @subentry translatable strings
address@hidden underscore (@code{_}) @subentry translatable strings
 @item
 Mark all translatable strings with a leading underscore (@samp{_})
 character.  It @emph{must} be adjacent to the opening
@@ -29933,7 +29944,7 @@ is covered.
 @subsection Extracting Marked Strings
 @cindex strings @subentry extracting
 @cindex @option{--gen-pot} option
address@hidden command-line options @subentry string extraction
address@hidden command line @subentry options @subentry string extraction
 @cindex string extraction (internationalization)
 @cindex marked string extraction (internationalization)
 @cindex extraction, of marked strings (internationalization)
@@ -30105,9 +30116,9 @@ and @code{bindtextdomain()}, the @command{awk} program 
can be made to run, but
 all the messages are output in the original language.
 For example:
 
address@hidden @code{bindtextdomain()} function (@command{gawk}), portability 
and
address@hidden @code{dcgettext()} function (@command{gawk}), portability and
address@hidden @code{dcngettext()} function (@command{gawk}), portability and
address@hidden @code{bindtextdomain()} function (@command{gawk}) @subentry 
portability and
address@hidden @code{dcgettext()} function (@command{gawk}) @subentry 
portability and
address@hidden @code{dcngettext()} function (@command{gawk}) @subentry 
portability and
 @example
 @c file eg/lib/libintl.awk
 function bindtextdomain(dir, domain)
@@ -30257,7 +30268,7 @@ $ @kbd{mkdir en_US.UTF-8 en_US.UTF-8/LC_MESSAGES}
 @cindex @code{.po} files @subentry converting to @code{.mo}
 @cindex files @subentry @code{.po} @subentry converting to @code{.mo}
 @cindex @code{.mo} files, converting from @code{.po}
address@hidden files @subentry @code{.mo} @subentry converting from @code{.po}
address@hidden files @subentry @code{.mo}, converting from @code{.po}
 @cindex portable object files @subentry converting to message object files
 @cindex files @subentry portable object @subentry converting to message object 
files
 @cindex message object files @subentry converting from portable object files
@@ -30358,7 +30369,7 @@ a number of translations for its messages.
 
 @node Debugger
 @chapter Debugging @command{awk} Programs
address@hidden debugging @command{awk} programs
address@hidden debugging @subentry @command{awk} programs
 
 @c The original text for this chapter was contributed by Efraim Yawitz.
 
@@ -30446,7 +30457,7 @@ The following list defines terms used throughout the 
rest of
 this @value{CHAPTER}:
 
 @table @dfn
address@hidden call stack (debugger)
address@hidden call stack @subentry explanation of
 @cindex stack frame (debugger)
 @item Stack frame
 Programs generally call functions during the course of their execution.
@@ -30633,7 +30644,7 @@ let's see how we got to where we are.  At the prompt, 
we type @samp{bt}
 (short for ``backtrace''), and the debugger responds with a
 listing of the current stack frames:
 
address@hidden debugger @subentry stack frames @subentry showing
address@hidden debugger @subentry stack frames, showing
 @cindex debugger @subentry @code{bt} command
 @cindex debugger @subentry @code{backtrace} command
 @example
@@ -30922,7 +30933,7 @@ it continues executing the program.
 @cindex debugger commands @subentry @code{clear}
 @cindex @code{clear} debugger command
 @cindex delete breakpoint @subentry at location
address@hidden breakpoint at location, how to delete
address@hidden breakpoint @subentry at location, how to delete
 @item @code{clear} address@hidden@code{:address@hidden | @var{function}]
 Without any argument, delete any breakpoint at the next instruction
 to be executed in the selected stack frame. If the program stops at
@@ -30943,7 +30954,7 @@ Delete breakpoint(s) set at entry to function 
@var{function}.
 
 @cindex debugger commands @subentry @code{condition}
 @cindex @code{condition} debugger command
address@hidden breakpoint condition
address@hidden breakpoint @subentry condition
 @item @code{condition} @var{n} @code{"@var{expression}"}
 Add a condition to existing breakpoint or watchpoint @var{n}. The
 condition is an @command{awk} expression @emph{enclosed in double quotes}
@@ -31027,7 +31038,7 @@ execution of the program than we saw in our earlier 
example:
 @cindex @code{silent} debugger command
 @cindex debugger commands @subentry @code{end}
 @cindex @code{end} debugger command
address@hidden breakpoint commands
address@hidden breakpoint @subentry commands to execute at
 @cindex commands to execute at breakpoint
 @item @code{commands} address@hidden
 @itemx @code{silent}
@@ -31292,7 +31303,7 @@ functions that called the one you are in.  The commands 
for doing this are:
 @cindex @code{backtrace} debugger command
 @cindex @code{bt} debugger command (alias for @code{backtrace})
 @cindex @code{where} debugger command (alias for @code{backtrace})
address@hidden call stack, display in debugger
address@hidden call stack @subentry display in debugger
 @cindex traceback, display in debugger
 @item @code{backtrace} address@hidden
 @itemx @code{bt} address@hidden
@@ -31908,7 +31919,7 @@ and when making indirect function calls 
(@pxref{Indirect Calls}).
 
 @cindex namespace @subentry default
 @cindex namespace @subentry @code{awk}
address@hidden @code{awk} namespace
address@hidden @code{awk} @subentry namespace
 The default namespace, not surprisingly, is @code{awk}.
 All of the predefined @command{awk} and @command{gawk} variables
 are in this namespace, and thus have qualified names like
@@ -31927,6 +31938,7 @@ It also keeps your code looking natural.
 
 @cindex namespaces @subentry changing
 @cindex @code{@@} (at-sign) @subentry @code{@@namespace} directive
address@hidden at-sign (@code{@@}) @subentry @code{@@namespace} directive
 In order to set the current namespace, use an @code{@@namespace} directive
 at the top level of your program:
 
@@ -31958,7 +31970,7 @@ an implicit @samp{@@namespace "awk"}.  Similarly, each 
chunk of
 command-line code supplied with @option{-e} has such an implicit
 initial statement (@pxref{Options}).
 
address@hidden current namespace @subentry pushing and popping
address@hidden current namespace, pushing and popping
 @cindex namespace @subentry pushing and popping
 Files included with @code{@@include} (@pxref{Include Files}) ``push''
 and ``pop'' the current namespace. That is, each @code{@@include} saves
@@ -31968,7 +31980,8 @@ directive is seen.  When @command{gawk} finishes 
processing the included
 file, the saved namespace is restored and processing continues where it
 left off in the original file.
 
address@hidden @code{@@} (at-sign) @subentry @code{@@namespace}, no effect on 
@address@hidden @address@hidden @address@hidden and @code{ENDFILE}
address@hidden @code{@@} (at-sign) @subentry @code{@@namespace} directive 
@subentry no effect on @code{BEGIN}, @code{BEGINFILE}, @code{END}, and 
@code{ENDFILE}
address@hidden at-sign (@code{@@}) @subentry @code{@@namespace} directive 
@subentry no effect on @code{BEGIN}, @code{BEGINFILE}, @code{END}, and 
@code{ENDFILE}
 @cindex @code{BEGIN} pattern @subentry execution order not affected by 
@code{@@namespace}
 @cindex @code{BEGINFILE} pattern @subentry execution order not affected by 
@code{@@namespace}
 @cindex @code{END} pattern @subentry execution order not affected by 
@code{@@namespace}
@@ -31981,7 +31994,7 @@ of @code{BEGIN}, @code{BEGINFILE}, @code{END}, and 
@code{ENDFILE} rules.
 
 @cindex naming rules, namespaces and component names
 @cindex namespace names, naming rules
address@hidden component names, naming rules
address@hidden component names @subentry naming rules
 A number of rules apply to the namespace and component names, as follows.
 
 @itemize @bullet
@@ -32048,8 +32061,8 @@ $ @kbd{gawk -f systime.awk}
 @section Internal Name Management
 
 @cindex name management
address@hidden @code{awk} namespace @subentry identifier name storage
address@hidden @code{awk} namespace @subentry use for indirect function calls
address@hidden @code{awk} @subentry namespace @subentry identifier name storage
address@hidden @code{awk} @subentry namespace @subentry use for indirect 
function calls
 For backwards compatibility, all identifiers in the @code{awk} namespace
 are stored internally as unadorned identifiers (that is, without a
 leading @samp{awk::}).  This is mainly relevant
@@ -32225,7 +32238,7 @@ in order to accommodate namespaces, and the debugger's 
@code{dump} command
 was adjusted to match.
 
 @cindex namespaces @subentry interaction with extension API
address@hidden extension API interaction with namespaces
address@hidden extension API @subentry interaction with namespaces
 The extension API (@pxref{Dynamic Extensions}) has always allowed for
 placing functions into a different namespace, although this was not
 previously implemented.  However, the symbol lookup and symbol update
@@ -32275,7 +32288,7 @@ version of @command{gawk}.
 @cindex arbitrary precision
 @cindex multiple precision
 @cindex infinite precision
address@hidden floating-point @subentry numbers, arbitrary-precision
address@hidden floating-point @subentry numbers @subentry arbitrary-precision
 
 This @value{CHAPTER} introduces some basic concepts relating to
 how computers do arithmetic and defines some important terms.
@@ -32366,9 +32379,9 @@ Modern systems support floating-point arithmetic in 
hardware, with a
 limited range of values.  There are software libraries that allow
 the use of arbitrary-precision floating-point calculations.
 
address@hidden floating-point @subentry numbers, single-precision
address@hidden floating-point @subentry numbers, double-precision
address@hidden floating-point @subentry numbers, arbitrary-precision
address@hidden floating-point @subentry numbers @subentry single-precision
address@hidden floating-point @subentry numbers @subentry double-precision
address@hidden floating-point @subentry numbers @subentry arbitrary-precision
 @cindex single-precision
 @cindex double-precision
 @cindex arbitrary precision
@@ -34169,7 +34182,7 @@ process and reduces the time needed to create the value.
 @node Memory Allocation Functions
 @subsection Memory Allocation Functions and Convenience Macros
 @cindex allocating memory for extensions
address@hidden extensions @subentry allocating memory
address@hidden extensions @subentry loadable @subentry allocating memory
 @cindex memory, allocating for extensions
 
 The API provides a number of @dfn{memory allocation} functions for
@@ -34363,7 +34376,7 @@ to be a @samp{char *} value pointing to data previously 
obtained from
 @node Registration Functions
 @subsection Registration Functions
 @cindex register extension
address@hidden extension registration
address@hidden extensions @subentry loadable @subentry registration
 
 This @value{SECTION} describes the API functions for
 registering parts of your extension with @command{gawk}.
@@ -35591,7 +35604,7 @@ you should release any cached values that you created, 
using
 @node Array Manipulation
 @subsection Array Manipulation
 @cindex array manipulation in extensions
address@hidden extensions @subentry array manipulation in
address@hidden extensions @subentry loadable @subentry array manipulation in
 
 The primary data address@hidden, the only data structure.} in @command{awk}
 is the associative array (@pxref{Arrays}).
@@ -36267,8 +36280,8 @@ information about how @command{gawk} was invoked.
 
 @node Extension Versioning
 @subsubsection API Version Constants and Variables
address@hidden API version
address@hidden extension API version
address@hidden API @subentry version
address@hidden extension API @subentry version
 
 The API provides both a ``major'' and a ``minor'' version number.
 The API versions are available at compile time as C preprocessor defines
@@ -36368,8 +36381,8 @@ calls @code{check_mpfr_version()}.
 
 @node Extension API Informational Variables
 @subsubsection Informational Variables
address@hidden API informational variables
address@hidden extension API informational variables
address@hidden API @subentry informational variables
address@hidden extension API @subentry informational variables
 
 The API provides access to several variables that describe
 whether the corresponding command-line options were enabled when
@@ -36581,7 +36594,7 @@ The @code{get_file()} API is new
 
 @node Finding Extensions
 @section How @command{gawk} Finds Extensions
address@hidden extension search path
address@hidden extensions @subentry loadable @subentry search path
 @cindex finding extensions
 
 Compiled extensions have to be installed in a directory where
@@ -36593,7 +36606,7 @@ path with a list of directories to search for compiled 
extensions.
 
 @node Extension Example
 @section Example: Some File Functions
address@hidden extension example
address@hidden extensions @subentry loadable @subentry example
 
 @quotation
 @i{No matter where you go, there you are.}
@@ -37231,7 +37244,7 @@ $ @kbd{AWKLIBPATH=$PWD gawk -f testff.awk}
 
 @node Extension Samples
 @section The Sample Extensions in the @command{gawk} Distribution
address@hidden extensions distributed with @command{gawk}
address@hidden extensions @subentry loadable @subentry distributed with 
@command{gawk}
 
 This @value{SECTION} provides a brief overview of the sample extensions
 that come in the @command{gawk} distribution. Some of them are intended
@@ -37935,8 +37948,7 @@ for more information.
 
 @node gawkextlib
 @section The @code{gawkextlib} Project
address@hidden @code{gawkextlib}
address@hidden extensions @subentry where to find
address@hidden extensions @subentry loadable @subentry @code{gawkextlib} project
 
 @cindex @code{gawkextlib} project
 The @uref{https://sourceforge.net/projects/gawkextlib/, @code{gawkextlib}}
@@ -38503,7 +38515,7 @@ available in his @command{awk}.
 @appendixsec Extensions in @command{gawk} Not in POSIX @command{awk}
 
 @cindex compatibility mode (@command{gawk}) @subentry extensions
address@hidden extensions @subentry in @command{gawk} @subentry not in POSIX 
@command{awk}
address@hidden extensions @subentry in @command{gawk}, not in POSIX 
@command{awk}
 @cindex POSIX @subentry @command{gawk} extensions not included in
 The GNU implementation, @command{gawk}, adds a large number of features.
 They can all be disabled with either the @option{--traditional} or
@@ -40641,6 +40653,7 @@ See also the @file{README_d/README.pc} file in the 
distribution.
 
 @node PC Binary Installation
 @appendixsubsubsec Installing a Prepared Distribution for MS-Windows Systems
address@hidden installation @subentry MS-Windows
 
 The only supported binary distribution for MS-Windows systems
 is that provided by Eli Zaretskii's 
@uref{https://sourceforge.net/projects/ezwinports/,
@@ -40654,7 +40667,7 @@ The file @file{README_d/README.pc} in the 
@command{gawk} distribution
 contains additional notes, and @file{pc/Makefile} contains important
 information on compilation options.
 
address@hidden compiling @command{gawk} for MS-Windows
address@hidden compiling @command{gawk} @subentry for MS-Windows
 To build @command{gawk} for Windows32, copy the files in
 the @file{pc} directory (@emph{except} for @file{ChangeLog}) to the
 directory with the rest of the @command{gawk} sources, then invoke
@@ -40696,7 +40709,7 @@ variable.  If @env{AWKPATH} is not set or is empty, 
then the default
 search path is @address@hidden;c:/lib/awk;c:/gnu/lib/awk}}.
 
 @cindex common extensions @subentry @code{BINMODE} variable
address@hidden extensions @subentry common, @code{BINMODE} variable
address@hidden extensions @subentry common @subentry @code{BINMODE} variable
 @cindex differences in @command{awk} and @command{gawk} @subentry 
@code{BINMODE} variable
 @cindex @code{BINMODE} variable
 Under MS-Windows,
@@ -40793,7 +40806,7 @@ moved into the @code{BEGIN} rule.
 
 @node Cygwin
 @appendixsubsubsec Using @command{gawk} In The Cygwin Environment
address@hidden compiling @command{gawk} for Cygwin
address@hidden compiling @command{gawk} @subentry for Cygwin
 
 @command{gawk} can be built and used ``out of the box'' under MS-Windows
 if you are using the @uref{http://www.cygwin.com, Cygwin environment}.
@@ -40813,6 +40826,10 @@ When compared to GNU/Linux on the same system, the 
@samp{configure}
 step on Cygwin takes considerably longer.  However, it does finish,
 and then the @samp{make} proceeds as usual.
 
address@hidden installation @subentry Cygwin
+You may also install @command{gawk} using the regular Cygwin installer.
+In general Cygwin supplies the latest released version.
+
 Recent versions of Cygwin open all files in binary mode. This means
 that you should use @samp{RS = "\r?\n"} in order to be able to
 handle standard MS-Windows text files with carriage-return plus
@@ -40841,7 +40858,7 @@ translation of @code{"\r\n"}, because it won't.
 @c now address@hidden
 
 @cindex @command{gawk} @subentry VMS version of
address@hidden installation, VMS
address@hidden installation @subentry VMS
 This @value{SUBSECTION} describes how to compile and install @command{gawk} 
under VMS.
 The older designation ``VMS'' is used throughout to refer to OpenVMS.
 
@@ -40857,7 +40874,7 @@ The older designation ``VMS'' is used throughout to 
refer to OpenVMS.
 
 @node VMS Compilation
 @appendixsubsubsec Compiling @command{gawk} on VMS
address@hidden compiling @command{gawk} for VMS
address@hidden compiling @command{gawk} @subentry for VMS
 
 To compile @command{gawk} under VMS, there is a @code{DCL} command procedure
 that issues all the necessary @code{CC} and @code{LINK} commands. There is
@@ -41081,7 +41098,7 @@ Older versions of @command{gawk} for VMS treated a Unix 
exit code 0 as 1,
 a failure as 2, a fatal error as 4, and passed all the other numbers through.
 This violated the VMS exit status coding requirements.
 
address@hidden floating-point @subentry VAX/VMS
address@hidden floating-point @subentry numbers @subentry VAX/VMS
 VAX/VMS floating point uses unbiased rounding. @xref{Round Function}.
 
 VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE}
@@ -41219,7 +41236,7 @@ recommend compiling and using the current version.
 @end quotation
 @c the radio show, not the book. :-)
 
address@hidden debugging @command{gawk} @subentry bug reports
address@hidden debugging @command{gawk}, bug reports
 @cindex troubleshooting @subentry @command{gawk} @subentry bug reports
 If you have problems with @command{gawk} or think that you have found a bug,
 report it to the developers; we cannot promise to do anything,
@@ -41535,7 +41552,6 @@ with 1--2 hours of work.  Making it more generally 
portable (using
 GNU Autoconf and/or Automake) would take more work, and this
 has not been done, at least to our knowledge.
 
address@hidden Illumos
 @cindex Illumos, POSIX-compliant @command{awk}
 @cindex source code @subentry Illumos @command{awk}
 The source code used to be available from the OpenSolaris website.
@@ -41676,7 +41692,7 @@ maintainers of @command{gawk}.  Everything in it 
applies specifically to
 @cindex @command{gawk} @subentry implementation issues @subentry downward 
compatibility
 @cindex @command{gawk} @subentry implementation issues @subentry debugging
 @cindex troubleshooting @subentry @command{gawk}
address@hidden implementation address@hidden @command{gawk}, debugging
address@hidden implementation issues @subentry @command{gawk} @subentry 
debugging
 
 @xref{POSIX/GNU},
 for a summary of the GNU extensions to the @command{awk} language and program.
@@ -42849,6 +42865,7 @@ Software Engineering practices.
 @cindex Spencer, Henry
 @cindex @command{sed} utility
 @cindex amazing @command{awk} assembler (@command{aaa})
address@hidden @command{aaa} (amazing @command{awk} assembler) program
 @item Amazing @command{awk} Assembler
 Henry Spencer at the University of Toronto wrote a retargetable assembler
 completely as @command{sed} and @command{awk} scripts.  It is thousands
@@ -43075,8 +43092,8 @@ See ``Bracket Expression.''
 See ``Bracket Expression.''
 
 @cindex ASCII
address@hidden ISO 8859-1
address@hidden ISO Latin-1
address@hidden ISO @subentry ISO 8859-1 character set
address@hidden ISO @subentry ISO Latin-1 character set
 @cindex character sets (machine character encodings)
 @cindex Unicode
 @item Character Set
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index fc65e3f..18dab2b 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -1318,6 +1318,7 @@ rest of the file alone.  Such jobs are often easy with 
@command{awk}.
 The @command{awk} utility interprets a special-purpose programming
 language that makes it easy to handle simple data-reformatting jobs.
 
address@hidden @command{gawk}
 The GNU implementation of @command{awk} is called @command{gawk}; if you
 invoke it with the proper options or environment variables,
 it is fully compatible with
@@ -2473,7 +2474,7 @@ which usually means whatever you type on the keyboard.  
This continues
 until you indicate end-of-file by typing @kbd{Ctrl-d}.
 (On non-POSIX operating systems, the end-of-file character may be different.)
 
address@hidden files, input @seeentry{input files}
address@hidden files @subentry input @seeentry{input files}
 @cindex input files @subentry running @command{awk} without
 @cindex @command{awk} programs @subentry running @subentry without input files
 As an example, the following program prints a friendly piece of advice
@@ -3840,7 +3841,7 @@ Also see
 @itemx @option{--copyright}
 @cindex @option{-C} option
 @cindex @option{--copyright} option
address@hidden GPL (General Public License), printing
address@hidden GPL (General Public License) @subentry printing
 Print the short version of the General Public License and then exit.
 
 @item @address@hidden
@@ -3968,7 +3969,7 @@ for information about this option.
 @itemx @option{--help}
 @cindex @option{-h} option
 @cindex @option{--help} option
address@hidden GNU long options, printing list of
address@hidden GNU long options @subentry printing list of
 @cindex options @subentry printing list of
 @cindex printing @subentry list of options
 Print a ``usage'' message summarizing the short- and long-style options
@@ -4202,7 +4203,7 @@ Warn about constructs that are not available in the 
original version of
 @itemx @option{--version}
 @cindex @option{-V} option
 @cindex @option{--version} option
address@hidden @command{gawk} @subentry versions of @subentry information 
about, printing
address@hidden @command{gawk} @subentry versions of, printing information about
 Print version information for this particular copy of @command{gawk}.
 This allows you to determine if your copy of @command{gawk} is up to date
 with respect to whatever the Free Software Foundation is currently
@@ -4211,6 +4212,7 @@ It is also useful for bug reports
 (@pxref{Bugs}).
 
 @cindex @code{-} (hyphen) @subentry @code{--} end of options marker
address@hidden hyphen (@code{-}) @subentry @code{--} end of options marker
 @item @code{--}
 Mark the end of all options.
 Any command-line arguments following @code{--} are placed in @code{ARGV},
@@ -4802,7 +4804,7 @@ This @value{SECTION} describes a feature that is specific 
to @command{gawk}.
 @cindex @code{@@} (at-sign) @subentry @code{@@load} directive
 @cindex at-sign (@code{@@}) @subentry @code{@@load} directive
 @cindex loading extensions, @code{@@load} directive
address@hidden extensions @subentry loading @subentry @code{@@load} directive
address@hidden extensions @subentry loadable @subentry loading, @code{@@load} 
directive
 The @code{@@load} keyword can be used to read external @command{awk} extensions
 (stored as system shared libraries).
 This allows you to link in compiled code that may offer superior
@@ -5233,7 +5235,7 @@ between @samp{0} and @samp{7}.  For example, the code for 
the ASCII ESC
 @cindex @code{\} (backslash) @subentry @code{\x} escape sequence
 @cindex backslash (@code{\}) @subentry @code{\x} escape sequence
 @cindex common extensions @subentry @code{\x} escape sequence
address@hidden extensions @subentry common, @code{\x} escape sequence
address@hidden extensions @subentry common @subentry @code{\x} escape sequence
 @item address@hidden@dots{}
 The hexadecimal value @var{hh}, where @var{hh} stands for a sequence
 of hexadecimal digits (@address@hidden, and either @address@hidden
@@ -6090,7 +6092,7 @@ method of using @samp{\y} for the GNU @samp{\b} appears 
to be the
 lesser of two evils.
 
 @cindex regular expressions @subentry @command{gawk} @subentry command-line 
options
address@hidden @command{gawk} @subentry command-line options @subentry and 
regular expressions
address@hidden @command{gawk} @subentry command-line options, regular 
expressions and
 The various command-line options
 (@pxref{Options})
 control how @command{gawk} interprets characters in regexps:
@@ -6530,7 +6532,7 @@ sets the variable @code{RT} to the text in the input that 
matched
 @subsection Record Splitting with @command{gawk}
 
 @cindex common extensions @subentry @code{RS} as a regexp
address@hidden extensions @subentry common, @code{RS} as a regexp
address@hidden extensions @subentry common @subentry @code{RS} as a regexp
 When using @command{gawk}, the value of @code{RS} is not limited to a
 one-character string.  If it contains more than one character, it is
 treated as a regular expression
@@ -7177,7 +7179,7 @@ Because the leading whitespace was ignored when finding 
@code{$1},
 it is not part of the new @code{$0}.  Finally, the last @code{print}
 statement prints the new @code{$0}.
 
address@hidden @code{FS} @subentry containing @code{^}
address@hidden @code{FS} variable @subentry containing @code{^}
 @cindex @code{^} (caret) @subentry in @code{FS}
 @cindex dark corner @subentry @code{^}, in @code{FS}
 There is an additional subtlety to be aware of when using regular expressions
@@ -7208,7 +7210,7 @@ $ @kbd{echo 'xxAA  xxBxx  C' |}
 @subsection Making Each Character a Separate Field
 
 @cindex common extensions @subentry single character fields
address@hidden extensions @subentry common, single character fields
address@hidden extensions @subentry common @subentry single character fields
 @cindex differences in @command{awk} and @command{gawk} @subentry 
single-character fields
 @cindex single-character fields
 @cindex fields @subentry single-character
@@ -7889,7 +7891,7 @@ In the second case, this special processing is not done.
 @value{DARKCORNER}
 
 @cindex field separator @subentry in multiline records
address@hidden @code{FS} @subentry in multiline records
address@hidden @code{FS} variable @subentry in multiline records
 Now that the input is separated into records, the second step is to
 separate the fields in the records.  One way to do this is to divide each
 of the lines into fields in the normal manner.  This happens by default
@@ -8164,7 +8166,7 @@ rule in the program.  @xref{Next Statement}.
 
 @node Getline/Variable
 @subsection Using @code{getline} into a Variable
address@hidden @code{getline} into a variable
address@hidden @code{getline} command @subentry into a variable
 @cindex variables @subentry @code{getline} command into, using
 
 You can use @samp{getline @var{var}} to read the next record from
@@ -8218,7 +8220,7 @@ the value of @code{NF} do not change.
 @node Getline/File
 @subsection Using @code{getline} from a File
 
address@hidden @code{getline} from a file
address@hidden @code{getline} command @subentry from a file
 @cindex input redirection
 @cindex redirection of input
 @cindex @code{<} (left angle bracket) @subentry @code{<} operator (I/O)
@@ -8528,7 +8530,7 @@ You can open as many pipelines (and coprocesses) as the 
underlying operating
 system permits.
 
 @cindex side effects @subentry @code{FILENAME} variable
address@hidden @code{FILENAME} variable, @address@hidden setting with
address@hidden @code{FILENAME} variable @subentry @code{getline}, setting with
 @cindex dark corner @subentry @code{FILENAME} variable
 @cindex @code{getline} command @subentry @code{FILENAME} variable and
 @cindex @code{BEGIN} pattern @subentry @code{getline} and
@@ -9198,7 +9200,7 @@ if @code{OFMT} contains anything but a floating-point 
conversion specification.
 
 @cindex @code{printf} statement
 @cindex output @subentry formatted
address@hidden formatting output
address@hidden formatting @subentry output
 For more precise control over the output format than what is
 provided by @code{print}, use @code{printf}.
 With @code{printf} you can
@@ -9952,7 +9954,7 @@ command lines to be fed to the shell.
 @cindex error output
 @cindex standard error
 @cindex file descriptors
address@hidden files, descriptors @seeentry{file descriptors}
address@hidden files @subentry descriptors @seeentry{file descriptors}
 
 Running programs conventionally have three input and output streams
 already available to them for reading and writing.  These are known
@@ -10013,9 +10015,9 @@ has been ported to, not just those that are 
POSIX-compliant:
 @cindex common extensions @subentry @code{/dev/stdin} special file
 @cindex common extensions @subentry @code{/dev/stdout} special file
 @cindex common extensions @subentry @code{/dev/stderr} special file
address@hidden extensions @subentry common, @code{/dev/stdin} special file
address@hidden extensions @subentry common, @code{/dev/stdout} special file
address@hidden extensions @subentry common, @code{/dev/stderr} special file
address@hidden extensions @subentry common @subentry @code{/dev/stdin} special 
file
address@hidden extensions @subentry common @subentry @code{/dev/stdout} special 
file
address@hidden extensions @subentry common @subentry @code{/dev/stderr} special 
file
 @cindex file names @subentry standard streams in @command{gawk}
 @cindex @code{/dev/@dots{}} special files
 @cindex files @subentry @code{/dev/@dots{}} special files
@@ -10144,7 +10146,7 @@ Doing so results in unpredictable behavior.
 
 @node Close Files And Pipes
 @section Closing Input and Output Redirections
address@hidden files, output @seeentry{output files}
address@hidden files @subentry output @seeentry{output files}
 @cindex input files @subentry closing
 @cindex output @subentry files, closing
 @cindex pipe @subentry closing
@@ -11366,7 +11368,7 @@ in order from the highest precedence to the lowest:
 
 @table @code
 @cindex common extensions @subentry @code{**} operator
address@hidden extensions @subentry common, @code{**} operator
address@hidden extensions @subentry common @subentry @code{**} operator
 @cindex POSIX @command{awk} @subentry arithmetic operators and
 @item @var{x} ^ @var{y}
 @itemx @var{x} ** @var{y}
@@ -11790,7 +11792,7 @@ to a number.
 @item @var{lvalue} @code{/=} @var{divisor} @tab Divide the value of 
@var{lvalue} by @var{divisor}.
 @item @var{lvalue} @code{%=} @var{modulus} @tab Set @var{lvalue} to its 
remainder by @var{modulus}.
 @cindex common extensions @subentry @code{**=} operator
address@hidden extensions @subentry common, @code{**=} operator
address@hidden extensions @subentry common @subentry @code{**=} operator
 @cindex @command{awk} @subentry language, POSIX version
 @cindex POSIX @command{awk}
 @item @var{lvalue} @code{^=} @var{power} @tab Raise @var{lvalue} to the power 
@var{power}.
@@ -13697,7 +13699,7 @@ either a @code{BEGINFILE} or an @code{ENDFILE} rule.  
The @code{nextfile}
 statement is allowed only inside a
 @code{BEGINFILE} rule, not inside an @code{ENDFILE} rule.
 
address@hidden @code{getline} statement @subentry 
@code{BEGINFILE}/@code{ENDFILE} patterns and
address@hidden @code{getline} command @subentry @code{BEGINFILE}/@code{ENDFILE} 
patterns and
 The @code{getline} statement (@pxref{Getline}) is restricted inside
 both @code{BEGINFILE} and @code{ENDFILE}: only redirected
 forms of @code{getline} are allowed.
@@ -15408,8 +15410,8 @@ is available as an element within the @code{SYMTAB} 
array.
 @end table
 
 @sidebar Changing @code{NR} and @code{FNR}
address@hidden @code{NR} variable, changing
address@hidden @code{FNR} variable, changing
address@hidden @code{NR} variable @subentry changing
address@hidden @code{FNR} variable @subentry changing
 @cindex dark corner @subentry @code{FNR}/@code{NR} variables
 @command{awk} increments @code{NR} and @code{FNR}
 each time it reads a record, instead of setting them to the absolute
@@ -16196,7 +16198,7 @@ This loop executes @var{body} once for each index in 
@var{array} that the
 program has previously used, with the variable @var{var} set to that index.
 
 @cindex arrays @subentry @code{for} statement and
address@hidden @code{for} statement, looping over arrays
address@hidden @code{for} statement @subentry looping over arrays
 The following program uses this form of the @code{for} statement.  The
 first rule scans the input records and notes which words appear (at
 least once) in the input, by storing a one into the array @code{used} with
@@ -16632,7 +16634,7 @@ However, if @option{--lint} is provided on the command 
line
 is not in the array is deleted.
 
 @cindex common extensions @subentry @code{delete} to delete entire arrays
address@hidden extensions @subentry common, @code{delete} to delete entire 
arrays
address@hidden extensions @subentry common @subentry @code{delete} to delete 
entire arrays
 @cindex arrays @subentry deleting entire contents
 @cindex deleting entire arrays
 @cindex @code{delete} @var{array}
@@ -17590,7 +17592,7 @@ and 525 is then converted to the string @code{"525"}, 
which has
 three characters.
 
 @cindex length of input record
address@hidden input record @subentry length of
address@hidden input record, length of
 If no argument is supplied, @code{length()} returns the length of @code{$0}.
 
 @c @cindex historical features
@@ -17627,7 +17629,7 @@ been specified on the command line, @command{gawk} 
issues a
 warning about this.
 
 @cindex common extensions @subentry @code{length()} applied to an array
address@hidden extensions @subentry common, @code{length()} applied to an array
address@hidden extensions @subentry common @subentry @code{length()} applied to 
an array
 @cindex differences in @command{awk} and @command{gawk} @subentry 
@code{length()} function
 @cindex number of array elements
 @cindex arrays @subentry number of elements
@@ -17876,7 +17878,7 @@ In POSIX mode (@pxref{Options}), the fourth argument is 
not allowed.
 
 @item @code{sprintf(@var{format}, @var{expression1}, @dots{})}
 @cindexawkfunc{sprintf}
address@hidden formatting strings
address@hidden formatting @subentry strings
 Return (without printing) the string that @code{printf} would
 have printed out with the same arguments
 (@pxref{Printf}).
@@ -18117,7 +18119,7 @@ Although this makes a certain amount of sense, it can 
be surprising.
 @cindex escape processing @subentry @code{gsub()}/@code{gensub()}/@code{sub()} 
functions
 @cindex @code{sub()} function @subentry escape processing
 @cindex @code{gsub()} function @subentry escape processing
address@hidden @code{gensub()} function (@command{gawk}), escape processing
address@hidden @code{gensub()} function (@command{gawk}) @subentry escape 
processing
 @cindex @code{\} (backslash) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} functions and
 @cindex backslash (@code{\}) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} functions and
 @cindex @code{&} (ampersand) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} functions and
@@ -18417,7 +18419,7 @@ to do substitutions.
 
 @node I/O Functions
 @subsection Input/Output Functions
address@hidden input/output functions
address@hidden input/output @subentry functions
 
 The following functions relate to input/output (I/O).
 Optional parameters are enclosed in square brackets ([ ]):
@@ -18466,7 +18468,7 @@ This is the purpose of the @code{fflush()} 
address@hidden also
 buffers its output, and the @code{fflush()} function forces
 @command{gawk} to flush its buffers.
 
address@hidden extensions @subentry common, @code{fflush()} function
address@hidden extensions @subentry common @subentry @code{fflush()} function
 @cindex Brian Kernighan's @command{awk}
 Brian Kernighan added @code{fflush()} to his @command{awk} in April
 1992.  For two decades, it was a common extension.  In December
@@ -18924,7 +18926,7 @@ The weekday as a decimal number (1--7).  Monday is day 
one.
 The week number of the year (with the first Sunday as the first day of week 
one)
 as a decimal number (00--53).
 
address@hidden @cindex ISO 8601
address@hidden ISO @subentry ISO 8601 date and time standard
 @item %V
 The week number of the year (with the first Monday as the first
 day of week one) as a decimal number (01--53).
@@ -19710,7 +19712,7 @@ Many of the subsequent examples in this @value{SECTION} 
use
 the @code{return} statement.
 
 @cindex common extensions @subentry @code{func} keyword
address@hidden extensions @subentry common, @code{func} keyword
address@hidden extensions @subentry common @subentry @code{func} keyword
 @c @cindex POSIX @command{awk}
 @cindex @command{awk} @subentry language, POSIX version
 @cindex POSIX @command{awk} @subentry @code{function} keyword in
@@ -20382,7 +20384,7 @@ variable as the @emph{name} of the function to call.
 
 @cindex @code{@@} (at-sign) @subentry @code{@@}-notation for indirect function 
calls
 @cindex at-sign (@code{@@}) @subentry @code{@@}-notation for indirect function 
calls
address@hidden indirect function calls, @code{@@}-notation
address@hidden indirect function calls @subentry @code{@@}-notation
 @cindex function calls @subentry indirect @subentry @code{@@}-notation for
 The syntax is similar to that of a regular function call: an identifier
 immediately followed by an opening parenthesis, any arguments, and then
@@ -23212,7 +23214,7 @@ function getgrgid(gid)
 The @code{getgruser()} function does not have a C counterpart. It takes a
 username and returns the list of groups that have the user as a member:
 
address@hidden @code{getgruser()} function, user-defined
address@hidden @code{getgruser()} user-defined function
 @example
 @c file eg/lib/groupawk.in
 function getgruser(user)
@@ -28332,7 +28334,8 @@ which is correct, but possibly unexpected.
 @samp{print}, that distinction is retained.)
 
 @cindex profiling @command{awk} programs, dynamically
address@hidden @command{gawk} program @subentry dynamic profiling
address@hidden @command{gawk} @subentry dynamic profiling
address@hidden @command{gawk} @subentry profiling programs
 @cindex dynamic profiling
 Besides creating profiles when a program has completed,
 @command{gawk} can produce a profile while it is running.
@@ -28497,7 +28500,7 @@ As a result, internationalization and localization
 of programs and software systems became a common practice.
 
 @cindex internationalization @subentry localization
address@hidden @command{gawk}, internationalization and 
@seeentry{internationalization}
address@hidden @command{gawk} @subentry internationalization 
@seeentry{internationalization}
 @cindex internationalization @subentry localization @subentry @command{gawk} 
and
 For many years, the ability to provide internationalization
 was largely restricted to programs written in C and C++.
@@ -28579,7 +28582,7 @@ by calling the @code{textdomain()} function.
 
 @cindex @code{.pot} files
 @cindex files @subentry @code{.pot}
address@hidden portable object template files
address@hidden portable object @subentry template files
 @cindex files @subentry portable object template
 @item
 Messages from the application are extracted from the source code and
@@ -28662,7 +28665,7 @@ printf("%s", _("Don't Panic!\n"));
 @end example
 
 @cindex internationalization @subentry localization @subentry locale categories
address@hidden @command{gettext} library, locale categories
address@hidden @command{gettext} library @subentry locale categories
 @cindex locale categories
 @noindent
 This reduces the typing overhead to just three extra characters per string
@@ -29277,7 +29280,7 @@ $ @kbd{mkdir en_US.UTF-8 en_US.UTF-8/LC_MESSAGES}
 @cindex @code{.po} files @subentry converting to @code{.mo}
 @cindex files @subentry @code{.po} @subentry converting to @code{.mo}
 @cindex @code{.mo} files, converting from @code{.po}
address@hidden files @subentry @code{.mo} @subentry converting from @code{.po}
address@hidden files @subentry @code{.mo}, converting from @code{.po}
 @cindex portable object files @subentry converting to message object files
 @cindex files @subentry portable object @subentry converting to message object 
files
 @cindex message object files @subentry converting from portable object files
@@ -31297,7 +31300,7 @@ version of @command{gawk}.
 @cindex arbitrary precision
 @cindex multiple precision
 @cindex infinite precision
address@hidden floating-point @subentry numbers, arbitrary-precision
address@hidden floating-point @subentry numbers @subentry arbitrary-precision
 
 This @value{CHAPTER} introduces some basic concepts relating to
 how computers do arithmetic and defines some important terms.
@@ -31388,9 +31391,9 @@ Modern systems support floating-point arithmetic in 
hardware, with a
 limited range of values.  There are software libraries that allow
 the use of arbitrary-precision floating-point calculations.
 
address@hidden floating-point @subentry numbers, single-precision
address@hidden floating-point @subentry numbers, double-precision
address@hidden floating-point @subentry numbers, arbitrary-precision
address@hidden floating-point @subentry numbers @subentry single-precision
address@hidden floating-point @subentry numbers @subentry double-precision
address@hidden floating-point @subentry numbers @subentry arbitrary-precision
 @cindex single-precision
 @cindex double-precision
 @cindex arbitrary precision
@@ -33152,7 +33155,7 @@ process and reduces the time needed to create the value.
 @node Memory Allocation Functions
 @subsection Memory Allocation Functions and Convenience Macros
 @cindex allocating memory for extensions
address@hidden extensions @subentry allocating memory
address@hidden extensions @subentry loadable @subentry allocating memory
 @cindex memory, allocating for extensions
 
 The API provides a number of @dfn{memory allocation} functions for
@@ -33346,7 +33349,7 @@ to be a @samp{char *} value pointing to data previously 
obtained from
 @node Registration Functions
 @subsection Registration Functions
 @cindex register extension
address@hidden extension registration
address@hidden extensions @subentry loadable @subentry registration
 
 This @value{SECTION} describes the API functions for
 registering parts of your extension with @command{gawk}.
@@ -34574,7 +34577,7 @@ you should release any cached values that you created, 
using
 @node Array Manipulation
 @subsection Array Manipulation
 @cindex array manipulation in extensions
address@hidden extensions @subentry array manipulation in
address@hidden extensions @subentry loadable @subentry array manipulation in
 
 The primary data address@hidden, the only data structure.} in @command{awk}
 is the associative array (@pxref{Arrays}).
@@ -35564,7 +35567,7 @@ The @code{get_file()} API is new
 
 @node Finding Extensions
 @section How @command{gawk} Finds Extensions
address@hidden extension search path
address@hidden extensions @subentry loadable @subentry search path
 @cindex finding extensions
 
 Compiled extensions have to be installed in a directory where
@@ -35576,7 +35579,7 @@ path with a list of directories to search for compiled 
extensions.
 
 @node Extension Example
 @section Example: Some File Functions
address@hidden extension example
address@hidden extensions @subentry loadable @subentry example
 
 @quotation
 @i{No matter where you go, there you are.}
@@ -36214,7 +36217,7 @@ $ @kbd{AWKLIBPATH=$PWD gawk -f testff.awk}
 
 @node Extension Samples
 @section The Sample Extensions in the @command{gawk} Distribution
address@hidden extensions distributed with @command{gawk}
address@hidden extensions @subentry loadable @subentry distributed with 
@command{gawk}
 
 This @value{SECTION} provides a brief overview of the sample extensions
 that come in the @command{gawk} distribution. Some of them are intended
@@ -36918,8 +36921,7 @@ for more information.
 
 @node gawkextlib
 @section The @code{gawkextlib} Project
address@hidden @code{gawkextlib}
address@hidden extensions @subentry where to find
address@hidden extensions @subentry loadable @subentry @code{gawkextlib} project
 
 @cindex @code{gawkextlib} project
 The @uref{https://sourceforge.net/projects/gawkextlib/, @code{gawkextlib}}
@@ -37486,7 +37488,7 @@ available in his @command{awk}.
 @appendixsec Extensions in @command{gawk} Not in POSIX @command{awk}
 
 @cindex compatibility mode (@command{gawk}) @subentry extensions
address@hidden extensions @subentry in @command{gawk} @subentry not in POSIX 
@command{awk}
address@hidden extensions @subentry in @command{gawk}, not in POSIX 
@command{awk}
 @cindex POSIX @subentry @command{gawk} extensions not included in
 The GNU implementation, @command{gawk}, adds a large number of features.
 They can all be disabled with either the @option{--traditional} or
@@ -39624,6 +39626,7 @@ See also the @file{README_d/README.pc} file in the 
distribution.
 
 @node PC Binary Installation
 @appendixsubsubsec Installing a Prepared Distribution for MS-Windows Systems
address@hidden installation @subentry MS-Windows
 
 The only supported binary distribution for MS-Windows systems
 is that provided by Eli Zaretskii's 
@uref{https://sourceforge.net/projects/ezwinports/,
@@ -39679,7 +39682,7 @@ variable.  If @env{AWKPATH} is not set or is empty, 
then the default
 search path is @address@hidden;c:/lib/awk;c:/gnu/lib/awk}}.
 
 @cindex common extensions @subentry @code{BINMODE} variable
address@hidden extensions @subentry common, @code{BINMODE} variable
address@hidden extensions @subentry common @subentry @code{BINMODE} variable
 @cindex differences in @command{awk} and @command{gawk} @subentry 
@code{BINMODE} variable
 @cindex @code{BINMODE} variable
 Under MS-Windows,
@@ -39796,6 +39799,10 @@ When compared to GNU/Linux on the same system, the 
@samp{configure}
 step on Cygwin takes considerably longer.  However, it does finish,
 and then the @samp{make} proceeds as usual.
 
address@hidden installation @subentry Cygwin
+You may also install @command{gawk} using the regular Cygwin installer.
+In general Cygwin supplies the latest released version.
+
 Recent versions of Cygwin open all files in binary mode. This means
 that you should use @samp{RS = "\r?\n"} in order to be able to
 handle standard MS-Windows text files with carriage-return plus
@@ -39824,7 +39831,7 @@ translation of @code{"\r\n"}, because it won't.
 @c now address@hidden
 
 @cindex @command{gawk} @subentry VMS version of
address@hidden installation, VMS
address@hidden installation @subentry VMS
 This @value{SUBSECTION} describes how to compile and install @command{gawk} 
under VMS.
 The older designation ``VMS'' is used throughout to refer to OpenVMS.
 
@@ -40064,7 +40071,7 @@ Older versions of @command{gawk} for VMS treated a Unix 
exit code 0 as 1,
 a failure as 2, a fatal error as 4, and passed all the other numbers through.
 This violated the VMS exit status coding requirements.
 
address@hidden floating-point @subentry VAX/VMS
address@hidden floating-point @subentry numbers @subentry VAX/VMS
 VAX/VMS floating point uses unbiased rounding. @xref{Round Function}.
 
 VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE}
@@ -40518,7 +40525,6 @@ with 1--2 hours of work.  Making it more generally 
portable (using
 GNU Autoconf and/or Automake) would take more work, and this
 has not been done, at least to our knowledge.
 
address@hidden Illumos
 @cindex Illumos, POSIX-compliant @command{awk}
 @cindex source code @subentry Illumos @command{awk}
 The source code used to be available from the OpenSolaris website.
@@ -40659,7 +40665,7 @@ maintainers of @command{gawk}.  Everything in it 
applies specifically to
 @cindex @command{gawk} @subentry implementation issues @subentry downward 
compatibility
 @cindex @command{gawk} @subentry implementation issues @subentry debugging
 @cindex troubleshooting @subentry @command{gawk}
address@hidden implementation address@hidden @command{gawk}, debugging
address@hidden implementation issues @subentry @command{gawk} @subentry 
debugging
 
 @xref{POSIX/GNU},
 for a summary of the GNU extensions to the @command{awk} language and program.
@@ -42059,8 +42065,8 @@ See ``Bracket Expression.''
 See ``Bracket Expression.''
 
 @cindex ASCII
address@hidden ISO 8859-1
address@hidden ISO Latin-1
address@hidden ISO @subentry ISO 8859-1 character set
address@hidden ISO @subentry ISO Latin-1 character set
 @cindex character sets (machine character encodings)
 @cindex Unicode
 @item Character Set

-----------------------------------------------------------------------

Summary of changes:
 doc/gawk.texi   | 303 ++++++++++++++++++++++++++++++--------------------------
 doc/gawktexi.in | 130 ++++++++++++------------
 2 files changed, 228 insertions(+), 205 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]