[Top][All Lists]

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

[SCM] gawk branch, master, updated. gawk-4.1.0-4626-gd330a2bd

From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-4626-gd330a2bd
Date: Tue, 22 Feb 2022 13:32:48 -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, master has been updated
       via  d330a2bdc9d6892dc55ce8f5d299196f32ab1003 (commit)
       via  f8f77e08c471d62bb462db5498f1980c564cdc78 (commit)
       via  d980a7923a612a5e50f20bc65ee87b1919ca7485 (commit)
       via  fa4cc1fb8ba39038e7ee1eba3b9d08bfeddb1f37 (commit)
       via  80de2f7c9bc519fb820033a530e1657977117a33 (commit)
      from  8d9d0c5ba78546704658351d2d8e9aa626bb0383 (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 -----------------------------------------------------------------

commit d330a2bdc9d6892dc55ce8f5d299196f32ab1003
Author: Arnold D. Robbins <>
Date:   Tue Feb 22 20:32:05 2022 +0200

    Enable interval expressions for --traditional. Update docs.

diff --git a/ChangeLog b/ChangeLog
index 711cd0ce..cde50c6f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2022-02-22         Arnold D. Robbins     <>
+       Enable interval expressions even for --traditional, as BWK
+       awk has supported them since 2019.
+       * NEWS: Updated.
+       * main.c (main): Add lint warning for --re-interval.
+       (parse_args): Add explanatory comment.
+       * re.c (resetup): Update the comment w.r.t. interval expressions.
+       Change the test for enabled them to if do_traditional.
 2022-02-22         Arnold D. Robbins     <>
        Fix resource links found by Coverity. Thanks to
diff --git a/NEWS b/NEWS
index 5bf493e3..84513b95 100644
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,10 @@ Boolean. This is mainly for use with data exchange to/from 
 or environments that support real Boolean values. See the manual
 for details.
+5. As BWK awk has supported interval expressions since 2019, they are
+now enabled even if --traditional is supplied. The -r/--re-interval option
+remains, but it does nothing.
 Changes from 5.1.1 to 5.1.2
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 04bec844..1f535624 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2022-02-22         Arnold D. Robbins     <>
+       * Update --re-interval description.
+       * Ditto, in all relevant places.
 2022-02-07         Arnold D. Robbins     <>
        * (Indirect Calls): Expand discussion of calling
diff --git a/doc/ b/doc/
index f83cec63..76ae9f27 100644
--- a/doc/
+++ b/doc/
@@ -304,8 +304,7 @@ The profile contains execution counts in the left margin.
 .TI "\*(FC\-P\*(FR, \*(FC\-\^\-posix\*(FR
 Disable common and GNU extensions.
 .TI "\*(FC\-r\*(FR, \*(FC\-\^\-re\-interval\*(FR
-Enable \*(FIinterval expressions\*(FR.
-(Needed with \*(FC\-c\*(FR.)\*(CB
+Does nothing; for backwards compatibility only.\*(CB
 .in -4n
diff --git a/doc/ b/doc/
index 0be3deca..f424ef99 100644
--- a/doc/
+++ b/doc/
@@ -2821,8 +2821,7 @@ The following list describes options mandated by the 
POSIX standard:
      Allow interval expressions (*note Regexp Operators::) in regexps.
      This is now 'gawk''s default behavior.  Nevertheless, this option
-     remains (both for backward compatibility and for use in combination
-     with '--traditional').
+     remains for backward compatibility.
@@ -3993,9 +3992,8 @@ stand for themselves.
    As mentioned, interval expressions were not traditionally available
 in 'awk'.  In March of 2019, BWK 'awk' (finally) acquired them.
-Nonetheless, because they were not available for so many decades, 'gawk'
-continues to not supply them when in compatibility mode (*note
+Starting with version 5.2, 'gawk''s '--traditional' option no longer
+disables interval expressions in regular expressions.
    POSIX says that interval expressions containing repetition counts
 greater than 255 produce unspecified results.
@@ -4336,16 +4334,15 @@ No options
      Match traditional Unix 'awk' regexps.  The GNU operators are not
-     special, and interval expressions are not available.  Because BWK
-     'awk' supports them, the POSIX character classes ('[[:alnum:]]',
-     etc.)  are available.  Characters described by octal and
+     special.  Because BWK 'awk' supports them, the POSIX character
+     classes ('[[:alnum:]]', etc.)  are available.  So too, interval
+     expressions are allowed.  Characters described by octal and
      hexadecimal escape sequences are treated literally, even if they
      represent regexp metacharacters.
-     Allow interval expressions in regexps, if '--traditional' has been
-     provided.  Otherwise, interval expressions are available by
-     default.
+     This option remains for backwards compatibility but no longer has
+     any real effect.
 File:,  Node: Case-sensitivity,  Next: Regexp Summary,  Prev: GNU 
Regexp Operators,  Up: Regexp
@@ -35294,7 +35291,7 @@ Index
 * + (plus sign), += operator <1>:        Precedence.          (line  94)
 * , (comma), in range patterns:          Ranges.              (line   6)
 * - (hyphen), file names beginning with: Options.             (line  63)
-* - (hyphen), -- end of options marker:  Options.             (line 348)
+* - (hyphen), -- end of options marker:  Options.             (line 347)
 * - (hyphen), in bracket expressions:    Bracket Expressions. (line  25)
 * - (hyphen), -= operator:               Assignment Ops.      (line 129)
 * - (hyphen), -- operator:               Increment Ops.       (line  48)
@@ -35330,9 +35327,9 @@ Index
 * --include option:                      Options.             (line 180)
 * --lint option:                         Command Line.        (line  20)
 * --lint option <1>:                     Options.             (line 215)
-* --lint-old option:                     Options.             (line 338)
+* --lint-old option:                     Options.             (line 337)
 * --load option:                         Options.             (line 203)
-* --no-optimize option:                  Options.             (line 323)
+* --no-optimize option:                  Options.             (line 322)
 * --non-decimal-data option:             Options.             (line 248)
 * --non-decimal-data option <1>:         Nondecimal Data.     (line   6)
 * --non-decimal-data option, strtonum() function and: Nondecimal Data.
@@ -35344,7 +35341,7 @@ Index
 * --profile option:                      Options.             (line 283)
 * --profile option <1>:                  Profiling.           (line  12)
 * --re-interval option:                  Options.             (line 316)
-* --sandbox option:                      Options.             (line 328)
+* --sandbox option:                      Options.             (line 327)
 * --sandbox option, input redirection with getline: Getline.  (line  19)
 * --sandbox option, output redirection with print, printf: Redirection.
                                                               (line   6)
@@ -35355,7 +35352,7 @@ Index
 * --traditional option:                  Options.             (line  85)
 * --traditional option, --posix option and: Options.          (line 310)
 * --use-lc-numeric option:               Options.             (line 257)
-* --version option:                      Options.             (line 343)
+* --version option:                      Options.             (line 342)
 * -b option:                             Options.             (line  72)
 * -c option:                             Options.             (line  85)
 * -C option:                             Options.             (line  92)
@@ -35363,12 +35360,12 @@ Index
 * -D option:                             Options.             (line 111)
 * -e option:                             Options.             (line 120)
 * -E option:                             Options.             (line 146)
-* -e option <1>:                         Options.             (line 384)
+* -e option <1>:                         Options.             (line 383)
 * -f option:                             Long.                (line  12)
 * -F option:                             Options.             (line  21)
 * -f option <1>:                         Options.             (line  25)
-* -F option, -Ft sets FS to TAB:         Options.             (line 356)
-* -f option, multiple uses:              Options.             (line 361)
+* -F option, -Ft sets FS to TAB:         Options.             (line 355)
+* -f option, multiple uses:              Options.             (line 360)
 * -F option, command-line:               Command Line Field Separator.
                                                               (line   6)
 * -g option:                             Options.             (line 168)
@@ -35377,7 +35374,7 @@ Index
 * -I option:                             Options.             (line 197)
 * -l option:                             Options.             (line 203)
 * -l option <1>:                         Options.             (line 215)
-* -L option:                             Options.             (line 338)
+* -L option:                             Options.             (line 337)
 * -M option:                             Options.             (line 242)
 * -n option:                             Options.             (line 248)
 * -N option:                             Options.             (line 257)
@@ -35386,10 +35383,10 @@ Index
 * -p option:                             Options.             (line 283)
 * -P option:                             Options.             (line 295)
 * -r option:                             Options.             (line 316)
-* -s option:                             Options.             (line 323)
-* -S option:                             Options.             (line 328)
+* -s option:                             Options.             (line 322)
+* -S option:                             Options.             (line 327)
 * -v option:                             Options.             (line  36)
-* -V option:                             Options.             (line 343)
+* -V option:                             Options.             (line 342)
 * -v option <1>:                         Assignment Options.  (line  12)
 * -W option:                             Options.             (line  50)
 * . (period), regexp operator:           Regexp Operator Details.
@@ -35625,7 +35622,7 @@ Index
 * arguments, command-line <1>:           Auto-set.            (line  15)
 * arguments, command-line <2>:           ARGC and ARGV.       (line   6)
 * arguments, processing:                 Getopt Function.     (line   6)
-* ARGV array:                            Options.             (line 328)
+* ARGV array:                            Options.             (line 327)
 * ARGV array, indexing into:             Other Arguments.     (line  21)
 * arithmetic operators:                  Arithmetic Ops.      (line   6)
 * array manipulation in extensions:      Array Manipulation.  (line   6)
@@ -35997,6 +35994,8 @@ Index
 * built-in functions:                    Functions.           (line   6)
 * built-in functions, evaluation order:  Calling Built-in.    (line  30)
 * BusyBox Awk:                           Other Versions.      (line  92)
+* BWK awk, interval expressions in:      Interval Expressions.
+                                                              (line  27)
 * bytes, counting:                       Wc Program.          (line   6)
 * C library functions, assert():         Assert Function.     (line   6)
 * C library functions, getopt():         Getopt Function.     (line  15)
@@ -36197,7 +36196,7 @@ Index
 * cosine:                                Numeric Functions.   (line  15)
 * counting words, lines, characters, and bytes: Wc Program.   (line   6)
 * csh utility:                           Statements/Lines.    (line  45)
-* csh utility, POSIXLY_CORRECT environment variable: Options. (line 405)
+* csh utility, POSIXLY_CORRECT environment variable: Options. (line 404)
 * csh utility, |& operator, comparison with: Two-way I/O.     (line  27)
 * CSV (comma separated values) data, parsing with FPAT: Splitting By Content.
                                                               (line  20)
@@ -36579,7 +36578,7 @@ Index
 * effective group ID of gawk user:       Auto-set.            (line 172)
 * effective user ID of gawk user:        Auto-set.            (line 180)
 * Eggert, Paul:                          Interval Expressions.
-                                                              (line  36)
+                                                              (line  35)
 * egrep utility:                         Bracket Expressions. (line  34)
 * egrep utility <1>:                     Egrep Program.       (line   6)
 * egrep.awk program:                     Egrep Program.       (line  76)
@@ -36628,7 +36627,7 @@ Index
 * endpwent() user-defined function:      Passwd Functions.    (line 210)
 * English, Steve:                        Advanced Features.   (line   6)
 * ENVIRON array:                         Auto-set.            (line  59)
-* environment variables, POSIXLY_CORRECT: Options.            (line 390)
+* environment variables, POSIXLY_CORRECT: Options.            (line 389)
 * environment variables, used by gawk:   Environment Variables.
                                                               (line   6)
 * environment variables, AWKPATH:        AWKPATH Variable.    (line   6)
@@ -36997,7 +36996,7 @@ Index
 * gawk, awk and <1>:                     This Manual.         (line  14)
 * gawk, newlines in:                     Statements/Lines.    (line  12)
 * gawk, extensions, disabling:           Options.             (line 295)
-* gawk, version of, printing information about: Options.      (line 343)
+* gawk, version of, printing information about: Options.      (line 342)
 * gawk, ARGIND variable in:              Other Arguments.     (line  21)
 * gawk, PROCINFO array in:               Other Arguments.     (line  21)
 * gawk, escape sequences:                Escape Sequences.    (line 120)
@@ -37207,7 +37206,7 @@ Index
 * Hughes, Phil:                          Acknowledgments.     (line  43)
 * HUP signal, for dynamic profiling:     Profiling.           (line 217)
 * hyphen (-), file names beginning with: Options.             (line  63)
-* hyphen (-), -- end of options marker:  Options.             (line 348)
+* hyphen (-), -- end of options marker:  Options.             (line 347)
 * hyphen (-), in bracket expressions:    Bracket Expressions. (line  25)
 * hyphen (-), -= operator:               Assignment Ops.      (line 129)
 * hyphen (-), -- operator:               Increment Ops.       (line  48)
@@ -37431,7 +37430,7 @@ Index
 * lint checking, empty programs:         Command Line.        (line  16)
 * lint checking, issuing warnings:       Options.             (line 215)
 * lint checking, POSIXLY_CORRECT environment variable: Options.
-                                                              (line 390)
+                                                              (line 389)
 * lint checking:                         User-modified.       (line  90)
 * lint checking, array subscripts:       Uninitialized Subscripts.
                                                               (line  43)
@@ -37777,7 +37776,7 @@ Index
 * portability, #! (executable scripts):  Executable Scripts.  (line  29)
 * portability, ARGV variable:            Executable Scripts.  (line  55)
 * portability, backslash continuation and: Statements/Lines.  (line  30)
-* portability, POSIXLY_CORRECT environment variable: Options. (line 410)
+* portability, POSIXLY_CORRECT environment variable: Options. (line 409)
 * portability:                           Escape Sequences.    (line 103)
 * portability, backslash in escape sequences: Escape Sequences.
                                                               (line 108)
@@ -37854,7 +37853,7 @@ Index
 * POSIX awk, function keyword in:        Definition Syntax.   (line  99)
 * POSIX awk, changes in awk versions:    POSIX.               (line   6)
 * POSIX mode:                            Options.             (line 295)
-* POSIX mode <1>:                        Options.             (line 390)
+* POSIX mode <1>:                        Options.             (line 389)
 * POSIX mode <2>:                        Regexp Operator Details.
                                                               (line  47)
 * POSIX mode <3>:                        Input Summary.       (line  69)
@@ -37874,7 +37873,7 @@ Index
 * POSIX mode <12>:                       POSIX Floating Point Problems.
                                                               (line  83)
 * POSIX mode <13>:                       Feature History.     (line 315)
-* POSIXLY_CORRECT environment variable:  Options.             (line 390)
+* POSIXLY_CORRECT environment variable:  Options.             (line 389)
 * PREC variable:                         User-modified.       (line 126)
 * precedence, regexp operators:          Regexp Operator Details.
                                                               (line 137)
@@ -38158,7 +38157,7 @@ Index
                                                               (line  68)
 * sample debugging session:              Sample Debugging Session.
                                                               (line   6)
-* sandbox mode:                          Options.             (line 328)
+* sandbox mode:                          Options.             (line 327)
 * save debugger options:                 Debugger Info.       (line  85)
 * scalar or array:                       Type Functions.      (line  11)
 * scalar values:                         Basic Data Typing.   (line  13)
@@ -38780,572 +38779,572 @@ Node: Intro Summary118206
 Node: Invoking Gawk119090
 Node: Command Line120604
 Node: Options121402
-Ref: Options-Footnote-1139316
-Ref: Options-Footnote-2139547
-Node: Other Arguments139572
-Node: Naming Standard Input143583
-Node: Environment Variables144793
-Node: AWKPATH Variable145351
-Ref: AWKPATH Variable-Footnote-1148763
-Ref: AWKPATH Variable-Footnote-2148797
-Node: AWKLIBPATH Variable149168
-Ref: AWKLIBPATH Variable-Footnote-1150865
-Node: Other Environment Variables151240
-Node: Exit Status155192
-Node: Include Files155869
-Node: Loading Shared Libraries159559
-Node: Obsolete160987
-Node: Undocumented161679
-Node: Invoking Summary161976
-Node: Regexp164817
-Node: Regexp Usage166271
-Node: Escape Sequences168308
-Node: Regexp Operators174549
-Node: Regexp Operator Details175034
-Ref: Regexp Operator Details-Footnote-1182398
-Node: Interval Expressions182545
-Ref: Interval Expressions-Footnote-1184745
-Node: Bracket Expressions184843
-Ref: table-char-classes187319
-Node: Leftmost Longest190646
-Node: Computed Regexps191949
-Node: GNU Regexp Operators195376
-Node: Case-sensitivity199113
-Ref: Case-sensitivity-Footnote-1201979
-Ref: Case-sensitivity-Footnote-2202214
-Node: Regexp Summary202322
-Node: Reading Files203788
-Node: Records206057
-Node: awk split records207132
-Node: gawk split records211832
-Ref: gawk split records-Footnote-1216906
-Node: Fields216943
-Node: Nonconstant Fields219684
-Ref: Nonconstant Fields-Footnote-1221920
-Node: Changing Fields222124
-Node: Field Separators228155
-Node: Default Field Splitting230853
-Node: Regexp Field Splitting231971
-Node: Single Character Fields235648
-Node: Command Line Field Separator236708
-Node: Full Line Fields239926
-Ref: Full Line Fields-Footnote-1241448
-Ref: Full Line Fields-Footnote-2241494
-Node: Field Splitting Summary241595
-Node: Constant Size243669
-Node: Fixed width data244401
-Node: Skipping intervening247868
-Node: Allowing trailing data248666
-Node: Fields with fixed data249703
-Node: Splitting By Content251221
-Ref: Splitting By Content-Footnote-1255057
-Node: More CSV255220
-Node: FS versus FPAT256835
-Node: Testing field creation257995
-Node: Multiple Line259620
-Node: Getline265897
-Node: Plain Getline268366
-Node: Getline/Variable270939
-Node: Getline/File272090
-Node: Getline/Variable/File273478
-Ref: Getline/Variable/File-Footnote-1275083
-Node: Getline/Pipe275171
-Node: Getline/Variable/Pipe277875
-Node: Getline/Coprocess279010
-Node: Getline/Variable/Coprocess280277
-Node: Getline Notes281019
-Node: Getline Summary283816
-Ref: table-getline-variants284240
-Node: Read Timeout284989
-Ref: Read Timeout-Footnote-1288895
-Node: Retrying Input288953
-Node: Command-line directories290152
-Node: Input Summary291058
-Node: Input Exercises294230
-Node: Printing294664
-Node: Print296498
-Node: Print Examples297955
-Node: Output Separators300735
-Node: OFMT302752
-Node: Printf304108
-Node: Basic Printf304893
-Node: Control Letters306467
-Node: Format Modifiers311629
-Node: Printf Examples317644
-Node: Redirection320130
-Node: Special FD326971
-Ref: Special FD-Footnote-1330139
-Node: Special Files330213
-Node: Other Inherited Files330830
-Node: Special Network331831
-Node: Special Caveats332691
-Node: Close Files And Pipes333640
-Ref: table-close-pipe-return-values340547
-Ref: Close Files And Pipes-Footnote-1341361
-Ref: Close Files And Pipes-Footnote-2341509
-Node: Nonfatal341661
-Node: Output Summary343999
-Node: Output Exercises345221
-Node: Expressions345900
-Node: Values347088
-Node: Constants347766
-Node: Scalar Constants348457
-Ref: Scalar Constants-Footnote-1350967
-Node: Nondecimal-numbers351217
-Node: Regexp Constants354218
-Node: Using Constant Regexps354744
-Node: Standard Regexp Constants355366
-Node: Strong Regexp Constants358554
-Node: Variables362269
-Node: Using Variables362926
-Node: Assignment Options364836
-Node: Conversion367307
-Node: Strings And Numbers367831
-Ref: Strings And Numbers-Footnote-1370894
-Node: Locale influences conversions371003
-Ref: table-locale-affects373761
-Node: All Operators374380
-Node: Arithmetic Ops375009
-Node: Concatenation377725
-Ref: Concatenation-Footnote-1380572
-Node: Assignment Ops380679
-Ref: table-assign-ops385670
-Node: Increment Ops386984
-Node: Truth Values and Conditions390444
-Node: Truth Values391518
-Node: Typing and Comparison392566
-Node: Variable Typing393386
-Ref: Variable Typing-Footnote-1399849
-Ref: Variable Typing-Footnote-2399921
-Node: Comparison Operators399998
-Ref: table-relational-ops400417
-Node: POSIX String Comparison403913
-Ref: POSIX String Comparison-Footnote-1405608
-Ref: POSIX String Comparison-Footnote-2405747
-Node: Boolean Ops405831
-Ref: Boolean Ops-Footnote-1410313
-Node: Conditional Exp410405
-Node: Function Calls412141
-Node: Precedence416018
-Node: Locales419677
-Node: Expressions Summary421309
-Node: Patterns and Actions423882
-Node: Pattern Overview425002
-Node: Regexp Patterns426679
-Node: Expression Patterns427221
-Node: Ranges431002
-Node: BEGIN/END434110
-Node: Using BEGIN/END434871
-Ref: Using BEGIN/END-Footnote-1437625
-Node: I/O And BEGIN/END437731
-Node: Empty443275
-Node: Using Shell Variables443592
-Node: Action Overview445866
-Node: Statements448191
-Node: If Statement450039
-Node: While Statement451534
-Node: Do Statement453562
-Node: For Statement454710
-Node: Switch Statement457965
-Node: Break Statement460406
-Node: Continue Statement462498
-Node: Next Statement464325
-Node: Nextfile Statement466708
-Node: Exit Statement469397
-Node: Built-in Variables471800
-Node: User-modified472933
-Node: Auto-set480700
-Ref: Auto-set-Footnote-1497507
-Ref: Auto-set-Footnote-2497713
-Node: ARGC and ARGV497769
-Node: Pattern Action Summary501982
-Node: Arrays504412
-Node: Array Basics505741
-Node: Array Intro506585
-Ref: figure-array-elements508560
-Ref: Array Intro-Footnote-1511265
-Node: Reference to Elements511393
-Node: Assigning Elements513857
-Node: Array Example514348
-Node: Scanning an Array516107
-Node: Controlling Scanning519129
-Ref: Controlling Scanning-Footnote-1525585
-Node: Numeric Array Subscripts525901
-Node: Uninitialized Subscripts528085
-Node: Delete529704
-Ref: Delete-Footnote-1532456
-Node: Multidimensional532513
-Node: Multiscanning535608
-Node: Arrays of Arrays537199
-Node: Arrays Summary541967
-Node: Functions544060
-Node: Built-in545098
-Node: Calling Built-in546251
-Node: Boolean Functions548247
-Node: Numeric Functions548801
-Ref: Numeric Functions-Footnote-1552828
-Ref: Numeric Functions-Footnote-2553476
-Ref: Numeric Functions-Footnote-3553524
-Node: String Functions553796
-Ref: String Functions-Footnote-1578638
-Ref: String Functions-Footnote-2578766
-Ref: String Functions-Footnote-3579014
-Node: Gory Details579101
-Ref: table-sub-escapes580892
-Ref: table-sub-proposed582412
-Ref: table-posix-sub583776
-Ref: table-gensub-escapes585318
-Ref: Gory Details-Footnote-1586142
-Node: I/O Functions586296
-Ref: table-system-return-values592750
-Ref: I/O Functions-Footnote-1594831
-Ref: I/O Functions-Footnote-2594979
-Node: Time Functions595099
-Ref: Time Functions-Footnote-1605770
-Ref: Time Functions-Footnote-2605838
-Ref: Time Functions-Footnote-3605996
-Ref: Time Functions-Footnote-4606107
-Ref: Time Functions-Footnote-5606219
-Ref: Time Functions-Footnote-6606446
-Node: Bitwise Functions606712
-Ref: table-bitwise-ops607306
-Ref: Bitwise Functions-Footnote-1613370
-Ref: Bitwise Functions-Footnote-2613543
-Node: Type Functions613734
-Node: I18N Functions617154
-Node: User-defined618805
-Node: Definition Syntax619617
-Ref: Definition Syntax-Footnote-1625311
-Node: Function Example625382
-Ref: Function Example-Footnote-1628304
-Node: Function Calling628326
-Node: Calling A Function628914
-Node: Variable Scope629872
-Node: Pass By Value/Reference632866
-Node: Function Caveats635510
-Ref: Function Caveats-Footnote-1637557
-Node: Return Statement637677
-Node: Dynamic Typing640656
-Node: Indirect Calls641586
-Node: Functions Summary652513
-Node: Library Functions655218
-Ref: Library Functions-Footnote-1658825
-Ref: Library Functions-Footnote-2658968
-Node: Library Names659139
-Ref: Library Names-Footnote-1662806
-Ref: Library Names-Footnote-2663029
-Node: General Functions663115
-Node: Strtonum Function664297
-Node: Assert Function667319
-Node: Round Function670645
-Node: Cliff Random Function672185
-Node: Ordinal Functions673201
-Ref: Ordinal Functions-Footnote-1676264
-Ref: Ordinal Functions-Footnote-2676516
-Node: Join Function676726
-Ref: Join Function-Footnote-1678496
-Node: Getlocaltime Function678696
-Node: Readfile Function682438
-Node: Shell Quoting684415
-Node: Isnumeric Function685843
-Node: Data File Management687231
-Node: Filetrans Function687863
-Node: Rewind Function691959
-Node: File Checking693868
-Ref: File Checking-Footnote-1695202
-Node: Empty Files695403
-Node: Ignoring Assigns697382
-Node: Getopt Function698932
-Ref: Getopt Function-Footnote-1714229
-Node: Passwd Functions714429
-Ref: Passwd Functions-Footnote-1723268
-Node: Group Functions723356
-Ref: Group Functions-Footnote-1731254
-Node: Walking Arrays731461
-Node: Library Functions Summary734469
-Node: Library Exercises735875
-Node: Sample Programs736340
-Node: Running Examples737110
-Node: Clones737838
-Node: Cut Program739062
-Node: Egrep Program749202
-Node: Id Program758203
-Node: Split Program768138
-Ref: Split Program-Footnote-1778031
-Node: Tee Program778204
-Node: Uniq Program780994
-Node: Wc Program788582
-Node: Bytes vs. Characters788969
-Node: Using extensions790517
-Node: wc program791271
-Node: Miscellaneous Programs796136
-Node: Dupword Program797349
-Node: Alarm Program799379
-Node: Translate Program804234
-Ref: Translate Program-Footnote-1808799
-Node: Labels Program809069
-Ref: Labels Program-Footnote-1812420
-Node: Word Sorting812504
-Node: History Sorting816576
-Node: Extract Program818801
-Node: Simple Sed826814
-Node: Igawk Program829888
-Ref: Igawk Program-Footnote-1844219
-Ref: Igawk Program-Footnote-2844421
-Ref: Igawk Program-Footnote-3844543
-Node: Anagram Program844658
-Node: Signature Program847720
-Node: Programs Summary848967
-Node: Programs Exercises850181
-Ref: Programs Exercises-Footnote-1854311
-Node: Advanced Features854397
-Node: Nondecimal Data856528
-Node: Boolean Typed Values858126
-Node: Array Sorting860007
-Node: Controlling Array Traversal860712
-Ref: Controlling Array Traversal-Footnote-1869080
-Node: Array Sorting Functions869198
-Ref: Array Sorting Functions-Footnote-1874572
-Node: Two-way I/O874768
-Ref: Two-way I/O-Footnote-1882494
-Ref: Two-way I/O-Footnote-2882681
-Node: TCP/IP Networking882763
-Node: Profiling885839
-Node: Extension Philosophy895148
-Node: Advanced Features Summary896627
-Node: Internationalization898642
-Node: I18N and L10N900316
-Node: Explaining gettext901003
-Ref: Explaining gettext-Footnote-1906895
-Ref: Explaining gettext-Footnote-2907080
-Node: Programmer i18n907245
-Ref: Programmer i18n-Footnote-1912194
-Node: Translator i18n912243
-Node: String Extraction913037
-Ref: String Extraction-Footnote-1914169
-Node: Printf Ordering914255
-Ref: Printf Ordering-Footnote-1917041
-Node: I18N Portability917105
-Ref: I18N Portability-Footnote-1919561
-Node: I18N Example919624
-Ref: I18N Example-Footnote-1922899
-Ref: I18N Example-Footnote-2922972
-Node: Gawk I18N923081
-Node: I18N Summary923703
-Node: Debugger925044
-Node: Debugging926044
-Node: Debugging Concepts926485
-Node: Debugging Terms928294
-Node: Awk Debugging930869
-Ref: Awk Debugging-Footnote-1931814
-Node: Sample Debugging Session931946
-Node: Debugger Invocation932480
-Node: Finding The Bug933866
-Node: List of Debugger Commands940340
-Node: Breakpoint Control941673
-Node: Debugger Execution Control945367
-Node: Viewing And Changing Data948729
-Node: Execution Stack952270
-Node: Debugger Info953907
-Node: Miscellaneous Debugger Commands957978
-Node: Readline Support963040
-Node: Limitations963936
-Node: Debugging Summary966490
-Node: Namespaces967769
-Node: Global Namespace968880
-Node: Qualified Names970278
-Node: Default Namespace971277
-Node: Changing The Namespace972018
-Node: Naming Rules973632
-Node: Internal Name Management975480
-Node: Namespace Example976522
-Node: Namespace And Features979084
-Node: Namespace Summary980519
-Node: Arbitrary Precision Arithmetic981996
-Node: Computer Arithmetic983483
-Ref: table-numeric-ranges987249
-Ref: table-floating-point-ranges987743
-Ref: Computer Arithmetic-Footnote-1988402
-Node: Math Definitions988459
-Ref: table-ieee-formats991435
-Node: MPFR features992003
-Node: FP Math Caution993721
-Ref: FP Math Caution-Footnote-1994793
-Node: Inexactness of computations995162
-Node: Inexact representation996193
-Node: Comparing FP Values997553
-Node: Errors accumulate998794
-Node: Strange values1000250
-Ref: Strange values-Footnote-11002838
-Node: Getting Accuracy1002943
-Node: Try To Round1005653
-Node: Setting precision1006552
-Ref: table-predefined-precision-strings1007249
-Node: Setting the rounding mode1009080
-Ref: table-gawk-rounding-modes1009454
-Ref: Setting the rounding mode-Footnote-11013386
-Node: Arbitrary Precision Integers1013565
-Ref: Arbitrary Precision Integers-Footnote-11016740
-Node: Checking for MPFR1016889
-Node: POSIX Floating Point Problems1018363
-Ref: POSIX Floating Point Problems-Footnote-11023016
-Node: Floating point summary1023054
-Node: Dynamic Extensions1025244
-Node: Extension Intro1026797
-Node: Plugin License1028063
-Node: Extension Mechanism Outline1028860
-Ref: figure-load-extension1029299
-Ref: figure-register-new-function1030865
-Ref: figure-call-new-function1031958
-Node: Extension API Description1034021
-Node: Extension API Functions Introduction1035734
-Ref: table-api-std-headers1037570
-Node: General Data Types1041820
-Ref: General Data Types-Footnote-11050526
-Node: Memory Allocation Functions1050825
-Ref: Memory Allocation Functions-Footnote-11055326
-Node: Constructor Functions1055425
-Node: API Ownership of MPFR and GMP Values1059078
-Node: Registration Functions1060391
-Node: Extension Functions1061091
-Node: Exit Callback Functions1066413
-Node: Extension Version String1067663
-Node: Input Parsers1068326
-Node: Output Wrappers1081047
-Node: Two-way processors1085559
-Node: Printing Messages1087824
-Ref: Printing Messages-Footnote-11088995
-Node: Updating ERRNO1089148
-Node: Requesting Values1089887
-Ref: table-value-types-returned1090624
-Node: Accessing Parameters1091733
-Node: Symbol Table Access1092970
-Node: Symbol table by name1093482
-Ref: Symbol table by name-Footnote-11096507
-Node: Symbol table by cookie1096635
-Ref: Symbol table by cookie-Footnote-11100820
-Node: Cached values1100884
-Ref: Cached values-Footnote-11104420
-Node: Array Manipulation1104573
-Ref: Array Manipulation-Footnote-11105664
-Node: Array Data Types1105701
-Ref: Array Data Types-Footnote-11108359
-Node: Array Functions1108451
-Node: Flattening Arrays1112949
-Node: Creating Arrays1119925
-Node: Redirection API1124692
-Node: Extension API Variables1127525
-Node: Extension Versioning1128236
-Ref: gawk-api-version1128665
-Node: Extension GMP/MPFR Versioning1130397
-Node: Extension API Informational Variables1132025
-Node: Extension API Boilerplate1133098
-Node: Changes from API V11137072
-Node: Finding Extensions1138644
-Node: Extension Example1139203
-Node: Internal File Description1140001
-Node: Internal File Ops1144081
-Ref: Internal File Ops-Footnote-11155431
-Node: Using Internal File Ops1155571
-Ref: Using Internal File Ops-Footnote-11157954
-Node: Extension Samples1158228
-Node: Extension Sample File Functions1159757
-Node: Extension Sample Fnmatch1167406
-Node: Extension Sample Fork1168893
-Node: Extension Sample Inplace1170111
-Node: Extension Sample Ord1173737
-Node: Extension Sample Readdir1174573
-Ref: table-readdir-file-types1175462
-Node: Extension Sample Revout1176530
-Node: Extension Sample Rev2way1177119
-Node: Extension Sample Read write array1177859
-Node: Extension Sample Readfile1179801
-Node: Extension Sample Time1180896
-Node: Extension Sample API Tests1182648
-Node: gawkextlib1183140
-Node: Extension summary1186058
-Node: Extension Exercises1189760
-Node: Language History1191002
-Node: V7/SVR3.11192658
-Node: SVR41194810
-Node: POSIX1196244
-Node: BTL1197625
-Node: POSIX/GNU1198354
-Node: Feature History1204132
-Node: Common Extensions1221307
-Node: Ranges and Locales1222590
-Ref: Ranges and Locales-Footnote-11227206
-Ref: Ranges and Locales-Footnote-21227233
-Ref: Ranges and Locales-Footnote-31227468
-Node: Contributors1227691
-Node: History summary1233688
-Node: Installation1235068
-Node: Gawk Distribution1236012
-Node: Getting1236496
-Node: Extracting1237459
-Node: Distribution contents1239097
-Node: Unix Installation1246158
-Node: Quick Installation1246962
-Node: Compiling with MPFR1249382
-Node: Shell Startup Files1250072
-Node: Additional Configuration Options1251161
-Node: Configuration Philosophy1253476
-Node: Compiling from Git1255872
-Node: Building the Documentation1256427
-Node: Non-Unix Installation1257811
-Node: PC Installation1258271
-Node: PC Binary Installation1259109
-Node: PC Compiling1259982
-Node: PC Using1261099
-Node: Cygwin1264652
-Node: MSYS1265876
-Node: VMS Installation1266478
-Node: VMS Compilation1267197
-Ref: VMS Compilation-Footnote-11268426
-Node: VMS Dynamic Extensions1268484
-Node: VMS Installation Details1270169
-Node: VMS Running1272431
-Node: VMS GNV1276710
-Node: Bugs1277424
-Node: Bug definition1278336
-Node: Bug address1281272
-Node: Usenet1284660
-Node: Performance bugs1285849
-Node: Asking for help1288770
-Node: Maintainers1290737
-Node: Other Versions1291931
-Node: Installation summary1300095
-Node: Notes1301459
-Node: Compatibility Mode1302253
-Node: Additions1303035
-Node: Accessing The Source1303960
-Node: Adding Code1305397
-Node: New Ports1311589
-Node: Derived Files1315964
-Ref: Derived Files-Footnote-11321624
-Ref: Derived Files-Footnote-21321659
-Ref: Derived Files-Footnote-31322257
-Node: Future Extensions1322371
-Node: Implementation Limitations1323029
-Node: Extension Design1324239
-Node: Old Extension Problems1325383
-Ref: Old Extension Problems-Footnote-11326901
-Node: Extension New Mechanism Goals1326958
-Ref: Extension New Mechanism Goals-Footnote-11330322
-Node: Extension Other Design Decisions1330511
-Node: Extension Future Growth1332624
-Node: Notes summary1333230
-Node: Basic Concepts1334388
-Node: Basic High Level1335069
-Ref: figure-general-flow1335351
-Ref: figure-process-flow1336037
-Ref: Basic High Level-Footnote-11339339
-Node: Basic Data Typing1339524
-Node: Glossary1342852
-Node: Copying1374739
-Node: GNU Free Documentation License1412282
-Node: Index1437402
+Ref: Options-Footnote-1139256
+Ref: Options-Footnote-2139487
+Node: Other Arguments139512
+Node: Naming Standard Input143523
+Node: Environment Variables144733
+Node: AWKPATH Variable145291
+Ref: AWKPATH Variable-Footnote-1148703
+Ref: AWKPATH Variable-Footnote-2148737
+Node: AWKLIBPATH Variable149108
+Ref: AWKLIBPATH Variable-Footnote-1150805
+Node: Other Environment Variables151180
+Node: Exit Status155132
+Node: Include Files155809
+Node: Loading Shared Libraries159499
+Node: Obsolete160927
+Node: Undocumented161619
+Node: Invoking Summary161916
+Node: Regexp164757
+Node: Regexp Usage166211
+Node: Escape Sequences168248
+Node: Regexp Operators174489
+Node: Regexp Operator Details174974
+Ref: Regexp Operator Details-Footnote-1182338
+Node: Interval Expressions182485
+Ref: Interval Expressions-Footnote-1184660
+Node: Bracket Expressions184758
+Ref: table-char-classes187234
+Node: Leftmost Longest190561
+Node: Computed Regexps191864
+Node: GNU Regexp Operators195291
+Node: Case-sensitivity198969
+Ref: Case-sensitivity-Footnote-1201835
+Ref: Case-sensitivity-Footnote-2202070
+Node: Regexp Summary202178
+Node: Reading Files203644
+Node: Records205913
+Node: awk split records206988
+Node: gawk split records211688
+Ref: gawk split records-Footnote-1216762
+Node: Fields216799
+Node: Nonconstant Fields219540
+Ref: Nonconstant Fields-Footnote-1221776
+Node: Changing Fields221980
+Node: Field Separators228011
+Node: Default Field Splitting230709
+Node: Regexp Field Splitting231827
+Node: Single Character Fields235504
+Node: Command Line Field Separator236564
+Node: Full Line Fields239782
+Ref: Full Line Fields-Footnote-1241304
+Ref: Full Line Fields-Footnote-2241350
+Node: Field Splitting Summary241451
+Node: Constant Size243525
+Node: Fixed width data244257
+Node: Skipping intervening247724
+Node: Allowing trailing data248522
+Node: Fields with fixed data249559
+Node: Splitting By Content251077
+Ref: Splitting By Content-Footnote-1254913
+Node: More CSV255076
+Node: FS versus FPAT256691
+Node: Testing field creation257851
+Node: Multiple Line259476
+Node: Getline265753
+Node: Plain Getline268222
+Node: Getline/Variable270795
+Node: Getline/File271946
+Node: Getline/Variable/File273334
+Ref: Getline/Variable/File-Footnote-1274939
+Node: Getline/Pipe275027
+Node: Getline/Variable/Pipe277731
+Node: Getline/Coprocess278866
+Node: Getline/Variable/Coprocess280133
+Node: Getline Notes280875
+Node: Getline Summary283672
+Ref: table-getline-variants284096
+Node: Read Timeout284845
+Ref: Read Timeout-Footnote-1288751
+Node: Retrying Input288809
+Node: Command-line directories290008
+Node: Input Summary290914
+Node: Input Exercises294086
+Node: Printing294520
+Node: Print296354
+Node: Print Examples297811
+Node: Output Separators300591
+Node: OFMT302608
+Node: Printf303964
+Node: Basic Printf304749
+Node: Control Letters306323
+Node: Format Modifiers311485
+Node: Printf Examples317500
+Node: Redirection319986
+Node: Special FD326827
+Ref: Special FD-Footnote-1329995
+Node: Special Files330069
+Node: Other Inherited Files330686
+Node: Special Network331687
+Node: Special Caveats332547
+Node: Close Files And Pipes333496
+Ref: table-close-pipe-return-values340403
+Ref: Close Files And Pipes-Footnote-1341217
+Ref: Close Files And Pipes-Footnote-2341365
+Node: Nonfatal341517
+Node: Output Summary343855
+Node: Output Exercises345077
+Node: Expressions345756
+Node: Values346944
+Node: Constants347622
+Node: Scalar Constants348313
+Ref: Scalar Constants-Footnote-1350823
+Node: Nondecimal-numbers351073
+Node: Regexp Constants354074
+Node: Using Constant Regexps354600
+Node: Standard Regexp Constants355222
+Node: Strong Regexp Constants358410
+Node: Variables362125
+Node: Using Variables362782
+Node: Assignment Options364692
+Node: Conversion367163
+Node: Strings And Numbers367687
+Ref: Strings And Numbers-Footnote-1370750
+Node: Locale influences conversions370859
+Ref: table-locale-affects373617
+Node: All Operators374236
+Node: Arithmetic Ops374865
+Node: Concatenation377581
+Ref: Concatenation-Footnote-1380428
+Node: Assignment Ops380535
+Ref: table-assign-ops385526
+Node: Increment Ops386840
+Node: Truth Values and Conditions390300
+Node: Truth Values391374
+Node: Typing and Comparison392422
+Node: Variable Typing393242
+Ref: Variable Typing-Footnote-1399705
+Ref: Variable Typing-Footnote-2399777
+Node: Comparison Operators399854
+Ref: table-relational-ops400273
+Node: POSIX String Comparison403769
+Ref: POSIX String Comparison-Footnote-1405464
+Ref: POSIX String Comparison-Footnote-2405603
+Node: Boolean Ops405687
+Ref: Boolean Ops-Footnote-1410169
+Node: Conditional Exp410261
+Node: Function Calls411997
+Node: Precedence415874
+Node: Locales419533
+Node: Expressions Summary421165
+Node: Patterns and Actions423738
+Node: Pattern Overview424858
+Node: Regexp Patterns426535
+Node: Expression Patterns427077
+Node: Ranges430858
+Node: BEGIN/END433966
+Node: Using BEGIN/END434727
+Ref: Using BEGIN/END-Footnote-1437481
+Node: I/O And BEGIN/END437587
+Node: Empty443131
+Node: Using Shell Variables443448
+Node: Action Overview445722
+Node: Statements448047
+Node: If Statement449895
+Node: While Statement451390
+Node: Do Statement453418
+Node: For Statement454566
+Node: Switch Statement457821
+Node: Break Statement460262
+Node: Continue Statement462354
+Node: Next Statement464181
+Node: Nextfile Statement466564
+Node: Exit Statement469253
+Node: Built-in Variables471656
+Node: User-modified472789
+Node: Auto-set480556
+Ref: Auto-set-Footnote-1497363
+Ref: Auto-set-Footnote-2497569
+Node: ARGC and ARGV497625
+Node: Pattern Action Summary501838
+Node: Arrays504268
+Node: Array Basics505597
+Node: Array Intro506441
+Ref: figure-array-elements508416
+Ref: Array Intro-Footnote-1511121
+Node: Reference to Elements511249
+Node: Assigning Elements513713
+Node: Array Example514204
+Node: Scanning an Array515963
+Node: Controlling Scanning518985
+Ref: Controlling Scanning-Footnote-1525441
+Node: Numeric Array Subscripts525757
+Node: Uninitialized Subscripts527941
+Node: Delete529560
+Ref: Delete-Footnote-1532312
+Node: Multidimensional532369
+Node: Multiscanning535464
+Node: Arrays of Arrays537055
+Node: Arrays Summary541823
+Node: Functions543916
+Node: Built-in544954
+Node: Calling Built-in546107
+Node: Boolean Functions548103
+Node: Numeric Functions548657
+Ref: Numeric Functions-Footnote-1552684
+Ref: Numeric Functions-Footnote-2553332
+Ref: Numeric Functions-Footnote-3553380
+Node: String Functions553652
+Ref: String Functions-Footnote-1578494
+Ref: String Functions-Footnote-2578622
+Ref: String Functions-Footnote-3578870
+Node: Gory Details578957
+Ref: table-sub-escapes580748
+Ref: table-sub-proposed582268
+Ref: table-posix-sub583632
+Ref: table-gensub-escapes585174
+Ref: Gory Details-Footnote-1585998
+Node: I/O Functions586152
+Ref: table-system-return-values592606
+Ref: I/O Functions-Footnote-1594687
+Ref: I/O Functions-Footnote-2594835
+Node: Time Functions594955
+Ref: Time Functions-Footnote-1605626
+Ref: Time Functions-Footnote-2605694
+Ref: Time Functions-Footnote-3605852
+Ref: Time Functions-Footnote-4605963
+Ref: Time Functions-Footnote-5606075
+Ref: Time Functions-Footnote-6606302
+Node: Bitwise Functions606568
+Ref: table-bitwise-ops607162
+Ref: Bitwise Functions-Footnote-1613226
+Ref: Bitwise Functions-Footnote-2613399
+Node: Type Functions613590
+Node: I18N Functions617010
+Node: User-defined618661
+Node: Definition Syntax619473
+Ref: Definition Syntax-Footnote-1625167
+Node: Function Example625238
+Ref: Function Example-Footnote-1628160
+Node: Function Calling628182
+Node: Calling A Function628770
+Node: Variable Scope629728
+Node: Pass By Value/Reference632722
+Node: Function Caveats635366
+Ref: Function Caveats-Footnote-1637413
+Node: Return Statement637533
+Node: Dynamic Typing640512
+Node: Indirect Calls641442
+Node: Functions Summary652369
+Node: Library Functions655074
+Ref: Library Functions-Footnote-1658681
+Ref: Library Functions-Footnote-2658824
+Node: Library Names658995
+Ref: Library Names-Footnote-1662662
+Ref: Library Names-Footnote-2662885
+Node: General Functions662971
+Node: Strtonum Function664153
+Node: Assert Function667175
+Node: Round Function670501
+Node: Cliff Random Function672041
+Node: Ordinal Functions673057
+Ref: Ordinal Functions-Footnote-1676120
+Ref: Ordinal Functions-Footnote-2676372
+Node: Join Function676582
+Ref: Join Function-Footnote-1678352
+Node: Getlocaltime Function678552
+Node: Readfile Function682294
+Node: Shell Quoting684271
+Node: Isnumeric Function685699
+Node: Data File Management687087
+Node: Filetrans Function687719
+Node: Rewind Function691815
+Node: File Checking693724
+Ref: File Checking-Footnote-1695058
+Node: Empty Files695259
+Node: Ignoring Assigns697238
+Node: Getopt Function698788
+Ref: Getopt Function-Footnote-1714085
+Node: Passwd Functions714285
+Ref: Passwd Functions-Footnote-1723124
+Node: Group Functions723212
+Ref: Group Functions-Footnote-1731110
+Node: Walking Arrays731317
+Node: Library Functions Summary734325
+Node: Library Exercises735731
+Node: Sample Programs736196
+Node: Running Examples736966
+Node: Clones737694
+Node: Cut Program738918
+Node: Egrep Program749058
+Node: Id Program758059
+Node: Split Program767994
+Ref: Split Program-Footnote-1777887
+Node: Tee Program778060
+Node: Uniq Program780850
+Node: Wc Program788438
+Node: Bytes vs. Characters788825
+Node: Using extensions790373
+Node: wc program791127
+Node: Miscellaneous Programs795992
+Node: Dupword Program797205
+Node: Alarm Program799235
+Node: Translate Program804090
+Ref: Translate Program-Footnote-1808655
+Node: Labels Program808925
+Ref: Labels Program-Footnote-1812276
+Node: Word Sorting812360
+Node: History Sorting816432
+Node: Extract Program818657
+Node: Simple Sed826670
+Node: Igawk Program829744
+Ref: Igawk Program-Footnote-1844075
+Ref: Igawk Program-Footnote-2844277
+Ref: Igawk Program-Footnote-3844399
+Node: Anagram Program844514
+Node: Signature Program847576
+Node: Programs Summary848823
+Node: Programs Exercises850037
+Ref: Programs Exercises-Footnote-1854167
+Node: Advanced Features854253
+Node: Nondecimal Data856384
+Node: Boolean Typed Values857982
+Node: Array Sorting859863
+Node: Controlling Array Traversal860568
+Ref: Controlling Array Traversal-Footnote-1868936
+Node: Array Sorting Functions869054
+Ref: Array Sorting Functions-Footnote-1874428
+Node: Two-way I/O874624
+Ref: Two-way I/O-Footnote-1882350
+Ref: Two-way I/O-Footnote-2882537
+Node: TCP/IP Networking882619
+Node: Profiling885695
+Node: Extension Philosophy895004
+Node: Advanced Features Summary896483
+Node: Internationalization898498
+Node: I18N and L10N900172
+Node: Explaining gettext900859
+Ref: Explaining gettext-Footnote-1906751
+Ref: Explaining gettext-Footnote-2906936
+Node: Programmer i18n907101
+Ref: Programmer i18n-Footnote-1912050
+Node: Translator i18n912099
+Node: String Extraction912893
+Ref: String Extraction-Footnote-1914025
+Node: Printf Ordering914111
+Ref: Printf Ordering-Footnote-1916897
+Node: I18N Portability916961
+Ref: I18N Portability-Footnote-1919417
+Node: I18N Example919480
+Ref: I18N Example-Footnote-1922755
+Ref: I18N Example-Footnote-2922828
+Node: Gawk I18N922937
+Node: I18N Summary923559
+Node: Debugger924900
+Node: Debugging925900
+Node: Debugging Concepts926341
+Node: Debugging Terms928150
+Node: Awk Debugging930725
+Ref: Awk Debugging-Footnote-1931670
+Node: Sample Debugging Session931802
+Node: Debugger Invocation932336
+Node: Finding The Bug933722
+Node: List of Debugger Commands940196
+Node: Breakpoint Control941529
+Node: Debugger Execution Control945223
+Node: Viewing And Changing Data948585
+Node: Execution Stack952126
+Node: Debugger Info953763
+Node: Miscellaneous Debugger Commands957834
+Node: Readline Support962896
+Node: Limitations963792
+Node: Debugging Summary966346
+Node: Namespaces967625
+Node: Global Namespace968736
+Node: Qualified Names970134
+Node: Default Namespace971133
+Node: Changing The Namespace971874
+Node: Naming Rules973488
+Node: Internal Name Management975336
+Node: Namespace Example976378
+Node: Namespace And Features978940
+Node: Namespace Summary980375
+Node: Arbitrary Precision Arithmetic981852
+Node: Computer Arithmetic983339
+Ref: table-numeric-ranges987105
+Ref: table-floating-point-ranges987599
+Ref: Computer Arithmetic-Footnote-1988258
+Node: Math Definitions988315
+Ref: table-ieee-formats991291
+Node: MPFR features991859
+Node: FP Math Caution993577
+Ref: FP Math Caution-Footnote-1994649
+Node: Inexactness of computations995018
+Node: Inexact representation996049
+Node: Comparing FP Values997409
+Node: Errors accumulate998650
+Node: Strange values1000106
+Ref: Strange values-Footnote-11002694
+Node: Getting Accuracy1002799
+Node: Try To Round1005509
+Node: Setting precision1006408
+Ref: table-predefined-precision-strings1007105
+Node: Setting the rounding mode1008936
+Ref: table-gawk-rounding-modes1009310
+Ref: Setting the rounding mode-Footnote-11013242
+Node: Arbitrary Precision Integers1013421
+Ref: Arbitrary Precision Integers-Footnote-11016596
+Node: Checking for MPFR1016745
+Node: POSIX Floating Point Problems1018219
+Ref: POSIX Floating Point Problems-Footnote-11022872
+Node: Floating point summary1022910
+Node: Dynamic Extensions1025100
+Node: Extension Intro1026653
+Node: Plugin License1027919
+Node: Extension Mechanism Outline1028716
+Ref: figure-load-extension1029155
+Ref: figure-register-new-function1030721
+Ref: figure-call-new-function1031814
+Node: Extension API Description1033877
+Node: Extension API Functions Introduction1035590
+Ref: table-api-std-headers1037426
+Node: General Data Types1041676
+Ref: General Data Types-Footnote-11050382
+Node: Memory Allocation Functions1050681
+Ref: Memory Allocation Functions-Footnote-11055182
+Node: Constructor Functions1055281
+Node: API Ownership of MPFR and GMP Values1058934
+Node: Registration Functions1060247
+Node: Extension Functions1060947
+Node: Exit Callback Functions1066269
+Node: Extension Version String1067519
+Node: Input Parsers1068182
+Node: Output Wrappers1080903
+Node: Two-way processors1085415
+Node: Printing Messages1087680
+Ref: Printing Messages-Footnote-11088851
+Node: Updating ERRNO1089004
+Node: Requesting Values1089743
+Ref: table-value-types-returned1090480
+Node: Accessing Parameters1091589
+Node: Symbol Table Access1092826
+Node: Symbol table by name1093338
+Ref: Symbol table by name-Footnote-11096363
+Node: Symbol table by cookie1096491
+Ref: Symbol table by cookie-Footnote-11100676
+Node: Cached values1100740
+Ref: Cached values-Footnote-11104276
+Node: Array Manipulation1104429
+Ref: Array Manipulation-Footnote-11105520
+Node: Array Data Types1105557
+Ref: Array Data Types-Footnote-11108215
+Node: Array Functions1108307
+Node: Flattening Arrays1112805
+Node: Creating Arrays1119781
+Node: Redirection API1124548
+Node: Extension API Variables1127381
+Node: Extension Versioning1128092
+Ref: gawk-api-version1128521
+Node: Extension GMP/MPFR Versioning1130253
+Node: Extension API Informational Variables1131881
+Node: Extension API Boilerplate1132954
+Node: Changes from API V11136928
+Node: Finding Extensions1138500
+Node: Extension Example1139059
+Node: Internal File Description1139857
+Node: Internal File Ops1143937
+Ref: Internal File Ops-Footnote-11155287
+Node: Using Internal File Ops1155427
+Ref: Using Internal File Ops-Footnote-11157810
+Node: Extension Samples1158084
+Node: Extension Sample File Functions1159613
+Node: Extension Sample Fnmatch1167262
+Node: Extension Sample Fork1168749
+Node: Extension Sample Inplace1169967
+Node: Extension Sample Ord1173593
+Node: Extension Sample Readdir1174429
+Ref: table-readdir-file-types1175318
+Node: Extension Sample Revout1176386
+Node: Extension Sample Rev2way1176975
+Node: Extension Sample Read write array1177715
+Node: Extension Sample Readfile1179657
+Node: Extension Sample Time1180752
+Node: Extension Sample API Tests1182504
+Node: gawkextlib1182996
+Node: Extension summary1185914
+Node: Extension Exercises1189616
+Node: Language History1190858
+Node: V7/SVR3.11192514
+Node: SVR41194666
+Node: POSIX1196100
+Node: BTL1197481
+Node: POSIX/GNU1198210
+Node: Feature History1203988
+Node: Common Extensions1221163
+Node: Ranges and Locales1222446
+Ref: Ranges and Locales-Footnote-11227062
+Ref: Ranges and Locales-Footnote-21227089
+Ref: Ranges and Locales-Footnote-31227324
+Node: Contributors1227547
+Node: History summary1233544
+Node: Installation1234924
+Node: Gawk Distribution1235868
+Node: Getting1236352
+Node: Extracting1237315
+Node: Distribution contents1238953
+Node: Unix Installation1246014
+Node: Quick Installation1246818
+Node: Compiling with MPFR1249238
+Node: Shell Startup Files1249928
+Node: Additional Configuration Options1251017
+Node: Configuration Philosophy1253332
+Node: Compiling from Git1255728
+Node: Building the Documentation1256283
+Node: Non-Unix Installation1257667
+Node: PC Installation1258127
+Node: PC Binary Installation1258965
+Node: PC Compiling1259838
+Node: PC Using1260955
+Node: Cygwin1264508
+Node: MSYS1265732
+Node: VMS Installation1266334
+Node: VMS Compilation1267053
+Ref: VMS Compilation-Footnote-11268282
+Node: VMS Dynamic Extensions1268340
+Node: VMS Installation Details1270025
+Node: VMS Running1272287
+Node: VMS GNV1276566
+Node: Bugs1277280
+Node: Bug definition1278192
+Node: Bug address1281128
+Node: Usenet1284516
+Node: Performance bugs1285705
+Node: Asking for help1288626
+Node: Maintainers1290593
+Node: Other Versions1291787
+Node: Installation summary1299951
+Node: Notes1301315
+Node: Compatibility Mode1302109
+Node: Additions1302891
+Node: Accessing The Source1303816
+Node: Adding Code1305253
+Node: New Ports1311445
+Node: Derived Files1315820
+Ref: Derived Files-Footnote-11321480
+Ref: Derived Files-Footnote-21321515
+Ref: Derived Files-Footnote-31322113
+Node: Future Extensions1322227
+Node: Implementation Limitations1322885
+Node: Extension Design1324095
+Node: Old Extension Problems1325239
+Ref: Old Extension Problems-Footnote-11326757
+Node: Extension New Mechanism Goals1326814
+Ref: Extension New Mechanism Goals-Footnote-11330178
+Node: Extension Other Design Decisions1330367
+Node: Extension Future Growth1332480
+Node: Notes summary1333086
+Node: Basic Concepts1334244
+Node: Basic High Level1334925
+Ref: figure-general-flow1335207
+Ref: figure-process-flow1335893
+Ref: Basic High Level-Footnote-11339195
+Node: Basic Data Typing1339380
+Node: Glossary1342708
+Node: Copying1374595
+Node: GNU Free Documentation License1412138
+Node: Index1437258
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index bfd1a00b..5881a3b8 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -4321,8 +4321,7 @@ Allow interval expressions
 (@pxref{Regexp Operators})
 in regexps.
 This is now @command{gawk}'s default behavior.
-Nevertheless, this option remains (both for backward compatibility
-and for use in combination with @option{--traditional}).
+Nevertheless, this option remains for backward compatibility.
 @item @option{-s}
 @itemx @option{--no-optimize}
@@ -6110,11 +6109,12 @@ When @samp{@{} and @samp{@}} appear in regexp constants
 in a way that cannot be interpreted as an interval expression
 (such as @code{/q@{a@}/}), then they stand for themselves.
+@cindex BWK @command{awk} @subentry interval expressions in
 As mentioned, interval expressions were not traditionally available
 in @command{awk}. In March of 2019, BWK @command{awk} (finally) acquired them.
-Nonetheless, because they were not available for
-so many decades, @command{gawk} continues to not supply them
-when in compatibility mode (@pxref{Options}).
+Starting with @value{PVERSION} 5.2, @command{gawk}'s
+@option{--traditional} option no longer disables interval
+expressions in regular expressions.
 POSIX says that interval expressions containing repetition counts greater
 than 255 produce unspecified results.
@@ -6678,16 +6678,15 @@ are allowed.
 @cindex Brian Kernighan's @command{awk}
 @item @option{--traditional}
 Match traditional Unix @command{awk} regexps. The GNU operators
-are not special, and interval expressions are not available.
-Because BWK @command{awk} supports them,
+are not special.  Because BWK @command{awk} supports them,
 the POSIX character classes (@samp{[[:alnum:]]}, etc.) are available.
+So too, interval expressions are allowed.
 Characters described by octal and hexadecimal escape sequences are
 treated literally, even if they represent regexp metacharacters.
 @item @option{--re-interval}
-Allow interval expressions in regexps, if @option{--traditional}
-has been provided.
-Otherwise, interval expressions are available by default.
+This option remains for backwards compatibility but no longer has any
+real effect.
 @end table
 @node Case-sensitivity
diff --git a/doc/ b/doc/
index 66de1068..8ad59282 100644
--- a/doc/
+++ b/doc/
@@ -4231,8 +4231,7 @@ Allow interval expressions
 (@pxref{Regexp Operators})
 in regexps.
 This is now @command{gawk}'s default behavior.
-Nevertheless, this option remains (both for backward compatibility
-and for use in combination with @option{--traditional}).
+Nevertheless, this option remains for backward compatibility.
 @item @option{-s}
 @itemx @option{--no-optimize}
@@ -5838,11 +5837,12 @@ When @samp{@{} and @samp{@}} appear in regexp constants
 in a way that cannot be interpreted as an interval expression
 (such as @code{/q@{a@}/}), then they stand for themselves.
+@cindex BWK @command{awk} @subentry interval expressions in
 As mentioned, interval expressions were not traditionally available
 in @command{awk}. In March of 2019, BWK @command{awk} (finally) acquired them.
-Nonetheless, because they were not available for
-so many decades, @command{gawk} continues to not supply them
-when in compatibility mode (@pxref{Options}).
+Starting with @value{PVERSION} 5.2, @command{gawk}'s
+@option{--traditional} option no longer disables interval
+expressions in regular expressions.
 POSIX says that interval expressions containing repetition counts greater
 than 255 produce unspecified results.
@@ -6362,16 +6362,15 @@ are allowed.
 @cindex Brian Kernighan's @command{awk}
 @item @option{--traditional}
 Match traditional Unix @command{awk} regexps. The GNU operators
-are not special, and interval expressions are not available.
-Because BWK @command{awk} supports them,
+are not special.  Because BWK @command{awk} supports them,
 the POSIX character classes (@samp{[[:alnum:]]}, etc.) are available.
+So too, interval expressions are allowed.
 Characters described by octal and hexadecimal escape sequences are
 treated literally, even if they represent regexp metacharacters.
 @item @option{--re-interval}
-Allow interval expressions in regexps, if @option{--traditional}
-has been provided.
-Otherwise, interval expressions are available by default.
+This option remains for backwards compatibility but no longer has any
+real effect.
 @end table
 @node Case-sensitivity
diff --git a/main.c b/main.c
index c88c23a6..7d14c8bf 100644
--- a/main.c
+++ b/main.c
@@ -368,8 +368,12 @@ main(int argc, char **argv)
-       if (do_lint && os_is_setuid())
-               lintwarn(_("running %s setuid root may be a security problem"), 
+       if (do_lint) {
+               if (os_is_setuid())
+                       lintwarn(_("running %s setuid root may be a security 
problem"), myname);
+               if (do_intervals)
+                       lintwarn(_("The -r/--re-interval options no longer have 
any effect"));
+       }
        if (do_debug)   /* Need to register the debugger pre-exec hook before 
any other */
@@ -1688,6 +1692,8 @@ parse_args(int argc, char **argv)
                case 'r':
+                       // This no longer has any effect. It remains for the
+                       // lint check in main().
                        do_flags |= DO_INTERVALS;
diff --git a/re.c b/re.c
index fd134727..1e959373 100644
--- a/re.c
+++ b/re.c
@@ -478,10 +478,16 @@ resetup()
         * Interval expressions are now on by default, as POSIX is
-        * wide-spread enough that people want it. The do_intervals
-        * variable remains for use with --traditional.
+        * wide-spread enough that people want it.
+        *
+        * 2/2022: BWK awk has supported interval expressions since
+        * March 2019, with an important fix added in Januay 2020.
+        * So we add that support even for --traditional. It's easier to
+        * do it here than to try to get the GLIBC / GNULIB folks to change
+        * the definition of RE_SYNTAX_AWK, which likely would cause
+        * binary compatibility issues.
-       if (do_intervals)
+       if (do_traditional)
        (void) re_set_syntax(syn);

commit f8f77e08c471d62bb462db5498f1980c564cdc78
Merge: fa4cc1fb d980a792
Author: Arnold D. Robbins <>
Date:   Tue Feb 22 20:19:13 2022 +0200

    Merge branch 'gawk-5.1-stable'

commit fa4cc1fb8ba39038e7ee1eba3b9d08bfeddb1f37
Merge: 8d9d0c5b 80de2f7c
Author: Arnold D. Robbins <>
Date:   Tue Feb 22 20:15:04 2022 +0200

    Merge branch 'gawk-5.1-stable'


Summary of changes:
 ChangeLog            |   20 +
 NEWS                 |    4 +
 doc/ChangeLog        |    5 +
 doc/       |    3 +-
 doc/        | 1199 +++++++++++++++++++++++++-------------------------
 doc/gawk.texi        |   19 +-
 doc/      |   19 +-
 ext.c                |    1 +
 extension/ChangeLog  |    7 +
 extension/readfile.c |    4 +-
 io.c                 |    4 +-
 main.c               |   10 +-
 re.c                 |   12 +-
 symbol.c             |    1 +
 14 files changed, 678 insertions(+), 630 deletions(-)


reply via email to

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