[Top][All Lists]

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

[SCM] gawk branch, master, updated. gawk-4.1.0-5195-g1bc73bfb

From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-5195-g1bc73bfb
Date: Sun, 26 Mar 2023 05:20:31 -0400 (EDT)

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  1bc73bfb10f0600aaccca7220b5200e220f9a71a (commit)
       via  3489f4036f91d11d8cff1fbcb8dc17f2012546a3 (commit)
       via  5b82f0db728b5495ac4c46df41bc02e3efc7fbf6 (commit)
       via  e7e10331fafe73ed63b77969823aa06b77285c40 (commit)
       via  79b94a400aa1fbcf26e0535c1f6345ea7c1fbb54 (commit)
       via  e7720935594d7442f92eecbe08eb69857aab8c4e (commit)
       via  0928a907b0c8a5f98f771dcd0ad2aaf0e32dffbe (commit)
       via  95dfb8f29b2a3ab2feaa823dc2dc03f4f6dada89 (commit)
      from  2076c201221a190786e554c12a322ecea46caee1 (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 1bc73bfb10f0600aaccca7220b5200e220f9a71a
Merge: 2076c201 3489f403
Author: Arnold D. Robbins <>
Date:   Sun Mar 26 12:20:05 2023 +0300

    Merge branch 'feature/backslash-u'

diff --cc doc/ChangeLog
index c9c346d2,6c557b98..4accab5d
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@@ -1,7 -1,9 +1,13 @@@
 +2023-03-26         Arnold D. Robbins     <>
 +      * texinfo.tex: Sync from GNULIB.
+ 2023-03-23         Arnold D. Robbins     <>
+       * (Escape Sequences): Document \u.
+       (Feature History): Ditto.
+       * Add \u to list of escape sequences.
  2023-03-09         Arnold D. Robbins     <>
        * gawkworkflow.texi (UPDATE-MONTH, EDITION): Updated.

commit 3489f4036f91d11d8cff1fbcb8dc17f2012546a3
Author: Arnold D. Robbins <>
Date:   Fri Mar 24 12:48:05 2023 +0300

    Update ChangeLogs. Remove a lint message that wasn't needed.

diff --git a/ChangeLog b/ChangeLog
index 11c326b9..eca1e613 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2023-03-24         Arnold D. Robbins     <>
+       Add support for \u escape sequence.
+       * awk.h (parse_escaape): New bool* parameter for unicode.
+       * node.c (make_str_node): Deal with a \u escape.
+       (parse_escape): Handle \u.
+       * re.c (make_regexp): Deal with a \u escape.
 2023-03-09         Arnold D. Robbins     <>
        * gawkapi.h: Update copyright year. Small edit in leading comment.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1ef0c82a..6c557b98 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,5 +1,7 @@
 2023-03-23         Arnold D. Robbins     <>
+       * (Escape Sequences): Document \u.
+       (Feature History): Ditto.
        * Add \u to list of escape sequences.
 2023-03-09         Arnold D. Robbins     <>
diff --git a/node.c b/node.c
index e9b39c86..f2871bea 100644
--- a/node.c
+++ b/node.c
@@ -689,8 +689,6 @@ parse_escape(const char **string_ptr, bool *unicode)
-               if (do_lint && j == 8 && isxdigit((unsigned 
-                       lintwarn(_("\\u escape \\u%.*s of %d characters 
probably not interpreted the way you expect"), 8, start, 8);
                *unicode = true;
                return i;
        case '\\':
diff --git a/pc/ChangeLog b/pc/ChangeLog
index e809bfac..a69bbcc6 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,3 +1,7 @@
+2023-03-24         Arnold D. Robbins     <>
+       * Makefile.tst: Regenerated.
 2023-03-12  Eli Zaretskii  <>
        * Makefile.ext (readdir_test.$(SOEXT)): Fix typo.
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index 316d778c..504078a6 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -221,7 +221,7 @@ GAWK_EXT_TESTS = \
        symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \
        symtab11 symtab12 timeout typedregex1 typedregex2 typedregex3 \
        typedregex4 typedregex5 typedregex6 typeof1 typeof2 typeof3 \
-       typeof4 typeof5 typeof6 watchpoint1
+       typeof4 typeof5 typeof6 unicode1 watchpoint1
 EXTRA_TESTS = inftest regtest ignrcas3 
@@ -310,7 +310,7 @@ NEED_LOCALE_EN = \
        backbigs1 backsmalls1 backsmalls2 commas concat4 dfamb1 ignrcas2 
lc_num1 \
        mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 posix_compare \
        printhuge reint2 rri1 subamp subi18n wideidx wideidx2 \
-       widesub widesub2 widesub3 widesub4
+       widesub widesub2 widesub3 widesub4 unicode1
 # Unused at the moment, since nlstringtest has additional stuff it does
@@ -3563,6 +3563,12 @@ typeof6:
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+       @echo $@
+       @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
        @echo $@ $(ZOS_FAIL)
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
diff --git a/test/ChangeLog b/test/ChangeLog
index f16019f2..8853d068 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -2,6 +2,7 @@
        * (EXTRA_DIST): New test: unicode1.
        * unicode1.awk, unicode1.ok: New files.
+       * funstack.ok: Updated after code change.
 2023-03-09         Arnold D. Robbins     <>

commit 5b82f0db728b5495ac4c46df41bc02e3efc7fbf6
Author: Arnold D. Robbins <>
Date:   Thu Mar 23 20:41:03 2023 +0200

    Add some tests.

diff --git a/test/ChangeLog b/test/ChangeLog
index e206fa9b..f16019f2 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2023-03-23         Arnold D. Robbins     <>
+       * (EXTRA_DIST): New test: unicode1.
+       * unicode1.awk, unicode1.ok: New files.
 2023-03-09         Arnold D. Robbins     <>
        * badargs.ok: Update after code changes.
diff --git a/test/ b/test/
index 6d000178..00034a15 100644
--- a/test/
+++ b/test/
@@ -1404,6 +1404,8 @@ EXTRA_DIST = \
        typeof5.ok \
        typeof6.awk \
        typeof6.ok \
+       unicode1.awk \
+       unicode1.ok \
        uninit2.awk \
        uninit2.ok \
        uninit3.awk \
@@ -1537,7 +1539,7 @@ GAWK_EXT_TESTS = \
        symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \
        symtab11 symtab12 timeout typedregex1 typedregex2 typedregex3 \
        typedregex4 typedregex5 typedregex6 typeof1 typeof2 typeof3 \
-       typeof4 typeof5 typeof6 watchpoint1
+       typeof4 typeof5 typeof6 unicode1 watchpoint1
@@ -1625,7 +1627,7 @@ NEED_LOCALE_EN = \
        backbigs1 backsmalls1 backsmalls2 commas concat4 dfamb1 ignrcas2 
lc_num1 \
        mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 posix_compare \
        printhuge reint2 rri1 subamp subi18n wideidx wideidx2 \
-       widesub widesub2 widesub3 widesub4
+       widesub widesub2 widesub3 widesub4 unicode1
 # Unused at the moment, since nlstringtest has additional stuff it does
diff --git a/test/ b/test/
index 1cd775d1..d2343a7d 100644
--- a/test/
+++ b/test/
@@ -1668,6 +1668,8 @@ EXTRA_DIST = \
        typeof5.ok \
        typeof6.awk \
        typeof6.ok \
+       unicode1.awk \
+       unicode1.ok \
        uninit2.awk \
        uninit2.ok \
        uninit3.awk \
@@ -1801,7 +1803,7 @@ GAWK_EXT_TESTS = \
        symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \
        symtab11 symtab12 timeout typedregex1 typedregex2 typedregex3 \
        typedregex4 typedregex5 typedregex6 typeof1 typeof2 typeof3 \
-       typeof4 typeof5 typeof6 watchpoint1
+       typeof4 typeof5 typeof6 unicode1 watchpoint1
 EXTRA_TESTS = inftest regtest ignrcas3 
@@ -1890,7 +1892,7 @@ NEED_LOCALE_EN = \
        backbigs1 backsmalls1 backsmalls2 commas concat4 dfamb1 ignrcas2 
lc_num1 \
        mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 posix_compare \
        printhuge reint2 rri1 subamp subi18n wideidx wideidx2 \
-       widesub widesub2 widesub3 widesub4
+       widesub widesub2 widesub3 widesub4 unicode1
 # Unused at the moment, since nlstringtest has additional stuff it does
@@ -5322,6 +5324,12 @@ typeof6:
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+       @echo $@
+       @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
        @echo $@ $(ZOS_FAIL)
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index 628ff3fa..09d9c02c 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -2252,6 +2252,12 @@ typeof6:
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+       @echo $@
+       @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
        @echo $@ $(ZOS_FAIL)
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
diff --git a/test/unicode1.awk b/test/unicode1.awk
new file mode 100644
index 00000000..6f97a2d9
--- /dev/null
+++ b/test/unicode1.awk
@@ -0,0 +1,6 @@
+       print "\u03b1"  # alpha
+       print "\u05d0"  # alef
+       print "\u20b9f" # hiragana "a" (i think)
+       print "\u1f648" # see no evil monkey
diff --git a/test/unicode1.ok b/test/unicode1.ok
new file mode 100644
index 00000000..a8dbd054
--- /dev/null
+++ b/test/unicode1.ok
@@ -0,0 +1,4 @@

commit e7e10331fafe73ed63b77969823aa06b77285c40
Author: Arnold D. Robbins <>
Date:   Thu Mar 23 20:12:37 2023 +0200

    Doc update.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 3df4953d..1ef0c82a 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2023-03-23         Arnold D. Robbins     <>
+       * Add \u to list of escape sequences.
 2023-03-09         Arnold D. Robbins     <>
        * gawkworkflow.texi (UPDATE-MONTH, EDITION): Updated.
diff --git a/doc/ b/doc/
index ff55c1b5..908a5329 100644
--- a/doc/
+++ b/doc/
@@ -972,7 +972,8 @@ lp8 lp8 lp8 lp8.
 \*(FC\ef\fP~form feed~\*(FC\ev\fP~vertical tab
 \*(FC\e\*(FIddd\*(FR~octal value \*(FIddd\fP~\*(CL\*(FC\ex\*(FIhh\*(FR~hex 
value \*(FIhh\fP\*(CD
-\*(FC\e"\fP~double quote~\*(FC\e/\fP~forward slash\*(CX
+\*(FC\e"\fP~double quote~\*(FC\e/\fP~forward slash
+\*(CL\*(FC\eu\*(FIhh...\fR~unicode character\*(CX

commit 79b94a400aa1fbcf26e0535c1f6345ea7c1fbb54
Merge: e7720935 8bf639a1
Author: Arnold D. Robbins <>
Date:   Thu Mar 23 20:03:05 2023 +0200

    Merge branch 'master' into feature/backslash-u

diff --cc doc/
index 9ffe2a86,42c7ee5b..1cc523c5
--- a/doc/
+++ b/doc/
@@@ -39492,568 -39502,568 +39522,568 @@@ Ref: AWKLIBPATH Variable-Footnote-1156
  Node: Other Environment Variables157036
  Node: Exit Status161532
  Node: Include Files162247
- Node: Loading Shared Libraries166118
- Node: Obsolete167610
- Node: Undocumented168246
- Node: Invoking Summary168545
- Node: Regexp171572
- Node: Regexp Usage173066
- Node: Escape Sequences175167
- Node: Regexp Operators182503
- Node: Regexp Operator Details182996
- Ref: Regexp Operator Details-Footnote-1190862
- Node: Interval Expressions191021
- Ref: Interval Expressions-Footnote-1193290
- Node: Bracket Expressions193390
- Ref: table-char-classes195950
- Node: Leftmost Longest199472
- Node: Computed Regexps200832
- Node: GNU Regexp Operators204355
- Node: Case-sensitivity208378
- Ref: Case-sensitivity-Footnote-1211335
- Ref: Case-sensitivity-Footnote-2211580
- Node: Regexp Summary211696
- Node: Reading Files213220
- Node: Records215537
- Node: awk split records216648
- Node: gawk split records221538
- Ref: gawk split records-Footnote-1226832
- Node: Fields226869
- Node: Nonconstant Fields229756
- Ref: Nonconstant Fields-Footnote-1232067
- Node: Changing Fields232283
- Node: Field Separators238591
- Node: Default Field Splitting241464
- Node: Regexp Field Splitting242607
- Node: Single Character Fields246436
- Node: Comma Separated Fields247525
- Ref: table-csv-examples248813
- Node: Command Line Field Separator249765
- Node: Full Line Fields253151
- Ref: Full Line Fields-Footnote-1254731
- Ref: Full Line Fields-Footnote-2254777
- Node: Field Splitting Summary254885
- Node: Constant Size257164
- Node: Fixed width data257908
- Node: Skipping intervening261427
- Node: Allowing trailing data262229
- Node: Fields with fixed data263294
- Node: Splitting By Content264920
- Ref: Splitting By Content-Footnote-1269105
- Node: More CSV269268
- Node: FS versus FPAT270921
- Node: Testing field creation272130
- Node: Multiple Line273823
- Node: Getline280305
- Node: Plain Getline282891
- Node: Getline/Variable285541
- Node: Getline/File286738
- Node: Getline/Variable/File288186
- Ref: Getline/Variable/File-Footnote-1289831
- Node: Getline/Pipe289927
- Node: Getline/Variable/Pipe292740
- Node: Getline/Coprocess293923
- Node: Getline/Variable/Coprocess295246
- Node: Getline Notes296012
- Node: Getline Summary298973
- Ref: table-getline-variants299417
- Node: Read Timeout300322
- Ref: Read Timeout-Footnote-1304286
- Node: Retrying Input304344
- Node: Command-line directories305611
- Node: Input Summary306549
- Node: Input Exercises309929
- Node: Printing310369
- Node: Print312312
- Node: Print Examples313818
- Node: Output Separators316671
- Node: OFMT318782
- Node: Printf320205
- Node: Basic Printf321010
- Node: Control Letters322646
- Node: Format Modifiers328115
- Node: Printf Examples334401
- Node: Redirection336946
- Node: Special FD344020
- Ref: Special FD-Footnote-1347310
- Node: Special Files347396
- Node: Other Inherited Files348025
- Node: Special Network349090
- Node: Special Caveats349978
- Node: Close Files And Pipes350961
- Ref: Close Files And Pipes-Footnote-1357097
- Node: Close Return Value357253
- Ref: table-close-pipe-return-values358528
- Ref: Close Return Value-Footnote-1359362
- Node: Noflush359518
- Node: Nonfatal360990
- Node: Output Summary363407
- Node: Output Exercises364693
- Node: Expressions365384
- Node: Values366586
- Node: Constants367264
- Node: Scalar Constants367961
- Ref: Scalar Constants-Footnote-1370536
- Node: Nondecimal-numbers370786
- Node: Regexp Constants373907
- Node: Using Constant Regexps374453
- Node: Standard Regexp Constants375099
- Node: Strong Regexp Constants378399
- Node: Variables382250
- Node: Using Variables382915
- Node: Assignment Options384895
- Node: Conversion387457
- Node: Strings And Numbers387989
- Ref: Strings And Numbers-Footnote-1391208
- Node: Locale influences conversions391317
- Ref: table-locale-affects394167
- Node: All Operators394810
- Node: Arithmetic Ops395451
- Node: Concatenation398281
- Ref: Concatenation-Footnote-1401231
- Node: Assignment Ops401354
- Ref: table-assign-ops406493
- Node: Increment Ops407875
- Node: Truth Values and Conditions411474
- Node: Truth Values412600
- Node: Typing and Comparison413691
- Node: Variable Typing414527
- Ref: Variable Typing-Footnote-1421189
- Ref: Variable Typing-Footnote-2421269
- Node: Comparison Operators421352
- Ref: table-relational-ops421779
- Node: POSIX String Comparison425465
- Ref: POSIX String Comparison-Footnote-1427224
- Ref: POSIX String Comparison-Footnote-2427367
- Node: Boolean Ops427451
- Ref: Boolean Ops-Footnote-1432144
- Node: Conditional Exp432240
- Node: Function Calls434026
- Node: Precedence437976
- Node: Locales441853
- Node: Expressions Summary443535
- Node: Patterns and Actions446198
- Node: Pattern Overview447340
- Node: Regexp Patterns449066
- Node: Expression Patterns449612
- Node: Ranges453521
- Node: BEGIN/END456699
- Node: Using BEGIN/END457512
- Ref: Using BEGIN/END-Footnote-1460422
- Node: I/O And BEGIN/END460532
- Node: Empty466454
- Node: Using Shell Variables466771
- Node: Action Overview469109
- Node: Statements471544
- Node: If Statement473442
- Node: While Statement475011
- Node: Do Statement477099
- Node: For Statement478285
- Node: Switch Statement481642
- Node: Break Statement484193
- Node: Continue Statement486385
- Node: Next Statement488317
- Node: Nextfile Statement490814
- Node: Exit Statement493675
- Node: Built-in Variables496208
- Node: User-modified497387
- Node: Auto-set505598
- Ref: Auto-set-Footnote-1523697
- Ref: Auto-set-Footnote-2523915
- Node: ARGC and ARGV523971
- Node: Pattern Action Summary528410
- Node: Arrays531026
- Node: Array Basics532403
- Node: Array Intro533253
- Ref: figure-array-elements535269
- Ref: Array Intro-Footnote-1538133
- Node: Reference to Elements538265
- Node: Assigning Elements540787
- Node: Array Example541282
- Node: Scanning an Array543251
- Node: Controlling Scanning546348
- Ref: Controlling Scanning-Footnote-1553011
- Node: Numeric Array Subscripts553335
- Node: Uninitialized Subscripts555609
- Node: Delete557288
- Ref: Delete-Footnote-1560102
- Node: Multidimensional560159
- Node: Multiscanning563364
- Node: Arrays of Arrays565036
- Node: Arrays Summary569936
- Node: Functions572125
- Node: Built-in573185
- Node: Calling Built-in574374
- Node: Boolean Functions576421
- Node: Numeric Functions576991
- Ref: Numeric Functions-Footnote-1581184
- Ref: Numeric Functions-Footnote-2581868
- Ref: Numeric Functions-Footnote-3581920
- Node: String Functions582196
- Ref: String Functions-Footnote-1608332
- Ref: String Functions-Footnote-2608466
- Ref: String Functions-Footnote-3608726
- Node: Gory Details608813
- Ref: table-sub-escapes610720
- Ref: table-sub-proposed612366
- Ref: table-posix-sub613876
- Ref: table-gensub-escapes615564
- Ref: Gory Details-Footnote-1616498
- Node: I/O Functions616652
- Ref: table-system-return-values623339
- Ref: I/O Functions-Footnote-1625510
- Ref: I/O Functions-Footnote-2625658
- Node: Time Functions625778
- Ref: Time Functions-Footnote-1636934
- Ref: Time Functions-Footnote-2637010
- Ref: Time Functions-Footnote-3637172
- Ref: Time Functions-Footnote-4637283
- Ref: Time Functions-Footnote-5637401
- Ref: Time Functions-Footnote-6637636
- Node: Bitwise Functions637918
- Ref: table-bitwise-ops638520
- Ref: Bitwise Functions-Footnote-1644774
- Ref: Bitwise Functions-Footnote-2644953
- Node: Type Functions645150
- Node: I18N Functions648743
- Node: User-defined650486
- Node: Definition Syntax651306
- Ref: Definition Syntax-Footnote-1657134
- Node: Function Example657211
- Ref: Function Example-Footnote-1660190
- Node: Function Calling660212
- Node: Calling A Function660806
- Node: Variable Scope661776
- Node: Pass By Value/Reference664830
- Node: Function Caveats667562
- Ref: Function Caveats-Footnote-1669657
- Node: Return Statement669781
- Node: Dynamic Typing672836
- Node: Indirect Calls673792
- Node: Functions Summary684951
- Node: Library Functions687728
- Ref: Library Functions-Footnote-1691276
- Ref: Library Functions-Footnote-2691419
- Node: Library Names691594
- Ref: Library Names-Footnote-1695388
- Ref: Library Names-Footnote-2695615
- Node: General Functions695711
- Node: Strtonum Function696905
- Node: Assert Function699987
- Node: Round Function703439
- Node: Cliff Random Function705017
- Node: Ordinal Functions706050
- Ref: Ordinal Functions-Footnote-1709159
- Ref: Ordinal Functions-Footnote-2709411
- Node: Join Function709625
- Ref: Join Function-Footnote-1711428
- Node: Getlocaltime Function711632
- Node: Readfile Function715406
- Node: Shell Quoting717435
- Node: Isnumeric Function718891
- Node: Data File Management720303
- Node: Filetrans Function720935
- Node: Rewind Function725229
- Node: File Checking727208
- Ref: File Checking-Footnote-1728580
- Node: Empty Files728787
- Node: Ignoring Assigns730854
- Node: Getopt Function732428
- Ref: Getopt Function-Footnote-1748262
- Node: Passwd Functions748474
- Ref: Passwd Functions-Footnote-1757656
- Node: Group Functions757744
- Ref: Group Functions-Footnote-1765882
- Node: Walking Arrays766095
- Node: Library Functions Summary769143
- Node: Library Exercises770567
- Node: Sample Programs771054
- Node: Running Examples771836
- Node: Clones772588
- Node: Cut Program773860
- Node: Egrep Program784301
- Node: Id Program793618
- Node: Split Program803732
- Ref: Split Program-Footnote-1813967
- Node: Tee Program814154
- Node: Uniq Program817063
- Node: Wc Program824928
- Node: Bytes vs. Characters825323
- Node: Using extensions826925
- Node: wc program827705
- Node: Miscellaneous Programs832711
- Node: Dupword Program833940
- Node: Alarm Program836003
- Node: Translate Program840916
- Ref: Translate Program-Footnote-1845657
- Node: Labels Program845935
- Ref: Labels Program-Footnote-1849376
- Node: Word Sorting849468
- Node: History Sorting853662
- Node: Extract Program855937
- Node: Simple Sed864206
- Node: Igawk Program867422
- Ref: Igawk Program-Footnote-1882669
- Ref: Igawk Program-Footnote-2882875
- Ref: Igawk Program-Footnote-3883005
- Node: Anagram Program883132
- Node: Signature Program886228
- Node: Programs Summary887480
- Node: Programs Exercises888738
- Ref: Programs Exercises-Footnote-1893054
- Node: Advanced Features893140
- Node: Nondecimal Data895634
- Node: Boolean Typed Values897264
- Node: Array Sorting899239
- Node: Controlling Array Traversal899968
- Ref: Controlling Array Traversal-Footnote-1908475
- Node: Array Sorting Functions908597
- Ref: Array Sorting Functions-Footnote-1914716
- Node: Two-way I/O914924
- Ref: Two-way I/O-Footnote-1922919
- Ref: Two-way I/O-Footnote-2923110
- Node: TCP/IP Networking923192
- Node: Profiling926372
- Node: Persistent Memory936082
- Ref: Persistent Memory-Footnote-1945040
- Node: Extension Philosophy945171
- Node: Advanced Features Summary946706
- Node: Internationalization948976
- Node: I18N and L10N950682
- Node: Explaining gettext951377
- Ref: Explaining gettext-Footnote-1957530
- Ref: Explaining gettext-Footnote-2957725
- Node: Programmer i18n957890
- Ref: Programmer i18n-Footnote-1963003
- Node: Translator i18n963052
- Node: String Extraction963888
- Ref: String Extraction-Footnote-1965066
- Node: Printf Ordering965164
- Ref: Printf Ordering-Footnote-1968026
- Node: I18N Portability968094
- Ref: I18N Portability-Footnote-1970668
- Node: I18N Example970739
- Ref: I18N Example-Footnote-1974139
- Ref: I18N Example-Footnote-2974215
- Node: Gawk I18N974332
- Node: I18N Summary974988
- Node: Debugger976389
- Node: Debugging977413
- Node: Debugging Concepts977862
- Node: Debugging Terms979688
- Node: Awk Debugging982301
- Ref: Awk Debugging-Footnote-1983278
- Node: Sample Debugging Session983418
- Node: Debugger Invocation983970
- Node: Finding The Bug985599
- Node: List of Debugger Commands992285
- Node: Breakpoint Control993662
- Node: Debugger Execution Control997494
- Node: Viewing And Changing Data1000974
- Node: Execution Stack1004712
- Node: Debugger Info1006393
- Node: Miscellaneous Debugger Commands1010692
- Node: Readline Support1015945
- Node: Limitations1016891
- Node: Debugging Summary1019535
- Node: Namespaces1020838
- Node: Global Namespace1021965
- Node: Qualified Names1023410
- Node: Default Namespace1024445
- Node: Changing The Namespace1025220
- Node: Naming Rules1026914
- Node: Internal Name Management1028829
- Node: Namespace Example1029899
- Node: Namespace And Features1032482
- Node: Namespace Summary1033939
- Node: Arbitrary Precision Arithmetic1035452
- Node: Computer Arithmetic1036971
- Ref: table-numeric-ranges1040788
- Ref: table-floating-point-ranges1041286
- Ref: Computer Arithmetic-Footnote-11041945
- Node: Math Definitions1042004
- Ref: table-ieee-formats1045049
- Node: MPFR features1045623
- Node: MPFR On Parole1046076
- Ref: MPFR On Parole-Footnote-11046920
- Node: MPFR Intro1047079
- Node: FP Math Caution1048769
- Ref: FP Math Caution-Footnote-11049843
- Node: Inexactness of computations1050220
- Node: Inexact representation1051251
- Node: Comparing FP Values1052634
- Node: Errors accumulate1053892
- Node: Strange values1055359
- Ref: Strange values-Footnote-11058025
- Node: Getting Accuracy1058130
- Node: Try To Round1060867
- Node: Setting precision1061774
- Ref: table-predefined-precision-strings1062479
- Node: Setting the rounding mode1064364
- Ref: table-gawk-rounding-modes1064746
- Ref: Setting the rounding mode-Footnote-11068804
- Node: Arbitrary Precision Integers1068987
- Ref: Arbitrary Precision Integers-Footnote-11072199
- Node: Checking for MPFR1072355
- Node: POSIX Floating Point Problems1073845
- Ref: POSIX Floating Point Problems-Footnote-11078709
- Node: Floating point summary1078747
- Node: Dynamic Extensions1081011
- Node: Extension Intro1082610
- Node: Plugin License1083918
- Node: Extension Mechanism Outline1084731
- Ref: figure-load-extension1085182
- Ref: figure-register-new-function1086762
- Ref: figure-call-new-function1087867
- Node: Extension API Description1089986
- Node: Extension API Functions Introduction1091715
- Ref: table-api-std-headers1093613
- Node: General Data Types1098077
- Ref: General Data Types-Footnote-11107245
- Node: Memory Allocation Functions1107560
- Ref: Memory Allocation Functions-Footnote-11112285
- Node: Constructor Functions1112384
- Node: API Ownership of MPFR and GMP Values1116289
- Node: Registration Functions1117850
- Node: Extension Functions1118554
- Node: Exit Callback Functions1124130
- Node: Extension Version String1125449
- Node: Input Parsers1126144
- Node: Output Wrappers1139518
- Node: Two-way processors1144226
- Node: Printing Messages1146587
- Ref: Printing Messages-Footnote-11147801
- Node: Updating ERRNO1147956
- Node: Requesting Values1148755
- Ref: table-value-types-returned1149508
- Node: Accessing Parameters1150617
- Node: Symbol Table Access1151901
- Node: Symbol table by name1152417
- Ref: Symbol table by name-Footnote-11155628
- Node: Symbol table by cookie1155760
- Ref: Symbol table by cookie-Footnote-11160041
- Node: Cached values1160105
- Ref: Cached values-Footnote-11163749
- Node: Array Manipulation1163906
- Ref: Array Manipulation-Footnote-11165009
- Node: Array Data Types1165046
- Ref: Array Data Types-Footnote-11167868
- Node: Array Functions1167968
- Node: Flattening Arrays1172997
- Node: Creating Arrays1180049
- Node: Redirection API1184899
- Node: Extension API Variables1187920
- Node: Extension Versioning1188645
- Ref: gawk-api-version1189082
- Node: Extension GMP/MPFR Versioning1190870
- Node: Extension API Informational Variables1192576
- Node: Extension API Boilerplate1193737
- Node: Changes from API V11197873
- Node: Finding Extensions1199507
- Node: Extension Example1200082
- Node: Internal File Description1200906
- Node: Internal File Ops1205230
- Ref: Internal File Ops-Footnote-11216788
- Node: Using Internal File Ops1216936
- Ref: Using Internal File Ops-Footnote-11219367
- Node: Extension Samples1219645
- Node: Extension Sample File Functions1221214
- Node: Extension Sample Fnmatch1229352
- Node: Extension Sample Fork1230947
- Node: Extension Sample Inplace1232223
- Node: Extension Sample Ord1235895
- Node: Extension Sample Readdir1236771
- Ref: table-readdir-file-types1237668
- Node: Extension Sample Revout1238806
- Node: Extension Sample Rev2way1239403
- Node: Extension Sample Read write array1240155
- Node: Extension Sample Readfile1243429
- Node: Extension Sample Time1244560
- Node: Extension Sample API Tests1246850
- Node: gawkextlib1247358
- Node: Extension summary1250394
- Node: Extension Exercises1254252
- Node: Language History1255530
- Node: V7/SVR3.11257244
- Node: SVR41259594
- Node: POSIX1261126
- Node: BTL1262551
- Node: POSIX/GNU1263320
- Node: Feature History1269851
- Node: Common Extensions1289364
- Node: Ranges and Locales1290733
- Ref: Ranges and Locales-Footnote-11295534
- Ref: Ranges and Locales-Footnote-21295561
- Ref: Ranges and Locales-Footnote-31295800
- Node: Contributors1296023
- Node: History summary1302228
- Node: Installation1303674
- Node: Gawk Distribution1304638
- Node: Getting1305130
- Node: Extracting1306129
- Node: Distribution contents1307841
- Node: Unix Installation1315921
- Node: Quick Installation1316743
- Node: Compiling with MPFR1319289
- Node: Shell Startup Files1319995
- Node: Additional Configuration Options1321152
- Node: Configuration Philosophy1323539
- Node: Compiling from Git1326041
- Node: Building the Documentation1326600
- Node: Non-Unix Installation1328012
- Node: PC Installation1328488
- Node: PC Binary Installation1329361
- Node: PC Compiling1330266
- Node: PC Using1331444
- Node: Cygwin1335172
- Node: MSYS1336428
- Node: OpenVMS Installation1337060
- Node: OpenVMS Compilation1337741
- Ref: OpenVMS Compilation-Footnote-11339224
- Node: OpenVMS Dynamic Extensions1339286
- Node: OpenVMS Installation Details1340922
- Node: OpenVMS Running1343357
- Node: OpenVMS GNV1347494
- Node: Bugs1348249
- Node: Bug definition1349173
- Node: Bug address1352824
- Node: Usenet1356415
- Node: Performance bugs1357646
- Node: Asking for help1360664
- Node: Maintainers1362655
- Node: Other Versions1363682
- Node: Installation summary1372614
- Node: Notes1373998
- Node: Compatibility Mode1374808
- Node: Additions1375630
- Node: Accessing The Source1376575
- Node: Adding Code1378110
- Node: New Ports1385246
- Node: Derived Files1389756
- Ref: Derived Files-Footnote-11395603
- Ref: Derived Files-Footnote-21395638
- Ref: Derived Files-Footnote-31396255
- Node: Future Extensions1396369
- Node: Implementation Limitations1397041
- Node: Extension Design1398283
- Node: Old Extension Problems1399447
- Ref: Old Extension Problems-Footnote-11401023
- Node: Extension New Mechanism Goals1401084
- Ref: Extension New Mechanism Goals-Footnote-11404580
- Node: Extension Other Design Decisions1404781
- Node: Extension Future Growth1406980
- Node: Notes summary1407604
- Node: Basic Concepts1408817
- Node: Basic High Level1409502
- Ref: figure-general-flow1409784
- Ref: figure-process-flow1410486
- Ref: Basic High Level-Footnote-11413882
- Node: Basic Data Typing1414071
- Node: Glossary1417489
- Node: Copying1450611
- Node: GNU Free Documentation License1488372
- Node: Index1513695
+ Node: Loading Shared Libraries166307
+ Node: Obsolete167799
+ Node: Undocumented168435
+ Node: Invoking Summary168734
+ Node: Regexp171761
+ Node: Regexp Usage173255
+ Node: Escape Sequences175356
 -Node: Regexp Operators181887
 -Node: Regexp Operator Details182380
 -Ref: Regexp Operator Details-Footnote-1190246
 -Node: Interval Expressions190405
 -Ref: Interval Expressions-Footnote-1192674
 -Node: Bracket Expressions192774
 -Ref: table-char-classes195334
 -Node: Leftmost Longest198856
 -Node: Computed Regexps200216
 -Node: GNU Regexp Operators203739
 -Node: Case-sensitivity207762
 -Ref: Case-sensitivity-Footnote-1210719
 -Ref: Case-sensitivity-Footnote-2210964
 -Node: Regexp Summary211080
 -Node: Reading Files212604
 -Node: Records214921
 -Node: awk split records216032
 -Node: gawk split records220922
 -Ref: gawk split records-Footnote-1226216
 -Node: Fields226253
 -Node: Nonconstant Fields229140
 -Ref: Nonconstant Fields-Footnote-1231451
 -Node: Changing Fields231667
 -Node: Field Separators237975
 -Node: Default Field Splitting240848
 -Node: Regexp Field Splitting241991
 -Node: Single Character Fields245820
 -Node: Comma Separated Fields246909
 -Ref: table-csv-examples248197
 -Node: Command Line Field Separator249149
 -Node: Full Line Fields252535
 -Ref: Full Line Fields-Footnote-1254115
 -Ref: Full Line Fields-Footnote-2254161
 -Node: Field Splitting Summary254269
 -Node: Constant Size256548
 -Node: Fixed width data257292
 -Node: Skipping intervening260811
 -Node: Allowing trailing data261613
 -Node: Fields with fixed data262678
 -Node: Splitting By Content264304
 -Ref: Splitting By Content-Footnote-1268489
 -Node: More CSV268652
 -Node: FS versus FPAT270305
 -Node: Testing field creation271514
 -Node: Multiple Line273207
 -Node: Getline279689
 -Node: Plain Getline282275
 -Node: Getline/Variable284925
 -Node: Getline/File286122
 -Node: Getline/Variable/File287570
 -Ref: Getline/Variable/File-Footnote-1289215
 -Node: Getline/Pipe289311
 -Node: Getline/Variable/Pipe292124
 -Node: Getline/Coprocess293307
 -Node: Getline/Variable/Coprocess294630
 -Node: Getline Notes295396
 -Node: Getline Summary298357
 -Ref: table-getline-variants298801
 -Node: Read Timeout299706
 -Ref: Read Timeout-Footnote-1303670
 -Node: Retrying Input303728
 -Node: Command-line directories304995
 -Node: Input Summary305933
 -Node: Input Exercises309313
 -Node: Printing309753
 -Node: Print311696
 -Node: Print Examples313202
 -Node: Output Separators316055
 -Node: OFMT318166
 -Node: Printf319589
 -Node: Basic Printf320394
 -Node: Control Letters322030
 -Node: Format Modifiers327499
 -Node: Printf Examples333785
 -Node: Redirection336330
 -Node: Special FD343404
 -Ref: Special FD-Footnote-1346694
 -Node: Special Files346780
 -Node: Other Inherited Files347409
 -Node: Special Network348474
 -Node: Special Caveats349362
 -Node: Close Files And Pipes350345
 -Ref: Close Files And Pipes-Footnote-1356481
 -Node: Close Return Value356637
 -Ref: table-close-pipe-return-values357912
 -Ref: Close Return Value-Footnote-1358746
 -Node: Noflush358902
 -Node: Nonfatal360374
 -Node: Output Summary362791
 -Node: Output Exercises364077
 -Node: Expressions364768
 -Node: Values365970
 -Node: Constants366648
 -Node: Scalar Constants367345
 -Ref: Scalar Constants-Footnote-1369920
 -Node: Nondecimal-numbers370170
 -Node: Regexp Constants373291
 -Node: Using Constant Regexps373837
 -Node: Standard Regexp Constants374483
 -Node: Strong Regexp Constants377783
 -Node: Variables381634
 -Node: Using Variables382299
 -Node: Assignment Options384279
 -Node: Conversion386841
 -Node: Strings And Numbers387373
 -Ref: Strings And Numbers-Footnote-1390592
 -Node: Locale influences conversions390701
 -Ref: table-locale-affects393551
 -Node: All Operators394194
 -Node: Arithmetic Ops394835
 -Node: Concatenation397665
 -Ref: Concatenation-Footnote-1400615
 -Node: Assignment Ops400738
 -Ref: table-assign-ops405877
 -Node: Increment Ops407259
 -Node: Truth Values and Conditions410858
 -Node: Truth Values411984
 -Node: Typing and Comparison413075
 -Node: Variable Typing413911
 -Ref: Variable Typing-Footnote-1420573
 -Ref: Variable Typing-Footnote-2420653
 -Node: Comparison Operators420736
 -Ref: table-relational-ops421163
 -Node: POSIX String Comparison424849
 -Ref: POSIX String Comparison-Footnote-1426608
 -Ref: POSIX String Comparison-Footnote-2426751
 -Node: Boolean Ops426835
 -Ref: Boolean Ops-Footnote-1431528
 -Node: Conditional Exp431624
 -Node: Function Calls433410
 -Node: Precedence437360
 -Node: Locales441237
 -Node: Expressions Summary442919
 -Node: Patterns and Actions445582
 -Node: Pattern Overview446724
 -Node: Regexp Patterns448450
 -Node: Expression Patterns448996
 -Node: Ranges452905
 -Node: BEGIN/END456083
 -Node: Using BEGIN/END456896
 -Ref: Using BEGIN/END-Footnote-1459806
 -Node: I/O And BEGIN/END459916
 -Node: Empty465838
 -Node: Using Shell Variables466155
 -Node: Action Overview468493
 -Node: Statements470928
 -Node: If Statement472826
 -Node: While Statement474395
 -Node: Do Statement476483
 -Node: For Statement477669
 -Node: Switch Statement481026
 -Node: Break Statement483577
 -Node: Continue Statement485769
 -Node: Next Statement487701
 -Node: Nextfile Statement490198
 -Node: Exit Statement493059
 -Node: Built-in Variables495592
 -Node: User-modified496771
 -Node: Auto-set504982
 -Ref: Auto-set-Footnote-1523081
 -Ref: Auto-set-Footnote-2523299
 -Node: ARGC and ARGV523355
 -Node: Pattern Action Summary527794
 -Node: Arrays530410
 -Node: Array Basics531787
 -Node: Array Intro532637
 -Ref: figure-array-elements534653
 -Ref: Array Intro-Footnote-1537522
 -Node: Reference to Elements537654
 -Node: Assigning Elements540176
 -Node: Array Example540671
 -Node: Scanning an Array542640
 -Node: Controlling Scanning545737
 -Ref: Controlling Scanning-Footnote-1552400
 -Node: Numeric Array Subscripts552724
 -Node: Uninitialized Subscripts554998
 -Node: Delete556677
 -Ref: Delete-Footnote-1559491
 -Node: Multidimensional559548
 -Node: Multiscanning562753
 -Node: Arrays of Arrays564425
 -Node: Arrays Summary569325
 -Node: Functions571514
 -Node: Built-in572574
 -Node: Calling Built-in573763
 -Node: Boolean Functions575810
 -Node: Numeric Functions576380
 -Ref: Numeric Functions-Footnote-1580573
 -Ref: Numeric Functions-Footnote-2581257
 -Ref: Numeric Functions-Footnote-3581309
 -Node: String Functions581585
 -Ref: String Functions-Footnote-1607721
 -Ref: String Functions-Footnote-2607855
 -Ref: String Functions-Footnote-3608115
 -Node: Gory Details608202
 -Ref: table-sub-escapes610109
 -Ref: table-sub-proposed611755
 -Ref: table-posix-sub613265
 -Ref: table-gensub-escapes614953
 -Ref: Gory Details-Footnote-1615887
 -Node: I/O Functions616041
 -Ref: table-system-return-values622728
 -Ref: I/O Functions-Footnote-1624899
 -Ref: I/O Functions-Footnote-2625047
 -Node: Time Functions625167
 -Ref: Time Functions-Footnote-1636323
 -Ref: Time Functions-Footnote-2636399
 -Ref: Time Functions-Footnote-3636561
 -Ref: Time Functions-Footnote-4636672
 -Ref: Time Functions-Footnote-5636790
 -Ref: Time Functions-Footnote-6637025
 -Node: Bitwise Functions637307
 -Ref: table-bitwise-ops637909
 -Ref: Bitwise Functions-Footnote-1644163
 -Ref: Bitwise Functions-Footnote-2644342
 -Node: Type Functions644539
 -Node: I18N Functions648132
 -Node: User-defined649875
 -Node: Definition Syntax650695
 -Ref: Definition Syntax-Footnote-1656523
 -Node: Function Example656600
 -Ref: Function Example-Footnote-1659579
 -Node: Function Calling659601
 -Node: Calling A Function660195
 -Node: Variable Scope661165
 -Node: Pass By Value/Reference664219
 -Node: Function Caveats666951
 -Ref: Function Caveats-Footnote-1669046
 -Node: Return Statement669170
 -Node: Dynamic Typing672225
 -Node: Indirect Calls673181
 -Node: Functions Summary684340
 -Node: Library Functions687117
 -Ref: Library Functions-Footnote-1690665
 -Ref: Library Functions-Footnote-2690808
 -Node: Library Names690983
 -Ref: Library Names-Footnote-1694777
 -Ref: Library Names-Footnote-2695004
 -Node: General Functions695100
 -Node: Strtonum Function696294
 -Node: Assert Function699376
 -Node: Round Function702828
 -Node: Cliff Random Function704406
 -Node: Ordinal Functions705439
 -Ref: Ordinal Functions-Footnote-1708548
 -Ref: Ordinal Functions-Footnote-2708800
 -Node: Join Function709014
 -Ref: Join Function-Footnote-1710817
 -Node: Getlocaltime Function711021
 -Node: Readfile Function714795
 -Node: Shell Quoting716824
 -Node: Isnumeric Function718280
 -Node: Data File Management719692
 -Node: Filetrans Function720324
 -Node: Rewind Function724618
 -Node: File Checking726597
 -Ref: File Checking-Footnote-1727969
 -Node: Empty Files728176
 -Node: Ignoring Assigns730243
 -Node: Getopt Function731817
 -Ref: Getopt Function-Footnote-1747651
 -Node: Passwd Functions747863
 -Ref: Passwd Functions-Footnote-1757045
 -Node: Group Functions757133
 -Ref: Group Functions-Footnote-1765271
 -Node: Walking Arrays765484
 -Node: Library Functions Summary768532
 -Node: Library Exercises769956
 -Node: Sample Programs770443
 -Node: Running Examples771225
 -Node: Clones771977
 -Node: Cut Program773249
 -Node: Egrep Program783690
 -Node: Id Program793007
 -Node: Split Program803121
 -Ref: Split Program-Footnote-1813356
 -Node: Tee Program813543
 -Node: Uniq Program816452
 -Node: Wc Program824317
 -Node: Bytes vs. Characters824712
 -Node: Using extensions826314
 -Node: wc program827094
 -Node: Miscellaneous Programs832100
 -Node: Dupword Program833329
 -Node: Alarm Program835392
 -Node: Translate Program840305
 -Ref: Translate Program-Footnote-1845046
 -Node: Labels Program845324
 -Ref: Labels Program-Footnote-1848765
 -Node: Word Sorting848857
 -Node: History Sorting853051
 -Node: Extract Program855326
 -Node: Simple Sed863595
 -Node: Igawk Program866811
 -Ref: Igawk Program-Footnote-1882058
 -Ref: Igawk Program-Footnote-2882264
 -Ref: Igawk Program-Footnote-3882394
 -Node: Anagram Program882521
 -Node: Signature Program885617
 -Node: Programs Summary886869
 -Node: Programs Exercises888127
 -Ref: Programs Exercises-Footnote-1892443
 -Node: Advanced Features892529
 -Node: Nondecimal Data895023
 -Node: Boolean Typed Values896653
 -Node: Array Sorting898628
 -Node: Controlling Array Traversal899357
 -Ref: Controlling Array Traversal-Footnote-1907864
 -Node: Array Sorting Functions907986
 -Ref: Array Sorting Functions-Footnote-1914105
 -Node: Two-way I/O914313
 -Ref: Two-way I/O-Footnote-1922308
 -Ref: Two-way I/O-Footnote-2922499
 -Node: TCP/IP Networking922581
 -Node: Profiling925761
 -Node: Persistent Memory935471
 -Ref: Persistent Memory-Footnote-1944429
 -Node: Extension Philosophy944560
 -Node: Advanced Features Summary946095
 -Node: Internationalization948365
 -Node: I18N and L10N950071
 -Node: Explaining gettext950766
 -Ref: Explaining gettext-Footnote-1956919
 -Ref: Explaining gettext-Footnote-2957114
 -Node: Programmer i18n957279
 -Ref: Programmer i18n-Footnote-1962392
 -Node: Translator i18n962441
 -Node: String Extraction963277
 -Ref: String Extraction-Footnote-1964455
 -Node: Printf Ordering964553
 -Ref: Printf Ordering-Footnote-1967415
 -Node: I18N Portability967483
 -Ref: I18N Portability-Footnote-1970057
 -Node: I18N Example970128
 -Ref: I18N Example-Footnote-1973528
 -Ref: I18N Example-Footnote-2973604
 -Node: Gawk I18N973721
 -Node: I18N Summary974377
 -Node: Debugger975778
 -Node: Debugging976802
 -Node: Debugging Concepts977251
 -Node: Debugging Terms979077
 -Node: Awk Debugging981690
 -Ref: Awk Debugging-Footnote-1982667
 -Node: Sample Debugging Session982807
 -Node: Debugger Invocation983359
 -Node: Finding The Bug984988
 -Node: List of Debugger Commands991674
 -Node: Breakpoint Control993051
 -Node: Debugger Execution Control996883
 -Node: Viewing And Changing Data1000363
 -Node: Execution Stack1004101
 -Node: Debugger Info1005782
 -Node: Miscellaneous Debugger Commands1010081
 -Node: Readline Support1015334
 -Node: Limitations1016280
 -Node: Debugging Summary1018924
 -Node: Namespaces1020227
 -Node: Global Namespace1021354
 -Node: Qualified Names1022799
 -Node: Default Namespace1023834
 -Node: Changing The Namespace1024609
 -Node: Naming Rules1026303
 -Node: Internal Name Management1028218
 -Node: Namespace Example1029288
 -Node: Namespace And Features1031871
 -Node: Namespace Summary1033328
 -Node: Arbitrary Precision Arithmetic1034841
 -Node: Computer Arithmetic1036360
 -Ref: table-numeric-ranges1040177
 -Ref: table-floating-point-ranges1040675
 -Ref: Computer Arithmetic-Footnote-11041334
 -Node: Math Definitions1041393
 -Ref: table-ieee-formats1044438
 -Node: MPFR features1045012
 -Node: MPFR On Parole1045465
 -Ref: MPFR On Parole-Footnote-11046309
 -Node: MPFR Intro1046468
 -Node: FP Math Caution1048158
 -Ref: FP Math Caution-Footnote-11049232
 -Node: Inexactness of computations1049609
 -Node: Inexact representation1050640
 -Node: Comparing FP Values1052023
 -Node: Errors accumulate1053281
 -Node: Strange values1054748
 -Ref: Strange values-Footnote-11057414
 -Node: Getting Accuracy1057519
 -Node: Try To Round1060256
 -Node: Setting precision1061163
 -Ref: table-predefined-precision-strings1061868
 -Node: Setting the rounding mode1063753
 -Ref: table-gawk-rounding-modes1064135
 -Ref: Setting the rounding mode-Footnote-11068193
 -Node: Arbitrary Precision Integers1068376
 -Ref: Arbitrary Precision Integers-Footnote-11071588
 -Node: Checking for MPFR1071744
 -Node: POSIX Floating Point Problems1073234
 -Ref: POSIX Floating Point Problems-Footnote-11078098
 -Node: Floating point summary1078136
 -Node: Dynamic Extensions1080400
 -Node: Extension Intro1081999
 -Node: Plugin License1083307
 -Node: Extension Mechanism Outline1084120
 -Ref: figure-load-extension1084571
 -Ref: figure-register-new-function1086156
 -Ref: figure-call-new-function1087266
 -Node: Extension API Description1089390
 -Node: Extension API Functions Introduction1091119
 -Ref: table-api-std-headers1093017
 -Node: General Data Types1097481
 -Ref: General Data Types-Footnote-11106649
 -Node: Memory Allocation Functions1106964
 -Ref: Memory Allocation Functions-Footnote-11111689
 -Node: Constructor Functions1111788
 -Node: API Ownership of MPFR and GMP Values1115693
 -Node: Registration Functions1117254
 -Node: Extension Functions1117958
 -Node: Exit Callback Functions1123534
 -Node: Extension Version String1124853
 -Node: Input Parsers1125548
 -Node: Output Wrappers1140192
 -Node: Two-way processors1145040
 -Node: Printing Messages1147401
 -Ref: Printing Messages-Footnote-11148615
 -Node: Updating ERRNO1148770
 -Node: Requesting Values1149569
 -Ref: table-value-types-returned1150322
 -Node: Accessing Parameters1151431
 -Node: Symbol Table Access1152715
 -Node: Symbol table by name1153231
 -Ref: Symbol table by name-Footnote-11156442
 -Node: Symbol table by cookie1156574
 -Ref: Symbol table by cookie-Footnote-11160855
 -Node: Cached values1160919
 -Ref: Cached values-Footnote-11164563
 -Node: Array Manipulation1164720
 -Ref: Array Manipulation-Footnote-11165823
 -Node: Array Data Types1165860
 -Ref: Array Data Types-Footnote-11168682
 -Node: Array Functions1168782
 -Node: Flattening Arrays1173811
 -Node: Creating Arrays1180863
 -Node: Redirection API1185713
 -Node: Extension API Variables1188734
 -Node: Extension Versioning1189459
 -Ref: gawk-api-version1189896
 -Node: Extension GMP/MPFR Versioning1191684
 -Node: Extension API Informational Variables1193390
 -Node: Extension API Boilerplate1194551
 -Node: Changes from API V11198687
 -Node: Finding Extensions1200321
 -Node: Extension Example1200896
 -Node: Internal File Description1201720
 -Node: Internal File Ops1206044
 -Ref: Internal File Ops-Footnote-11217602
 -Node: Using Internal File Ops1217750
 -Ref: Using Internal File Ops-Footnote-11220181
 -Node: Extension Samples1220459
 -Node: Extension Sample File Functions1222028
 -Node: Extension Sample Fnmatch1230166
 -Node: Extension Sample Fork1231761
 -Node: Extension Sample Inplace1233037
 -Node: Extension Sample Ord1236709
 -Node: Extension Sample Readdir1237585
 -Ref: table-readdir-file-types1238482
 -Node: Extension Sample Revout1239620
 -Node: Extension Sample Rev2way1240217
 -Node: Extension Sample Read write array1240969
 -Node: Extension Sample Readfile1244243
 -Node: Extension Sample Time1245374
 -Node: Extension Sample API Tests1247664
 -Node: gawkextlib1248172
 -Node: Extension summary1251208
 -Node: Extension Exercises1255066
 -Node: Language History1256344
 -Node: V7/SVR3.11258058
 -Node: SVR41260408
 -Node: POSIX1261940
 -Node: BTL1263365
 -Node: POSIX/GNU1264134
 -Node: Feature History1270665
 -Node: Common Extensions1290167
 -Node: Ranges and Locales1291536
 -Ref: Ranges and Locales-Footnote-11296337
 -Ref: Ranges and Locales-Footnote-21296364
 -Ref: Ranges and Locales-Footnote-31296603
 -Node: Contributors1296826
 -Node: History summary1303031
 -Node: Installation1304477
 -Node: Gawk Distribution1305441
 -Node: Getting1305933
 -Node: Extracting1306932
 -Node: Distribution contents1308644
 -Node: Unix Installation1316724
 -Node: Quick Installation1317546
 -Node: Compiling with MPFR1320092
 -Node: Shell Startup Files1320798
 -Node: Additional Configuration Options1321955
 -Node: Configuration Philosophy1324342
 -Node: Compiling from Git1326844
 -Node: Building the Documentation1327403
 -Node: Non-Unix Installation1328815
 -Node: PC Installation1329291
 -Node: PC Binary Installation1330164
 -Node: PC Compiling1331069
 -Node: PC Using1332247
 -Node: Cygwin1335975
 -Node: MSYS1337231
 -Node: OpenVMS Installation1337863
 -Node: OpenVMS Compilation1338544
 -Ref: OpenVMS Compilation-Footnote-11340027
 -Node: OpenVMS Dynamic Extensions1340089
 -Node: OpenVMS Installation Details1341725
 -Node: OpenVMS Running1344160
 -Node: OpenVMS GNV1348297
 -Node: Bugs1349052
 -Node: Bug definition1349976
 -Node: Bug address1353627
 -Node: Usenet1357218
 -Node: Performance bugs1358449
 -Node: Asking for help1361467
 -Node: Maintainers1363458
 -Node: Other Versions1364485
 -Node: Installation summary1373417
 -Node: Notes1374801
 -Node: Compatibility Mode1375611
 -Node: Additions1376433
 -Node: Accessing The Source1377378
 -Node: Adding Code1378913
 -Node: New Ports1386049
 -Node: Derived Files1390559
 -Ref: Derived Files-Footnote-11396406
 -Ref: Derived Files-Footnote-21396441
 -Ref: Derived Files-Footnote-31397058
 -Node: Future Extensions1397172
 -Node: Implementation Limitations1397844
 -Node: Extension Design1399086
 -Node: Old Extension Problems1400250
 -Ref: Old Extension Problems-Footnote-11401826
 -Node: Extension New Mechanism Goals1401887
 -Ref: Extension New Mechanism Goals-Footnote-11405383
 -Node: Extension Other Design Decisions1405584
 -Node: Extension Future Growth1407783
 -Node: Notes summary1408407
 -Node: Basic Concepts1409620
 -Node: Basic High Level1410305
 -Ref: figure-general-flow1410587
 -Ref: figure-process-flow1411294
 -Ref: Basic High Level-Footnote-11414695
 -Node: Basic Data Typing1414884
 -Node: Glossary1418302
 -Node: Copying1451424
 -Node: GNU Free Documentation License1489185
 -Node: Index1514508
++Node: Regexp Operators182692
++Node: Regexp Operator Details183185
++Ref: Regexp Operator Details-Footnote-1191051
++Node: Interval Expressions191210
++Ref: Interval Expressions-Footnote-1193479
++Node: Bracket Expressions193579
++Ref: table-char-classes196139
++Node: Leftmost Longest199661
++Node: Computed Regexps201021
++Node: GNU Regexp Operators204544
++Node: Case-sensitivity208567
++Ref: Case-sensitivity-Footnote-1211524
++Ref: Case-sensitivity-Footnote-2211769
++Node: Regexp Summary211885
++Node: Reading Files213409
++Node: Records215726
++Node: awk split records216837
++Node: gawk split records221727
++Ref: gawk split records-Footnote-1227021
++Node: Fields227058
++Node: Nonconstant Fields229945
++Ref: Nonconstant Fields-Footnote-1232256
++Node: Changing Fields232472
++Node: Field Separators238780
++Node: Default Field Splitting241653
++Node: Regexp Field Splitting242796
++Node: Single Character Fields246625
++Node: Comma Separated Fields247714
++Ref: table-csv-examples249002
++Node: Command Line Field Separator249954
++Node: Full Line Fields253340
++Ref: Full Line Fields-Footnote-1254920
++Ref: Full Line Fields-Footnote-2254966
++Node: Field Splitting Summary255074
++Node: Constant Size257353
++Node: Fixed width data258097
++Node: Skipping intervening261616
++Node: Allowing trailing data262418
++Node: Fields with fixed data263483
++Node: Splitting By Content265109
++Ref: Splitting By Content-Footnote-1269294
++Node: More CSV269457
++Node: FS versus FPAT271110
++Node: Testing field creation272319
++Node: Multiple Line274012
++Node: Getline280494
++Node: Plain Getline283080
++Node: Getline/Variable285730
++Node: Getline/File286927
++Node: Getline/Variable/File288375
++Ref: Getline/Variable/File-Footnote-1290020
++Node: Getline/Pipe290116
++Node: Getline/Variable/Pipe292929
++Node: Getline/Coprocess294112
++Node: Getline/Variable/Coprocess295435
++Node: Getline Notes296201
++Node: Getline Summary299162
++Ref: table-getline-variants299606
++Node: Read Timeout300511
++Ref: Read Timeout-Footnote-1304475
++Node: Retrying Input304533
++Node: Command-line directories305800
++Node: Input Summary306738
++Node: Input Exercises310118
++Node: Printing310558
++Node: Print312501
++Node: Print Examples314007
++Node: Output Separators316860
++Node: OFMT318971
++Node: Printf320394
++Node: Basic Printf321199
++Node: Control Letters322835
++Node: Format Modifiers328304
++Node: Printf Examples334590
++Node: Redirection337135
++Node: Special FD344209
++Ref: Special FD-Footnote-1347499
++Node: Special Files347585
++Node: Other Inherited Files348214
++Node: Special Network349279
++Node: Special Caveats350167
++Node: Close Files And Pipes351150
++Ref: Close Files And Pipes-Footnote-1357286
++Node: Close Return Value357442
++Ref: table-close-pipe-return-values358717
++Ref: Close Return Value-Footnote-1359551
++Node: Noflush359707
++Node: Nonfatal361179
++Node: Output Summary363596
++Node: Output Exercises364882
++Node: Expressions365573
++Node: Values366775
++Node: Constants367453
++Node: Scalar Constants368150
++Ref: Scalar Constants-Footnote-1370725
++Node: Nondecimal-numbers370975
++Node: Regexp Constants374096
++Node: Using Constant Regexps374642
++Node: Standard Regexp Constants375288
++Node: Strong Regexp Constants378588
++Node: Variables382439
++Node: Using Variables383104
++Node: Assignment Options385084
++Node: Conversion387646
++Node: Strings And Numbers388178
++Ref: Strings And Numbers-Footnote-1391397
++Node: Locale influences conversions391506
++Ref: table-locale-affects394356
++Node: All Operators394999
++Node: Arithmetic Ops395640
++Node: Concatenation398470
++Ref: Concatenation-Footnote-1401420
++Node: Assignment Ops401543
++Ref: table-assign-ops406682
++Node: Increment Ops408064
++Node: Truth Values and Conditions411663
++Node: Truth Values412789
++Node: Typing and Comparison413880
++Node: Variable Typing414716
++Ref: Variable Typing-Footnote-1421378
++Ref: Variable Typing-Footnote-2421458
++Node: Comparison Operators421541
++Ref: table-relational-ops421968
++Node: POSIX String Comparison425654
++Ref: POSIX String Comparison-Footnote-1427413
++Ref: POSIX String Comparison-Footnote-2427556
++Node: Boolean Ops427640
++Ref: Boolean Ops-Footnote-1432333
++Node: Conditional Exp432429
++Node: Function Calls434215
++Node: Precedence438165
++Node: Locales442042
++Node: Expressions Summary443724
++Node: Patterns and Actions446387
++Node: Pattern Overview447529
++Node: Regexp Patterns449255
++Node: Expression Patterns449801
++Node: Ranges453710
++Node: BEGIN/END456888
++Node: Using BEGIN/END457701
++Ref: Using BEGIN/END-Footnote-1460611
++Node: I/O And BEGIN/END460721
++Node: Empty466643
++Node: Using Shell Variables466960
++Node: Action Overview469298
++Node: Statements471733
++Node: If Statement473631
++Node: While Statement475200
++Node: Do Statement477288
++Node: For Statement478474
++Node: Switch Statement481831
++Node: Break Statement484382
++Node: Continue Statement486574
++Node: Next Statement488506
++Node: Nextfile Statement491003
++Node: Exit Statement493864
++Node: Built-in Variables496397
++Node: User-modified497576
++Node: Auto-set505787
++Ref: Auto-set-Footnote-1523886
++Ref: Auto-set-Footnote-2524104
++Node: ARGC and ARGV524160
++Node: Pattern Action Summary528599
++Node: Arrays531215
++Node: Array Basics532592
++Node: Array Intro533442
++Ref: figure-array-elements535458
++Ref: Array Intro-Footnote-1538327
++Node: Reference to Elements538459
++Node: Assigning Elements540981
++Node: Array Example541476
++Node: Scanning an Array543445
++Node: Controlling Scanning546542
++Ref: Controlling Scanning-Footnote-1553205
++Node: Numeric Array Subscripts553529
++Node: Uninitialized Subscripts555803
++Node: Delete557482
++Ref: Delete-Footnote-1560296
++Node: Multidimensional560353
++Node: Multiscanning563558
++Node: Arrays of Arrays565230
++Node: Arrays Summary570130
++Node: Functions572319
++Node: Built-in573379
++Node: Calling Built-in574568
++Node: Boolean Functions576615
++Node: Numeric Functions577185
++Ref: Numeric Functions-Footnote-1581378
++Ref: Numeric Functions-Footnote-2582062
++Ref: Numeric Functions-Footnote-3582114
++Node: String Functions582390
++Ref: String Functions-Footnote-1608526
++Ref: String Functions-Footnote-2608660
++Ref: String Functions-Footnote-3608920
++Node: Gory Details609007
++Ref: table-sub-escapes610914
++Ref: table-sub-proposed612560
++Ref: table-posix-sub614070
++Ref: table-gensub-escapes615758
++Ref: Gory Details-Footnote-1616692
++Node: I/O Functions616846
++Ref: table-system-return-values623533
++Ref: I/O Functions-Footnote-1625704
++Ref: I/O Functions-Footnote-2625852
++Node: Time Functions625972
++Ref: Time Functions-Footnote-1637128
++Ref: Time Functions-Footnote-2637204
++Ref: Time Functions-Footnote-3637366
++Ref: Time Functions-Footnote-4637477
++Ref: Time Functions-Footnote-5637595
++Ref: Time Functions-Footnote-6637830
++Node: Bitwise Functions638112
++Ref: table-bitwise-ops638714
++Ref: Bitwise Functions-Footnote-1644968
++Ref: Bitwise Functions-Footnote-2645147
++Node: Type Functions645344
++Node: I18N Functions648937
++Node: User-defined650680
++Node: Definition Syntax651500
++Ref: Definition Syntax-Footnote-1657328
++Node: Function Example657405
++Ref: Function Example-Footnote-1660384
++Node: Function Calling660406
++Node: Calling A Function661000
++Node: Variable Scope661970
++Node: Pass By Value/Reference665024
++Node: Function Caveats667756
++Ref: Function Caveats-Footnote-1669851
++Node: Return Statement669975
++Node: Dynamic Typing673030
++Node: Indirect Calls673986
++Node: Functions Summary685145
++Node: Library Functions687922
++Ref: Library Functions-Footnote-1691470
++Ref: Library Functions-Footnote-2691613
++Node: Library Names691788
++Ref: Library Names-Footnote-1695582
++Ref: Library Names-Footnote-2695809
++Node: General Functions695905
++Node: Strtonum Function697099
++Node: Assert Function700181
++Node: Round Function703633
++Node: Cliff Random Function705211
++Node: Ordinal Functions706244
++Ref: Ordinal Functions-Footnote-1709353
++Ref: Ordinal Functions-Footnote-2709605
++Node: Join Function709819
++Ref: Join Function-Footnote-1711622
++Node: Getlocaltime Function711826
++Node: Readfile Function715600
++Node: Shell Quoting717629
++Node: Isnumeric Function719085
++Node: Data File Management720497
++Node: Filetrans Function721129
++Node: Rewind Function725423
++Node: File Checking727402
++Ref: File Checking-Footnote-1728774
++Node: Empty Files728981
++Node: Ignoring Assigns731048
++Node: Getopt Function732622
++Ref: Getopt Function-Footnote-1748456
++Node: Passwd Functions748668
++Ref: Passwd Functions-Footnote-1757850
++Node: Group Functions757938
++Ref: Group Functions-Footnote-1766076
++Node: Walking Arrays766289
++Node: Library Functions Summary769337
++Node: Library Exercises770761
++Node: Sample Programs771248
++Node: Running Examples772030
++Node: Clones772782
++Node: Cut Program774054
++Node: Egrep Program784495
++Node: Id Program793812
++Node: Split Program803926
++Ref: Split Program-Footnote-1814161
++Node: Tee Program814348
++Node: Uniq Program817257
++Node: Wc Program825122
++Node: Bytes vs. Characters825517
++Node: Using extensions827119
++Node: wc program827899
++Node: Miscellaneous Programs832905
++Node: Dupword Program834134
++Node: Alarm Program836197
++Node: Translate Program841110
++Ref: Translate Program-Footnote-1845851
++Node: Labels Program846129
++Ref: Labels Program-Footnote-1849570
++Node: Word Sorting849662
++Node: History Sorting853856
++Node: Extract Program856131
++Node: Simple Sed864400
++Node: Igawk Program867616
++Ref: Igawk Program-Footnote-1882863
++Ref: Igawk Program-Footnote-2883069
++Ref: Igawk Program-Footnote-3883199
++Node: Anagram Program883326
++Node: Signature Program886422
++Node: Programs Summary887674
++Node: Programs Exercises888932
++Ref: Programs Exercises-Footnote-1893248
++Node: Advanced Features893334
++Node: Nondecimal Data895828
++Node: Boolean Typed Values897458
++Node: Array Sorting899433
++Node: Controlling Array Traversal900162
++Ref: Controlling Array Traversal-Footnote-1908669
++Node: Array Sorting Functions908791
++Ref: Array Sorting Functions-Footnote-1914910
++Node: Two-way I/O915118
++Ref: Two-way I/O-Footnote-1923113
++Ref: Two-way I/O-Footnote-2923304
++Node: TCP/IP Networking923386
++Node: Profiling926566
++Node: Persistent Memory936276
++Ref: Persistent Memory-Footnote-1945234
++Node: Extension Philosophy945365
++Node: Advanced Features Summary946900
++Node: Internationalization949170
++Node: I18N and L10N950876
++Node: Explaining gettext951571
++Ref: Explaining gettext-Footnote-1957724
++Ref: Explaining gettext-Footnote-2957919
++Node: Programmer i18n958084
++Ref: Programmer i18n-Footnote-1963197
++Node: Translator i18n963246
++Node: String Extraction964082
++Ref: String Extraction-Footnote-1965260
++Node: Printf Ordering965358
++Ref: Printf Ordering-Footnote-1968220
++Node: I18N Portability968288
++Ref: I18N Portability-Footnote-1970862
++Node: I18N Example970933
++Ref: I18N Example-Footnote-1974333
++Ref: I18N Example-Footnote-2974409
++Node: Gawk I18N974526
++Node: I18N Summary975182
++Node: Debugger976583
++Node: Debugging977607
++Node: Debugging Concepts978056
++Node: Debugging Terms979882
++Node: Awk Debugging982495
++Ref: Awk Debugging-Footnote-1983472
++Node: Sample Debugging Session983612
++Node: Debugger Invocation984164
++Node: Finding The Bug985793
++Node: List of Debugger Commands992479
++Node: Breakpoint Control993856
++Node: Debugger Execution Control997688
++Node: Viewing And Changing Data1001168
++Node: Execution Stack1004906
++Node: Debugger Info1006587
++Node: Miscellaneous Debugger Commands1010886
++Node: Readline Support1016139
++Node: Limitations1017085
++Node: Debugging Summary1019729
++Node: Namespaces1021032
++Node: Global Namespace1022159
++Node: Qualified Names1023604
++Node: Default Namespace1024639
++Node: Changing The Namespace1025414
++Node: Naming Rules1027108
++Node: Internal Name Management1029023
++Node: Namespace Example1030093
++Node: Namespace And Features1032676
++Node: Namespace Summary1034133
++Node: Arbitrary Precision Arithmetic1035646
++Node: Computer Arithmetic1037165
++Ref: table-numeric-ranges1040982
++Ref: table-floating-point-ranges1041480
++Ref: Computer Arithmetic-Footnote-11042139
++Node: Math Definitions1042198
++Ref: table-ieee-formats1045243
++Node: MPFR features1045817
++Node: MPFR On Parole1046270
++Ref: MPFR On Parole-Footnote-11047114
++Node: MPFR Intro1047273
++Node: FP Math Caution1048963
++Ref: FP Math Caution-Footnote-11050037
++Node: Inexactness of computations1050414
++Node: Inexact representation1051445
++Node: Comparing FP Values1052828
++Node: Errors accumulate1054086
++Node: Strange values1055553
++Ref: Strange values-Footnote-11058219
++Node: Getting Accuracy1058324
++Node: Try To Round1061061
++Node: Setting precision1061968
++Ref: table-predefined-precision-strings1062673
++Node: Setting the rounding mode1064558
++Ref: table-gawk-rounding-modes1064940
++Ref: Setting the rounding mode-Footnote-11068998
++Node: Arbitrary Precision Integers1069181
++Ref: Arbitrary Precision Integers-Footnote-11072393
++Node: Checking for MPFR1072549
++Node: POSIX Floating Point Problems1074039
++Ref: POSIX Floating Point Problems-Footnote-11078903
++Node: Floating point summary1078941
++Node: Dynamic Extensions1081205
++Node: Extension Intro1082804
++Node: Plugin License1084112
++Node: Extension Mechanism Outline1084925
++Ref: figure-load-extension1085376
++Ref: figure-register-new-function1086961
++Ref: figure-call-new-function1088071
++Node: Extension API Description1090195
++Node: Extension API Functions Introduction1091924
++Ref: table-api-std-headers1093822
++Node: General Data Types1098286
++Ref: General Data Types-Footnote-11107454
++Node: Memory Allocation Functions1107769
++Ref: Memory Allocation Functions-Footnote-11112494
++Node: Constructor Functions1112593
++Node: API Ownership of MPFR and GMP Values1116498
++Node: Registration Functions1118059
++Node: Extension Functions1118763
++Node: Exit Callback Functions1124339
++Node: Extension Version String1125658
++Node: Input Parsers1126353
++Node: Output Wrappers1140997
++Node: Two-way processors1145845
++Node: Printing Messages1148206
++Ref: Printing Messages-Footnote-11149420
++Node: Updating ERRNO1149575
++Node: Requesting Values1150374
++Ref: table-value-types-returned1151127
++Node: Accessing Parameters1152236
++Node: Symbol Table Access1153520
++Node: Symbol table by name1154036
++Ref: Symbol table by name-Footnote-11157247
++Node: Symbol table by cookie1157379
++Ref: Symbol table by cookie-Footnote-11161660
++Node: Cached values1161724
++Ref: Cached values-Footnote-11165368
++Node: Array Manipulation1165525
++Ref: Array Manipulation-Footnote-11166628
++Node: Array Data Types1166665
++Ref: Array Data Types-Footnote-11169487
++Node: Array Functions1169587
++Node: Flattening Arrays1174616
++Node: Creating Arrays1181668
++Node: Redirection API1186518
++Node: Extension API Variables1189539
++Node: Extension Versioning1190264
++Ref: gawk-api-version1190701
++Node: Extension GMP/MPFR Versioning1192489
++Node: Extension API Informational Variables1194195
++Node: Extension API Boilerplate1195356
++Node: Changes from API V11199492
++Node: Finding Extensions1201126
++Node: Extension Example1201701
++Node: Internal File Description1202525
++Node: Internal File Ops1206849
++Ref: Internal File Ops-Footnote-11218407
++Node: Using Internal File Ops1218555
++Ref: Using Internal File Ops-Footnote-11220986
++Node: Extension Samples1221264
++Node: Extension Sample File Functions1222833
++Node: Extension Sample Fnmatch1230971
++Node: Extension Sample Fork1232566
++Node: Extension Sample Inplace1233842
++Node: Extension Sample Ord1237514
++Node: Extension Sample Readdir1238390
++Ref: table-readdir-file-types1239287
++Node: Extension Sample Revout1240425
++Node: Extension Sample Rev2way1241022
++Node: Extension Sample Read write array1241774
++Node: Extension Sample Readfile1245048
++Node: Extension Sample Time1246179
++Node: Extension Sample API Tests1248469
++Node: gawkextlib1248977
++Node: Extension summary1252013
++Node: Extension Exercises1255871
++Node: Language History1257149
++Node: V7/SVR3.11258863
++Node: SVR41261213
++Node: POSIX1262745
++Node: BTL1264170
++Node: POSIX/GNU1264939
++Node: Feature History1271470
++Node: Common Extensions1291036
++Node: Ranges and Locales1292405
++Ref: Ranges and Locales-Footnote-11297206
++Ref: Ranges and Locales-Footnote-21297233
++Ref: Ranges and Locales-Footnote-31297472
++Node: Contributors1297695
++Node: History summary1303900
++Node: Installation1305346
++Node: Gawk Distribution1306310
++Node: Getting1306802
++Node: Extracting1307801
++Node: Distribution contents1309513
++Node: Unix Installation1317593
++Node: Quick Installation1318415
++Node: Compiling with MPFR1320961
++Node: Shell Startup Files1321667
++Node: Additional Configuration Options1322824
++Node: Configuration Philosophy1325211
++Node: Compiling from Git1327713
++Node: Building the Documentation1328272
++Node: Non-Unix Installation1329684
++Node: PC Installation1330160
++Node: PC Binary Installation1331033
++Node: PC Compiling1331938
++Node: PC Using1333116
++Node: Cygwin1336844
++Node: MSYS1338100
++Node: OpenVMS Installation1338732
++Node: OpenVMS Compilation1339413
++Ref: OpenVMS Compilation-Footnote-11340896
++Node: OpenVMS Dynamic Extensions1340958
++Node: OpenVMS Installation Details1342594
++Node: OpenVMS Running1345029
++Node: OpenVMS GNV1349166
++Node: Bugs1349921
++Node: Bug definition1350845
++Node: Bug address1354496
++Node: Usenet1358087
++Node: Performance bugs1359318
++Node: Asking for help1362336
++Node: Maintainers1364327
++Node: Other Versions1365354
++Node: Installation summary1374286
++Node: Notes1375670
++Node: Compatibility Mode1376480
++Node: Additions1377302
++Node: Accessing The Source1378247
++Node: Adding Code1379782
++Node: New Ports1386918
++Node: Derived Files1391428
++Ref: Derived Files-Footnote-11397275
++Ref: Derived Files-Footnote-21397310
++Ref: Derived Files-Footnote-31397927
++Node: Future Extensions1398041
++Node: Implementation Limitations1398713
++Node: Extension Design1399955
++Node: Old Extension Problems1401119
++Ref: Old Extension Problems-Footnote-11402695
++Node: Extension New Mechanism Goals1402756
++Ref: Extension New Mechanism Goals-Footnote-11406252
++Node: Extension Other Design Decisions1406453
++Node: Extension Future Growth1408652
++Node: Notes summary1409276
++Node: Basic Concepts1410489
++Node: Basic High Level1411174
++Ref: figure-general-flow1411456
++Ref: figure-process-flow1412163
++Ref: Basic High Level-Footnote-11415564
++Node: Basic Data Typing1415753
++Node: Glossary1419171
++Node: Copying1452293
++Node: GNU Free Documentation License1490054
++Node: Index1515377
  End Tag Table

commit e7720935594d7442f92eecbe08eb69857aab8c4e
Merge: 0928a907 0ada00ce
Author: Arnold D. Robbins <>
Date:   Sun Feb 12 21:15:04 2023 +0200

    Merge branch 'master' into feature/backslash-u

diff --cc doc/
index a627642c,218f333c..9ffe2a86
--- a/doc/
+++ b/doc/
@@@ -30746,8 -30795,9 +30809,11 @@@ unfortunately.  It added the following 
     • Comma separated value (CSV) field splitting (*note Comma Separated
+    • The ability to make ‘gawk’ buffer output to pipes (*note
+      Noflush::).
 +   • The ‘\u’ escape sequence (*note Escape Sequences::)
     • The need for GNU ‘libsigsegv’ was removed from ‘gawk’.  The
       value-add was never very much and it caused problems in some
@@@ -39371,620 -39419,621 +39439,621 @@@ Inde
  Tag Table:
  Node: Top1229
- Node: Foreword346743
- Node: Foreword451343
- Node: Preface52892
- Ref: Preface-Footnote-155884
- Ref: Preface-Footnote-255993
- Ref: Preface-Footnote-356227
- Node: History56373
- Node: Names58837
- Ref: Names-Footnote-160000
- Node: This Manual60163
- Ref: This Manual-Footnote-167113
- Node: Conventions67225
- Node: Manual History69703
- Ref: Manual History-Footnote-172740
- Ref: Manual History-Footnote-272787
- Node: How To Contribute72865
- Node: Acknowledgments73815
- Node: Getting Started78813
- Node: Running gawk81340
- Node: One-shot82558
- Node: Read Terminal83861
- Node: Long85921
- Node: Executable Scripts87502
- Ref: Executable Scripts-Footnote-190277
- Node: Comments90384
- Node: Quoting92922
- Node: DOS Quoting98571
- Node: Sample Data Files100657
- Node: Very Simple103294
- Node: Two Rules109573
- Node: More Complex111527
- Node: Statements/Lines113967
- Ref: Statements/Lines-Footnote-1118847
- Node: Other Features119136
- Node: When120104
- Ref: When-Footnote-1121910
- Node: Intro Summary121975
- Node: Invoking Gawk122931
- Node: Command Line124501
- Node: Options125352
- Ref: Options-Footnote-1144501
- Ref: Options-Footnote-2144736
- Node: Other Arguments144761
- Node: Naming Standard Input148938
- Node: Environment Variables150208
- Node: AWKPATH Variable150782
- Ref: AWKPATH Variable-Footnote-1154372
- Ref: AWKPATH Variable-Footnote-2154406
- Node: AWKLIBPATH Variable154799
- Ref: AWKLIBPATH Variable-Footnote-1156574
- Node: Other Environment Variables156971
- Node: Exit Status161467
- Node: Include Files162182
- Node: Loading Shared Libraries166053
- Node: Obsolete167545
- Node: Undocumented168181
- Node: Invoking Summary168480
- Node: Regexp171507
- Node: Regexp Usage173001
- Node: Escape Sequences175102
- Node: Regexp Operators182438
- Node: Regexp Operator Details182931
- Ref: Regexp Operator Details-Footnote-1190797
- Node: Interval Expressions190956
- Ref: Interval Expressions-Footnote-1193225
- Node: Bracket Expressions193325
- Ref: table-char-classes195885
- Node: Leftmost Longest199407
- Node: Computed Regexps200767
- Node: GNU Regexp Operators204290
- Node: Case-sensitivity208313
- Ref: Case-sensitivity-Footnote-1211270
- Ref: Case-sensitivity-Footnote-2211515
- Node: Regexp Summary211631
- Node: Reading Files213155
- Node: Records215472
- Node: awk split records216583
- Node: gawk split records221473
- Ref: gawk split records-Footnote-1226767
- Node: Fields226804
- Node: Nonconstant Fields229691
- Ref: Nonconstant Fields-Footnote-1232002
- Node: Changing Fields232218
- Node: Field Separators238526
- Node: Default Field Splitting241399
- Node: Regexp Field Splitting242542
- Node: Single Character Fields246371
- Node: Comma Separated Fields247460
- Ref: table-csv-examples248748
- Node: Command Line Field Separator249700
- Node: Full Line Fields253086
- Ref: Full Line Fields-Footnote-1254666
- Ref: Full Line Fields-Footnote-2254712
- Node: Field Splitting Summary254820
- Node: Constant Size257099
- Node: Fixed width data257843
- Node: Skipping intervening261362
- Node: Allowing trailing data262164
- Node: Fields with fixed data263229
- Node: Splitting By Content264855
- Ref: Splitting By Content-Footnote-1269040
- Node: More CSV269203
- Node: FS versus FPAT270856
- Node: Testing field creation272065
- Node: Multiple Line273758
- Node: Getline280240
- Node: Plain Getline282826
- Node: Getline/Variable285476
- Node: Getline/File286673
- Node: Getline/Variable/File288121
- Ref: Getline/Variable/File-Footnote-1289766
- Node: Getline/Pipe289862
- Node: Getline/Variable/Pipe292675
- Node: Getline/Coprocess293858
- Node: Getline/Variable/Coprocess295181
- Node: Getline Notes295947
- Node: Getline Summary298908
- Ref: table-getline-variants299352
- Node: Read Timeout300257
- Ref: Read Timeout-Footnote-1304221
- Node: Retrying Input304279
- Node: Command-line directories305546
- Node: Input Summary306484
- Node: Input Exercises309864
- Node: Printing310304
- Node: Print312190
- Node: Print Examples313696
- Node: Output Separators316549
- Node: OFMT318660
- Node: Printf320083
- Node: Basic Printf320888
- Node: Control Letters322524
- Node: Format Modifiers327993
- Node: Printf Examples334279
- Node: Redirection336824
- Node: Special FD343898
- Ref: Special FD-Footnote-1347188
- Node: Special Files347274
- Node: Other Inherited Files347903
- Node: Special Network348968
- Node: Special Caveats349856
- Node: Close Files And Pipes350839
- Ref: Close Files And Pipes-Footnote-1356976
- Node: Close Return Value357132
- Ref: table-close-pipe-return-values358407
- Ref: Close Return Value-Footnote-1359241
- Node: Nonfatal359397
- Node: Output Summary361828
- Node: Output Exercises363114
- Node: Expressions363805
- Node: Values365007
- Node: Constants365685
- Node: Scalar Constants366382
- Ref: Scalar Constants-Footnote-1368957
- Node: Nondecimal-numbers369207
- Node: Regexp Constants372328
- Node: Using Constant Regexps372874
- Node: Standard Regexp Constants373520
- Node: Strong Regexp Constants376820
- Node: Variables380671
- Node: Using Variables381336
- Node: Assignment Options383316
- Node: Conversion385878
- Node: Strings And Numbers386410
- Ref: Strings And Numbers-Footnote-1389629
- Node: Locale influences conversions389738
- Ref: table-locale-affects392588
- Node: All Operators393231
- Node: Arithmetic Ops393872
- Node: Concatenation396702
- Ref: Concatenation-Footnote-1399652
- Node: Assignment Ops399775
- Ref: table-assign-ops404914
- Node: Increment Ops406296
- Node: Truth Values and Conditions409895
- Node: Truth Values411021
- Node: Typing and Comparison412112
- Node: Variable Typing412948
- Ref: Variable Typing-Footnote-1419610
- Ref: Variable Typing-Footnote-2419690
- Node: Comparison Operators419773
- Ref: table-relational-ops420200
- Node: POSIX String Comparison423886
- Ref: POSIX String Comparison-Footnote-1425645
- Ref: POSIX String Comparison-Footnote-2425788
- Node: Boolean Ops425872
- Ref: Boolean Ops-Footnote-1430565
- Node: Conditional Exp430661
- Node: Function Calls432447
- Node: Precedence436397
- Node: Locales440274
- Node: Expressions Summary441956
- Node: Patterns and Actions444619
- Node: Pattern Overview445761
- Node: Regexp Patterns447487
- Node: Expression Patterns448033
- Node: Ranges451942
- Node: BEGIN/END455120
- Node: Using BEGIN/END455933
- Ref: Using BEGIN/END-Footnote-1458843
- Node: I/O And BEGIN/END458953
- Node: Empty464875
- Node: Using Shell Variables465192
- Node: Action Overview467530
- Node: Statements469965
- Node: If Statement471863
- Node: While Statement473432
- Node: Do Statement475520
- Node: For Statement476706
- Node: Switch Statement480063
- Node: Break Statement482614
- Node: Continue Statement484806
- Node: Next Statement486738
- Node: Nextfile Statement489235
- Node: Exit Statement492096
- Node: Built-in Variables494629
- Node: User-modified495808
- Node: Auto-set504019
- Ref: Auto-set-Footnote-1521872
- Ref: Auto-set-Footnote-2522090
- Node: ARGC and ARGV522146
- Node: Pattern Action Summary526585
- Node: Arrays529201
- Node: Array Basics530578
- Node: Array Intro531428
- Ref: figure-array-elements533444
- Ref: Array Intro-Footnote-1536308
- Node: Reference to Elements536440
- Node: Assigning Elements538962
- Node: Array Example539457
- Node: Scanning an Array541426
- Node: Controlling Scanning544523
- Ref: Controlling Scanning-Footnote-1551186
- Node: Numeric Array Subscripts551510
- Node: Uninitialized Subscripts553784
- Node: Delete555463
- Ref: Delete-Footnote-1558277
- Node: Multidimensional558334
- Node: Multiscanning561539
- Node: Arrays of Arrays563211
- Node: Arrays Summary568111
- Node: Functions570300
- Node: Built-in571360
- Node: Calling Built-in572549
- Node: Boolean Functions574596
- Node: Numeric Functions575166
- Ref: Numeric Functions-Footnote-1579359
- Ref: Numeric Functions-Footnote-2580043
- Ref: Numeric Functions-Footnote-3580095
- Node: String Functions580371
- Ref: String Functions-Footnote-1606507
- Ref: String Functions-Footnote-2606641
- Ref: String Functions-Footnote-3606901
- Node: Gory Details606988
- Ref: table-sub-escapes608895
- Ref: table-sub-proposed610541
- Ref: table-posix-sub612051
- Ref: table-gensub-escapes613739
- Ref: Gory Details-Footnote-1614673
- Node: I/O Functions614827
- Ref: table-system-return-values621514
- Ref: I/O Functions-Footnote-1623685
- Ref: I/O Functions-Footnote-2623833
- Node: Time Functions623953
- Ref: Time Functions-Footnote-1635109
- Ref: Time Functions-Footnote-2635185
- Ref: Time Functions-Footnote-3635347
- Ref: Time Functions-Footnote-4635458
- Ref: Time Functions-Footnote-5635576
- Ref: Time Functions-Footnote-6635811
- Node: Bitwise Functions636093
- Ref: table-bitwise-ops636695
- Ref: Bitwise Functions-Footnote-1642949
- Ref: Bitwise Functions-Footnote-2643128
- Node: Type Functions643325
- Node: I18N Functions646918
- Node: User-defined648661
- Node: Definition Syntax649481
- Ref: Definition Syntax-Footnote-1655309
- Node: Function Example655386
- Ref: Function Example-Footnote-1658365
- Node: Function Calling658387
- Node: Calling A Function658981
- Node: Variable Scope659951
- Node: Pass By Value/Reference663005
- Node: Function Caveats665737
- Ref: Function Caveats-Footnote-1667832
- Node: Return Statement667956
- Node: Dynamic Typing671011
- Node: Indirect Calls671967
- Node: Functions Summary683126
- Node: Library Functions685903
- Ref: Library Functions-Footnote-1689451
- Ref: Library Functions-Footnote-2689594
- Node: Library Names689769
- Ref: Library Names-Footnote-1693563
- Ref: Library Names-Footnote-2693790
- Node: General Functions693886
- Node: Strtonum Function695080
- Node: Assert Function698162
- Node: Round Function701614
- Node: Cliff Random Function703192
- Node: Ordinal Functions704225
- Ref: Ordinal Functions-Footnote-1707334
- Ref: Ordinal Functions-Footnote-2707586
- Node: Join Function707800
- Ref: Join Function-Footnote-1709603
- Node: Getlocaltime Function709807
- Node: Readfile Function713581
- Node: Shell Quoting715610
- Node: Isnumeric Function717066
- Node: Data File Management718478
- Node: Filetrans Function719110
- Node: Rewind Function723404
- Node: File Checking725383
- Ref: File Checking-Footnote-1726755
- Node: Empty Files726962
- Node: Ignoring Assigns729029
- Node: Getopt Function730603
- Ref: Getopt Function-Footnote-1746445
- Node: Passwd Functions746657
- Ref: Passwd Functions-Footnote-1755839
- Node: Group Functions755927
- Ref: Group Functions-Footnote-1764065
- Node: Walking Arrays764278
- Node: Library Functions Summary767326
- Node: Library Exercises768750
- Node: Sample Programs769237
- Node: Running Examples770019
- Node: Clones770771
- Node: Cut Program772043
- Node: Egrep Program782484
- Node: Id Program791801
- Node: Split Program801915
- Ref: Split Program-Footnote-1812150
- Node: Tee Program812337
- Node: Uniq Program815246
- Node: Wc Program823111
- Node: Bytes vs. Characters823506
- Node: Using extensions825108
- Node: wc program825888
- Node: Miscellaneous Programs830894
- Node: Dupword Program832123
- Node: Alarm Program834186
- Node: Translate Program839099
- Ref: Translate Program-Footnote-1843840
- Node: Labels Program844118
- Ref: Labels Program-Footnote-1847559
- Node: Word Sorting847651
- Node: History Sorting851845
- Node: Extract Program854120
- Node: Simple Sed862389
- Node: Igawk Program865605
- Ref: Igawk Program-Footnote-1880852
- Ref: Igawk Program-Footnote-2881058
- Ref: Igawk Program-Footnote-3881188
- Node: Anagram Program881315
- Node: Signature Program884411
- Node: Programs Summary885663
- Node: Programs Exercises886921
- Ref: Programs Exercises-Footnote-1891237
- Node: Advanced Features891323
- Node: Nondecimal Data893817
- Node: Boolean Typed Values895447
- Node: Array Sorting897422
- Node: Controlling Array Traversal898151
- Ref: Controlling Array Traversal-Footnote-1906658
- Node: Array Sorting Functions906780
- Ref: Array Sorting Functions-Footnote-1912899
- Node: Two-way I/O913107
- Ref: Two-way I/O-Footnote-1921102
- Ref: Two-way I/O-Footnote-2921293
- Node: TCP/IP Networking921375
- Node: Profiling924555
- Node: Persistent Memory934265
- Ref: Persistent Memory-Footnote-1942779
- Node: Extension Philosophy942910
- Node: Advanced Features Summary944445
- Node: Internationalization946715
- Node: I18N and L10N948421
- Node: Explaining gettext949116
- Ref: Explaining gettext-Footnote-1955269
- Ref: Explaining gettext-Footnote-2955464
- Node: Programmer i18n955629
- Ref: Programmer i18n-Footnote-1960742
- Node: Translator i18n960791
- Node: String Extraction961627
- Ref: String Extraction-Footnote-1962805
- Node: Printf Ordering962903
- Ref: Printf Ordering-Footnote-1965765
- Node: I18N Portability965833
- Ref: I18N Portability-Footnote-1968407
- Node: I18N Example968478
- Ref: I18N Example-Footnote-1971878
- Ref: I18N Example-Footnote-2971954
- Node: Gawk I18N972071
- Node: I18N Summary972727
- Node: Debugger974128
- Node: Debugging975152
- Node: Debugging Concepts975601
- Node: Debugging Terms977427
- Node: Awk Debugging980040
- Ref: Awk Debugging-Footnote-1981017
- Node: Sample Debugging Session981157
- Node: Debugger Invocation981709
- Node: Finding The Bug983338
- Node: List of Debugger Commands990024
- Node: Breakpoint Control991401
- Node: Debugger Execution Control995233
- Node: Viewing And Changing Data998713
- Node: Execution Stack1002451
- Node: Debugger Info1004132
- Node: Miscellaneous Debugger Commands1008431
- Node: Readline Support1013684
- Node: Limitations1014630
- Node: Debugging Summary1017274
- Node: Namespaces1018577
- Node: Global Namespace1019704
- Node: Qualified Names1021149
- Node: Default Namespace1022184
- Node: Changing The Namespace1022959
- Node: Naming Rules1024653
- Node: Internal Name Management1026568
- Node: Namespace Example1027638
- Node: Namespace And Features1030221
- Node: Namespace Summary1031678
- Node: Arbitrary Precision Arithmetic1033191
- Node: Computer Arithmetic1034710
- Ref: table-numeric-ranges1038527
- Ref: table-floating-point-ranges1039025
- Ref: Computer Arithmetic-Footnote-11039684
- Node: Math Definitions1039743
- Ref: table-ieee-formats1042788
- Node: MPFR features1043362
- Node: MPFR On Parole1043815
- Ref: MPFR On Parole-Footnote-11044659
- Node: MPFR Intro1044818
- Node: FP Math Caution1046508
- Ref: FP Math Caution-Footnote-11047582
- Node: Inexactness of computations1047959
- Node: Inexact representation1048990
- Node: Comparing FP Values1050373
- Node: Errors accumulate1051631
- Node: Strange values1053098
- Ref: Strange values-Footnote-11055764
- Node: Getting Accuracy1055869
- Node: Try To Round1058606
- Node: Setting precision1059513
- Ref: table-predefined-precision-strings1060218
- Node: Setting the rounding mode1062103
- Ref: table-gawk-rounding-modes1062485
- Ref: Setting the rounding mode-Footnote-11066543
- Node: Arbitrary Precision Integers1066726
- Ref: Arbitrary Precision Integers-Footnote-11069938
- Node: Checking for MPFR1070094
- Node: POSIX Floating Point Problems1071584
- Ref: POSIX Floating Point Problems-Footnote-11076448
- Node: Floating point summary1076486
- Node: Dynamic Extensions1078750
- Node: Extension Intro1080349
- Node: Plugin License1081657
- Node: Extension Mechanism Outline1082470
- Ref: figure-load-extension1082921
- Ref: figure-register-new-function1084501
- Ref: figure-call-new-function1085606
- Node: Extension API Description1087725
- Node: Extension API Functions Introduction1089454
- Ref: table-api-std-headers1091352
- Node: General Data Types1095816
- Ref: General Data Types-Footnote-11104984
- Node: Memory Allocation Functions1105299
- Ref: Memory Allocation Functions-Footnote-11110024
- Node: Constructor Functions1110123
- Node: API Ownership of MPFR and GMP Values1114028
- Node: Registration Functions1115589
- Node: Extension Functions1116293
- Node: Exit Callback Functions1121869
- Node: Extension Version String1123188
- Node: Input Parsers1123883
- Node: Output Wrappers1137257
- Node: Two-way processors1141965
- Node: Printing Messages1144326
- Ref: Printing Messages-Footnote-11145540
- Node: Updating ERRNO1145695
- Node: Requesting Values1146494
- Ref: table-value-types-returned1147247
- Node: Accessing Parameters1148356
- Node: Symbol Table Access1149640
- Node: Symbol table by name1150156
- Ref: Symbol table by name-Footnote-11153367
- Node: Symbol table by cookie1153499
- Ref: Symbol table by cookie-Footnote-11157780
- Node: Cached values1157844
- Ref: Cached values-Footnote-11161488
- Node: Array Manipulation1161645
- Ref: Array Manipulation-Footnote-11162748
- Node: Array Data Types1162785
- Ref: Array Data Types-Footnote-11165607
- Node: Array Functions1165707
- Node: Flattening Arrays1170736
- Node: Creating Arrays1177788
- Node: Redirection API1182638
- Node: Extension API Variables1185659
- Node: Extension Versioning1186384
- Ref: gawk-api-version1186821
- Node: Extension GMP/MPFR Versioning1188609
- Node: Extension API Informational Variables1190315
- Node: Extension API Boilerplate1191476
- Node: Changes from API V11195612
- Node: Finding Extensions1197246
- Node: Extension Example1197821
- Node: Internal File Description1198645
- Node: Internal File Ops1202969
- Ref: Internal File Ops-Footnote-11214527
- Node: Using Internal File Ops1214675
- Ref: Using Internal File Ops-Footnote-11217106
- Node: Extension Samples1217384
- Node: Extension Sample File Functions1218953
- Node: Extension Sample Fnmatch1227091
- Node: Extension Sample Fork1228686
- Node: Extension Sample Inplace1229962
- Node: Extension Sample Ord1233634
- Node: Extension Sample Readdir1234510
- Ref: table-readdir-file-types1235407
- Node: Extension Sample Revout1236545
- Node: Extension Sample Rev2way1237142
- Node: Extension Sample Read write array1237894
- Node: Extension Sample Readfile1241168
- Node: Extension Sample Time1242299
- Node: Extension Sample API Tests1244115
- Node: gawkextlib1244623
- Node: Extension summary1247659
- Node: Extension Exercises1251517
- Node: Language History1252795
- Node: V7/SVR3.11254509
- Node: SVR41256859
- Node: POSIX1258391
- Node: BTL1259816
- Node: POSIX/GNU1260585
- Node: Feature History1267116
- Node: Common Extensions1286543
- Node: Ranges and Locales1287912
- Ref: Ranges and Locales-Footnote-11292713
- Ref: Ranges and Locales-Footnote-21292740
- Ref: Ranges and Locales-Footnote-31292979
- Node: Contributors1293202
- Node: History summary1299407
- Node: Installation1300853
- Node: Gawk Distribution1301817
- Node: Getting1302309
- Node: Extracting1303308
- Node: Distribution contents1305020
- Node: Unix Installation1313100
- Node: Quick Installation1313922
- Node: Compiling with MPFR1316468
- Node: Shell Startup Files1317174
- Node: Additional Configuration Options1318331
- Node: Configuration Philosophy1320718
- Node: Compiling from Git1323220
- Node: Building the Documentation1323779
- Node: Non-Unix Installation1325191
- Node: PC Installation1325667
- Node: PC Binary Installation1326540
- Node: PC Compiling1327445
- Node: PC Using1328623
- Node: Cygwin1332351
- Node: MSYS1333607
- Node: OpenVMS Installation1334239
- Node: OpenVMS Compilation1334920
- Ref: OpenVMS Compilation-Footnote-11336403
- Node: OpenVMS Dynamic Extensions1336465
- Node: OpenVMS Installation Details1338101
- Node: OpenVMS Running1340536
- Node: OpenVMS GNV1344673
- Node: Bugs1345428
- Node: Bug definition1346352
- Node: Bug address1350003
- Node: Usenet1353594
- Node: Performance bugs1354825
- Node: Asking for help1357843
- Node: Maintainers1359834
- Node: Other Versions1360861
- Node: Installation summary1369793
- Node: Notes1371177
- Node: Compatibility Mode1371987
- Node: Additions1372809
- Node: Accessing The Source1373754
- Node: Adding Code1375289
- Node: New Ports1382425
- Node: Derived Files1386935
- Ref: Derived Files-Footnote-11392782
- Ref: Derived Files-Footnote-21392817
- Ref: Derived Files-Footnote-31393434
- Node: Future Extensions1393548
- Node: Implementation Limitations1394220
- Node: Extension Design1395462
- Node: Old Extension Problems1396626
- Ref: Old Extension Problems-Footnote-11398202
- Node: Extension New Mechanism Goals1398263
- Ref: Extension New Mechanism Goals-Footnote-11401759
- Node: Extension Other Design Decisions1401960
- Node: Extension Future Growth1404159
- Node: Notes summary1404783
- Node: Basic Concepts1405996
- Node: Basic High Level1406681
- Ref: figure-general-flow1406963
- Ref: figure-process-flow1407665
- Ref: Basic High Level-Footnote-11411061
- Node: Basic Data Typing1411250
- Node: Glossary1414668
- Node: Copying1447790
- Node: GNU Free Documentation License1485551
- Node: Index1510874
+ Node: Foreword346808
+ Node: Foreword451408
+ Node: Preface52957
+ Ref: Preface-Footnote-155949
+ Ref: Preface-Footnote-256058
+ Ref: Preface-Footnote-356292
+ Node: History56438
+ Node: Names58902
+ Ref: Names-Footnote-160065
+ Node: This Manual60228
+ Ref: This Manual-Footnote-167178
+ Node: Conventions67290
+ Node: Manual History69768
+ Ref: Manual History-Footnote-172805
+ Ref: Manual History-Footnote-272852
+ Node: How To Contribute72930
+ Node: Acknowledgments73880
+ Node: Getting Started78878
+ Node: Running gawk81405
+ Node: One-shot82623
+ Node: Read Terminal83926
+ Node: Long85986
+ Node: Executable Scripts87567
+ Ref: Executable Scripts-Footnote-190342
+ Node: Comments90449
+ Node: Quoting92987
+ Node: DOS Quoting98636
+ Node: Sample Data Files100722
+ Node: Very Simple103359
+ Node: Two Rules109638
+ Node: More Complex111592
+ Node: Statements/Lines114032
+ Ref: Statements/Lines-Footnote-1118912
+ Node: Other Features119201
+ Node: When120169
+ Ref: When-Footnote-1121975
+ Node: Intro Summary122040
+ Node: Invoking Gawk122996
+ Node: Command Line124566
+ Node: Options125417
+ Ref: Options-Footnote-1144566
+ Ref: Options-Footnote-2144801
+ Node: Other Arguments144826
+ Node: Naming Standard Input149003
+ Node: Environment Variables150273
+ Node: AWKPATH Variable150847
+ Ref: AWKPATH Variable-Footnote-1154437
+ Ref: AWKPATH Variable-Footnote-2154471
+ Node: AWKLIBPATH Variable154864
+ Ref: AWKLIBPATH Variable-Footnote-1156639
+ Node: Other Environment Variables157036
+ Node: Exit Status161532
+ Node: Include Files162247
+ Node: Loading Shared Libraries166118
+ Node: Obsolete167610
+ Node: Undocumented168246
+ Node: Invoking Summary168545
+ Node: Regexp171572
+ Node: Regexp Usage173066
+ Node: Escape Sequences175167
 -Node: Regexp Operators181698
 -Node: Regexp Operator Details182191
 -Ref: Regexp Operator Details-Footnote-1190057
 -Node: Interval Expressions190216
 -Ref: Interval Expressions-Footnote-1192485
 -Node: Bracket Expressions192585
 -Ref: table-char-classes195145
 -Node: Leftmost Longest198667
 -Node: Computed Regexps200027
 -Node: GNU Regexp Operators203550
 -Node: Case-sensitivity207573
 -Ref: Case-sensitivity-Footnote-1210530
 -Ref: Case-sensitivity-Footnote-2210775
 -Node: Regexp Summary210891
 -Node: Reading Files212415
 -Node: Records214732
 -Node: awk split records215843
 -Node: gawk split records220733
 -Ref: gawk split records-Footnote-1226027
 -Node: Fields226064
 -Node: Nonconstant Fields228951
 -Ref: Nonconstant Fields-Footnote-1231262
 -Node: Changing Fields231478
 -Node: Field Separators237786
 -Node: Default Field Splitting240659
 -Node: Regexp Field Splitting241802
 -Node: Single Character Fields245631
 -Node: Comma Separated Fields246720
 -Ref: table-csv-examples248008
 -Node: Command Line Field Separator248960
 -Node: Full Line Fields252346
 -Ref: Full Line Fields-Footnote-1253926
 -Ref: Full Line Fields-Footnote-2253972
 -Node: Field Splitting Summary254080
 -Node: Constant Size256359
 -Node: Fixed width data257103
 -Node: Skipping intervening260622
 -Node: Allowing trailing data261424
 -Node: Fields with fixed data262489
 -Node: Splitting By Content264115
 -Ref: Splitting By Content-Footnote-1268300
 -Node: More CSV268463
 -Node: FS versus FPAT270116
 -Node: Testing field creation271325
 -Node: Multiple Line273018
 -Node: Getline279500
 -Node: Plain Getline282086
 -Node: Getline/Variable284736
 -Node: Getline/File285933
 -Node: Getline/Variable/File287381
 -Ref: Getline/Variable/File-Footnote-1289026
 -Node: Getline/Pipe289122
 -Node: Getline/Variable/Pipe291935
 -Node: Getline/Coprocess293118
 -Node: Getline/Variable/Coprocess294441
 -Node: Getline Notes295207
 -Node: Getline Summary298168
 -Ref: table-getline-variants298612
 -Node: Read Timeout299517
 -Ref: Read Timeout-Footnote-1303481
 -Node: Retrying Input303539
 -Node: Command-line directories304806
 -Node: Input Summary305744
 -Node: Input Exercises309124
 -Node: Printing309564
 -Node: Print311507
 -Node: Print Examples313013
 -Node: Output Separators315866
 -Node: OFMT317977
 -Node: Printf319400
 -Node: Basic Printf320205
 -Node: Control Letters321841
 -Node: Format Modifiers327310
 -Node: Printf Examples333596
 -Node: Redirection336141
 -Node: Special FD343215
 -Ref: Special FD-Footnote-1346505
 -Node: Special Files346591
 -Node: Other Inherited Files347220
 -Node: Special Network348285
 -Node: Special Caveats349173
 -Node: Close Files And Pipes350156
 -Ref: Close Files And Pipes-Footnote-1356292
 -Node: Close Return Value356448
 -Ref: table-close-pipe-return-values357723
 -Ref: Close Return Value-Footnote-1358557
 -Node: Noflush358713
 -Node: Nonfatal360185
 -Node: Output Summary362602
 -Node: Output Exercises363888
 -Node: Expressions364579
 -Node: Values365781
 -Node: Constants366459
 -Node: Scalar Constants367156
 -Ref: Scalar Constants-Footnote-1369731
 -Node: Nondecimal-numbers369981
 -Node: Regexp Constants373102
 -Node: Using Constant Regexps373648
 -Node: Standard Regexp Constants374294
 -Node: Strong Regexp Constants377594
 -Node: Variables381445
 -Node: Using Variables382110
 -Node: Assignment Options384090
 -Node: Conversion386652
 -Node: Strings And Numbers387184
 -Ref: Strings And Numbers-Footnote-1390403
 -Node: Locale influences conversions390512
 -Ref: table-locale-affects393362
 -Node: All Operators394005
 -Node: Arithmetic Ops394646
 -Node: Concatenation397476
 -Ref: Concatenation-Footnote-1400426
 -Node: Assignment Ops400549
 -Ref: table-assign-ops405688
 -Node: Increment Ops407070
 -Node: Truth Values and Conditions410669
 -Node: Truth Values411795
 -Node: Typing and Comparison412886
 -Node: Variable Typing413722
 -Ref: Variable Typing-Footnote-1420384
 -Ref: Variable Typing-Footnote-2420464
 -Node: Comparison Operators420547
 -Ref: table-relational-ops420974
 -Node: POSIX String Comparison424660
 -Ref: POSIX String Comparison-Footnote-1426419
 -Ref: POSIX String Comparison-Footnote-2426562
 -Node: Boolean Ops426646
 -Ref: Boolean Ops-Footnote-1431339
 -Node: Conditional Exp431435
 -Node: Function Calls433221
 -Node: Precedence437171
 -Node: Locales441048
 -Node: Expressions Summary442730
 -Node: Patterns and Actions445393
 -Node: Pattern Overview446535
 -Node: Regexp Patterns448261
 -Node: Expression Patterns448807
 -Node: Ranges452716
 -Node: BEGIN/END455894
 -Node: Using BEGIN/END456707
 -Ref: Using BEGIN/END-Footnote-1459617
 -Node: I/O And BEGIN/END459727
 -Node: Empty465649
 -Node: Using Shell Variables465966
 -Node: Action Overview468304
 -Node: Statements470739
 -Node: If Statement472637
 -Node: While Statement474206
 -Node: Do Statement476294
 -Node: For Statement477480
 -Node: Switch Statement480837
 -Node: Break Statement483388
 -Node: Continue Statement485580
 -Node: Next Statement487512
 -Node: Nextfile Statement490009
 -Node: Exit Statement492870
 -Node: Built-in Variables495403
 -Node: User-modified496582
 -Node: Auto-set504793
 -Ref: Auto-set-Footnote-1522892
 -Ref: Auto-set-Footnote-2523110
 -Node: ARGC and ARGV523166
 -Node: Pattern Action Summary527605
 -Node: Arrays530221
 -Node: Array Basics531598
 -Node: Array Intro532448
 -Ref: figure-array-elements534464
 -Ref: Array Intro-Footnote-1537328
 -Node: Reference to Elements537460
 -Node: Assigning Elements539982
 -Node: Array Example540477
 -Node: Scanning an Array542446
 -Node: Controlling Scanning545543
 -Ref: Controlling Scanning-Footnote-1552206
 -Node: Numeric Array Subscripts552530
 -Node: Uninitialized Subscripts554804
 -Node: Delete556483
 -Ref: Delete-Footnote-1559297
 -Node: Multidimensional559354
 -Node: Multiscanning562559
 -Node: Arrays of Arrays564231
 -Node: Arrays Summary569131
 -Node: Functions571320
 -Node: Built-in572380
 -Node: Calling Built-in573569
 -Node: Boolean Functions575616
 -Node: Numeric Functions576186
 -Ref: Numeric Functions-Footnote-1580379
 -Ref: Numeric Functions-Footnote-2581063
 -Ref: Numeric Functions-Footnote-3581115
 -Node: String Functions581391
 -Ref: String Functions-Footnote-1607527
 -Ref: String Functions-Footnote-2607661
 -Ref: String Functions-Footnote-3607921
 -Node: Gory Details608008
 -Ref: table-sub-escapes609915
 -Ref: table-sub-proposed611561
 -Ref: table-posix-sub613071
 -Ref: table-gensub-escapes614759
 -Ref: Gory Details-Footnote-1615693
 -Node: I/O Functions615847
 -Ref: table-system-return-values622534
 -Ref: I/O Functions-Footnote-1624705
 -Ref: I/O Functions-Footnote-2624853
 -Node: Time Functions624973
 -Ref: Time Functions-Footnote-1636129
 -Ref: Time Functions-Footnote-2636205
 -Ref: Time Functions-Footnote-3636367
 -Ref: Time Functions-Footnote-4636478
 -Ref: Time Functions-Footnote-5636596
 -Ref: Time Functions-Footnote-6636831
 -Node: Bitwise Functions637113
 -Ref: table-bitwise-ops637715
 -Ref: Bitwise Functions-Footnote-1643969
 -Ref: Bitwise Functions-Footnote-2644148
 -Node: Type Functions644345
 -Node: I18N Functions647938
 -Node: User-defined649681
 -Node: Definition Syntax650501
 -Ref: Definition Syntax-Footnote-1656329
 -Node: Function Example656406
 -Ref: Function Example-Footnote-1659385
 -Node: Function Calling659407
 -Node: Calling A Function660001
 -Node: Variable Scope660971
 -Node: Pass By Value/Reference664025
 -Node: Function Caveats666757
 -Ref: Function Caveats-Footnote-1668852
 -Node: Return Statement668976
 -Node: Dynamic Typing672031
 -Node: Indirect Calls672987
 -Node: Functions Summary684146
 -Node: Library Functions686923
 -Ref: Library Functions-Footnote-1690471
 -Ref: Library Functions-Footnote-2690614
 -Node: Library Names690789
 -Ref: Library Names-Footnote-1694583
 -Ref: Library Names-Footnote-2694810
 -Node: General Functions694906
 -Node: Strtonum Function696100
 -Node: Assert Function699182
 -Node: Round Function702634
 -Node: Cliff Random Function704212
 -Node: Ordinal Functions705245
 -Ref: Ordinal Functions-Footnote-1708354
 -Ref: Ordinal Functions-Footnote-2708606
 -Node: Join Function708820
 -Ref: Join Function-Footnote-1710623
 -Node: Getlocaltime Function710827
 -Node: Readfile Function714601
 -Node: Shell Quoting716630
 -Node: Isnumeric Function718086
 -Node: Data File Management719498
 -Node: Filetrans Function720130
 -Node: Rewind Function724424
 -Node: File Checking726403
 -Ref: File Checking-Footnote-1727775
 -Node: Empty Files727982
 -Node: Ignoring Assigns730049
 -Node: Getopt Function731623
 -Ref: Getopt Function-Footnote-1747457
 -Node: Passwd Functions747669
 -Ref: Passwd Functions-Footnote-1756851
 -Node: Group Functions756939
 -Ref: Group Functions-Footnote-1765077
 -Node: Walking Arrays765290
 -Node: Library Functions Summary768338
 -Node: Library Exercises769762
 -Node: Sample Programs770249
 -Node: Running Examples771031
 -Node: Clones771783
 -Node: Cut Program773055
 -Node: Egrep Program783496
 -Node: Id Program792813
 -Node: Split Program802927
 -Ref: Split Program-Footnote-1813162
 -Node: Tee Program813349
 -Node: Uniq Program816258
 -Node: Wc Program824123
 -Node: Bytes vs. Characters824518
 -Node: Using extensions826120
 -Node: wc program826900
 -Node: Miscellaneous Programs831906
 -Node: Dupword Program833135
 -Node: Alarm Program835198
 -Node: Translate Program840111
 -Ref: Translate Program-Footnote-1844852
 -Node: Labels Program845130
 -Ref: Labels Program-Footnote-1848571
 -Node: Word Sorting848663
 -Node: History Sorting852857
 -Node: Extract Program855132
 -Node: Simple Sed863401
 -Node: Igawk Program866617
 -Ref: Igawk Program-Footnote-1881864
 -Ref: Igawk Program-Footnote-2882070
 -Ref: Igawk Program-Footnote-3882200
 -Node: Anagram Program882327
 -Node: Signature Program885423
 -Node: Programs Summary886675
 -Node: Programs Exercises887933
 -Ref: Programs Exercises-Footnote-1892249
 -Node: Advanced Features892335
 -Node: Nondecimal Data894829
 -Node: Boolean Typed Values896459
 -Node: Array Sorting898434
 -Node: Controlling Array Traversal899163
 -Ref: Controlling Array Traversal-Footnote-1907670
 -Node: Array Sorting Functions907792
 -Ref: Array Sorting Functions-Footnote-1913911
 -Node: Two-way I/O914119
 -Ref: Two-way I/O-Footnote-1922114
 -Ref: Two-way I/O-Footnote-2922305
 -Node: TCP/IP Networking922387
 -Node: Profiling925567
 -Node: Persistent Memory935277
 -Ref: Persistent Memory-Footnote-1944235
 -Node: Extension Philosophy944366
 -Node: Advanced Features Summary945901
 -Node: Internationalization948171
 -Node: I18N and L10N949877
 -Node: Explaining gettext950572
 -Ref: Explaining gettext-Footnote-1956725
 -Ref: Explaining gettext-Footnote-2956920
 -Node: Programmer i18n957085
 -Ref: Programmer i18n-Footnote-1962198
 -Node: Translator i18n962247
 -Node: String Extraction963083
 -Ref: String Extraction-Footnote-1964261
 -Node: Printf Ordering964359
 -Ref: Printf Ordering-Footnote-1967221
 -Node: I18N Portability967289
 -Ref: I18N Portability-Footnote-1969863
 -Node: I18N Example969934
 -Ref: I18N Example-Footnote-1973334
 -Ref: I18N Example-Footnote-2973410
 -Node: Gawk I18N973527
 -Node: I18N Summary974183
 -Node: Debugger975584
 -Node: Debugging976608
 -Node: Debugging Concepts977057
 -Node: Debugging Terms978883
 -Node: Awk Debugging981496
 -Ref: Awk Debugging-Footnote-1982473
 -Node: Sample Debugging Session982613
 -Node: Debugger Invocation983165
 -Node: Finding The Bug984794
 -Node: List of Debugger Commands991480
 -Node: Breakpoint Control992857
 -Node: Debugger Execution Control996689
 -Node: Viewing And Changing Data1000169
 -Node: Execution Stack1003907
 -Node: Debugger Info1005588
 -Node: Miscellaneous Debugger Commands1009887
 -Node: Readline Support1015140
 -Node: Limitations1016086
 -Node: Debugging Summary1018730
 -Node: Namespaces1020033
 -Node: Global Namespace1021160
 -Node: Qualified Names1022605
 -Node: Default Namespace1023640
 -Node: Changing The Namespace1024415
 -Node: Naming Rules1026109
 -Node: Internal Name Management1028024
 -Node: Namespace Example1029094
 -Node: Namespace And Features1031677
 -Node: Namespace Summary1033134
 -Node: Arbitrary Precision Arithmetic1034647
 -Node: Computer Arithmetic1036166
 -Ref: table-numeric-ranges1039983
 -Ref: table-floating-point-ranges1040481
 -Ref: Computer Arithmetic-Footnote-11041140
 -Node: Math Definitions1041199
 -Ref: table-ieee-formats1044244
 -Node: MPFR features1044818
 -Node: MPFR On Parole1045271
 -Ref: MPFR On Parole-Footnote-11046115
 -Node: MPFR Intro1046274
 -Node: FP Math Caution1047964
 -Ref: FP Math Caution-Footnote-11049038
 -Node: Inexactness of computations1049415
 -Node: Inexact representation1050446
 -Node: Comparing FP Values1051829
 -Node: Errors accumulate1053087
 -Node: Strange values1054554
 -Ref: Strange values-Footnote-11057220
 -Node: Getting Accuracy1057325
 -Node: Try To Round1060062
 -Node: Setting precision1060969
 -Ref: table-predefined-precision-strings1061674
 -Node: Setting the rounding mode1063559
 -Ref: table-gawk-rounding-modes1063941
 -Ref: Setting the rounding mode-Footnote-11067999
 -Node: Arbitrary Precision Integers1068182
 -Ref: Arbitrary Precision Integers-Footnote-11071394
 -Node: Checking for MPFR1071550
 -Node: POSIX Floating Point Problems1073040
 -Ref: POSIX Floating Point Problems-Footnote-11077904
 -Node: Floating point summary1077942
 -Node: Dynamic Extensions1080206
 -Node: Extension Intro1081805
 -Node: Plugin License1083113
 -Node: Extension Mechanism Outline1083926
 -Ref: figure-load-extension1084377
 -Ref: figure-register-new-function1085957
 -Ref: figure-call-new-function1087062
 -Node: Extension API Description1089181
 -Node: Extension API Functions Introduction1090910
 -Ref: table-api-std-headers1092808
 -Node: General Data Types1097272
 -Ref: General Data Types-Footnote-11106440
 -Node: Memory Allocation Functions1106755
 -Ref: Memory Allocation Functions-Footnote-11111480
 -Node: Constructor Functions1111579
 -Node: API Ownership of MPFR and GMP Values1115484
 -Node: Registration Functions1117045
 -Node: Extension Functions1117749
 -Node: Exit Callback Functions1123325
 -Node: Extension Version String1124644
 -Node: Input Parsers1125339
 -Node: Output Wrappers1138713
 -Node: Two-way processors1143421
 -Node: Printing Messages1145782
 -Ref: Printing Messages-Footnote-11146996
 -Node: Updating ERRNO1147151
 -Node: Requesting Values1147950
 -Ref: table-value-types-returned1148703
 -Node: Accessing Parameters1149812
 -Node: Symbol Table Access1151096
 -Node: Symbol table by name1151612
 -Ref: Symbol table by name-Footnote-11154823
 -Node: Symbol table by cookie1154955
 -Ref: Symbol table by cookie-Footnote-11159236
 -Node: Cached values1159300
 -Ref: Cached values-Footnote-11162944
 -Node: Array Manipulation1163101
 -Ref: Array Manipulation-Footnote-11164204
 -Node: Array Data Types1164241
 -Ref: Array Data Types-Footnote-11167063
 -Node: Array Functions1167163
 -Node: Flattening Arrays1172192
 -Node: Creating Arrays1179244
 -Node: Redirection API1184094
 -Node: Extension API Variables1187115
 -Node: Extension Versioning1187840
 -Ref: gawk-api-version1188277
 -Node: Extension GMP/MPFR Versioning1190065
 -Node: Extension API Informational Variables1191771
 -Node: Extension API Boilerplate1192932
 -Node: Changes from API V11197068
 -Node: Finding Extensions1198702
 -Node: Extension Example1199277
 -Node: Internal File Description1200101
 -Node: Internal File Ops1204425
 -Ref: Internal File Ops-Footnote-11215983
 -Node: Using Internal File Ops1216131
 -Ref: Using Internal File Ops-Footnote-11218562
 -Node: Extension Samples1218840
 -Node: Extension Sample File Functions1220409
 -Node: Extension Sample Fnmatch1228547
 -Node: Extension Sample Fork1230142
 -Node: Extension Sample Inplace1231418
 -Node: Extension Sample Ord1235090
 -Node: Extension Sample Readdir1235966
 -Ref: table-readdir-file-types1236863
 -Node: Extension Sample Revout1238001
 -Node: Extension Sample Rev2way1238598
 -Node: Extension Sample Read write array1239350
 -Node: Extension Sample Readfile1242624
 -Node: Extension Sample Time1243755
 -Node: Extension Sample API Tests1246045
 -Node: gawkextlib1246553
 -Node: Extension summary1249589
 -Node: Extension Exercises1253447
 -Node: Language History1254725
 -Node: V7/SVR3.11256439
 -Node: SVR41258789
 -Node: POSIX1260321
 -Node: BTL1261746
 -Node: POSIX/GNU1262515
 -Node: Feature History1269046
 -Node: Common Extensions1288495
 -Node: Ranges and Locales1289864
 -Ref: Ranges and Locales-Footnote-11294665
 -Ref: Ranges and Locales-Footnote-21294692
 -Ref: Ranges and Locales-Footnote-31294931
 -Node: Contributors1295154
 -Node: History summary1301359
 -Node: Installation1302805
 -Node: Gawk Distribution1303769
 -Node: Getting1304261
 -Node: Extracting1305260
 -Node: Distribution contents1306972
 -Node: Unix Installation1315052
 -Node: Quick Installation1315874
 -Node: Compiling with MPFR1318420
 -Node: Shell Startup Files1319126
 -Node: Additional Configuration Options1320283
 -Node: Configuration Philosophy1322670
 -Node: Compiling from Git1325172
 -Node: Building the Documentation1325731
 -Node: Non-Unix Installation1327143
 -Node: PC Installation1327619
 -Node: PC Binary Installation1328492
 -Node: PC Compiling1329397
 -Node: PC Using1330575
 -Node: Cygwin1334303
 -Node: MSYS1335559
 -Node: OpenVMS Installation1336191
 -Node: OpenVMS Compilation1336872
 -Ref: OpenVMS Compilation-Footnote-11338355
 -Node: OpenVMS Dynamic Extensions1338417
 -Node: OpenVMS Installation Details1340053
 -Node: OpenVMS Running1342488
 -Node: OpenVMS GNV1346625
 -Node: Bugs1347380
 -Node: Bug definition1348304
 -Node: Bug address1351955
 -Node: Usenet1355546
 -Node: Performance bugs1356777
 -Node: Asking for help1359795
 -Node: Maintainers1361786
 -Node: Other Versions1362813
 -Node: Installation summary1371745
 -Node: Notes1373129
 -Node: Compatibility Mode1373939
 -Node: Additions1374761
 -Node: Accessing The Source1375706
 -Node: Adding Code1377241
 -Node: New Ports1384377
 -Node: Derived Files1388887
 -Ref: Derived Files-Footnote-11394734
 -Ref: Derived Files-Footnote-21394769
 -Ref: Derived Files-Footnote-31395386
 -Node: Future Extensions1395500
 -Node: Implementation Limitations1396172
 -Node: Extension Design1397414
 -Node: Old Extension Problems1398578
 -Ref: Old Extension Problems-Footnote-11400154
 -Node: Extension New Mechanism Goals1400215
 -Ref: Extension New Mechanism Goals-Footnote-11403711
 -Node: Extension Other Design Decisions1403912
 -Node: Extension Future Growth1406111
 -Node: Notes summary1406735
 -Node: Basic Concepts1407948
 -Node: Basic High Level1408633
 -Ref: figure-general-flow1408915
 -Ref: figure-process-flow1409617
 -Ref: Basic High Level-Footnote-11413013
 -Node: Basic Data Typing1413202
 -Node: Glossary1416620
 -Node: Copying1449742
 -Node: GNU Free Documentation License1487503
 -Node: Index1512826
++Node: Regexp Operators182503
++Node: Regexp Operator Details182996
++Ref: Regexp Operator Details-Footnote-1190862
++Node: Interval Expressions191021
++Ref: Interval Expressions-Footnote-1193290
++Node: Bracket Expressions193390
++Ref: table-char-classes195950
++Node: Leftmost Longest199472
++Node: Computed Regexps200832
++Node: GNU Regexp Operators204355
++Node: Case-sensitivity208378
++Ref: Case-sensitivity-Footnote-1211335
++Ref: Case-sensitivity-Footnote-2211580
++Node: Regexp Summary211696
++Node: Reading Files213220
++Node: Records215537
++Node: awk split records216648
++Node: gawk split records221538
++Ref: gawk split records-Footnote-1226832
++Node: Fields226869
++Node: Nonconstant Fields229756
++Ref: Nonconstant Fields-Footnote-1232067
++Node: Changing Fields232283
++Node: Field Separators238591
++Node: Default Field Splitting241464
++Node: Regexp Field Splitting242607
++Node: Single Character Fields246436
++Node: Comma Separated Fields247525
++Ref: table-csv-examples248813
++Node: Command Line Field Separator249765
++Node: Full Line Fields253151
++Ref: Full Line Fields-Footnote-1254731
++Ref: Full Line Fields-Footnote-2254777
++Node: Field Splitting Summary254885
++Node: Constant Size257164
++Node: Fixed width data257908
++Node: Skipping intervening261427
++Node: Allowing trailing data262229
++Node: Fields with fixed data263294
++Node: Splitting By Content264920
++Ref: Splitting By Content-Footnote-1269105
++Node: More CSV269268
++Node: FS versus FPAT270921
++Node: Testing field creation272130
++Node: Multiple Line273823
++Node: Getline280305
++Node: Plain Getline282891
++Node: Getline/Variable285541
++Node: Getline/File286738
++Node: Getline/Variable/File288186
++Ref: Getline/Variable/File-Footnote-1289831
++Node: Getline/Pipe289927
++Node: Getline/Variable/Pipe292740
++Node: Getline/Coprocess293923
++Node: Getline/Variable/Coprocess295246
++Node: Getline Notes296012
++Node: Getline Summary298973
++Ref: table-getline-variants299417
++Node: Read Timeout300322
++Ref: Read Timeout-Footnote-1304286
++Node: Retrying Input304344
++Node: Command-line directories305611
++Node: Input Summary306549
++Node: Input Exercises309929
++Node: Printing310369
++Node: Print312312
++Node: Print Examples313818
++Node: Output Separators316671
++Node: OFMT318782
++Node: Printf320205
++Node: Basic Printf321010
++Node: Control Letters322646
++Node: Format Modifiers328115
++Node: Printf Examples334401
++Node: Redirection336946
++Node: Special FD344020
++Ref: Special FD-Footnote-1347310
++Node: Special Files347396
++Node: Other Inherited Files348025
++Node: Special Network349090
++Node: Special Caveats349978
++Node: Close Files And Pipes350961
++Ref: Close Files And Pipes-Footnote-1357097
++Node: Close Return Value357253
++Ref: table-close-pipe-return-values358528
++Ref: Close Return Value-Footnote-1359362
++Node: Noflush359518
++Node: Nonfatal360990
++Node: Output Summary363407
++Node: Output Exercises364693
++Node: Expressions365384
++Node: Values366586
++Node: Constants367264
++Node: Scalar Constants367961
++Ref: Scalar Constants-Footnote-1370536
++Node: Nondecimal-numbers370786
++Node: Regexp Constants373907
++Node: Using Constant Regexps374453
++Node: Standard Regexp Constants375099
++Node: Strong Regexp Constants378399
++Node: Variables382250
++Node: Using Variables382915
++Node: Assignment Options384895
++Node: Conversion387457
++Node: Strings And Numbers387989
++Ref: Strings And Numbers-Footnote-1391208
++Node: Locale influences conversions391317
++Ref: table-locale-affects394167
++Node: All Operators394810
++Node: Arithmetic Ops395451
++Node: Concatenation398281
++Ref: Concatenation-Footnote-1401231
++Node: Assignment Ops401354
++Ref: table-assign-ops406493
++Node: Increment Ops407875
++Node: Truth Values and Conditions411474
++Node: Truth Values412600
++Node: Typing and Comparison413691
++Node: Variable Typing414527
++Ref: Variable Typing-Footnote-1421189
++Ref: Variable Typing-Footnote-2421269
++Node: Comparison Operators421352
++Ref: table-relational-ops421779
++Node: POSIX String Comparison425465
++Ref: POSIX String Comparison-Footnote-1427224
++Ref: POSIX String Comparison-Footnote-2427367
++Node: Boolean Ops427451
++Ref: Boolean Ops-Footnote-1432144
++Node: Conditional Exp432240
++Node: Function Calls434026
++Node: Precedence437976
++Node: Locales441853
++Node: Expressions Summary443535
++Node: Patterns and Actions446198
++Node: Pattern Overview447340
++Node: Regexp Patterns449066
++Node: Expression Patterns449612
++Node: Ranges453521
++Node: BEGIN/END456699
++Node: Using BEGIN/END457512
++Ref: Using BEGIN/END-Footnote-1460422
++Node: I/O And BEGIN/END460532
++Node: Empty466454
++Node: Using Shell Variables466771
++Node: Action Overview469109
++Node: Statements471544
++Node: If Statement473442
++Node: While Statement475011
++Node: Do Statement477099
++Node: For Statement478285
++Node: Switch Statement481642
++Node: Break Statement484193
++Node: Continue Statement486385
++Node: Next Statement488317
++Node: Nextfile Statement490814
++Node: Exit Statement493675
++Node: Built-in Variables496208
++Node: User-modified497387
++Node: Auto-set505598
++Ref: Auto-set-Footnote-1523697
++Ref: Auto-set-Footnote-2523915
++Node: ARGC and ARGV523971
++Node: Pattern Action Summary528410
++Node: Arrays531026
++Node: Array Basics532403
++Node: Array Intro533253
++Ref: figure-array-elements535269
++Ref: Array Intro-Footnote-1538133
++Node: Reference to Elements538265
++Node: Assigning Elements540787
++Node: Array Example541282
++Node: Scanning an Array543251
++Node: Controlling Scanning546348
++Ref: Controlling Scanning-Footnote-1553011
++Node: Numeric Array Subscripts553335
++Node: Uninitialized Subscripts555609
++Node: Delete557288
++Ref: Delete-Footnote-1560102
++Node: Multidimensional560159
++Node: Multiscanning563364
++Node: Arrays of Arrays565036
++Node: Arrays Summary569936
++Node: Functions572125
++Node: Built-in573185
++Node: Calling Built-in574374
++Node: Boolean Functions576421
++Node: Numeric Functions576991
++Ref: Numeric Functions-Footnote-1581184
++Ref: Numeric Functions-Footnote-2581868
++Ref: Numeric Functions-Footnote-3581920
++Node: String Functions582196
++Ref: String Functions-Footnote-1608332
++Ref: String Functions-Footnote-2608466
++Ref: String Functions-Footnote-3608726
++Node: Gory Details608813
++Ref: table-sub-escapes610720
++Ref: table-sub-proposed612366
++Ref: table-posix-sub613876
++Ref: table-gensub-escapes615564
++Ref: Gory Details-Footnote-1616498
++Node: I/O Functions616652
++Ref: table-system-return-values623339
++Ref: I/O Functions-Footnote-1625510
++Ref: I/O Functions-Footnote-2625658
++Node: Time Functions625778
++Ref: Time Functions-Footnote-1636934
++Ref: Time Functions-Footnote-2637010
++Ref: Time Functions-Footnote-3637172
++Ref: Time Functions-Footnote-4637283
++Ref: Time Functions-Footnote-5637401
++Ref: Time Functions-Footnote-6637636
++Node: Bitwise Functions637918
++Ref: table-bitwise-ops638520
++Ref: Bitwise Functions-Footnote-1644774
++Ref: Bitwise Functions-Footnote-2644953
++Node: Type Functions645150
++Node: I18N Functions648743
++Node: User-defined650486
++Node: Definition Syntax651306
++Ref: Definition Syntax-Footnote-1657134
++Node: Function Example657211
++Ref: Function Example-Footnote-1660190
++Node: Function Calling660212
++Node: Calling A Function660806
++Node: Variable Scope661776
++Node: Pass By Value/Reference664830
++Node: Function Caveats667562
++Ref: Function Caveats-Footnote-1669657
++Node: Return Statement669781
++Node: Dynamic Typing672836
++Node: Indirect Calls673792
++Node: Functions Summary684951
++Node: Library Functions687728
++Ref: Library Functions-Footnote-1691276
++Ref: Library Functions-Footnote-2691419
++Node: Library Names691594
++Ref: Library Names-Footnote-1695388
++Ref: Library Names-Footnote-2695615
++Node: General Functions695711
++Node: Strtonum Function696905
++Node: Assert Function699987
++Node: Round Function703439
++Node: Cliff Random Function705017
++Node: Ordinal Functions706050
++Ref: Ordinal Functions-Footnote-1709159
++Ref: Ordinal Functions-Footnote-2709411
++Node: Join Function709625
++Ref: Join Function-Footnote-1711428
++Node: Getlocaltime Function711632
++Node: Readfile Function715406
++Node: Shell Quoting717435
++Node: Isnumeric Function718891
++Node: Data File Management720303
++Node: Filetrans Function720935
++Node: Rewind Function725229
++Node: File Checking727208
++Ref: File Checking-Footnote-1728580
++Node: Empty Files728787
++Node: Ignoring Assigns730854
++Node: Getopt Function732428
++Ref: Getopt Function-Footnote-1748262
++Node: Passwd Functions748474
++Ref: Passwd Functions-Footnote-1757656
++Node: Group Functions757744
++Ref: Group Functions-Footnote-1765882
++Node: Walking Arrays766095
++Node: Library Functions Summary769143
++Node: Library Exercises770567
++Node: Sample Programs771054
++Node: Running Examples771836
++Node: Clones772588
++Node: Cut Program773860
++Node: Egrep Program784301
++Node: Id Program793618
++Node: Split Program803732
++Ref: Split Program-Footnote-1813967
++Node: Tee Program814154
++Node: Uniq Program817063
++Node: Wc Program824928
++Node: Bytes vs. Characters825323
++Node: Using extensions826925
++Node: wc program827705
++Node: Miscellaneous Programs832711
++Node: Dupword Program833940
++Node: Alarm Program836003
++Node: Translate Program840916
++Ref: Translate Program-Footnote-1845657
++Node: Labels Program845935
++Ref: Labels Program-Footnote-1849376
++Node: Word Sorting849468
++Node: History Sorting853662
++Node: Extract Program855937
++Node: Simple Sed864206
++Node: Igawk Program867422
++Ref: Igawk Program-Footnote-1882669
++Ref: Igawk Program-Footnote-2882875
++Ref: Igawk Program-Footnote-3883005
++Node: Anagram Program883132
++Node: Signature Program886228
++Node: Programs Summary887480
++Node: Programs Exercises888738
++Ref: Programs Exercises-Footnote-1893054
++Node: Advanced Features893140
++Node: Nondecimal Data895634
++Node: Boolean Typed Values897264
++Node: Array Sorting899239
++Node: Controlling Array Traversal899968
++Ref: Controlling Array Traversal-Footnote-1908475
++Node: Array Sorting Functions908597
++Ref: Array Sorting Functions-Footnote-1914716
++Node: Two-way I/O914924
++Ref: Two-way I/O-Footnote-1922919
++Ref: Two-way I/O-Footnote-2923110
++Node: TCP/IP Networking923192
++Node: Profiling926372
++Node: Persistent Memory936082
++Ref: Persistent Memory-Footnote-1945040
++Node: Extension Philosophy945171
++Node: Advanced Features Summary946706
++Node: Internationalization948976
++Node: I18N and L10N950682
++Node: Explaining gettext951377
++Ref: Explaining gettext-Footnote-1957530
++Ref: Explaining gettext-Footnote-2957725
++Node: Programmer i18n957890
++Ref: Programmer i18n-Footnote-1963003
++Node: Translator i18n963052
++Node: String Extraction963888
++Ref: String Extraction-Footnote-1965066
++Node: Printf Ordering965164
++Ref: Printf Ordering-Footnote-1968026
++Node: I18N Portability968094
++Ref: I18N Portability-Footnote-1970668
++Node: I18N Example970739
++Ref: I18N Example-Footnote-1974139
++Ref: I18N Example-Footnote-2974215
++Node: Gawk I18N974332
++Node: I18N Summary974988
++Node: Debugger976389
++Node: Debugging977413
++Node: Debugging Concepts977862
++Node: Debugging Terms979688
++Node: Awk Debugging982301
++Ref: Awk Debugging-Footnote-1983278
++Node: Sample Debugging Session983418
++Node: Debugger Invocation983970
++Node: Finding The Bug985599
++Node: List of Debugger Commands992285
++Node: Breakpoint Control993662
++Node: Debugger Execution Control997494
++Node: Viewing And Changing Data1000974
++Node: Execution Stack1004712
++Node: Debugger Info1006393
++Node: Miscellaneous Debugger Commands1010692
++Node: Readline Support1015945
++Node: Limitations1016891
++Node: Debugging Summary1019535
++Node: Namespaces1020838
++Node: Global Namespace1021965
++Node: Qualified Names1023410
++Node: Default Namespace1024445
++Node: Changing The Namespace1025220
++Node: Naming Rules1026914
++Node: Internal Name Management1028829
++Node: Namespace Example1029899
++Node: Namespace And Features1032482
++Node: Namespace Summary1033939
++Node: Arbitrary Precision Arithmetic1035452
++Node: Computer Arithmetic1036971
++Ref: table-numeric-ranges1040788
++Ref: table-floating-point-ranges1041286
++Ref: Computer Arithmetic-Footnote-11041945
++Node: Math Definitions1042004
++Ref: table-ieee-formats1045049
++Node: MPFR features1045623
++Node: MPFR On Parole1046076
++Ref: MPFR On Parole-Footnote-11046920
++Node: MPFR Intro1047079
++Node: FP Math Caution1048769
++Ref: FP Math Caution-Footnote-11049843
++Node: Inexactness of computations1050220
++Node: Inexact representation1051251
++Node: Comparing FP Values1052634
++Node: Errors accumulate1053892
++Node: Strange values1055359
++Ref: Strange values-Footnote-11058025
++Node: Getting Accuracy1058130
++Node: Try To Round1060867
++Node: Setting precision1061774
++Ref: table-predefined-precision-strings1062479
++Node: Setting the rounding mode1064364
++Ref: table-gawk-rounding-modes1064746
++Ref: Setting the rounding mode-Footnote-11068804
++Node: Arbitrary Precision Integers1068987
++Ref: Arbitrary Precision Integers-Footnote-11072199
++Node: Checking for MPFR1072355
++Node: POSIX Floating Point Problems1073845
++Ref: POSIX Floating Point Problems-Footnote-11078709
++Node: Floating point summary1078747
++Node: Dynamic Extensions1081011
++Node: Extension Intro1082610
++Node: Plugin License1083918
++Node: Extension Mechanism Outline1084731
++Ref: figure-load-extension1085182
++Ref: figure-register-new-function1086762
++Ref: figure-call-new-function1087867
++Node: Extension API Description1089986
++Node: Extension API Functions Introduction1091715
++Ref: table-api-std-headers1093613
++Node: General Data Types1098077
++Ref: General Data Types-Footnote-11107245
++Node: Memory Allocation Functions1107560
++Ref: Memory Allocation Functions-Footnote-11112285
++Node: Constructor Functions1112384
++Node: API Ownership of MPFR and GMP Values1116289
++Node: Registration Functions1117850
++Node: Extension Functions1118554
++Node: Exit Callback Functions1124130
++Node: Extension Version String1125449
++Node: Input Parsers1126144
++Node: Output Wrappers1139518
++Node: Two-way processors1144226
++Node: Printing Messages1146587
++Ref: Printing Messages-Footnote-11147801
++Node: Updating ERRNO1147956
++Node: Requesting Values1148755
++Ref: table-value-types-returned1149508
++Node: Accessing Parameters1150617
++Node: Symbol Table Access1151901
++Node: Symbol table by name1152417
++Ref: Symbol table by name-Footnote-11155628
++Node: Symbol table by cookie1155760
++Ref: Symbol table by cookie-Footnote-11160041
++Node: Cached values1160105
++Ref: Cached values-Footnote-11163749
++Node: Array Manipulation1163906
++Ref: Array Manipulation-Footnote-11165009
++Node: Array Data Types1165046
++Ref: Array Data Types-Footnote-11167868
++Node: Array Functions1167968
++Node: Flattening Arrays1172997
++Node: Creating Arrays1180049
++Node: Redirection API1184899
++Node: Extension API Variables1187920
++Node: Extension Versioning1188645
++Ref: gawk-api-version1189082
++Node: Extension GMP/MPFR Versioning1190870
++Node: Extension API Informational Variables1192576
++Node: Extension API Boilerplate1193737
++Node: Changes from API V11197873
++Node: Finding Extensions1199507
++Node: Extension Example1200082
++Node: Internal File Description1200906
++Node: Internal File Ops1205230
++Ref: Internal File Ops-Footnote-11216788
++Node: Using Internal File Ops1216936
++Ref: Using Internal File Ops-Footnote-11219367
++Node: Extension Samples1219645
++Node: Extension Sample File Functions1221214
++Node: Extension Sample Fnmatch1229352
++Node: Extension Sample Fork1230947
++Node: Extension Sample Inplace1232223
++Node: Extension Sample Ord1235895
++Node: Extension Sample Readdir1236771
++Ref: table-readdir-file-types1237668
++Node: Extension Sample Revout1238806
++Node: Extension Sample Rev2way1239403
++Node: Extension Sample Read write array1240155
++Node: Extension Sample Readfile1243429
++Node: Extension Sample Time1244560
++Node: Extension Sample API Tests1246850
++Node: gawkextlib1247358
++Node: Extension summary1250394
++Node: Extension Exercises1254252
++Node: Language History1255530
++Node: V7/SVR3.11257244
++Node: SVR41259594
++Node: POSIX1261126
++Node: BTL1262551
++Node: POSIX/GNU1263320
++Node: Feature History1269851
++Node: Common Extensions1289364
++Node: Ranges and Locales1290733
++Ref: Ranges and Locales-Footnote-11295534
++Ref: Ranges and Locales-Footnote-21295561
++Ref: Ranges and Locales-Footnote-31295800
++Node: Contributors1296023
++Node: History summary1302228
++Node: Installation1303674
++Node: Gawk Distribution1304638
++Node: Getting1305130
++Node: Extracting1306129
++Node: Distribution contents1307841
++Node: Unix Installation1315921
++Node: Quick Installation1316743
++Node: Compiling with MPFR1319289
++Node: Shell Startup Files1319995
++Node: Additional Configuration Options1321152
++Node: Configuration Philosophy1323539
++Node: Compiling from Git1326041
++Node: Building the Documentation1326600
++Node: Non-Unix Installation1328012
++Node: PC Installation1328488
++Node: PC Binary Installation1329361
++Node: PC Compiling1330266
++Node: PC Using1331444
++Node: Cygwin1335172
++Node: MSYS1336428
++Node: OpenVMS Installation1337060
++Node: OpenVMS Compilation1337741
++Ref: OpenVMS Compilation-Footnote-11339224
++Node: OpenVMS Dynamic Extensions1339286
++Node: OpenVMS Installation Details1340922
++Node: OpenVMS Running1343357
++Node: OpenVMS GNV1347494
++Node: Bugs1348249
++Node: Bug definition1349173
++Node: Bug address1352824
++Node: Usenet1356415
++Node: Performance bugs1357646
++Node: Asking for help1360664
++Node: Maintainers1362655
++Node: Other Versions1363682
++Node: Installation summary1372614
++Node: Notes1373998
++Node: Compatibility Mode1374808
++Node: Additions1375630
++Node: Accessing The Source1376575
++Node: Adding Code1378110
++Node: New Ports1385246
++Node: Derived Files1389756
++Ref: Derived Files-Footnote-11395603
++Ref: Derived Files-Footnote-21395638
++Ref: Derived Files-Footnote-31396255
++Node: Future Extensions1396369
++Node: Implementation Limitations1397041
++Node: Extension Design1398283
++Node: Old Extension Problems1399447
++Ref: Old Extension Problems-Footnote-11401023
++Node: Extension New Mechanism Goals1401084
++Ref: Extension New Mechanism Goals-Footnote-11404580
++Node: Extension Other Design Decisions1404781
++Node: Extension Future Growth1406980
++Node: Notes summary1407604
++Node: Basic Concepts1408817
++Node: Basic High Level1409502
++Ref: figure-general-flow1409784
++Ref: figure-process-flow1410486
++Ref: Basic High Level-Footnote-11413882
++Node: Basic Data Typing1414071
++Node: Glossary1417489
++Node: Copying1450611
++Node: GNU Free Documentation License1488372
++Node: Index1513695
  End Tag Table
diff --cc doc/gawk.texi
index 0b2664a2,85ccc261..53ea283b
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@@ -42143,10 -42208,10 +42227,14 @@@ Version 5.3 added the following feature
  Comma separated value (CSV) field splitting
  (@pxref{Comma Separated Fields}).
+ @item
+ The ability to make @command{gawk} buffer output to pipes
+ (@pxref{Noflush}).
 +The @samp{\u} escape sequence
 +(@pxref{Escape Sequences})
  The need for GNU @code{libsigsegv} was removed from @command{gawk}.
  The value-add was never very much and it caused problems in some
diff --cc doc/
index 226ae31b,951c118f..707d0758
--- a/doc/
+++ b/doc/
@@@ -41059,10 -41124,10 +41143,14 @@@ Version 5.3 added the following feature
  Comma separated value (CSV) field splitting
  (@pxref{Comma Separated Fields}).
+ @item
+ The ability to make @command{gawk} buffer output to pipes
+ (@pxref{Noflush}).
 +The @samp{\u} escape sequence
 +(@pxref{Escape Sequences})
  The need for GNU @code{libsigsegv} was removed from @command{gawk}.
  The value-add was never very much and it caused problems in some

commit 0928a907b0c8a5f98f771dcd0ad2aaf0e32dffbe
Merge: 95dfb8f2 a5010fa2
Author: Arnold D. Robbins <>
Date:   Tue Dec 27 23:17:49 2022 +0200

    Merge branch 'master' into feature/backslash-u

commit 95dfb8f29b2a3ab2feaa823dc2dc03f4f6dada89
Author: Arnold D. Robbins <>
Date:   Tue Dec 27 23:12:14 2022 +0200

    First cut at adding \u.

diff --git a/awk.h b/awk.h
index 79cdd85f..bf06dcf4 100644
--- a/awk.h
+++ b/awk.h
@@ -1737,7 +1737,7 @@ extern NODE *make_str_node(const char *s, size_t len, int 
 extern NODE *make_bool_node(bool value);
 extern NODE *make_typed_regex(const char *re, size_t len);
 extern void *more_blocks(int id);
-extern int parse_escape(const char **string_ptr);
+extern int parse_escape(const char **string_ptr, bool *unicode);
 extern NODE *str2wstr(NODE *n, size_t **ptr);
 extern NODE *wstr2str(NODE *n);
 #define force_wstring(n)       str2wstr(n, NULL)
diff --git a/doc/ b/doc/
index 59a0e397..a627642c 100644
--- a/doc/
+++ b/doc/
@@ -3716,6 +3716,20 @@ sequences apply to both string constants and regexp 
           produced undefined results.  As of version 4.2, only two
           digits are processed.
+     The hexadecimal value HH, where HH stands for a sequence of
+     hexadecimal digits (‘0’–‘9’, and either ‘A’–‘F’ or 
‘a’–‘f’).  A
+     maximum of eight digits are allowed after the ‘\u’.  Any further
+     hexadecimal digits are treated as simple letters or numbers.
+     (c.e.)  (The ‘\u’ escape sequence is not allowed in POSIX awk.)
+     This escape sequence is intended for designating a character in the
+     Unicode character set.  ‘gawk’ first converts the given digits into
+     an integer and then translates the given “wide character” value
+     into the current locale’s multibyte encoding (even if that is a not
+     a Unicode locale).  If the given bytes do not represent a valid
+     character, the value becomes ‘"?"’.
      A literal slash (should be used for regexp constants only).  This
      sequence is used when you want to write a regexp constant that
@@ -30732,6 +30746,8 @@ unfortunately.  It added the following features:
    • Comma separated value (CSV) field splitting (*note Comma Separated
+   • The ‘\u’ escape sequence (*note Escape Sequences::)
    • The need for GNU ‘libsigsegv’ was removed from ‘gawk’.  The
      value-add was never very much and it caused problems in some
@@ -35933,11 +35949,12 @@ Index
 * \ (backslash), \v escape sequence:     Escape Sequences.    (line  53)
 * \ (backslash), \NNN escape sequence:   Escape Sequences.    (line  56)
 * \ (backslash), \x escape sequence:     Escape Sequences.    (line  61)
-* \ (backslash), \/ escape sequence:     Escape Sequences.    (line  76)
-* \ (backslash), \" escape sequence:     Escape Sequences.    (line  85)
-* \ (backslash), in escape sequences <1>: Escape Sequences.   (line 103)
+* \ (backslash), \u escape sequence:     Escape Sequences.    (line  76)
+* \ (backslash), \/ escape sequence:     Escape Sequences.    (line  90)
+* \ (backslash), \" escape sequence:     Escape Sequences.    (line  99)
+* \ (backslash), in escape sequences <1>: Escape Sequences.   (line 117)
 * \ (backslash), in escape sequences, POSIX and: Escape Sequences.
-                                                              (line 108)
+                                                              (line 122)
 * \ (backslash), regexp operator:        Regexp Operator Details.
                                                               (line  14)
 * \ (backslash), in bracket expressions: Bracket Expressions. (line  25)
@@ -36306,11 +36323,12 @@ Index
 * backslash (\), \v escape sequence:     Escape Sequences.    (line  53)
 * backslash (\), \NNN escape sequence:   Escape Sequences.    (line  56)
 * backslash (\), \x escape sequence:     Escape Sequences.    (line  61)
-* backslash (\), \/ escape sequence:     Escape Sequences.    (line  76)
-* backslash (\), \" escape sequence:     Escape Sequences.    (line  85)
-* backslash (\), in escape sequences <1>: Escape Sequences.   (line 103)
+* backslash (\), \u escape sequence:     Escape Sequences.    (line  76)
+* backslash (\), \/ escape sequence:     Escape Sequences.    (line  90)
+* backslash (\), \" escape sequence:     Escape Sequences.    (line  99)
+* backslash (\), in escape sequences <1>: Escape Sequences.   (line 117)
 * backslash (\), in escape sequences, POSIX and: Escape Sequences.
-                                                              (line 108)
+                                                              (line 122)
 * backslash (\), regexp operator:        Regexp Operator Details.
                                                               (line  14)
 * backslash (\), in bracket expressions: Bracket Expressions. (line  25)
@@ -36441,7 +36459,7 @@ Index
 * Brennan, Michael <5>:                  Other Versions.      (line   6)
 * Brennan, Michael <6>:                  Other Versions.      (line  39)
 * Brian Kernighan’s awk:                 When.                (line  21)
-* Brian Kernighan’s awk <1>:             Escape Sequences.    (line 112)
+* Brian Kernighan’s awk <1>:             Escape Sequences.    (line 126)
 * Brian Kernighan’s awk <2>:             GNU Regexp Operators.
                                                               (line  84)
 * Brian Kernighan’s awk <3>:             gawk split records.  (line  71)
@@ -36596,6 +36614,7 @@ Index
 * commenting:                            Comments.            (line   6)
 * commenting, backslash continuation and: Statements/Lines.   (line  77)
 * common extensions, \x escape sequence: Escape Sequences.    (line  61)
+* common extensions, \u escape sequence: Escape Sequences.    (line  76)
 * common extensions, RS as a regexp:     gawk split records.  (line   6)
 * common extensions, single character fields: Single Character Fields.
                                                               (line   6)
@@ -36715,7 +36734,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 143)
+                                                              (line 157)
 * dark corner, input files:              awk split records.   (line 104)
 * dark corner, strings, storing:         gawk split records.  (line  94)
 * dark corner, NF variable, decrementing: Changing Fields.    (line 107)
@@ -37279,6 +37298,7 @@ Index
 * extensions, loadable, loading, @load directive: Loading Shared Libraries.
                                                               (line   8)
 * extensions, common, \x escape sequence: Escape Sequences.   (line  61)
+* extensions, common, \u escape sequence: Escape Sequences.   (line  76)
 * extensions, common, RS as a regexp:    gawk split records.  (line   6)
 * extensions, common, single character fields: Single Character Fields.
                                                               (line   6)
@@ -37560,8 +37580,8 @@ Index
 * gawk, version of, printing information about: Options.      (line 349)
 * gawk, ARGIND variable in:              Other Arguments.     (line  21)
 * gawk, PROCINFO array in:               Other Arguments.     (line  21)
-* gawk, escape sequences:                Escape Sequences.    (line 120)
-* gawk, escape sequences <1>:            Escape Sequences.    (line 120)
+* gawk, escape sequences:                Escape Sequences.    (line 134)
+* gawk, escape sequences <1>:            Escape Sequences.    (line 134)
 * gawk, regular expressions, precedence: Regexp Operator Details.
                                                               (line 142)
 * gawk, interval expressions and:        Interval Expressions.
@@ -38077,7 +38097,7 @@ Index
 * matching, expressions:                 Typing and Comparison.
                                                               (line   9)
 * matching, null strings:                String Functions.    (line 567)
-* mawk utility:                          Escape Sequences.    (line 120)
+* mawk utility:                          Escape Sequences.    (line 134)
 * mawk utility <1>:                      Getline/Pipe.        (line  62)
 * mawk utility <2>:                      Concatenation.       (line  36)
 * mawk utility <3>:                      Nextfile Statement.  (line  47)
@@ -38095,7 +38115,7 @@ Index
 * message object files, converting from portable object files: I18N Example.
                                                               (line  80)
 * messages from extensions:              Printing Messages.   (line   6)
-* metacharacters, escape sequences for:  Escape Sequences.    (line 139)
+* metacharacters, escape sequences for:  Escape Sequences.    (line 153)
 * metacharacters, in regular expressions: Regexp Operators.   (line   6)
 * minimum precision required by MPFR library: Auto-set.       (line 279)
 * Minshall, Greg:                        Getopt Function.     (line 105)
@@ -38375,9 +38395,9 @@ Index
 * portability, ARGV variable:            Executable Scripts.  (line  55)
 * portability, backslash continuation and: Statements/Lines.  (line  30)
 * portability, POSIXLY_CORRECT environment variable: Options. (line 416)
-* portability:                           Escape Sequences.    (line 103)
+* portability:                           Escape Sequences.    (line 117)
 * portability, backslash in escape sequences: Escape Sequences.
-                                                              (line 108)
+                                                              (line 122)
 * portability, data files as single record: gawk split records.
                                                               (line  77)
 * portability, NF variable, decrementing: Changing Fields.    (line 115)
@@ -38416,7 +38436,7 @@ Index
 * POSIX awk:                             This Manual.         (line  14)
 * POSIX awk, GNU long options and:       Options.             (line  15)
 * POSIX awk, backslashes in string constants: Escape Sequences.
-                                                              (line 108)
+                                                              (line 122)
 * POSIX awk, period (.), using:          Regexp Operator Details.
                                                               (line  47)
 * POSIX awk, regular expressions and:    Regexp Operator Details.
@@ -38869,9 +38889,9 @@ Index
 * sidebar, Quoting Shell Variables On The awk Command Line: Other Arguments.
                                                               (line  71)
 * sidebar, Backslash Before Regular Characters: Escape Sequences.
-                                                              (line 106)
+                                                              (line 120)
 * sidebar, Escape Sequences for Metacharacters: Escape Sequences.
-                                                              (line 137)
+                                                              (line 151)
 * sidebar, What About The Empty Regexp?: Regexp Operator Details.
                                                               (line 147)
 * sidebar, Using \n in Bracket Expressions of Dynamic Regexps: Computed 
@@ -39129,7 +39149,7 @@ Index
                                                               (line 102)
 * troubleshooting, --non-decimal-data option: Options.        (line 255)
 * troubleshooting, backslash before nonspecial character: Escape Sequences.
-                                                              (line 108)
+                                                              (line 122)
 * troubleshooting, regexp constants vs. string constants: Computed Regexps.
                                                               (line  40)
 * troubleshooting, awk uses FS not IFS:  Field Separators.    (line  30)
@@ -39190,7 +39210,7 @@ Index
 * Unix, awk scripts and:                 Executable Scripts.  (line   6)
 * Unix:                                  Glossary.            (line 747)
 * Unix awk, backslashes in escape sequences: Escape Sequences.
-                                                              (line 120)
+                                                              (line 134)
 * Unix awk, password files, field separators and: Command Line Field Separator.
                                                               (line  62)
 * Unix awk, close() function and:        Close Return Value.  (line   6)
@@ -39411,560 +39431,560 @@ Node: Invoking Summary168480
 Node: Regexp171507
 Node: Regexp Usage173001
 Node: Escape Sequences175102
-Node: Regexp Operators181633
-Node: Regexp Operator Details182126
-Ref: Regexp Operator Details-Footnote-1189992
-Node: Interval Expressions190151
-Ref: Interval Expressions-Footnote-1192420
-Node: Bracket Expressions192520
-Ref: table-char-classes195080
-Node: Leftmost Longest198602
-Node: Computed Regexps199962
-Node: GNU Regexp Operators203485
-Node: Case-sensitivity207508
-Ref: Case-sensitivity-Footnote-1210465
-Ref: Case-sensitivity-Footnote-2210710
-Node: Regexp Summary210826
-Node: Reading Files212350
-Node: Records214667
-Node: awk split records215778
-Node: gawk split records220668
-Ref: gawk split records-Footnote-1225962
-Node: Fields225999
-Node: Nonconstant Fields228886
-Ref: Nonconstant Fields-Footnote-1231197
-Node: Changing Fields231413
-Node: Field Separators237721
-Node: Default Field Splitting240594
-Node: Regexp Field Splitting241737
-Node: Single Character Fields245566
-Node: Comma Separated Fields246655
-Ref: table-csv-examples247943
-Node: Command Line Field Separator248895
-Node: Full Line Fields252281
-Ref: Full Line Fields-Footnote-1253861
-Ref: Full Line Fields-Footnote-2253907
-Node: Field Splitting Summary254015
-Node: Constant Size256294
-Node: Fixed width data257038
-Node: Skipping intervening260557
-Node: Allowing trailing data261359
-Node: Fields with fixed data262424
-Node: Splitting By Content264050
-Ref: Splitting By Content-Footnote-1268235
-Node: More CSV268398
-Node: FS versus FPAT270051
-Node: Testing field creation271260
-Node: Multiple Line272953
-Node: Getline279435
-Node: Plain Getline282021
-Node: Getline/Variable284671
-Node: Getline/File285868
-Node: Getline/Variable/File287316
-Ref: Getline/Variable/File-Footnote-1288961
-Node: Getline/Pipe289057
-Node: Getline/Variable/Pipe291870
-Node: Getline/Coprocess293053
-Node: Getline/Variable/Coprocess294376
-Node: Getline Notes295142
-Node: Getline Summary298103
-Ref: table-getline-variants298547
-Node: Read Timeout299452
-Ref: Read Timeout-Footnote-1303416
-Node: Retrying Input303474
-Node: Command-line directories304741
-Node: Input Summary305679
-Node: Input Exercises309059
-Node: Printing309499
-Node: Print311385
-Node: Print Examples312891
-Node: Output Separators315744
-Node: OFMT317855
-Node: Printf319278
-Node: Basic Printf320083
-Node: Control Letters321719
-Node: Format Modifiers327188
-Node: Printf Examples333474
-Node: Redirection336019
-Node: Special FD343093
-Ref: Special FD-Footnote-1346383
-Node: Special Files346469
-Node: Other Inherited Files347098
-Node: Special Network348163
-Node: Special Caveats349051
-Node: Close Files And Pipes350034
-Ref: Close Files And Pipes-Footnote-1356171
-Node: Close Return Value356327
-Ref: table-close-pipe-return-values357602
-Ref: Close Return Value-Footnote-1358436
-Node: Nonfatal358592
-Node: Output Summary361023
-Node: Output Exercises362309
-Node: Expressions363000
-Node: Values364202
-Node: Constants364880
-Node: Scalar Constants365577
-Ref: Scalar Constants-Footnote-1368152
-Node: Nondecimal-numbers368402
-Node: Regexp Constants371523
-Node: Using Constant Regexps372069
-Node: Standard Regexp Constants372715
-Node: Strong Regexp Constants376015
-Node: Variables379866
-Node: Using Variables380531
-Node: Assignment Options382511
-Node: Conversion385073
-Node: Strings And Numbers385605
-Ref: Strings And Numbers-Footnote-1388824
-Node: Locale influences conversions388933
-Ref: table-locale-affects391783
-Node: All Operators392426
-Node: Arithmetic Ops393067
-Node: Concatenation395897
-Ref: Concatenation-Footnote-1398847
-Node: Assignment Ops398970
-Ref: table-assign-ops404109
-Node: Increment Ops405491
-Node: Truth Values and Conditions409090
-Node: Truth Values410216
-Node: Typing and Comparison411307
-Node: Variable Typing412143
-Ref: Variable Typing-Footnote-1418805
-Ref: Variable Typing-Footnote-2418885
-Node: Comparison Operators418968
-Ref: table-relational-ops419395
-Node: POSIX String Comparison423081
-Ref: POSIX String Comparison-Footnote-1424840
-Ref: POSIX String Comparison-Footnote-2424983
-Node: Boolean Ops425067
-Ref: Boolean Ops-Footnote-1429760
-Node: Conditional Exp429856
-Node: Function Calls431642
-Node: Precedence435592
-Node: Locales439469
-Node: Expressions Summary441151
-Node: Patterns and Actions443814
-Node: Pattern Overview444956
-Node: Regexp Patterns446682
-Node: Expression Patterns447228
-Node: Ranges451137
-Node: BEGIN/END454315
-Node: Using BEGIN/END455128
-Ref: Using BEGIN/END-Footnote-1458038
-Node: I/O And BEGIN/END458148
-Node: Empty464070
-Node: Using Shell Variables464387
-Node: Action Overview466725
-Node: Statements469160
-Node: If Statement471058
-Node: While Statement472627
-Node: Do Statement474715
-Node: For Statement475901
-Node: Switch Statement479258
-Node: Break Statement481809
-Node: Continue Statement484001
-Node: Next Statement485933
-Node: Nextfile Statement488430
-Node: Exit Statement491291
-Node: Built-in Variables493824
-Node: User-modified495003
-Node: Auto-set503214
-Ref: Auto-set-Footnote-1521067
-Ref: Auto-set-Footnote-2521285
-Node: ARGC and ARGV521341
-Node: Pattern Action Summary525780
-Node: Arrays528396
-Node: Array Basics529773
-Node: Array Intro530623
-Ref: figure-array-elements532639
-Ref: Array Intro-Footnote-1535503
-Node: Reference to Elements535635
-Node: Assigning Elements538157
-Node: Array Example538652
-Node: Scanning an Array540621
-Node: Controlling Scanning543718
-Ref: Controlling Scanning-Footnote-1550381
-Node: Numeric Array Subscripts550705
-Node: Uninitialized Subscripts552979
-Node: Delete554658
-Ref: Delete-Footnote-1557472
-Node: Multidimensional557529
-Node: Multiscanning560734
-Node: Arrays of Arrays562406
-Node: Arrays Summary567306
-Node: Functions569495
-Node: Built-in570555
-Node: Calling Built-in571744
-Node: Boolean Functions573791
-Node: Numeric Functions574361
-Ref: Numeric Functions-Footnote-1578554
-Ref: Numeric Functions-Footnote-2579238
-Ref: Numeric Functions-Footnote-3579290
-Node: String Functions579566
-Ref: String Functions-Footnote-1605702
-Ref: String Functions-Footnote-2605836
-Ref: String Functions-Footnote-3606096
-Node: Gory Details606183
-Ref: table-sub-escapes608090
-Ref: table-sub-proposed609736
-Ref: table-posix-sub611246
-Ref: table-gensub-escapes612934
-Ref: Gory Details-Footnote-1613868
-Node: I/O Functions614022
-Ref: table-system-return-values620709
-Ref: I/O Functions-Footnote-1622880
-Ref: I/O Functions-Footnote-2623028
-Node: Time Functions623148
-Ref: Time Functions-Footnote-1634304
-Ref: Time Functions-Footnote-2634380
-Ref: Time Functions-Footnote-3634542
-Ref: Time Functions-Footnote-4634653
-Ref: Time Functions-Footnote-5634771
-Ref: Time Functions-Footnote-6635006
-Node: Bitwise Functions635288
-Ref: table-bitwise-ops635890
-Ref: Bitwise Functions-Footnote-1642144
-Ref: Bitwise Functions-Footnote-2642323
-Node: Type Functions642520
-Node: I18N Functions646113
-Node: User-defined647856
-Node: Definition Syntax648676
-Ref: Definition Syntax-Footnote-1654504
-Node: Function Example654581
-Ref: Function Example-Footnote-1657560
-Node: Function Calling657582
-Node: Calling A Function658176
-Node: Variable Scope659146
-Node: Pass By Value/Reference662200
-Node: Function Caveats664932
-Ref: Function Caveats-Footnote-1667027
-Node: Return Statement667151
-Node: Dynamic Typing670206
-Node: Indirect Calls671162
-Node: Functions Summary682321
-Node: Library Functions685098
-Ref: Library Functions-Footnote-1688646
-Ref: Library Functions-Footnote-2688789
-Node: Library Names688964
-Ref: Library Names-Footnote-1692758
-Ref: Library Names-Footnote-2692985
-Node: General Functions693081
-Node: Strtonum Function694275
-Node: Assert Function697357
-Node: Round Function700809
-Node: Cliff Random Function702387
-Node: Ordinal Functions703420
-Ref: Ordinal Functions-Footnote-1706529
-Ref: Ordinal Functions-Footnote-2706781
-Node: Join Function706995
-Ref: Join Function-Footnote-1708798
-Node: Getlocaltime Function709002
-Node: Readfile Function712776
-Node: Shell Quoting714805
-Node: Isnumeric Function716261
-Node: Data File Management717673
-Node: Filetrans Function718305
-Node: Rewind Function722599
-Node: File Checking724578
-Ref: File Checking-Footnote-1725950
-Node: Empty Files726157
-Node: Ignoring Assigns728224
-Node: Getopt Function729798
-Ref: Getopt Function-Footnote-1745640
-Node: Passwd Functions745852
-Ref: Passwd Functions-Footnote-1755034
-Node: Group Functions755122
-Ref: Group Functions-Footnote-1763260
-Node: Walking Arrays763473
-Node: Library Functions Summary766521
-Node: Library Exercises767945
-Node: Sample Programs768432
-Node: Running Examples769214
-Node: Clones769966
-Node: Cut Program771238
-Node: Egrep Program781679
-Node: Id Program790996
-Node: Split Program801110
-Ref: Split Program-Footnote-1811345
-Node: Tee Program811532
-Node: Uniq Program814441
-Node: Wc Program822306
-Node: Bytes vs. Characters822701
-Node: Using extensions824303
-Node: wc program825083
-Node: Miscellaneous Programs830089
-Node: Dupword Program831318
-Node: Alarm Program833381
-Node: Translate Program838294
-Ref: Translate Program-Footnote-1843035
-Node: Labels Program843313
-Ref: Labels Program-Footnote-1846754
-Node: Word Sorting846846
-Node: History Sorting851040
-Node: Extract Program853315
-Node: Simple Sed861584
-Node: Igawk Program864800
-Ref: Igawk Program-Footnote-1880047
-Ref: Igawk Program-Footnote-2880253
-Ref: Igawk Program-Footnote-3880383
-Node: Anagram Program880510
-Node: Signature Program883606
-Node: Programs Summary884858
-Node: Programs Exercises886116
-Ref: Programs Exercises-Footnote-1890432
-Node: Advanced Features890518
-Node: Nondecimal Data893012
-Node: Boolean Typed Values894642
-Node: Array Sorting896617
-Node: Controlling Array Traversal897346
-Ref: Controlling Array Traversal-Footnote-1905853
-Node: Array Sorting Functions905975
-Ref: Array Sorting Functions-Footnote-1912094
-Node: Two-way I/O912302
-Ref: Two-way I/O-Footnote-1920297
-Ref: Two-way I/O-Footnote-2920488
-Node: TCP/IP Networking920570
-Node: Profiling923750
-Node: Persistent Memory933460
-Ref: Persistent Memory-Footnote-1941974
-Node: Extension Philosophy942105
-Node: Advanced Features Summary943640
-Node: Internationalization945910
-Node: I18N and L10N947616
-Node: Explaining gettext948311
-Ref: Explaining gettext-Footnote-1954464
-Ref: Explaining gettext-Footnote-2954659
-Node: Programmer i18n954824
-Ref: Programmer i18n-Footnote-1959937
-Node: Translator i18n959986
-Node: String Extraction960822
-Ref: String Extraction-Footnote-1962000
-Node: Printf Ordering962098
-Ref: Printf Ordering-Footnote-1964960
-Node: I18N Portability965028
-Ref: I18N Portability-Footnote-1967602
-Node: I18N Example967673
-Ref: I18N Example-Footnote-1971073
-Ref: I18N Example-Footnote-2971149
-Node: Gawk I18N971266
-Node: I18N Summary971922
-Node: Debugger973323
-Node: Debugging974347
-Node: Debugging Concepts974796
-Node: Debugging Terms976622
-Node: Awk Debugging979235
-Ref: Awk Debugging-Footnote-1980212
-Node: Sample Debugging Session980352
-Node: Debugger Invocation980904
-Node: Finding The Bug982533
-Node: List of Debugger Commands989219
-Node: Breakpoint Control990596
-Node: Debugger Execution Control994428
-Node: Viewing And Changing Data997908
-Node: Execution Stack1001646
-Node: Debugger Info1003327
-Node: Miscellaneous Debugger Commands1007626
-Node: Readline Support1012879
-Node: Limitations1013825
-Node: Debugging Summary1016469
-Node: Namespaces1017772
-Node: Global Namespace1018899
-Node: Qualified Names1020344
-Node: Default Namespace1021379
-Node: Changing The Namespace1022154
-Node: Naming Rules1023848
-Node: Internal Name Management1025763
-Node: Namespace Example1026833
-Node: Namespace And Features1029416
-Node: Namespace Summary1030873
-Node: Arbitrary Precision Arithmetic1032386
-Node: Computer Arithmetic1033905
-Ref: table-numeric-ranges1037722
-Ref: table-floating-point-ranges1038220
-Ref: Computer Arithmetic-Footnote-11038879
-Node: Math Definitions1038938
-Ref: table-ieee-formats1041983
-Node: MPFR features1042557
-Node: MPFR On Parole1043010
-Ref: MPFR On Parole-Footnote-11043854
-Node: MPFR Intro1044013
-Node: FP Math Caution1045703
-Ref: FP Math Caution-Footnote-11046777
-Node: Inexactness of computations1047154
-Node: Inexact representation1048185
-Node: Comparing FP Values1049568
-Node: Errors accumulate1050826
-Node: Strange values1052293
-Ref: Strange values-Footnote-11054959
-Node: Getting Accuracy1055064
-Node: Try To Round1057801
-Node: Setting precision1058708
-Ref: table-predefined-precision-strings1059413
-Node: Setting the rounding mode1061298
-Ref: table-gawk-rounding-modes1061680
-Ref: Setting the rounding mode-Footnote-11065738
-Node: Arbitrary Precision Integers1065921
-Ref: Arbitrary Precision Integers-Footnote-11069133
-Node: Checking for MPFR1069289
-Node: POSIX Floating Point Problems1070779
-Ref: POSIX Floating Point Problems-Footnote-11075643
-Node: Floating point summary1075681
-Node: Dynamic Extensions1077945
-Node: Extension Intro1079544
-Node: Plugin License1080852
-Node: Extension Mechanism Outline1081665
-Ref: figure-load-extension1082116
-Ref: figure-register-new-function1083696
-Ref: figure-call-new-function1084801
-Node: Extension API Description1086920
-Node: Extension API Functions Introduction1088649
-Ref: table-api-std-headers1090547
-Node: General Data Types1095011
-Ref: General Data Types-Footnote-11104179
-Node: Memory Allocation Functions1104494
-Ref: Memory Allocation Functions-Footnote-11109219
-Node: Constructor Functions1109318
-Node: API Ownership of MPFR and GMP Values1113223
-Node: Registration Functions1114784
-Node: Extension Functions1115488
-Node: Exit Callback Functions1121064
-Node: Extension Version String1122383
-Node: Input Parsers1123078
-Node: Output Wrappers1136452
-Node: Two-way processors1141160
-Node: Printing Messages1143521
-Ref: Printing Messages-Footnote-11144735
-Node: Updating ERRNO1144890
-Node: Requesting Values1145689
-Ref: table-value-types-returned1146442
-Node: Accessing Parameters1147551
-Node: Symbol Table Access1148835
-Node: Symbol table by name1149351
-Ref: Symbol table by name-Footnote-11152562
-Node: Symbol table by cookie1152694
-Ref: Symbol table by cookie-Footnote-11156975
-Node: Cached values1157039
-Ref: Cached values-Footnote-11160683
-Node: Array Manipulation1160840
-Ref: Array Manipulation-Footnote-11161943
-Node: Array Data Types1161980
-Ref: Array Data Types-Footnote-11164802
-Node: Array Functions1164902
-Node: Flattening Arrays1169931
-Node: Creating Arrays1176983
-Node: Redirection API1181833
-Node: Extension API Variables1184854
-Node: Extension Versioning1185579
-Ref: gawk-api-version1186016
-Node: Extension GMP/MPFR Versioning1187804
-Node: Extension API Informational Variables1189510
-Node: Extension API Boilerplate1190671
-Node: Changes from API V11194807
-Node: Finding Extensions1196441
-Node: Extension Example1197016
-Node: Internal File Description1197840
-Node: Internal File Ops1202164
-Ref: Internal File Ops-Footnote-11213722
-Node: Using Internal File Ops1213870
-Ref: Using Internal File Ops-Footnote-11216301
-Node: Extension Samples1216579
-Node: Extension Sample File Functions1218148
-Node: Extension Sample Fnmatch1226286
-Node: Extension Sample Fork1227881
-Node: Extension Sample Inplace1229157
-Node: Extension Sample Ord1232829
-Node: Extension Sample Readdir1233705
-Ref: table-readdir-file-types1234602
-Node: Extension Sample Revout1235740
-Node: Extension Sample Rev2way1236337
-Node: Extension Sample Read write array1237089
-Node: Extension Sample Readfile1240363
-Node: Extension Sample Time1241494
-Node: Extension Sample API Tests1243310
-Node: gawkextlib1243818
-Node: Extension summary1246854
-Node: Extension Exercises1250712
-Node: Language History1251990
-Node: V7/SVR3.11253704
-Node: SVR41256054
-Node: POSIX1257586
-Node: BTL1259011
-Node: POSIX/GNU1259780
-Node: Feature History1266311
-Node: Common Extensions1285674
-Node: Ranges and Locales1287043
-Ref: Ranges and Locales-Footnote-11291844
-Ref: Ranges and Locales-Footnote-21291871
-Ref: Ranges and Locales-Footnote-31292110
-Node: Contributors1292333
-Node: History summary1298538
-Node: Installation1299984
-Node: Gawk Distribution1300948
-Node: Getting1301440
-Node: Extracting1302439
-Node: Distribution contents1304151
-Node: Unix Installation1312231
-Node: Quick Installation1313053
-Node: Compiling with MPFR1315599
-Node: Shell Startup Files1316305
-Node: Additional Configuration Options1317462
-Node: Configuration Philosophy1319849
-Node: Compiling from Git1322351
-Node: Building the Documentation1322910
-Node: Non-Unix Installation1324322
-Node: PC Installation1324798
-Node: PC Binary Installation1325671
-Node: PC Compiling1326576
-Node: PC Using1327754
-Node: Cygwin1331482
-Node: MSYS1332738
-Node: OpenVMS Installation1333370
-Node: OpenVMS Compilation1334051
-Ref: OpenVMS Compilation-Footnote-11335534
-Node: OpenVMS Dynamic Extensions1335596
-Node: OpenVMS Installation Details1337232
-Node: OpenVMS Running1339667
-Node: OpenVMS GNV1343804
-Node: Bugs1344559
-Node: Bug definition1345483
-Node: Bug address1349134
-Node: Usenet1352725
-Node: Performance bugs1353956
-Node: Asking for help1356974
-Node: Maintainers1358965
-Node: Other Versions1359992
-Node: Installation summary1368924
-Node: Notes1370308
-Node: Compatibility Mode1371118
-Node: Additions1371940
-Node: Accessing The Source1372885
-Node: Adding Code1374420
-Node: New Ports1381556
-Node: Derived Files1386066
-Ref: Derived Files-Footnote-11391913
-Ref: Derived Files-Footnote-21391948
-Ref: Derived Files-Footnote-31392565
-Node: Future Extensions1392679
-Node: Implementation Limitations1393351
-Node: Extension Design1394593
-Node: Old Extension Problems1395757
-Ref: Old Extension Problems-Footnote-11397333
-Node: Extension New Mechanism Goals1397394
-Ref: Extension New Mechanism Goals-Footnote-11400890
-Node: Extension Other Design Decisions1401091
-Node: Extension Future Growth1403290
-Node: Notes summary1403914
-Node: Basic Concepts1405127
-Node: Basic High Level1405812
-Ref: figure-general-flow1406094
-Ref: figure-process-flow1406796
-Ref: Basic High Level-Footnote-11410192
-Node: Basic Data Typing1410381
-Node: Glossary1413799
-Node: Copying1446921
-Node: GNU Free Documentation License1484682
-Node: Index1510005
+Node: Regexp Operators182438
+Node: Regexp Operator Details182931
+Ref: Regexp Operator Details-Footnote-1190797
+Node: Interval Expressions190956
+Ref: Interval Expressions-Footnote-1193225
+Node: Bracket Expressions193325
+Ref: table-char-classes195885
+Node: Leftmost Longest199407
+Node: Computed Regexps200767
+Node: GNU Regexp Operators204290
+Node: Case-sensitivity208313
+Ref: Case-sensitivity-Footnote-1211270
+Ref: Case-sensitivity-Footnote-2211515
+Node: Regexp Summary211631
+Node: Reading Files213155
+Node: Records215472
+Node: awk split records216583
+Node: gawk split records221473
+Ref: gawk split records-Footnote-1226767
+Node: Fields226804
+Node: Nonconstant Fields229691
+Ref: Nonconstant Fields-Footnote-1232002
+Node: Changing Fields232218
+Node: Field Separators238526
+Node: Default Field Splitting241399
+Node: Regexp Field Splitting242542
+Node: Single Character Fields246371
+Node: Comma Separated Fields247460
+Ref: table-csv-examples248748
+Node: Command Line Field Separator249700
+Node: Full Line Fields253086
+Ref: Full Line Fields-Footnote-1254666
+Ref: Full Line Fields-Footnote-2254712
+Node: Field Splitting Summary254820
+Node: Constant Size257099
+Node: Fixed width data257843
+Node: Skipping intervening261362
+Node: Allowing trailing data262164
+Node: Fields with fixed data263229
+Node: Splitting By Content264855
+Ref: Splitting By Content-Footnote-1269040
+Node: More CSV269203
+Node: FS versus FPAT270856
+Node: Testing field creation272065
+Node: Multiple Line273758
+Node: Getline280240
+Node: Plain Getline282826
+Node: Getline/Variable285476
+Node: Getline/File286673
+Node: Getline/Variable/File288121
+Ref: Getline/Variable/File-Footnote-1289766
+Node: Getline/Pipe289862
+Node: Getline/Variable/Pipe292675
+Node: Getline/Coprocess293858
+Node: Getline/Variable/Coprocess295181
+Node: Getline Notes295947
+Node: Getline Summary298908
+Ref: table-getline-variants299352
+Node: Read Timeout300257
+Ref: Read Timeout-Footnote-1304221
+Node: Retrying Input304279
+Node: Command-line directories305546
+Node: Input Summary306484
+Node: Input Exercises309864
+Node: Printing310304
+Node: Print312190
+Node: Print Examples313696
+Node: Output Separators316549
+Node: OFMT318660
+Node: Printf320083
+Node: Basic Printf320888
+Node: Control Letters322524
+Node: Format Modifiers327993
+Node: Printf Examples334279
+Node: Redirection336824
+Node: Special FD343898
+Ref: Special FD-Footnote-1347188
+Node: Special Files347274
+Node: Other Inherited Files347903
+Node: Special Network348968
+Node: Special Caveats349856
+Node: Close Files And Pipes350839
+Ref: Close Files And Pipes-Footnote-1356976
+Node: Close Return Value357132
+Ref: table-close-pipe-return-values358407
+Ref: Close Return Value-Footnote-1359241
+Node: Nonfatal359397
+Node: Output Summary361828
+Node: Output Exercises363114
+Node: Expressions363805
+Node: Values365007
+Node: Constants365685
+Node: Scalar Constants366382
+Ref: Scalar Constants-Footnote-1368957
+Node: Nondecimal-numbers369207
+Node: Regexp Constants372328
+Node: Using Constant Regexps372874
+Node: Standard Regexp Constants373520
+Node: Strong Regexp Constants376820
+Node: Variables380671
+Node: Using Variables381336
+Node: Assignment Options383316
+Node: Conversion385878
+Node: Strings And Numbers386410
+Ref: Strings And Numbers-Footnote-1389629
+Node: Locale influences conversions389738
+Ref: table-locale-affects392588
+Node: All Operators393231
+Node: Arithmetic Ops393872
+Node: Concatenation396702
+Ref: Concatenation-Footnote-1399652
+Node: Assignment Ops399775
+Ref: table-assign-ops404914
+Node: Increment Ops406296
+Node: Truth Values and Conditions409895
+Node: Truth Values411021
+Node: Typing and Comparison412112
+Node: Variable Typing412948
+Ref: Variable Typing-Footnote-1419610
+Ref: Variable Typing-Footnote-2419690
+Node: Comparison Operators419773
+Ref: table-relational-ops420200
+Node: POSIX String Comparison423886
+Ref: POSIX String Comparison-Footnote-1425645
+Ref: POSIX String Comparison-Footnote-2425788
+Node: Boolean Ops425872
+Ref: Boolean Ops-Footnote-1430565
+Node: Conditional Exp430661
+Node: Function Calls432447
+Node: Precedence436397
+Node: Locales440274
+Node: Expressions Summary441956
+Node: Patterns and Actions444619
+Node: Pattern Overview445761
+Node: Regexp Patterns447487
+Node: Expression Patterns448033
+Node: Ranges451942
+Node: BEGIN/END455120
+Node: Using BEGIN/END455933
+Ref: Using BEGIN/END-Footnote-1458843
+Node: I/O And BEGIN/END458953
+Node: Empty464875
+Node: Using Shell Variables465192
+Node: Action Overview467530
+Node: Statements469965
+Node: If Statement471863
+Node: While Statement473432
+Node: Do Statement475520
+Node: For Statement476706
+Node: Switch Statement480063
+Node: Break Statement482614
+Node: Continue Statement484806
+Node: Next Statement486738
+Node: Nextfile Statement489235
+Node: Exit Statement492096
+Node: Built-in Variables494629
+Node: User-modified495808
+Node: Auto-set504019
+Ref: Auto-set-Footnote-1521872
+Ref: Auto-set-Footnote-2522090
+Node: ARGC and ARGV522146
+Node: Pattern Action Summary526585
+Node: Arrays529201
+Node: Array Basics530578
+Node: Array Intro531428
+Ref: figure-array-elements533444
+Ref: Array Intro-Footnote-1536308
+Node: Reference to Elements536440
+Node: Assigning Elements538962
+Node: Array Example539457
+Node: Scanning an Array541426
+Node: Controlling Scanning544523
+Ref: Controlling Scanning-Footnote-1551186
+Node: Numeric Array Subscripts551510
+Node: Uninitialized Subscripts553784
+Node: Delete555463
+Ref: Delete-Footnote-1558277
+Node: Multidimensional558334
+Node: Multiscanning561539
+Node: Arrays of Arrays563211
+Node: Arrays Summary568111
+Node: Functions570300
+Node: Built-in571360
+Node: Calling Built-in572549
+Node: Boolean Functions574596
+Node: Numeric Functions575166
+Ref: Numeric Functions-Footnote-1579359
+Ref: Numeric Functions-Footnote-2580043
+Ref: Numeric Functions-Footnote-3580095
+Node: String Functions580371
+Ref: String Functions-Footnote-1606507
+Ref: String Functions-Footnote-2606641
+Ref: String Functions-Footnote-3606901
+Node: Gory Details606988
+Ref: table-sub-escapes608895
+Ref: table-sub-proposed610541
+Ref: table-posix-sub612051
+Ref: table-gensub-escapes613739
+Ref: Gory Details-Footnote-1614673
+Node: I/O Functions614827
+Ref: table-system-return-values621514
+Ref: I/O Functions-Footnote-1623685
+Ref: I/O Functions-Footnote-2623833
+Node: Time Functions623953
+Ref: Time Functions-Footnote-1635109
+Ref: Time Functions-Footnote-2635185
+Ref: Time Functions-Footnote-3635347
+Ref: Time Functions-Footnote-4635458
+Ref: Time Functions-Footnote-5635576
+Ref: Time Functions-Footnote-6635811
+Node: Bitwise Functions636093
+Ref: table-bitwise-ops636695
+Ref: Bitwise Functions-Footnote-1642949
+Ref: Bitwise Functions-Footnote-2643128
+Node: Type Functions643325
+Node: I18N Functions646918
+Node: User-defined648661
+Node: Definition Syntax649481
+Ref: Definition Syntax-Footnote-1655309
+Node: Function Example655386
+Ref: Function Example-Footnote-1658365
+Node: Function Calling658387
+Node: Calling A Function658981
+Node: Variable Scope659951
+Node: Pass By Value/Reference663005
+Node: Function Caveats665737
+Ref: Function Caveats-Footnote-1667832
+Node: Return Statement667956
+Node: Dynamic Typing671011
+Node: Indirect Calls671967
+Node: Functions Summary683126
+Node: Library Functions685903
+Ref: Library Functions-Footnote-1689451
+Ref: Library Functions-Footnote-2689594
+Node: Library Names689769
+Ref: Library Names-Footnote-1693563
+Ref: Library Names-Footnote-2693790
+Node: General Functions693886
+Node: Strtonum Function695080
+Node: Assert Function698162
+Node: Round Function701614
+Node: Cliff Random Function703192
+Node: Ordinal Functions704225
+Ref: Ordinal Functions-Footnote-1707334
+Ref: Ordinal Functions-Footnote-2707586
+Node: Join Function707800
+Ref: Join Function-Footnote-1709603
+Node: Getlocaltime Function709807
+Node: Readfile Function713581
+Node: Shell Quoting715610
+Node: Isnumeric Function717066
+Node: Data File Management718478
+Node: Filetrans Function719110
+Node: Rewind Function723404
+Node: File Checking725383
+Ref: File Checking-Footnote-1726755
+Node: Empty Files726962
+Node: Ignoring Assigns729029
+Node: Getopt Function730603
+Ref: Getopt Function-Footnote-1746445
+Node: Passwd Functions746657
+Ref: Passwd Functions-Footnote-1755839
+Node: Group Functions755927
+Ref: Group Functions-Footnote-1764065
+Node: Walking Arrays764278
+Node: Library Functions Summary767326
+Node: Library Exercises768750
+Node: Sample Programs769237
+Node: Running Examples770019
+Node: Clones770771
+Node: Cut Program772043
+Node: Egrep Program782484
+Node: Id Program791801
+Node: Split Program801915
+Ref: Split Program-Footnote-1812150
+Node: Tee Program812337
+Node: Uniq Program815246
+Node: Wc Program823111
+Node: Bytes vs. Characters823506
+Node: Using extensions825108
+Node: wc program825888
+Node: Miscellaneous Programs830894
+Node: Dupword Program832123
+Node: Alarm Program834186
+Node: Translate Program839099
+Ref: Translate Program-Footnote-1843840
+Node: Labels Program844118
+Ref: Labels Program-Footnote-1847559
+Node: Word Sorting847651
+Node: History Sorting851845
+Node: Extract Program854120
+Node: Simple Sed862389
+Node: Igawk Program865605
+Ref: Igawk Program-Footnote-1880852
+Ref: Igawk Program-Footnote-2881058
+Ref: Igawk Program-Footnote-3881188
+Node: Anagram Program881315
+Node: Signature Program884411
+Node: Programs Summary885663
+Node: Programs Exercises886921
+Ref: Programs Exercises-Footnote-1891237
+Node: Advanced Features891323
+Node: Nondecimal Data893817
+Node: Boolean Typed Values895447
+Node: Array Sorting897422
+Node: Controlling Array Traversal898151
+Ref: Controlling Array Traversal-Footnote-1906658
+Node: Array Sorting Functions906780
+Ref: Array Sorting Functions-Footnote-1912899
+Node: Two-way I/O913107
+Ref: Two-way I/O-Footnote-1921102
+Ref: Two-way I/O-Footnote-2921293
+Node: TCP/IP Networking921375
+Node: Profiling924555
+Node: Persistent Memory934265
+Ref: Persistent Memory-Footnote-1942779
+Node: Extension Philosophy942910
+Node: Advanced Features Summary944445
+Node: Internationalization946715
+Node: I18N and L10N948421
+Node: Explaining gettext949116
+Ref: Explaining gettext-Footnote-1955269
+Ref: Explaining gettext-Footnote-2955464
+Node: Programmer i18n955629
+Ref: Programmer i18n-Footnote-1960742
+Node: Translator i18n960791
+Node: String Extraction961627
+Ref: String Extraction-Footnote-1962805
+Node: Printf Ordering962903
+Ref: Printf Ordering-Footnote-1965765
+Node: I18N Portability965833
+Ref: I18N Portability-Footnote-1968407
+Node: I18N Example968478
+Ref: I18N Example-Footnote-1971878
+Ref: I18N Example-Footnote-2971954
+Node: Gawk I18N972071
+Node: I18N Summary972727
+Node: Debugger974128
+Node: Debugging975152
+Node: Debugging Concepts975601
+Node: Debugging Terms977427
+Node: Awk Debugging980040
+Ref: Awk Debugging-Footnote-1981017
+Node: Sample Debugging Session981157
+Node: Debugger Invocation981709
+Node: Finding The Bug983338
+Node: List of Debugger Commands990024
+Node: Breakpoint Control991401
+Node: Debugger Execution Control995233
+Node: Viewing And Changing Data998713
+Node: Execution Stack1002451
+Node: Debugger Info1004132
+Node: Miscellaneous Debugger Commands1008431
+Node: Readline Support1013684
+Node: Limitations1014630
+Node: Debugging Summary1017274
+Node: Namespaces1018577
+Node: Global Namespace1019704
+Node: Qualified Names1021149
+Node: Default Namespace1022184
+Node: Changing The Namespace1022959
+Node: Naming Rules1024653
+Node: Internal Name Management1026568
+Node: Namespace Example1027638
+Node: Namespace And Features1030221
+Node: Namespace Summary1031678
+Node: Arbitrary Precision Arithmetic1033191
+Node: Computer Arithmetic1034710
+Ref: table-numeric-ranges1038527
+Ref: table-floating-point-ranges1039025
+Ref: Computer Arithmetic-Footnote-11039684
+Node: Math Definitions1039743
+Ref: table-ieee-formats1042788
+Node: MPFR features1043362
+Node: MPFR On Parole1043815
+Ref: MPFR On Parole-Footnote-11044659
+Node: MPFR Intro1044818
+Node: FP Math Caution1046508
+Ref: FP Math Caution-Footnote-11047582
+Node: Inexactness of computations1047959
+Node: Inexact representation1048990
+Node: Comparing FP Values1050373
+Node: Errors accumulate1051631
+Node: Strange values1053098
+Ref: Strange values-Footnote-11055764
+Node: Getting Accuracy1055869
+Node: Try To Round1058606
+Node: Setting precision1059513
+Ref: table-predefined-precision-strings1060218
+Node: Setting the rounding mode1062103
+Ref: table-gawk-rounding-modes1062485
+Ref: Setting the rounding mode-Footnote-11066543
+Node: Arbitrary Precision Integers1066726
+Ref: Arbitrary Precision Integers-Footnote-11069938
+Node: Checking for MPFR1070094
+Node: POSIX Floating Point Problems1071584
+Ref: POSIX Floating Point Problems-Footnote-11076448
+Node: Floating point summary1076486
+Node: Dynamic Extensions1078750
+Node: Extension Intro1080349
+Node: Plugin License1081657
+Node: Extension Mechanism Outline1082470
+Ref: figure-load-extension1082921
+Ref: figure-register-new-function1084501
+Ref: figure-call-new-function1085606
+Node: Extension API Description1087725
+Node: Extension API Functions Introduction1089454
+Ref: table-api-std-headers1091352
+Node: General Data Types1095816
+Ref: General Data Types-Footnote-11104984
+Node: Memory Allocation Functions1105299
+Ref: Memory Allocation Functions-Footnote-11110024
+Node: Constructor Functions1110123
+Node: API Ownership of MPFR and GMP Values1114028
+Node: Registration Functions1115589
+Node: Extension Functions1116293
+Node: Exit Callback Functions1121869
+Node: Extension Version String1123188
+Node: Input Parsers1123883
+Node: Output Wrappers1137257
+Node: Two-way processors1141965
+Node: Printing Messages1144326
+Ref: Printing Messages-Footnote-11145540
+Node: Updating ERRNO1145695
+Node: Requesting Values1146494
+Ref: table-value-types-returned1147247
+Node: Accessing Parameters1148356
+Node: Symbol Table Access1149640
+Node: Symbol table by name1150156
+Ref: Symbol table by name-Footnote-11153367
+Node: Symbol table by cookie1153499
+Ref: Symbol table by cookie-Footnote-11157780
+Node: Cached values1157844
+Ref: Cached values-Footnote-11161488
+Node: Array Manipulation1161645
+Ref: Array Manipulation-Footnote-11162748
+Node: Array Data Types1162785
+Ref: Array Data Types-Footnote-11165607
+Node: Array Functions1165707
+Node: Flattening Arrays1170736
+Node: Creating Arrays1177788
+Node: Redirection API1182638
+Node: Extension API Variables1185659
+Node: Extension Versioning1186384
+Ref: gawk-api-version1186821
+Node: Extension GMP/MPFR Versioning1188609
+Node: Extension API Informational Variables1190315
+Node: Extension API Boilerplate1191476
+Node: Changes from API V11195612
+Node: Finding Extensions1197246
+Node: Extension Example1197821
+Node: Internal File Description1198645
+Node: Internal File Ops1202969
+Ref: Internal File Ops-Footnote-11214527
+Node: Using Internal File Ops1214675
+Ref: Using Internal File Ops-Footnote-11217106
+Node: Extension Samples1217384
+Node: Extension Sample File Functions1218953
+Node: Extension Sample Fnmatch1227091
+Node: Extension Sample Fork1228686
+Node: Extension Sample Inplace1229962
+Node: Extension Sample Ord1233634
+Node: Extension Sample Readdir1234510
+Ref: table-readdir-file-types1235407
+Node: Extension Sample Revout1236545
+Node: Extension Sample Rev2way1237142
+Node: Extension Sample Read write array1237894
+Node: Extension Sample Readfile1241168
+Node: Extension Sample Time1242299
+Node: Extension Sample API Tests1244115
+Node: gawkextlib1244623
+Node: Extension summary1247659
+Node: Extension Exercises1251517
+Node: Language History1252795
+Node: V7/SVR3.11254509
+Node: SVR41256859
+Node: POSIX1258391
+Node: BTL1259816
+Node: POSIX/GNU1260585
+Node: Feature History1267116
+Node: Common Extensions1286543
+Node: Ranges and Locales1287912
+Ref: Ranges and Locales-Footnote-11292713
+Ref: Ranges and Locales-Footnote-21292740
+Ref: Ranges and Locales-Footnote-31292979
+Node: Contributors1293202
+Node: History summary1299407
+Node: Installation1300853
+Node: Gawk Distribution1301817
+Node: Getting1302309
+Node: Extracting1303308
+Node: Distribution contents1305020
+Node: Unix Installation1313100
+Node: Quick Installation1313922
+Node: Compiling with MPFR1316468
+Node: Shell Startup Files1317174
+Node: Additional Configuration Options1318331
+Node: Configuration Philosophy1320718
+Node: Compiling from Git1323220
+Node: Building the Documentation1323779
+Node: Non-Unix Installation1325191
+Node: PC Installation1325667
+Node: PC Binary Installation1326540
+Node: PC Compiling1327445
+Node: PC Using1328623
+Node: Cygwin1332351
+Node: MSYS1333607
+Node: OpenVMS Installation1334239
+Node: OpenVMS Compilation1334920
+Ref: OpenVMS Compilation-Footnote-11336403
+Node: OpenVMS Dynamic Extensions1336465
+Node: OpenVMS Installation Details1338101
+Node: OpenVMS Running1340536
+Node: OpenVMS GNV1344673
+Node: Bugs1345428
+Node: Bug definition1346352
+Node: Bug address1350003
+Node: Usenet1353594
+Node: Performance bugs1354825
+Node: Asking for help1357843
+Node: Maintainers1359834
+Node: Other Versions1360861
+Node: Installation summary1369793
+Node: Notes1371177
+Node: Compatibility Mode1371987
+Node: Additions1372809
+Node: Accessing The Source1373754
+Node: Adding Code1375289
+Node: New Ports1382425
+Node: Derived Files1386935
+Ref: Derived Files-Footnote-11392782
+Ref: Derived Files-Footnote-21392817
+Ref: Derived Files-Footnote-31393434
+Node: Future Extensions1393548
+Node: Implementation Limitations1394220
+Node: Extension Design1395462
+Node: Old Extension Problems1396626
+Ref: Old Extension Problems-Footnote-11398202
+Node: Extension New Mechanism Goals1398263
+Ref: Extension New Mechanism Goals-Footnote-11401759
+Node: Extension Other Design Decisions1401960
+Node: Extension Future Growth1404159
+Node: Notes summary1404783
+Node: Basic Concepts1405996
+Node: Basic High Level1406681
+Ref: figure-general-flow1406963
+Ref: figure-process-flow1407665
+Ref: Basic High Level-Footnote-11411061
+Node: Basic Data Typing1411250
+Node: Glossary1414668
+Node: Copying1447790
+Node: GNU Free Documentation License1485551
+Node: Index1510874
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index fb23f98b..0b2664a2 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -5686,6 +5686,25 @@ As of @value{PVERSION} 4.2, only two digits
 are processed.
 @end quotation
+@cindex @code{\} (backslash) @subentry @code{\u} escape sequence
+@cindex backslash (@code{\}) @subentry @code{\u} escape sequence
+@cindex common extensions @subentry @code{\u} escape sequence
+@cindex extensions @subentry common @subentry @code{\u} escape sequence
+@item \u@var{hh}@dots{}
+The hexadecimal value @var{hh}, where @var{hh} stands for a sequence
+of hexadecimal digits (@samp{0}--@samp{9}, and either @samp{A}--@samp{F}
+or @samp{a}--@samp{f}).  A maximum of eight digits are allowed after
+the @samp{\u}. Any further hexadecimal digits are treated as simple
+letters or numbers.  @value{COMMONEXT}
+(The @samp{\u} escape sequence is not allowed in POSIX awk.)
+This escape sequence is intended for designating a character in the
+Unicode character set.  @command{gawk} first converts the given digits
+into an integer and then translates the given ``wide character''
+value into the current locale's multibyte encoding (even if that
+is a not a Unicode locale).  If the given bytes do not represent
+a valid character, the value becomes @code{"?"}.
 @cindex @code{\} (backslash) @subentry @code{\/} escape sequence
 @cindex backslash (@code{\}) @subentry @code{\/} escape sequence
 @item \/
@@ -42124,6 +42143,10 @@ Version 5.3 added the following features:
 Comma separated value (CSV) field splitting
 (@pxref{Comma Separated Fields}).
+The @samp{\u} escape sequence
+(@pxref{Escape Sequences})
 The need for GNU @code{libsigsegv} was removed from @command{gawk}.
 The value-add was never very much and it caused problems in some
diff --git a/doc/ b/doc/
index 81a9e6e2..226ae31b 100644
--- a/doc/
+++ b/doc/
@@ -5552,6 +5552,25 @@ As of @value{PVERSION} 4.2, only two digits
 are processed.
 @end quotation
+@cindex @code{\} (backslash) @subentry @code{\u} escape sequence
+@cindex backslash (@code{\}) @subentry @code{\u} escape sequence
+@cindex common extensions @subentry @code{\u} escape sequence
+@cindex extensions @subentry common @subentry @code{\u} escape sequence
+@item \u@var{hh}@dots{}
+The hexadecimal value @var{hh}, where @var{hh} stands for a sequence
+of hexadecimal digits (@samp{0}--@samp{9}, and either @samp{A}--@samp{F}
+or @samp{a}--@samp{f}).  A maximum of eight digits are allowed after
+the @samp{\u}. Any further hexadecimal digits are treated as simple
+letters or numbers.  @value{COMMONEXT}
+(The @samp{\u} escape sequence is not allowed in POSIX awk.)
+This escape sequence is intended for designating a character in the
+Unicode character set.  @command{gawk} first converts the given digits
+into an integer and then translates the given ``wide character''
+value into the current locale's multibyte encoding (even if that
+is a not a Unicode locale).  If the given bytes do not represent
+a valid character, the value becomes @code{"?"}.
 @cindex @code{\} (backslash) @subentry @code{\/} escape sequence
 @cindex backslash (@code{\}) @subentry @code{\/} escape sequence
 @item \/
@@ -41040,6 +41059,10 @@ Version 5.3 added the following features:
 Comma separated value (CSV) field splitting
 (@pxref{Comma Separated Fields}).
+The @samp{\u} escape sequence
+(@pxref{Escape Sequences})
 The need for GNU @code{libsigsegv} was removed from @command{gawk}.
 The value-add was never very much and it caused problems in some
diff --git a/node.c b/node.c
index 44ddfdb3..ccb63be2 100644
--- a/node.c
+++ b/node.c
@@ -454,7 +454,8 @@ make_str_node(const char *s, size_t len, int flags)
                        c = *pf++;
                        if (c == '\\') {
-                               c = parse_escape(&pf);
+                               bool unicode;
+                               c = parse_escape(&pf, &unicode);
                                if (c < 0) {
                                        if (do_lint)
                                                lintwarn(_("backslash string 
continuation is not portable"));
@@ -462,7 +463,23 @@ make_str_node(const char *s, size_t len, int flags)
                                        c = '\\';
-                               *ptm++ = c;
+                               if (unicode) {
+                                       char buf[20];
+                                       size_t n;
+                                       mbstate_t mbs;
+                                       int i;
+                                       memset(& mbs, 0, sizeof(mbs));
+                                       n = wcrtomb(buf, c, & mbs);
+                                       if (n == (size_t) -1)   // bad value
+                                               *ptm++ = '?';
+                                       else {
+                                               for (i = 0; i < n; i++)
+                                                       *ptm++ = buf[i];
+                                       }
+                               } else
+                                       *ptm++ = c;
                        } else
                                *ptm++ = c;
@@ -540,11 +557,11 @@ r_unref(NODE *tmp)
  * If \ is followed by 000, we return 0 and leave the string pointer after the
  * zeros.  A value of 0 does not mean end of string.
- * POSIX doesn't allow \x.
+ * POSIX doesn't allow \x or \u.
-parse_escape(const char **string_ptr)
+parse_escape(const char **string_ptr, bool *unicode)
        int c = *(*string_ptr)++;
        int i;
@@ -552,6 +569,8 @@ parse_escape(const char **string_ptr)
        int j;
        const char *start;
+       *unicode = false;
        if (do_lint_old) {
                switch (c) {
                case 'a':
@@ -638,6 +657,42 @@ parse_escape(const char **string_ptr)
                if (do_lint && j == 2 && isxdigit((unsigned 
                        lintwarn(_("hex escape \\x%.*s of %d characters 
probably not interpreted the way you expect"), 3, start, 3);
                return i;
+       case 'u':
+               if (do_lint) {
+                       static bool warned = false;
+                       if (! warned) {
+                               warned = true;
+                               lintwarn(_("POSIX does not allow `\\u' 
+                       }
+               }
+               if (do_posix)
+                       return ('u');
+               if (! isxdigit((unsigned char) (*string_ptr)[0])) {
+                       warning(_("no hex digits in `\\u' escape sequence"));
+                       return ('u');
+               }
+               start = *string_ptr;
+               for (i = j = 0; j < 8; j++) {
+                       /* do outside test to avoid multiple side effects */
+                       c = (unsigned char) *(*string_ptr)++;
+                       if (isxdigit(c)) {
+                               i *= 16;
+                               if (isdigit(c))
+                                       i += c - '0';
+                               else if (isupper(c))
+                                       i += c - 'A' + 10;
+                               else
+                                       i += c - 'a' + 10;
+                       } else {
+                               (*string_ptr)--;
+                               break;
+                       }
+               }
+               if (do_lint && j == 8 && isxdigit((unsigned 
+                       lintwarn(_("\\u escape \\u%.*s of %d characters 
probably not interpreted the way you expect"), 8, start, 8);
+               *unicode = true;
+               return i;
        case '\\':
        case '"':
                return c;
diff --git a/re.c b/re.c
index 9c1905a6..3ebf0206 100644
--- a/re.c
+++ b/re.c
@@ -118,6 +118,8 @@ make_regexp(const char *s, size_t len, bool ignorecase, 
bool dfa, bool canfatal)
                   character.  */
                if ((gawk_mb_cur_max == 1 || ! is_multibyte) &&
                    (*src == '\\')) {
+                       bool unicode;
                        c = *++src;
                        switch (c) {
                        case '\0':      /* \\ before \0, either dynamic data or 
real end of string */
@@ -134,6 +136,7 @@ make_regexp(const char *s, size_t len, bool ignorecase, 
bool dfa, bool canfatal)
                        case 't':
                        case 'v':
                        case 'x':
+                       case 'u':
                        case '0':
                        case '1':
                        case '2':
@@ -142,7 +145,7 @@ make_regexp(const char *s, size_t len, bool ignorecase, 
bool dfa, bool canfatal)
                        case '5':
                        case '6':
                        case '7':
-                               c2 = parse_escape(&src);
+                               c2 = parse_escape(&src, &unicode);
                                if (c2 < 0)
                                        cant_happen("received bad result %d 
from parse_escape()", c2);
@@ -155,7 +158,23 @@ make_regexp(const char *s, size_t len, bool ignorecase, 
bool dfa, bool canfatal)
                                    && (isdigit(c) || c == 'x')
                                    && strchr("()|*+?.^$\\[]", c2) != NULL)
                                        *dest++ = '\\';
-                               *dest++ = (char) c2;
+                               if (unicode) {
+                                       char buf[20];
+                                       size_t n;
+                                       mbstate_t mbs;
+                                       int i;
+                                       memset(& mbs, 0, sizeof(mbs));
+                                       n = wcrtomb(buf, c, & mbs);
+                                       if (n == (size_t) -1)   // bad value
+                                               *dest++ = '?';
+                                       else {
+                                               for (i = 0; i < n; i++)
+                                                       *dest++ = buf[i];
+                                       }
+                               } else
+                                       *dest++ = (char) c2;
                                if (do_lint
                                    && ! nul_warned
                                    && c2 == '\0') {
diff --git a/test/funstack.ok b/test/funstack.ok
index 04030d3b..6c28fad0 100644
--- a/test/funstack.ok
+++ b/test/funstack.ok
@@ -2,7 +2,7 @@ gawk: funstack.awk:129: warning: regexp escape sequence `\"' is 
not a known rege
 gawk: funstack.awk:381: warning: regexp escape sequence `\e' is not a known 
regexp operator
 gawk: funstack.awk:386: warning: regexp escape sequence `\i' is not a known 
regexp operator
 gawk: funstack.awk:395: warning: regexp escape sequence `\o' is not a known 
regexp operator
-gawk: funstack.awk:402: warning: regexp escape sequence `\u' is not a known 
regexp operator
+gawk: funstack.awk:402: warning: no hex digits in `\u' escape sequence
 gawk: funstack.awk:412: warning: regexp escape sequence `\A' is not a known 
regexp operator
 gawk: funstack.awk:427: warning: regexp escape sequence `\I' is not a known 
regexp operator
 gawk: funstack.awk:436: warning: regexp escape sequence `\O' is not a known 
regexp operator


Summary of changes:
 ChangeLog         |    9 +
 awk.h             |    2 +-
 doc/ChangeLog     |    6 +
 doc/    |    3 +-
 doc/     | 1172 +++++++++++++++++++++++++++--------------------------
 doc/gawk.texi     |   23 ++
 doc/   |   23 ++
 node.c            |   61 ++-
 pc/ChangeLog      |    4 +
 pc/Makefile.tst   |   10 +-
 re.c              |   23 +-
 test/ChangeLog    |    6 +
 test/  |    6 +-
 test/  |   12 +-
 test/Maketests    |    6 +
 test/funstack.ok  |    2 +-
 test/unicode1.awk |    6 +
 test/unicode1.ok  |    4 +
 18 files changed, 787 insertions(+), 591 deletions(-)
 create mode 100644 test/unicode1.awk
 create mode 100644 test/unicode1.ok


reply via email to

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