gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5428-gdf1f6c44


From: Arnold Robbins
Subject: [SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5428-gdf1f6c44
Date: Thu, 16 Nov 2023 13:39:26 -0500 (EST)

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-5.3-stable has been updated
       via  df1f6c441126989efd1b0d45e726c96c2b81abb0 (commit)
       via  d3a2af02415fcef6e45ff4fa748b4b85eb458b80 (commit)
      from  8add693f0ebd1096241b2e96e3f50196f00133d5 (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=df1f6c441126989efd1b0d45e726c96c2b81abb0

commit df1f6c441126989efd1b0d45e726c96c2b81abb0
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Thu Nov 16 20:38:14 2023 +0200

    Clean up "double quote" and "single quote" in the manual.

diff --git a/awklib/eg/lib/tocsv.awk b/awklib/eg/lib/tocsv.awk
index 42b79c5b..069c80f8 100644
--- a/awklib/eg/lib/tocsv.awk
+++ b/awklib/eg/lib/tocsv.awk
@@ -14,8 +14,8 @@ function tocsv(fields, sep,     i, j, nfields, result)
     for (i = 1; i in fields; i++) {
         nfields[i] = fields[i]
         if (nfields[i] ~ /["\n]/ || index(nfields[i], sep) != 0) {
-            gsub(/"/, "\"\"", nfields[i])       # double up quotes
-            nfields[i] = "\"" nfields[i] "\""   # wrap in quotes
+            gsub(/"/, "\"\"", nfields[i])       # double up the double quotes
+            nfields[i] = "\"" nfields[i] "\""   # wrap in double quotes
         }
     }
 
diff --git a/awklib/eg/prog/igawk.sh b/awklib/eg/prog/igawk.sh
index 70edf606..6dee4211 100644
--- a/awklib/eg/prog/igawk.sh
+++ b/awklib/eg/prog/igawk.sh
@@ -129,7 +129,7 @@ BEGIN {
         }
         close(input[stackptr])
     }
-}'  # close quote ends `expand_prog' variable
+}'  # closing single quote ends `expand_prog' variable
 
 processed_program=$(gawk -- "$expand_prog" /dev/stdin << EOF
 $program
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 4fedbc55..2de6bb51 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -3,6 +3,13 @@
        * gawk.texi (POSIX/GNU): Mention namespaces and `::'.
        Thanks to J Naman, <gawker@703n.com> for the report.
 
+       Unrelated:
+
+       * gawk.texi: Go through the whole manual and specify either
+       "double quote" or "single quote". And some other minor
+       cleanups. Thanks to Wolfgang Laun <wolfgang.laun@gmail.com>
+       for the suggestion.
+
 2023-11-05         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawk.1: Various fixes and corrections. Thanks to
diff --git a/doc/gawk.info b/doc/gawk.info
index e12a6672..bbd9537b 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1640,10 +1640,11 @@ does the same thing as this one:
 This was explained earlier (*note Read Terminal::).  Note that you don't
 usually need single quotes around the file name that you specify with
 ‘-f’, because most file names don't contain any of the shell's special
-characters.  Notice that in ‘advice’, the ‘awk’ program did not have
-single quotes around it.  The quotes are only needed for programs 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,
+characters.  (If your file names have spaces in them, then you will need
+the single quotes.)  Notice that in ‘advice’, the ‘awk’ program did not
+have single quotes around it.  The quotes are only needed for programs
+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 an ‘awk’ program file as such, you
@@ -1759,9 +1760,9 @@ at a later time.
      The shell sees that the first two quotes match, and that a new
      quoted object begins at the end of the command line.  It therefore
      prompts with the secondary prompt, waiting for more input.  With
-     Unix ‘awk’, closing the quoted string produces this result:
+     BWK ‘awk’, closing the quoted string produces this result:
 
-          $ awk '{ print "hello" } # let's be cute'
+          $ nawk '{ print "hello" } # let's be cute'
           > '
           error→ awk: can't open file be
           error→  source line number 1
@@ -1799,7 +1800,7 @@ string.
 
    The null string is character data that has no value.  In other words,
 it is empty.  It is written in ‘awk’ programs like this: ‘""’.  In the
-shell, it can be written using single or double quotes: ‘""’ or ‘''’.
+shell, it can be written using single or double quotes: ‘''’ or ‘""’.
 Although the null string has no characters in it, it does exist.  For
 example, consider this command:
 
@@ -1833,8 +1834,8 @@ the quoting rules:
      by the shell, they must be “escaped” within the text.  Of note are
      the characters ‘$’, ‘`’, ‘\’, and ‘"’, all of which must 
be
      preceded by a backslash within double-quoted text if they are to be
-     passed on literally to the program.  (The leading backslash is
-     stripped first.)  Thus, the example seen in *note Read Terminal:::
+     passed on literally to the program.  (The shell strips the leading
+     backslash first.)  Thus, the example seen in *note Read Terminal:::
 
           awk 'BEGIN { print "Don\47t Panic!" }'
 
@@ -1923,7 +1924,7 @@ that it is worth addressing.
 
    The "shells" on Microsoft Windows systems use the double-quote
 character for quoting, and make it difficult or impossible to include an
-escaped double-quote character in a command-line script.  The following
+escaped double quote character in a command-line script.  The following
 example, courtesy of Jeroen Brink, shows how to escape the double quotes
 from this one liner script that prints all lines in a file surrounded by
 double quotes:
@@ -1935,14 +1936,14 @@ as follows:
 
      gawk "{ print \"\042\" $0 \"\042\" }" FILE
 
-   In this example the ‘\042’ is the octal code for a double-quote;
+   In this example the ‘\042’ is the octal code for a double quote;
 ‘gawk’ converts it into a real double-quote for output by the ‘print’
 statement.
 
-   In MS-Windows escaping double-quotes is a little tricky because you
-use backslashes to escape double-quotes, but backslashes themselves are
+   In MS-Windows escaping double quotes is a little tricky because you
+use backslashes to escape double quotes, but backslashes themselves are
 not escaped in the usual way; indeed they are either duplicated or not,
-depending upon whether there is a subsequent double-quote.  The
+depending upon whether there is a subsequent double quote.  The
 MS-Windows rule for double-quoting a string is the following:
 
   1. For each double quote in the original string, let N be the number
@@ -1952,7 +1953,7 @@ MS-Windows rule for double-quoting a string is the 
following:
   2. Let N be the number of backslash(es) tailing the original string, N
      might be zero.  Replace these N backslash(es) by 2*N backslash(es)
 
-  3. Surround the resulting string by double-quotes.
+  3. Surround the resulting string by double quotes.
 
    So to double-quote the one-liner script ‘{ print "\"" $0 "\"" }’ from
 the previous example you would do it this way:
@@ -1960,7 +1961,7 @@ the previous example you would do it this way:
      gawk "{ print \"\\\"\" $0 \"\\\"\" }" FILE
 
 However, the use of ‘\042’ instead of ‘\\\"’ is also possible and 
easier
-to read, because backslashes that are not followed by a double-quote
+to read, because backslashes that are not followed by a double quote
 don't need duplication.
 
 
@@ -3689,9 +3690,9 @@ Some characters cannot be included literally in string 
constants
 (‘"foo"’) or regexp constants (‘/foo/’).  Instead, they should be
 represented with “escape sequences”, which are character sequences
 beginning with a backslash (‘\’).  One use of an escape sequence is to
-include a double-quote character in a string constant.  Because a plain
+include a double quote character in a string constant.  Because a plain
 double quote ends the string, you must use ‘\"’ to represent an actual
-double-quote character as a part of the string.  For example:
+double quote character as a part of the string.  For example:
 
      $ awk 'BEGIN { print "He said \"hi!\" to her." }'
      ⊣ He said "hi!" to her.
@@ -3785,8 +3786,8 @@ sequences apply to both string constants and regexp 
constants:
      This sequence is used when you want to write a string constant that
      contains a double quote (such as ‘"He said \"hi!\" to her."’).
      Because the string is delimited by double quotes, you need to
-     escape any quote that is part of the string, in order to tell ‘awk’
-     to keep processing the rest of the string.
+     escape any double quote that is part of the string, in order to
+     tell ‘awk’ to keep processing the rest of the string.
 
    In ‘gawk’, a number of additional two-character sequences that begin
 with a backslash have special meaning in regexps.  *Note GNU Regexp
@@ -5834,11 +5835,12 @@ the double quotes, leading to:
    Note the embedded comma in the value of ‘$3’.
 
    A straightforward improvement when processing CSV data of this sort
-would be to remove the quotes when they occur, with something like this:
+would be to remove the double quotes when they occur, with something
+like this:
 
      if (substr($i, 1, 1) == "\"") {
          len = length($i)
-         $i = substr($i, 2, len - 2)    # Get text within the two quotes
+         $i = substr($i, 2, len - 2)    # Get text within the two double quotes
      }
 
      NOTE: Some programs export CSV data that contains embedded newlines
@@ -5864,9 +5866,11 @@ with ‘FIELDWIDTHS’.
 available for splitting regular strings (*note String Functions::).
 
      NOTE: Given that ‘gawk’ now has built-in CSV parsing (*note Comma
-     Separated Fields::), the examples presented here are obsolete.
-     Nonetheless, it remains useful as an example of what ‘FPAT’-based
-     field parsing can do.
+     Separated Fields::), the examples presented here are obsolete,
+     since you can use the ‘--csv’ option (in which case ‘FPAT’ field
+     parsing doesn't take effect).  Nonetheless, it remains useful as an
+     example of what ‘FPAT’-based field parsing can do, or if you must
+     use a version of ‘gawk’ prior to 5.3.
 
    ---------- Footnotes ----------
 
@@ -5881,9 +5885,9 @@ File: gawk.info,  Node: More CSV,  Next: FS versus FPAT,  
Up: Splitting By Conte
 -----------------------
 
 Manuel Collado notes that in addition to commas, a CSV field can also
-contains quotes, that have to be escaped by doubling them.  The
+contain double quotes, that have to be escaped by doubling them.  The
 previously described regexps fail to accept quoted fields with both
-commas and quotes inside.  He suggests that the simplest ‘FPAT’
+commas and double quotes inside.  He suggests that the simplest ‘FPAT’
 expression that recognizes this kind of fields is
 ‘/([^,]*)|("([^"]|"")+")/’.  He provides the following input data to
 test these variants:
@@ -6906,7 +6910,7 @@ Numeric values are converted to strings and then printed.
    The simple statement ‘print’ with no items is equivalent to ‘print
 $0’: it prints the entire current record.  To print a blank line, use
 ‘print ""’.  To print a fixed piece of text, use a string constant, such
-as ‘"Don't Panic"’, as one item.  If you forget to use the double-quote
+as ‘"Don't Panic"’, as one item.  If you forget to use the double quote
 characters, your text is taken as an ‘awk’ expression, and you will
 probably get an error.  Keep in mind that a space is printed between any
 two items.
@@ -7724,9 +7728,9 @@ becomes:
 
      print "Serious error detected!" > "/dev/stderr"
 
-   Note the use of quotes around the file name.  Like with any other
-redirection, the value must be a string.  It is a common error to omit
-the quotes, which leads to confusing results.
+   Note the use of double quotes around the file name.  Like with any
+other redirection, the value must be a string.  It is a common error to
+omit the double quotes, which leads to confusing results.
 
    ‘gawk’ does not treat these file names as special when in
 POSIX-compatibility mode.  However, because BWK ‘awk’ supports them,
@@ -10590,7 +10594,7 @@ inside the quotes.  The second part is single-quoted.
    Variable substitution via quoting works, but can potentially be
 messy.  It requires a good understanding of the shell's quoting rules
 (*note Quoting::), and it's often difficult to correctly match up the
-quotes when reading the program.
+different quotes when reading the program.
 
    A better method is to use ‘awk’'s variable assignment feature (*note
 Assignment Options::) to assign the shell variable's value to an ‘awk’
@@ -16039,7 +16043,7 @@ different implementations of ‘awk’ is pretty 
straightforward:
 
    ---------- Footnotes ----------
 
-   (1) Sadly, over 35 years later, many of the lessons taught by this
+   (1) Sadly, almost 50 years later, many of the lessons taught by this
 book have yet to be learned by a vast number of practicing programmers.
 
    (2) The effects are not identical.  Output of the transformed record
@@ -16814,8 +16818,8 @@ record and returns it.
          for (i = 1; i in fields; i++) {
              nfields[i] = fields[i]
              if (nfields[i] ~ /["\n]/ || index(nfields[i], sep) != 0) {
-                 gsub(/"/, "\"\"", nfields[i])       # double up quotes
-                 nfields[i] = "\"" nfields[i] "\""   # wrap in quotes
+                 gsub(/"/, "\"\"", nfields[i])       # double up the double 
quotes
+                 nfields[i] = "\"" nfields[i] "\""   # wrap in double quotes
              }
          }
 
@@ -21052,7 +21056,7 @@ zero, the program is done:
              }
              close(input[stackptr])
          }
-     }'  # close quote ends `expand_prog' variable
+     }'  # closing single quote ends `expand_prog' variable
 
      processed_program=$(gawk -- "$expand_prog" /dev/stdin << EOF
      $program
@@ -23027,8 +23031,8 @@ File: gawk.info,  Node: Programmer i18n,  Next: 
Translator i18n,  Prev: Explaini
           }
 
   2. Mark all translatable strings with a leading underscore (‘_’)
-     character.  It _must_ be adjacent to the opening quote of the
-     string.  For example:
+     character.  It _must_ be adjacent to the opening double quote of
+     the string.  For example:
 
           print _"hello, world"
           x = _"you goofed"
@@ -36159,7 +36163,7 @@ Index
 * .po files, converting to .mo:          I18N Example.        (line  80)
 * .pot files:                            Explaining gettext.  (line  31)
 * ' (single quote):                      One-shot.            (line  15)
-* ' (single quote), in gawk command lines: Long.              (line  35)
+* ' (single quote), in gawk command lines: Long.              (line  36)
 * ' (single quote), in shell commands:   Quoting.             (line  48)
 * ' (single quote), vs. apostrophe:      Comments.            (line  27)
 * ' (single quote), with double quotes:  Quoting.             (line  73)
@@ -39006,7 +39010,8 @@ Index
 * regexp constants, as patterns:         Expression Patterns. (line  34)
 * regexp constants, in gawk:             Standard Regexp Constants.
                                                               (line  28)
-* regexp constants, slashes vs. quotes:  Computed Regexps.    (line  30)
+* regexp constants, slashes vs. double quotes: Computed Regexps.
+                                                              (line  30)
 * regexp constants, vs. string constants: Computed Regexps.   (line  40)
 * regexps, empty:                        Regexp Operator Details.
                                                               (line 150)
@@ -39271,7 +39276,7 @@ Index
 * sin:                                   Numeric Functions.   (line  74)
 * sine:                                  Numeric Functions.   (line  74)
 * single quote ('):                      One-shot.            (line  15)
-* single quote ('), in gawk command lines: Long.              (line  35)
+* single quote ('), in gawk command lines: Long.              (line  36)
 * single quote ('), in shell commands:   Quoting.             (line  48)
 * single quote ('), vs. apostrophe:      Comments.            (line  27)
 * single quote ('), with double quotes:  Quoting.             (line  73)
@@ -39491,6 +39496,7 @@ Index
 * troubleshooting, backslash before nonspecial character: Escape Sequences.
                                                               (line 124)
 * troubleshooting, division:             Arithmetic Ops.      (line  44)
+* troubleshooting, double quotes with file names: Special FD. (line  62)
 * troubleshooting, fatal errors, field widths, specifying: Fixed width data.
                                                               (line  17)
 * troubleshooting, fatal errors, printf format strings: Format Modifiers.
@@ -39507,7 +39513,6 @@ Index
 * troubleshooting, print statement, omitting commas: Print Examples.
                                                               (line  30)
 * troubleshooting, printing:             Redirection.         (line 115)
-* troubleshooting, quotes with file names: Special FD.        (line  62)
 * troubleshooting, readable data files:  File Checking.       (line   6)
 * troubleshooting, regexp constants vs. string constants: Computed Regexps.
                                                               (line  40)
@@ -39733,603 +39738,603 @@ Node: Running gawk81436
 Node: One-shot82654
 Node: Read Terminal83953
 Node: Long86007
-Node: Executable Scripts87576
-Ref: Executable Scripts-Footnote-190346
-Node: Comments90453
-Node: Quoting92983
-Node: DOS Quoting98622
-Node: Sample Data Files100702
-Node: Very Simple103337
-Node: Two Rules109591
-Node: More Complex111543
-Node: Statements/Lines113963
-Ref: Statements/Lines-Footnote-1119475
-Node: Other Features119764
-Node: When120732
-Ref: When-Footnote-1122534
-Node: Intro Summary122599
-Node: Invoking Gawk123553
-Node: Command Line125115
-Node: Options125965
-Ref: Options-Footnote-1145305
-Ref: Options-Footnote-2145540
-Node: Other Arguments145565
-Node: Naming Standard Input149730
-Node: Environment Variables151000
-Node: AWKPATH Variable151574
-Ref: AWKPATH Variable-Footnote-1155158
-Ref: AWKPATH Variable-Footnote-2155192
-Node: AWKLIBPATH Variable155583
-Ref: AWKLIBPATH Variable-Footnote-1157356
-Node: Other Environment Variables157751
-Node: Exit Status162227
-Node: Include Files162940
-Node: Loading Shared Libraries166992
-Node: Obsolete168482
-Node: Undocumented169231
-Node: Invoking Summary169528
-Node: Regexp172553
-Node: Regexp Usage174047
-Node: Escape Sequences176148
-Ref: Escape Sequences-Footnote-1183654
-Node: Regexp Operators183732
-Node: Regexp Operator Details184225
-Ref: Regexp Operator Details-Footnote-1192236
-Node: Interval Expressions192395
-Ref: Interval Expressions-Footnote-1194662
-Node: Bracket Expressions194760
-Ref: table-char-classes197316
-Node: Leftmost Longest200814
-Node: Computed Regexps202170
-Node: GNU Regexp Operators205685
-Node: Case-sensitivity209701
-Ref: Case-sensitivity-Footnote-1212651
-Ref: Case-sensitivity-Footnote-2212894
-Node: Regexp Summary213006
-Node: Reading Files214528
-Node: Records216845
-Node: awk split records218120
-Node: gawk split records223002
-Ref: gawk split records-Footnote-1228290
-Node: Fields228327
-Ref: Fields-Footnote-1231243
-Node: Nonconstant Fields231363
-Ref: Nonconstant Fields-Footnote-1233671
-Node: Changing Fields233887
-Node: Field Separators240185
-Node: Default Field Splitting243054
-Node: Regexp Field Splitting244196
-Node: Single Character Fields248025
-Node: Comma Separated Fields249114
-Ref: table-csv-examples250518
-Node: Command Line Field Separator252817
-Node: Full Line Fields256193
-Ref: Full Line Fields-Footnote-1257771
-Ref: Full Line Fields-Footnote-2257817
-Node: Field Splitting Summary257922
-Node: Constant Size260239
-Node: Fixed width data260983
-Node: Skipping intervening264498
-Node: Allowing trailing data265300
-Node: Fields with fixed data266361
-Node: Splitting By Content267983
-Ref: Splitting By Content-Footnote-1272248
-Node: More CSV272411
-Node: FS versus FPAT274056
-Node: Testing field creation275256
-Node: Multiple Line277030
-Node: Getline283499
-Node: Plain Getline286082
-Node: Getline/Variable288728
-Node: Getline/File289923
-Node: Getline/Variable/File291371
-Ref: Getline/Variable/File-Footnote-1293016
-Node: Getline/Pipe293112
-Node: Getline/Variable/Pipe295920
-Node: Getline/Coprocess297103
-Node: Getline/Variable/Coprocess298426
-Node: Getline Notes299192
-Node: Getline Summary302145
-Ref: table-getline-variants302589
-Node: Read Timeout303493
-Ref: Read Timeout-Footnote-1307455
-Node: Retrying Input307513
-Node: Command-line directories308780
-Node: Input Summary309718
-Node: Input Exercises313098
-Node: Printing313536
-Node: Print315479
-Node: Print Examples316980
-Node: Output Separators319825
-Node: OFMT321932
-Node: Printf323645
-Node: Basic Printf324450
-Node: Control Letters326085
-Node: Format Modifiers331531
-Node: Printf Examples337803
-Node: Redirection340344
-Node: Special FD348116
-Ref: Special FD-Footnote-1351400
-Node: Special Files351478
-Node: Other Inherited Files352107
-Node: Special Network353172
-Node: Special Caveats354060
-Node: Close Files And Pipes355043
-Ref: Close Files And Pipes-Footnote-1361167
-Node: Close Return Value361315
-Ref: table-close-pipe-return-values362586
-Ref: Close Return Value-Footnote-1363417
-Node: Noflush363573
-Node: Nonfatal365081
-Node: Output Summary367496
-Node: Output Exercises368782
-Node: Expressions369473
-Node: Values370673
-Node: Constants371351
-Node: Scalar Constants372046
-Ref: Scalar Constants-Footnote-1374622
-Ref: Scalar Constants-Footnote-2374872
-Node: Nondecimal-numbers374952
-Node: Regexp Constants378065
-Node: Using Constant Regexps378611
-Node: Standard Regexp Constants379257
-Node: Strong Regexp Constants382553
-Node: Variables386396
-Node: Using Variables387061
-Node: Assignment Options389035
-Node: Conversion391586
-Node: Strings And Numbers392118
-Ref: Strings And Numbers-Footnote-1395328
-Node: Locale influences conversions395437
-Ref: table-locale-affects398275
-Node: All Operators398917
-Node: Arithmetic Ops399558
-Node: Concatenation402381
-Ref: Concatenation-Footnote-1405317
-Node: Assignment Ops405436
-Ref: table-assign-ops410563
-Node: Increment Ops411944
-Node: Truth Values and Conditions415535
-Node: Truth Values416629
-Node: Typing and Comparison417709
-Node: Variable Typing418541
-Ref: Variable Typing-Footnote-1425185
-Ref: Variable Typing-Footnote-2425265
-Node: Comparison Operators425346
-Ref: table-relational-ops425773
-Node: POSIX String Comparison429449
-Ref: POSIX String Comparison-Footnote-1431206
-Ref: POSIX String Comparison-Footnote-2431349
-Node: Boolean Ops431433
-Ref: Boolean Ops-Footnote-1436107
-Node: Conditional Exp436203
-Node: Function Calls437983
-Node: Precedence441930
-Node: Locales445793
-Node: Expressions Summary447469
-Node: Patterns and Actions450124
-Node: Pattern Overview451260
-Node: Regexp Patterns452985
-Node: Expression Patterns453531
-Node: Ranges457436
-Node: BEGIN/END460610
-Node: Using BEGIN/END461419
-Ref: Using BEGIN/END-Footnote-1464327
-Node: I/O And BEGIN/END464437
-Node: BEGINFILE/ENDFILE466918
-Node: Empty470349
-Node: Using Shell Variables470666
-Node: Action Overview472992
-Node: Statements475427
-Node: If Statement477323
-Node: While Statement478886
-Node: Do Statement480974
-Node: For Statement482158
-Node: Switch Statement485513
-Node: Break Statement488062
-Node: Continue Statement490254
-Node: Next Statement492185
-Node: Nextfile Statement494664
-Node: Exit Statement497517
-Node: Built-in Variables500044
-Node: User-modified501221
-Node: Auto-set509428
-Ref: Auto-set-Footnote-1527512
-Ref: Auto-set-Footnote-2527730
-Node: ARGC and ARGV527786
-Node: Pattern Action Summary532215
-Node: Arrays534821
-Node: Array Basics536194
-Node: Array Intro537042
-Ref: figure-array-elements539053
-Ref: Array Intro-Footnote-1541906
-Node: Reference to Elements542038
-Node: Assigning Elements544558
-Node: Array Example545053
-Node: Scanning an Array547015
-Node: Controlling Scanning550110
-Ref: Controlling Scanning-Footnote-1556745
-Node: Numeric Array Subscripts557069
-Node: Uninitialized Subscripts559337
-Node: Delete561010
-Ref: Delete-Footnote-1563822
-Node: Multidimensional563879
-Node: Multiscanning567082
-Node: Arrays of Arrays568749
-Node: Arrays Summary573053
-Node: Functions575240
-Node: Built-in576298
-Node: Calling Built-in577487
-Node: Boolean Functions579527
-Node: Numeric Functions580089
-Ref: Numeric Functions-Footnote-1584274
-Ref: Numeric Functions-Footnote-2584957
-Ref: Numeric Functions-Footnote-3585009
-Node: String Functions585285
-Ref: String Functions-Footnote-1611736
-Ref: String Functions-Footnote-2611868
-Ref: String Functions-Footnote-3612124
-Node: Gory Details612211
-Ref: table-sub-escapes614220
-Ref: table-sub-proposed615851
-Ref: table-posix-sub617346
-Ref: table-gensub-escapes619019
-Ref: Gory Details-Footnote-1619938
-Node: I/O Functions620092
-Ref: table-system-return-values626768
-Ref: I/O Functions-Footnote-1628930
-Ref: I/O Functions-Footnote-2629078
-Node: Time Functions629198
-Ref: Time Functions-Footnote-1640280
-Ref: Time Functions-Footnote-2640348
-Ref: Time Functions-Footnote-3640510
-Ref: Time Functions-Footnote-4640621
-Ref: Time Functions-Footnote-5640737
-Ref: Time Functions-Footnote-6640964
-Node: Bitwise Functions641242
-Ref: table-bitwise-ops641840
-Ref: Bitwise Functions-Footnote-1648082
-Ref: Bitwise Functions-Footnote-2648259
-Node: Type Functions648454
-Node: I18N Functions652047
-Node: User-defined653782
-Node: Definition Syntax654602
-Ref: Definition Syntax-Footnote-1660420
-Node: Function Example660495
-Ref: Function Example-Footnote-1663474
-Node: Function Calling663496
-Node: Calling A Function664088
-Node: Variable Scope665058
-Node: Pass By Value/Reference668112
-Node: Function Caveats670840
-Ref: Function Caveats-Footnote-1672931
-Node: Return Statement673051
-Node: Dynamic Typing676106
-Node: Indirect Calls678488
-Node: Functions Summary689623
-Node: Library Functions692392
-Ref: Library Functions-Footnote-1695940
-Ref: Library Functions-Footnote-2696083
-Node: Library Names696258
-Ref: Library Names-Footnote-1700029
-Ref: Library Names-Footnote-2700256
-Node: General Functions700350
-Node: Strtonum Function701620
-Node: Assert Function704702
-Node: Round Function708152
-Node: Cliff Random Function709724
-Node: Ordinal Functions710748
-Ref: Ordinal Functions-Footnote-1713851
-Ref: Ordinal Functions-Footnote-2714103
-Node: Join Function714317
-Ref: Join Function-Footnote-1716115
-Node: Getlocaltime Function716319
-Node: Readfile Function720093
-Node: Shell Quoting722122
-Node: Isnumeric Function723578
-Node: To CSV Function725014
-Node: Data File Management727088
-Node: Filetrans Function727720
-Node: Rewind Function731996
-Node: File Checking733967
-Ref: File Checking-Footnote-1735333
-Node: Empty Files735538
-Node: Ignoring Assigns737601
-Node: Getopt Function739175
-Ref: Getopt Function-Footnote-1754993
-Node: Passwd Functions755205
-Ref: Passwd Functions-Footnote-1764340
-Node: Group Functions764428
-Ref: Group Functions-Footnote-1772552
-Node: Walking Arrays772763
-Node: Library Functions Summary775809
-Node: Library Exercises777229
-Node: Sample Programs777714
-Node: Running Examples778496
-Node: Clones779248
-Node: Cut Program780516
-Node: Egrep Program790940
-Node: Id Program800245
-Node: Split Program810337
-Ref: Split Program-Footnote-1820550
-Node: Tee Program820735
-Node: Uniq Program823641
-Node: Wc Program831501
-Node: Bytes vs. Characters831896
-Node: Using extensions833496
-Node: wc program834274
-Node: Miscellaneous Programs839267
-Node: Dupword Program840492
-Node: Alarm Program842541
-Node: Translate Program847444
-Ref: Translate Program-Footnote-1852153
-Node: Labels Program852431
-Ref: Labels Program-Footnote-1855866
-Node: Word Sorting855950
-Node: History Sorting860124
-Node: Extract Program862397
-Node: Simple Sed870652
-Node: Igawk Program873862
-Ref: Igawk Program-Footnote-1889063
-Ref: Igawk Program-Footnote-2889269
-Ref: Igawk Program-Footnote-3889399
-Node: Anagram Program889526
-Node: Signature Program892612
-Node: Programs Summary893862
-Node: Programs Exercises895116
-Ref: Programs Exercises-Footnote-1899418
-Node: Advanced Features899504
-Node: Nondecimal Data901985
-Node: Boolean Typed Values903615
-Node: Array Sorting905572
-Node: Controlling Array Traversal906301
-Ref: Controlling Array Traversal-Footnote-1914804
-Node: Array Sorting Functions914926
-Ref: Array Sorting Functions-Footnote-1921023
-Node: Two-way I/O921231
-Ref: Two-way I/O-Footnote-1929202
-Ref: Two-way I/O-Footnote-2929393
-Node: TCP/IP Networking929475
-Node: Profiling932643
-Node: Persistent Memory942313
-Ref: Persistent Memory-Footnote-1951885
-Node: Extension Philosophy952016
-Node: Advanced Features Summary953543
-Node: Internationalization955809
-Node: I18N and L10N957511
-Node: Explaining gettext958206
-Ref: Explaining gettext-Footnote-1964342
-Ref: Explaining gettext-Footnote-2964535
-Node: Programmer i18n964700
-Ref: Programmer i18n-Footnote-1969805
-Node: Translator i18n969854
-Node: String Extraction970684
-Ref: String Extraction-Footnote-1971860
-Node: Printf Ordering971958
-Ref: Printf Ordering-Footnote-1974816
-Node: I18N Portability974884
-Ref: I18N Portability-Footnote-1977444
-Node: I18N Example977511
-Ref: I18N Example-Footnote-1980905
-Ref: I18N Example-Footnote-2980978
-Node: Gawk I18N981095
-Node: I18N Summary981749
-Node: Debugger983146
-Node: Debugging984166
-Node: Debugging Concepts984615
-Node: Debugging Terms986432
-Node: Awk Debugging989035
-Ref: Awk Debugging-Footnote-1990008
-Node: Sample Debugging Session990144
-Node: Debugger Invocation990694
-Node: Finding The Bug992319
-Node: List of Debugger Commands998951
-Node: Breakpoint Control1000328
-Node: Debugger Execution Control1004150
-Node: Viewing And Changing Data1007624
-Node: Execution Stack1011358
-Node: Debugger Info1013039
-Node: Miscellaneous Debugger Commands1017334
-Node: Readline Support1022575
-Node: Limitations1023519
-Node: Debugging Summary1026143
-Node: Namespaces1027442
-Node: Global Namespace1028569
-Node: Qualified Names1030003
-Node: Default Namespace1031038
-Node: Changing The Namespace1031811
-Node: Naming Rules1033493
-Node: Internal Name Management1035408
-Node: Namespace Example1036478
-Node: Namespace And Features1039055
-Node: Namespace Summary1040510
-Node: Arbitrary Precision Arithmetic1042021
-Node: Computer Arithmetic1043540
-Ref: table-numeric-ranges1047348
-Ref: table-floating-point-ranges1047845
-Ref: Computer Arithmetic-Footnote-11048503
-Node: Math Definitions1048560
-Ref: table-ieee-formats1051592
-Node: MPFR features1052165
-Node: MPFR On Parole1052618
-Ref: MPFR On Parole-Footnote-11053459
-Node: MPFR Intro1053618
-Node: FP Math Caution1055302
-Ref: FP Math Caution-Footnote-11056374
-Node: Inexactness of computations1056747
-Node: Inexact representation1057778
-Node: Comparing FP Values1059159
-Node: Errors accumulate1060417
-Node: Strange values1061882
-Ref: Strange values-Footnote-11064536
-Node: Getting Accuracy1064641
-Node: Try To Round1067378
-Node: Setting precision1068285
-Ref: table-predefined-precision-strings1068990
-Node: Setting the rounding mode1070874
-Ref: table-gawk-rounding-modes1071256
-Ref: Setting the rounding mode-Footnote-11075308
-Node: Arbitrary Precision Integers1075491
-Ref: Arbitrary Precision Integers-Footnote-11078701
-Node: Checking for MPFR1078854
-Node: POSIX Floating Point Problems1080344
-Ref: POSIX Floating Point Problems-Footnote-11085164
-Node: Floating point summary1085202
-Node: Dynamic Extensions1087458
-Node: Extension Intro1089055
-Node: Plugin License1090357
-Node: Extension Mechanism Outline1091170
-Ref: figure-load-extension1091621
-Ref: figure-register-new-function1093199
-Ref: figure-call-new-function1094308
-Node: Extension API Description1096423
-Node: Extension API Functions Introduction1098152
-Ref: table-api-std-headers1100046
-Node: General Data Types1104487
-Ref: General Data Types-Footnote-11113633
-Node: Memory Allocation Functions1113936
-Ref: Memory Allocation Functions-Footnote-11118653
-Node: Constructor Functions1118752
-Node: API Ownership of MPFR and GMP Values1122653
-Node: Registration Functions1124206
-Node: Extension Functions1124910
-Node: Exit Callback Functions1130484
-Node: Extension Version String1131798
-Node: Input Parsers1132493
-Node: Output Wrappers1147112
-Node: Two-way processors1151954
-Node: Printing Messages1154307
-Ref: Printing Messages-Footnote-11155518
-Node: Updating ERRNO1155671
-Node: Requesting Values1156470
-Ref: table-value-types-returned1157223
-Node: Accessing Parameters1158331
-Node: Symbol Table Access1159612
-Node: Symbol table by name1160124
-Ref: Symbol table by name-Footnote-11163325
-Node: Symbol table by cookie1163457
-Ref: Symbol table by cookie-Footnote-11167726
-Node: Cached values1167790
-Ref: Cached values-Footnote-11171422
-Node: Array Manipulation1171579
-Ref: Array Manipulation-Footnote-11172678
-Node: Array Data Types1172715
-Ref: Array Data Types-Footnote-11175533
-Node: Array Functions1175629
-Node: Flattening Arrays1180658
-Node: Creating Arrays1187706
-Node: Redirection API1192548
-Node: Extension API Variables1195565
-Node: Extension Versioning1196288
-Ref: gawk-api-version1196717
-Node: Extension GMP/MPFR Versioning1198504
-Node: Extension API Informational Variables1200208
-Node: Extension API Boilerplate1201461
-Node: Changes from API V11205591
-Node: Finding Extensions1207223
-Node: Extension Example1207798
-Node: Internal File Description1208620
-Node: Internal File Ops1212912
-Ref: Internal File Ops-Footnote-11224462
-Node: Using Internal File Ops1224610
-Ref: Using Internal File Ops-Footnote-11227041
-Node: Extension Samples1227319
-Node: Extension Sample File Functions1228888
-Node: Extension Sample Fnmatch1237013
-Node: Extension Sample Fork1238608
-Node: Extension Sample Inplace1239884
-Node: Extension Sample Ord1243550
-Node: Extension Sample Readdir1244426
-Ref: table-readdir-file-types1245215
-Node: Extension Sample Revout1246571
-Node: Extension Sample Rev2way1247168
-Node: Extension Sample Read write array1247920
-Node: Extension Sample Readfile1251194
-Node: Extension Sample Time1252325
-Node: Extension Sample API Tests1254613
-Node: gawkextlib1255121
-Node: Extension summary1258153
-Node: Extension Exercises1262001
-Node: Language History1263271
-Node: V7/SVR3.11264983
-Node: SVR41267333
-Node: POSIX1268865
-Node: BTL1270290
-Node: POSIX/GNU1271057
-Node: Feature History1277712
-Node: Common Extensions1297514
-Node: Ranges and Locales1298989
-Ref: Ranges and Locales-Footnote-11303774
-Ref: Ranges and Locales-Footnote-21303801
-Ref: Ranges and Locales-Footnote-31304036
-Node: Contributors1304259
-Node: History summary1310450
-Node: Installation1311892
-Node: Gawk Distribution1312856
-Node: Getting1313348
-Node: Extracting1314347
-Node: Distribution contents1316053
-Node: Unix Installation1324127
-Node: Quick Installation1324947
-Node: Compiling with MPFR1327487
-Node: Shell Startup Files1328193
-Node: Additional Configuration Options1329350
-Node: Configuration Philosophy1331733
-Node: Compiling from Git1334233
-Node: Building the Documentation1334792
-Node: Non-Unix Installation1336204
-Node: PC Installation1336680
-Node: PC Binary Installation1337549
-Node: PC Compiling1338442
-Node: PC Using1339620
-Node: Cygwin1343336
-Node: MSYS1344588
-Node: OpenVMS Installation1345214
-Node: OpenVMS Compilation1345895
-Ref: OpenVMS Compilation-Footnote-11347378
-Node: OpenVMS Dynamic Extensions1347436
-Node: OpenVMS Installation Details1349072
-Node: OpenVMS Running1351503
-Node: OpenVMS GNV1355640
-Node: Bugs1356395
-Node: Bug definition1357315
-Node: Bug address1360916
-Node: Usenet1364485
-Node: Performance bugs1365698
-Node: Asking for help1368714
-Node: Maintainers1370701
-Node: Other Versions1371728
-Node: Installation summary1381332
-Node: Notes1382714
-Node: Compatibility Mode1383524
-Node: Additions1384346
-Node: Accessing The Source1385291
-Node: Adding Code1386822
-Node: New Ports1393933
-Node: Derived Files1398436
-Ref: Derived Files-Footnote-11404247
-Ref: Derived Files-Footnote-21404282
-Ref: Derived Files-Footnote-31404893
-Node: Future Extensions1405007
-Node: Implementation Limitations1405677
-Node: Extension Design1406919
-Node: Old Extension Problems1408079
-Ref: Old Extension Problems-Footnote-11409651
-Node: Extension New Mechanism Goals1409712
-Ref: Extension New Mechanism Goals-Footnote-11413182
-Node: Extension Other Design Decisions1413383
-Node: Extension Future Growth1415580
-Node: Notes summary1416200
-Node: Basic Concepts1417410
-Node: Basic High Level1418095
-Ref: figure-general-flow1418377
-Ref: figure-process-flow1419079
-Ref: Basic High Level-Footnote-11422449
-Node: Basic Data Typing1422638
-Node: Glossary1426046
-Node: Copying1458925
-Node: GNU Free Documentation License1496483
-Node: Index1521606
+Node: Executable Scripts87657
+Ref: Executable Scripts-Footnote-190427
+Node: Comments90534
+Node: Quoting93064
+Node: DOS Quoting98708
+Node: Sample Data Files100788
+Node: Very Simple103423
+Node: Two Rules109677
+Node: More Complex111629
+Node: Statements/Lines114049
+Ref: Statements/Lines-Footnote-1119561
+Node: Other Features119850
+Node: When120818
+Ref: When-Footnote-1122620
+Node: Intro Summary122685
+Node: Invoking Gawk123639
+Node: Command Line125201
+Node: Options126051
+Ref: Options-Footnote-1145391
+Ref: Options-Footnote-2145626
+Node: Other Arguments145651
+Node: Naming Standard Input149816
+Node: Environment Variables151086
+Node: AWKPATH Variable151660
+Ref: AWKPATH Variable-Footnote-1155244
+Ref: AWKPATH Variable-Footnote-2155278
+Node: AWKLIBPATH Variable155669
+Ref: AWKLIBPATH Variable-Footnote-1157442
+Node: Other Environment Variables157837
+Node: Exit Status162313
+Node: Include Files163026
+Node: Loading Shared Libraries167078
+Node: Obsolete168568
+Node: Undocumented169317
+Node: Invoking Summary169614
+Node: Regexp172639
+Node: Regexp Usage174133
+Node: Escape Sequences176234
+Ref: Escape Sequences-Footnote-1183747
+Node: Regexp Operators183825
+Node: Regexp Operator Details184318
+Ref: Regexp Operator Details-Footnote-1192329
+Node: Interval Expressions192488
+Ref: Interval Expressions-Footnote-1194755
+Node: Bracket Expressions194853
+Ref: table-char-classes197409
+Node: Leftmost Longest200907
+Node: Computed Regexps202263
+Node: GNU Regexp Operators205778
+Node: Case-sensitivity209794
+Ref: Case-sensitivity-Footnote-1212744
+Ref: Case-sensitivity-Footnote-2212987
+Node: Regexp Summary213099
+Node: Reading Files214621
+Node: Records216938
+Node: awk split records218213
+Node: gawk split records223095
+Ref: gawk split records-Footnote-1228383
+Node: Fields228420
+Ref: Fields-Footnote-1231336
+Node: Nonconstant Fields231456
+Ref: Nonconstant Fields-Footnote-1233764
+Node: Changing Fields233980
+Node: Field Separators240278
+Node: Default Field Splitting243147
+Node: Regexp Field Splitting244289
+Node: Single Character Fields248118
+Node: Comma Separated Fields249207
+Ref: table-csv-examples250611
+Node: Command Line Field Separator252910
+Node: Full Line Fields256286
+Ref: Full Line Fields-Footnote-1257864
+Ref: Full Line Fields-Footnote-2257910
+Node: Field Splitting Summary258015
+Node: Constant Size260332
+Node: Fixed width data261076
+Node: Skipping intervening264591
+Node: Allowing trailing data265393
+Node: Fields with fixed data266454
+Node: Splitting By Content268076
+Ref: Splitting By Content-Footnote-1272526
+Node: More CSV272689
+Node: FS versus FPAT274347
+Node: Testing field creation275547
+Node: Multiple Line277321
+Node: Getline283790
+Node: Plain Getline286373
+Node: Getline/Variable289019
+Node: Getline/File290214
+Node: Getline/Variable/File291662
+Ref: Getline/Variable/File-Footnote-1293307
+Node: Getline/Pipe293403
+Node: Getline/Variable/Pipe296211
+Node: Getline/Coprocess297394
+Node: Getline/Variable/Coprocess298717
+Node: Getline Notes299483
+Node: Getline Summary302436
+Ref: table-getline-variants302880
+Node: Read Timeout303784
+Ref: Read Timeout-Footnote-1307746
+Node: Retrying Input307804
+Node: Command-line directories309071
+Node: Input Summary310009
+Node: Input Exercises313389
+Node: Printing313827
+Node: Print315770
+Node: Print Examples317271
+Node: Output Separators320116
+Node: OFMT322223
+Node: Printf323936
+Node: Basic Printf324741
+Node: Control Letters326376
+Node: Format Modifiers331822
+Node: Printf Examples338094
+Node: Redirection340635
+Node: Special FD348407
+Ref: Special FD-Footnote-1351705
+Node: Special Files351783
+Node: Other Inherited Files352412
+Node: Special Network353477
+Node: Special Caveats354365
+Node: Close Files And Pipes355348
+Ref: Close Files And Pipes-Footnote-1361472
+Node: Close Return Value361620
+Ref: table-close-pipe-return-values362891
+Ref: Close Return Value-Footnote-1363722
+Node: Noflush363878
+Node: Nonfatal365386
+Node: Output Summary367801
+Node: Output Exercises369087
+Node: Expressions369778
+Node: Values370978
+Node: Constants371656
+Node: Scalar Constants372351
+Ref: Scalar Constants-Footnote-1374927
+Ref: Scalar Constants-Footnote-2375177
+Node: Nondecimal-numbers375257
+Node: Regexp Constants378370
+Node: Using Constant Regexps378916
+Node: Standard Regexp Constants379562
+Node: Strong Regexp Constants382858
+Node: Variables386701
+Node: Using Variables387366
+Node: Assignment Options389340
+Node: Conversion391891
+Node: Strings And Numbers392423
+Ref: Strings And Numbers-Footnote-1395633
+Node: Locale influences conversions395742
+Ref: table-locale-affects398580
+Node: All Operators399222
+Node: Arithmetic Ops399863
+Node: Concatenation402686
+Ref: Concatenation-Footnote-1405622
+Node: Assignment Ops405741
+Ref: table-assign-ops410868
+Node: Increment Ops412249
+Node: Truth Values and Conditions415840
+Node: Truth Values416934
+Node: Typing and Comparison418014
+Node: Variable Typing418846
+Ref: Variable Typing-Footnote-1425490
+Ref: Variable Typing-Footnote-2425570
+Node: Comparison Operators425651
+Ref: table-relational-ops426078
+Node: POSIX String Comparison429754
+Ref: POSIX String Comparison-Footnote-1431511
+Ref: POSIX String Comparison-Footnote-2431654
+Node: Boolean Ops431738
+Ref: Boolean Ops-Footnote-1436412
+Node: Conditional Exp436508
+Node: Function Calls438288
+Node: Precedence442235
+Node: Locales446098
+Node: Expressions Summary447774
+Node: Patterns and Actions450429
+Node: Pattern Overview451565
+Node: Regexp Patterns453290
+Node: Expression Patterns453836
+Node: Ranges457741
+Node: BEGIN/END460915
+Node: Using BEGIN/END461724
+Ref: Using BEGIN/END-Footnote-1464632
+Node: I/O And BEGIN/END464742
+Node: BEGINFILE/ENDFILE467223
+Node: Empty470654
+Node: Using Shell Variables470971
+Node: Action Overview473307
+Node: Statements475742
+Node: If Statement477638
+Node: While Statement479201
+Node: Do Statement481289
+Node: For Statement482473
+Node: Switch Statement485828
+Node: Break Statement488377
+Node: Continue Statement490569
+Node: Next Statement492500
+Node: Nextfile Statement494979
+Node: Exit Statement497832
+Node: Built-in Variables500359
+Node: User-modified501536
+Node: Auto-set509743
+Ref: Auto-set-Footnote-1527827
+Ref: Auto-set-Footnote-2528045
+Node: ARGC and ARGV528101
+Node: Pattern Action Summary532530
+Node: Arrays535136
+Node: Array Basics536509
+Node: Array Intro537357
+Ref: figure-array-elements539368
+Ref: Array Intro-Footnote-1542221
+Node: Reference to Elements542353
+Node: Assigning Elements544873
+Node: Array Example545368
+Node: Scanning an Array547330
+Node: Controlling Scanning550425
+Ref: Controlling Scanning-Footnote-1557060
+Node: Numeric Array Subscripts557384
+Node: Uninitialized Subscripts559652
+Node: Delete561325
+Ref: Delete-Footnote-1564137
+Node: Multidimensional564194
+Node: Multiscanning567397
+Node: Arrays of Arrays569064
+Node: Arrays Summary573368
+Node: Functions575555
+Node: Built-in576613
+Node: Calling Built-in577802
+Node: Boolean Functions579842
+Node: Numeric Functions580404
+Ref: Numeric Functions-Footnote-1584589
+Ref: Numeric Functions-Footnote-2585272
+Ref: Numeric Functions-Footnote-3585324
+Node: String Functions585600
+Ref: String Functions-Footnote-1612051
+Ref: String Functions-Footnote-2612183
+Ref: String Functions-Footnote-3612439
+Node: Gory Details612526
+Ref: table-sub-escapes614535
+Ref: table-sub-proposed616166
+Ref: table-posix-sub617661
+Ref: table-gensub-escapes619334
+Ref: Gory Details-Footnote-1620253
+Node: I/O Functions620407
+Ref: table-system-return-values627083
+Ref: I/O Functions-Footnote-1629245
+Ref: I/O Functions-Footnote-2629393
+Node: Time Functions629513
+Ref: Time Functions-Footnote-1640595
+Ref: Time Functions-Footnote-2640663
+Ref: Time Functions-Footnote-3640825
+Ref: Time Functions-Footnote-4640936
+Ref: Time Functions-Footnote-5641052
+Ref: Time Functions-Footnote-6641279
+Node: Bitwise Functions641557
+Ref: table-bitwise-ops642155
+Ref: Bitwise Functions-Footnote-1648397
+Ref: Bitwise Functions-Footnote-2648574
+Node: Type Functions648769
+Node: I18N Functions652362
+Node: User-defined654097
+Node: Definition Syntax654917
+Ref: Definition Syntax-Footnote-1660735
+Node: Function Example660810
+Ref: Function Example-Footnote-1663789
+Node: Function Calling663811
+Node: Calling A Function664403
+Node: Variable Scope665373
+Node: Pass By Value/Reference668427
+Node: Function Caveats671155
+Ref: Function Caveats-Footnote-1673246
+Node: Return Statement673366
+Node: Dynamic Typing676421
+Node: Indirect Calls678803
+Node: Functions Summary689938
+Node: Library Functions692707
+Ref: Library Functions-Footnote-1696255
+Ref: Library Functions-Footnote-2696400
+Node: Library Names696575
+Ref: Library Names-Footnote-1700346
+Ref: Library Names-Footnote-2700573
+Node: General Functions700667
+Node: Strtonum Function701937
+Node: Assert Function705019
+Node: Round Function708469
+Node: Cliff Random Function710041
+Node: Ordinal Functions711065
+Ref: Ordinal Functions-Footnote-1714168
+Ref: Ordinal Functions-Footnote-2714420
+Node: Join Function714634
+Ref: Join Function-Footnote-1716432
+Node: Getlocaltime Function716636
+Node: Readfile Function720410
+Node: Shell Quoting722439
+Node: Isnumeric Function723895
+Node: To CSV Function725331
+Node: Data File Management727423
+Node: Filetrans Function728055
+Node: Rewind Function732331
+Node: File Checking734302
+Ref: File Checking-Footnote-1735668
+Node: Empty Files735873
+Node: Ignoring Assigns737936
+Node: Getopt Function739510
+Ref: Getopt Function-Footnote-1755328
+Node: Passwd Functions755540
+Ref: Passwd Functions-Footnote-1764675
+Node: Group Functions764763
+Ref: Group Functions-Footnote-1772887
+Node: Walking Arrays773098
+Node: Library Functions Summary776144
+Node: Library Exercises777564
+Node: Sample Programs778049
+Node: Running Examples778831
+Node: Clones779583
+Node: Cut Program780851
+Node: Egrep Program791275
+Node: Id Program800580
+Node: Split Program810672
+Ref: Split Program-Footnote-1820885
+Node: Tee Program821070
+Node: Uniq Program823976
+Node: Wc Program831836
+Node: Bytes vs. Characters832231
+Node: Using extensions833831
+Node: wc program834609
+Node: Miscellaneous Programs839602
+Node: Dupword Program840827
+Node: Alarm Program842876
+Node: Translate Program847779
+Ref: Translate Program-Footnote-1852488
+Node: Labels Program852766
+Ref: Labels Program-Footnote-1856201
+Node: Word Sorting856285
+Node: History Sorting860459
+Node: Extract Program862732
+Node: Simple Sed870987
+Node: Igawk Program874197
+Ref: Igawk Program-Footnote-1889407
+Ref: Igawk Program-Footnote-2889613
+Ref: Igawk Program-Footnote-3889743
+Node: Anagram Program889870
+Node: Signature Program892956
+Node: Programs Summary894206
+Node: Programs Exercises895460
+Ref: Programs Exercises-Footnote-1899762
+Node: Advanced Features899848
+Node: Nondecimal Data902329
+Node: Boolean Typed Values903959
+Node: Array Sorting905916
+Node: Controlling Array Traversal906645
+Ref: Controlling Array Traversal-Footnote-1915148
+Node: Array Sorting Functions915270
+Ref: Array Sorting Functions-Footnote-1921367
+Node: Two-way I/O921575
+Ref: Two-way I/O-Footnote-1929546
+Ref: Two-way I/O-Footnote-2929737
+Node: TCP/IP Networking929819
+Node: Profiling932987
+Node: Persistent Memory942657
+Ref: Persistent Memory-Footnote-1952229
+Node: Extension Philosophy952360
+Node: Advanced Features Summary953887
+Node: Internationalization956153
+Node: I18N and L10N957855
+Node: Explaining gettext958550
+Ref: Explaining gettext-Footnote-1964686
+Ref: Explaining gettext-Footnote-2964879
+Node: Programmer i18n965044
+Ref: Programmer i18n-Footnote-1970156
+Node: Translator i18n970205
+Node: String Extraction971035
+Ref: String Extraction-Footnote-1972211
+Node: Printf Ordering972309
+Ref: Printf Ordering-Footnote-1975167
+Node: I18N Portability975235
+Ref: I18N Portability-Footnote-1977795
+Node: I18N Example977862
+Ref: I18N Example-Footnote-1981256
+Ref: I18N Example-Footnote-2981329
+Node: Gawk I18N981446
+Node: I18N Summary982100
+Node: Debugger983497
+Node: Debugging984517
+Node: Debugging Concepts984966
+Node: Debugging Terms986783
+Node: Awk Debugging989386
+Ref: Awk Debugging-Footnote-1990359
+Node: Sample Debugging Session990495
+Node: Debugger Invocation991045
+Node: Finding The Bug992670
+Node: List of Debugger Commands999302
+Node: Breakpoint Control1000679
+Node: Debugger Execution Control1004501
+Node: Viewing And Changing Data1007975
+Node: Execution Stack1011709
+Node: Debugger Info1013390
+Node: Miscellaneous Debugger Commands1017685
+Node: Readline Support1022926
+Node: Limitations1023870
+Node: Debugging Summary1026494
+Node: Namespaces1027793
+Node: Global Namespace1028920
+Node: Qualified Names1030354
+Node: Default Namespace1031389
+Node: Changing The Namespace1032162
+Node: Naming Rules1033844
+Node: Internal Name Management1035759
+Node: Namespace Example1036829
+Node: Namespace And Features1039406
+Node: Namespace Summary1040861
+Node: Arbitrary Precision Arithmetic1042372
+Node: Computer Arithmetic1043891
+Ref: table-numeric-ranges1047699
+Ref: table-floating-point-ranges1048196
+Ref: Computer Arithmetic-Footnote-11048854
+Node: Math Definitions1048911
+Ref: table-ieee-formats1051943
+Node: MPFR features1052516
+Node: MPFR On Parole1052969
+Ref: MPFR On Parole-Footnote-11053810
+Node: MPFR Intro1053969
+Node: FP Math Caution1055653
+Ref: FP Math Caution-Footnote-11056725
+Node: Inexactness of computations1057098
+Node: Inexact representation1058129
+Node: Comparing FP Values1059510
+Node: Errors accumulate1060768
+Node: Strange values1062233
+Ref: Strange values-Footnote-11064887
+Node: Getting Accuracy1064992
+Node: Try To Round1067729
+Node: Setting precision1068636
+Ref: table-predefined-precision-strings1069341
+Node: Setting the rounding mode1071225
+Ref: table-gawk-rounding-modes1071607
+Ref: Setting the rounding mode-Footnote-11075659
+Node: Arbitrary Precision Integers1075842
+Ref: Arbitrary Precision Integers-Footnote-11079052
+Node: Checking for MPFR1079205
+Node: POSIX Floating Point Problems1080695
+Ref: POSIX Floating Point Problems-Footnote-11085515
+Node: Floating point summary1085553
+Node: Dynamic Extensions1087809
+Node: Extension Intro1089406
+Node: Plugin License1090708
+Node: Extension Mechanism Outline1091521
+Ref: figure-load-extension1091972
+Ref: figure-register-new-function1093550
+Ref: figure-call-new-function1094659
+Node: Extension API Description1096774
+Node: Extension API Functions Introduction1098503
+Ref: table-api-std-headers1100397
+Node: General Data Types1104838
+Ref: General Data Types-Footnote-11113984
+Node: Memory Allocation Functions1114287
+Ref: Memory Allocation Functions-Footnote-11119004
+Node: Constructor Functions1119103
+Node: API Ownership of MPFR and GMP Values1123004
+Node: Registration Functions1124557
+Node: Extension Functions1125261
+Node: Exit Callback Functions1130835
+Node: Extension Version String1132149
+Node: Input Parsers1132844
+Node: Output Wrappers1147463
+Node: Two-way processors1152305
+Node: Printing Messages1154658
+Ref: Printing Messages-Footnote-11155869
+Node: Updating ERRNO1156022
+Node: Requesting Values1156821
+Ref: table-value-types-returned1157574
+Node: Accessing Parameters1158682
+Node: Symbol Table Access1159963
+Node: Symbol table by name1160475
+Ref: Symbol table by name-Footnote-11163676
+Node: Symbol table by cookie1163808
+Ref: Symbol table by cookie-Footnote-11168077
+Node: Cached values1168141
+Ref: Cached values-Footnote-11171773
+Node: Array Manipulation1171930
+Ref: Array Manipulation-Footnote-11173029
+Node: Array Data Types1173066
+Ref: Array Data Types-Footnote-11175884
+Node: Array Functions1175980
+Node: Flattening Arrays1181009
+Node: Creating Arrays1188057
+Node: Redirection API1192899
+Node: Extension API Variables1195916
+Node: Extension Versioning1196639
+Ref: gawk-api-version1197068
+Node: Extension GMP/MPFR Versioning1198855
+Node: Extension API Informational Variables1200559
+Node: Extension API Boilerplate1201812
+Node: Changes from API V11205942
+Node: Finding Extensions1207574
+Node: Extension Example1208149
+Node: Internal File Description1208971
+Node: Internal File Ops1213263
+Ref: Internal File Ops-Footnote-11224813
+Node: Using Internal File Ops1224961
+Ref: Using Internal File Ops-Footnote-11227392
+Node: Extension Samples1227670
+Node: Extension Sample File Functions1229239
+Node: Extension Sample Fnmatch1237364
+Node: Extension Sample Fork1238959
+Node: Extension Sample Inplace1240235
+Node: Extension Sample Ord1243901
+Node: Extension Sample Readdir1244777
+Ref: table-readdir-file-types1245566
+Node: Extension Sample Revout1246922
+Node: Extension Sample Rev2way1247519
+Node: Extension Sample Read write array1248271
+Node: Extension Sample Readfile1251545
+Node: Extension Sample Time1252676
+Node: Extension Sample API Tests1254964
+Node: gawkextlib1255472
+Node: Extension summary1258504
+Node: Extension Exercises1262352
+Node: Language History1263622
+Node: V7/SVR3.11265334
+Node: SVR41267684
+Node: POSIX1269216
+Node: BTL1270641
+Node: POSIX/GNU1271408
+Node: Feature History1278063
+Node: Common Extensions1297865
+Node: Ranges and Locales1299340
+Ref: Ranges and Locales-Footnote-11304125
+Ref: Ranges and Locales-Footnote-21304152
+Ref: Ranges and Locales-Footnote-31304387
+Node: Contributors1304610
+Node: History summary1310801
+Node: Installation1312243
+Node: Gawk Distribution1313207
+Node: Getting1313699
+Node: Extracting1314698
+Node: Distribution contents1316404
+Node: Unix Installation1324478
+Node: Quick Installation1325298
+Node: Compiling with MPFR1327838
+Node: Shell Startup Files1328544
+Node: Additional Configuration Options1329701
+Node: Configuration Philosophy1332084
+Node: Compiling from Git1334584
+Node: Building the Documentation1335143
+Node: Non-Unix Installation1336555
+Node: PC Installation1337031
+Node: PC Binary Installation1337900
+Node: PC Compiling1338793
+Node: PC Using1339971
+Node: Cygwin1343687
+Node: MSYS1344939
+Node: OpenVMS Installation1345565
+Node: OpenVMS Compilation1346246
+Ref: OpenVMS Compilation-Footnote-11347729
+Node: OpenVMS Dynamic Extensions1347787
+Node: OpenVMS Installation Details1349423
+Node: OpenVMS Running1351854
+Node: OpenVMS GNV1355991
+Node: Bugs1356746
+Node: Bug definition1357666
+Node: Bug address1361267
+Node: Usenet1364836
+Node: Performance bugs1366049
+Node: Asking for help1369065
+Node: Maintainers1371052
+Node: Other Versions1372079
+Node: Installation summary1381683
+Node: Notes1383065
+Node: Compatibility Mode1383875
+Node: Additions1384697
+Node: Accessing The Source1385642
+Node: Adding Code1387173
+Node: New Ports1394284
+Node: Derived Files1398787
+Ref: Derived Files-Footnote-11404598
+Ref: Derived Files-Footnote-21404633
+Ref: Derived Files-Footnote-31405244
+Node: Future Extensions1405358
+Node: Implementation Limitations1406028
+Node: Extension Design1407270
+Node: Old Extension Problems1408430
+Ref: Old Extension Problems-Footnote-11410002
+Node: Extension New Mechanism Goals1410063
+Ref: Extension New Mechanism Goals-Footnote-11413533
+Node: Extension Other Design Decisions1413734
+Node: Extension Future Growth1415931
+Node: Notes summary1416551
+Node: Basic Concepts1417761
+Node: Basic High Level1418446
+Ref: figure-general-flow1418728
+Ref: figure-process-flow1419430
+Ref: Basic High Level-Footnote-11422800
+Node: Basic Data Typing1422989
+Node: Glossary1426397
+Node: Copying1459276
+Node: GNU Free Documentation License1496834
+Node: Index1521957
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 4ce7fc0e..97907d96 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -2630,7 +2630,8 @@ This was explained earlier
 (@pxref{Read Terminal}).
 Note that you don't usually need single quotes around the @value{FN} that you
 specify with @option{-f}, because most @value{FN}s don't contain any of the 
shell's
-special characters.  Notice that in @file{advice}, the @command{awk}
+special characters. (If your @value{FN}s have spaces in them, then you
+will need the single quotes.)  Notice that in @file{advice}, the @command{awk}
 program did not have single quotes around it.  The quotes are only needed
 for programs that are provided on the @command{awk} command line.
 (Also, placing the program in a file allows us to use a literal single quote 
in the program
@@ -2777,10 +2778,10 @@ $ @kbd{awk 'BEGIN @{ print "hello" @} # let's be cute'}
 The shell sees that the first two quotes match, and that
 a new quoted object begins at the end of the command line.
 It therefore prompts with the secondary prompt, waiting for more input.
-With Unix @command{awk}, closing the quoted string produces this result:
+With BWK @command{awk}, closing the quoted string produces this result:
 
 @example
-$ @kbd{awk '@{ print "hello" @} # let's be cute'}
+$ @kbd{nawk '@{ print "hello" @} # let's be cute'}
 > @kbd{'}
 @error{} awk: can't open file be
 @error{}  source line number 1
@@ -2825,7 +2826,7 @@ or empty, string.
 The null string is character data that has no value.
 In other words, it is empty.  It is written in @command{awk} programs
 like this: @code{""}. In the shell, it can be written using single
-or double quotes: @code{""} or @code{''}. Although the null string has
+or double quotes: @code{''} or @code{""}. Although the null string has
 no characters in it, it does exist. For example, consider this command:
 
 @example
@@ -2873,7 +2874,7 @@ Because certain characters within double-quoted text are 
processed by the shell,
 they must be @dfn{escaped} within the text.  Of note are the characters
 @samp{$}, @samp{`}, @samp{\}, and @samp{"}, all of which must be preceded by
 a backslash within double-quoted text if they are to be passed on literally
-to the program.  (The leading backslash is stripped first.)
+to the program.  (The shell strips the leading backslash first.)
 Thus, the example seen
 @ifnotinfo
 previously
@@ -3025,7 +3026,7 @@ it is worth addressing.
 @cindex Brink, Jeroen
 The ``shells'' on Microsoft Windows systems use the double-quote
 character for quoting, and make it difficult or impossible to include an
-escaped double-quote character in a command-line script.  The following
+escaped double quote character in a command-line script.  The following
 example, courtesy of Jeroen Brink, shows how to escape the double quotes
 from this one liner script that prints all lines in a file surrounded by
 double quotes:
@@ -3042,14 +3043,14 @@ follows:
 gawk "@{ print \"\042\" $0 \"\042\" @}" @var{file}
 @end example
 
-In this example the @samp{\042} is the octal code for a double-quote;
+In this example the @samp{\042} is the octal code for a double quote;
 @command{gawk} converts it into a real double-quote for output by
 the @code{print} statement.
 
-In MS-Windows escaping double-quotes is a little tricky because you use
-backslashes to escape double-quotes, but backslashes themselves are not
+In MS-Windows escaping double quotes is a little tricky because you use
+backslashes to escape double quotes, but backslashes themselves are not
 escaped in the usual way; indeed they are either duplicated or not,
-depending upon whether there is a subsequent double-quote.  The MS-Windows
+depending upon whether there is a subsequent double quote.  The MS-Windows
 rule for double-quoting a string is the following:
 
 @enumerate
@@ -3064,7 +3065,7 @@ Let @var{N} be the number of backslash(es) tailing the 
original string,
 @math{2@value{TIMES}@var{N}} backslash(es)
 
 @item
-Surround the resulting string by double-quotes.
+Surround the resulting string by double quotes.
 @end enumerate
 
 So to double-quote the one-liner script @samp{@{ print "\"" $0 "\"" @}}
@@ -3077,7 +3078,7 @@ gawk "@{ print \"\\\"\" $0 \"\\\"\" @}" @var{file}
 @noindent
 However, the use of @samp{\042} instead of @samp{\\\"} is also possible
 and easier to read, because backslashes that are not followed by a
-double-quote don't need duplication.
+double quote don't need duplication.
 
 @node Sample Data Files
 @section @value{DDF}s for the Examples
@@ -5326,8 +5327,6 @@ non-option argument, are placed in @code{ARGV} as 
explained in
 Adjusting @code{ARGC} and @code{ARGV}
 affects how @command{awk} processes input.
 
-@c ----------------------------------------
-
 @item
 The three standard options for all versions of @command{awk} are
 @option{-f}, @option{-F}, and @option{-v}.  @command{gawk} supplies these
@@ -5517,9 +5516,9 @@ Some characters cannot be included literally in string 
constants
 (@code{"foo"}) or regexp constants (@code{/foo/}).
 Instead, they should be represented with @dfn{escape sequences},
 which are character sequences beginning with a backslash (@samp{\}).
-One use of an escape sequence is to include a double-quote character in
+One use of an escape sequence is to include a double quote character in
 a string constant.  Because a plain double quote ends the string, you
-must use @samp{\"} to represent an actual double-quote character as a
+must use @samp{\"} to represent an actual double quote character as a
 part of the string.  For example:
 
 @example
@@ -5660,7 +5659,7 @@ This sequence is used when you want to write a string
 constant that contains a double quote
 (such as @code{"He said \"hi!\" to her."}).
 Because the string is delimited by
-double quotes, you need to escape any quote that is part of the string,
+double quotes, you need to escape any double quote that is part of the string,
 in order to tell @command{awk} to keep processing the rest of the string.
 @end table
 
@@ -6347,7 +6346,7 @@ on the right.  This is true of any string-valued 
expression (such as
 @code{digits_regexp}, shown in the previous example), not just string 
constants.
 @end quotation
 
-@cindex regexp constants @subentry slashes vs.@: quotes
+@cindex regexp constants @subentry slashes vs.@: double quotes
 @cindex @code{\} (backslash) @subentry in regexp constants
 @cindex backslash (@code{\}) @subentry in regexp constants
 @cindex @code{"} (double quote) @subentry in regexp constants
@@ -8344,12 +8343,12 @@ $7 = <USA>
 Note the embedded comma in the value of @code{$3}.
 
 A straightforward improvement when processing CSV data of this sort
-would be to remove the quotes when they occur, with something like this:
+would be to remove the double quotes when they occur, with something like this:
 
 @example
 if (substr($i, 1, 1) == "\"") @{
     len = length($i)
-    $i = substr($i, 2, len - 2)    # Get text within the two quotes
+    $i = substr($i, 2, len - 2)    # Get text within the two double quotes
 @}
 @end example
 
@@ -8390,9 +8389,12 @@ available for splitting regular strings (@pxref{String 
Functions}).
 
 @quotation NOTE
 Given that @command{gawk} now has built-in CSV parsing
-(@pxref{Comma Separated Fields}), the examples presented here are obsolete.
+(@pxref{Comma Separated Fields}), the examples presented here are obsolete,
+since you can use the @option{--csv} option (in which case
+@code{FPAT} field parsing doesn't take effect).
 Nonetheless, it remains useful as an example of what @code{FPAT}-based
-field parsing can do.
+field parsing can do, or if you must use a version of @command{gawk}
+prior to 5.3.
 @end quotation
 
 @node More CSV
@@ -8400,9 +8402,9 @@ field parsing can do.
 
 @cindex Collado, Manuel
 Manuel Collado notes that in addition to commas, a CSV field can also
-contains quotes, that have to be escaped by doubling them. The previously
+contain double quotes, that have to be escaped by doubling them. The previously
 described regexps fail to accept quoted fields with both commas and
-quotes inside. He suggests that the simplest @code{FPAT} expression that
+double quotes inside. He suggests that the simplest @code{FPAT} expression that
 recognizes this kind of fields is @code{/([^,]*)|("([^"]|"")+")/}. He
 provides the following input data to test these variants:
 
@@ -9662,7 +9664,7 @@ The simple statement @samp{print} with no items is 
equivalent to
 line, use @samp{print ""}.
 To print a fixed piece of text, use a string constant, such as
 @w{@code{"Don't Panic"}}, as one item.  If you forget to use the
-double-quote characters, your text is taken as an @command{awk}
+double quote characters, your text is taken as an @command{awk}
 expression, and you will probably get an error.  Keep in mind that a
 space is printed between any two items.
 
@@ -10759,10 +10761,10 @@ the proper way to write an error message then becomes:
 print "Serious error detected!" > "/dev/stderr"
 @end example
 
-@cindex troubleshooting @subentry quotes with file names
-Note the use of quotes around the @value{FN}.
+@cindex troubleshooting @subentry double quotes with file names
+Note the use of double quotes around the @value{FN}.
 Like with any other redirection, the value must be a string.
-It is a common error to omit the quotes, which leads
+It is a common error to omit the double quotes, which leads
 to confusing results.
 
 @command{gawk} does not treat these @value{FN}s as special when
@@ -14598,7 +14600,7 @@ Variable substitution via quoting works, but can 
potentially be
 messy.  It requires a good understanding of the shell's quoting rules
 (@pxref{Quoting}),
 and it's often difficult to correctly
-match up the quotes when reading the program.
+match up the different quotes when reading the program.
 
 A better method is to use @command{awk}'s variable assignment feature
 (@pxref{Assignment Options})
@@ -21826,7 +21828,7 @@ manageable and making programs more readable.
 
 @cindex Kernighan, Brian @subentry quotes
 @cindex Plauger, P.J.@:
-In their seminal 1976 book, @cite{Software Tools},@footnote{Sadly, over 35
+In their seminal 1976 book, @cite{Software Tools},@footnote{Sadly, almost 50
 years later, many of the lessons taught by this book have yet to be
 learned by a vast number of practicing programmers.} Brian Kernighan
 and P.J.@: Plauger wrote:
@@ -22912,8 +22914,8 @@ function tocsv(fields, sep,     i, j, nfields, result)
     for (i = 1; i in fields; i++) @{
         nfields[i] = fields[i]
         if (nfields[i] ~ /["\n]/ || index(nfields[i], sep) != 0) @{
-            gsub(/"/, "\"\"", nfields[i])       # double up quotes
-            nfields[i] = "\"" nfields[i] "\""   # wrap in quotes
+            gsub(/"/, "\"\"", nfields[i])       # double up the double quotes
+            nfields[i] = "\"" nfields[i] "\""   # wrap in double quotes
         @}
     @}
 
@@ -26655,20 +26657,6 @@ As a side note, this program does not follow our 
recommended convention of namin
 global variables with a leading capital letter.  Doing that would
 make the program a little easier to follow.
 
-@ifset FOR_PRINT
-@cindex Kernighan, Brian @subentry quotes
-The logic for choosing which lines to print represents a @dfn{state
-machine}, which is ``a device which can be in one of a set number
-of stable conditions depending on its previous condition and on the
-present values of its inputs.''@footnote{This definition is from
-@uref{https://www.lexico.com/en/definition/state_machine}.} Brian
-Kernighan suggests that ``an alternative approach to state machines is
-to just read the input into an array, then use indexing.  It's almost
-always easier code, and for most inputs where you would use this, just
-as fast.''  Consider how to rewrite the logic to follow this suggestion.
-@end ifset
-
-
 @node Wc Program
 @subsection Counting Things
 
@@ -28451,7 +28439,7 @@ the program is done:
         @}
         close(input[stackptr])
     @}
-@}'  # close quote ends `expand_prog' variable
+@}'  # closing single quote ends `expand_prog' variable
 
 processed_program=$(gawk -- "$expand_prog" /dev/stdin << EOF
 $program
@@ -31152,7 +31140,7 @@ BEGIN @{
 @item
 Mark all translatable strings with a leading underscore (@samp{_})
 character.  It @emph{must} be adjacent to the opening
-quote of the string.  For example:
+double quote of the string.  For example:
 
 @example
 print _"hello, world"

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

commit d3a2af02415fcef6e45ff4fa748b4b85eb458b80
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Thu Nov 16 20:35:35 2023 +0200

    Small doc fix.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index dcf14da4..4fedbc55 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2023-11-16         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * gawk.texi (POSIX/GNU): Mention namespaces and `::'.
+       Thanks to J Naman, <gawker@703n.com> for the report.
+
 2023-11-05         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawk.1: Various fixes and corrections. Thanks to
diff --git a/doc/gawk.info b/doc/gawk.info
index 86937ddd..e12a6672 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -30388,6 +30388,9 @@ current version of ‘gawk’.
         − Output with ‘print’ and ‘printf’ need not be fatal (*note
           Nonfatal::)
 
+        − Namespaces and the use of ‘::’ to designate an identifier
+          within a namespace (*note Namespaces::).
+
    • New keywords:
 
         − The ‘BEGINFILE’ and ‘ENDFILE’ special patterns (*note
@@ -36591,7 +36594,7 @@ Index
 * AWKLIBPATH environment variable <4>:   Creating Arrays.     (line 129)
 * AWKLIBPATH environment variable <5>:   Using Internal File Ops.
                                                               (line  44)
-* AWKLIBPATH environment variable <6>:   POSIX/GNU.           (line 108)
+* AWKLIBPATH environment variable <6>:   POSIX/GNU.           (line 111)
 * AWKLIBPATH environment variable <7>:   Distribution contents.
                                                               (line 192)
 * AWKLIBPATH environment variable <8>:   Shell Startup Files. (line   6)
@@ -36601,7 +36604,7 @@ Index
 * AWKPATH environment variable <3>:      Igawk Program.       (line  12)
 * AWKPATH environment variable <4>:      Igawk Program.       (line 211)
 * AWKPATH environment variable <5>:      Debugger Invocation. (line  16)
-* AWKPATH environment variable <6>:      POSIX/GNU.           (line 105)
+* AWKPATH environment variable <6>:      POSIX/GNU.           (line 108)
 * AWKPATH environment variable <7>:      Feature History.     (line  11)
 * AWKPATH environment variable <8>:      Distribution contents.
                                                               (line 192)
@@ -37467,7 +37470,7 @@ Index
 * environment variables, AWKLIBPATH <4>: Creating Arrays.     (line 129)
 * environment variables, AWKLIBPATH <5>: Using Internal File Ops.
                                                               (line  44)
-* environment variables, AWKLIBPATH <6>: POSIX/GNU.           (line 108)
+* environment variables, AWKLIBPATH <6>: POSIX/GNU.           (line 111)
 * environment variables, AWKLIBPATH <7>: Distribution contents.
                                                               (line 192)
 * environment variables, AWKLIBPATH <8>: Shell Startup Files. (line   6)
@@ -37477,7 +37480,7 @@ Index
 * environment variables, AWKPATH <3>:    Igawk Program.       (line  12)
 * environment variables, AWKPATH <4>:    Igawk Program.       (line 211)
 * environment variables, AWKPATH <5>:    Debugger Invocation. (line  16)
-* environment variables, AWKPATH <6>:    POSIX/GNU.           (line 105)
+* environment variables, AWKPATH <6>:    POSIX/GNU.           (line 108)
 * environment variables, AWKPATH <7>:    Feature History.     (line  11)
 * environment variables, AWKPATH <8>:    Distribution contents.
                                                               (line 192)
@@ -40253,80 +40256,80 @@ Node: SVR41267333
 Node: POSIX1268865
 Node: BTL1270290
 Node: POSIX/GNU1271057
-Node: Feature History1277586
-Node: Common Extensions1297388
-Node: Ranges and Locales1298863
-Ref: Ranges and Locales-Footnote-11303648
-Ref: Ranges and Locales-Footnote-21303675
-Ref: Ranges and Locales-Footnote-31303910
-Node: Contributors1304133
-Node: History summary1310324
-Node: Installation1311766
-Node: Gawk Distribution1312730
-Node: Getting1313222
-Node: Extracting1314221
-Node: Distribution contents1315927
-Node: Unix Installation1324001
-Node: Quick Installation1324821
-Node: Compiling with MPFR1327361
-Node: Shell Startup Files1328067
-Node: Additional Configuration Options1329224
-Node: Configuration Philosophy1331607
-Node: Compiling from Git1334107
-Node: Building the Documentation1334666
-Node: Non-Unix Installation1336078
-Node: PC Installation1336554
-Node: PC Binary Installation1337423
-Node: PC Compiling1338316
-Node: PC Using1339494
-Node: Cygwin1343210
-Node: MSYS1344462
-Node: OpenVMS Installation1345088
-Node: OpenVMS Compilation1345769
-Ref: OpenVMS Compilation-Footnote-11347252
-Node: OpenVMS Dynamic Extensions1347310
-Node: OpenVMS Installation Details1348946
-Node: OpenVMS Running1351377
-Node: OpenVMS GNV1355514
-Node: Bugs1356269
-Node: Bug definition1357189
-Node: Bug address1360790
-Node: Usenet1364359
-Node: Performance bugs1365572
-Node: Asking for help1368588
-Node: Maintainers1370575
-Node: Other Versions1371602
-Node: Installation summary1381206
-Node: Notes1382588
-Node: Compatibility Mode1383398
-Node: Additions1384220
-Node: Accessing The Source1385165
-Node: Adding Code1386696
-Node: New Ports1393807
-Node: Derived Files1398310
-Ref: Derived Files-Footnote-11404121
-Ref: Derived Files-Footnote-21404156
-Ref: Derived Files-Footnote-31404767
-Node: Future Extensions1404881
-Node: Implementation Limitations1405551
-Node: Extension Design1406793
-Node: Old Extension Problems1407953
-Ref: Old Extension Problems-Footnote-11409525
-Node: Extension New Mechanism Goals1409586
-Ref: Extension New Mechanism Goals-Footnote-11413056
-Node: Extension Other Design Decisions1413257
-Node: Extension Future Growth1415454
-Node: Notes summary1416074
-Node: Basic Concepts1417284
-Node: Basic High Level1417969
-Ref: figure-general-flow1418251
-Ref: figure-process-flow1418953
-Ref: Basic High Level-Footnote-11422323
-Node: Basic Data Typing1422512
-Node: Glossary1425920
-Node: Copying1458799
-Node: GNU Free Documentation License1496357
-Node: Index1521480
+Node: Feature History1277712
+Node: Common Extensions1297514
+Node: Ranges and Locales1298989
+Ref: Ranges and Locales-Footnote-11303774
+Ref: Ranges and Locales-Footnote-21303801
+Ref: Ranges and Locales-Footnote-31304036
+Node: Contributors1304259
+Node: History summary1310450
+Node: Installation1311892
+Node: Gawk Distribution1312856
+Node: Getting1313348
+Node: Extracting1314347
+Node: Distribution contents1316053
+Node: Unix Installation1324127
+Node: Quick Installation1324947
+Node: Compiling with MPFR1327487
+Node: Shell Startup Files1328193
+Node: Additional Configuration Options1329350
+Node: Configuration Philosophy1331733
+Node: Compiling from Git1334233
+Node: Building the Documentation1334792
+Node: Non-Unix Installation1336204
+Node: PC Installation1336680
+Node: PC Binary Installation1337549
+Node: PC Compiling1338442
+Node: PC Using1339620
+Node: Cygwin1343336
+Node: MSYS1344588
+Node: OpenVMS Installation1345214
+Node: OpenVMS Compilation1345895
+Ref: OpenVMS Compilation-Footnote-11347378
+Node: OpenVMS Dynamic Extensions1347436
+Node: OpenVMS Installation Details1349072
+Node: OpenVMS Running1351503
+Node: OpenVMS GNV1355640
+Node: Bugs1356395
+Node: Bug definition1357315
+Node: Bug address1360916
+Node: Usenet1364485
+Node: Performance bugs1365698
+Node: Asking for help1368714
+Node: Maintainers1370701
+Node: Other Versions1371728
+Node: Installation summary1381332
+Node: Notes1382714
+Node: Compatibility Mode1383524
+Node: Additions1384346
+Node: Accessing The Source1385291
+Node: Adding Code1386822
+Node: New Ports1393933
+Node: Derived Files1398436
+Ref: Derived Files-Footnote-11404247
+Ref: Derived Files-Footnote-21404282
+Ref: Derived Files-Footnote-31404893
+Node: Future Extensions1405007
+Node: Implementation Limitations1405677
+Node: Extension Design1406919
+Node: Old Extension Problems1408079
+Ref: Old Extension Problems-Footnote-11409651
+Node: Extension New Mechanism Goals1409712
+Ref: Extension New Mechanism Goals-Footnote-11413182
+Node: Extension Other Design Decisions1413383
+Node: Extension Future Growth1415580
+Node: Notes summary1416200
+Node: Basic Concepts1417410
+Node: Basic High Level1418095
+Ref: figure-general-flow1418377
+Ref: figure-process-flow1419079
+Ref: Basic High Level-Footnote-11422449
+Node: Basic Data Typing1422638
+Node: Glossary1426046
+Node: Copying1458925
+Node: GNU Free Documentation License1496483
+Node: Index1521606
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 3766dd54..4ce7fc0e 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -40384,6 +40384,11 @@ Directories on the command line produce a warning and 
are skipped
 @item
 Output with @code{print} and @code{printf} need not be fatal
 (@pxref{Nonfatal})
+
+@item
+Namespaces and the use of @code{::} to designate an identifier
+within a namespace
+(@pxref{Namespaces}).
 @end itemize
 
 @item

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

Summary of changes:
 awklib/eg/lib/tocsv.awk |    4 +-
 awklib/eg/prog/igawk.sh |    2 +-
 doc/ChangeLog           |   12 +
 doc/gawk.info           | 1294 ++++++++++++++++++++++++-----------------------
 doc/gawk.texi           |   89 ++--
 5 files changed, 707 insertions(+), 694 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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