gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-555


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-555-gf1aae23
Date: Tue, 20 Jan 2015 19:58:51 +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, gawk-4.1-stable has been updated
       via  f1aae2393344a21675bc3d5f3c24f9b555c5744b (commit)
       via  611ebfe5c55849245d47b4c5878eb85b27861f12 (commit)
      from  d680707683794b92f2fc69e71dcb5b2a154598be (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=f1aae2393344a21675bc3d5f3c24f9b555c5744b

commit f1aae2393344a21675bc3d5f3c24f9b555c5744b
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jan 20 21:58:17 2015 +0200

    Remove unneeded calls to make_aname.

diff --git a/ChangeLog b/ChangeLog
index 05594a8..57663dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-01-20         Arnold D. Robbins     <address@hidden>
+
+       * gawkapi.c (api_set_array_element): Remove useless call to
+       make_aname.
+       * symbol.c (load_symbols): Ditto.
+       Thanks to Andrew Schorr for pointing out the problem.
+
 2015-01-19         Arnold D. Robbins     <address@hidden>
 
        * awkgram.c: Update to bison 3.0.3.
@@ -1585,7 +1592,7 @@
 2012-12-25         Arnold D. Robbins     <address@hidden>
 
        Remove sym-constant from API after discussions with John
-       Haque and Andy Schorr.
+       Haque and Andrew Schorr.
 
        * gawkapi.h (api_sym_constant): Removed field in API struct.
        (sym_constant): Remove macro.
diff --git a/gawkapi.c b/gawkapi.c
index 06f3192..fc6e159 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -790,7 +790,6 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie,
                elem->parent_array = array;
                elem->vname = estrdup(index->str_value.str,
                                        index->str_value.len);
-               make_aname(elem);
        }
 
        return awk_true;
diff --git a/symbol.c b/symbol.c
index e89214c..23e04c0 100644
--- a/symbol.c
+++ b/symbol.c
@@ -565,7 +565,6 @@ load_symbols()
 
        sym_array->parent_array = PROCINFO_node;
        sym_array->vname = estrdup("identifiers", 11);
-       make_aname(sym_array);
 
        user = make_string("user", 4);
        extension = make_string("extension", 9);

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=611ebfe5c55849245d47b4c5878eb85b27861f12

commit 611ebfe5c55849245d47b4c5878eb85b27861f12
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jan 20 21:55:01 2015 +0200

    O'Reilly fixes.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7f2341b..f6c1eaf 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2015-01-20         Arnold D. Robbins     <address@hidden>
+
+       * gawktexi.in: O'Reilly fixes.
+
 2015-01-19         Arnold D. Robbins     <address@hidden>
 
        * gawkinet.texi: Fix capitalization in document title.
diff --git a/doc/gawk.info b/doc/gawk.info
index 47f2144..3f32c44 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1047,8 +1047,8 @@ in *note Sample Programs::, should be of interest.
 
         - *note Arrays::, covers `awk''s one-and-only data structure:
           the associative array.  Deleting array elements and whole
-          arrays is also described, as well as sorting arrays in
-          `gawk'.  It also describes how `gawk' provides arrays of
+          arrays is described, as well as sorting arrays in `gawk'.
+          The major node also describes how `gawk' provides arrays of
           arrays.
 
         - *note Functions::, describes the built-in functions `awk' and
@@ -1057,14 +1057,13 @@ in *note Sample Programs::, should be of interest.
           indirectly.
 
    * Part II shows how to use `awk' and `gawk' for problem solving.
-     There is lots of code here for you to read and learn from.  It
-     contains the following chapters:
+     There is lots of code here for you to read and learn from.  This
+     part contains the following chapters:
 
-        - *note Library Functions::, which provides a number of
-          functions meant to be used from main `awk' programs.
+        - *note Library Functions::, provides a number of functions
+          meant to be used from main `awk' programs.
 
-        - *note Sample Programs::, which provides many sample `awk'
-          programs.
+        - *note Sample Programs::, provides many sample `awk' programs.
 
      Reading these two chapters allows you to see `awk' solving real
      problems.
@@ -1096,7 +1095,7 @@ in *note Sample Programs::, should be of interest.
      It contains the following appendices:
 
         - *note Language History::, describes how the `awk' language
-          has evolved since its first release to present.  It also
+          has evolved since its first release to the present.  It also
           describes how `gawk' has acquired features over time.
 
         - *note Installation::, describes how to get `gawk', how to
@@ -1113,7 +1112,7 @@ in *note Sample Programs::, should be of interest.
           material for those who are completely unfamiliar with
           computer programming.
 
-          The *note Glossary::, defines most, if not all of, the
+          The *note Glossary::, defines most, if not all, of the
           significant terms used throughout the Info file.  If you find
           terms that you aren't familiar with, try looking them up here.
 
@@ -1142,8 +1141,8 @@ node briefly documents the typographical conventions used 
in Texinfo.
 common shell primary and secondary prompts, `$' and `>'.  Input that
 you type is shown `like this'.  Output from the command is preceded by
 the glyph "-|".  This typically represents the command's standard
-output.  Error messages, and other output on the command's standard
-error, are preceded by the glyph "error-->".  For example:
+output.  Error messages and other output on the command's standard
+error are preceded by the glyph "error-->".  For example:
 
      $ echo hi on stdout
      -| hi on stdout
@@ -1155,7 +1154,7 @@ particular, there are special characters called "control 
characters."
 These are characters that you type by holding down both the `CONTROL'
 key and another key, at the same time.  For example, a `Ctrl-d' is typed
 by first pressing and holding the `CONTROL' key, next pressing the `d'
-key and finally releasing both keys.
+key, and finally releasing both keys.
 
    For the sake of brevity, throughout this Info file, we refer to
 Brian Kernighan's version of `awk' as "BWK `awk'."  (*Note Other
@@ -1171,7 +1170,7 @@ Dark Corners
    Until the POSIX standard (and `GAWK: Effective AWK Programming'),
 many features of `awk' were either poorly documented or not documented
 at all.  Descriptions of such features (often called "dark corners")
-are noted in this Info file with "(d.c.)".  They also appear in the
+are noted in this Info file with "(d.c.)."  They also appear in the
 index under the heading "dark corner."
 
    But, as noted by the opening quote, any coverage of dark corners is
@@ -1194,8 +1193,8 @@ editor.  GNU Emacs is the most widely used version of 
Emacs today.
 
    The GNU(1) Project is an ongoing effort on the part of the Free
 Software Foundation to create a complete, freely distributable,
-POSIX-compliant computing environment.  The FSF uses the "GNU General
-Public License" (GPL) to ensure that their software's source code is
+POSIX-compliant computing environment.  The FSF uses the GNU General
+Public License (GPL) to ensure that its software's source code is
 always available to the end user.  A copy of the GPL is included for
 your reference (*note Copying::).  The GPL applies to the C language
 source code for `gawk'.  To find out more about the FSF and the GNU
@@ -1223,26 +1222,26 @@ original, "old" version of `awk'.
 
    I started working with that version in the fall of 1988.  As work on
 it progressed, the FSF published several preliminary versions (numbered
-0.X).  In 1996, Edition 1.0 was released with `gawk' 3.0.0.  The FSF
+0.X).  In 1996, edition 1.0 was released with `gawk' 3.0.0.  The FSF
 published the first two editions under the title `The GNU Awk User's
 Guide'.
 
    This edition maintains the basic structure of the previous editions.
 For FSF edition 4.0, the content was thoroughly reviewed and updated.
 All references to `gawk' versions prior to 4.0 were removed.  Of
-significant note for that edition was *note Debugger::.
+significant note for that edition was the addition of *note Debugger::.
 
    For FSF edition 4.1, the content has been reorganized into parts,
 and the major new additions are *note Arbitrary Precision Arithmetic::,
 and *note Dynamic Extensions::.
 
    This Info file will undoubtedly continue to evolve.  If you find an
-error in this Info file, please report it!  *Note Bugs::, for
+error in the Info file, please report it!  *Note Bugs::, for
 information on submitting problem reports electronically.
 
    ---------- Footnotes ----------
 
-   (1) GNU stands for "GNU's not Unix."
+   (1) GNU stands for "GNU's Not Unix."
 
    (2) The terminology "GNU/Linux" is explained in the *note Glossary::.
 
@@ -1286,7 +1285,7 @@ acknowledgments:
      this manual.  Jay Fenlason contributed many ideas and sample
      programs.  Richard Mlynarik and Robert Chassell gave helpful
      comments on drafts of this manual.  The paper `A Supplemental
-     Document for `awk'' by John W.  Pierce of the Chemistry Department
+     Document for AWK' by John W.  Pierce of the Chemistry Department
      at UC San Diego, pinpointed several issues relevant both to `awk'
      implementation and to this manual, that would otherwise have
      escaped us.
@@ -1299,7 +1298,7 @@ GNU Project.
 acknowledgements:
 
      The following people (in alphabetical order) provided helpful
-     comments on various versions of this book, Rick Adams, Dr. Nelson
+     comments on various versions of this book: Rick Adams, Dr. Nelson
      H.F. Beebe, Karl Berry, Dr. Michael Brennan, Rich Burridge, Claire
      Cloutier, Diane Close, Scott Deifik, Christopher ("Topher") Eliot,
      Jeffrey Friedl, Dr. Darrel Hankerson, Michal Jaegermann, Dr.
@@ -1308,7 +1307,7 @@ acknowledgements:
 
      Robert J. Chassell provided much valuable advice on the use of
      Texinfo.  He also deserves special thanks for convincing me _not_
-     to title this Info file `How To Gawk Politely'.  Karl Berry helped
+     to title this Info file `How to Gawk Politely'.  Karl Berry helped
      significantly with the TeX part of Texinfo.
 
      I would like to thank Marshall and Elaine Hartholz of Seattle and
@@ -1348,18 +1347,18 @@ of people. *Note Contributors::, for the full list.
    Thanks to Michael Brennan for the Forewords.
 
    Thanks to Patrice Dumas for the new `makeinfo' program.  Thanks to
-Karl Berry who continues to work to keep the Texinfo markup language
+Karl Berry, who continues to work to keep the Texinfo markup language
 sane.
 
    Robert P.J. Day, Michael Brennan, and Brian Kernighan kindly acted as
 reviewers for the 2015 edition of this Info file. Their feedback helped
 improve the final work.
 
-   I would like to thank Brian Kernighan for invaluable assistance
-during the testing and debugging of `gawk', and for ongoing help and
-advice in clarifying numerous points about the language.  We could not
-have done nearly as good a job on either `gawk' or its documentation
-without his help.
+   I would also like to thank Brian Kernighan for his invaluable
+assistance during the testing and debugging of `gawk', and for his
+ongoing help and advice in clarifying numerous points about the
+language.  We could not have done nearly as good a job on either `gawk'
+or its documentation without his help.
 
    Brian is in a class by himself as a programmer and technical author.
 I have to thank him (yet again) for his ongoing friendship and for
@@ -1402,10 +1401,10 @@ contain "function definitions", an advanced feature 
that we will ignore
 for now; *note User-defined::).  Each rule specifies one pattern to
 search for and one action to perform upon finding the pattern.
 
-   Syntactically, a rule consists of a pattern followed by an action.
-The action is enclosed in braces to separate it from the pattern.
-Newlines usually separate rules.  Therefore, an `awk' program looks
-like this:
+   Syntactically, a rule consists of a "pattern" followed by an
+"action".  The action is enclosed in braces to separate it from the
+pattern.  Newlines usually separate rules.  Therefore, an `awk' program
+looks like this:
 
      PATTERN { ACTION }
      PATTERN { ACTION }
@@ -1473,7 +1472,7 @@ program as the first argument of the `awk' command, like 
this:
 
      awk 'PROGRAM' INPUT-FILE1 INPUT-FILE2 ...
 
-where PROGRAM consists of a series of PATTERNS and ACTIONS, as
+where PROGRAM consists of a series of patterns and actions, as
 described earlier.
 
    This command format instructs the "shell", or command interpreter,
@@ -1488,8 +1487,8 @@ programs from shell scripts, because it avoids the need 
for a separate
 file for the `awk' program.  A self-contained shell script is more
 reliable because there are no other files to misplace.
 
-   Later in this chapter, *note Very Simple::, presents several short,
-self-contained programs.
+   Later in this chapter, in *note Very Simple::, we'll see examples of
+several short, self-contained programs.
 
 
 File: gawk.info,  Node: Read Terminal,  Next: Long,  Prev: One-shot,  Up: 
Running gawk
@@ -1504,7 +1503,7 @@ following command line:
 
 `awk' applies the PROGRAM to the "standard input", which usually means
 whatever you type on the keyboard.  This continues until you indicate
-end-of-file by typing `Ctrl-d'.  (On other operating systems, the
+end-of-file by typing `Ctrl-d'.  (On non-POSIX operating systems, the
 end-of-file character may be different.  For example, on OS/2, it is
 `Ctrl-z'.)
 
@@ -1579,10 +1578,9 @@ that are provided on the `awk' command line.  (Also, 
placing the
 program in a file allows us to use a literal single quote in the program
 text, instead of the magic `\47'.)
 
-   If you want to clearly identify your `awk' program files as such,
-you can add the extension `.awk' to the file name.  This doesn't affect
-the execution of the `awk' program but it does make "housekeeping"
-easier.
+   If you want to clearly identify an `awk' program file as such, you
+can add the extension `.awk' to the file name.  This doesn't affect the
+execution of the `awk' program but it does make "housekeeping" easier.
 
 
 File: gawk.info,  Node: Executable Scripts,  Next: Comments,  Prev: Long,  Up: 
Running gawk
@@ -1711,7 +1709,7 @@ at a later time.
 
 File: gawk.info,  Node: Quoting,  Prev: Comments,  Up: Running gawk
 
-1.1.6 Shell-Quoting Issues
+1.1.6 Shell Quoting Issues
 --------------------------
 
 * Menu:
@@ -1806,7 +1804,7 @@ shell quoting tricks, like this:
      -| Here is a single quote <'>
 
 This program consists of three concatenated quoted strings.  The first
-and the third are single quoted, the second is double quoted.
+and the third are single-quoted, and the second is double-quoted.
 
    This can be "simplified" to:
 
@@ -1833,8 +1831,7 @@ like so:
      $ awk 'BEGIN { print "Here is a double quote <\42>" }'
      -| Here is a double quote <">
 
-This works nicely, except that you should comment clearly what the
-escapes mean.
+This works nicely, but you should comment clearly what the escapes mean.
 
    A fourth option is to use command-line variable assignment, like
 this:
@@ -1843,11 +1840,11 @@ this:
      -| Here is a single quote <'>
 
    (Here, the two string constants and the value of `sq' are
-concatenated into a single string which is printed by `print'.)
+concatenated into a single string that is printed by `print'.)
 
    If you really need both single and double quotes in your `awk'
 program, it is probably best to move it into a separate file, where the
-shell won't be part of the picture, and you can say what you mean.
+shell won't be part of the picture and you can say what you mean.
 
 
 File: gawk.info,  Node: DOS Quoting,  Up: Quoting
@@ -1905,7 +1902,7 @@ of green crates shipped, the number of red boxes shipped, 
the number of
 orange bags shipped, and the number of blue packages shipped,
 respectively.  There are 16 entries, covering the 12 months of last year
 and the first four months of the current year.  An empty line separates
-the data for the two years.
+the data for the two years:
 
      Jan  13  25  15 115
      Feb  15  32  24 226
@@ -1937,7 +1934,7 @@ File: gawk.info,  Node: Very Simple,  Next: Two Rules,  
Prev: Sample Data Files,
 The following command runs a simple `awk' program that searches the
 input file `mail-list' for the character string `li' (a grouping of
 characters is usually called a "string"; the term "string" is based on
-similar usage in English, such as "a string of pearls," or "a string of
+similar usage in English, such as "a string of pearls" or "a string of
 cars in a train"):
 
      awk '/li/ { print $0 }' mail-list
@@ -1973,24 +1970,25 @@ prints all lines matching the pattern `li'.  By 
comparison, omitting
 the `print' statement but retaining the braces makes an empty action
 that does nothing (i.e., no lines are printed).
 
-   Many practical `awk' programs are just a line or two.  Following is a
-collection of useful, short programs to get you started.  Some of these
-programs contain constructs that haven't been covered yet. (The
-description of the program will give you a good idea of what is going
-on, but you'll need to read the rest of the Info file to become an
-`awk' expert!)  Most of the examples use a data file named `data'.
-This is just a placeholder; if you use these programs yourself,
-substitute your own file names for `data'.  For future reference, note
-that there is often more than one way to do things in `awk'.  At some
-point, you may want to look back at these examples and see if you can
-come up with different ways to do the same things shown here:
+   Many practical `awk' programs are just a line or two long.
+Following is a collection of useful, short programs to get you started.
+Some of these programs contain constructs that haven't been covered
+yet. (The description of the program will give you a good idea of what
+is going on, but you'll need to read the rest of the Info file to
+become an `awk' expert!)  Most of the examples use a data file named
+`data'.  This is just a placeholder; if you use these programs
+yourself, substitute your own file names for `data'.  For future
+reference, note that there is often more than one way to do things in
+`awk'.  At some point, you may want to look back at these examples and
+see if you can come up with different ways to do the same things shown
+here:
 
    * Print every line that is longer than 80 characters:
 
           awk 'length($0) > 80' data
 
-     The sole rule has a relational expression as its pattern and it
-     has no action--so it uses the default action, printing the record.
+     The sole rule has a relational expression as its pattern and has no
+     action--so it uses the default action, printing the record.
 
    * Print the length of the longest input line:
 
@@ -2045,8 +2043,8 @@ come up with different ways to do the same things shown 
here:
 
           awk 'NR % 2 == 0' data
 
-     If you use the expression `NR % 2 == 1' instead, the program would
-     print the odd-numbered lines.
+     If you used the expression `NR % 2 == 1' instead, the program
+     would print the odd-numbered lines.
 
 
 File: gawk.info,  Node: Two Rules,  Next: More Complex,  Prev: Very Simple,  
Up: Getting Started
@@ -32474,7 +32472,7 @@ Index
 * exit the debugger:                     Miscellaneous Debugger Commands.
                                                               (line  99)
 * exp:                                   Numeric Functions.   (line  18)
-* expand utility:                        Very Simple.         (line  72)
+* expand utility:                        Very Simple.         (line  73)
 * Expat XML parser library:              gawkextlib.          (line  33)
 * exponent:                              Numeric Functions.   (line  18)
 * expressions:                           Expressions.         (line   6)
@@ -34311,549 +34309,549 @@ Node: History51484
 Node: Names53835
 Ref: Names-Footnote-154928
 Node: This Manual55074
-Ref: This Manual-Footnote-161579
-Node: Conventions61679
-Node: Manual History64017
-Ref: Manual History-Footnote-166999
-Ref: Manual History-Footnote-267040
-Node: How To Contribute67114
-Node: Acknowledgments68243
-Node: Getting Started73048
-Node: Running gawk75481
-Node: One-shot76671
-Node: Read Terminal77919
-Node: Long79946
-Node: Executable Scripts81462
-Ref: Executable Scripts-Footnote-184251
-Node: Comments84354
-Node: Quoting86836
-Node: DOS Quoting92360
-Node: Sample Data Files93035
-Node: Very Simple95630
-Node: Two Rules100528
-Node: More Complex102414
-Node: Statements/Lines105276
-Ref: Statements/Lines-Footnote-1109731
-Node: Other Features109996
-Node: When110927
-Ref: When-Footnote-1112681
-Node: Intro Summary112746
-Node: Invoking Gawk113629
-Node: Command Line115143
-Node: Options115941
-Ref: Options-Footnote-1131874
-Ref: Options-Footnote-2132103
-Node: Other Arguments132128
-Node: Naming Standard Input135076
-Node: Environment Variables136169
-Node: AWKPATH Variable136727
-Ref: AWKPATH Variable-Footnote-1140030
-Ref: AWKPATH Variable-Footnote-2140075
-Node: AWKLIBPATH Variable140335
-Node: Other Environment Variables141478
-Node: Exit Status145206
-Node: Include Files145882
-Node: Loading Shared Libraries149479
-Node: Obsolete150906
-Node: Undocumented151603
-Node: Invoking Summary151870
-Node: Regexp153534
-Node: Regexp Usage154988
-Node: Escape Sequences157025
-Node: Regexp Operators163036
-Ref: Regexp Operators-Footnote-1170462
-Ref: Regexp Operators-Footnote-2170609
-Node: Bracket Expressions170707
-Ref: table-char-classes172722
-Node: Leftmost Longest175646
-Node: Computed Regexps176948
-Node: GNU Regexp Operators180345
-Node: Case-sensitivity184018
-Ref: Case-sensitivity-Footnote-1186903
-Ref: Case-sensitivity-Footnote-2187138
-Node: Regexp Summary187246
-Node: Reading Files188713
-Node: Records190807
-Node: awk split records191540
-Node: gawk split records196455
-Ref: gawk split records-Footnote-1200999
-Node: Fields201036
-Ref: Fields-Footnote-1203812
-Node: Nonconstant Fields203898
-Ref: Nonconstant Fields-Footnote-1206141
-Node: Changing Fields206345
-Node: Field Separators212274
-Node: Default Field Splitting214979
-Node: Regexp Field Splitting216096
-Node: Single Character Fields219446
-Node: Command Line Field Separator220505
-Node: Full Line Fields223717
-Ref: Full Line Fields-Footnote-1225234
-Ref: Full Line Fields-Footnote-2225280
-Node: Field Splitting Summary225381
-Node: Constant Size227455
-Node: Splitting By Content232044
-Ref: Splitting By Content-Footnote-1236038
-Node: Multiple Line236201
-Ref: Multiple Line-Footnote-1242087
-Node: Getline242266
-Node: Plain Getline244478
-Node: Getline/Variable247118
-Node: Getline/File248266
-Node: Getline/Variable/File249650
-Ref: Getline/Variable/File-Footnote-1251253
-Node: Getline/Pipe251340
-Node: Getline/Variable/Pipe254023
-Node: Getline/Coprocess255154
-Node: Getline/Variable/Coprocess256406
-Node: Getline Notes257145
-Node: Getline Summary259937
-Ref: table-getline-variants260349
-Node: Read Timeout261178
-Ref: Read Timeout-Footnote-1265003
-Node: Command-line directories265061
-Node: Input Summary265966
-Node: Input Exercises269267
-Node: Printing269995
-Node: Print271772
-Node: Print Examples273229
-Node: Output Separators276008
-Node: OFMT278026
-Node: Printf279380
-Node: Basic Printf280165
-Node: Control Letters281735
-Node: Format Modifiers285718
-Node: Printf Examples291727
-Node: Redirection294213
-Node: Special FD301054
-Ref: Special FD-Footnote-1304214
-Node: Special Files304288
-Node: Other Inherited Files304905
-Node: Special Network305905
-Node: Special Caveats306767
-Node: Close Files And Pipes307718
-Ref: Close Files And Pipes-Footnote-1314900
-Ref: Close Files And Pipes-Footnote-2315048
-Node: Output Summary315198
-Node: Output Exercises316196
-Node: Expressions316876
-Node: Values318061
-Node: Constants318739
-Node: Scalar Constants319430
-Ref: Scalar Constants-Footnote-1320289
-Node: Nondecimal-numbers320539
-Node: Regexp Constants323557
-Node: Using Constant Regexps324082
-Node: Variables327225
-Node: Using Variables327880
-Node: Assignment Options329791
-Node: Conversion331666
-Node: Strings And Numbers332190
-Ref: Strings And Numbers-Footnote-1335255
-Node: Locale influences conversions335364
-Ref: table-locale-affects338111
-Node: All Operators338699
-Node: Arithmetic Ops339329
-Node: Concatenation341834
-Ref: Concatenation-Footnote-1344653
-Node: Assignment Ops344759
-Ref: table-assign-ops349738
-Node: Increment Ops351010
-Node: Truth Values and Conditions354448
-Node: Truth Values355533
-Node: Typing and Comparison356582
-Node: Variable Typing357392
-Node: Comparison Operators361045
-Ref: table-relational-ops361455
-Node: POSIX String Comparison364950
-Ref: POSIX String Comparison-Footnote-1366022
-Node: Boolean Ops366160
-Ref: Boolean Ops-Footnote-1370639
-Node: Conditional Exp370730
-Node: Function Calls372457
-Node: Precedence376337
-Node: Locales379998
-Node: Expressions Summary381630
-Node: Patterns and Actions384190
-Node: Pattern Overview385310
-Node: Regexp Patterns386989
-Node: Expression Patterns387532
-Node: Ranges391242
-Node: BEGIN/END394348
-Node: Using BEGIN/END395109
-Ref: Using BEGIN/END-Footnote-1397843
-Node: I/O And BEGIN/END397949
-Node: BEGINFILE/ENDFILE400263
-Node: Empty403164
-Node: Using Shell Variables403481
-Node: Action Overview405754
-Node: Statements408080
-Node: If Statement409928
-Node: While Statement411423
-Node: Do Statement413452
-Node: For Statement414596
-Node: Switch Statement417753
-Node: Break Statement420135
-Node: Continue Statement422176
-Node: Next Statement424003
-Node: Nextfile Statement426384
-Node: Exit Statement429014
-Node: Built-in Variables431417
-Node: User-modified432550
-Ref: User-modified-Footnote-1440231
-Node: Auto-set440293
-Ref: Auto-set-Footnote-1453328
-Ref: Auto-set-Footnote-2453533
-Node: ARGC and ARGV453589
-Node: Pattern Action Summary457807
-Node: Arrays460234
-Node: Array Basics461563
-Node: Array Intro462407
-Ref: figure-array-elements464371
-Ref: Array Intro-Footnote-1466897
-Node: Reference to Elements467025
-Node: Assigning Elements469477
-Node: Array Example469968
-Node: Scanning an Array471726
-Node: Controlling Scanning474742
-Ref: Controlling Scanning-Footnote-1479938
-Node: Numeric Array Subscripts480254
-Node: Uninitialized Subscripts482439
-Node: Delete484056
-Ref: Delete-Footnote-1486799
-Node: Multidimensional486856
-Node: Multiscanning489953
-Node: Arrays of Arrays491542
-Node: Arrays Summary496301
-Node: Functions498393
-Node: Built-in499292
-Node: Calling Built-in500370
-Node: Numeric Functions502361
-Ref: Numeric Functions-Footnote-1506378
-Ref: Numeric Functions-Footnote-2506735
-Ref: Numeric Functions-Footnote-3506783
-Node: String Functions507055
-Ref: String Functions-Footnote-1530530
-Ref: String Functions-Footnote-2530659
-Ref: String Functions-Footnote-3530907
-Node: Gory Details530994
-Ref: table-sub-escapes532775
-Ref: table-sub-proposed534295
-Ref: table-posix-sub535659
-Ref: table-gensub-escapes537195
-Ref: Gory Details-Footnote-1538027
-Node: I/O Functions538178
-Ref: I/O Functions-Footnote-1545396
-Node: Time Functions545543
-Ref: Time Functions-Footnote-1556031
-Ref: Time Functions-Footnote-2556099
-Ref: Time Functions-Footnote-3556257
-Ref: Time Functions-Footnote-4556368
-Ref: Time Functions-Footnote-5556480
-Ref: Time Functions-Footnote-6556707
-Node: Bitwise Functions556973
-Ref: table-bitwise-ops557535
-Ref: Bitwise Functions-Footnote-1561844
-Node: Type Functions562013
-Node: I18N Functions563164
-Node: User-defined564809
-Node: Definition Syntax565614
-Ref: Definition Syntax-Footnote-1571021
-Node: Function Example571092
-Ref: Function Example-Footnote-1574011
-Node: Function Caveats574033
-Node: Calling A Function574551
-Node: Variable Scope575509
-Node: Pass By Value/Reference578497
-Node: Return Statement581992
-Node: Dynamic Typing584973
-Node: Indirect Calls585902
-Ref: Indirect Calls-Footnote-1597204
-Node: Functions Summary597332
-Node: Library Functions600034
-Ref: Library Functions-Footnote-1603643
-Ref: Library Functions-Footnote-2603786
-Node: Library Names603957
-Ref: Library Names-Footnote-1607411
-Ref: Library Names-Footnote-2607634
-Node: General Functions607720
-Node: Strtonum Function608823
-Node: Assert Function611845
-Node: Round Function615169
-Node: Cliff Random Function616710
-Node: Ordinal Functions617726
-Ref: Ordinal Functions-Footnote-1620789
-Ref: Ordinal Functions-Footnote-2621041
-Node: Join Function621252
-Ref: Join Function-Footnote-1623021
-Node: Getlocaltime Function623221
-Node: Readfile Function626965
-Node: Shell Quoting628935
-Node: Data File Management630336
-Node: Filetrans Function630968
-Node: Rewind Function635024
-Node: File Checking636411
-Ref: File Checking-Footnote-1637743
-Node: Empty Files637944
-Node: Ignoring Assigns639923
-Node: Getopt Function641474
-Ref: Getopt Function-Footnote-1652936
-Node: Passwd Functions653136
-Ref: Passwd Functions-Footnote-1661973
-Node: Group Functions662061
-Ref: Group Functions-Footnote-1669955
-Node: Walking Arrays670168
-Node: Library Functions Summary671771
-Node: Library Exercises673172
-Node: Sample Programs674452
-Node: Running Examples675222
-Node: Clones675950
-Node: Cut Program677174
-Node: Egrep Program686893
-Ref: Egrep Program-Footnote-1694391
-Node: Id Program694501
-Node: Split Program698146
-Ref: Split Program-Footnote-1701594
-Node: Tee Program701722
-Node: Uniq Program704511
-Node: Wc Program711930
-Ref: Wc Program-Footnote-1716180
-Node: Miscellaneous Programs716274
-Node: Dupword Program717487
-Node: Alarm Program719518
-Node: Translate Program724322
-Ref: Translate Program-Footnote-1728887
-Node: Labels Program729157
-Ref: Labels Program-Footnote-1732508
-Node: Word Sorting732592
-Node: History Sorting736663
-Node: Extract Program738499
-Node: Simple Sed746024
-Node: Igawk Program749092
-Ref: Igawk Program-Footnote-1763416
-Ref: Igawk Program-Footnote-2763617
-Ref: Igawk Program-Footnote-3763739
-Node: Anagram Program763854
-Node: Signature Program766911
-Node: Programs Summary768158
-Node: Programs Exercises769351
-Ref: Programs Exercises-Footnote-1773482
-Node: Advanced Features773573
-Node: Nondecimal Data775521
-Node: Array Sorting777111
-Node: Controlling Array Traversal777808
-Ref: Controlling Array Traversal-Footnote-1786141
-Node: Array Sorting Functions786259
-Ref: Array Sorting Functions-Footnote-1790148
-Node: Two-way I/O790344
-Ref: Two-way I/O-Footnote-1795289
-Ref: Two-way I/O-Footnote-2795475
-Node: TCP/IP Networking795557
-Node: Profiling798430
-Node: Advanced Features Summary805977
-Node: Internationalization807910
-Node: I18N and L10N809390
-Node: Explaining gettext810076
-Ref: Explaining gettext-Footnote-1815101
-Ref: Explaining gettext-Footnote-2815285
-Node: Programmer i18n815450
-Ref: Programmer i18n-Footnote-1820316
-Node: Translator i18n820365
-Node: String Extraction821159
-Ref: String Extraction-Footnote-1822290
-Node: Printf Ordering822376
-Ref: Printf Ordering-Footnote-1825162
-Node: I18N Portability825226
-Ref: I18N Portability-Footnote-1827681
-Node: I18N Example827744
-Ref: I18N Example-Footnote-1830547
-Node: Gawk I18N830619
-Node: I18N Summary831257
-Node: Debugger832596
-Node: Debugging833618
-Node: Debugging Concepts834059
-Node: Debugging Terms835912
-Node: Awk Debugging838484
-Node: Sample Debugging Session839378
-Node: Debugger Invocation839898
-Node: Finding The Bug841282
-Node: List of Debugger Commands847757
-Node: Breakpoint Control849090
-Node: Debugger Execution Control852786
-Node: Viewing And Changing Data856150
-Node: Execution Stack859528
-Node: Debugger Info861165
-Node: Miscellaneous Debugger Commands865182
-Node: Readline Support870211
-Node: Limitations871103
-Node: Debugging Summary873217
-Node: Arbitrary Precision Arithmetic874385
-Node: Computer Arithmetic875801
-Ref: table-numeric-ranges879399
-Ref: Computer Arithmetic-Footnote-1880258
-Node: Math Definitions880315
-Ref: table-ieee-formats883603
-Ref: Math Definitions-Footnote-1884207
-Node: MPFR features884312
-Node: FP Math Caution885983
-Ref: FP Math Caution-Footnote-1887033
-Node: Inexactness of computations887402
-Node: Inexact representation888361
-Node: Comparing FP Values889718
-Node: Errors accumulate890800
-Node: Getting Accuracy892233
-Node: Try To Round894895
-Node: Setting precision895794
-Ref: table-predefined-precision-strings896478
-Node: Setting the rounding mode898267
-Ref: table-gawk-rounding-modes898631
-Ref: Setting the rounding mode-Footnote-1902086
-Node: Arbitrary Precision Integers902265
-Ref: Arbitrary Precision Integers-Footnote-1905251
-Node: POSIX Floating Point Problems905400
-Ref: POSIX Floating Point Problems-Footnote-1909273
-Node: Floating point summary909311
-Node: Dynamic Extensions911505
-Node: Extension Intro913057
-Node: Plugin License914323
-Node: Extension Mechanism Outline915120
-Ref: figure-load-extension915548
-Ref: figure-register-new-function917028
-Ref: figure-call-new-function918032
-Node: Extension API Description920018
-Node: Extension API Functions Introduction921468
-Node: General Data Types926292
-Ref: General Data Types-Footnote-1932031
-Node: Memory Allocation Functions932330
-Ref: Memory Allocation Functions-Footnote-1935169
-Node: Constructor Functions935265
-Node: Registration Functions936999
-Node: Extension Functions937684
-Node: Exit Callback Functions939981
-Node: Extension Version String941229
-Node: Input Parsers941894
-Node: Output Wrappers951773
-Node: Two-way processors956288
-Node: Printing Messages958492
-Ref: Printing Messages-Footnote-1959568
-Node: Updating `ERRNO'959720
-Node: Requesting Values960460
-Ref: table-value-types-returned961188
-Node: Accessing Parameters962145
-Node: Symbol Table Access963376
-Node: Symbol table by name963890
-Node: Symbol table by cookie965871
-Ref: Symbol table by cookie-Footnote-1970015
-Node: Cached values970078
-Ref: Cached values-Footnote-1973577
-Node: Array Manipulation973668
-Ref: Array Manipulation-Footnote-1974766
-Node: Array Data Types974803
-Ref: Array Data Types-Footnote-1977458
-Node: Array Functions977550
-Node: Flattening Arrays981404
-Node: Creating Arrays988296
-Node: Extension API Variables993067
-Node: Extension Versioning993703
-Node: Extension API Informational Variables995604
-Node: Extension API Boilerplate996669
-Node: Finding Extensions1000478
-Node: Extension Example1001038
-Node: Internal File Description1001810
-Node: Internal File Ops1005877
-Ref: Internal File Ops-Footnote-11017547
-Node: Using Internal File Ops1017687
-Ref: Using Internal File Ops-Footnote-11020070
-Node: Extension Samples1020343
-Node: Extension Sample File Functions1021869
-Node: Extension Sample Fnmatch1029507
-Node: Extension Sample Fork1030998
-Node: Extension Sample Inplace1032213
-Node: Extension Sample Ord1033888
-Node: Extension Sample Readdir1034724
-Ref: table-readdir-file-types1035600
-Node: Extension Sample Revout1036411
-Node: Extension Sample Rev2way1037001
-Node: Extension Sample Read write array1037741
-Node: Extension Sample Readfile1039681
-Node: Extension Sample Time1040776
-Node: Extension Sample API Tests1042125
-Node: gawkextlib1042616
-Node: Extension summary1045274
-Node: Extension Exercises1048963
-Node: Language History1049685
-Node: V7/SVR3.11051341
-Node: SVR41053522
-Node: POSIX1054967
-Node: BTL1056356
-Node: POSIX/GNU1057090
-Node: Feature History1062654
-Node: Common Extensions1075752
-Node: Ranges and Locales1077076
-Ref: Ranges and Locales-Footnote-11081694
-Ref: Ranges and Locales-Footnote-21081721
-Ref: Ranges and Locales-Footnote-31081955
-Node: Contributors1082176
-Node: History summary1087717
-Node: Installation1089087
-Node: Gawk Distribution1090033
-Node: Getting1090517
-Node: Extracting1091340
-Node: Distribution contents1092975
-Node: Unix Installation1098692
-Node: Quick Installation1099309
-Node: Additional Configuration Options1101733
-Node: Configuration Philosophy1103471
-Node: Non-Unix Installation1105840
-Node: PC Installation1106298
-Node: PC Binary Installation1107617
-Node: PC Compiling1109465
-Ref: PC Compiling-Footnote-11112486
-Node: PC Testing1112595
-Node: PC Using1113771
-Node: Cygwin1117886
-Node: MSYS1118709
-Node: VMS Installation1119209
-Node: VMS Compilation1120001
-Ref: VMS Compilation-Footnote-11121223
-Node: VMS Dynamic Extensions1121281
-Node: VMS Installation Details1122965
-Node: VMS Running1125217
-Node: VMS GNV1128053
-Node: VMS Old Gawk1128787
-Node: Bugs1129257
-Node: Other Versions1133140
-Node: Installation summary1139568
-Node: Notes1140624
-Node: Compatibility Mode1141489
-Node: Additions1142271
-Node: Accessing The Source1143196
-Node: Adding Code1144632
-Node: New Ports1150797
-Node: Derived Files1155279
-Ref: Derived Files-Footnote-11160754
-Ref: Derived Files-Footnote-21160788
-Ref: Derived Files-Footnote-31161384
-Node: Future Extensions1161498
-Node: Implementation Limitations1162104
-Node: Extension Design1163352
-Node: Old Extension Problems1164506
-Ref: Old Extension Problems-Footnote-11166023
-Node: Extension New Mechanism Goals1166080
-Ref: Extension New Mechanism Goals-Footnote-11169440
-Node: Extension Other Design Decisions1169629
-Node: Extension Future Growth1171737
-Node: Old Extension Mechanism1172573
-Node: Notes summary1174335
-Node: Basic Concepts1175521
-Node: Basic High Level1176202
-Ref: figure-general-flow1176474
-Ref: figure-process-flow1177073
-Ref: Basic High Level-Footnote-11180302
-Node: Basic Data Typing1180487
-Node: Glossary1183815
-Node: Copying1208973
-Node: GNU Free Documentation License1246529
-Node: Index1271665
+Ref: This Manual-Footnote-161574
+Node: Conventions61674
+Node: Manual History64011
+Ref: Manual History-Footnote-167004
+Ref: Manual History-Footnote-267045
+Node: How To Contribute67119
+Node: Acknowledgments68248
+Node: Getting Started73065
+Node: Running gawk75504
+Node: One-shot76694
+Node: Read Terminal77958
+Node: Long79989
+Node: Executable Scripts81502
+Ref: Executable Scripts-Footnote-184291
+Node: Comments84394
+Node: Quoting86876
+Node: DOS Quoting92394
+Node: Sample Data Files93069
+Node: Very Simple95664
+Node: Two Rules100563
+Node: More Complex102449
+Node: Statements/Lines105311
+Ref: Statements/Lines-Footnote-1109766
+Node: Other Features110031
+Node: When110962
+Ref: When-Footnote-1112716
+Node: Intro Summary112781
+Node: Invoking Gawk113664
+Node: Command Line115178
+Node: Options115976
+Ref: Options-Footnote-1131909
+Ref: Options-Footnote-2132138
+Node: Other Arguments132163
+Node: Naming Standard Input135111
+Node: Environment Variables136204
+Node: AWKPATH Variable136762
+Ref: AWKPATH Variable-Footnote-1140065
+Ref: AWKPATH Variable-Footnote-2140110
+Node: AWKLIBPATH Variable140370
+Node: Other Environment Variables141513
+Node: Exit Status145241
+Node: Include Files145917
+Node: Loading Shared Libraries149514
+Node: Obsolete150941
+Node: Undocumented151638
+Node: Invoking Summary151905
+Node: Regexp153569
+Node: Regexp Usage155023
+Node: Escape Sequences157060
+Node: Regexp Operators163071
+Ref: Regexp Operators-Footnote-1170497
+Ref: Regexp Operators-Footnote-2170644
+Node: Bracket Expressions170742
+Ref: table-char-classes172757
+Node: Leftmost Longest175681
+Node: Computed Regexps176983
+Node: GNU Regexp Operators180380
+Node: Case-sensitivity184053
+Ref: Case-sensitivity-Footnote-1186938
+Ref: Case-sensitivity-Footnote-2187173
+Node: Regexp Summary187281
+Node: Reading Files188748
+Node: Records190842
+Node: awk split records191575
+Node: gawk split records196490
+Ref: gawk split records-Footnote-1201034
+Node: Fields201071
+Ref: Fields-Footnote-1203847
+Node: Nonconstant Fields203933
+Ref: Nonconstant Fields-Footnote-1206176
+Node: Changing Fields206380
+Node: Field Separators212309
+Node: Default Field Splitting215014
+Node: Regexp Field Splitting216131
+Node: Single Character Fields219481
+Node: Command Line Field Separator220540
+Node: Full Line Fields223752
+Ref: Full Line Fields-Footnote-1225269
+Ref: Full Line Fields-Footnote-2225315
+Node: Field Splitting Summary225416
+Node: Constant Size227490
+Node: Splitting By Content232079
+Ref: Splitting By Content-Footnote-1236073
+Node: Multiple Line236236
+Ref: Multiple Line-Footnote-1242122
+Node: Getline242301
+Node: Plain Getline244513
+Node: Getline/Variable247153
+Node: Getline/File248301
+Node: Getline/Variable/File249685
+Ref: Getline/Variable/File-Footnote-1251288
+Node: Getline/Pipe251375
+Node: Getline/Variable/Pipe254058
+Node: Getline/Coprocess255189
+Node: Getline/Variable/Coprocess256441
+Node: Getline Notes257180
+Node: Getline Summary259972
+Ref: table-getline-variants260384
+Node: Read Timeout261213
+Ref: Read Timeout-Footnote-1265038
+Node: Command-line directories265096
+Node: Input Summary266001
+Node: Input Exercises269302
+Node: Printing270030
+Node: Print271807
+Node: Print Examples273264
+Node: Output Separators276043
+Node: OFMT278061
+Node: Printf279415
+Node: Basic Printf280200
+Node: Control Letters281770
+Node: Format Modifiers285753
+Node: Printf Examples291762
+Node: Redirection294248
+Node: Special FD301089
+Ref: Special FD-Footnote-1304249
+Node: Special Files304323
+Node: Other Inherited Files304940
+Node: Special Network305940
+Node: Special Caveats306802
+Node: Close Files And Pipes307753
+Ref: Close Files And Pipes-Footnote-1314935
+Ref: Close Files And Pipes-Footnote-2315083
+Node: Output Summary315233
+Node: Output Exercises316231
+Node: Expressions316911
+Node: Values318096
+Node: Constants318774
+Node: Scalar Constants319465
+Ref: Scalar Constants-Footnote-1320324
+Node: Nondecimal-numbers320574
+Node: Regexp Constants323592
+Node: Using Constant Regexps324117
+Node: Variables327260
+Node: Using Variables327915
+Node: Assignment Options329826
+Node: Conversion331701
+Node: Strings And Numbers332225
+Ref: Strings And Numbers-Footnote-1335290
+Node: Locale influences conversions335399
+Ref: table-locale-affects338146
+Node: All Operators338734
+Node: Arithmetic Ops339364
+Node: Concatenation341869
+Ref: Concatenation-Footnote-1344688
+Node: Assignment Ops344794
+Ref: table-assign-ops349773
+Node: Increment Ops351045
+Node: Truth Values and Conditions354483
+Node: Truth Values355568
+Node: Typing and Comparison356617
+Node: Variable Typing357427
+Node: Comparison Operators361080
+Ref: table-relational-ops361490
+Node: POSIX String Comparison364985
+Ref: POSIX String Comparison-Footnote-1366057
+Node: Boolean Ops366195
+Ref: Boolean Ops-Footnote-1370674
+Node: Conditional Exp370765
+Node: Function Calls372492
+Node: Precedence376372
+Node: Locales380033
+Node: Expressions Summary381665
+Node: Patterns and Actions384225
+Node: Pattern Overview385345
+Node: Regexp Patterns387024
+Node: Expression Patterns387567
+Node: Ranges391277
+Node: BEGIN/END394383
+Node: Using BEGIN/END395144
+Ref: Using BEGIN/END-Footnote-1397878
+Node: I/O And BEGIN/END397984
+Node: BEGINFILE/ENDFILE400298
+Node: Empty403199
+Node: Using Shell Variables403516
+Node: Action Overview405789
+Node: Statements408115
+Node: If Statement409963
+Node: While Statement411458
+Node: Do Statement413487
+Node: For Statement414631
+Node: Switch Statement417788
+Node: Break Statement420170
+Node: Continue Statement422211
+Node: Next Statement424038
+Node: Nextfile Statement426419
+Node: Exit Statement429049
+Node: Built-in Variables431452
+Node: User-modified432585
+Ref: User-modified-Footnote-1440266
+Node: Auto-set440328
+Ref: Auto-set-Footnote-1453363
+Ref: Auto-set-Footnote-2453568
+Node: ARGC and ARGV453624
+Node: Pattern Action Summary457842
+Node: Arrays460269
+Node: Array Basics461598
+Node: Array Intro462442
+Ref: figure-array-elements464406
+Ref: Array Intro-Footnote-1466932
+Node: Reference to Elements467060
+Node: Assigning Elements469512
+Node: Array Example470003
+Node: Scanning an Array471761
+Node: Controlling Scanning474777
+Ref: Controlling Scanning-Footnote-1479973
+Node: Numeric Array Subscripts480289
+Node: Uninitialized Subscripts482474
+Node: Delete484091
+Ref: Delete-Footnote-1486834
+Node: Multidimensional486891
+Node: Multiscanning489988
+Node: Arrays of Arrays491577
+Node: Arrays Summary496336
+Node: Functions498428
+Node: Built-in499327
+Node: Calling Built-in500405
+Node: Numeric Functions502396
+Ref: Numeric Functions-Footnote-1506413
+Ref: Numeric Functions-Footnote-2506770
+Ref: Numeric Functions-Footnote-3506818
+Node: String Functions507090
+Ref: String Functions-Footnote-1530565
+Ref: String Functions-Footnote-2530694
+Ref: String Functions-Footnote-3530942
+Node: Gory Details531029
+Ref: table-sub-escapes532810
+Ref: table-sub-proposed534330
+Ref: table-posix-sub535694
+Ref: table-gensub-escapes537230
+Ref: Gory Details-Footnote-1538062
+Node: I/O Functions538213
+Ref: I/O Functions-Footnote-1545431
+Node: Time Functions545578
+Ref: Time Functions-Footnote-1556066
+Ref: Time Functions-Footnote-2556134
+Ref: Time Functions-Footnote-3556292
+Ref: Time Functions-Footnote-4556403
+Ref: Time Functions-Footnote-5556515
+Ref: Time Functions-Footnote-6556742
+Node: Bitwise Functions557008
+Ref: table-bitwise-ops557570
+Ref: Bitwise Functions-Footnote-1561879
+Node: Type Functions562048
+Node: I18N Functions563199
+Node: User-defined564844
+Node: Definition Syntax565649
+Ref: Definition Syntax-Footnote-1571056
+Node: Function Example571127
+Ref: Function Example-Footnote-1574046
+Node: Function Caveats574068
+Node: Calling A Function574586
+Node: Variable Scope575544
+Node: Pass By Value/Reference578532
+Node: Return Statement582027
+Node: Dynamic Typing585008
+Node: Indirect Calls585937
+Ref: Indirect Calls-Footnote-1597239
+Node: Functions Summary597367
+Node: Library Functions600069
+Ref: Library Functions-Footnote-1603678
+Ref: Library Functions-Footnote-2603821
+Node: Library Names603992
+Ref: Library Names-Footnote-1607446
+Ref: Library Names-Footnote-2607669
+Node: General Functions607755
+Node: Strtonum Function608858
+Node: Assert Function611880
+Node: Round Function615204
+Node: Cliff Random Function616745
+Node: Ordinal Functions617761
+Ref: Ordinal Functions-Footnote-1620824
+Ref: Ordinal Functions-Footnote-2621076
+Node: Join Function621287
+Ref: Join Function-Footnote-1623056
+Node: Getlocaltime Function623256
+Node: Readfile Function627000
+Node: Shell Quoting628970
+Node: Data File Management630371
+Node: Filetrans Function631003
+Node: Rewind Function635059
+Node: File Checking636446
+Ref: File Checking-Footnote-1637778
+Node: Empty Files637979
+Node: Ignoring Assigns639958
+Node: Getopt Function641509
+Ref: Getopt Function-Footnote-1652971
+Node: Passwd Functions653171
+Ref: Passwd Functions-Footnote-1662008
+Node: Group Functions662096
+Ref: Group Functions-Footnote-1669990
+Node: Walking Arrays670203
+Node: Library Functions Summary671806
+Node: Library Exercises673207
+Node: Sample Programs674487
+Node: Running Examples675257
+Node: Clones675985
+Node: Cut Program677209
+Node: Egrep Program686928
+Ref: Egrep Program-Footnote-1694426
+Node: Id Program694536
+Node: Split Program698181
+Ref: Split Program-Footnote-1701629
+Node: Tee Program701757
+Node: Uniq Program704546
+Node: Wc Program711965
+Ref: Wc Program-Footnote-1716215
+Node: Miscellaneous Programs716309
+Node: Dupword Program717522
+Node: Alarm Program719553
+Node: Translate Program724357
+Ref: Translate Program-Footnote-1728922
+Node: Labels Program729192
+Ref: Labels Program-Footnote-1732543
+Node: Word Sorting732627
+Node: History Sorting736698
+Node: Extract Program738534
+Node: Simple Sed746059
+Node: Igawk Program749127
+Ref: Igawk Program-Footnote-1763451
+Ref: Igawk Program-Footnote-2763652
+Ref: Igawk Program-Footnote-3763774
+Node: Anagram Program763889
+Node: Signature Program766946
+Node: Programs Summary768193
+Node: Programs Exercises769386
+Ref: Programs Exercises-Footnote-1773517
+Node: Advanced Features773608
+Node: Nondecimal Data775556
+Node: Array Sorting777146
+Node: Controlling Array Traversal777843
+Ref: Controlling Array Traversal-Footnote-1786176
+Node: Array Sorting Functions786294
+Ref: Array Sorting Functions-Footnote-1790183
+Node: Two-way I/O790379
+Ref: Two-way I/O-Footnote-1795324
+Ref: Two-way I/O-Footnote-2795510
+Node: TCP/IP Networking795592
+Node: Profiling798465
+Node: Advanced Features Summary806012
+Node: Internationalization807945
+Node: I18N and L10N809425
+Node: Explaining gettext810111
+Ref: Explaining gettext-Footnote-1815136
+Ref: Explaining gettext-Footnote-2815320
+Node: Programmer i18n815485
+Ref: Programmer i18n-Footnote-1820351
+Node: Translator i18n820400
+Node: String Extraction821194
+Ref: String Extraction-Footnote-1822325
+Node: Printf Ordering822411
+Ref: Printf Ordering-Footnote-1825197
+Node: I18N Portability825261
+Ref: I18N Portability-Footnote-1827716
+Node: I18N Example827779
+Ref: I18N Example-Footnote-1830582
+Node: Gawk I18N830654
+Node: I18N Summary831292
+Node: Debugger832631
+Node: Debugging833653
+Node: Debugging Concepts834094
+Node: Debugging Terms835947
+Node: Awk Debugging838519
+Node: Sample Debugging Session839413
+Node: Debugger Invocation839933
+Node: Finding The Bug841317
+Node: List of Debugger Commands847792
+Node: Breakpoint Control849125
+Node: Debugger Execution Control852821
+Node: Viewing And Changing Data856185
+Node: Execution Stack859563
+Node: Debugger Info861200
+Node: Miscellaneous Debugger Commands865217
+Node: Readline Support870246
+Node: Limitations871138
+Node: Debugging Summary873252
+Node: Arbitrary Precision Arithmetic874420
+Node: Computer Arithmetic875836
+Ref: table-numeric-ranges879434
+Ref: Computer Arithmetic-Footnote-1880293
+Node: Math Definitions880350
+Ref: table-ieee-formats883638
+Ref: Math Definitions-Footnote-1884242
+Node: MPFR features884347
+Node: FP Math Caution886018
+Ref: FP Math Caution-Footnote-1887068
+Node: Inexactness of computations887437
+Node: Inexact representation888396
+Node: Comparing FP Values889753
+Node: Errors accumulate890835
+Node: Getting Accuracy892268
+Node: Try To Round894930
+Node: Setting precision895829
+Ref: table-predefined-precision-strings896513
+Node: Setting the rounding mode898302
+Ref: table-gawk-rounding-modes898666
+Ref: Setting the rounding mode-Footnote-1902121
+Node: Arbitrary Precision Integers902300
+Ref: Arbitrary Precision Integers-Footnote-1905286
+Node: POSIX Floating Point Problems905435
+Ref: POSIX Floating Point Problems-Footnote-1909308
+Node: Floating point summary909346
+Node: Dynamic Extensions911540
+Node: Extension Intro913092
+Node: Plugin License914358
+Node: Extension Mechanism Outline915155
+Ref: figure-load-extension915583
+Ref: figure-register-new-function917063
+Ref: figure-call-new-function918067
+Node: Extension API Description920053
+Node: Extension API Functions Introduction921503
+Node: General Data Types926327
+Ref: General Data Types-Footnote-1932066
+Node: Memory Allocation Functions932365
+Ref: Memory Allocation Functions-Footnote-1935204
+Node: Constructor Functions935300
+Node: Registration Functions937034
+Node: Extension Functions937719
+Node: Exit Callback Functions940016
+Node: Extension Version String941264
+Node: Input Parsers941929
+Node: Output Wrappers951808
+Node: Two-way processors956323
+Node: Printing Messages958527
+Ref: Printing Messages-Footnote-1959603
+Node: Updating `ERRNO'959755
+Node: Requesting Values960495
+Ref: table-value-types-returned961223
+Node: Accessing Parameters962180
+Node: Symbol Table Access963411
+Node: Symbol table by name963925
+Node: Symbol table by cookie965906
+Ref: Symbol table by cookie-Footnote-1970050
+Node: Cached values970113
+Ref: Cached values-Footnote-1973612
+Node: Array Manipulation973703
+Ref: Array Manipulation-Footnote-1974801
+Node: Array Data Types974838
+Ref: Array Data Types-Footnote-1977493
+Node: Array Functions977585
+Node: Flattening Arrays981439
+Node: Creating Arrays988331
+Node: Extension API Variables993102
+Node: Extension Versioning993738
+Node: Extension API Informational Variables995639
+Node: Extension API Boilerplate996704
+Node: Finding Extensions1000513
+Node: Extension Example1001073
+Node: Internal File Description1001845
+Node: Internal File Ops1005912
+Ref: Internal File Ops-Footnote-11017582
+Node: Using Internal File Ops1017722
+Ref: Using Internal File Ops-Footnote-11020105
+Node: Extension Samples1020378
+Node: Extension Sample File Functions1021904
+Node: Extension Sample Fnmatch1029542
+Node: Extension Sample Fork1031033
+Node: Extension Sample Inplace1032248
+Node: Extension Sample Ord1033923
+Node: Extension Sample Readdir1034759
+Ref: table-readdir-file-types1035635
+Node: Extension Sample Revout1036446
+Node: Extension Sample Rev2way1037036
+Node: Extension Sample Read write array1037776
+Node: Extension Sample Readfile1039716
+Node: Extension Sample Time1040811
+Node: Extension Sample API Tests1042160
+Node: gawkextlib1042651
+Node: Extension summary1045309
+Node: Extension Exercises1048998
+Node: Language History1049720
+Node: V7/SVR3.11051376
+Node: SVR41053557
+Node: POSIX1055002
+Node: BTL1056391
+Node: POSIX/GNU1057125
+Node: Feature History1062689
+Node: Common Extensions1075787
+Node: Ranges and Locales1077111
+Ref: Ranges and Locales-Footnote-11081729
+Ref: Ranges and Locales-Footnote-21081756
+Ref: Ranges and Locales-Footnote-31081990
+Node: Contributors1082211
+Node: History summary1087752
+Node: Installation1089122
+Node: Gawk Distribution1090068
+Node: Getting1090552
+Node: Extracting1091375
+Node: Distribution contents1093010
+Node: Unix Installation1098727
+Node: Quick Installation1099344
+Node: Additional Configuration Options1101768
+Node: Configuration Philosophy1103506
+Node: Non-Unix Installation1105875
+Node: PC Installation1106333
+Node: PC Binary Installation1107652
+Node: PC Compiling1109500
+Ref: PC Compiling-Footnote-11112521
+Node: PC Testing1112630
+Node: PC Using1113806
+Node: Cygwin1117921
+Node: MSYS1118744
+Node: VMS Installation1119244
+Node: VMS Compilation1120036
+Ref: VMS Compilation-Footnote-11121258
+Node: VMS Dynamic Extensions1121316
+Node: VMS Installation Details1123000
+Node: VMS Running1125252
+Node: VMS GNV1128088
+Node: VMS Old Gawk1128822
+Node: Bugs1129292
+Node: Other Versions1133175
+Node: Installation summary1139603
+Node: Notes1140659
+Node: Compatibility Mode1141524
+Node: Additions1142306
+Node: Accessing The Source1143231
+Node: Adding Code1144667
+Node: New Ports1150832
+Node: Derived Files1155314
+Ref: Derived Files-Footnote-11160789
+Ref: Derived Files-Footnote-21160823
+Ref: Derived Files-Footnote-31161419
+Node: Future Extensions1161533
+Node: Implementation Limitations1162139
+Node: Extension Design1163387
+Node: Old Extension Problems1164541
+Ref: Old Extension Problems-Footnote-11166058
+Node: Extension New Mechanism Goals1166115
+Ref: Extension New Mechanism Goals-Footnote-11169475
+Node: Extension Other Design Decisions1169664
+Node: Extension Future Growth1171772
+Node: Old Extension Mechanism1172608
+Node: Notes summary1174370
+Node: Basic Concepts1175556
+Node: Basic High Level1176237
+Ref: figure-general-flow1176509
+Ref: figure-process-flow1177108
+Ref: Basic High Level-Footnote-11180337
+Node: Basic Data Typing1180522
+Node: Glossary1183850
+Node: Copying1209008
+Node: GNU Free Documentation License1246564
+Node: Index1271700
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index de2f6ac..c0c672f 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -56,7 +56,7 @@
 @set PATCHLEVEL 2
 
 @ifset FOR_PRINT
address@hidden TITLE Effective Awk Programming
address@hidden TITLE Effective awk Programming
 @end ifset
 @ifclear FOR_PRINT
 @set TITLE GAWK: Effective AWK Programming
@@ -1579,7 +1579,7 @@ This @value{DOCUMENT} has the difficult task of being 
both a tutorial and a refe
 If you are a novice, feel free to skip over details that seem too complex.
 You should also ignore the many cross-references; they are for the
 expert user and for the Info and
address@hidden://www.gnu.org/software/gawk/manual/, HTML}
address@hidden://www.gnu.org/software/gawk/manual/, HTML}
 versions of the @value{DOCUMENT}.
 @end ifnotinfo
 
@@ -1661,9 +1661,9 @@ doing something when a record is matched, and the 
predefined variables
 @item
 @ref{Arrays},
 covers @command{awk}'s one-and-only data structure: the associative array.
-Deleting array elements and whole arrays is also described, as well as
-sorting arrays in @command{gawk}.  It also describes how @command{gawk}
-provides arrays of arrays.
+Deleting array elements and whole arrays is described, as well as
+sorting arrays in @command{gawk}.  The @value{CHAPTER} also describes how
address@hidden provides arrays of arrays.
 
 @item
 @ref{Functions},
@@ -1675,17 +1675,17 @@ as well as how to define your own functions.  It also 
discusses how
 @item
 Part II shows how to use @command{awk} and @command{gawk} for problem solving.
 There is lots of code here for you to read and learn from.
-It contains the following chapters:
+This part contains the following chapters:
 
 @c nested
 @itemize @value{MINUS}
 @item
address@hidden Functions}, which provides a number of functions meant to
address@hidden Functions}, provides a number of functions meant to
 be used from main @command{awk} programs.
 
 @item
 @ref{Sample Programs},
-which provides many sample @command{awk} programs.
+provides many sample @command{awk} programs.
 @end itemize
 
 Reading these two chapters allows you to see @command{awk}
@@ -1738,7 +1738,7 @@ including the GNU General Public License:
 @item
 @ref{Language History},
 describes how the @command{awk} language has evolved since
-its first release to present.  It also describes how @command{gawk}
+its first release to the present.  It also describes how @command{gawk}
 has acquired features over time.
 
 @item
@@ -1781,7 +1781,7 @@ are completely unfamiliar with computer programming.
 @item
 @uref{http://www.gnu.org/software/gawk/manual/html_node/Glossary.html,
 The Glossary}
-defines most, if not all of, the significant terms used
+defines most, if not all, of the significant terms used
 throughout the @value{DOCUMENT}.  If you find terms that you aren't familiar 
with,
 try looking them up here.
 
@@ -1808,7 +1808,7 @@ and some possible future directions for @command{gawk} 
development.
 provides some very cursory background material for those who
 are completely unfamiliar with computer programming.
 
-The @ref{Glossary}, defines most, if not all of, the significant terms used
+The @ref{Glossary}, defines most, if not all, of the significant terms used
 throughout the @value{DOCUMENT}.  If you find terms that you aren't familiar 
with,
 try looking them up here.
 
@@ -1851,7 +1851,7 @@ This typically represents the command's standard output.
 Output from the command, usually its standard output, appears
 @code{like this}.
 @end ifset
-Error messages, and other output on the command's standard error, are preceded
+Error messages and other output on the command's standard error are preceded
 by the glyph address@hidden''.  For example:
 
 @example
@@ -1878,7 +1878,7 @@ there are special characters called ``control 
characters.''  These are
 characters that you type by holding down both the @kbd{CONTROL} key and
 another key, at the same time.  For example, a @kbd{Ctrl-d} is typed
 by first pressing and holding the @kbd{CONTROL} key, next
-pressing the @kbd{d} key and finally releasing both keys.
+pressing the @kbd{d} key, and finally releasing both keys.
 
 For the sake of brevity, throughout this @value{DOCUMENT}, we refer to
 Brian Kernighan's version of @command{awk} as ``BWK @command{awk}.''
@@ -1914,7 +1914,7 @@ the picture of a flashlight in the margin, as shown here.
 @value{DARKCORNER}
 @end iftex
 @ifnottex
-``(d.c.)''.
+``(d.c.).''
 @end ifnottex
 @ifclear FOR_PRINT
 They also appear in the index under the heading ``dark corner.''
@@ -1949,12 +1949,12 @@ Emacs editor.  GNU Emacs is the most widely used 
version of Emacs today.
 @cindex GPL (General Public License)
 @cindex General Public License, See GPL
 @cindex documentation, online
-The address@hidden stands for ``GNU's not Unix.''}
+The address@hidden stands for ``GNU's Not Unix.''}
 Project is an ongoing effort on the part of the Free Software
 Foundation to create a complete, freely distributable, POSIX-compliant
 computing environment.
-The FSF uses the ``GNU General Public License'' (GPL) to ensure that
-their software's
+The FSF uses the GNU General Public License (GPL) to ensure that
+its software's
 source code is always available to the end user.
 @ifclear FOR_PRINT
 A copy of the GPL is included
@@ -2014,7 +2014,7 @@ version of @command{awk}.
 I started working with that version in the fall of 1988.
 As work on it progressed,
 the FSF published several preliminary versions (numbered address@hidden).
-In 1996, Edition 1.0 was released with @command{gawk} 3.0.0.
+In 1996, edition 1.0 was released with @command{gawk} 3.0.0.
 The FSF published the first two editions under
 the title @cite{The GNU Awk User's Guide}.
 @ifset FOR_PRINT
@@ -2026,7 +2026,7 @@ the third edition in 2001.
 This edition maintains the basic structure of the previous editions.
 For FSF edition 4.0, the content was thoroughly reviewed and updated. All
 references to @command{gawk} versions prior to 4.0 were removed.
-Of significant note for that edition was @ref{Debugger}.
+Of significant note for that edition was the addition of @ref{Debugger}.
 
 For FSF edition
 @ifclear FOR_PRINT
@@ -2041,7 +2041,7 @@ and the major new additions are @ref{Arbitrary Precision 
Arithmetic},
 and @ref{Dynamic Extensions}.
 
 This @value{DOCUMENT} will undoubtedly continue to evolve.  If you
-find an error in this @value{DOCUMENT}, please report it!  @DBXREF{Bugs}
+find an error in the @value{DOCUMENT}, please report it!  @DBXREF{Bugs}
 for information on submitting problem reports electronically.
 
 @ifset FOR_PRINT
@@ -2051,7 +2051,7 @@ for information on submitting problem reports 
electronically.
 You may have a newer version of @command{gawk} than the
 one described here.  To find out what has changed,
 you should first look at the @file{NEWS} file in the @command{gawk}
-distribution, which provides a high-level summary of what changed in
+distribution, which provides a high-level summary of the changes in
 each release.
 
 You can then look at the @uref{http://www.gnu.org/software/gawk/manual/,
@@ -2105,7 +2105,7 @@ The initial draft of @cite{The GAWK Manual} had the 
following acknowledgments:
 Many people need to be thanked for their assistance in producing this
 manual.  Jay Fenlason contributed many ideas and sample programs.  Richard
 Mlynarik and Robert Chassell gave helpful comments on drafts of this
-manual.  The paper @cite{A Supplemental Document for @command{awk}} by John 
W.@:
+manual.  The paper @cite{A Supplemental Document for AWK} by John W.@:
 Pierce of the Chemistry Department at UC San Diego, pinpointed several
 issues relevant both to @command{awk} implementation and to this manual, that
 would otherwise have escaped us.
@@ -2116,12 +2116,18 @@ I would like to acknowledge Richard M.@: Stallman, for 
his vision of a
 better world and for his courage in founding the FSF and starting the
 GNU Project.
 
address@hidden FOR_PRINT
 Earlier editions of this @value{DOCUMENT} had the following acknowledgements:
address@hidden ifclear
address@hidden FOR_PRINT
+The previous edition of this @value{DOCUMENT} had
+the following acknowledgements:
address@hidden ifset
 
 @quotation
 The following people (in alphabetical order)
 provided helpful comments on various
-versions of this book,
+versions of this book:
 Rick Adams,
 Dr.@: Nelson H.F. Beebe,
 Karl Berry,
@@ -2149,7 +2155,7 @@ Robert J.@: Chassell provided much valuable advice on
 the use of Texinfo.
 He also deserves special thanks for
 convincing me @emph{not} to title this @value{DOCUMENT}
address@hidden To Gawk Politely}.
address@hidden to Gawk Politely}.
 Karl Berry helped significantly with the @TeX{} part of Texinfo.
 
 @cindex Hartholz, Marshall
@@ -2233,9 +2239,9 @@ a number of people. @DBXREF{Contributors} for the full 
list.
 
 @ifset FOR_PRINT
 @cindex Oram, Andy
-Thanks to Andy Oram, of O'Reilly Media, for initiating
+Thanks to Andy Oram of O'Reilly Media for initiating
 the fourth edition and for his support during the work.
-Thanks to Jasmine Kwityn for her copy-editing work.
+Thanks to Jasmine Kwityn for her copyediting work.
 @end ifset
 
 Thanks to Michael Brennan for the Forewords.
@@ -2243,7 +2249,7 @@ Thanks to Michael Brennan for the Forewords.
 @cindex Duman, Patrice
 @cindex Berry, Karl
 Thanks to Patrice Dumas for the new @command{makeinfo} program.
-Thanks to Karl Berry who continues to work to keep
+Thanks to Karl Berry, who continues to work to keep
 the Texinfo markup language sane.
 
 @cindex Kernighan, Brian
@@ -2253,8 +2259,8 @@ Robert P.J.@: Day, Michael Brennan, and Brian Kernighan 
kindly acted as
 reviewers for the 2015 edition of this @value{DOCUMENT}. Their feedback
 helped improve the final work.
 
-I would like to thank Brian Kernighan for invaluable assistance during the
-testing and debugging of @command{gawk}, and for ongoing
+I would also like to thank Brian Kernighan for his invaluable assistance 
during the
+testing and debugging of @command{gawk}, and for his ongoing
 help and advice in clarifying numerous points about the language.
 We could not have done nearly as good a job on either @command{gawk}
 or its documentation without his help.
@@ -2365,9 +2371,9 @@ an advanced feature that we will ignore for now;
 pattern to search for and one action to perform
 upon finding the pattern.
 
-Syntactically, a rule consists of a pattern followed by an action.  The
-action is enclosed in braces to separate it from the pattern.
-Newlines usually separate rules.  Therefore, an @command{awk}
+Syntactically, a rule consists of a @dfn{pattern} followed by an
address@hidden  The action is enclosed in braces to separate it from the
+pattern.  Newlines usually separate rules.  Therefore, an @command{awk}
 program looks like this:
 
 @example
@@ -2441,8 +2447,8 @@ awk '@var{program}' @var{input-file1} @var{input-file2} 
@dots{}
 @end example
 
 @noindent
-where @var{program} consists of a series of @var{patterns} and
address@hidden, as described earlier.
+where @var{program} consists of a series of patterns and
+actions, as described earlier.
 
 @cindex single quote (@code{'})
 @cindex @code{'} (single quote)
@@ -2461,12 +2467,12 @@ programs from shell scripts, because it avoids the need 
for a separate
 file for the @command{awk} program.  A self-contained shell script is more
 reliable because there are no other files to misplace.
 
-Later in this chapter,
+Later in this chapter, in
 @ifdocbook
 the section
 @end ifdocbook
 @ref{Very Simple},
-presents several short,
+we'll see examples of several short,
 self-contained programs.
 
 @node Read Terminal
@@ -2487,10 +2493,10 @@ awk '@var{program}'
 which usually means whatever you type on the keyboard.  This continues
 until you indicate end-of-file by typing @kbd{Ctrl-d}.
 @ifset FOR_PRINT
-(On other operating systems, the end-of-file character may be different.)
+(On non-POSIX operating systems, the end-of-file character may be different.)
 @end ifset
 @ifclear FOR_PRINT
-(On other operating systems, the end-of-file character may be different.
+(On non-POSIX operating systems, the end-of-file character may be different.
 For example, on OS/2, it is @kbd{Ctrl-z}.)
 @end ifclear
 
@@ -2594,7 +2600,7 @@ text, instead of the magic @samp{\47}.)
 @cindex single quote (@code{'}) in @command{gawk} command lines
 @c STARTOFRANGE qs2x
 @cindex @code{'} (single quote) in @command{gawk} command lines
-If you want to clearly identify your @command{awk} program files as such,
+If you want to clearly identify an @command{awk} program file as such,
 you can add the extension @file{.awk} to the @value{FN}.  This doesn't
 affect the execution of the @command{awk} program but it does make
 ``housekeeping'' easier.
@@ -2808,7 +2814,7 @@ The next @value{SUBSECTION} describes the shell's quoting 
rules.
 @end quotation
 
 @node Quoting
address@hidden Shell-Quoting Issues
address@hidden Shell Quoting Issues
 @cindex shell quoting, rules for
 
 @menu
@@ -2945,7 +2951,7 @@ $ @kbd{awk 'BEGIN @{ print "Here is a single quote 
<'"'"'>" @}'}
 
 @noindent
 This program consists of three concatenated quoted strings.  The first and the
-third are single quoted, the second is double quoted.
+third are single-quoted, and the second is double-quoted.
 
 This can be ``simplified'' to:
 
@@ -2984,7 +2990,7 @@ $ @kbd{awk 'BEGIN @{ print "Here is a double quote <\42>" 
@}'}
 @end example
 
 @noindent
-This works nicely, except that you should comment clearly what the
+This works nicely, but you should comment clearly what the
 escapes mean.
 
 A fourth option is to use command-line variable assignment, like this:
@@ -2995,11 +3001,11 @@ $ @kbd{awk -v sq="'" 'BEGIN @{ print "Here is a single 
quote <" sq ">" @}'}
 @end example
 
 (Here, the two string constants and the value of @code{sq} are concatenated
-into a single string which is printed by @code{print}.)
+into a single string that is printed by @code{print}.)
 
 If you really need both single and double quotes in your @command{awk}
 program, it is probably best to move it into a separate file, where
-the shell won't be part of the picture, and you can say what you mean.
+the shell won't be part of the picture and you can say what you mean.
 
 @node DOS Quoting
 @subsubsection Quoting in MS-Windows Batch Files
@@ -3098,7 +3104,7 @@ of green crates shipped, the number of red boxes shipped, 
the number of
 orange bags shipped, and the number of blue packages shipped,
 respectively.  There are 16 entries, covering the 12 months of last year
 and the first four months of the current year.
-An empty line separates the data for the two years.
+An empty line separates the data for the two years:
 
 @example
 @c file eg/data/inventory-shipped
@@ -3132,7 +3138,7 @@ The following command runs a simple @command{awk} program 
that searches the
 input file @file{mail-list} for the character string @samp{li} (a
 grouping of characters is usually called a @dfn{string};
 the term @dfn{string} is based on similar usage in English, such
-as ``a string of pearls,'' or ``a string of cars in a train''):
+as ``a string of pearls'' or ``a string of cars in a train''):
 
 @example
 awk '/li/ @{ print $0 @}' mail-list
@@ -3179,7 +3185,7 @@ omitting the @code{print} statement but retaining the 
braces makes an
 empty action that does nothing (i.e., no lines are printed).
 
 @cindex @command{awk} programs, one-line examples
-Many practical @command{awk} programs are just a line or two.  Following is a
+Many practical @command{awk} programs are just a line or two long.  Following 
is a
 collection of useful, short programs to get you started.  Some of these
 programs contain constructs that haven't been covered yet. (The description
 of the program will give you a good idea of what is going on, but you'll
@@ -3200,7 +3206,7 @@ Print every line that is longer than 80 characters:
 awk 'length($0) > 80' data
 @end example
 
-The sole rule has a relational expression as its pattern and it has no
+The sole rule has a relational expression as its pattern and has no
 action---so it uses the default action, printing the record.
 
 @item
@@ -3287,7 +3293,7 @@ Print the even-numbered lines in the @value{DF}:
 awk 'NR % 2 == 0' data
 @end example
 
-If you use the expression @samp{NR % 2 == 1} instead,
+If you used the expression @samp{NR % 2 == 1} instead,
 the program would print the odd-numbered lines.
 @end itemize
 
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 460fc7d..5cff1e5 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -51,7 +51,7 @@
 @set PATCHLEVEL 2
 
 @ifset FOR_PRINT
address@hidden TITLE Effective Awk Programming
address@hidden TITLE Effective awk Programming
 @end ifset
 @ifclear FOR_PRINT
 @set TITLE GAWK: Effective AWK Programming
@@ -1546,7 +1546,7 @@ This @value{DOCUMENT} has the difficult task of being 
both a tutorial and a refe
 If you are a novice, feel free to skip over details that seem too complex.
 You should also ignore the many cross-references; they are for the
 expert user and for the Info and
address@hidden://www.gnu.org/software/gawk/manual/, HTML}
address@hidden://www.gnu.org/software/gawk/manual/, HTML}
 versions of the @value{DOCUMENT}.
 @end ifnotinfo
 
@@ -1628,9 +1628,9 @@ doing something when a record is matched, and the 
predefined variables
 @item
 @ref{Arrays},
 covers @command{awk}'s one-and-only data structure: the associative array.
-Deleting array elements and whole arrays is also described, as well as
-sorting arrays in @command{gawk}.  It also describes how @command{gawk}
-provides arrays of arrays.
+Deleting array elements and whole arrays is described, as well as
+sorting arrays in @command{gawk}.  The @value{CHAPTER} also describes how
address@hidden provides arrays of arrays.
 
 @item
 @ref{Functions},
@@ -1642,17 +1642,17 @@ as well as how to define your own functions.  It also 
discusses how
 @item
 Part II shows how to use @command{awk} and @command{gawk} for problem solving.
 There is lots of code here for you to read and learn from.
-It contains the following chapters:
+This part contains the following chapters:
 
 @c nested
 @itemize @value{MINUS}
 @item
address@hidden Functions}, which provides a number of functions meant to
address@hidden Functions}, provides a number of functions meant to
 be used from main @command{awk} programs.
 
 @item
 @ref{Sample Programs},
-which provides many sample @command{awk} programs.
+provides many sample @command{awk} programs.
 @end itemize
 
 Reading these two chapters allows you to see @command{awk}
@@ -1705,7 +1705,7 @@ including the GNU General Public License:
 @item
 @ref{Language History},
 describes how the @command{awk} language has evolved since
-its first release to present.  It also describes how @command{gawk}
+its first release to the present.  It also describes how @command{gawk}
 has acquired features over time.
 
 @item
@@ -1748,7 +1748,7 @@ are completely unfamiliar with computer programming.
 @item
 @uref{http://www.gnu.org/software/gawk/manual/html_node/Glossary.html,
 The Glossary}
-defines most, if not all of, the significant terms used
+defines most, if not all, of the significant terms used
 throughout the @value{DOCUMENT}.  If you find terms that you aren't familiar 
with,
 try looking them up here.
 
@@ -1775,7 +1775,7 @@ and some possible future directions for @command{gawk} 
development.
 provides some very cursory background material for those who
 are completely unfamiliar with computer programming.
 
-The @ref{Glossary}, defines most, if not all of, the significant terms used
+The @ref{Glossary}, defines most, if not all, of the significant terms used
 throughout the @value{DOCUMENT}.  If you find terms that you aren't familiar 
with,
 try looking them up here.
 
@@ -1818,7 +1818,7 @@ This typically represents the command's standard output.
 Output from the command, usually its standard output, appears
 @code{like this}.
 @end ifset
-Error messages, and other output on the command's standard error, are preceded
+Error messages and other output on the command's standard error are preceded
 by the glyph address@hidden''.  For example:
 
 @example
@@ -1845,7 +1845,7 @@ there are special characters called ``control 
characters.''  These are
 characters that you type by holding down both the @kbd{CONTROL} key and
 another key, at the same time.  For example, a @kbd{Ctrl-d} is typed
 by first pressing and holding the @kbd{CONTROL} key, next
-pressing the @kbd{d} key and finally releasing both keys.
+pressing the @kbd{d} key, and finally releasing both keys.
 
 For the sake of brevity, throughout this @value{DOCUMENT}, we refer to
 Brian Kernighan's version of @command{awk} as ``BWK @command{awk}.''
@@ -1881,7 +1881,7 @@ the picture of a flashlight in the margin, as shown here.
 @value{DARKCORNER}
 @end iftex
 @ifnottex
-``(d.c.)''.
+``(d.c.).''
 @end ifnottex
 @ifclear FOR_PRINT
 They also appear in the index under the heading ``dark corner.''
@@ -1916,12 +1916,12 @@ Emacs editor.  GNU Emacs is the most widely used 
version of Emacs today.
 @cindex GPL (General Public License)
 @cindex General Public License, See GPL
 @cindex documentation, online
-The address@hidden stands for ``GNU's not Unix.''}
+The address@hidden stands for ``GNU's Not Unix.''}
 Project is an ongoing effort on the part of the Free Software
 Foundation to create a complete, freely distributable, POSIX-compliant
 computing environment.
-The FSF uses the ``GNU General Public License'' (GPL) to ensure that
-their software's
+The FSF uses the GNU General Public License (GPL) to ensure that
+its software's
 source code is always available to the end user.
 @ifclear FOR_PRINT
 A copy of the GPL is included
@@ -1981,7 +1981,7 @@ version of @command{awk}.
 I started working with that version in the fall of 1988.
 As work on it progressed,
 the FSF published several preliminary versions (numbered address@hidden).
-In 1996, Edition 1.0 was released with @command{gawk} 3.0.0.
+In 1996, edition 1.0 was released with @command{gawk} 3.0.0.
 The FSF published the first two editions under
 the title @cite{The GNU Awk User's Guide}.
 @ifset FOR_PRINT
@@ -1993,7 +1993,7 @@ the third edition in 2001.
 This edition maintains the basic structure of the previous editions.
 For FSF edition 4.0, the content was thoroughly reviewed and updated. All
 references to @command{gawk} versions prior to 4.0 were removed.
-Of significant note for that edition was @ref{Debugger}.
+Of significant note for that edition was the addition of @ref{Debugger}.
 
 For FSF edition
 @ifclear FOR_PRINT
@@ -2008,7 +2008,7 @@ and the major new additions are @ref{Arbitrary Precision 
Arithmetic},
 and @ref{Dynamic Extensions}.
 
 This @value{DOCUMENT} will undoubtedly continue to evolve.  If you
-find an error in this @value{DOCUMENT}, please report it!  @DBXREF{Bugs}
+find an error in the @value{DOCUMENT}, please report it!  @DBXREF{Bugs}
 for information on submitting problem reports electronically.
 
 @ifset FOR_PRINT
@@ -2018,7 +2018,7 @@ for information on submitting problem reports 
electronically.
 You may have a newer version of @command{gawk} than the
 one described here.  To find out what has changed,
 you should first look at the @file{NEWS} file in the @command{gawk}
-distribution, which provides a high-level summary of what changed in
+distribution, which provides a high-level summary of the changes in
 each release.
 
 You can then look at the @uref{http://www.gnu.org/software/gawk/manual/,
@@ -2072,7 +2072,7 @@ The initial draft of @cite{The GAWK Manual} had the 
following acknowledgments:
 Many people need to be thanked for their assistance in producing this
 manual.  Jay Fenlason contributed many ideas and sample programs.  Richard
 Mlynarik and Robert Chassell gave helpful comments on drafts of this
-manual.  The paper @cite{A Supplemental Document for @command{awk}} by John 
W.@:
+manual.  The paper @cite{A Supplemental Document for AWK} by John W.@:
 Pierce of the Chemistry Department at UC San Diego, pinpointed several
 issues relevant both to @command{awk} implementation and to this manual, that
 would otherwise have escaped us.
@@ -2083,12 +2083,18 @@ I would like to acknowledge Richard M.@: Stallman, for 
his vision of a
 better world and for his courage in founding the FSF and starting the
 GNU Project.
 
address@hidden FOR_PRINT
 Earlier editions of this @value{DOCUMENT} had the following acknowledgements:
address@hidden ifclear
address@hidden FOR_PRINT
+The previous edition of this @value{DOCUMENT} had
+the following acknowledgements:
address@hidden ifset
 
 @quotation
 The following people (in alphabetical order)
 provided helpful comments on various
-versions of this book,
+versions of this book:
 Rick Adams,
 Dr.@: Nelson H.F. Beebe,
 Karl Berry,
@@ -2116,7 +2122,7 @@ Robert J.@: Chassell provided much valuable advice on
 the use of Texinfo.
 He also deserves special thanks for
 convincing me @emph{not} to title this @value{DOCUMENT}
address@hidden To Gawk Politely}.
address@hidden to Gawk Politely}.
 Karl Berry helped significantly with the @TeX{} part of Texinfo.
 
 @cindex Hartholz, Marshall
@@ -2200,9 +2206,9 @@ a number of people. @DBXREF{Contributors} for the full 
list.
 
 @ifset FOR_PRINT
 @cindex Oram, Andy
-Thanks to Andy Oram, of O'Reilly Media, for initiating
+Thanks to Andy Oram of O'Reilly Media for initiating
 the fourth edition and for his support during the work.
-Thanks to Jasmine Kwityn for her copy-editing work.
+Thanks to Jasmine Kwityn for her copyediting work.
 @end ifset
 
 Thanks to Michael Brennan for the Forewords.
@@ -2210,7 +2216,7 @@ Thanks to Michael Brennan for the Forewords.
 @cindex Duman, Patrice
 @cindex Berry, Karl
 Thanks to Patrice Dumas for the new @command{makeinfo} program.
-Thanks to Karl Berry who continues to work to keep
+Thanks to Karl Berry, who continues to work to keep
 the Texinfo markup language sane.
 
 @cindex Kernighan, Brian
@@ -2220,8 +2226,8 @@ Robert P.J.@: Day, Michael Brennan, and Brian Kernighan 
kindly acted as
 reviewers for the 2015 edition of this @value{DOCUMENT}. Their feedback
 helped improve the final work.
 
-I would like to thank Brian Kernighan for invaluable assistance during the
-testing and debugging of @command{gawk}, and for ongoing
+I would also like to thank Brian Kernighan for his invaluable assistance 
during the
+testing and debugging of @command{gawk}, and for his ongoing
 help and advice in clarifying numerous points about the language.
 We could not have done nearly as good a job on either @command{gawk}
 or its documentation without his help.
@@ -2332,9 +2338,9 @@ an advanced feature that we will ignore for now;
 pattern to search for and one action to perform
 upon finding the pattern.
 
-Syntactically, a rule consists of a pattern followed by an action.  The
-action is enclosed in braces to separate it from the pattern.
-Newlines usually separate rules.  Therefore, an @command{awk}
+Syntactically, a rule consists of a @dfn{pattern} followed by an
address@hidden  The action is enclosed in braces to separate it from the
+pattern.  Newlines usually separate rules.  Therefore, an @command{awk}
 program looks like this:
 
 @example
@@ -2408,8 +2414,8 @@ awk '@var{program}' @var{input-file1} @var{input-file2} 
@dots{}
 @end example
 
 @noindent
-where @var{program} consists of a series of @var{patterns} and
address@hidden, as described earlier.
+where @var{program} consists of a series of patterns and
+actions, as described earlier.
 
 @cindex single quote (@code{'})
 @cindex @code{'} (single quote)
@@ -2428,12 +2434,12 @@ programs from shell scripts, because it avoids the need 
for a separate
 file for the @command{awk} program.  A self-contained shell script is more
 reliable because there are no other files to misplace.
 
-Later in this chapter,
+Later in this chapter, in
 @ifdocbook
 the section
 @end ifdocbook
 @ref{Very Simple},
-presents several short,
+we'll see examples of several short,
 self-contained programs.
 
 @node Read Terminal
@@ -2454,10 +2460,10 @@ awk '@var{program}'
 which usually means whatever you type on the keyboard.  This continues
 until you indicate end-of-file by typing @kbd{Ctrl-d}.
 @ifset FOR_PRINT
-(On other operating systems, the end-of-file character may be different.)
+(On non-POSIX operating systems, the end-of-file character may be different.)
 @end ifset
 @ifclear FOR_PRINT
-(On other operating systems, the end-of-file character may be different.
+(On non-POSIX operating systems, the end-of-file character may be different.
 For example, on OS/2, it is @kbd{Ctrl-z}.)
 @end ifclear
 
@@ -2561,7 +2567,7 @@ text, instead of the magic @samp{\47}.)
 @cindex single quote (@code{'}) in @command{gawk} command lines
 @c STARTOFRANGE qs2x
 @cindex @code{'} (single quote) in @command{gawk} command lines
-If you want to clearly identify your @command{awk} program files as such,
+If you want to clearly identify an @command{awk} program file as such,
 you can add the extension @file{.awk} to the @value{FN}.  This doesn't
 affect the execution of the @command{awk} program but it does make
 ``housekeeping'' easier.
@@ -2719,7 +2725,7 @@ The next @value{SUBSECTION} describes the shell's quoting 
rules.
 @end quotation
 
 @node Quoting
address@hidden Shell-Quoting Issues
address@hidden Shell Quoting Issues
 @cindex shell quoting, rules for
 
 @menu
@@ -2856,7 +2862,7 @@ $ @kbd{awk 'BEGIN @{ print "Here is a single quote 
<'"'"'>" @}'}
 
 @noindent
 This program consists of three concatenated quoted strings.  The first and the
-third are single quoted, the second is double quoted.
+third are single-quoted, and the second is double-quoted.
 
 This can be ``simplified'' to:
 
@@ -2895,7 +2901,7 @@ $ @kbd{awk 'BEGIN @{ print "Here is a double quote <\42>" 
@}'}
 @end example
 
 @noindent
-This works nicely, except that you should comment clearly what the
+This works nicely, but you should comment clearly what the
 escapes mean.
 
 A fourth option is to use command-line variable assignment, like this:
@@ -2906,11 +2912,11 @@ $ @kbd{awk -v sq="'" 'BEGIN @{ print "Here is a single 
quote <" sq ">" @}'}
 @end example
 
 (Here, the two string constants and the value of @code{sq} are concatenated
-into a single string which is printed by @code{print}.)
+into a single string that is printed by @code{print}.)
 
 If you really need both single and double quotes in your @command{awk}
 program, it is probably best to move it into a separate file, where
-the shell won't be part of the picture, and you can say what you mean.
+the shell won't be part of the picture and you can say what you mean.
 
 @node DOS Quoting
 @subsubsection Quoting in MS-Windows Batch Files
@@ -3009,7 +3015,7 @@ of green crates shipped, the number of red boxes shipped, 
the number of
 orange bags shipped, and the number of blue packages shipped,
 respectively.  There are 16 entries, covering the 12 months of last year
 and the first four months of the current year.
-An empty line separates the data for the two years.
+An empty line separates the data for the two years:
 
 @example
 @c file eg/data/inventory-shipped
@@ -3043,7 +3049,7 @@ The following command runs a simple @command{awk} program 
that searches the
 input file @file{mail-list} for the character string @samp{li} (a
 grouping of characters is usually called a @dfn{string};
 the term @dfn{string} is based on similar usage in English, such
-as ``a string of pearls,'' or ``a string of cars in a train''):
+as ``a string of pearls'' or ``a string of cars in a train''):
 
 @example
 awk '/li/ @{ print $0 @}' mail-list
@@ -3090,7 +3096,7 @@ omitting the @code{print} statement but retaining the 
braces makes an
 empty action that does nothing (i.e., no lines are printed).
 
 @cindex @command{awk} programs, one-line examples
-Many practical @command{awk} programs are just a line or two.  Following is a
+Many practical @command{awk} programs are just a line or two long.  Following 
is a
 collection of useful, short programs to get you started.  Some of these
 programs contain constructs that haven't been covered yet. (The description
 of the program will give you a good idea of what is going on, but you'll
@@ -3111,7 +3117,7 @@ Print every line that is longer than 80 characters:
 awk 'length($0) > 80' data
 @end example
 
-The sole rule has a relational expression as its pattern and it has no
+The sole rule has a relational expression as its pattern and has no
 action---so it uses the default action, printing the record.
 
 @item
@@ -3198,7 +3204,7 @@ Print the even-numbered lines in the @value{DF}:
 awk 'NR % 2 == 0' data
 @end example
 
-If you use the expression @samp{NR % 2 == 1} instead,
+If you used the expression @samp{NR % 2 == 1} instead,
 the program would print the odd-numbered lines.
 @end itemize
 

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

Summary of changes:
 ChangeLog       |    9 +-
 doc/ChangeLog   |    4 +
 doc/gawk.info   | 1216 +++++++++++++++++++++++++++----------------------------
 doc/gawk.texi   |  104 +++---
 doc/gawktexi.in |  104 +++---
 gawkapi.c       |    1 -
 symbol.c        |    1 -
 7 files changed, 729 insertions(+), 710 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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