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-5597-g1c41d22b


From: Arnold Robbins
Subject: [SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5597-g1c41d22b
Date: Wed, 22 Jan 2025 05:56:53 -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  1c41d22bf105677665435cd911e184fa8ffe22f3 (commit)
      from  eec94593bd90134b753338f752c04892a6276a8e (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=1c41d22bf105677665435cd911e184fa8ffe22f3

commit 1c41d22bf105677665435cd911e184fa8ffe22f3
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Wed Jan 22 12:56:27 2025 +0200

    Documentation updates: escape sequences, PMA stuff.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index ac412d55..595d3c9d 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,9 +1,17 @@
-2025-01-21         Arnold D. Robbins     <arnold@skeeve.com>
+2025-01-22         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawk.texi (Persistent Memory): Note that if a Linux system
        uses ASLR, it can be worked around with setarch -R. Thanks
        to Terence Kelly for the info.
 
+       The following changes motivicated by Alexander Lasky
+       <ALEXANDER.LASKY@sydneywater.com.au>.
+
+       (Nonconstant Fields): Note that string expressions that evaluate
+       to zero also yield $0.
+       (Escape Sequences, Bracket Expressions): Add some clarifications
+       about escape sequences in general and in bracket expressions.
+
 2025-01-10         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawk.texi (UPDATE-MONTH): Update.
diff --git a/doc/gawk.info b/doc/gawk.info
index e6bab6c1..191b968b 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -3803,7 +3803,10 @@ be a regexp operator.  For example, ‘/a\+b/’ matches 
the three
 characters ‘a+b’.
 
    For complete portability, do not use a backslash before any character
-not shown in the previous list or that is not an operator.
+not shown in the previous list or that is not a regular expression
+operator.  (The 2024 POSIX standard explictly lists the operators that
+can be escaped, leaving it undefined as to what happens for any other
+escaped character.  But the bottom line is as described previously.)
 
                   Backslash Before Regular Characters
 
@@ -4141,8 +4144,10 @@ expression, put a ‘\’ in front of it.  For example:
      [d\]]
 
 matches either ‘d’ or ‘]’.  Additionally, if you place ‘]’ right 
after
-the opening ‘[’, the closing bracket is treated as one of the characters
-to be matched.
+the opening ‘[’ (‘[]d]’), the closing bracket is treated as one of the
+characters to be matched.  Inside bracket expressions, it's not
+necessary to escape the other regular expression operators, and for full
+portability you should not.
 
    The treatment of ‘\’ in bracket expressions is compatible with other
 ‘awk’ implementations and is also mandated by POSIX.(1) The regular
@@ -4982,11 +4987,15 @@ for every line of the file ‘mail-list’.  (All of 
the ‘awk’ operators are
 listed, in order of decreasing precedence, in *note Precedence::.)
 
    If the field number you compute is zero, you get the entire record.
-Thus, ‘$(2-2)’ has the same value as ‘$0’.  Negative field numbers are
-not allowed; trying to reference one usually terminates the program.
-(The POSIX standard does not define what happens when you reference a
-negative field number.  ‘gawk’ notices this and terminates your program.
-Other ‘awk’ implementations may behave differently.)
+Thus, ‘$(2-2)’ has the same value as ‘$0’.  Similarly, string
+expressions that evaluate to zero also yield the entire record.  For
+example, ‘$"answer"’, ‘$"0foo"’, or even ‘$("foo" "bar")’.
+
+   Negative field numbers are not allowed; trying to reference one
+usually terminates the program.  (The POSIX standard does not define
+what happens when you reference a negative field number.  ‘gawk’ notices
+this and terminates your program.  Other ‘awk’ implementations may
+behave differently.)
 
    As mentioned in *note Fields::, ‘awk’ stores the current record's
 number of fields in the built-in variable ‘NF’ (also *note Built-in
@@ -22686,10 +22695,10 @@ File: gawk.info,  Node: Persistent Memory,  Next: 
Extension Philosophy,  Prev: P
 =================================
 
 Starting with version 5.2, ‘gawk’ supports “persistent memory”.  This
-_experimental_ feature stores the values of all of ‘gawk’'s variables,
-arrays and user-defined functions in a persistent heap, which resides in
-a file in the filesystem.  When persistent memory is not in use (the
-normal case), ‘gawk’'s data resides in ephemeral system memory.
+feature stores the values of all of ‘gawk’'s variables, arrays and
+user-defined functions in a persistent heap, which resides in a file in
+the filesystem.  When persistent memory is not in use (the normal case),
+‘gawk’'s data resides in ephemeral system memory.
 
    Persistent memory is enabled on certain 64-bit systems supporting the
 ‘mmap()’ and ‘munmap()’ system calls.  ‘gawk’ must be compiled as a
@@ -22878,8 +22887,8 @@ otherwise undocumented.
    The prototype only supported persistent data; it did not support
 persistent functions.
 
-   As noted earlier, support for persistent memory is _experimental_.
-If it becomes burdensome,(1) then the feature will be removed.
+     NOTE: The maintainer reserves the right to remove the persistent
+     memory feature should it become burdensome.(1)
 
    ---------- Footnotes ----------
 
@@ -36525,7 +36534,7 @@ Index
 * \ (backslash), in escape sequences:    Escape Sequences.    (line   6)
 * \ (backslash), in escape sequences <1>: Escape Sequences.   (line 119)
 * \ (backslash), in escape sequences, POSIX and: Escape Sequences.
-                                                              (line 123)
+                                                              (line 126)
 * \ (backslash), in regexp constants:    Computed Regexps.    (line  30)
 * \ (backslash), in shell commands:      Quoting.             (line  48)
 * \ (backslash), regexp operator:        Regexp Operator Details.
@@ -36731,7 +36740,7 @@ Index
 * artificial intelligence, gawk and:     Distribution contents.
                                                               (line  64)
 * ASCII:                                 Escape Sequences.    (line  31)
-* ASCII <1>:                             Bracket Expressions. (line  79)
+* ASCII <1>:                             Bracket Expressions. (line  81)
 * ASCII <2>:                             Scalar Constants.    (line  20)
 * ASCII <3>:                             Ordinal Functions.   (line  45)
 * ASCII <4>:                             Alarm Program.       (line  20)
@@ -36946,7 +36955,7 @@ Index
 * backslash (\), in escape sequences:    Escape Sequences.    (line   6)
 * backslash (\), in escape sequences <1>: Escape Sequences.   (line 119)
 * backslash (\), in escape sequences, POSIX and: Escape Sequences.
-                                                              (line 123)
+                                                              (line 126)
 * backslash (\), in regexp constants:    Computed Regexps.    (line  30)
 * backslash (\), in shell commands:      Quoting.             (line  48)
 * backslash (\), regexp operator:        Regexp Operator Details.
@@ -37022,17 +37031,17 @@ Index
                                                               (line  52)
 * bracket expressions <1>:               Bracket Expressions. (line   6)
 * bracket expressions, character classes: Bracket Expressions.
-                                                              (line  40)
+                                                              (line  42)
 * bracket expressions, character lists:  Bracket Expressions. (line   6)
 * bracket expressions, collating elements: Bracket Expressions.
-                                                              (line  90)
+                                                              (line  92)
 * bracket expressions, collating symbols: Bracket Expressions.
-                                                              (line  97)
+                                                              (line  99)
 * bracket expressions, complemented:     Regexp Operator Details.
                                                               (line  60)
 * bracket expressions, equivalence classes: Bracket Expressions.
-                                                              (line 103)
-* bracket expressions, non-ASCII:        Bracket Expressions. (line  90)
+                                                              (line 105)
+* bracket expressions, non-ASCII:        Bracket Expressions. (line  92)
 * bracket expressions, range expressions: Bracket Expressions.
                                                               (line   6)
 * break debugger command:                Breakpoint Control.  (line  11)
@@ -37054,7 +37063,7 @@ Index
 * Brennan, Michael <5>:                  Other Versions.      (line   6)
 * Brennan, Michael <6>:                  Other Versions.      (line  45)
 * Brian Kernighan's awk:                 When.                (line  21)
-* Brian Kernighan's awk <1>:             Escape Sequences.    (line 128)
+* Brian Kernighan's awk <1>:             Escape Sequences.    (line 131)
 * Brian Kernighan's awk <2>:             GNU Regexp Operators.
                                                               (line 105)
 * Brian Kernighan's awk <3>:             gawk split records.  (line  70)
@@ -37171,8 +37180,8 @@ Index
                                                               (line  92)
 * Collado, Manuel <2>:                   Splitting By Content.
                                                               (line 133)
-* collating elements:                    Bracket Expressions. (line  90)
-* collating symbols:                     Bracket Expressions. (line  97)
+* collating elements:                    Bracket Expressions. (line  92)
+* collating symbols:                     Bracket Expressions. (line  99)
 * Colombo, Antonio:                      Acknowledgments.     (line  60)
 * Colombo, Antonio <1>:                  Contributors.        (line 148)
 * colon (:), :: namespace separator:     Qualified Names.     (line   6)
@@ -37357,7 +37366,7 @@ Index
 * dark corner, empty programs:           Command Line.        (line  20)
 * dark corner, escape sequences:         Other Arguments.     (line  46)
 * dark corner, escape sequences, for metacharacters: Escape Sequences.
-                                                              (line 160)
+                                                              (line 163)
 * dark corner, exit statement:           Exit Statement.      (line  30)
 * dark corner, field separators:         Full Line Fields.    (line  22)
 * dark corner, FILENAME variable:        Getline Notes.       (line  19)
@@ -37696,7 +37705,7 @@ Index
 * effective user ID of gawk user:        Auto-set.            (line 180)
 * Eggert, Paul:                          Interval Expressions.
                                                               (line  35)
-* egrep utility:                         Bracket Expressions. (line  34)
+* egrep utility:                         Bracket Expressions. (line  36)
 * egrep utility <1>:                     Egrep Program.       (line   6)
 * egrep.awk program:                     Egrep Program.       (line  76)
 * elements in arrays:                    Reference to Elements.
@@ -37836,7 +37845,7 @@ Index
 * equals sign (=), == operator:          Comparison Operators.
                                                               (line  11)
 * equals sign (=), == operator <1>:      Precedence.          (line  64)
-* EREs (Extended Regular Expressions):   Bracket Expressions. (line  34)
+* EREs (Extended Regular Expressions):   Bracket Expressions. (line  36)
 * ERRNO variable:                        Auto-set.            (line  87)
 * ERRNO variable <1>:                    TCP/IP Networking.   (line  54)
 * ERRNO variable, with BEGINFILE pattern: BEGINFILE/ENDFILE.  (line  32)
@@ -37896,7 +37905,7 @@ Index
                                                               (line   9)
 * expressions, conditional:              Conditional Exp.     (line   6)
 * expressions, selecting:                Conditional Exp.     (line   6)
-* Extended Regular Expressions (EREs):   Bracket Expressions. (line  34)
+* Extended Regular Expressions (EREs):   Bracket Expressions. (line  36)
 * extension API:                         Extension API Description.
                                                               (line   6)
 * extension API, informational variables: Extension API Informational 
Variables.
@@ -38186,7 +38195,7 @@ Index
 * gawk, awk and <1>:                     This Manual.         (line  14)
 * gawk, bitwise operations in:           Bitwise Functions.   (line  40)
 * gawk, break statement in:              Break Statement.     (line  51)
-* gawk, character classes and:           Bracket Expressions. (line 112)
+* gawk, character classes and:           Bracket Expressions. (line 114)
 * gawk, coding style in:                 Adding Code.         (line  42)
 * gawk, command-line options, regular expressions and: GNU Regexp Operators.
                                                               (line  93)
@@ -38203,8 +38212,8 @@ Index
 * gawk, ERRNO variable in <2>:           BEGINFILE/ENDFILE.   (line  32)
 * gawk, ERRNO variable in <3>:           Auto-set.            (line  87)
 * gawk, ERRNO variable in <4>:           TCP/IP Networking.   (line  54)
-* gawk, escape sequences:                Escape Sequences.    (line 136)
-* gawk, escape sequences <1>:            Escape Sequences.    (line 136)
+* gawk, escape sequences:                Escape Sequences.    (line 139)
+* gawk, escape sequences <1>:            Escape Sequences.    (line 139)
 * gawk, extensions, disabling:           Options.             (line 308)
 * gawk, features, adding:                Adding Code.         (line   6)
 * gawk, features, advanced:              Advanced Features.   (line   6)
@@ -38522,7 +38531,7 @@ Index
                                                               (line  19)
 * internationalization, localization <2>: I18N and L10N.      (line   6)
 * internationalization, localization, character classes: Bracket Expressions.
-                                                              (line 112)
+                                                              (line 114)
 * internationalization, localization, currency symbols: Explaining gettext.
                                                               (line 104)
 * internationalization, localization, gawk and: Internationalization.
@@ -38719,7 +38728,7 @@ Index
                                                               (line   9)
 * matching, leftmost longest:            Multiple Line.       (line  26)
 * matching, null strings:                String Functions.    (line 574)
-* mawk utility:                          Escape Sequences.    (line 136)
+* mawk utility:                          Escape Sequences.    (line 139)
 * mawk utility <1>:                      Getline/Pipe.        (line  62)
 * mawk utility <2>:                      Concatenation.       (line  36)
 * mawk utility <3>:                      Nextfile Statement.  (line  47)
@@ -38737,7 +38746,7 @@ Index
 * message object files, specifying directory of <1>: Programmer i18n.
                                                               (line  48)
 * messages from extensions:              Printing Messages.   (line   6)
-* metacharacters, escape sequences for:  Escape Sequences.    (line 154)
+* metacharacters, escape sequences for:  Escape Sequences.    (line 157)
 * metacharacters, in regular expressions: Regexp Operators.   (line   6)
 * minimum precision required by MPFR library: Auto-set.       (line 279)
 * Minshall, Greg:                        Getopt Function.     (line 105)
@@ -39029,7 +39038,7 @@ Index
 * portability, ARGV variable:            Executable Scripts.  (line  55)
 * portability, backslash continuation and: Statements/Lines.  (line  30)
 * portability, backslash in escape sequences: Escape Sequences.
-                                                              (line 123)
+                                                              (line 126)
 * portability, close() function and:     Close Files And Pipes.
                                                               (line  85)
 * portability, data files as single record: gawk split records.
@@ -39072,13 +39081,13 @@ Index
 * POSIX awk, | I/O operator and:         Getline/Pipe.        (line  56)
 * POSIX awk, arithmetic operators and:   Arithmetic Ops.      (line  30)
 * POSIX awk, backslashes in string constants: Escape Sequences.
-                                                              (line 123)
+                                                              (line 126)
 * POSIX awk, BEGIN/END patterns:         I/O And BEGIN/END.   (line  15)
-* POSIX awk, bracket expressions and:    Bracket Expressions. (line  34)
+* POSIX awk, bracket expressions and:    Bracket Expressions. (line  36)
 * POSIX awk, bracket expressions and, character classes: Bracket Expressions.
-                                                              (line  40)
+                                                              (line  42)
 * POSIX awk, bracket expressions and, character classes <1>: Bracket 
Expressions.
-                                                              (line 112)
+                                                              (line 114)
 * POSIX awk, break statement and:        Break Statement.     (line  51)
 * POSIX awk, changes in awk versions:    POSIX.               (line   6)
 * POSIX awk, continue statement and:     Continue Statement.  (line  44)
@@ -39527,7 +39536,7 @@ Index
 * sidebar, Backreferences Are Not Supported: GNU Regexp Operators.
                                                               (line  72)
 * sidebar, Backslash Before Regular Characters: Escape Sequences.
-                                                              (line 122)
+                                                              (line 125)
 * sidebar, Beware The Smoke and Mirrors!: Bitwise Functions.  (line 127)
 * sidebar, Carriage-Return-Line-Feed Line Endings In CSV Files: Comma 
Separated Fields.
                                                               (line  45)
@@ -39539,7 +39548,7 @@ Index
 * sidebar, Controlling Output Buffering with system(): I/O Functions.
                                                               (line 165)
 * sidebar, Escape Sequences for Metacharacters: Escape Sequences.
-                                                              (line 153)
+                                                              (line 156)
 * sidebar, FS and IGNORECASE:            Field Splitting Summary.
                                                               (line  41)
 * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions.
@@ -39797,7 +39806,7 @@ Index
                                                               (line  37)
 * troubleshooting, awk uses FS not IFS:  Field Separators.    (line  30)
 * troubleshooting, backslash before nonspecial character: Escape Sequences.
-                                                              (line 124)
+                                                              (line 127)
 * 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.
@@ -39857,7 +39866,7 @@ Index
 * Unix:                                  Glossary.            (line 747)
 * Unix, awk scripts and:                 Executable Scripts.  (line   6)
 * Unix awk, backslashes in escape sequences: Escape Sequences.
-                                                              (line 136)
+                                                              (line 139)
 * Unix awk, close() function and:        Close Return Value.  (line   6)
 * Unix awk, password files, field separators and: Command Line Field Separator.
                                                               (line  62)
@@ -40080,569 +40089,569 @@ Node: Invoking Summary169841
 Node: Regexp172866
 Node: Regexp Usage174360
 Node: Escape Sequences176461
-Ref: Escape Sequences-Footnote-1183996
-Node: Regexp Operators184074
-Node: Regexp Operator Details184567
-Ref: Regexp Operator Details-Footnote-1192578
-Node: Interval Expressions192737
-Ref: Interval Expressions-Footnote-1195004
-Node: Bracket Expressions195102
-Ref: table-char-classes197699
-Ref: Bracket Expressions-Footnote-1201233
-Node: Leftmost Longest201502
-Node: Computed Regexps202858
-Node: GNU Regexp Operators206373
-Node: Case-sensitivity211470
-Ref: Case-sensitivity-Footnote-1214420
-Ref: Case-sensitivity-Footnote-2214663
-Node: Regexp Summary214775
-Node: Reading Files216297
-Node: Records218616
-Node: awk split records219891
-Node: gawk split records224773
-Ref: gawk split records-Footnote-1230061
-Node: Fields230098
-Ref: Fields-Footnote-1233014
-Node: Nonconstant Fields233134
-Ref: Nonconstant Fields-Footnote-1235442
-Node: Changing Fields235658
-Node: Field Separators241956
-Node: Default Field Splitting244825
-Node: Regexp Field Splitting245967
-Node: Single Character Fields249796
-Node: Comma Separated Fields250885
-Ref: table-csv-examples252295
-Node: Command Line Field Separator254600
-Node: Full Line Fields257976
-Ref: Full Line Fields-Footnote-1259554
-Ref: Full Line Fields-Footnote-2259600
-Node: Field Splitting Summary259705
-Node: Constant Size262022
-Node: Fixed width data262766
-Node: Skipping intervening266281
-Node: Allowing trailing data267083
-Node: Fields with fixed data268144
-Node: Splitting By Content269766
-Ref: Splitting By Content-Footnote-1275267
-Node: FS versus FPAT275432
-Node: Testing field creation276615
-Node: Multiple Line278389
-Node: Getline284858
-Node: Plain Getline287446
-Node: Getline/Variable290094
-Node: Getline/File291290
-Node: Getline/Variable/File292738
-Ref: Getline/Variable/File-Footnote-1294383
-Node: Getline/Pipe294479
-Node: Getline/Variable/Pipe297287
-Node: Getline/Coprocess298470
-Node: Getline/Variable/Coprocess299793
-Node: Getline Notes300559
-Node: Getline Summary304536
-Ref: table-getline-variants304980
-Node: Read Timeout305884
-Ref: Read Timeout-Footnote-1309846
-Node: Retrying Input309904
-Node: Command-line directories311171
-Node: Input Summary312109
-Node: Input Exercises315489
-Node: Printing315927
-Node: Print317870
-Node: Print Examples319371
-Node: Output Separators322216
-Node: OFMT324323
-Node: Printf326036
-Node: Basic Printf326841
-Node: Control Letters328476
-Node: Format Modifiers333922
-Node: Printf Examples340194
-Node: Redirection342735
-Node: Special FD350507
-Ref: Special FD-Footnote-1353805
-Node: Special Files353883
-Node: Other Inherited Files354512
-Node: Special Network355577
-Node: Special Caveats356465
-Node: Close Files And Pipes357448
-Ref: Close Files And Pipes-Footnote-1363572
-Node: Close Return Value363720
-Ref: table-close-pipe-return-values364991
-Ref: Close Return Value-Footnote-1365822
-Node: Noflush365978
-Node: Nonfatal367486
-Node: Output Summary369901
-Node: Output Exercises371187
-Node: Expressions371878
-Node: Values373078
-Node: Constants373756
-Node: Scalar Constants374451
-Ref: Scalar Constants-Footnote-1377027
-Ref: Scalar Constants-Footnote-2377277
-Node: Nondecimal-numbers377357
-Node: Regexp Constants380470
-Node: Using Constant Regexps381016
-Node: Standard Regexp Constants381662
-Node: Strong Regexp Constants384958
-Node: Variables388801
-Node: Using Variables389466
-Node: Assignment Options391440
-Node: Conversion393991
-Node: Strings And Numbers394523
-Ref: Strings And Numbers-Footnote-1397733
-Node: Locale influences conversions397842
-Ref: table-locale-affects400680
-Node: All Operators401322
-Node: Arithmetic Ops401963
-Node: Concatenation404786
-Ref: Concatenation-Footnote-1407722
-Node: Assignment Ops407841
-Ref: table-assign-ops412968
-Node: Increment Ops414349
-Node: Truth Values and Conditions417940
-Node: Truth Values419034
-Node: Typing and Comparison420114
-Node: Variable Typing420946
-Ref: Variable Typing-Footnote-1427590
-Ref: Variable Typing-Footnote-2427670
-Node: Comparison Operators427751
-Ref: table-relational-ops428178
-Node: POSIX String Comparison431854
-Ref: POSIX String Comparison-Footnote-1433611
-Ref: POSIX String Comparison-Footnote-2433754
-Node: Boolean Ops433839
-Ref: Boolean Ops-Footnote-1438513
-Node: Conditional Exp438609
-Node: Function Calls440389
-Node: Precedence444336
-Node: Locales448199
-Node: Expressions Summary449875
-Node: Patterns and Actions452530
-Node: Pattern Overview453666
-Node: Regexp Patterns455391
-Node: Expression Patterns455937
-Node: Ranges459842
-Node: BEGIN/END463016
-Node: Using BEGIN/END463825
-Ref: Using BEGIN/END-Footnote-1466733
-Node: I/O And BEGIN/END466843
-Node: BEGINFILE/ENDFILE469325
-Node: Empty472755
-Node: Using Shell Variables473072
-Node: Action Overview475408
-Node: Statements477844
-Node: If Statement479740
-Node: While Statement481303
-Node: Do Statement483391
-Node: For Statement484575
-Node: Switch Statement487930
-Node: Break Statement490479
-Node: Continue Statement492671
-Node: Next Statement494602
-Node: Nextfile Statement497081
-Node: Exit Statement499935
-Node: Built-in Variables502462
-Node: User-modified503639
-Node: Auto-set511846
-Ref: Auto-set-Footnote-1529930
-Ref: Auto-set-Footnote-2530148
-Node: ARGC and ARGV530204
-Node: Pattern Action Summary534633
-Node: Arrays537239
-Node: Array Basics538612
-Node: Array Intro539460
-Ref: figure-array-elements541471
-Ref: Array Intro-Footnote-1544324
-Node: Reference to Elements544456
-Node: Assigning Elements546976
-Node: Array Example547471
-Node: Scanning an Array549433
-Node: Controlling Scanning552528
-Ref: Controlling Scanning-Footnote-1559163
-Node: Numeric Array Subscripts559487
-Node: Uninitialized Subscripts561755
-Node: Delete563428
-Ref: Delete-Footnote-1566241
-Node: Multidimensional566298
-Node: Multiscanning569501
-Node: Arrays of Arrays571168
-Node: Arrays Summary575472
-Node: Functions577659
-Node: Built-in578861
-Node: Calling Built-in580050
-Node: Boolean Functions582090
-Node: Numeric Functions582652
-Ref: Numeric Functions-Footnote-1586837
-Ref: Numeric Functions-Footnote-2587520
-Ref: Numeric Functions-Footnote-3587572
-Node: String Functions587848
-Ref: String Functions-Footnote-1614299
-Ref: String Functions-Footnote-2614431
-Ref: String Functions-Footnote-3614687
-Node: Gory Details614774
-Ref: table-sub-escapes616783
-Ref: table-sub-proposed618335
-Ref: table-posix-sub619809
-Ref: table-gensub-escapes621461
-Ref: Gory Details-Footnote-1622289
-Node: I/O Functions622443
-Ref: table-system-return-values629120
-Ref: I/O Functions-Footnote-1631282
-Ref: I/O Functions-Footnote-2631430
-Node: Time Functions631550
-Ref: Time Functions-Footnote-1643262
-Ref: Time Functions-Footnote-2643330
-Ref: Time Functions-Footnote-3643492
-Ref: Time Functions-Footnote-4643603
-Ref: Time Functions-Footnote-5643719
-Ref: Time Functions-Footnote-6643946
-Node: Bitwise Functions644224
-Ref: table-bitwise-ops644822
-Ref: Bitwise Functions-Footnote-1651064
-Ref: Bitwise Functions-Footnote-2651241
-Node: Type Functions651436
-Node: I18N Functions653607
-Node: User-defined655342
-Node: Definition Syntax656088
-Ref: Definition Syntax-Footnote-1661943
-Node: Function Example662018
-Ref: Function Example-Footnote-1664997
-Node: Function Calling665019
-Node: Calling A Function665611
-Node: Variable Scope666581
-Node: Pass By Value/Reference669635
-Node: Function Caveats672363
-Ref: Function Caveats-Footnote-1674454
-Node: Return Statement674574
-Node: Dynamic Typing677606
-Node: Dynamic Typing Awk678188
-Node: Dynamic Typing Gawk680326
-Node: Shadowed Variables683696
-Node: Indirect Calls686044
-Node: Functions Summary697185
-Node: Library Functions700151
-Ref: Library Functions-Footnote-1703699
-Ref: Library Functions-Footnote-2703844
-Node: Library Names704019
-Ref: Library Names-Footnote-1707790
-Ref: Library Names-Footnote-2708017
-Node: General Functions708111
-Node: Strtonum Function709381
-Node: Assert Function712463
-Node: Round Function716018
-Node: Cliff Random Function717590
-Node: Ordinal Functions718615
-Ref: Ordinal Functions-Footnote-1721718
-Ref: Ordinal Functions-Footnote-2721970
-Node: Join Function722184
-Ref: Join Function-Footnote-1723982
-Node: Getlocaltime Function724186
-Node: Readfile Function727960
-Node: Shell Quoting729989
-Node: Isnumeric Function731445
-Node: To CSV Function732881
-Node: Data File Management734973
-Node: Filetrans Function735605
-Node: Rewind Function739881
-Node: File Checking741852
-Ref: File Checking-Footnote-1743218
-Node: Empty Files743423
-Node: Ignoring Assigns745486
-Node: Getopt Function747060
-Ref: Getopt Function-Footnote-1762878
-Node: Passwd Functions763090
-Ref: Passwd Functions-Footnote-1772225
-Node: Group Functions772313
-Ref: Group Functions-Footnote-1780437
-Node: Walking Arrays780648
-Node: Library Functions Summary783694
-Node: Library Exercises785114
-Node: Sample Programs785599
-Node: Running Examples786381
-Node: Clones787133
-Node: Cut Program788401
-Node: Egrep Program798825
-Node: Id Program808124
-Node: Split Program818216
-Ref: Split Program-Footnote-1828429
-Node: Tee Program828614
-Node: Uniq Program831520
-Node: Wc Program839380
-Node: Bytes vs. Characters839775
-Node: Using extensions841375
-Node: wc program842153
-Node: Miscellaneous Programs847146
-Node: Dupword Program848371
-Node: Alarm Program850420
-Node: Translate Program855323
-Ref: Translate Program-Footnote-1860032
-Node: Labels Program860310
-Ref: Labels Program-Footnote-1863745
-Node: Word Sorting863829
-Node: History Sorting868003
-Node: Extract Program870276
-Node: Simple Sed878529
-Node: Igawk Program881739
-Ref: Igawk Program-Footnote-1896949
-Ref: Igawk Program-Footnote-2897155
-Ref: Igawk Program-Footnote-3897285
-Node: Anagram Program897412
-Node: Signature Program900498
-Node: Programs Summary901749
-Node: Programs Exercises903003
-Ref: Programs Exercises-Footnote-1907832
-Node: Advanced Features907918
-Node: Nondecimal Data910399
-Node: Boolean Typed Values912029
-Node: Array Sorting913986
-Node: Controlling Array Traversal914715
-Ref: Controlling Array Traversal-Footnote-1923218
-Node: Array Sorting Functions923340
-Ref: Array Sorting Functions-Footnote-1929437
-Node: Two-way I/O929645
-Ref: Two-way I/O-Footnote-1937616
-Ref: Two-way I/O-Footnote-2937807
-Node: TCP/IP Networking937889
-Node: Profiling941057
-Node: Persistent Memory950727
-Ref: Persistent Memory-Footnote-1960830
-Node: Extension Philosophy960961
-Node: Advanced Features Summary962488
-Node: Internationalization964754
-Node: I18N and L10N966456
-Node: Explaining gettext967151
-Ref: Explaining gettext-Footnote-1973287
-Ref: Explaining gettext-Footnote-2973480
-Node: Programmer i18n973645
-Ref: Programmer i18n-Footnote-1978757
-Node: Translator i18n978806
-Node: String Extraction979636
-Ref: String Extraction-Footnote-1980812
-Node: Printf Ordering980910
-Ref: Printf Ordering-Footnote-1983768
-Node: I18N Portability983836
-Ref: I18N Portability-Footnote-1986396
-Node: I18N Example986463
-Ref: I18N Example-Footnote-1989857
-Ref: I18N Example-Footnote-2989930
-Node: Gawk I18N990047
-Node: I18N Summary990701
-Node: Debugger992098
-Node: Debugging993118
-Node: Debugging Concepts993567
-Node: Debugging Terms995384
-Node: Awk Debugging997987
-Ref: Awk Debugging-Footnote-1998960
-Node: Sample Debugging Session999096
-Node: Debugger Invocation999646
-Node: Finding The Bug1001271
-Node: List of Debugger Commands1007903
-Node: Breakpoint Control1009280
-Node: Debugger Execution Control1013102
-Node: Viewing And Changing Data1016576
-Node: Execution Stack1020310
-Node: Debugger Info1021991
-Node: Miscellaneous Debugger Commands1026286
-Node: Readline Support1031527
-Node: Limitations1032465
-Node: Debugging Summary1035089
-Node: Namespaces1036388
-Node: Global Namespace1037515
-Node: Qualified Names1038949
-Node: Default Namespace1039984
-Node: Changing The Namespace1040757
-Node: Naming Rules1042439
-Node: Internal Name Management1044394
-Node: Namespace Example1045464
-Node: Namespace And Features1048041
-Node: Namespace Summary1049496
-Node: Arbitrary Precision Arithmetic1051007
-Node: Computer Arithmetic1052526
-Ref: table-numeric-ranges1056451
-Ref: table-floating-point-ranges1056948
-Ref: Computer Arithmetic-Footnote-11057606
-Node: Math Definitions1057663
-Ref: table-ieee-formats1060695
-Node: MPFR features1061268
-Node: MPFR On Parole1061721
-Ref: MPFR On Parole-Footnote-11062562
-Node: MPFR Intro1062721
-Node: FP Math Caution1064406
-Ref: FP Math Caution-Footnote-11065478
-Node: Inexactness of computations1065852
-Node: Inexact representation1066883
-Node: Comparing FP Values1068264
-Node: Errors accumulate1069522
-Node: Strange values1070987
-Ref: Strange values-Footnote-11073641
-Node: Getting Accuracy1073746
-Node: Try To Round1076483
-Node: Setting precision1077390
-Ref: table-predefined-precision-strings1078095
-Node: Setting the rounding mode1079979
-Ref: table-gawk-rounding-modes1080361
-Ref: Setting the rounding mode-Footnote-11084413
-Node: Arbitrary Precision Integers1084598
-Ref: Arbitrary Precision Integers-Footnote-11087808
-Node: Checking for MPFR1087962
-Node: POSIX Floating Point Problems1089452
-Ref: POSIX Floating Point Problems-Footnote-11094272
-Node: Floating point summary1094310
-Node: Dynamic Extensions1096566
-Node: Extension Intro1098163
-Node: Plugin License1099465
-Node: Extension Mechanism Outline1100278
-Ref: figure-load-extension1100729
-Ref: figure-register-new-function1102307
-Ref: figure-call-new-function1103416
-Node: Extension API Description1105531
-Node: Extension API Functions Introduction1107260
-Ref: table-api-std-headers1109154
-Node: General Data Types1113595
-Ref: General Data Types-Footnote-11122741
-Node: Memory Allocation Functions1123044
-Ref: Memory Allocation Functions-Footnote-11127759
-Node: Constructor Functions1127858
-Node: API Ownership of MPFR and GMP Values1131759
-Node: Registration Functions1133312
-Node: Extension Functions1134016
-Node: Exit Callback Functions1139590
-Node: Extension Version String1140904
-Node: Input Parsers1141599
-Node: Output Wrappers1156218
-Node: Two-way processors1161060
-Node: Printing Messages1163413
-Ref: Printing Messages-Footnote-11164624
-Node: Updating ERRNO1164777
-Node: Requesting Values1165576
-Ref: table-value-types-returned1166329
-Node: Accessing Parameters1168388
-Node: Symbol Table Access1169669
-Node: Symbol table by name1170181
-Ref: Symbol table by name-Footnote-11173382
-Node: Symbol table by cookie1173514
-Ref: Symbol table by cookie-Footnote-11177783
-Node: Cached values1177847
-Ref: Cached values-Footnote-11181479
-Node: Array Manipulation1181636
-Ref: Array Manipulation-Footnote-11182735
-Node: Array Data Types1182772
-Ref: Array Data Types-Footnote-11185590
-Node: Array Functions1185686
-Node: Flattening Arrays1190715
-Node: Creating Arrays1197763
-Node: Redirection API1202605
-Node: Extension API Variables1205622
-Node: Extension Versioning1206345
-Ref: gawk-api-version1206774
-Node: Extension GMP/MPFR Versioning1208561
-Node: Extension API Informational Variables1210265
-Node: Extension API Boilerplate1211518
-Node: Changes from API V11215648
-Node: Finding Extensions1217280
-Node: Extension Example1217855
-Node: Internal File Description1218677
-Node: Internal File Ops1222969
-Ref: Internal File Ops-Footnote-11234519
-Node: Using Internal File Ops1234667
-Ref: Using Internal File Ops-Footnote-11237100
-Node: Extension Samples1237378
-Node: Extension Sample File Functions1238947
-Node: Extension Sample Fnmatch1247072
-Node: Extension Sample Fork1248667
-Node: Extension Sample Inplace1249943
-Node: Extension Sample Ord1254045
-Node: Extension Sample Readdir1254921
-Ref: table-readdir-file-types1255710
-Node: Extension Sample Revout1257066
-Node: Extension Sample Rev2way1257663
-Node: Extension Sample Read write array1258415
-Node: Extension Sample Readfile1261689
-Node: Extension Sample Time1262820
-Node: Extension Sample API Tests1264820
-Node: gawkextlib1265328
-Node: Extension summary1268361
-Node: Extension Exercises1272209
-Node: Language History1273479
-Node: V7/SVR3.11275191
-Node: SVR41277541
-Node: POSIX1279073
-Node: BTL1280498
-Node: POSIX/GNU1281265
-Ref: Gawk Extension Functions1284655
-Node: Feature History1288079
-Node: Common Extensions1307981
-Node: Ranges and Locales1309456
-Ref: Ranges and Locales-Footnote-11314241
-Ref: Ranges and Locales-Footnote-21314268
-Ref: Ranges and Locales-Footnote-31314503
-Node: Contributors1314726
-Node: History summary1321078
-Node: Installation1322520
-Node: Gawk Distribution1323484
-Node: Getting1323976
-Node: Extracting1324975
-Node: Distribution contents1326681
-Node: Unix Installation1334571
-Node: Quick Installation1335391
-Node: Compiling with MPFR1337931
-Node: Shell Startup Files1338637
-Node: Additional Configuration Options1339794
-Node: Configuration Philosophy1342177
-Node: Compiling from Git1344677
-Node: Building the Documentation1345238
-Node: Non-Unix Installation1346650
-Node: PC Installation1347126
-Node: PC Binary Installation1347995
-Node: PC Compiling1348888
-Node: PC Using1350066
-Node: Cygwin1353782
-Node: MSYS1355035
-Node: OpenVMS Installation1355661
-Node: OpenVMS Compilation1356342
-Ref: OpenVMS Compilation-Footnote-11357825
-Node: OpenVMS Dynamic Extensions1357883
-Node: OpenVMS Installation Details1359519
-Node: OpenVMS Running1361950
-Node: OpenVMS GNV1366087
-Node: Bugs1366842
-Node: Bug definition1367762
-Node: Bug address1371364
-Node: Usenet1374933
-Node: Performance bugs1376146
-Node: Asking for help1379150
-Node: Maintainers1381137
-Node: Other Versions1382164
-Node: Installation summary1392232
-Node: Notes1393614
-Node: Compatibility Mode1394424
-Node: Additions1395246
-Node: Accessing The Source1396191
-Node: Adding Code1397724
-Node: New Ports1404835
-Node: Derived Files1409338
-Ref: Derived Files-Footnote-11415149
-Ref: Derived Files-Footnote-21415184
-Ref: Derived Files-Footnote-31415795
-Node: Future Extensions1415909
-Node: Implementation Limitations1416579
-Node: Extension Design1417821
-Node: Old Extension Problems1418981
-Ref: Old Extension Problems-Footnote-11420553
-Node: Extension New Mechanism Goals1420614
-Ref: Extension New Mechanism Goals-Footnote-11424084
-Node: Extension Other Design Decisions1424285
-Node: Extension Future Growth1426482
-Node: Notes summary1427102
-Node: Basic Concepts1428312
-Node: Basic High Level1428997
-Ref: figure-general-flow1429279
-Ref: figure-process-flow1429981
-Ref: Basic High Level-Footnote-11433351
-Node: Basic Data Typing1433540
-Node: Glossary1436948
-Node: Copying1469830
-Node: GNU Free Documentation License1507388
-Node: Index1532511
+Ref: Escape Sequences-Footnote-1184214
+Node: Regexp Operators184292
+Node: Regexp Operator Details184785
+Ref: Regexp Operator Details-Footnote-1192796
+Node: Interval Expressions192955
+Ref: Interval Expressions-Footnote-1195222
+Node: Bracket Expressions195320
+Ref: table-char-classes198069
+Ref: Bracket Expressions-Footnote-1201603
+Node: Leftmost Longest201872
+Node: Computed Regexps203228
+Node: GNU Regexp Operators206743
+Node: Case-sensitivity211840
+Ref: Case-sensitivity-Footnote-1214790
+Ref: Case-sensitivity-Footnote-2215033
+Node: Regexp Summary215145
+Node: Reading Files216667
+Node: Records218986
+Node: awk split records220261
+Node: gawk split records225143
+Ref: gawk split records-Footnote-1230431
+Node: Fields230468
+Ref: Fields-Footnote-1233384
+Node: Nonconstant Fields233504
+Ref: Nonconstant Fields-Footnote-1235976
+Node: Changing Fields236192
+Node: Field Separators242490
+Node: Default Field Splitting245359
+Node: Regexp Field Splitting246501
+Node: Single Character Fields250330
+Node: Comma Separated Fields251419
+Ref: table-csv-examples252829
+Node: Command Line Field Separator255134
+Node: Full Line Fields258510
+Ref: Full Line Fields-Footnote-1260088
+Ref: Full Line Fields-Footnote-2260134
+Node: Field Splitting Summary260239
+Node: Constant Size262556
+Node: Fixed width data263300
+Node: Skipping intervening266815
+Node: Allowing trailing data267617
+Node: Fields with fixed data268678
+Node: Splitting By Content270300
+Ref: Splitting By Content-Footnote-1275801
+Node: FS versus FPAT275966
+Node: Testing field creation277149
+Node: Multiple Line278923
+Node: Getline285392
+Node: Plain Getline287980
+Node: Getline/Variable290628
+Node: Getline/File291824
+Node: Getline/Variable/File293272
+Ref: Getline/Variable/File-Footnote-1294917
+Node: Getline/Pipe295013
+Node: Getline/Variable/Pipe297821
+Node: Getline/Coprocess299004
+Node: Getline/Variable/Coprocess300327
+Node: Getline Notes301093
+Node: Getline Summary305070
+Ref: table-getline-variants305514
+Node: Read Timeout306418
+Ref: Read Timeout-Footnote-1310380
+Node: Retrying Input310438
+Node: Command-line directories311705
+Node: Input Summary312643
+Node: Input Exercises316023
+Node: Printing316461
+Node: Print318404
+Node: Print Examples319905
+Node: Output Separators322750
+Node: OFMT324857
+Node: Printf326570
+Node: Basic Printf327375
+Node: Control Letters329010
+Node: Format Modifiers334456
+Node: Printf Examples340728
+Node: Redirection343269
+Node: Special FD351041
+Ref: Special FD-Footnote-1354339
+Node: Special Files354417
+Node: Other Inherited Files355046
+Node: Special Network356111
+Node: Special Caveats356999
+Node: Close Files And Pipes357982
+Ref: Close Files And Pipes-Footnote-1364106
+Node: Close Return Value364254
+Ref: table-close-pipe-return-values365525
+Ref: Close Return Value-Footnote-1366356
+Node: Noflush366512
+Node: Nonfatal368020
+Node: Output Summary370435
+Node: Output Exercises371721
+Node: Expressions372412
+Node: Values373612
+Node: Constants374290
+Node: Scalar Constants374985
+Ref: Scalar Constants-Footnote-1377561
+Ref: Scalar Constants-Footnote-2377811
+Node: Nondecimal-numbers377891
+Node: Regexp Constants381004
+Node: Using Constant Regexps381550
+Node: Standard Regexp Constants382196
+Node: Strong Regexp Constants385492
+Node: Variables389335
+Node: Using Variables390000
+Node: Assignment Options391974
+Node: Conversion394525
+Node: Strings And Numbers395057
+Ref: Strings And Numbers-Footnote-1398267
+Node: Locale influences conversions398376
+Ref: table-locale-affects401214
+Node: All Operators401856
+Node: Arithmetic Ops402497
+Node: Concatenation405320
+Ref: Concatenation-Footnote-1408256
+Node: Assignment Ops408375
+Ref: table-assign-ops413502
+Node: Increment Ops414883
+Node: Truth Values and Conditions418474
+Node: Truth Values419568
+Node: Typing and Comparison420648
+Node: Variable Typing421480
+Ref: Variable Typing-Footnote-1428124
+Ref: Variable Typing-Footnote-2428204
+Node: Comparison Operators428285
+Ref: table-relational-ops428712
+Node: POSIX String Comparison432388
+Ref: POSIX String Comparison-Footnote-1434145
+Ref: POSIX String Comparison-Footnote-2434288
+Node: Boolean Ops434373
+Ref: Boolean Ops-Footnote-1439047
+Node: Conditional Exp439143
+Node: Function Calls440923
+Node: Precedence444870
+Node: Locales448733
+Node: Expressions Summary450409
+Node: Patterns and Actions453064
+Node: Pattern Overview454200
+Node: Regexp Patterns455925
+Node: Expression Patterns456471
+Node: Ranges460376
+Node: BEGIN/END463550
+Node: Using BEGIN/END464359
+Ref: Using BEGIN/END-Footnote-1467267
+Node: I/O And BEGIN/END467377
+Node: BEGINFILE/ENDFILE469859
+Node: Empty473289
+Node: Using Shell Variables473606
+Node: Action Overview475942
+Node: Statements478378
+Node: If Statement480274
+Node: While Statement481837
+Node: Do Statement483925
+Node: For Statement485109
+Node: Switch Statement488464
+Node: Break Statement491013
+Node: Continue Statement493205
+Node: Next Statement495136
+Node: Nextfile Statement497615
+Node: Exit Statement500469
+Node: Built-in Variables502996
+Node: User-modified504173
+Node: Auto-set512380
+Ref: Auto-set-Footnote-1530464
+Ref: Auto-set-Footnote-2530682
+Node: ARGC and ARGV530738
+Node: Pattern Action Summary535167
+Node: Arrays537773
+Node: Array Basics539146
+Node: Array Intro539994
+Ref: figure-array-elements542005
+Ref: Array Intro-Footnote-1544858
+Node: Reference to Elements544990
+Node: Assigning Elements547510
+Node: Array Example548005
+Node: Scanning an Array549967
+Node: Controlling Scanning553062
+Ref: Controlling Scanning-Footnote-1559697
+Node: Numeric Array Subscripts560021
+Node: Uninitialized Subscripts562289
+Node: Delete563962
+Ref: Delete-Footnote-1566775
+Node: Multidimensional566832
+Node: Multiscanning570035
+Node: Arrays of Arrays571702
+Node: Arrays Summary576006
+Node: Functions578193
+Node: Built-in579395
+Node: Calling Built-in580584
+Node: Boolean Functions582624
+Node: Numeric Functions583186
+Ref: Numeric Functions-Footnote-1587371
+Ref: Numeric Functions-Footnote-2588054
+Ref: Numeric Functions-Footnote-3588106
+Node: String Functions588382
+Ref: String Functions-Footnote-1614833
+Ref: String Functions-Footnote-2614965
+Ref: String Functions-Footnote-3615221
+Node: Gory Details615308
+Ref: table-sub-escapes617317
+Ref: table-sub-proposed618869
+Ref: table-posix-sub620343
+Ref: table-gensub-escapes621995
+Ref: Gory Details-Footnote-1622823
+Node: I/O Functions622977
+Ref: table-system-return-values629654
+Ref: I/O Functions-Footnote-1631816
+Ref: I/O Functions-Footnote-2631964
+Node: Time Functions632084
+Ref: Time Functions-Footnote-1643796
+Ref: Time Functions-Footnote-2643864
+Ref: Time Functions-Footnote-3644026
+Ref: Time Functions-Footnote-4644137
+Ref: Time Functions-Footnote-5644253
+Ref: Time Functions-Footnote-6644480
+Node: Bitwise Functions644758
+Ref: table-bitwise-ops645356
+Ref: Bitwise Functions-Footnote-1651598
+Ref: Bitwise Functions-Footnote-2651775
+Node: Type Functions651970
+Node: I18N Functions654141
+Node: User-defined655876
+Node: Definition Syntax656622
+Ref: Definition Syntax-Footnote-1662477
+Node: Function Example662552
+Ref: Function Example-Footnote-1665531
+Node: Function Calling665553
+Node: Calling A Function666145
+Node: Variable Scope667115
+Node: Pass By Value/Reference670169
+Node: Function Caveats672897
+Ref: Function Caveats-Footnote-1674988
+Node: Return Statement675108
+Node: Dynamic Typing678140
+Node: Dynamic Typing Awk678722
+Node: Dynamic Typing Gawk680860
+Node: Shadowed Variables684230
+Node: Indirect Calls686578
+Node: Functions Summary697719
+Node: Library Functions700685
+Ref: Library Functions-Footnote-1704233
+Ref: Library Functions-Footnote-2704378
+Node: Library Names704553
+Ref: Library Names-Footnote-1708324
+Ref: Library Names-Footnote-2708551
+Node: General Functions708645
+Node: Strtonum Function709915
+Node: Assert Function712997
+Node: Round Function716552
+Node: Cliff Random Function718124
+Node: Ordinal Functions719149
+Ref: Ordinal Functions-Footnote-1722252
+Ref: Ordinal Functions-Footnote-2722504
+Node: Join Function722718
+Ref: Join Function-Footnote-1724516
+Node: Getlocaltime Function724720
+Node: Readfile Function728494
+Node: Shell Quoting730523
+Node: Isnumeric Function731979
+Node: To CSV Function733415
+Node: Data File Management735507
+Node: Filetrans Function736139
+Node: Rewind Function740415
+Node: File Checking742386
+Ref: File Checking-Footnote-1743752
+Node: Empty Files743957
+Node: Ignoring Assigns746020
+Node: Getopt Function747594
+Ref: Getopt Function-Footnote-1763412
+Node: Passwd Functions763624
+Ref: Passwd Functions-Footnote-1772759
+Node: Group Functions772847
+Ref: Group Functions-Footnote-1780971
+Node: Walking Arrays781182
+Node: Library Functions Summary784228
+Node: Library Exercises785648
+Node: Sample Programs786133
+Node: Running Examples786915
+Node: Clones787667
+Node: Cut Program788935
+Node: Egrep Program799359
+Node: Id Program808658
+Node: Split Program818750
+Ref: Split Program-Footnote-1828963
+Node: Tee Program829148
+Node: Uniq Program832054
+Node: Wc Program839914
+Node: Bytes vs. Characters840309
+Node: Using extensions841909
+Node: wc program842687
+Node: Miscellaneous Programs847680
+Node: Dupword Program848905
+Node: Alarm Program850954
+Node: Translate Program855857
+Ref: Translate Program-Footnote-1860566
+Node: Labels Program860844
+Ref: Labels Program-Footnote-1864279
+Node: Word Sorting864363
+Node: History Sorting868537
+Node: Extract Program870810
+Node: Simple Sed879063
+Node: Igawk Program882273
+Ref: Igawk Program-Footnote-1897483
+Ref: Igawk Program-Footnote-2897689
+Ref: Igawk Program-Footnote-3897819
+Node: Anagram Program897946
+Node: Signature Program901032
+Node: Programs Summary902283
+Node: Programs Exercises903537
+Ref: Programs Exercises-Footnote-1908366
+Node: Advanced Features908452
+Node: Nondecimal Data910933
+Node: Boolean Typed Values912563
+Node: Array Sorting914520
+Node: Controlling Array Traversal915249
+Ref: Controlling Array Traversal-Footnote-1923752
+Node: Array Sorting Functions923874
+Ref: Array Sorting Functions-Footnote-1929971
+Node: Two-way I/O930179
+Ref: Two-way I/O-Footnote-1938150
+Ref: Two-way I/O-Footnote-2938341
+Node: TCP/IP Networking938423
+Node: Profiling941591
+Node: Persistent Memory951261
+Ref: Persistent Memory-Footnote-1961338
+Node: Extension Philosophy961469
+Node: Advanced Features Summary962996
+Node: Internationalization965262
+Node: I18N and L10N966964
+Node: Explaining gettext967659
+Ref: Explaining gettext-Footnote-1973795
+Ref: Explaining gettext-Footnote-2973988
+Node: Programmer i18n974153
+Ref: Programmer i18n-Footnote-1979265
+Node: Translator i18n979314
+Node: String Extraction980144
+Ref: String Extraction-Footnote-1981320
+Node: Printf Ordering981418
+Ref: Printf Ordering-Footnote-1984276
+Node: I18N Portability984344
+Ref: I18N Portability-Footnote-1986904
+Node: I18N Example986971
+Ref: I18N Example-Footnote-1990365
+Ref: I18N Example-Footnote-2990438
+Node: Gawk I18N990555
+Node: I18N Summary991209
+Node: Debugger992606
+Node: Debugging993626
+Node: Debugging Concepts994075
+Node: Debugging Terms995892
+Node: Awk Debugging998495
+Ref: Awk Debugging-Footnote-1999468
+Node: Sample Debugging Session999604
+Node: Debugger Invocation1000154
+Node: Finding The Bug1001779
+Node: List of Debugger Commands1008411
+Node: Breakpoint Control1009788
+Node: Debugger Execution Control1013610
+Node: Viewing And Changing Data1017084
+Node: Execution Stack1020818
+Node: Debugger Info1022499
+Node: Miscellaneous Debugger Commands1026794
+Node: Readline Support1032035
+Node: Limitations1032973
+Node: Debugging Summary1035597
+Node: Namespaces1036896
+Node: Global Namespace1038023
+Node: Qualified Names1039457
+Node: Default Namespace1040492
+Node: Changing The Namespace1041265
+Node: Naming Rules1042947
+Node: Internal Name Management1044902
+Node: Namespace Example1045972
+Node: Namespace And Features1048549
+Node: Namespace Summary1050004
+Node: Arbitrary Precision Arithmetic1051515
+Node: Computer Arithmetic1053034
+Ref: table-numeric-ranges1056959
+Ref: table-floating-point-ranges1057456
+Ref: Computer Arithmetic-Footnote-11058114
+Node: Math Definitions1058171
+Ref: table-ieee-formats1061203
+Node: MPFR features1061776
+Node: MPFR On Parole1062229
+Ref: MPFR On Parole-Footnote-11063070
+Node: MPFR Intro1063229
+Node: FP Math Caution1064914
+Ref: FP Math Caution-Footnote-11065986
+Node: Inexactness of computations1066360
+Node: Inexact representation1067391
+Node: Comparing FP Values1068772
+Node: Errors accumulate1070030
+Node: Strange values1071495
+Ref: Strange values-Footnote-11074149
+Node: Getting Accuracy1074254
+Node: Try To Round1076991
+Node: Setting precision1077898
+Ref: table-predefined-precision-strings1078603
+Node: Setting the rounding mode1080487
+Ref: table-gawk-rounding-modes1080869
+Ref: Setting the rounding mode-Footnote-11084921
+Node: Arbitrary Precision Integers1085106
+Ref: Arbitrary Precision Integers-Footnote-11088316
+Node: Checking for MPFR1088470
+Node: POSIX Floating Point Problems1089960
+Ref: POSIX Floating Point Problems-Footnote-11094780
+Node: Floating point summary1094818
+Node: Dynamic Extensions1097074
+Node: Extension Intro1098671
+Node: Plugin License1099973
+Node: Extension Mechanism Outline1100786
+Ref: figure-load-extension1101237
+Ref: figure-register-new-function1102815
+Ref: figure-call-new-function1103924
+Node: Extension API Description1106039
+Node: Extension API Functions Introduction1107768
+Ref: table-api-std-headers1109662
+Node: General Data Types1114103
+Ref: General Data Types-Footnote-11123249
+Node: Memory Allocation Functions1123552
+Ref: Memory Allocation Functions-Footnote-11128267
+Node: Constructor Functions1128366
+Node: API Ownership of MPFR and GMP Values1132267
+Node: Registration Functions1133820
+Node: Extension Functions1134524
+Node: Exit Callback Functions1140098
+Node: Extension Version String1141412
+Node: Input Parsers1142107
+Node: Output Wrappers1156726
+Node: Two-way processors1161568
+Node: Printing Messages1163921
+Ref: Printing Messages-Footnote-11165132
+Node: Updating ERRNO1165285
+Node: Requesting Values1166084
+Ref: table-value-types-returned1166837
+Node: Accessing Parameters1168896
+Node: Symbol Table Access1170177
+Node: Symbol table by name1170689
+Ref: Symbol table by name-Footnote-11173890
+Node: Symbol table by cookie1174022
+Ref: Symbol table by cookie-Footnote-11178291
+Node: Cached values1178355
+Ref: Cached values-Footnote-11181987
+Node: Array Manipulation1182144
+Ref: Array Manipulation-Footnote-11183243
+Node: Array Data Types1183280
+Ref: Array Data Types-Footnote-11186098
+Node: Array Functions1186194
+Node: Flattening Arrays1191223
+Node: Creating Arrays1198271
+Node: Redirection API1203113
+Node: Extension API Variables1206130
+Node: Extension Versioning1206853
+Ref: gawk-api-version1207282
+Node: Extension GMP/MPFR Versioning1209069
+Node: Extension API Informational Variables1210773
+Node: Extension API Boilerplate1212026
+Node: Changes from API V11216156
+Node: Finding Extensions1217788
+Node: Extension Example1218363
+Node: Internal File Description1219185
+Node: Internal File Ops1223477
+Ref: Internal File Ops-Footnote-11235027
+Node: Using Internal File Ops1235175
+Ref: Using Internal File Ops-Footnote-11237608
+Node: Extension Samples1237886
+Node: Extension Sample File Functions1239455
+Node: Extension Sample Fnmatch1247580
+Node: Extension Sample Fork1249175
+Node: Extension Sample Inplace1250451
+Node: Extension Sample Ord1254553
+Node: Extension Sample Readdir1255429
+Ref: table-readdir-file-types1256218
+Node: Extension Sample Revout1257574
+Node: Extension Sample Rev2way1258171
+Node: Extension Sample Read write array1258923
+Node: Extension Sample Readfile1262197
+Node: Extension Sample Time1263328
+Node: Extension Sample API Tests1265328
+Node: gawkextlib1265836
+Node: Extension summary1268869
+Node: Extension Exercises1272717
+Node: Language History1273987
+Node: V7/SVR3.11275699
+Node: SVR41278049
+Node: POSIX1279581
+Node: BTL1281006
+Node: POSIX/GNU1281773
+Ref: Gawk Extension Functions1285163
+Node: Feature History1288587
+Node: Common Extensions1308489
+Node: Ranges and Locales1309964
+Ref: Ranges and Locales-Footnote-11314749
+Ref: Ranges and Locales-Footnote-21314776
+Ref: Ranges and Locales-Footnote-31315011
+Node: Contributors1315234
+Node: History summary1321586
+Node: Installation1323028
+Node: Gawk Distribution1323992
+Node: Getting1324484
+Node: Extracting1325483
+Node: Distribution contents1327189
+Node: Unix Installation1335079
+Node: Quick Installation1335899
+Node: Compiling with MPFR1338439
+Node: Shell Startup Files1339145
+Node: Additional Configuration Options1340302
+Node: Configuration Philosophy1342685
+Node: Compiling from Git1345185
+Node: Building the Documentation1345746
+Node: Non-Unix Installation1347158
+Node: PC Installation1347634
+Node: PC Binary Installation1348503
+Node: PC Compiling1349396
+Node: PC Using1350574
+Node: Cygwin1354290
+Node: MSYS1355543
+Node: OpenVMS Installation1356169
+Node: OpenVMS Compilation1356850
+Ref: OpenVMS Compilation-Footnote-11358333
+Node: OpenVMS Dynamic Extensions1358391
+Node: OpenVMS Installation Details1360027
+Node: OpenVMS Running1362458
+Node: OpenVMS GNV1366595
+Node: Bugs1367350
+Node: Bug definition1368270
+Node: Bug address1371872
+Node: Usenet1375441
+Node: Performance bugs1376654
+Node: Asking for help1379658
+Node: Maintainers1381645
+Node: Other Versions1382672
+Node: Installation summary1392740
+Node: Notes1394122
+Node: Compatibility Mode1394932
+Node: Additions1395754
+Node: Accessing The Source1396699
+Node: Adding Code1398232
+Node: New Ports1405343
+Node: Derived Files1409846
+Ref: Derived Files-Footnote-11415657
+Ref: Derived Files-Footnote-21415692
+Ref: Derived Files-Footnote-31416303
+Node: Future Extensions1416417
+Node: Implementation Limitations1417087
+Node: Extension Design1418329
+Node: Old Extension Problems1419489
+Ref: Old Extension Problems-Footnote-11421061
+Node: Extension New Mechanism Goals1421122
+Ref: Extension New Mechanism Goals-Footnote-11424592
+Node: Extension Other Design Decisions1424793
+Node: Extension Future Growth1426990
+Node: Notes summary1427610
+Node: Basic Concepts1428820
+Node: Basic High Level1429505
+Ref: figure-general-flow1429787
+Ref: figure-process-flow1430489
+Ref: Basic High Level-Footnote-11433859
+Node: Basic Data Typing1434048
+Node: Glossary1437456
+Node: Copying1470338
+Node: GNU Free Documentation License1507896
+Node: Index1533019
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index c006ad9e..dc045cdf 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -5679,7 +5679,10 @@ characters @samp{a+b}.
 @cindex @code{\} (backslash) @subentry in escape sequences
 @cindex portability
 For complete portability, do not use a backslash before any character not
-shown in the previous list or that is not an operator.
+shown in the previous list or that is not a regular expression operator.
+(The 2024 POSIX standard explictly lists the operators that can be
+escaped, leaving it undefined as to what happens for any other
+escaped character. But the bottom line is as described previously.)
 
 @c 11/2014: Moved so as to not stack sidebars
 @cindex sidebar @subentry Backslash Before Regular Characters
@@ -6124,8 +6127,11 @@ bracket expression, put a @samp{\} in front of it.  For 
example:
 @noindent
 matches either @samp{d} or @samp{]}.
 Additionally, if you place @samp{]} right after the opening
-@samp{[}, the closing bracket is treated as one of the
+@samp{[} (@samp{[]d]}), the closing bracket is treated as one of the
 characters to be matched.
+Inside bracket expressions, it's not necessary to escape
+the other regular expression operators, and for full portability
+you should not.
 
 @cindex POSIX @command{awk} @subentry bracket expressions and
 @cindex Extended Regular Expressions (EREs)
@@ -7251,7 +7257,12 @@ order of decreasing precedence, in
 @ref{Precedence}.)
 
 If the field number you compute is zero, you get the entire record.
-Thus, @samp{$(2-2)} has the same value as @code{$0}.  Negative field
+Thus, @samp{$(2-2)} has the same value as @code{$0}.
+Similarly, string expressions that evaluate to zero also yield the entire
+record. For example, @samp{$"answer"}, @samp{$"0foo"}, or even
+@samp{$("foo" "bar")}.
+
+Negative field
 numbers are not allowed; trying to reference one usually terminates
 the program.  (The POSIX standard does not define
 what happens when you reference a negative field number.  @command{gawk}
@@ -30673,7 +30684,7 @@ code, it will appear that way in the output.
 @cindex persistent memory
 @cindex PMA memory allocator
 Starting with version 5.2, @command{gawk} supports
-@dfn{persistent memory}.  This @emph{experimental} feature stores the values of
+@dfn{persistent memory}.  This feature stores the values of
 all of @command{gawk}'s variables, arrays and user-defined functions
 in a persistent heap, which resides in a file in
 the filesystem.  When persistent memory is not in use (the normal case),
@@ -30929,10 +30940,12 @@ paragraph, that option is otherwise undocumented.
 The prototype only supported persistent data; it did not
 support persistent functions.
 
-As noted earlier, support for persistent memory is @emph{experimental}.
-If it becomes burdensome,@footnote{Meaning, there are too many
-bug reports, or too many strange differences in behavior from when
-@command{gawk} is run normally.} then the feature will be removed.
+@quotation NOTE
+The maintainer reserves the right to remove the persistent memory
+feature should it become burdensome.@footnote{Meaning, there are too
+many bug reports, or too many strange differences in behavior from when
+@command{gawk} is run normally.}
+@end quotation
 
 @node Extension Philosophy
 @section Builtin Features versus Extensions

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

Summary of changes:
 doc/ChangeLog |   10 +-
 doc/gawk.info | 1223 +++++++++++++++++++++++++++++----------------------------
 doc/gawk.texi |   29 +-
 3 files changed, 646 insertions(+), 616 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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