[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5597-g1c41d22b,
Arnold Robbins <=