gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, master, updated. 440d03600a15452975c8fe2


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. 440d03600a15452975c8fe2e0c1bf349cd452bad
Date: Thu, 09 May 2013 12:47:29 +0000

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, master has been updated
       via  440d03600a15452975c8fe2e0c1bf349cd452bad (commit)
      from  f23270d71c3cdb85b79677f07378eac9e6bcafb5 (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=440d03600a15452975c8fe2e0c1bf349cd452bad

commit 440d03600a15452975c8fe2e0c1bf349cd452bad
Author: Arnold D. Robbins <address@hidden>
Date:   Thu May 9 15:43:49 2013 +0300

    More doc cleanups.

diff --git a/TODO b/TODO
index bcc6cf6..421d101 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-Thu May  2 22:37:09 IDT 2013
+Thu May  9 15:31:55 IDT 2013
 ============================
 
 There were too many files tracking different thoughts and ideas for
@@ -32,6 +32,9 @@ Minor Cleanups and Code Improvements
        In test/Makefile.am and generation scripts, quote $(srcdir) etc.
        for windows or other systems with spaces in path names. Fun.
 
+       Enhance profiling to same comments in a byte-code that does nothing
+       but that can be used when pretty printing the program.
+
 Minor New Features
 ------------------
 
diff --git a/doc/ChangeLog b/doc/ChangeLog
index aabda0f..6eec6ed 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -2,6 +2,7 @@
 
        * gawktexi.in, gawk.1: Document that a regexp constant as the second
        argument to index() produces a fatal error.
+       * gawktexi.in: More cleanups. Particularly, cleanup the index.
 
 2013-04-27         Arnold D. Robbins     <address@hidden>
 
diff --git a/doc/gawk.info b/doc/gawk.info
index 7d4f0d5..32f8ccc 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1011,7 +1011,7 @@ for translating program messages into different languages 
at runtime.
 arithmetic facilities provided by `gawk'.
 
    *note Dynamic Extensions::, describes how to add new variables and
-functions to `gawk' by writing extensions in C.
+functions to `gawk' by writing extensions in C or C++.
 
    Part IV provides the appendices, the Glossary, and two licenses that
 cover the `gawk' source code and this Info file, respectively.  It
@@ -1032,8 +1032,7 @@ directions for `gawk' development.
 
    *note Basic Concepts::, provides some very cursory background
 material for those who are completely unfamiliar with computer
-programming.  Also centralized there is a discussion of some of the
-issues surrounding floating-point numbers.
+programming.
 
    The *note Glossary::, defines most, if not all, the significant
 terms used throughout the book.  If you find terms that you aren't
@@ -1155,10 +1154,11 @@ Guide'.
    This edition maintains the basic structure of the previous editions.
 For Edition 4.0, the content has been thoroughly reviewed and updated.
 All references to `gawk' versions prior to 4.0 have been removed.  Of
-significant note for this edition is *note Debugger::.
+significant note for this edition was *note Debugger::.
 
-   For edition 4.1, the content has been reorganized into parts, and
-the major new addition is *note Dynamic Extensions::.
+   For edition 4, the content has been reorganized into parts, and the
+major new additions are *note Arbitrary Precision Arithmetic::, and
+*note Dynamic Extensions::.
 
    `GAWK: Effective AWK Programming' will undoubtedly continue to
 evolve.  An electronic version comes with the `gawk' distribution from
@@ -1289,7 +1289,7 @@ to take advantage of those opportunities.
 Arnold Robbins
 Nof Ayalon
 ISRAEL
-April, 2013
+May, 2013
 
 
 File: gawk.info,  Node: Getting Started,  Next: Invoking Gawk,  Prev: Preface, 
 Up: Top
@@ -7143,8 +7143,8 @@ decimal point when reading the `awk' program source code, 
and for
 command-line variable assignments (*note Other Arguments::).  However,
 when interpreting input data, for `print' and `printf' output, and for
 number to string conversion, the local decimal point character is used.
-Here are some examples indicating the difference in behavior, on a
-GNU/Linux system:
+(d.c.).  Here are some examples indicating the difference in behavior,
+on a GNU/Linux system:
 
      $ export POSIXLY_CORRECT=1                        Force POSIX behavior
      $ gawk 'BEGIN { printf "%g\n", 3.1415927 }'
@@ -7241,17 +7241,17 @@ scores:
    The following list provides the arithmetic operators in `awk', in
 order from the highest precedence to the lowest:
 
+`X ^ Y'
+`X ** Y'
+     Exponentiation; X raised to the Y power.  `2 ^ 3' has the value
+     eight; the character sequence `**' is equivalent to `^'. (c.e.)
+
 `- X'
      Negation.
 
 `+ X'
      Unary plus; the expression is converted to a number.
 
-`X ^ Y'
-`X ** Y'
-     Exponentiation; X raised to the Y power.  `2 ^ 3' has the value
-     eight; the character sequence `**' is equivalent to `^'. (c.e.)
-
 `X * Y'
      Multiplication.
 
@@ -8669,8 +8669,8 @@ program are merged, in the order they are read by `gawk', 
and all
 reads the first record from a file.  `FILENAME' is set to the name of
 the current file, and `FNR' is set to zero.
 
-   The `BEGINFILE' rule provides you the opportunity for two tasks that
-would otherwise be difficult or impossible to perform:
+   The `BEGINFILE' rule provides you the opportunity to accomplish two
+tasks that would otherwise be difficult or impossible to perform:
 
    * You can test if the file is readable.  Normally, it is a fatal
      error if a file named on the command line cannot be opened for
@@ -18651,7 +18651,8 @@ output.  They are as follows:
      scalar, it gets parenthesized.
 
    * `gawk' supplies leading comments in front of the `BEGIN' and `END'
-     rules, the pattern/action rules, and the functions.
+     rules, the `BEGINFILE' and `ENDFILE' rules, the pattern/action
+     rules, and the functions.
 
 
    The profiled version of your program may not look exactly like what
@@ -18807,7 +18808,7 @@ in this order:
      `fr.po' for a French translation.
 
   5. Each language's `.po' file is converted into a binary message
-     object (`.mo') file.  A message object file contains the original
+     object (`.gmo') file.  A message object file contains the original
      messages and their translations in a binary format that allows
      fast lookup of translations at runtime.
 
@@ -18815,7 +18816,7 @@ in this order:
      are installed in a standard place.
 
   7. For testing and development, it is possible to tell `gettext' to
-     use `.mo' files in a different directory than the standard one by
+     use `.gmo' files in a different directory than the standard one by
      using the `bindtextdomain()' function.
 
   8. At runtime, `guide' looks up each string via a call to
@@ -18946,7 +18947,7 @@ internationalization:
      function apply.
 
 `bindtextdomain(DIRECTORY [, DOMAIN])'
-     Change the directory in which `gettext' looks for `.mo' files, in
+     Change the directory in which `gettext' looks for `.gmo' files, in
      case they will not or cannot be placed in the standard locations
      (e.g., during testing).  Return the directory in which DOMAIN is
      "bound."
@@ -18986,7 +18987,7 @@ outlined in *note Explaining gettext::, like so:
      (`"adminprog"') in which to find the message, but it uses the
      default `"LC_MESSAGES"' category.
 
-  4. During development, you might want to put the `.mo' file in a
+  4. During development, you might want to put the `.gmo' file in a
      private directory for testing.  This is done with the
      `bindtextdomain()' built-in function:
 
@@ -19250,19 +19251,19 @@ Following are the translations:
      msgstr "Like, the scoop is"
 
    The next step is to make the directory to hold the binary message
-object file and then to create the `guide.mo' file.  The directory
+object file and then to create the `guide.gmo' file.  The directory
 layout shown here is standard for GNU `gettext' on GNU/Linux systems.
 Other versions of `gettext' may use a different layout:
 
      $ mkdir en_US en_US/LC_MESSAGES
 
    The `msgfmt' utility does the conversion from human-readable `.po'
-file to machine-readable `.mo' file.  By default, `msgfmt' creates a
+file to machine-readable `.gmo' file.  By default, `msgfmt' creates a
 file named `messages'.  This file must be renamed and placed in the
 proper directory so that `gawk' can find it:
 
      $ msgfmt guide-mellow.po
-     $ mv messages en_US/LC_MESSAGES/guide.mo
+     $ mv messages en_US/LC_MESSAGES/guide.gmo
 
    Finally, we run the program to test it:
 
@@ -25143,6 +25144,10 @@ Feature                      BWK Awk   Mawk   GNU Awk
 `BINMODE' variable                     X      X
 Time related functions                 X      X
 
+   (Technically speaking, as of late 2012, `fflush()', `delete ARRAY',
+and `nextfile' are no longer extensions, since they have been added to
+POSIX.)
+
 
 File: gawk.info,  Node: Ranges and Locales,  Next: Contributors,  Prev: Common 
Extensions,  Up: Language History
 
@@ -25317,7 +25322,8 @@ Info file, in approximate chronological order:
      various PC platforms.
 
    * Christos Zoulas provided the `extension()' built-in function for
-     dynamically adding new modules.  (This was removed at `gawk' 4.1.)
+     dynamically adding new modules.  (This was obsoleted at `gawk'
+     4.1.)
 
    * Ju"rgen Kahrs contributed the initial version of the TCP/IP
      networking code and documentation, and motivated the inclusion of
@@ -25365,6 +25371,8 @@ Info file, in approximate chronological order:
         - The work to merge the three versions of `gawk' into one, for
           the 4.1 release.
 
+        - Improved array internals for arrays indexed by integers.
+
    * Efraim Yawitz contributed the original text for *note Debugger::.
 
    * The development of the extension API first released with `gawk'
@@ -27851,7 +27859,7 @@ Octal
      Thus, `013' is 11 (one times 8 plus 3).  *Note
      Nondecimal-numbers::.
 
-P1003.1, P1003.2
+P1003.1
      See "POSIX."
 
 Pattern
@@ -29269,11 +29277,9 @@ Index
 * ! (exclamation point), !~ operator:    Regexp Usage.        (line  19)
 * " (double quote) <1>:                  Quoting.             (line  37)
 * " (double quote):                      Read Terminal.       (line  25)
-* " (double quote), regexp constants:    Computed Regexps.    (line  28)
+* " (double quote), in regexp constants: Computed Regexps.    (line  28)
 * # (number sign), #! (executable scripts): Executable Scripts.
                                                               (line   6)
-* # (number sign), #! (executable scripts), portability issues with: 
Executable Scripts.
-                                                              (line   6)
 * # (number sign), commenting:           Comments.            (line   6)
 * $ (dollar sign):                       Regexp Operators.    (line  35)
 * $ (dollar sign), $ field operator <1>: Precedence.          (line  43)
@@ -29308,15 +29314,13 @@ Index
 * * (asterisk), *= operator:             Assignment Ops.      (line 129)
 * + (plus sign):                         Regexp Operators.    (line 102)
 * + (plus sign), + operator:             Precedence.          (line  52)
-* + (plus sign), ++ (decrement/increment operators): Increment Ops.
-                                                              (line  11)
 * + (plus sign), ++ operator <1>:        Precedence.          (line  46)
-* + (plus sign), ++ operator:            Increment Ops.       (line  40)
+* + (plus sign), ++ operator:            Increment Ops.       (line  11)
 * + (plus sign), += operator <1>:        Precedence.          (line  95)
 * + (plus sign), += operator:            Assignment Ops.      (line  82)
 * , (comma), in range patterns:          Ranges.              (line   6)
 * - (hyphen), - operator:                Precedence.          (line  52)
-* - (hyphen), -- (decrement/increment) operator: Precedence.  (line  46)
+* - (hyphen), -- operator <1>:           Precedence.          (line  46)
 * - (hyphen), -- operator:               Increment Ops.       (line  48)
 * - (hyphen), -= operator <1>:           Precedence.          (line  95)
 * - (hyphen), -= operator:               Assignment Ops.      (line 129)
@@ -29382,7 +29386,7 @@ Index
 * -F option:                             Options.             (line  21)
 * -f option:                             Long.                (line  12)
 * -F option, -Ft sets FS to TAB:         Options.             (line 301)
-* -f option, on command line:            Options.             (line 306)
+* -f option, multiple uses:              Options.             (line 306)
 * -g option:                             Options.             (line 161)
 * -h option:                             Options.             (line 168)
 * -i option:                             Options.             (line  32)
@@ -29396,18 +29400,18 @@ Index
 * -p option:                             Options.             (line 235)
 * -r option:                             Options.             (line 272)
 * -S option:                             Options.             (line 279)
+* -v option:                             Assignment Options.  (line  12)
 * -V option:                             Options.             (line 293)
 * -v option:                             Options.             (line  46)
-* -v option, variables, assigning:       Assignment Options.  (line  12)
 * -W option:                             Options.             (line  60)
 * . (period):                            Regexp Operators.    (line  43)
-* .mo files:                             Explaining gettext.  (line  41)
-* .mo files, converting from .po:        I18N Example.        (line  62)
-* .mo files, specifying directory of <1>: Programmer i18n.    (line  47)
-* .mo files, specifying directory of:    Explaining gettext.  (line  53)
+* .gmo files:                            Explaining gettext.  (line  41)
+* .gmo files, converting from .po:       I18N Example.        (line  62)
+* .gmo files, specifying directory of <1>: Programmer i18n.   (line  47)
+* .gmo files, specifying directory of:   Explaining gettext.  (line  53)
 * .po files <1>:                         Translator i18n.     (line   6)
 * .po files:                             Explaining gettext.  (line  36)
-* .po files, converting to .mo:          I18N Example.        (line  62)
+* .po files, converting to .gmo:         I18N Example.        (line  62)
 * .pot files:                            Explaining gettext.  (line  30)
 * / (forward slash):                     Regexp.              (line  10)
 * / (forward slash), / operator:         Precedence.          (line  55)
@@ -29488,7 +29492,7 @@ Index
 * \ (backslash), \x escape sequence:     Escape Sequences.    (line  61)
 * \ (backslash), \y operator (gawk):     GNU Regexp Operators.
                                                               (line  38)
-* \ (backslash), as field separators:    Command Line Field Separator.
+* \ (backslash), as field separator:     Command Line Field Separator.
                                                               (line  27)
 * \ (backslash), continuing lines and <1>: Egrep Program.     (line 220)
 * \ (backslash), continuing lines and:   Statements/Lines.    (line  19)
@@ -29502,17 +29506,17 @@ Index
 * \ (backslash), in escape sequences:    Escape Sequences.    (line   6)
 * \ (backslash), in escape sequences, POSIX and: Escape Sequences.
                                                               (line 112)
-* \ (backslash), regexp constants:       Computed Regexps.    (line  28)
-* ^ (caret) <1>:                         GNU Regexp Operators.
+* \ (backslash), in regexp constants:    Computed Regexps.    (line  28)
+* ^ (caret):                             GNU Regexp Operators.
                                                               (line  59)
-* ^ (caret):                             Regexp Operators.    (line  22)
 * ^ (caret), ^ operator:                 Precedence.          (line  49)
 * ^ (caret), ^= operator <1>:            Precedence.          (line  95)
 * ^ (caret), ^= operator:                Assignment Ops.      (line 129)
 * ^ (caret), in bracket expressions:     Bracket Expressions. (line  17)
+* ^ (caret), regexp operator:            Regexp Operators.    (line  22)
 * ^, in FS:                              Regexp Field Splitting.
                                                               (line  59)
-* _ (underscore), _ C macro:             Explaining gettext.  (line  70)
+* _ (underscore), C macro:               Explaining gettext.  (line  70)
 * _ (underscore), in names of private variables: Library Names.
                                                               (line  29)
 * _ (underscore), translatable string:   Programmer i18n.     (line  69)
@@ -29530,14 +29534,12 @@ Index
 * adding, fields:                        Changing Fields.     (line  53)
 * advanced features, fixed-width data:   Constant Size.       (line   9)
 * advanced features, gawk:               Advanced Features.   (line   6)
-* advanced features, gawk, network programming: TCP/IP Networking.
-                                                              (line   6)
-* advanced features, gawk, nondecimal input data: Nondecimal Data.
-                                                              (line   6)
-* advanced features, gawk, processes, communicating with: Two-way I/O.
-                                                              (line  23)
 * advanced features, network connections, See Also networks, connections: 
Advanced Features.
                                                               (line   6)
+* advanced features, network programming: TCP/IP Networking.  (line   6)
+* advanced features, nondecimal input data: Nondecimal Data.  (line   6)
+* advanced features, processes, communicating with: Two-way I/O.
+                                                              (line  23)
 * advanced features, specifying field content: Splitting By Content.
                                                               (line   9)
 * Aho, Alfred <1>:                       Contributors.        (line  12)
@@ -29638,7 +29640,6 @@ Index
 * atan2() function:                      Numeric Functions.   (line  11)
 * awf (amazingly workable formatter) program: Glossary.       (line  25)
 * awk debugging, enabling:               Options.             (line 122)
-* awk enabling:                          Options.             (line 220)
 * awk language, POSIX version:           Assignment Ops.      (line 136)
 * awk profiling, enabling:               Options.             (line 235)
 * awk programs <1>:                      Two Rules.           (line   6)
@@ -29733,7 +29734,7 @@ Index
 * backslash (\), \x escape sequence:     Escape Sequences.    (line  61)
 * backslash (\), \y operator (gawk):     GNU Regexp Operators.
                                                               (line  38)
-* backslash (\), as field separators:    Command Line Field Separator.
+* backslash (\), as field separator:     Command Line Field Separator.
                                                               (line  27)
 * backslash (\), continuing lines and <1>: Egrep Program.     (line 220)
 * backslash (\), continuing lines and:   Statements/Lines.    (line  19)
@@ -29747,7 +29748,7 @@ Index
 * backslash (\), in escape sequences:    Escape Sequences.    (line   6)
 * backslash (\), in escape sequences, POSIX and: Escape Sequences.
                                                               (line 112)
-* backslash (\), regexp constants:       Computed Regexps.    (line  28)
+* backslash (\), in regexp constants:    Computed Regexps.    (line  28)
 * backtrace debugger command:            Execution Stack.     (line  13)
 * BBS-list file:                         Sample Data Files.   (line   6)
 * Beebe, Nelson <1>:                     Other Versions.      (line  78)
@@ -29777,7 +29778,7 @@ Index
 * BEGINFILE pattern, Boolean patterns and: Expression Patterns.
                                                               (line  73)
 * beginfile() user-defined function:     Filetrans Function.  (line  62)
-* Benzinger, Michael:                    Contributors.        (line  97)
+* Benzinger, Michael:                    Contributors.        (line  98)
 * Berry, Karl:                           Acknowledgments.     (line  33)
 * binary input/output:                   User-modified.       (line  10)
 * bindtextdomain() function (C library): Explaining gettext.  (line  49)
@@ -29820,14 +29821,14 @@ Index
 * Brennan, Michael <2>:                  Two-way I/O.         (line   6)
 * Brennan, Michael <3>:                  Simple Sed.          (line  25)
 * Brennan, Michael:                      Delete.              (line  56)
-* Brian Kernighan's awk, extensions <1>: Other Versions.      (line  13)
+* Brian Kernighan's awk:                 Other Versions.      (line  13)
 * Brian Kernighan's awk, extensions:     BTL.                 (line   6)
-* Broder, Alan J.:                       Contributors.        (line  88)
-* Brown, Martin:                         Contributors.        (line  82)
+* Broder, Alan J.:                       Contributors.        (line  89)
+* Brown, Martin:                         Contributors.        (line  83)
 * BSD-based operating systems:           Glossary.            (line 624)
 * bt debugger command (alias for backtrace): Execution Stack. (line  13)
 * Buening, Andreas <1>:                  Bugs.                (line  71)
-* Buening, Andreas <2>:                  Contributors.        (line  92)
+* Buening, Andreas <2>:                  Contributors.        (line  93)
 * Buening, Andreas:                      Acknowledgments.     (line  60)
 * buffering, input/output <1>:           Two-way I/O.         (line  70)
 * buffering, input/output:               I/O Functions.       (line 137)
@@ -29848,13 +29849,13 @@ Index
                                                               (line  47)
 * call by value:                         Pass By Value/Reference.
                                                               (line  18)
-* caret (^) <1>:                         GNU Regexp Operators.
+* caret (^):                             GNU Regexp Operators.
                                                               (line  59)
-* caret (^):                             Regexp Operators.    (line  22)
 * caret (^), ^ operator:                 Precedence.          (line  49)
 * caret (^), ^= operator <1>:            Precedence.          (line  95)
 * caret (^), ^= operator:                Assignment Ops.      (line 129)
 * caret (^), in bracket expressions:     Bracket Expressions. (line  17)
+* caret (^), regexp operator:            Regexp Operators.    (line  22)
 * case keyword:                          Switch Statement.    (line   6)
 * case sensitivity, array indices and:   Array Intro.         (line  92)
 * case sensitivity, converting case:     String Functions.    (line 524)
@@ -29874,7 +29875,11 @@ Index
 * characters, transliterating:           Translate Program.   (line   6)
 * characters, values of as numbers:      Ordinal Functions.   (line   6)
 * Chassell, Robert J.:                   Acknowledgments.     (line  33)
+* chdir extension function:              Extension Sample File Functions.
+                                                              (line  12)
 * chem utility:                          Glossary.            (line 151)
+* chr extension function:                Extension Sample Ord.
+                                                              (line  15)
 * chr() user-defined function:           Ordinal Functions.   (line  16)
 * clear debugger command:                Breakpoint Control.  (line  36)
 * Cliff random numbers:                  Cliff Random Function.
@@ -29887,7 +29892,7 @@ Index
 * close() function <3>:                  Getline/Pipe.        (line  28)
 * close() function:                      Getline/Variable/File.
                                                               (line  30)
-* close() function, return values:       Close Files And Pipes.
+* close() function, return value:        Close Files And Pipes.
                                                               (line 130)
 * close() function, two-way pipes and:   Two-way I/O.         (line  77)
 * Close, Diane <1>:                      Contributors.        (line  21)
@@ -29920,7 +29925,7 @@ Index
                                                               (line  10)
 * commenting:                            Comments.            (line   6)
 * commenting, backslash continuation and: Statements/Lines.   (line  76)
-* common extensions, ** operator:        Arithmetic Ops.      (line  36)
+* common extensions, ** operator:        Arithmetic Ops.      (line  30)
 * common extensions, **= operator:       Assignment Ops.      (line 136)
 * common extensions, /dev/stderr special file: Special FD.    (line  46)
 * common extensions, /dev/stdin special file: Special FD.     (line  46)
@@ -29928,11 +29933,9 @@ Index
 * common extensions, \x escape sequence: Escape Sequences.    (line  61)
 * common extensions, BINMODE variable:   PC Using.            (line  34)
 * common extensions, delete to delete entire arrays: Delete.  (line  39)
-* common extensions, fflush() function:  I/O Functions.       (line  25)
 * common extensions, func keyword:       Definition Syntax.   (line  83)
 * common extensions, length() applied to an array: String Functions.
                                                               (line 198)
-* common extensions, nextfile statement: Nextfile Statement.  (line   6)
 * common extensions, RS as a regexp:     Records.             (line 120)
 * common extensions, single character fields: Single Character Fields.
                                                               (line   6)
@@ -30009,9 +30012,10 @@ Index
 * d debugger command (alias for delete): Breakpoint Control.  (line  64)
 * d.c., See dark corner:                 Conventions.         (line  38)
 * dark corner <1>:                       Glossary.            (line 197)
-* dark corner <2>:                       Truth Values.        (line  24)
-* dark corner <3>:                       Assignment Ops.      (line 147)
 * dark corner:                           Conventions.         (line  38)
+* dark corner, "0" is actually true:     Truth Values.        (line  24)
+* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
+                                                              (line 147)
 * dark corner, ^, in FS:                 Regexp Field Splitting.
                                                               (line  59)
 * dark corner, array subscripts:         Uninitialized Subscripts.
@@ -30037,6 +30041,7 @@ Index
 * dark corner, input files:              Records.             (line 103)
 * dark corner, invoking awk:             Command Line.        (line  16)
 * dark corner, length() function:        String Functions.    (line 184)
+* dark corner, locale's decimal point character: Conversion.  (line  77)
 * dark corner, multiline records:        Multiple Line.       (line  35)
 * dark corner, NF variable, decrementing: Changing Fields.    (line 107)
 * dark corner, OFMT variable:            OFMT.                (line  27)
@@ -30058,7 +30063,7 @@ Index
 * dates, converting to timestamps:       Time Functions.      (line  75)
 * dates, information related to, localization: Explaining gettext.
                                                               (line 115)
-* Davies, Stephen <1>:                   Contributors.        (line  74)
+* Davies, Stephen <1>:                   Contributors.        (line  75)
 * Davies, Stephen:                       Acknowledgments.     (line  60)
 * dcgettext() function (gawk) <1>:       Programmer i18n.     (line  19)
 * dcgettext() function (gawk):           I18N Functions.      (line  22)
@@ -30190,6 +30195,8 @@ Index
                                                               (line   6)
 * differences in awk and gawk, BEGIN/END patterns: I/O And BEGIN/END.
                                                               (line  16)
+* differences in awk and gawk, BEGINFILE/ENDFILE patterns: BEGINFILE/ENDFILE.
+                                                              (line   6)
 * differences in awk and gawk, BINMODE variable <1>: PC Using.
                                                               (line  34)
 * differences in awk and gawk, BINMODE variable: User-modified.
@@ -30222,8 +30229,6 @@ Index
 * differences in awk and gawk, LINT variable: User-modified.  (line  98)
 * differences in awk and gawk, match() function: String Functions.
                                                               (line 261)
-* differences in awk and gawk, next/nextfile statements: Nextfile Statement.
-                                                              (line   6)
 * differences in awk and gawk, print/printf statements: Format Modifiers.
                                                               (line  13)
 * differences in awk and gawk, PROCINFO array: Auto-set.      (line 130)
@@ -30269,7 +30274,7 @@ Index
 * double precision floating-point:       General Arithmetic.  (line  21)
 * double quote (") <1>:                  Quoting.             (line  37)
 * double quote ("):                      Read Terminal.       (line  25)
-* double quote ("), regexp constants:    Computed Regexps.    (line  28)
+* double quote ("), in regexp constants: Computed Regexps.    (line  28)
 * down debugger command:                 Execution Stack.     (line  21)
 * Drepper, Ulrich:                       Acknowledgments.     (line  52)
 * dump debugger command:                 Miscellaneous Debugger Commands.
@@ -30359,6 +30364,7 @@ Index
 * exit status, of gawk:                  Exit Status.         (line   6)
 * exp() function:                        Numeric Functions.   (line  18)
 * expand utility:                        Very Simple.         (line  69)
+* Expat XML parser library:              gawkextlib.          (line  33)
 * expressions:                           Expressions.         (line   6)
 * expressions, as patterns:              Expression Patterns. (line   6)
 * expressions, assignment:               Assignment Ops.      (line   6)
@@ -30370,9 +30376,9 @@ Index
                                                               (line   9)
 * expressions, selecting:                Conditional Exp.     (line   6)
 * Extended Regular Expressions (EREs):   Bracket Expressions. (line  24)
-* extensions, Brian Kernighan's awk <1>: Other Versions.      (line  13)
+* extensions, Brian Kernighan's awk <1>: Common Extensions.   (line   6)
 * extensions, Brian Kernighan's awk:     BTL.                 (line   6)
-* extensions, common, ** operator:       Arithmetic Ops.      (line  36)
+* extensions, common, ** operator:       Arithmetic Ops.      (line  30)
 * extensions, common, **= operator:      Assignment Ops.      (line 136)
 * extensions, common, /dev/stderr special file: Special FD.   (line  46)
 * extensions, common, /dev/stdin special file: Special FD.    (line  46)
@@ -30380,15 +30386,14 @@ Index
 * extensions, common, \x escape sequence: Escape Sequences.   (line  61)
 * extensions, common, BINMODE variable:  PC Using.            (line  34)
 * extensions, common, delete to delete entire arrays: Delete. (line  39)
-* extensions, common, fflush() function: I/O Functions.       (line  25)
 * extensions, common, func keyword:      Definition Syntax.   (line  83)
 * extensions, common, length() applied to an array: String Functions.
                                                               (line 198)
-* extensions, common, nextfile statement: Nextfile Statement. (line   6)
 * extensions, common, RS as a regexp:    Records.             (line 120)
 * extensions, common, single character fields: Single Character Fields.
                                                               (line   6)
 * extensions, in gawk, not in POSIX awk: POSIX/GNU.           (line   6)
+* extensions, mawk:                      Common Extensions.   (line   6)
 * extract.awk program:                   Extract Program.     (line  79)
 * extraction, of marked strings (internationalization): String Extraction.
                                                               (line   6)
@@ -30445,13 +30450,13 @@ Index
 * FILENAME variable:                     Reading Files.       (line   6)
 * FILENAME variable, getline, setting with: Getline Notes.    (line  19)
 * filenames, assignments as:             Ignoring Assigns.    (line   6)
-* files, .mo:                            Explaining gettext.  (line  41)
-* files, .mo, converting from .po:       I18N Example.        (line  62)
-* files, .mo, specifying directory of <1>: Programmer i18n.   (line  47)
-* files, .mo, specifying directory of:   Explaining gettext.  (line  53)
+* files, .gmo:                           Explaining gettext.  (line  41)
+* files, .gmo, converting from .po:      I18N Example.        (line  62)
+* files, .gmo, specifying directory of <1>: Programmer i18n.  (line  47)
+* files, .gmo, specifying directory of:  Explaining gettext.  (line  53)
 * files, .po <1>:                        Translator i18n.     (line   6)
 * files, .po:                            Explaining gettext.  (line  36)
-* files, .po, converting to .mo:         I18N Example.        (line  62)
+* files, .po, converting to .gmo:        I18N Example.        (line  62)
 * files, .pot:                           Explaining gettext.  (line  30)
 * files, /dev/... special files:         Special FD.          (line  46)
 * files, /inet/... (gawk):               TCP/IP Networking.   (line   6)
@@ -30506,11 +30511,15 @@ Index
                                                               (line   6)
 * floating-point, numbers <1>:           Unexpected Results.  (line   6)
 * floating-point, numbers:               General Arithmetic.  (line   6)
+* fnmatch extension function:            Extension Sample Fnmatch.
+                                                              (line   6)
 * FNR variable <1>:                      Auto-set.            (line 103)
 * FNR variable:                          Records.             (line   6)
 * FNR variable, changing:                Auto-set.            (line 311)
 * for statement:                         For Statement.       (line   6)
-* for statement, in arrays:              Scanning an Array.   (line  20)
+* for statement, looping over arrays:    Scanning an Array.   (line  20)
+* fork extension function:               Extension Sample Fork.
+                                                              (line  11)
 * format specifiers, mixing regular with positional specifiers: Printf 
Ordering.
                                                               (line  57)
 * format specifiers, printf statement:   Control Letters.     (line   6)
@@ -30551,6 +30560,8 @@ Index
 * FSF (Free Software Foundation) <1>:    Glossary.            (line 305)
 * FSF (Free Software Foundation) <2>:    Getting.             (line  10)
 * FSF (Free Software Foundation):        Manual History.      (line   6)
+* fts extension function:                Extension Sample File Functions.
+                                                              (line  77)
 * FUNCTAB array:                         Auto-set.            (line 119)
 * function calls:                        Function Calls.      (line   6)
 * function calls, indirect:              Indirect Calls.      (line   6)
@@ -30599,7 +30610,7 @@ Index
                                                               (line  45)
 * G-d:                                   Acknowledgments.     (line  78)
 * Garfinkle, Scott:                      Contributors.        (line  35)
-* gawk program, dynamic profiling:       Profiling.           (line 171)
+* gawk program, dynamic profiling:       Profiling.           (line 172)
 * gawk, ARGIND variable in:              Other Arguments.     (line  12)
 * gawk, awk and <1>:                     This Manual.         (line  14)
 * gawk, awk and:                         Preface.             (line  23)
@@ -30693,6 +30704,7 @@ Index
 * gawk, VMS version of:                  VMS Installation.    (line   6)
 * gawk, word-boundary operator:          GNU Regexp Operators.
                                                               (line  63)
+* gawkextlib project:                    gawkextlib.          (line   6)
 * General Public License (GPL):          Glossary.            (line 314)
 * General Public License, See GPL:       Manual History.      (line  11)
 * gensub() function (gawk) <1>:          String Functions.    (line  86)
@@ -30736,7 +30748,7 @@ Index
 * gettext library:                       Explaining gettext.  (line   6)
 * gettext library, locale categories:    Explaining gettext.  (line  80)
 * gettext() function (C library):        Explaining gettext.  (line  62)
-* gettimeofday time extension function:  Extension Sample Time.
+* gettimeofday extension function:       Extension Sample Time.
                                                               (line  13)
 * GMP:                                   Arbitrary Precision Arithmetic.
                                                               (line   6)
@@ -30771,19 +30783,19 @@ Index
                                                               (line  66)
 * Hankerson, Darrel <1>:                 Contributors.        (line  61)
 * Hankerson, Darrel:                     Acknowledgments.     (line  60)
-* Haque, John:                           Contributors.        (line 103)
+* Haque, John:                           Contributors.        (line 104)
 * Hartholz, Elaine:                      Acknowledgments.     (line  38)
 * Hartholz, Marshall:                    Acknowledgments.     (line  38)
-* Hasegawa, Isamu:                       Contributors.        (line  94)
+* Hasegawa, Isamu:                       Contributors.        (line  95)
 * help debugger command:                 Miscellaneous Debugger Commands.
                                                               (line  66)
 * hexadecimal numbers:                   Nondecimal-numbers.  (line   6)
 * hexadecimal values, enabling interpretation of: Options.    (line 207)
 * histsort.awk program:                  History Sorting.     (line  25)
 * Hughes, Phil:                          Acknowledgments.     (line  43)
-* HUP signal:                            Profiling.           (line 203)
+* HUP signal:                            Profiling.           (line 204)
 * hyphen (-), - operator:                Precedence.          (line  52)
-* hyphen (-), -- (decrement/increment) operators: Precedence. (line  46)
+* hyphen (-), -- operator <1>:           Precedence.          (line  46)
 * hyphen (-), -- operator:               Increment Ops.       (line  48)
 * hyphen (-), -= operator <1>:           Precedence.          (line  95)
 * hyphen (-), -= operator:               Assignment Ops.      (line 129)
@@ -30815,13 +30827,13 @@ Index
 * implementation issues, gawk, limits <1>: Redirection.       (line 135)
 * implementation issues, gawk, limits:   Getline Notes.       (line  14)
 * in operator <1>:                       Id Program.          (line  93)
-* in operator <2>:                       For Statement.       (line  75)
-* in operator <3>:                       Precedence.          (line  83)
+* in operator <2>:                       Scanning an Array.   (line  17)
+* in operator <3>:                       Reference to Elements.
+                                                              (line  37)
+* in operator <4>:                       For Statement.       (line  75)
+* in operator <5>:                       Precedence.          (line  83)
 * in operator:                           Comparison Operators.
                                                               (line  11)
-* in operator, arrays and <1>:           Scanning an Array.   (line  17)
-* in operator, arrays and:               Reference to Elements.
-                                                              (line  37)
 * increment operators:                   Increment Ops.       (line   6)
 * index() function:                      String Functions.    (line 155)
 * indexing arrays:                       Array Intro.         (line  50)
@@ -30830,6 +30842,8 @@ Index
                                                               (line   6)
 * info debugger command:                 Debugger Info.       (line  13)
 * initialization, automatic:             More Complex.        (line  38)
+* inplace extension:                     Extension Sample Inplace.
+                                                              (line   6)
 * input files:                           Reading Files.       (line   6)
 * input files, closing:                  Close Files And Pipes.
                                                               (line   6)
@@ -30853,7 +30867,7 @@ Index
 * insomnia, cure for:                    Alarm Program.       (line   6)
 * installation, VMS:                     VMS Installation.    (line   6)
 * installing gawk:                       Installation.        (line   6)
-* INT signal (MS-Windows):               Profiling.           (line 206)
+* INT signal (MS-Windows):               Profiling.           (line 207)
 * int() function:                        Numeric Functions.   (line  23)
 * integer, arbitrary precision:          Arbitrary Precision Integers.
                                                               (line   6)
@@ -30892,7 +30906,7 @@ Index
 * jawk:                                  Other Versions.      (line 106)
 * Jedi knights:                          Undocumented.        (line   6)
 * join() user-defined function:          Join Function.       (line  18)
-* Kahrs, Ju"rgen <1>:                    Contributors.        (line  70)
+* Kahrs, Ju"rgen <1>:                    Contributors.        (line  71)
 * Kahrs, Ju"rgen:                        Acknowledgments.     (line  60)
 * Kasal, Stepan:                         Acknowledgments.     (line  60)
 * Kenobi, Obi-Wan:                       Undocumented.        (line   6)
@@ -30904,7 +30918,7 @@ Index
 * Kernighan, Brian <6>:                  Acknowledgments.     (line  72)
 * Kernighan, Brian <7>:                  Conventions.         (line  34)
 * Kernighan, Brian:                      History.             (line  17)
-* kill command, dynamic profiling:       Profiling.           (line 180)
+* kill command, dynamic profiling:       Profiling.           (line 181)
 * Knights, jedi:                         Undocumented.        (line   6)
 * Knuth, Donald:                         Arbitrary Precision Arithmetic.
                                                               (line   6)
@@ -31023,7 +31037,7 @@ Index
 * matching, leftmost longest:            Multiple Line.       (line  26)
 * matching, null strings:                Gory Details.        (line 164)
 * mawk program:                          Other Versions.      (line  44)
-* McPhee, Patrick:                       Contributors.        (line 100)
+* McPhee, Patrick:                       Contributors.        (line 101)
 * message object files:                  Explaining gettext.  (line  41)
 * message object files, converting from portable object files: I18N Example.
                                                               (line  62)
@@ -31106,8 +31120,6 @@ Index
 * null strings, quoting and:             Quoting.             (line  62)
 * number sign (#), #! (executable scripts): Executable Scripts.
                                                               (line   6)
-* number sign (#), #! (executable scripts), portability issues with: 
Executable Scripts.
-                                                              (line   6)
 * number sign (#), commenting:           Comments.            (line   6)
 * numbers, as array subscripts:          Numeric Array Subscripts.
                                                               (line   6)
@@ -31186,6 +31198,8 @@ Index
 * OR bitwise operation:                  Bitwise Functions.   (line   6)
 * or Boolean-logic operator:             Boolean Ops.         (line   6)
 * or() function (gawk):                  Bitwise Functions.   (line  49)
+* ord extension function:                Extension Sample Ord.
+                                                              (line  12)
 * ord() user-defined function:           Ordinal Functions.   (line  16)
 * order of evaluation, concatenation:    Concatenation.       (line  42)
 * ORS variable <1>:                      User-modified.       (line 129)
@@ -31207,11 +31221,10 @@ Index
 * p debugger command (alias for print):  Viewing And Changing Data.
                                                               (line  36)
 * P1003.1 POSIX standard:                Glossary.            (line 462)
-* P1003.2 POSIX standard:                Glossary.            (line 462)
 * parentheses () <1>:                    Profiling.           (line 138)
 * parentheses ():                        Regexp Operators.    (line  79)
 * password file:                         Passwd Functions.    (line  16)
-* patsplit() function:                   String Functions.    (line 295)
+* patsplit() function (gawk):            String Functions.    (line 295)
 * patterns:                              Patterns and Actions.
                                                               (line   6)
 * patterns, comparison expressions as:   Expression Patterns. (line  14)
@@ -31232,7 +31245,7 @@ Index
 * percent sign (%), %= operator:         Assignment Ops.      (line 129)
 * period (.):                            Regexp Operators.    (line  43)
 * Perl:                                  Future Extensions.   (line   6)
-* Peters, Arno:                          Contributors.        (line  85)
+* Peters, Arno:                          Contributors.        (line  86)
 * Peterson, Hal:                         Contributors.        (line  40)
 * pipes, closing:                        Close Files And Pipes.
                                                               (line   6)
@@ -31242,10 +31255,8 @@ Index
 * Pitts, Dave:                           Acknowledgments.     (line  60)
 * plus sign (+):                         Regexp Operators.    (line 102)
 * plus sign (+), + operator:             Precedence.          (line  52)
-* plus sign (+), ++ (decrement/increment operators): Increment Ops.
-                                                              (line  11)
 * plus sign (+), ++ operator <1>:        Precedence.          (line  46)
-* plus sign (+), ++ operator:            Increment Ops.       (line  40)
+* plus sign (+), ++ operator:            Increment Ops.       (line  11)
 * plus sign (+), += operator <1>:        Precedence.          (line  95)
 * plus sign (+), += operator:            Assignment Ops.      (line  82)
 * pointers to functions:                 Indirect Calls.      (line   6)
@@ -31262,7 +31273,6 @@ Index
 * portability, data files as single record: Records.          (line 179)
 * portability, deleting array elements:  Delete.              (line  56)
 * portability, example programs:         Library Functions.   (line  42)
-* portability, fflush() function and:    I/O Functions.       (line  29)
 * portability, functions, defining:      Definition Syntax.   (line  99)
 * portability, gawk:                     New Ports.           (line   6)
 * portability, gettext library and:      Explaining gettext.  (line  10)
@@ -31294,7 +31304,7 @@ Index
 * POSIX awk, ** operator and:            Precedence.          (line  98)
 * POSIX awk, **= operator and:           Assignment Ops.      (line 142)
 * POSIX awk, < operator and:             Getline/File.        (line  26)
-* POSIX awk, arithmetic operators and:   Arithmetic Ops.      (line  36)
+* POSIX awk, arithmetic operators and:   Arithmetic Ops.      (line  30)
 * POSIX awk, backslashes in string constants: Escape Sequences.
                                                               (line 112)
 * POSIX awk, BEGIN/END patterns:         I/O And BEGIN/END.   (line  16)
@@ -31379,8 +31389,7 @@ Index
 * PROCINFO array <6>:                    Auto-set.            (line 130)
 * PROCINFO array:                        Obsolete.            (line  11)
 * profiling awk programs:                Profiling.           (line   6)
-* profiling awk programs, dynamically:   Profiling.           (line 171)
-* profiling gawk:                        Profiling.           (line   6)
+* profiling awk programs, dynamically:   Profiling.           (line 172)
 * program, definition of:                Getting Started.     (line  21)
 * programmers, attractiveness of:        Two-way I/O.         (line   6)
 * programming conventions, --non-decimal-data option: Nondecimal Data.
@@ -31393,7 +31402,8 @@ Index
                                                               (line  10)
 * programming conventions, functions, writing: Definition Syntax.
                                                               (line  55)
-* programming conventions, gawk internals: Internal File Ops. (line  45)
+* programming conventions, gawk extensions: Internal File Ops.
+                                                              (line  45)
 * programming conventions, private variable names: Library Names.
                                                               (line  23)
 * programming language, recipe for:      History.             (line   6)
@@ -31414,7 +31424,7 @@ Index
 * QuikTrim Awk:                          Other Versions.      (line 128)
 * quit debugger command:                 Miscellaneous Debugger Commands.
                                                               (line  99)
-* QUIT signal (MS-Windows):              Profiling.           (line 206)
+* QUIT signal (MS-Windows):              Profiling.           (line 207)
 * quoting <1>:                           Comments.            (line  27)
 * quoting <2>:                           Long.                (line  26)
 * quoting:                               Read Terminal.       (line  25)
@@ -31436,8 +31446,14 @@ Index
 * Rankin, Pat <2>:                       Contributors.        (line  38)
 * Rankin, Pat <3>:                       Assignment Ops.      (line 100)
 * Rankin, Pat:                           Acknowledgments.     (line  60)
+* reada extension function:              Extension Sample Read write array.
+                                                              (line  15)
 * readable data files, checking:         File Checking.       (line   6)
 * readable.awk program:                  File Checking.       (line  11)
+* readdir extension:                     Extension Sample Readdir.
+                                                              (line   9)
+* readfile extension function:           Extension Sample Readfile.
+                                                              (line  11)
 * recipe for a programming language:     History.             (line   6)
 * record separators <1>:                 User-modified.       (line 143)
 * record separators:                     Records.             (line  14)
@@ -31504,9 +31520,13 @@ Index
 * return debugger command:               Debugger Execution Control.
                                                               (line  54)
 * return statement, user-defined functions: Return Statement. (line   6)
-* return values, close() function:       Close Files And Pipes.
+* return value, close() function:        Close Files And Pipes.
                                                               (line 130)
 * rev() user-defined function:           Function Example.    (line  52)
+* revoutput extension:                   Extension Sample Revout.
+                                                              (line  11)
+* revtwoway extension:                   Extension Sample Rev2way.
+                                                              (line  12)
 * rewind() user-defined function:        Rewind Function.     (line  16)
 * right angle bracket (>), > operator <1>: Precedence.        (line  65)
 * right angle bracket (>), > operator:   Comparison Operators.
@@ -31523,7 +31543,7 @@ Index
 * RLENGTH variable, match() function and: String Functions.   (line 225)
 * Robbins, Arnold <1>:                   Future Extensions.   (line   6)
 * Robbins, Arnold <2>:                   Bugs.                (line  32)
-* Robbins, Arnold <3>:                   Contributors.        (line 122)
+* Robbins, Arnold <3>:                   Contributors.        (line 125)
 * Robbins, Arnold <4>:                   Alarm Program.       (line   6)
 * Robbins, Arnold <5>:                   Passwd Functions.    (line  90)
 * Robbins, Arnold <6>:                   Getline/Pipe.        (line  40)
@@ -31563,7 +31583,7 @@ Index
                                                               (line  68)
 * sandbox mode:                          Options.             (line 279)
 * scalar values:                         Basic Data Typing.   (line  13)
-* Schorr, Andrew <1>:                    Contributors.        (line 118)
+* Schorr, Andrew <1>:                    Contributors.        (line 121)
 * Schorr, Andrew:                        Acknowledgments.     (line  60)
 * Schreiber, Bert:                       Acknowledgments.     (line  38)
 * Schreiber, Rita:                       Acknowledgments.     (line  38)
@@ -31655,14 +31675,14 @@ Index
                                                               (line  56)
 * sidebar, Using close()'s Return Value: Close Files And Pipes.
                                                               (line 128)
-* SIGHUP signal:                         Profiling.           (line 203)
-* SIGINT signal (MS-Windows):            Profiling.           (line 206)
-* signals, HUP/SIGHUP:                   Profiling.           (line 203)
-* signals, INT/SIGINT (MS-Windows):      Profiling.           (line 206)
-* signals, QUIT/SIGQUIT (MS-Windows):    Profiling.           (line 206)
-* signals, USR1/SIGUSR1:                 Profiling.           (line 180)
-* SIGQUIT signal (MS-Windows):           Profiling.           (line 206)
-* SIGUSR1 signal:                        Profiling.           (line 180)
+* SIGHUP signal:                         Profiling.           (line 204)
+* SIGINT signal (MS-Windows):            Profiling.           (line 207)
+* signals, HUP/SIGHUP:                   Profiling.           (line 204)
+* signals, INT/SIGINT (MS-Windows):      Profiling.           (line 207)
+* signals, QUIT/SIGQUIT (MS-Windows):    Profiling.           (line 207)
+* signals, USR1/SIGUSR1:                 Profiling.           (line 181)
+* SIGQUIT signal (MS-Windows):           Profiling.           (line 207)
+* SIGUSR1 signal:                        Profiling.           (line 181)
 * silent debugger command:               Debugger Execution Control.
                                                               (line  10)
 * sin() function:                        Numeric Functions.   (line  75)
@@ -31675,9 +31695,7 @@ Index
 * single-character fields:               Single Character Fields.
                                                               (line   6)
 * Skywalker, Luke:                       Undocumented.        (line   6)
-* sleep:                                 Extension Sample Time.
-                                                              (line   6)
-* sleep time extension function:         Extension Sample Time.
+* sleep extension function:              Extension Sample Time.
                                                               (line  23)
 * sleep utility:                         Alarm Program.       (line 109)
 * Solaris, POSIX-compliant awk:          Other Versions.      (line  96)
@@ -31722,6 +31740,8 @@ Index
 * standard input <1>:                    Special FD.          (line   6)
 * standard input:                        Read Terminal.       (line   6)
 * standard output:                       Special FD.          (line   6)
+* stat extension function:               Extension Sample File Functions.
+                                                              (line  18)
 * statements, compound, control statements and: Statements.   (line  10)
 * statements, control, in actions:       Statements.          (line   6)
 * statements, multiple:                  Statements/Lines.    (line  91)
@@ -31787,6 +31807,8 @@ Index
 * tee.awk program:                       Tee Program.         (line  26)
 * terminating records:                   Records.             (line 117)
 * testbits.awk program:                  Bitwise Functions.   (line  70)
+* testext extension:                     Extension Sample API Tests.
+                                                              (line   6)
 * Texinfo <1>:                           Adding Code.         (line  99)
 * Texinfo <2>:                           Distribution contents.
                                                               (line  80)
@@ -31813,8 +31835,6 @@ Index
 * tilde (~), ~ operator <5>:             Computed Regexps.    (line   6)
 * tilde (~), ~ operator <6>:             Case-sensitivity.    (line  26)
 * tilde (~), ~ operator:                 Regexp Usage.        (line  19)
-* time:                                  Extension Sample Time.
-                                                              (line   6)
 * time, alarm clock example program:     Alarm Program.       (line   9)
 * time, localization and:                Explaining gettext.  (line 115)
 * time, managing:                        Getlocaltime Function.
@@ -31875,7 +31895,7 @@ Index
                                                               (line  83)
 * undefined functions:                   Pass By Value/Reference.
                                                               (line  71)
-* underscore (_), _ C macro:             Explaining gettext.  (line  70)
+* underscore (_), C macro:               Explaining gettext.  (line  70)
 * underscore (_), in names of private variables: Library Names.
                                                               (line  29)
 * underscore (_), translatable string:   Programmer i18n.     (line  69)
@@ -31909,7 +31929,7 @@ Index
 * user-modifiable variables:             User-modified.       (line   6)
 * users, information about, printing:    Id Program.          (line   6)
 * users, information about, retrieving:  Passwd Functions.    (line  16)
-* USR1 signal:                           Profiling.           (line 180)
+* USR1 signal:                           Profiling.           (line 181)
 * values, numeric:                       Basic Data Typing.   (line  13)
 * values, string:                        Basic Data Typing.   (line  13)
 * variable typing:                       Typing and Comparison.
@@ -31955,6 +31975,10 @@ Index
 * w debugger command (alias for watch):  Viewing And Changing Data.
                                                               (line  67)
 * w utility:                             Constant Size.       (line  22)
+* wait extension function:               Extension Sample Fork.
+                                                              (line  22)
+* waitpid extension function:            Extension Sample Fork.
+                                                              (line  18)
 * walk_array() user-defined function:    Walking Arrays.      (line  14)
 * Wall, Larry <1>:                       Future Extensions.   (line   6)
 * Wall, Larry:                           Array Intro.         (line   6)
@@ -31973,7 +31997,7 @@ Index
 * whitespace, functions, calling:        Calling Built-in.    (line  10)
 * whitespace, newlines as:               Options.             (line 253)
 * Williams, Kent:                        Contributors.        (line  35)
-* Woehlke, Matthew:                      Contributors.        (line  79)
+* Woehlke, Matthew:                      Contributors.        (line  80)
 * Woods, John:                           Contributors.        (line  28)
 * word boundaries, matching:             GNU Regexp Operators.
                                                               (line  38)
@@ -31985,10 +32009,12 @@ Index
 * words, counting:                       Wc Program.          (line   6)
 * words, duplicate, searching for:       Dupword Program.     (line   6)
 * words, usage counts, generating:       Word Sorting.        (line   6)
+* writea extension function:             Extension Sample Read write array.
+                                                              (line   9)
 * xgettext utility:                      String Extraction.   (line  13)
 * XOR bitwise operation:                 Bitwise Functions.   (line   6)
 * xor() function (gawk):                 Bitwise Functions.   (line  55)
-* Yawitz, Efraim:                        Contributors.        (line 116)
+* Yawitz, Efraim:                        Contributors.        (line 119)
 * Zaretskii, Eli <1>:                    Bugs.                (line  70)
 * Zaretskii, Eli <2>:                    Contributors.        (line  56)
 * Zaretskii, Eli:                        Acknowledgments.     (line  60)
@@ -32031,512 +32057,512 @@ Node: History48060
 Node: Names50434
 Ref: Names-Footnote-151911
 Node: This Manual51983
-Ref: This Manual-Footnote-157848
-Node: Conventions57948
-Node: Manual History60100
-Ref: Manual History-Footnote-163501
-Ref: Manual History-Footnote-263542
-Node: How To Contribute63616
-Node: Acknowledgments64760
-Node: Getting Started68971
-Node: Running gawk71350
-Node: One-shot72536
-Node: Read Terminal73761
-Ref: Read Terminal-Footnote-175411
-Ref: Read Terminal-Footnote-275687
-Node: Long75858
-Node: Executable Scripts77234
-Ref: Executable Scripts-Footnote-179067
-Ref: Executable Scripts-Footnote-279169
-Node: Comments79716
-Node: Quoting82183
-Node: DOS Quoting86806
-Node: Sample Data Files87481
-Node: Very Simple90513
-Node: Two Rules95112
-Node: More Complex97259
-Ref: More Complex-Footnote-1100189
-Node: Statements/Lines100274
-Ref: Statements/Lines-Footnote-1104736
-Node: Other Features105001
-Node: When105929
-Node: Invoking Gawk108076
-Node: Command Line109537
-Node: Options110320
-Ref: Options-Footnote-1125712
-Node: Other Arguments125737
-Node: Naming Standard Input128395
-Node: Environment Variables129489
-Node: AWKPATH Variable130047
-Ref: AWKPATH Variable-Footnote-1132805
-Node: AWKLIBPATH Variable133065
-Node: Other Environment Variables133783
-Node: Exit Status136278
-Node: Include Files136953
-Node: Loading Shared Libraries140522
-Node: Obsolete141886
-Node: Undocumented142583
-Node: Regexp142826
-Node: Regexp Usage144215
-Node: Escape Sequences146241
-Node: Regexp Operators151910
-Ref: Regexp Operators-Footnote-1159290
-Ref: Regexp Operators-Footnote-2159437
-Node: Bracket Expressions159535
-Ref: table-char-classes161425
-Node: GNU Regexp Operators163948
-Node: Case-sensitivity167671
-Ref: Case-sensitivity-Footnote-1170639
-Ref: Case-sensitivity-Footnote-2170874
-Node: Leftmost Longest170982
-Node: Computed Regexps172183
-Node: Reading Files175520
-Node: Records177523
-Ref: Records-Footnote-1186412
-Node: Fields186449
-Ref: Fields-Footnote-1189482
-Node: Nonconstant Fields189568
-Node: Changing Fields191770
-Node: Field Separators197729
-Node: Default Field Splitting200358
-Node: Regexp Field Splitting201475
-Node: Single Character Fields204817
-Node: Command Line Field Separator205876
-Node: Field Splitting Summary209317
-Ref: Field Splitting Summary-Footnote-1212428
-Node: Constant Size212529
-Node: Splitting By Content217113
-Ref: Splitting By Content-Footnote-1220839
-Node: Multiple Line220879
-Ref: Multiple Line-Footnote-1226726
-Node: Getline226905
-Node: Plain Getline229121
-Node: Getline/Variable231216
-Node: Getline/File232363
-Node: Getline/Variable/File233704
-Ref: Getline/Variable/File-Footnote-1235303
-Node: Getline/Pipe235390
-Node: Getline/Variable/Pipe238090
-Node: Getline/Coprocess239197
-Node: Getline/Variable/Coprocess240449
-Node: Getline Notes241186
-Node: Getline Summary243973
-Ref: table-getline-variants244381
-Node: Read Timeout245293
-Ref: Read Timeout-Footnote-1249034
-Node: Command line directories249091
-Node: Printing249721
-Node: Print251352
-Node: Print Examples252689
-Node: Output Separators255473
-Node: OFMT257233
-Node: Printf258591
-Node: Basic Printf259497
-Node: Control Letters261036
-Node: Format Modifiers264848
-Node: Printf Examples270857
-Node: Redirection273572
-Node: Special Files280537
-Node: Special FD281070
-Ref: Special FD-Footnote-1284695
-Node: Special Network284769
-Node: Special Caveats285619
-Node: Close Files And Pipes286415
-Ref: Close Files And Pipes-Footnote-1293398
-Ref: Close Files And Pipes-Footnote-2293546
-Node: Expressions293696
-Node: Values294828
-Node: Constants295504
-Node: Scalar Constants296184
-Ref: Scalar Constants-Footnote-1297043
-Node: Nondecimal-numbers297225
-Node: Regexp Constants300225
-Node: Using Constant Regexps300700
-Node: Variables303755
-Node: Using Variables304410
-Node: Assignment Options306134
-Node: Conversion308006
-Ref: table-locale-affects313497
-Ref: Conversion-Footnote-1314121
-Node: All Operators314230
-Node: Arithmetic Ops314860
-Node: Concatenation317365
-Ref: Concatenation-Footnote-1320158
-Node: Assignment Ops320278
-Ref: table-assign-ops325266
-Node: Increment Ops326597
-Node: Truth Values and Conditions330032
-Node: Truth Values331115
-Node: Typing and Comparison332164
-Node: Variable Typing332953
-Ref: Variable Typing-Footnote-1336850
-Node: Comparison Operators336972
-Ref: table-relational-ops337382
-Node: POSIX String Comparison340931
-Ref: POSIX String Comparison-Footnote-1341887
-Node: Boolean Ops342025
-Ref: Boolean Ops-Footnote-1346103
-Node: Conditional Exp346194
-Node: Function Calls347926
-Node: Precedence351520
-Node: Locales355189
-Node: Patterns and Actions356278
-Node: Pattern Overview357332
-Node: Regexp Patterns359001
-Node: Expression Patterns359544
-Node: Ranges363229
-Node: BEGIN/END366195
-Node: Using BEGIN/END366957
-Ref: Using BEGIN/END-Footnote-1369688
-Node: I/O And BEGIN/END369794
-Node: BEGINFILE/ENDFILE372076
-Node: Empty374980
-Node: Using Shell Variables375296
-Node: Action Overview377581
-Node: Statements379938
-Node: If Statement381792
-Node: While Statement383291
-Node: Do Statement385335
-Node: For Statement386491
-Node: Switch Statement389643
-Node: Break Statement391740
-Node: Continue Statement393730
-Node: Next Statement395523
-Node: Nextfile Statement397913
-Node: Exit Statement400556
-Node: Built-in Variables402972
-Node: User-modified404067
-Ref: User-modified-Footnote-1412427
-Node: Auto-set412489
-Ref: Auto-set-Footnote-1425420
-Ref: Auto-set-Footnote-2425625
-Node: ARGC and ARGV425681
-Node: Arrays429532
-Node: Array Basics431037
-Node: Array Intro431863
-Node: Reference to Elements436181
-Node: Assigning Elements438451
-Node: Array Example438942
-Node: Scanning an Array440674
-Node: Controlling Scanning442988
-Ref: Controlling Scanning-Footnote-1447911
-Node: Delete448227
-Ref: Delete-Footnote-1450992
-Node: Numeric Array Subscripts451049
-Node: Uninitialized Subscripts453232
-Node: Multi-dimensional454860
-Node: Multi-scanning457954
-Node: Arrays of Arrays459545
-Node: Functions464186
-Node: Built-in465005
-Node: Calling Built-in466083
-Node: Numeric Functions468071
-Ref: Numeric Functions-Footnote-1471903
-Ref: Numeric Functions-Footnote-2472260
-Ref: Numeric Functions-Footnote-3472308
-Node: String Functions472577
-Ref: String Functions-Footnote-1496135
-Ref: String Functions-Footnote-2496264
-Ref: String Functions-Footnote-3496512
-Node: Gory Details496599
-Ref: table-sub-escapes498278
-Ref: table-sub-posix-92499632
-Ref: table-sub-proposed500983
-Ref: table-posix-sub502337
-Ref: table-gensub-escapes503882
-Ref: Gory Details-Footnote-1505058
-Ref: Gory Details-Footnote-2505109
-Node: I/O Functions505260
-Ref: I/O Functions-Footnote-1512245
-Node: Time Functions512392
-Ref: Time Functions-Footnote-1523325
-Ref: Time Functions-Footnote-2523393
-Ref: Time Functions-Footnote-3523551
-Ref: Time Functions-Footnote-4523662
-Ref: Time Functions-Footnote-5523774
-Ref: Time Functions-Footnote-6524001
-Node: Bitwise Functions524267
-Ref: table-bitwise-ops524825
-Ref: Bitwise Functions-Footnote-1529046
-Node: Type Functions529230
-Node: I18N Functions529700
-Node: User-defined531327
-Node: Definition Syntax532131
-Ref: Definition Syntax-Footnote-1537041
-Node: Function Example537110
-Node: Function Caveats539704
-Node: Calling A Function540125
-Node: Variable Scope541240
-Node: Pass By Value/Reference544203
-Node: Return Statement547711
-Node: Dynamic Typing550692
-Node: Indirect Calls551623
-Node: Library Functions561308
-Ref: Library Functions-Footnote-1564821
-Ref: Library Functions-Footnote-2564964
-Node: Library Names565135
-Ref: Library Names-Footnote-1568606
-Ref: Library Names-Footnote-2568826
-Node: General Functions568912
-Node: Strtonum Function569865
-Node: Assert Function572795
-Node: Round Function576121
-Node: Cliff Random Function577664
-Node: Ordinal Functions578680
-Ref: Ordinal Functions-Footnote-1581750
-Ref: Ordinal Functions-Footnote-2582002
-Node: Join Function582211
-Ref: Join Function-Footnote-1583982
-Node: Getlocaltime Function584182
-Node: Data File Management587897
-Node: Filetrans Function588529
-Node: Rewind Function592598
-Node: File Checking593985
-Node: Empty Files595079
-Node: Ignoring Assigns597309
-Node: Getopt Function598862
-Ref: Getopt Function-Footnote-1610166
-Node: Passwd Functions610369
-Ref: Passwd Functions-Footnote-1619344
-Node: Group Functions619432
-Node: Walking Arrays627516
-Node: Sample Programs629653
-Node: Running Examples630327
-Node: Clones631055
-Node: Cut Program632279
-Node: Egrep Program642124
-Ref: Egrep Program-Footnote-1649897
-Node: Id Program650007
-Node: Split Program653623
-Ref: Split Program-Footnote-1657142
-Node: Tee Program657270
-Node: Uniq Program660073
-Node: Wc Program667502
-Ref: Wc Program-Footnote-1671768
-Ref: Wc Program-Footnote-2671968
-Node: Miscellaneous Programs672060
-Node: Dupword Program673248
-Node: Alarm Program675279
-Node: Translate Program680028
-Ref: Translate Program-Footnote-1684415
-Ref: Translate Program-Footnote-2684643
-Node: Labels Program684777
-Ref: Labels Program-Footnote-1688148
-Node: Word Sorting688232
-Node: History Sorting692116
-Node: Extract Program693955
-Ref: Extract Program-Footnote-1701456
-Node: Simple Sed701584
-Node: Igawk Program704646
-Ref: Igawk Program-Footnote-1719803
-Ref: Igawk Program-Footnote-2720004
-Node: Anagram Program720142
-Node: Signature Program723210
-Node: Advanced Features724310
-Node: Nondecimal Data726192
-Node: Array Sorting727775
-Node: Controlling Array Traversal728472
-Node: Array Sorting Functions736710
-Ref: Array Sorting Functions-Footnote-1740384
-Ref: Array Sorting Functions-Footnote-2740477
-Node: Two-way I/O740671
-Ref: Two-way I/O-Footnote-1746103
-Node: TCP/IP Networking746173
-Node: Profiling749017
-Node: Internationalization756472
-Node: I18N and L10N757897
-Node: Explaining gettext758583
-Ref: Explaining gettext-Footnote-1763649
-Ref: Explaining gettext-Footnote-2763833
-Node: Programmer i18n763998
-Node: Translator i18n768198
-Node: String Extraction768991
-Ref: String Extraction-Footnote-1769952
-Node: Printf Ordering770038
-Ref: Printf Ordering-Footnote-1772822
-Node: I18N Portability772886
-Ref: I18N Portability-Footnote-1775335
-Node: I18N Example775398
-Ref: I18N Example-Footnote-1778033
-Node: Gawk I18N778105
-Node: Debugger778726
-Node: Debugging779697
-Node: Debugging Concepts780130
-Node: Debugging Terms781986
-Node: Awk Debugging784583
-Node: Sample Debugging Session785475
-Node: Debugger Invocation785995
-Node: Finding The Bug787327
-Node: List of Debugger Commands793815
-Node: Breakpoint Control795149
-Node: Debugger Execution Control798813
-Node: Viewing And Changing Data802173
-Node: Execution Stack805529
-Node: Debugger Info806996
-Node: Miscellaneous Debugger Commands810978
-Node: Readline Support816154
-Node: Limitations816985
-Node: Arbitrary Precision Arithmetic819237
-Ref: Arbitrary Precision Arithmetic-Footnote-1820888
-Node: General Arithmetic821036
-Node: Floating Point Issues822756
-Node: String Conversion Precision823637
-Ref: String Conversion Precision-Footnote-1825343
-Node: Unexpected Results825452
-Node: POSIX Floating Point Problems827605
-Ref: POSIX Floating Point Problems-Footnote-1831430
-Node: Integer Programming831468
-Node: Floating-point Programming833207
-Ref: Floating-point Programming-Footnote-1839538
-Ref: Floating-point Programming-Footnote-2839808
-Node: Floating-point Representation840072
-Node: Floating-point Context841237
-Ref: table-ieee-formats842076
-Node: Rounding Mode843460
-Ref: table-rounding-modes843939
-Ref: Rounding Mode-Footnote-1846954
-Node: Gawk and MPFR847133
-Node: Arbitrary Precision Floats848388
-Ref: Arbitrary Precision Floats-Footnote-1850831
-Node: Setting Precision851147
-Ref: table-predefined-precision-strings851833
-Node: Setting Rounding Mode853978
-Ref: table-gawk-rounding-modes854382
-Node: Floating-point Constants855569
-Node: Changing Precision856998
-Ref: Changing Precision-Footnote-1858398
-Node: Exact Arithmetic858572
-Node: Arbitrary Precision Integers861710
-Ref: Arbitrary Precision Integers-Footnote-1864728
-Node: Dynamic Extensions864875
-Node: Extension Intro866333
-Node: Plugin License867598
-Node: Extension Mechanism Outline868283
-Ref: load-extension868700
-Ref: load-new-function870178
-Ref: call-new-function871173
-Node: Extension API Description873188
-Node: Extension API Functions Introduction874401
-Node: General Data Types879267
-Ref: General Data Types-Footnote-1884869
-Node: Requesting Values885168
-Ref: table-value-types-returned885899
-Node: Constructor Functions886853
-Node: Registration Functions889873
-Node: Extension Functions890558
-Node: Exit Callback Functions892783
-Node: Extension Version String894032
-Node: Input Parsers894682
-Node: Output Wrappers904439
-Node: Two-way processors908949
-Node: Printing Messages911157
-Ref: Printing Messages-Footnote-1912234
-Node: Updating `ERRNO'912386
-Node: Accessing Parameters913125
-Node: Symbol Table Access914355
-Node: Symbol table by name914867
-Node: Symbol table by cookie916614
-Ref: Symbol table by cookie-Footnote-1920744
-Node: Cached values920807
-Ref: Cached values-Footnote-1924256
-Node: Array Manipulation924347
-Ref: Array Manipulation-Footnote-1925445
-Node: Array Data Types925484
-Ref: Array Data Types-Footnote-1928187
-Node: Array Functions928279
-Node: Flattening Arrays932045
-Node: Creating Arrays938897
-Node: Extension API Variables943622
-Node: Extension Versioning944258
-Node: Extension API Informational Variables946159
-Node: Extension API Boilerplate947245
-Node: Finding Extensions951049
-Node: Extension Example951609
-Node: Internal File Description952340
-Node: Internal File Ops956028
-Ref: Internal File Ops-Footnote-1967512
-Node: Using Internal File Ops967652
-Ref: Using Internal File Ops-Footnote-1970005
-Node: Extension Samples970271
-Node: Extension Sample File Functions971795
-Node: Extension Sample Fnmatch980282
-Node: Extension Sample Fork982008
-Node: Extension Sample Inplace983226
-Node: Extension Sample Ord985004
-Node: Extension Sample Readdir985840
-Node: Extension Sample Revout987372
-Node: Extension Sample Rev2way987965
-Node: Extension Sample Read write array988655
-Node: Extension Sample Readfile990538
-Node: Extension Sample API Tests991356
-Node: Extension Sample Time991881
-Node: gawkextlib993245
-Node: Language History995676
-Node: V7/SVR3.1997198
-Node: SVR4999519
-Node: POSIX1000961
-Node: BTL1002347
-Node: POSIX/GNU1003081
-Node: Common Extensions1008616
-Node: Ranges and Locales1009771
-Ref: Ranges and Locales-Footnote-11014389
-Ref: Ranges and Locales-Footnote-21014416
-Ref: Ranges and Locales-Footnote-31014676
-Node: Contributors1014897
-Node: Installation1019701
-Node: Gawk Distribution1020595
-Node: Getting1021079
-Node: Extracting1021905
-Node: Distribution contents1023597
-Node: Unix Installation1028858
-Node: Quick Installation1029475
-Node: Additional Configuration Options1031437
-Node: Configuration Philosophy1032914
-Node: Non-Unix Installation1035256
-Node: PC Installation1035714
-Node: PC Binary Installation1037013
-Node: PC Compiling1038861
-Node: PC Testing1041805
-Node: PC Using1042981
-Node: Cygwin1047166
-Node: MSYS1048166
-Node: VMS Installation1048680
-Node: VMS Compilation1049283
-Ref: VMS Compilation-Footnote-11050290
-Node: VMS Installation Details1050348
-Node: VMS Running1051983
-Node: VMS Old Gawk1053590
-Node: Bugs1054064
-Node: Other Versions1057916
-Node: Notes1063517
-Node: Compatibility Mode1064317
-Node: Additions1065100
-Node: Accessing The Source1066027
-Node: Adding Code1067467
-Node: New Ports1073512
-Node: Derived Files1077647
-Ref: Derived Files-Footnote-11082968
-Ref: Derived Files-Footnote-21083002
-Ref: Derived Files-Footnote-31083602
-Node: Future Extensions1083700
-Node: Implementation Limitations1084281
-Node: Extension Design1085533
-Node: Old Extension Problems1086687
-Ref: Old Extension Problems-Footnote-11088195
-Node: Extension New Mechanism Goals1088252
-Ref: Extension New Mechanism Goals-Footnote-11091618
-Node: Extension Other Design Decisions1091804
-Node: Extension Future Growth1093910
-Node: Old Extension Mechanism1094746
-Node: Basic Concepts1096486
-Node: Basic High Level1097167
-Ref: figure-general-flow1097438
-Ref: figure-process-flow1098037
-Ref: Basic High Level-Footnote-11101266
-Node: Basic Data Typing1101451
-Node: Glossary1104806
-Node: Copying1130277
-Node: GNU Free Documentation License1167834
-Node: Index1192971
+Ref: This Manual-Footnote-157757
+Node: Conventions57857
+Node: Manual History60009
+Ref: Manual History-Footnote-163455
+Ref: Manual History-Footnote-263496
+Node: How To Contribute63570
+Node: Acknowledgments64714
+Node: Getting Started68923
+Node: Running gawk71302
+Node: One-shot72488
+Node: Read Terminal73713
+Ref: Read Terminal-Footnote-175363
+Ref: Read Terminal-Footnote-275639
+Node: Long75810
+Node: Executable Scripts77186
+Ref: Executable Scripts-Footnote-179019
+Ref: Executable Scripts-Footnote-279121
+Node: Comments79668
+Node: Quoting82135
+Node: DOS Quoting86758
+Node: Sample Data Files87433
+Node: Very Simple90465
+Node: Two Rules95064
+Node: More Complex97211
+Ref: More Complex-Footnote-1100141
+Node: Statements/Lines100226
+Ref: Statements/Lines-Footnote-1104688
+Node: Other Features104953
+Node: When105881
+Node: Invoking Gawk108028
+Node: Command Line109489
+Node: Options110272
+Ref: Options-Footnote-1125664
+Node: Other Arguments125689
+Node: Naming Standard Input128347
+Node: Environment Variables129441
+Node: AWKPATH Variable129999
+Ref: AWKPATH Variable-Footnote-1132757
+Node: AWKLIBPATH Variable133017
+Node: Other Environment Variables133735
+Node: Exit Status136230
+Node: Include Files136905
+Node: Loading Shared Libraries140474
+Node: Obsolete141838
+Node: Undocumented142535
+Node: Regexp142778
+Node: Regexp Usage144167
+Node: Escape Sequences146193
+Node: Regexp Operators151862
+Ref: Regexp Operators-Footnote-1159242
+Ref: Regexp Operators-Footnote-2159389
+Node: Bracket Expressions159487
+Ref: table-char-classes161377
+Node: GNU Regexp Operators163900
+Node: Case-sensitivity167623
+Ref: Case-sensitivity-Footnote-1170591
+Ref: Case-sensitivity-Footnote-2170826
+Node: Leftmost Longest170934
+Node: Computed Regexps172135
+Node: Reading Files175472
+Node: Records177475
+Ref: Records-Footnote-1186364
+Node: Fields186401
+Ref: Fields-Footnote-1189434
+Node: Nonconstant Fields189520
+Node: Changing Fields191722
+Node: Field Separators197681
+Node: Default Field Splitting200310
+Node: Regexp Field Splitting201427
+Node: Single Character Fields204769
+Node: Command Line Field Separator205828
+Node: Field Splitting Summary209269
+Ref: Field Splitting Summary-Footnote-1212380
+Node: Constant Size212481
+Node: Splitting By Content217065
+Ref: Splitting By Content-Footnote-1220791
+Node: Multiple Line220831
+Ref: Multiple Line-Footnote-1226678
+Node: Getline226857
+Node: Plain Getline229073
+Node: Getline/Variable231168
+Node: Getline/File232315
+Node: Getline/Variable/File233656
+Ref: Getline/Variable/File-Footnote-1235255
+Node: Getline/Pipe235342
+Node: Getline/Variable/Pipe238042
+Node: Getline/Coprocess239149
+Node: Getline/Variable/Coprocess240401
+Node: Getline Notes241138
+Node: Getline Summary243925
+Ref: table-getline-variants244333
+Node: Read Timeout245245
+Ref: Read Timeout-Footnote-1248986
+Node: Command line directories249043
+Node: Printing249673
+Node: Print251304
+Node: Print Examples252641
+Node: Output Separators255425
+Node: OFMT257185
+Node: Printf258543
+Node: Basic Printf259449
+Node: Control Letters260988
+Node: Format Modifiers264800
+Node: Printf Examples270809
+Node: Redirection273524
+Node: Special Files280489
+Node: Special FD281022
+Ref: Special FD-Footnote-1284647
+Node: Special Network284721
+Node: Special Caveats285571
+Node: Close Files And Pipes286367
+Ref: Close Files And Pipes-Footnote-1293350
+Ref: Close Files And Pipes-Footnote-2293498
+Node: Expressions293648
+Node: Values294780
+Node: Constants295456
+Node: Scalar Constants296136
+Ref: Scalar Constants-Footnote-1296995
+Node: Nondecimal-numbers297177
+Node: Regexp Constants300177
+Node: Using Constant Regexps300652
+Node: Variables303707
+Node: Using Variables304362
+Node: Assignment Options306086
+Node: Conversion307958
+Ref: table-locale-affects313458
+Ref: Conversion-Footnote-1314082
+Node: All Operators314191
+Node: Arithmetic Ops314821
+Node: Concatenation317326
+Ref: Concatenation-Footnote-1320119
+Node: Assignment Ops320239
+Ref: table-assign-ops325227
+Node: Increment Ops326558
+Node: Truth Values and Conditions329993
+Node: Truth Values331076
+Node: Typing and Comparison332125
+Node: Variable Typing332914
+Ref: Variable Typing-Footnote-1336811
+Node: Comparison Operators336933
+Ref: table-relational-ops337343
+Node: POSIX String Comparison340892
+Ref: POSIX String Comparison-Footnote-1341848
+Node: Boolean Ops341986
+Ref: Boolean Ops-Footnote-1346064
+Node: Conditional Exp346155
+Node: Function Calls347887
+Node: Precedence351481
+Node: Locales355150
+Node: Patterns and Actions356239
+Node: Pattern Overview357293
+Node: Regexp Patterns358962
+Node: Expression Patterns359505
+Node: Ranges363190
+Node: BEGIN/END366156
+Node: Using BEGIN/END366918
+Ref: Using BEGIN/END-Footnote-1369649
+Node: I/O And BEGIN/END369755
+Node: BEGINFILE/ENDFILE372037
+Node: Empty374951
+Node: Using Shell Variables375267
+Node: Action Overview377552
+Node: Statements379909
+Node: If Statement381763
+Node: While Statement383262
+Node: Do Statement385306
+Node: For Statement386462
+Node: Switch Statement389614
+Node: Break Statement391711
+Node: Continue Statement393701
+Node: Next Statement395494
+Node: Nextfile Statement397884
+Node: Exit Statement400527
+Node: Built-in Variables402943
+Node: User-modified404038
+Ref: User-modified-Footnote-1412398
+Node: Auto-set412460
+Ref: Auto-set-Footnote-1425391
+Ref: Auto-set-Footnote-2425596
+Node: ARGC and ARGV425652
+Node: Arrays429503
+Node: Array Basics431008
+Node: Array Intro431834
+Node: Reference to Elements436152
+Node: Assigning Elements438422
+Node: Array Example438913
+Node: Scanning an Array440645
+Node: Controlling Scanning442959
+Ref: Controlling Scanning-Footnote-1447882
+Node: Delete448198
+Ref: Delete-Footnote-1450963
+Node: Numeric Array Subscripts451020
+Node: Uninitialized Subscripts453203
+Node: Multi-dimensional454831
+Node: Multi-scanning457925
+Node: Arrays of Arrays459516
+Node: Functions464157
+Node: Built-in464976
+Node: Calling Built-in466054
+Node: Numeric Functions468042
+Ref: Numeric Functions-Footnote-1471874
+Ref: Numeric Functions-Footnote-2472231
+Ref: Numeric Functions-Footnote-3472279
+Node: String Functions472548
+Ref: String Functions-Footnote-1496106
+Ref: String Functions-Footnote-2496235
+Ref: String Functions-Footnote-3496483
+Node: Gory Details496570
+Ref: table-sub-escapes498249
+Ref: table-sub-posix-92499603
+Ref: table-sub-proposed500954
+Ref: table-posix-sub502308
+Ref: table-gensub-escapes503853
+Ref: Gory Details-Footnote-1505029
+Ref: Gory Details-Footnote-2505080
+Node: I/O Functions505231
+Ref: I/O Functions-Footnote-1512216
+Node: Time Functions512363
+Ref: Time Functions-Footnote-1523296
+Ref: Time Functions-Footnote-2523364
+Ref: Time Functions-Footnote-3523522
+Ref: Time Functions-Footnote-4523633
+Ref: Time Functions-Footnote-5523745
+Ref: Time Functions-Footnote-6523972
+Node: Bitwise Functions524238
+Ref: table-bitwise-ops524796
+Ref: Bitwise Functions-Footnote-1529017
+Node: Type Functions529201
+Node: I18N Functions529671
+Node: User-defined531298
+Node: Definition Syntax532102
+Ref: Definition Syntax-Footnote-1537012
+Node: Function Example537081
+Node: Function Caveats539675
+Node: Calling A Function540096
+Node: Variable Scope541211
+Node: Pass By Value/Reference544174
+Node: Return Statement547682
+Node: Dynamic Typing550663
+Node: Indirect Calls551594
+Node: Library Functions561279
+Ref: Library Functions-Footnote-1564792
+Ref: Library Functions-Footnote-2564935
+Node: Library Names565106
+Ref: Library Names-Footnote-1568577
+Ref: Library Names-Footnote-2568797
+Node: General Functions568883
+Node: Strtonum Function569836
+Node: Assert Function572766
+Node: Round Function576092
+Node: Cliff Random Function577635
+Node: Ordinal Functions578651
+Ref: Ordinal Functions-Footnote-1581721
+Ref: Ordinal Functions-Footnote-2581973
+Node: Join Function582182
+Ref: Join Function-Footnote-1583953
+Node: Getlocaltime Function584153
+Node: Data File Management587868
+Node: Filetrans Function588500
+Node: Rewind Function592569
+Node: File Checking593956
+Node: Empty Files595050
+Node: Ignoring Assigns597280
+Node: Getopt Function598833
+Ref: Getopt Function-Footnote-1610137
+Node: Passwd Functions610340
+Ref: Passwd Functions-Footnote-1619315
+Node: Group Functions619403
+Node: Walking Arrays627487
+Node: Sample Programs629624
+Node: Running Examples630298
+Node: Clones631026
+Node: Cut Program632250
+Node: Egrep Program642095
+Ref: Egrep Program-Footnote-1649868
+Node: Id Program649978
+Node: Split Program653594
+Ref: Split Program-Footnote-1657113
+Node: Tee Program657241
+Node: Uniq Program660044
+Node: Wc Program667473
+Ref: Wc Program-Footnote-1671739
+Ref: Wc Program-Footnote-2671939
+Node: Miscellaneous Programs672031
+Node: Dupword Program673219
+Node: Alarm Program675250
+Node: Translate Program679999
+Ref: Translate Program-Footnote-1684386
+Ref: Translate Program-Footnote-2684614
+Node: Labels Program684748
+Ref: Labels Program-Footnote-1688119
+Node: Word Sorting688203
+Node: History Sorting692087
+Node: Extract Program693926
+Ref: Extract Program-Footnote-1701427
+Node: Simple Sed701555
+Node: Igawk Program704617
+Ref: Igawk Program-Footnote-1719774
+Ref: Igawk Program-Footnote-2719975
+Node: Anagram Program720113
+Node: Signature Program723181
+Node: Advanced Features724281
+Node: Nondecimal Data726163
+Node: Array Sorting727746
+Node: Controlling Array Traversal728443
+Node: Array Sorting Functions736681
+Ref: Array Sorting Functions-Footnote-1740355
+Ref: Array Sorting Functions-Footnote-2740448
+Node: Two-way I/O740642
+Ref: Two-way I/O-Footnote-1746074
+Node: TCP/IP Networking746144
+Node: Profiling748988
+Node: Internationalization756485
+Node: I18N and L10N757910
+Node: Explaining gettext758596
+Ref: Explaining gettext-Footnote-1763664
+Ref: Explaining gettext-Footnote-2763848
+Node: Programmer i18n764013
+Node: Translator i18n768215
+Node: String Extraction769008
+Ref: String Extraction-Footnote-1769969
+Node: Printf Ordering770055
+Ref: Printf Ordering-Footnote-1772839
+Node: I18N Portability772903
+Ref: I18N Portability-Footnote-1775352
+Node: I18N Example775415
+Ref: I18N Example-Footnote-1778053
+Node: Gawk I18N778125
+Node: Debugger778746
+Node: Debugging779717
+Node: Debugging Concepts780150
+Node: Debugging Terms782006
+Node: Awk Debugging784603
+Node: Sample Debugging Session785495
+Node: Debugger Invocation786015
+Node: Finding The Bug787347
+Node: List of Debugger Commands793835
+Node: Breakpoint Control795169
+Node: Debugger Execution Control798833
+Node: Viewing And Changing Data802193
+Node: Execution Stack805549
+Node: Debugger Info807016
+Node: Miscellaneous Debugger Commands810998
+Node: Readline Support816174
+Node: Limitations817005
+Node: Arbitrary Precision Arithmetic819257
+Ref: Arbitrary Precision Arithmetic-Footnote-1820908
+Node: General Arithmetic821056
+Node: Floating Point Issues822776
+Node: String Conversion Precision823657
+Ref: String Conversion Precision-Footnote-1825363
+Node: Unexpected Results825472
+Node: POSIX Floating Point Problems827625
+Ref: POSIX Floating Point Problems-Footnote-1831450
+Node: Integer Programming831488
+Node: Floating-point Programming833227
+Ref: Floating-point Programming-Footnote-1839558
+Ref: Floating-point Programming-Footnote-2839828
+Node: Floating-point Representation840092
+Node: Floating-point Context841257
+Ref: table-ieee-formats842096
+Node: Rounding Mode843480
+Ref: table-rounding-modes843959
+Ref: Rounding Mode-Footnote-1846974
+Node: Gawk and MPFR847153
+Node: Arbitrary Precision Floats848408
+Ref: Arbitrary Precision Floats-Footnote-1850851
+Node: Setting Precision851167
+Ref: table-predefined-precision-strings851853
+Node: Setting Rounding Mode853998
+Ref: table-gawk-rounding-modes854402
+Node: Floating-point Constants855589
+Node: Changing Precision857018
+Ref: Changing Precision-Footnote-1858418
+Node: Exact Arithmetic858592
+Node: Arbitrary Precision Integers861730
+Ref: Arbitrary Precision Integers-Footnote-1864748
+Node: Dynamic Extensions864895
+Node: Extension Intro866353
+Node: Plugin License867618
+Node: Extension Mechanism Outline868303
+Ref: load-extension868720
+Ref: load-new-function870198
+Ref: call-new-function871193
+Node: Extension API Description873208
+Node: Extension API Functions Introduction874421
+Node: General Data Types879287
+Ref: General Data Types-Footnote-1884889
+Node: Requesting Values885188
+Ref: table-value-types-returned885919
+Node: Constructor Functions886873
+Node: Registration Functions889893
+Node: Extension Functions890578
+Node: Exit Callback Functions892803
+Node: Extension Version String894052
+Node: Input Parsers894702
+Node: Output Wrappers904459
+Node: Two-way processors908969
+Node: Printing Messages911177
+Ref: Printing Messages-Footnote-1912254
+Node: Updating `ERRNO'912406
+Node: Accessing Parameters913145
+Node: Symbol Table Access914375
+Node: Symbol table by name914887
+Node: Symbol table by cookie916634
+Ref: Symbol table by cookie-Footnote-1920764
+Node: Cached values920827
+Ref: Cached values-Footnote-1924276
+Node: Array Manipulation924367
+Ref: Array Manipulation-Footnote-1925465
+Node: Array Data Types925504
+Ref: Array Data Types-Footnote-1928207
+Node: Array Functions928299
+Node: Flattening Arrays932065
+Node: Creating Arrays938917
+Node: Extension API Variables943642
+Node: Extension Versioning944278
+Node: Extension API Informational Variables946179
+Node: Extension API Boilerplate947265
+Node: Finding Extensions951069
+Node: Extension Example951629
+Node: Internal File Description952360
+Node: Internal File Ops956048
+Ref: Internal File Ops-Footnote-1967532
+Node: Using Internal File Ops967672
+Ref: Using Internal File Ops-Footnote-1970025
+Node: Extension Samples970291
+Node: Extension Sample File Functions971815
+Node: Extension Sample Fnmatch980302
+Node: Extension Sample Fork982028
+Node: Extension Sample Inplace983246
+Node: Extension Sample Ord985024
+Node: Extension Sample Readdir985860
+Node: Extension Sample Revout987392
+Node: Extension Sample Rev2way987985
+Node: Extension Sample Read write array988675
+Node: Extension Sample Readfile990558
+Node: Extension Sample API Tests991376
+Node: Extension Sample Time991901
+Node: gawkextlib993265
+Node: Language History995696
+Node: V7/SVR3.1997218
+Node: SVR4999539
+Node: POSIX1000981
+Node: BTL1002367
+Node: POSIX/GNU1003101
+Node: Common Extensions1008636
+Node: Ranges and Locales1009942
+Ref: Ranges and Locales-Footnote-11014560
+Ref: Ranges and Locales-Footnote-21014587
+Ref: Ranges and Locales-Footnote-31014847
+Node: Contributors1015068
+Node: Installation1019947
+Node: Gawk Distribution1020841
+Node: Getting1021325
+Node: Extracting1022151
+Node: Distribution contents1023843
+Node: Unix Installation1029104
+Node: Quick Installation1029721
+Node: Additional Configuration Options1031683
+Node: Configuration Philosophy1033160
+Node: Non-Unix Installation1035502
+Node: PC Installation1035960
+Node: PC Binary Installation1037259
+Node: PC Compiling1039107
+Node: PC Testing1042051
+Node: PC Using1043227
+Node: Cygwin1047412
+Node: MSYS1048412
+Node: VMS Installation1048926
+Node: VMS Compilation1049529
+Ref: VMS Compilation-Footnote-11050536
+Node: VMS Installation Details1050594
+Node: VMS Running1052229
+Node: VMS Old Gawk1053836
+Node: Bugs1054310
+Node: Other Versions1058162
+Node: Notes1063763
+Node: Compatibility Mode1064563
+Node: Additions1065346
+Node: Accessing The Source1066273
+Node: Adding Code1067713
+Node: New Ports1073758
+Node: Derived Files1077893
+Ref: Derived Files-Footnote-11083214
+Ref: Derived Files-Footnote-21083248
+Ref: Derived Files-Footnote-31083848
+Node: Future Extensions1083946
+Node: Implementation Limitations1084527
+Node: Extension Design1085779
+Node: Old Extension Problems1086933
+Ref: Old Extension Problems-Footnote-11088441
+Node: Extension New Mechanism Goals1088498
+Ref: Extension New Mechanism Goals-Footnote-11091864
+Node: Extension Other Design Decisions1092050
+Node: Extension Future Growth1094156
+Node: Old Extension Mechanism1094992
+Node: Basic Concepts1096732
+Node: Basic High Level1097413
+Ref: figure-general-flow1097684
+Ref: figure-process-flow1098283
+Ref: Basic High Level-Footnote-11101512
+Node: Basic Data Typing1101697
+Node: Glossary1105052
+Node: Copying1130514
+Node: GNU Free Documentation License1168071
+Node: Index1193208
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d323ff6..e4f8f85 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -26,7 +26,7 @@
 @c applies to and all the info about who's publishing this edition
 
 @c These apply across the board.
address@hidden UPDATE-MONTH April, 2013
address@hidden UPDATE-MONTH May, 2013
 @set VERSION 4.0
 @set PATCHLEVEL 2
 
@@ -1369,7 +1369,7 @@ describes advanced arithmetic facilities provided by
 @command{gawk}.
 
 @ref{Dynamic Extensions}, describes how to add new variables and
-functions to @command{gawk} by writing extensions in C.
+functions to @command{gawk} by writing extensions in C or C++.
 
 Part IV provides the appendices, the Glossary, and two licenses that cover
 the @command{gawk} source code and this @value{DOCUMENT}, respectively.
@@ -1396,14 +1396,10 @@ and some possible future directions for @command{gawk} 
development.
 @ref{Basic Concepts},
 provides some very cursory background material for those who
 are completely unfamiliar with computer programming.
-Also centralized there is a discussion of some of the issues
-surrounding floating-point numbers.
 
-The
address@hidden,
-defines most, if not all, the significant terms used
-throughout the book.
-If you find terms that you aren't familiar with, try looking them up here.
+The @ref{Glossary}, defines most, if not all, the significant terms used
+throughout the book.  If you find terms that you aren't familiar with,
+try looking them up here.
 
 @ref{Copying}, and
 @ref{GNU Free Documentation License},
@@ -1631,10 +1627,11 @@ This edition maintains the basic structure of the 
previous editions.
 For Edition 4.0, the content has been thoroughly reviewed
 and updated. All references to @command{gawk} versions prior to 4.0 have been
 removed.
-Of significant note for this edition is @ref{Debugger}.
+Of significant note for this edition was @ref{Debugger}.
 
-For edition 4.1, the content has been reorganized into parts,
-and the major new addition is @ref{Dynamic Extensions}.
+For edition @value{EDITION}, the content has been reorganized into parts,
+and the major new additions are @ref{Arbitrary Precision Arithmetic},
+and @ref{Dynamic Extensions}.
 
 @address@hidden will undoubtedly continue to evolve.
 An electronic version
@@ -1836,7 +1833,7 @@ take advantage of those opportunities.
 Arnold Robbins @*
 Nof Ayalon @*
 ISRAEL @*
-April, 2013
+May, 2013
 
 @iftex
 @part Part I:@* The @command{awk} Language
@@ -2149,10 +2146,8 @@ affect the execution of the @command{awk} program but it 
does make
 @subsection Executable @command{awk} Programs
 @cindex @command{awk} programs
 @cindex @code{#} (number sign), @code{#!} (executable scripts)
address@hidden number sign (@code{#}), @code{#!} (executable scripts)
 @cindex Unix, @command{awk} scripts and
address@hidden @code{#} (number sign), @code{#!} (executable scripts), 
portability issues with
address@hidden number sign (@code{#}), @code{#!} (executable scripts), 
portability issues with
address@hidden number sign (@code{#}), @code{#!} (executable scripts)
 
 Once you have learned @command{awk}, you may want to write self-contained
 @command{awk} scripts, using the @samp{#!} script mechanism.  You can do
@@ -3515,7 +3510,6 @@ when parsing numeric input data (@pxref{Locales}).
 @itemx address@hidden@address@hidden
 @cindex @code{-o} option
 @cindex @code{--pretty-print} option
address@hidden @command{awk} enabling
 Enable pretty-printing of @command{awk} programs.
 By default, output program is created in a file named @file{awkprof.out}.
 The optional @var{file} argument allows you to specify a different
@@ -3654,7 +3648,7 @@ character (@code{"\t"}).  This is true only for 
@option{--traditional} and not
 for @option{--posix}
 (@pxref{Field Separators}).
 
address@hidden @code{-f} option, on command line
address@hidden @code{-f} option, multiple uses
 The @option{-f} option may be used more than once on the command line.
 If it is, @command{awk} reads its program source from all of the named files, 
as
 if they had been concatenated together into one big file.  This is
@@ -4729,8 +4723,8 @@ matches the character @samp{$}.
 
 @cindex regular expressions, anchors in
 @cindex Texinfo, chapter beginnings in files
address@hidden @code{^} (caret)
address@hidden caret (@code{^})
address@hidden @code{^} (caret), regexp operator
address@hidden caret (@code{^}), regexp operator
 @item ^
 This matches the beginning of a string.  For example, @samp{^@@chapter}
 matches @samp{@@chapter} at the beginning of a string and can be used
@@ -5424,10 +5418,10 @@ on the right.  This is true of any string-valued 
expression (such as
 @end quotation
 
 @cindex regexp constants, slashes vs.@: quotes
address@hidden @code{\} (backslash), regexp constants
address@hidden backslash (@code{\}), regexp constants
address@hidden @code{"} (double quote), regexp constants
address@hidden double quote (@code{"}), regexp constants
address@hidden @code{\} (backslash), in regexp constants
address@hidden backslash (@code{\}), in regexp constants
address@hidden @code{"} (double quote), in regexp constants
address@hidden double quote (@code{"}), in regexp constants
 What difference does it make if the string is
 scanned twice? The answer has to do with escape sequences, and particularly
 with backslashes.  To get a backslash into a regular expression inside a
@@ -6591,8 +6585,8 @@ awk -F\\\\ '@dots{}' files @dots{}
 @end example
 
 @noindent
address@hidden @code{\} (backslash), as field separators
address@hidden backslash (@code{\}), as field separators
address@hidden @code{\} (backslash), as field separator
address@hidden backslash (@code{\}), as field separator
 Because @samp{\} is used for quoting in the shell, @command{awk} sees
 @samp{-F\\}.  Then @command{awk} processes the @samp{\\} for escape
 characters (@pxref{Escape Sequences}), finally yielding
@@ -9414,8 +9408,8 @@ which discusses it in more detail and gives an example.
 @end docbook
 
 @cindex dark corner, @code{close()} function
address@hidden @code{close()} function, return values
address@hidden return address@hidden @code{close()} function
address@hidden @code{close()} function, return value
address@hidden return address@hidden @code{close()} function
 @cindex differences in @command{awk} and @command{gawk}, @code{close()} 
function
 @cindex Unix @command{awk}, @code{close()} function and
 
@@ -9470,8 +9464,8 @@ when closing a pipe.
 
 
 @cindex dark corner, @code{close()} function
address@hidden @code{close()} function, return values
address@hidden return address@hidden @code{close()} function
address@hidden @code{close()} function, return value
address@hidden return address@hidden @code{close()} function
 @cindex differences in @command{awk} and @command{gawk}, @code{close()} 
function
 @cindex Unix @command{awk}, @code{close()} function and
 
@@ -9940,7 +9934,7 @@ Such an assignment has the following form:
 @address@hidden
 @end example
 
address@hidden @code{-v} option, address@hidden assigning
address@hidden @code{-v} option
 @noindent
 With it, a variable is set either at the beginning of the
 @command{awk} run or in between input files.
@@ -10092,11 +10086,13 @@ locales, use the period character (@samp{.}) as the 
decimal point.
 However, many (if not most) European and non-English locales use the comma
 (@samp{,}) as the decimal point character.
 
address@hidden dark corner, locale's decimal point character
 The POSIX standard says that @command{awk} always uses the period as the 
decimal
 point when reading the @command{awk} program source code, and for command-line
 variable assignments (@pxref{Other Arguments}).
 However, when interpreting input data, for @code{print} and @code{printf} 
output,
 and for number to string conversion, the local decimal point character is used.
address@hidden
 Here are some examples indicating the difference in behavior,
 on a GNU/Linux system:
 
@@ -10200,16 +10196,10 @@ $ @kbd{awk '@{ sum = $2 + $3 + $4 ; avg = sum / 3}
 @print{} Chris 84.3333
 @end example
 
-The following list provides the arithmetic operators in @command{awk}, in 
order from
-the highest precedence to the lowest:
+The following list provides the arithmetic operators in @command{awk},
+in order from the highest precedence to the lowest:
 
 @table @code
address@hidden - @var{x}
-Negation.
-
address@hidden + @var{x}
-Unary plus; the expression is converted to a number.
-
 @cindex common extensions, @code{**} operator
 @cindex extensions, address@hidden @code{**} operator
 @cindex POSIX @command{awk}, arithmetic operators and
@@ -10219,6 +10209,12 @@ Exponentiation; @var{x} raised to the @var{y} power.  
@samp{2 ^ 3} has
 the value eight; the character sequence @samp{**} is equivalent to
 @samp{^}. @value{COMMONEXT}
 
address@hidden - @var{x}
+Negation.
+
address@hidden + @var{x}
+Unary plus; the expression is converted to a number.
+
 @item @var{x} * @var{y}
 Multiplication.
 
@@ -10643,7 +10639,7 @@ For maximum portability, do not use the @samp{**=} 
operator.
 @c derived from email from  "Nelson H. F. Beebe" <address@hidden>
 @c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
 
address@hidden dark corner
address@hidden dark corner, @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex ambiguity, syntactic: @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex syntactic ambiguity: @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex @code{/=} operator vs. @code{/address@hidden/} regexp constant
@@ -10691,7 +10687,7 @@ freely available versions described in
 @c derived from email from  "Nelson H. F. Beebe" <address@hidden>
 @c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
 
address@hidden dark corner
address@hidden dark corner, @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex ambiguity, syntactic: @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex syntactic ambiguity: @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex @code{/=} operator vs. @code{/address@hidden/} regexp constant
@@ -10739,8 +10735,8 @@ the increment operators add no power to the 
@command{awk} language; however, the
 are convenient abbreviations for very common operations.
 
 @cindex side effects
address@hidden @code{+} (plus sign), @code{++} (decrement/increment operators)
address@hidden plus sign (@code{+}), @code{++} (decrement/increment operators)
address@hidden @code{+} (plus sign), @code{++} operator
address@hidden plus sign (@code{+}), @code{++} operator
 @cindex side effects, decrement/increment operators
 The operator used for adding one is written @samp{++}.  It can be used to 
increment
 a variable either before or after taking its value.
@@ -10957,7 +10953,7 @@ BEGIN @{
 @}
 @end example
 
address@hidden dark corner
address@hidden dark corner, @code{"0"} is actually true
 There is a surprising consequence of the ``nonzero or non-null'' rule:
 the string constant @code{"0"} is actually true, because it is non-null.
 @value{DARKCORNER}
@@ -11714,8 +11710,8 @@ Field reference.
 
 @cindex @code{+} (plus sign), @code{++} operator
 @cindex plus sign (@code{+}), @code{++} operator
address@hidden @code{-} (hyphen), @code{--} (decrement/increment) operator
address@hidden hyphen (@code{-}), @code{--} (decrement/increment) operators
address@hidden @code{-} (hyphen), @code{--} operator
address@hidden hyphen (@code{-}), @code{--} operator
 @item ++ --
 Increment, decrement.
 
@@ -12309,6 +12305,7 @@ are not valid in an @code{END} rule, since all the 
input has been read.
 @subsection The @code{BEGINFILE} and @code{ENDFILE} Special Patterns
 @cindex @code{BEGINFILE} pattern
 @cindex @code{ENDFILE} pattern
address@hidden differences in @command{awk} and @command{gawk}, 
@code{BEGINFILE}/@code{ENDFILE} patterns
 
 This @value{SECTION} describes a @command{gawk}-specific feature.
 
@@ -12322,7 +12319,7 @@ The body of the @code{BEGINFILE} rules is executed just 
before
 @command{gawk} reads the first record from a file.  @code{FILENAME}
 is set to the name of the current file, and @code{FNR} is set to zero.
 
-The @code{BEGINFILE} rule provides you the opportunity for two tasks
+The @code{BEGINFILE} rule provides you the opportunity to accomplish two tasks
 that would otherwise be difficult or impossible to perform:
 
 @itemize @bullet
@@ -13140,10 +13137,7 @@ first rule in the program.
 @node Nextfile Statement
 @subsection The @code{nextfile} Statement
 @cindex @code{nextfile} statement
address@hidden differences in @command{awk} and @command{gawk}, 
@code{next}/@code{nextfile} statements
 
address@hidden common extensions, @code{nextfile} statement
address@hidden extensions, address@hidden @code{nextfile} statement
 The @code{nextfile} statement
 is similar to the @code{next} statement.
 However, instead of abandoning processing of the current record, the
@@ -14449,7 +14443,7 @@ if it didn't exist before!
 @end quotation
 
 @c @cindex arrays, @code{in} operator and
address@hidden @code{in} operator, arrays and
address@hidden @code{in} operator
 To determine whether an element exists in an array at a certain index, use
 the following expression:
 
@@ -14588,12 +14582,12 @@ for (@var{var} in @var{array})
 @end example
 
 @noindent
address@hidden @code{in} operator, arrays and
address@hidden @code{in} operator
 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, @code{for} statement and
address@hidden @code{for} statement, in arrays
address@hidden @code{for} statement, 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
@@ -15944,7 +15938,7 @@ The @var{array} argument to @code{match()} is a
 using a third argument is a fatal error.
 
 @item patsplit(@var{string}, @var{array} @r{[}, @var{fieldpat} @r{[}, 
@var{seps} @r{]} @r{]}) #
address@hidden @code{patsplit()} function
address@hidden @code{patsplit()} function (@command{gawk})
 Divide
 @var{string} into pieces defined by @var{fieldpat}
 and store the pieces in @var{array} and the separator strings in the
@@ -16716,13 +16710,10 @@ which discusses this feature in more detail and gives 
an example.
 
 @item fflush(@address@hidden@r{]})
 @cindex @code{fflush()} function
address@hidden common extensions, @code{fflush()} function
address@hidden extensions, address@hidden @code{fflush()} function
 Flush any buffered output associated with @var{filename}, which is either a
 file opened for writing or a shell command for redirecting output to
 a pipe or coprocess.
 
address@hidden portability, @code{fflush()} function and
 @cindex buffers, flushing
 @cindex output, buffering
 Many utility programs @dfn{buffer} their output; i.e., they save information
@@ -24886,7 +24877,7 @@ discusses the ability to dynamically add new built-in 
functions to
 @node Nondecimal Data
 @section Allowing Nondecimal Input Data
 @cindex @code{--non-decimal-data} option
address@hidden advanced features, @command{gawk}, nondecimal input data
address@hidden advanced features, nondecimal input data
 @cindex input, address@hidden nondecimal
 @cindex constants, nondecimal
 
@@ -25369,7 +25360,7 @@ Mike Brennan
 @c brennan@@whidbey.com
 @end smallexample
 
address@hidden advanced features, @command{gawk}, address@hidden communicating 
with
address@hidden advanced features, address@hidden communicating with
 @cindex processes, two-way communications with
 It is often useful to be able to
 send data to a separate program for
@@ -25519,7 +25510,7 @@ using regular pipes.
 
 @node TCP/IP Networking
 @section Using @command{gawk} for Network Programming
address@hidden advanced features, @command{gawk}, network programming
address@hidden advanced features, network programming
 @cindex networks, programming
 @c STARTOFRANGE tcpip
 @cindex TCP/IP
@@ -25630,7 +25621,6 @@ extensive examples.
 @cindex @command{awk} programs, profiling
 @c STARTOFRANGE proawk
 @cindex profiling @command{awk} programs
address@hidden profiling @command{gawk}
 @cindex @code{awkprof.out} file
 @cindex files, @code{awkprof.out}
 
@@ -25825,6 +25815,7 @@ the target of a redirection isn't a scalar, it gets 
parenthesized.
 @item
 @command{gawk} supplies leading comments in
 front of the @code{BEGIN} and @code{END} rules,
+the @code{BEGINFILE} and @code{ENDFILE} rules,
 the pattern/action rules, and the functions.
 
 @end itemize
@@ -26044,13 +26035,13 @@ is copied to a portable object file (@code{.po})
 and translations are created and shipped with the application.
 For example, there might be a @file{fr.po} for a French translation.
 
address@hidden @code{.mo} files
address@hidden files, @code{.mo}
address@hidden @code{.gmo} files
address@hidden files, @code{.gmo}
 @cindex message object files
 @cindex files, message object
 @item
 Each language's @file{.po} file is converted into a binary
-message object (@file{.mo}) file.
+message object (@file{.gmo}) file.
 A message object file contains the original messages and their
 translations in a binary format that allows fast lookup of translations
 at runtime.
@@ -26062,11 +26053,11 @@ are installed in a standard place.
 @cindex @code{bindtextdomain()} function (C library)
 @item
 For testing and development, it is possible to tell @code{gettext}
-to use @file{.mo} files in a different directory than the standard
+to use @file{.gmo} files in a different directory than the standard
 one by using the @code{bindtextdomain()} function.
 
address@hidden @code{.mo} files, specifying directory of
address@hidden files, @code{.mo}, specifying directory of
address@hidden @code{.gmo} files, specifying directory of
address@hidden files, @code{.gmo}, specifying directory of
 @cindex message object files, specifying directory of
 @cindex files, message object, specifying directory of
 @item
@@ -26092,8 +26083,8 @@ printf("%s", gettext("Don't Panic!\n"));
 The tools that extract messages from source code pull out all
 strings enclosed in calls to @code{gettext()}.
 
address@hidden @code{_} (underscore), @code{_} C macro
address@hidden underscore (@code{_}), @code{_} C macro
address@hidden @code{_} (underscore), C macro
address@hidden underscore (@code{_}), C macro
 The GNU @code{gettext} developers, recognizing that typing
 @samp{gettext(@dots{})} over and over again is both painful and ugly to look
 at, use the macro @samp{_} (an underscore) to make things easier:
@@ -26232,14 +26223,14 @@ The default value for @var{category} is 
@code{"LC_MESSAGES"}.
 
 The same remarks about argument order as for the @code{dcgettext()} function 
apply.
 
address@hidden @code{.mo} files, specifying directory of
address@hidden files, @code{.mo}, specifying directory of
address@hidden @code{.gmo} files, specifying directory of
address@hidden files, @code{.gmo}, specifying directory of
 @cindex message object files, specifying directory of
 @cindex files, message object, specifying directory of
 @cindex @code{bindtextdomain()} function (@command{gawk})
 @item bindtextdomain(@var{directory} @r{[}, @address@hidden)
 Change the directory in which
address@hidden looks for @file{.mo} files, in case they
address@hidden looks for @file{.gmo} files, in case they
 will not or cannot be placed in the standard locations
 (e.g., during testing).
 Return the directory in which @var{domain} is ``bound.''
@@ -26307,7 +26298,7 @@ message, but it uses the default @code{"LC_MESSAGES"} 
category.
 
 @cindex @code{LC_MESSAGES} locale category, @code{bindtextdomain()} function 
(@command{gawk})
 @item
-During development, you might want to put the @file{.mo}
+During development, you might want to put the @file{.gmo}
 file in a private directory for testing.  This is done
 with the @code{bindtextdomain()} built-in function:
 
@@ -26647,7 +26638,7 @@ msgstr "Like, the scoop is"
 @cindex Linux
 @cindex GNU/Linux
 The next step is to make the directory to hold the binary message object
-file and then to create the @file{guide.mo} file.
+file and then to create the @file{guide.gmo} file.
 The directory layout shown here is standard for GNU @code{gettext} on
 GNU/Linux systems.  Other versions of @code{gettext} may use a different
 layout:
@@ -26656,24 +26647,24 @@ layout:
 $ @kbd{mkdir en_US en_US/LC_MESSAGES}
 @end example
 
address@hidden @code{.po} files, converting to @code{.mo}
address@hidden files, @code{.po}, converting to @code{.mo}
address@hidden @code{.mo} files, converting from @code{.po}
address@hidden files, @code{.mo}, converting from @code{.po}
address@hidden @code{.po} files, converting to @code{.gmo}
address@hidden files, @code{.po}, converting to @code{.gmo}
address@hidden @code{.gmo} files, converting from @code{.po}
address@hidden files, @code{.gmo}, converting from @code{.po}
 @cindex portable object files, converting to message object files
 @cindex files, portable object, converting to message object files
 @cindex message object files, converting from portable object files
 @cindex files, message object, converting from portable object files
 @cindex @command{msgfmt} utility
 The @command{msgfmt} utility does the conversion from human-readable
address@hidden file to machine-readable @file{.mo} file.
address@hidden file to machine-readable @file{.gmo} file.
 By default, @command{msgfmt} creates a file named @file{messages}.
 This file must be renamed and placed in the proper directory so that
 @command{gawk} can find it:
 
 @example
 $ @kbd{msgfmt guide-mellow.po}
-$ @kbd{mv messages en_US/LC_MESSAGES/guide.mo}
+$ @kbd{mv messages en_US/LC_MESSAGES/guide.gmo}
 @end example
 
 Finally, we run the program to test it:
@@ -31677,7 +31668,7 @@ static const char *ext_version = "filefuncs extension: 
version 1.0";
 int plugin_is_GPL_compatible;
 @end example
 
address@hidden programming conventions, @command{gawk} internals
address@hidden programming conventions, @command{gawk} extensions
 By convention, for an @command{awk} function @code{foo()}, the C function
 that implements it is called @code{do_foo()}.  The function should have
 two arguments: the first is an @code{int} usually called @code{nargs},
@@ -31980,7 +31971,6 @@ earlier.  When done, return the result from 
@code{fill_stat_array()}:
 @}
 @end example
 
address@hidden programming conventions, @command{gawk} internals
 Finally, it's necessary to provide the ``glue'' that loads the
 new function(s) into @command{gawk}.
 
@@ -32141,12 +32131,14 @@ The usage is:
 @item @@load "filefuncs"
 This is how you load the extension.
 
address@hidden @code{chdir} extension function
 @item result = chdir("/some/directory")
 The @code{chdir()} function is a direct hook to the @code{chdir()}
 system call to change the current directory.  It returns zero
 upon success or less than zero upon error.  In the latter case it updates
 @code{ERRNO}.
 
address@hidden @code{stat} extension function
 @item result = stat("/some/path", statdata [, follow])
 The @code{stat()} function provides a hook into the
 @code{stat()} system call.
@@ -32236,6 +32228,7 @@ or
 Not all systems support all file types.
 @end multitable
 
address@hidden @code{fts} extension function
 @item flags = or(FTS_PHYSICAL, ...)
 @itemx result = fts(pathlist, flags, filedata)
 Walk the file trees provided in @code{pathlist} and fill in the
@@ -32356,6 +32349,7 @@ See @file{test/fts.awk} in the @command{gawk} 
distribution for an example.
 @node Extension Sample Fnmatch
 @subsection Interface To @code{fnmatch()}
 
address@hidden @code{fnmatch} extension function
 This extension provides an interface to the C library
 @code{fnmatch()} function.  The usage is:
 
@@ -32428,6 +32422,7 @@ The @code{fork} extension adds three functions, as 
follows.
 @item @@load "fork"
 This is how you load the extension.
 
address@hidden @code{fork} extension function
 @item pid = fork()
 This function creates a new process. The return value is the zero in the
 child and the process-id number of the child in the parent, or @minus{}1
@@ -32435,11 +32430,13 @@ upon error. In the latter case, @code{ERRNO} 
indicates the problem.
 In the child, @code{PROCINFO["pid"]} and @code{PROCINFO["ppid"]} are
 updated to reflect the correct values.
 
address@hidden @code{waitpid} extension function
 @item ret = waitpid(pid)
 This function takes a numeric argument, which is the process-id to
 wait for. The return value is that of the
 @code{waitpid()} system call.
 
address@hidden @code{wait} extension function
 @item ret = wait()
 This function waits for the first child to die.
 The return value is that of the
@@ -32462,6 +32459,7 @@ else
 @node Extension Sample Inplace
 @subsection Enabling In-Place File Editing
 
address@hidden @code{inplace} extension
 The @code{inplace} extension emulates GNU @command{sed}'s @option{-i} option
 which performs ``in place'' editing of each input file.
 It uses the bundled @file{inplace.awk} include file to invoke the extension
@@ -32525,9 +32523,11 @@ The @code{ordchr} extension adds two functions, named
 @item @@load "ordchr"
 This is how you load the extension.
 
address@hidden @code{ord} extension function
 @item number = ord(string)
 Return the numeric value of the first character in @code{string}.
 
address@hidden @code{chr} extension function
 @item char = chr(number)
 Return a string whose first character is that represented by @code{number}.
 @end table
@@ -32548,6 +32548,7 @@ printf("The string value of 65 is %s\n", chr(65))
 The @code{readdir} extension adds an input parser for directories.
 The usage is as follows:
 
address@hidden @code{readdir} extension
 @example
 @@load "readdir"
 @end example
@@ -32601,6 +32602,7 @@ the characters in each output line.  It's main purpose 
is to show how to
 write an output wrapper, although it may be mildly amusing for the unwary.
 Here is an example:
 
address@hidden @code{revoutput} extension
 @example
 @@load "revoutput"
 
@@ -32622,6 +32624,7 @@ the @command{awk} program.  It's main purpose is to 
show how to write
 a two-way processor, although it may also be mildly amusing.
 The following example shows how to use it:
 
address@hidden @code{revtwoway} extension
 @example
 @@load "revtwoway"
 
@@ -32641,12 +32644,14 @@ The @code{rwarray} extension adds two functions,
 named @code{writea()} and @code{reada()}, as follows:
 
 @table @code
address@hidden @code{writea} extension function
 @item ret = writea(file, array)
 This function takes a string argument, which is the name of the file
 to which dump the array, and the array itself as the second argument.
 @code{writea()} understands multidimensional arrays.  It returns one on
 success, or zero upon failure.
 
address@hidden @code{reada} extension function
 @item ret = reada(file, array)
 @code{reada()} is the inverse of @code{writea()};
 it reads the file named as its first argument, filling in
@@ -32689,6 +32694,7 @@ named @code{readfile()}:
 @item @@load "readfile"
 This is how you load the extension.
 
address@hidden @code{readfile} extension function
 @item result = readfile("/some/path")
 The argument is the name of the file to read.  The return value is a
 string containing the entire contents of the requested file.  Upon error,
@@ -32709,6 +32715,7 @@ if (contents == "" && ERRNO != "") @{
 
 @node Extension Sample API Tests
 @subsection API Tests
address@hidden @code{testext} extension
 
 The @code{testext} extension exercises parts of the extension API that
 are not tested by the other samples.  The @file{extension/testext.c}
@@ -32720,9 +32727,6 @@ for more information.
 @node Extension Sample Time
 @subsection Extension Time Functions
 
address@hidden time
address@hidden sleep
-
 These functions can be used either by invoking @command{gawk}
 with a command-line argument of @samp{-l time} or by
 inserting @samp{@@load "time"} in your script.
@@ -32731,7 +32735,7 @@ inserting @samp{@@load "time"} in your script.
 @item @@load "time"
 This is how you load the extension.
 
address@hidden @code{gettimeofday} time extension function
address@hidden @code{gettimeofday} extension function
 @item the_time = gettimeofday()
 Return the time in seconds that has elapsed since 1970-01-01 UTC as a
 floating point value.  If the time is unavailable on this platform, return
@@ -32741,7 +32745,7 @@ If the standard C @code{gettimeofday()} system call is 
available on this
 platform, then it simply returns the value.  Otherwise, if on Windows,
 it tries to use @code{GetSystemTimeAsFileTime()}.
 
address@hidden @code{sleep} time extension function
address@hidden @code{sleep} extension function
 @item result = sleep(@var{seconds})
 Attempt to sleep for @var{seconds} seconds.  If @var{seconds} is negative,
 or the attempt to sleep fails, return @minus{}1 and set @code{ERRNO}.
@@ -32754,6 +32758,7 @@ tries to use @code{nanosleep()} or @code{select()} to 
implement the delay.
 @node gawkextlib
 @section The @code{gawkextlib} Project
 
address@hidden @code{gawkextlib} project
 The @uref{http://sourceforge.net/projects/gawkextlib/, @code{gawkextlib}}
 project provides a number of @command{gawk} extensions, including one for
 processing XML files.  This is the evolution of the original @command{xgawk}
@@ -32790,6 +32795,7 @@ code control system.  The command is as follows:
 git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib-code
 @end example
 
address@hidden Expat XML parser library
 You will need to have the @uref{http://expat.sourceforge.net, Expat}
 XML parser library installed in order to build and use the XML extension.
 
@@ -33466,6 +33472,8 @@ Prestandard VAX C compiler for VAX/VMS
 @node Common Extensions
 @appendixsec Common Extensions Summary
 
address@hidden extensions, Brian Kernighan's @command{awk}
address@hidden extensions, @command{mawk}
 This @value{SECTION} summarizes the common extensions supported
 by @command{gawk}, Brian Kernighan's @command{awk}, and @command{mawk},
 the three most widely-used freely available versions of @command{awk}
@@ -33489,6 +33497,10 @@ the three most widely-used freely available versions 
of @command{awk}
 @item Time related functions @tab @tab X @tab X
 @end multitable
 
+(Technically speaking, as of late 2012, @code{fflush()}, @samp{delete 
@var{array}},
+and @code{nextfile} are no longer extensions, since they have been added
+to POSIX.)
+
 @node Ranges and Locales
 @appendixsec Regexp Ranges and Locales: A Long Sad Story
 
@@ -33721,7 +33733,7 @@ the various PC platforms.
 Christos Zoulas
 provided the @code{extension()}
 built-in function for dynamically adding new modules.
-(This was removed at @command{gawk} 4.1.)
+(This was obsoleted at @command{gawk} 4.1.)
 
 @item
 @cindex Kahrs, J@"urgen
@@ -33781,7 +33793,6 @@ Patrick T.J.@: McPhee contributed the code for dynamic 
loading in Windows32
 environments.
 (This is no longer supported)
 
-
 @item
 @cindex Haque, John
 John Haque made the following contributions:
@@ -33801,6 +33812,9 @@ The initial text of
 @item
 The work to merge the three versions of @command{gawk}
 into one, for the 4.1 release.
+
address@hidden
+Improved array internals for arrays indexed by integers.
 @end itemize
 
 @item
@@ -34520,7 +34534,7 @@ at least the @samp{|&} operator.
 @cindex @command{gawk}, MS-Windows version of
 @cindex @code{;} (semicolon), @code{AWKPATH} variable and
 @cindex semicolon (@code{;}), @code{AWKPATH} variable and
address@hidden @code{AWKPATH} environment variable
address@hidden @env{AWKPATH} environment variable
 The MS-DOS and MS-Windows versions of @command{gawk} search for
 program files as described in @ref{AWKPATH Variable}.  However,
 semicolons (rather than colons) separate elements in the @env{AWKPATH}
@@ -34997,8 +35011,7 @@ This @value{SECTION} briefly describes where to get 
them:
 @cindex Kernighan, Brian
 @cindex source code, Brian Kernighan's @command{awk}
 @cindex @command{awk}, versions of, See Also Brian Kernighan's @command{awk}
address@hidden extensions, Brian Kernighan's @command{awk}
address@hidden Brian Kernighan's @command{awk}, extensions
address@hidden Brian Kernighan's @command{awk}
 @item Unix @command{awk}
 Brian Kernighan, one of the original designers of Unix @command{awk},
 has made his implementation of
@@ -36884,8 +36897,7 @@ to indicate their base.  Thus, @code{013} is 11 (one 
times 8 plus 3).
 @xref{Nondecimal-numbers}.
 
 @cindex P1003.1 POSIX standard
address@hidden P1003.2 POSIX standard
address@hidden P1003.1, P1003.2
address@hidden P1003.1
 See ``POSIX.''
 
 @item Pattern
@@ -36904,7 +36916,6 @@ Keyboard And Chair.)
 
 @item POSIX
 The name for a series of standards
address@hidden being developed by the IEEE
 that specify a Portable Operating System interface.  The ``IX'' denotes
 the Unix heritage of these standards.  The main standard of interest for
 @command{awk} users is
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index b5e682b..f836690 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -21,7 +21,7 @@
 @c applies to and all the info about who's publishing this edition
 
 @c These apply across the board.
address@hidden UPDATE-MONTH April, 2013
address@hidden UPDATE-MONTH May, 2013
 @set VERSION 4.0
 @set PATCHLEVEL 2
 
@@ -1336,7 +1336,7 @@ describes advanced arithmetic facilities provided by
 @command{gawk}.
 
 @ref{Dynamic Extensions}, describes how to add new variables and
-functions to @command{gawk} by writing extensions in C.
+functions to @command{gawk} by writing extensions in C or C++.
 
 Part IV provides the appendices, the Glossary, and two licenses that cover
 the @command{gawk} source code and this @value{DOCUMENT}, respectively.
@@ -1363,14 +1363,10 @@ and some possible future directions for @command{gawk} 
development.
 @ref{Basic Concepts},
 provides some very cursory background material for those who
 are completely unfamiliar with computer programming.
-Also centralized there is a discussion of some of the issues
-surrounding floating-point numbers.
 
-The
address@hidden,
-defines most, if not all, the significant terms used
-throughout the book.
-If you find terms that you aren't familiar with, try looking them up here.
+The @ref{Glossary}, defines most, if not all, the significant terms used
+throughout the book.  If you find terms that you aren't familiar with,
+try looking them up here.
 
 @ref{Copying}, and
 @ref{GNU Free Documentation License},
@@ -1598,10 +1594,11 @@ This edition maintains the basic structure of the 
previous editions.
 For Edition 4.0, the content has been thoroughly reviewed
 and updated. All references to @command{gawk} versions prior to 4.0 have been
 removed.
-Of significant note for this edition is @ref{Debugger}.
+Of significant note for this edition was @ref{Debugger}.
 
-For edition 4.1, the content has been reorganized into parts,
-and the major new addition is @ref{Dynamic Extensions}.
+For edition @value{EDITION}, the content has been reorganized into parts,
+and the major new additions are @ref{Arbitrary Precision Arithmetic},
+and @ref{Dynamic Extensions}.
 
 @address@hidden will undoubtedly continue to evolve.
 An electronic version
@@ -1803,7 +1800,7 @@ take advantage of those opportunities.
 Arnold Robbins @*
 Nof Ayalon @*
 ISRAEL @*
-April, 2013
+May, 2013
 
 @iftex
 @part Part I:@* The @command{awk} Language
@@ -2116,10 +2113,8 @@ affect the execution of the @command{awk} program but it 
does make
 @subsection Executable @command{awk} Programs
 @cindex @command{awk} programs
 @cindex @code{#} (number sign), @code{#!} (executable scripts)
address@hidden number sign (@code{#}), @code{#!} (executable scripts)
 @cindex Unix, @command{awk} scripts and
address@hidden @code{#} (number sign), @code{#!} (executable scripts), 
portability issues with
address@hidden number sign (@code{#}), @code{#!} (executable scripts), 
portability issues with
address@hidden number sign (@code{#}), @code{#!} (executable scripts)
 
 Once you have learned @command{awk}, you may want to write self-contained
 @command{awk} scripts, using the @samp{#!} script mechanism.  You can do
@@ -3443,7 +3438,6 @@ when parsing numeric input data (@pxref{Locales}).
 @itemx address@hidden@address@hidden
 @cindex @code{-o} option
 @cindex @code{--pretty-print} option
address@hidden @command{awk} enabling
 Enable pretty-printing of @command{awk} programs.
 By default, output program is created in a file named @file{awkprof.out}.
 The optional @var{file} argument allows you to specify a different
@@ -3582,7 +3576,7 @@ character (@code{"\t"}).  This is true only for 
@option{--traditional} and not
 for @option{--posix}
 (@pxref{Field Separators}).
 
address@hidden @code{-f} option, on command line
address@hidden @code{-f} option, multiple uses
 The @option{-f} option may be used more than once on the command line.
 If it is, @command{awk} reads its program source from all of the named files, 
as
 if they had been concatenated together into one big file.  This is
@@ -4576,8 +4570,8 @@ matches the character @samp{$}.
 
 @cindex regular expressions, anchors in
 @cindex Texinfo, chapter beginnings in files
address@hidden @code{^} (caret)
address@hidden caret (@code{^})
address@hidden @code{^} (caret), regexp operator
address@hidden caret (@code{^}), regexp operator
 @item ^
 This matches the beginning of a string.  For example, @samp{^@@chapter}
 matches @samp{@@chapter} at the beginning of a string and can be used
@@ -5271,10 +5265,10 @@ on the right.  This is true of any string-valued 
expression (such as
 @end quotation
 
 @cindex regexp constants, slashes vs.@: quotes
address@hidden @code{\} (backslash), regexp constants
address@hidden backslash (@code{\}), regexp constants
address@hidden @code{"} (double quote), regexp constants
address@hidden double quote (@code{"}), regexp constants
address@hidden @code{\} (backslash), in regexp constants
address@hidden backslash (@code{\}), in regexp constants
address@hidden @code{"} (double quote), in regexp constants
address@hidden double quote (@code{"}), in regexp constants
 What difference does it make if the string is
 scanned twice? The answer has to do with escape sequences, and particularly
 with backslashes.  To get a backslash into a regular expression inside a
@@ -6312,8 +6306,8 @@ awk -F\\\\ '@dots{}' files @dots{}
 @end example
 
 @noindent
address@hidden @code{\} (backslash), as field separators
address@hidden backslash (@code{\}), as field separators
address@hidden @code{\} (backslash), as field separator
address@hidden backslash (@code{\}), as field separator
 Because @samp{\} is used for quoting in the shell, @command{awk} sees
 @samp{-F\\}.  Then @command{awk} processes the @samp{\\} for escape
 characters (@pxref{Escape Sequences}), finally yielding
@@ -8997,8 +8991,8 @@ which discusses it in more detail and gives an example.
 
 @sidebar Using @code{close()}'s Return Value
 @cindex dark corner, @code{close()} function
address@hidden @code{close()} function, return values
address@hidden return address@hidden @code{close()} function
address@hidden @code{close()} function, return value
address@hidden return address@hidden @code{close()} function
 @cindex differences in @command{awk} and @command{gawk}, @code{close()} 
function
 @cindex Unix @command{awk}, @code{close()} function and
 
@@ -9437,7 +9431,7 @@ Such an assignment has the following form:
 @address@hidden
 @end example
 
address@hidden @code{-v} option, address@hidden assigning
address@hidden @code{-v} option
 @noindent
 With it, a variable is set either at the beginning of the
 @command{awk} run or in between input files.
@@ -9589,11 +9583,13 @@ locales, use the period character (@samp{.}) as the 
decimal point.
 However, many (if not most) European and non-English locales use the comma
 (@samp{,}) as the decimal point character.
 
address@hidden dark corner, locale's decimal point character
 The POSIX standard says that @command{awk} always uses the period as the 
decimal
 point when reading the @command{awk} program source code, and for command-line
 variable assignments (@pxref{Other Arguments}).
 However, when interpreting input data, for @code{print} and @code{printf} 
output,
 and for number to string conversion, the local decimal point character is used.
address@hidden
 Here are some examples indicating the difference in behavior,
 on a GNU/Linux system:
 
@@ -9697,16 +9693,10 @@ $ @kbd{awk '@{ sum = $2 + $3 + $4 ; avg = sum / 3}
 @print{} Chris 84.3333
 @end example
 
-The following list provides the arithmetic operators in @command{awk}, in 
order from
-the highest precedence to the lowest:
+The following list provides the arithmetic operators in @command{awk},
+in order from the highest precedence to the lowest:
 
 @table @code
address@hidden - @var{x}
-Negation.
-
address@hidden + @var{x}
-Unary plus; the expression is converted to a number.
-
 @cindex common extensions, @code{**} operator
 @cindex extensions, address@hidden @code{**} operator
 @cindex POSIX @command{awk}, arithmetic operators and
@@ -9716,6 +9706,12 @@ Exponentiation; @var{x} raised to the @var{y} power.  
@samp{2 ^ 3} has
 the value eight; the character sequence @samp{**} is equivalent to
 @samp{^}. @value{COMMONEXT}
 
address@hidden - @var{x}
+Negation.
+
address@hidden + @var{x}
+Unary plus; the expression is converted to a number.
+
 @item @var{x} * @var{y}
 Multiplication.
 
@@ -10135,7 +10131,7 @@ For maximum portability, do not use the @samp{**=} 
operator.
 @c derived from email from  "Nelson H. F. Beebe" <address@hidden>
 @c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
 
address@hidden dark corner
address@hidden dark corner, @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex ambiguity, syntactic: @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex syntactic ambiguity: @code{/=} operator vs. @code{/address@hidden/} 
regexp constant
 @cindex @code{/=} operator vs. @code{/address@hidden/} regexp constant
@@ -10182,8 +10178,8 @@ the increment operators add no power to the 
@command{awk} language; however, the
 are convenient abbreviations for very common operations.
 
 @cindex side effects
address@hidden @code{+} (plus sign), @code{++} (decrement/increment operators)
address@hidden plus sign (@code{+}), @code{++} (decrement/increment operators)
address@hidden @code{+} (plus sign), @code{++} operator
address@hidden plus sign (@code{+}), @code{++} operator
 @cindex side effects, decrement/increment operators
 The operator used for adding one is written @samp{++}.  It can be used to 
increment
 a variable either before or after taking its value.
@@ -10342,7 +10338,7 @@ BEGIN @{
 @}
 @end example
 
address@hidden dark corner
address@hidden dark corner, @code{"0"} is actually true
 There is a surprising consequence of the ``nonzero or non-null'' rule:
 the string constant @code{"0"} is actually true, because it is non-null.
 @value{DARKCORNER}
@@ -11099,8 +11095,8 @@ Field reference.
 
 @cindex @code{+} (plus sign), @code{++} operator
 @cindex plus sign (@code{+}), @code{++} operator
address@hidden @code{-} (hyphen), @code{--} (decrement/increment) operator
address@hidden hyphen (@code{-}), @code{--} (decrement/increment) operators
address@hidden @code{-} (hyphen), @code{--} operator
address@hidden hyphen (@code{-}), @code{--} operator
 @item ++ --
 Increment, decrement.
 
@@ -11694,6 +11690,7 @@ are not valid in an @code{END} rule, since all the 
input has been read.
 @subsection The @code{BEGINFILE} and @code{ENDFILE} Special Patterns
 @cindex @code{BEGINFILE} pattern
 @cindex @code{ENDFILE} pattern
address@hidden differences in @command{awk} and @command{gawk}, 
@code{BEGINFILE}/@code{ENDFILE} patterns
 
 This @value{SECTION} describes a @command{gawk}-specific feature.
 
@@ -11707,7 +11704,7 @@ The body of the @code{BEGINFILE} rules is executed just 
before
 @command{gawk} reads the first record from a file.  @code{FILENAME}
 is set to the name of the current file, and @code{FNR} is set to zero.
 
-The @code{BEGINFILE} rule provides you the opportunity for two tasks
+The @code{BEGINFILE} rule provides you the opportunity to accomplish two tasks
 that would otherwise be difficult or impossible to perform:
 
 @itemize @bullet
@@ -12525,10 +12522,7 @@ first rule in the program.
 @node Nextfile Statement
 @subsection The @code{nextfile} Statement
 @cindex @code{nextfile} statement
address@hidden differences in @command{awk} and @command{gawk}, 
@code{next}/@code{nextfile} statements
 
address@hidden common extensions, @code{nextfile} statement
address@hidden extensions, address@hidden @code{nextfile} statement
 The @code{nextfile} statement
 is similar to the @code{next} statement.
 However, instead of abandoning processing of the current record, the
@@ -13788,7 +13782,7 @@ if it didn't exist before!
 @end quotation
 
 @c @cindex arrays, @code{in} operator and
address@hidden @code{in} operator, arrays and
address@hidden @code{in} operator
 To determine whether an element exists in an array at a certain index, use
 the following expression:
 
@@ -13927,12 +13921,12 @@ for (@var{var} in @var{array})
 @end example
 
 @noindent
address@hidden @code{in} operator, arrays and
address@hidden @code{in} operator
 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, @code{for} statement and
address@hidden @code{for} statement, in arrays
address@hidden @code{for} statement, 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
@@ -15283,7 +15277,7 @@ The @var{array} argument to @code{match()} is a
 using a third argument is a fatal error.
 
 @item patsplit(@var{string}, @var{array} @r{[}, @var{fieldpat} @r{[}, 
@var{seps} @r{]} @r{]}) #
address@hidden @code{patsplit()} function
address@hidden @code{patsplit()} function (@command{gawk})
 Divide
 @var{string} into pieces defined by @var{fieldpat}
 and store the pieces in @var{array} and the separator strings in the
@@ -16022,13 +16016,10 @@ which discusses this feature in more detail and gives 
an example.
 
 @item fflush(@address@hidden@r{]})
 @cindex @code{fflush()} function
address@hidden common extensions, @code{fflush()} function
address@hidden extensions, address@hidden @code{fflush()} function
 Flush any buffered output associated with @var{filename}, which is either a
 file opened for writing or a shell command for redirecting output to
 a pipe or coprocess.
 
address@hidden portability, @code{fflush()} function and
 @cindex buffers, flushing
 @cindex output, buffering
 Many utility programs @dfn{buffer} their output; i.e., they save information
@@ -24035,7 +24026,7 @@ discusses the ability to dynamically add new built-in 
functions to
 @node Nondecimal Data
 @section Allowing Nondecimal Input Data
 @cindex @code{--non-decimal-data} option
address@hidden advanced features, @command{gawk}, nondecimal input data
address@hidden advanced features, nondecimal input data
 @cindex input, address@hidden nondecimal
 @cindex constants, nondecimal
 
@@ -24518,7 +24509,7 @@ Mike Brennan
 @c brennan@@whidbey.com
 @end smallexample
 
address@hidden advanced features, @command{gawk}, address@hidden communicating 
with
address@hidden advanced features, address@hidden communicating with
 @cindex processes, two-way communications with
 It is often useful to be able to
 send data to a separate program for
@@ -24668,7 +24659,7 @@ using regular pipes.
 
 @node TCP/IP Networking
 @section Using @command{gawk} for Network Programming
address@hidden advanced features, @command{gawk}, network programming
address@hidden advanced features, network programming
 @cindex networks, programming
 @c STARTOFRANGE tcpip
 @cindex TCP/IP
@@ -24779,7 +24770,6 @@ extensive examples.
 @cindex @command{awk} programs, profiling
 @c STARTOFRANGE proawk
 @cindex profiling @command{awk} programs
address@hidden profiling @command{gawk}
 @cindex @code{awkprof.out} file
 @cindex files, @code{awkprof.out}
 
@@ -24974,6 +24964,7 @@ the target of a redirection isn't a scalar, it gets 
parenthesized.
 @item
 @command{gawk} supplies leading comments in
 front of the @code{BEGIN} and @code{END} rules,
+the @code{BEGINFILE} and @code{ENDFILE} rules,
 the pattern/action rules, and the functions.
 
 @end itemize
@@ -25193,13 +25184,13 @@ is copied to a portable object file (@code{.po})
 and translations are created and shipped with the application.
 For example, there might be a @file{fr.po} for a French translation.
 
address@hidden @code{.mo} files
address@hidden files, @code{.mo}
address@hidden @code{.gmo} files
address@hidden files, @code{.gmo}
 @cindex message object files
 @cindex files, message object
 @item
 Each language's @file{.po} file is converted into a binary
-message object (@file{.mo}) file.
+message object (@file{.gmo}) file.
 A message object file contains the original messages and their
 translations in a binary format that allows fast lookup of translations
 at runtime.
@@ -25211,11 +25202,11 @@ are installed in a standard place.
 @cindex @code{bindtextdomain()} function (C library)
 @item
 For testing and development, it is possible to tell @code{gettext}
-to use @file{.mo} files in a different directory than the standard
+to use @file{.gmo} files in a different directory than the standard
 one by using the @code{bindtextdomain()} function.
 
address@hidden @code{.mo} files, specifying directory of
address@hidden files, @code{.mo}, specifying directory of
address@hidden @code{.gmo} files, specifying directory of
address@hidden files, @code{.gmo}, specifying directory of
 @cindex message object files, specifying directory of
 @cindex files, message object, specifying directory of
 @item
@@ -25241,8 +25232,8 @@ printf("%s", gettext("Don't Panic!\n"));
 The tools that extract messages from source code pull out all
 strings enclosed in calls to @code{gettext()}.
 
address@hidden @code{_} (underscore), @code{_} C macro
address@hidden underscore (@code{_}), @code{_} C macro
address@hidden @code{_} (underscore), C macro
address@hidden underscore (@code{_}), C macro
 The GNU @code{gettext} developers, recognizing that typing
 @samp{gettext(@dots{})} over and over again is both painful and ugly to look
 at, use the macro @samp{_} (an underscore) to make things easier:
@@ -25381,14 +25372,14 @@ The default value for @var{category} is 
@code{"LC_MESSAGES"}.
 
 The same remarks about argument order as for the @code{dcgettext()} function 
apply.
 
address@hidden @code{.mo} files, specifying directory of
address@hidden files, @code{.mo}, specifying directory of
address@hidden @code{.gmo} files, specifying directory of
address@hidden files, @code{.gmo}, specifying directory of
 @cindex message object files, specifying directory of
 @cindex files, message object, specifying directory of
 @cindex @code{bindtextdomain()} function (@command{gawk})
 @item bindtextdomain(@var{directory} @r{[}, @address@hidden)
 Change the directory in which
address@hidden looks for @file{.mo} files, in case they
address@hidden looks for @file{.gmo} files, in case they
 will not or cannot be placed in the standard locations
 (e.g., during testing).
 Return the directory in which @var{domain} is ``bound.''
@@ -25456,7 +25447,7 @@ message, but it uses the default @code{"LC_MESSAGES"} 
category.
 
 @cindex @code{LC_MESSAGES} locale category, @code{bindtextdomain()} function 
(@command{gawk})
 @item
-During development, you might want to put the @file{.mo}
+During development, you might want to put the @file{.gmo}
 file in a private directory for testing.  This is done
 with the @code{bindtextdomain()} built-in function:
 
@@ -25796,7 +25787,7 @@ msgstr "Like, the scoop is"
 @cindex Linux
 @cindex GNU/Linux
 The next step is to make the directory to hold the binary message object
-file and then to create the @file{guide.mo} file.
+file and then to create the @file{guide.gmo} file.
 The directory layout shown here is standard for GNU @code{gettext} on
 GNU/Linux systems.  Other versions of @code{gettext} may use a different
 layout:
@@ -25805,24 +25796,24 @@ layout:
 $ @kbd{mkdir en_US en_US/LC_MESSAGES}
 @end example
 
address@hidden @code{.po} files, converting to @code{.mo}
address@hidden files, @code{.po}, converting to @code{.mo}
address@hidden @code{.mo} files, converting from @code{.po}
address@hidden files, @code{.mo}, converting from @code{.po}
address@hidden @code{.po} files, converting to @code{.gmo}
address@hidden files, @code{.po}, converting to @code{.gmo}
address@hidden @code{.gmo} files, converting from @code{.po}
address@hidden files, @code{.gmo}, converting from @code{.po}
 @cindex portable object files, converting to message object files
 @cindex files, portable object, converting to message object files
 @cindex message object files, converting from portable object files
 @cindex files, message object, converting from portable object files
 @cindex @command{msgfmt} utility
 The @command{msgfmt} utility does the conversion from human-readable
address@hidden file to machine-readable @file{.mo} file.
address@hidden file to machine-readable @file{.gmo} file.
 By default, @command{msgfmt} creates a file named @file{messages}.
 This file must be renamed and placed in the proper directory so that
 @command{gawk} can find it:
 
 @example
 $ @kbd{msgfmt guide-mellow.po}
-$ @kbd{mv messages en_US/LC_MESSAGES/guide.mo}
+$ @kbd{mv messages en_US/LC_MESSAGES/guide.gmo}
 @end example
 
 Finally, we run the program to test it:
@@ -30826,7 +30817,7 @@ static const char *ext_version = "filefuncs extension: 
version 1.0";
 int plugin_is_GPL_compatible;
 @end example
 
address@hidden programming conventions, @command{gawk} internals
address@hidden programming conventions, @command{gawk} extensions
 By convention, for an @command{awk} function @code{foo()}, the C function
 that implements it is called @code{do_foo()}.  The function should have
 two arguments: the first is an @code{int} usually called @code{nargs},
@@ -31129,7 +31120,6 @@ earlier.  When done, return the result from 
@code{fill_stat_array()}:
 @}
 @end example
 
address@hidden programming conventions, @command{gawk} internals
 Finally, it's necessary to provide the ``glue'' that loads the
 new function(s) into @command{gawk}.
 
@@ -31290,12 +31280,14 @@ The usage is:
 @item @@load "filefuncs"
 This is how you load the extension.
 
address@hidden @code{chdir} extension function
 @item result = chdir("/some/directory")
 The @code{chdir()} function is a direct hook to the @code{chdir()}
 system call to change the current directory.  It returns zero
 upon success or less than zero upon error.  In the latter case it updates
 @code{ERRNO}.
 
address@hidden @code{stat} extension function
 @item result = stat("/some/path", statdata [, follow])
 The @code{stat()} function provides a hook into the
 @code{stat()} system call.
@@ -31385,6 +31377,7 @@ or
 Not all systems support all file types.
 @end multitable
 
address@hidden @code{fts} extension function
 @item flags = or(FTS_PHYSICAL, ...)
 @itemx result = fts(pathlist, flags, filedata)
 Walk the file trees provided in @code{pathlist} and fill in the
@@ -31505,6 +31498,7 @@ See @file{test/fts.awk} in the @command{gawk} 
distribution for an example.
 @node Extension Sample Fnmatch
 @subsection Interface To @code{fnmatch()}
 
address@hidden @code{fnmatch} extension function
 This extension provides an interface to the C library
 @code{fnmatch()} function.  The usage is:
 
@@ -31577,6 +31571,7 @@ The @code{fork} extension adds three functions, as 
follows.
 @item @@load "fork"
 This is how you load the extension.
 
address@hidden @code{fork} extension function
 @item pid = fork()
 This function creates a new process. The return value is the zero in the
 child and the process-id number of the child in the parent, or @minus{}1
@@ -31584,11 +31579,13 @@ upon error. In the latter case, @code{ERRNO} 
indicates the problem.
 In the child, @code{PROCINFO["pid"]} and @code{PROCINFO["ppid"]} are
 updated to reflect the correct values.
 
address@hidden @code{waitpid} extension function
 @item ret = waitpid(pid)
 This function takes a numeric argument, which is the process-id to
 wait for. The return value is that of the
 @code{waitpid()} system call.
 
address@hidden @code{wait} extension function
 @item ret = wait()
 This function waits for the first child to die.
 The return value is that of the
@@ -31611,6 +31608,7 @@ else
 @node Extension Sample Inplace
 @subsection Enabling In-Place File Editing
 
address@hidden @code{inplace} extension
 The @code{inplace} extension emulates GNU @command{sed}'s @option{-i} option
 which performs ``in place'' editing of each input file.
 It uses the bundled @file{inplace.awk} include file to invoke the extension
@@ -31674,9 +31672,11 @@ The @code{ordchr} extension adds two functions, named
 @item @@load "ordchr"
 This is how you load the extension.
 
address@hidden @code{ord} extension function
 @item number = ord(string)
 Return the numeric value of the first character in @code{string}.
 
address@hidden @code{chr} extension function
 @item char = chr(number)
 Return a string whose first character is that represented by @code{number}.
 @end table
@@ -31697,6 +31697,7 @@ printf("The string value of 65 is %s\n", chr(65))
 The @code{readdir} extension adds an input parser for directories.
 The usage is as follows:
 
address@hidden @code{readdir} extension
 @example
 @@load "readdir"
 @end example
@@ -31750,6 +31751,7 @@ the characters in each output line.  It's main purpose 
is to show how to
 write an output wrapper, although it may be mildly amusing for the unwary.
 Here is an example:
 
address@hidden @code{revoutput} extension
 @example
 @@load "revoutput"
 
@@ -31771,6 +31773,7 @@ the @command{awk} program.  It's main purpose is to 
show how to write
 a two-way processor, although it may also be mildly amusing.
 The following example shows how to use it:
 
address@hidden @code{revtwoway} extension
 @example
 @@load "revtwoway"
 
@@ -31790,12 +31793,14 @@ The @code{rwarray} extension adds two functions,
 named @code{writea()} and @code{reada()}, as follows:
 
 @table @code
address@hidden @code{writea} extension function
 @item ret = writea(file, array)
 This function takes a string argument, which is the name of the file
 to which dump the array, and the array itself as the second argument.
 @code{writea()} understands multidimensional arrays.  It returns one on
 success, or zero upon failure.
 
address@hidden @code{reada} extension function
 @item ret = reada(file, array)
 @code{reada()} is the inverse of @code{writea()};
 it reads the file named as its first argument, filling in
@@ -31838,6 +31843,7 @@ named @code{readfile()}:
 @item @@load "readfile"
 This is how you load the extension.
 
address@hidden @code{readfile} extension function
 @item result = readfile("/some/path")
 The argument is the name of the file to read.  The return value is a
 string containing the entire contents of the requested file.  Upon error,
@@ -31858,6 +31864,7 @@ if (contents == "" && ERRNO != "") @{
 
 @node Extension Sample API Tests
 @subsection API Tests
address@hidden @code{testext} extension
 
 The @code{testext} extension exercises parts of the extension API that
 are not tested by the other samples.  The @file{extension/testext.c}
@@ -31869,9 +31876,6 @@ for more information.
 @node Extension Sample Time
 @subsection Extension Time Functions
 
address@hidden time
address@hidden sleep
-
 These functions can be used either by invoking @command{gawk}
 with a command-line argument of @samp{-l time} or by
 inserting @samp{@@load "time"} in your script.
@@ -31880,7 +31884,7 @@ inserting @samp{@@load "time"} in your script.
 @item @@load "time"
 This is how you load the extension.
 
address@hidden @code{gettimeofday} time extension function
address@hidden @code{gettimeofday} extension function
 @item the_time = gettimeofday()
 Return the time in seconds that has elapsed since 1970-01-01 UTC as a
 floating point value.  If the time is unavailable on this platform, return
@@ -31890,7 +31894,7 @@ If the standard C @code{gettimeofday()} system call is 
available on this
 platform, then it simply returns the value.  Otherwise, if on Windows,
 it tries to use @code{GetSystemTimeAsFileTime()}.
 
address@hidden @code{sleep} time extension function
address@hidden @code{sleep} extension function
 @item result = sleep(@var{seconds})
 Attempt to sleep for @var{seconds} seconds.  If @var{seconds} is negative,
 or the attempt to sleep fails, return @minus{}1 and set @code{ERRNO}.
@@ -31903,6 +31907,7 @@ tries to use @code{nanosleep()} or @code{select()} to 
implement the delay.
 @node gawkextlib
 @section The @code{gawkextlib} Project
 
address@hidden @code{gawkextlib} project
 The @uref{http://sourceforge.net/projects/gawkextlib/, @code{gawkextlib}}
 project provides a number of @command{gawk} extensions, including one for
 processing XML files.  This is the evolution of the original @command{xgawk}
@@ -31939,6 +31944,7 @@ code control system.  The command is as follows:
 git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib-code
 @end example
 
address@hidden Expat XML parser library
 You will need to have the @uref{http://expat.sourceforge.net, Expat}
 XML parser library installed in order to build and use the XML extension.
 
@@ -32615,6 +32621,8 @@ Prestandard VAX C compiler for VAX/VMS
 @node Common Extensions
 @appendixsec Common Extensions Summary
 
address@hidden extensions, Brian Kernighan's @command{awk}
address@hidden extensions, @command{mawk}
 This @value{SECTION} summarizes the common extensions supported
 by @command{gawk}, Brian Kernighan's @command{awk}, and @command{mawk},
 the three most widely-used freely available versions of @command{awk}
@@ -32638,6 +32646,10 @@ the three most widely-used freely available versions 
of @command{awk}
 @item Time related functions @tab @tab X @tab X
 @end multitable
 
+(Technically speaking, as of late 2012, @code{fflush()}, @samp{delete 
@var{array}},
+and @code{nextfile} are no longer extensions, since they have been added
+to POSIX.)
+
 @node Ranges and Locales
 @appendixsec Regexp Ranges and Locales: A Long Sad Story
 
@@ -32870,7 +32882,7 @@ the various PC platforms.
 Christos Zoulas
 provided the @code{extension()}
 built-in function for dynamically adding new modules.
-(This was removed at @command{gawk} 4.1.)
+(This was obsoleted at @command{gawk} 4.1.)
 
 @item
 @cindex Kahrs, J@"urgen
@@ -32930,7 +32942,6 @@ Patrick T.J.@: McPhee contributed the code for dynamic 
loading in Windows32
 environments.
 (This is no longer supported)
 
-
 @item
 @cindex Haque, John
 John Haque made the following contributions:
@@ -32950,6 +32961,9 @@ The initial text of
 @item
 The work to merge the three versions of @command{gawk}
 into one, for the 4.1 release.
+
address@hidden
+Improved array internals for arrays indexed by integers.
 @end itemize
 
 @item
@@ -33669,7 +33683,7 @@ at least the @samp{|&} operator.
 @cindex @command{gawk}, MS-Windows version of
 @cindex @code{;} (semicolon), @code{AWKPATH} variable and
 @cindex semicolon (@code{;}), @code{AWKPATH} variable and
address@hidden @code{AWKPATH} environment variable
address@hidden @env{AWKPATH} environment variable
 The MS-DOS and MS-Windows versions of @command{gawk} search for
 program files as described in @ref{AWKPATH Variable}.  However,
 semicolons (rather than colons) separate elements in the @env{AWKPATH}
@@ -34146,8 +34160,7 @@ This @value{SECTION} briefly describes where to get 
them:
 @cindex Kernighan, Brian
 @cindex source code, Brian Kernighan's @command{awk}
 @cindex @command{awk}, versions of, See Also Brian Kernighan's @command{awk}
address@hidden extensions, Brian Kernighan's @command{awk}
address@hidden Brian Kernighan's @command{awk}, extensions
address@hidden Brian Kernighan's @command{awk}
 @item Unix @command{awk}
 Brian Kernighan, one of the original designers of Unix @command{awk},
 has made his implementation of
@@ -36033,8 +36046,7 @@ to indicate their base.  Thus, @code{013} is 11 (one 
times 8 plus 3).
 @xref{Nondecimal-numbers}.
 
 @cindex P1003.1 POSIX standard
address@hidden P1003.2 POSIX standard
address@hidden P1003.1, P1003.2
address@hidden P1003.1
 See ``POSIX.''
 
 @item Pattern
@@ -36053,7 +36065,6 @@ Keyboard And Chair.)
 
 @item POSIX
 The name for a series of standards
address@hidden being developed by the IEEE
 that specify a Portable Operating System interface.  The ``IX'' denotes
 the Unix heritage of these standards.  The main standard of interest for
 @command{awk} users is

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

Summary of changes:
 TODO            |    5 +-
 doc/ChangeLog   |    1 +
 doc/gawk.info   | 1300 ++++++++++++++++++++++++++++---------------------------
 doc/gawk.texi   |  201 +++++----
 doc/gawktexi.in |  195 +++++----
 5 files changed, 877 insertions(+), 825 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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