aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1293
1 files changed, 706 insertions, 587 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 47cbde92..dfa21a7b 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -416,6 +416,8 @@ entitled "GNU Free Documentation License".
* Getlocaltime Function:: A function to get formatted times.
* Readfile Function:: A function to read an entire file at
once.
+* Shell Quoting:: A function to quote strings for the
+ shell.
* Data File Management:: Functions for managing command-line
data files.
* Filetrans Function:: A function for handling data file
@@ -6792,6 +6794,9 @@ uppercase characters converted to lowercase (*note String Functions::).
The program builds up a list of command lines, using the `mv' utility
to rename the files. It then sends the list to the shell for execution.
+ *Note Shell Quoting::, for a function that can help in generating
+command lines to be fed to the shell.
+

File: gawk.info, Node: Special FD, Next: Special Files, Prev: Redirection, Up: Printing
@@ -14197,6 +14202,63 @@ names of the two comparison functions:
-| sort: <87.1 93.4 95.6 100.0>
-| rsort: <100.0 95.6 93.4 87.1>
+ Another example where indirect functions calls are useful can be
+found in processing arrays. *note Walking Arrays::, presented a simple
+function for "walking" an array of arrays. That function simply
+printed the name and value of each scalar array element. However, it is
+easy to generalize that function, by passing in the name of a function
+to call when walking an array. The modified function looks like this:
+
+ function process_array(arr, name, process, do_arrays, i, new_name)
+ {
+ for (i in arr) {
+ new_name = (name "[" i "]")
+ if (isarray(arr[i])) {
+ if (do_arrays)
+ @process(new_name, arr[i])
+ process_array(arr[i], new_name, process, do_arrays)
+ } else
+ @process(new_name, arr[i])
+ }
+ }
+
+ The arguments are as follows:
+
+`arr'
+ The array.
+
+`name'
+ The name of the array (a string).
+
+`process'
+ The name of the function to call.
+
+`do_arrays'
+ If this is true, the function can handle elements that are
+ subarrays.
+
+ If subarrays are to be processed, that is done before walking them
+further.
+
+ When run with the following scaffolding, the function produces the
+same results as does the earlier `walk_array()' function:
+
+ BEGIN {
+ a[1] = 1
+ a[2][1] = 21
+ a[2][2] = 22
+ a[3] = 3
+ a[4][1][1] = 411
+ a[4][2] = 42
+
+ process_array(a, "a", "do_print", 0)
+ }
+
+ function do_print(name, element)
+ {
+ printf "%s = %s\n", name, element
+ }
+
Remember that you must supply a leading `@' in front of an indirect
function call.
@@ -14470,6 +14532,7 @@ programming use.
* Join Function:: A function to join an array into a string.
* Getlocaltime Function:: A function to get formatted times.
* Readfile Function:: A function to read an entire file at once.
+* Shell Quoting:: A function to quote strings for the shell.

File: gawk.info, Node: Strtonum Function, Next: Assert Function, Up: General Functions
@@ -14945,7 +15008,7 @@ the `getlocaltime()' function would have allowed the user to supply an
optional timestamp value to use instead of the current time.

-File: gawk.info, Node: Readfile Function, Prev: Getlocaltime Function, Up: General Functions
+File: gawk.info, Node: Readfile Function, Next: Shell Quoting, Prev: Getlocaltime Function, Up: General Functions
10.2.8 Reading A Whole File At Once
-----------------------------------
@@ -15008,6 +15071,58 @@ test would be `contents == ""'.
also reads an entire file into memory.

+File: gawk.info, Node: Shell Quoting, Prev: Readfile Function, Up: General Functions
+
+10.2.9 Quoting Strings to Pass to The Shell
+-------------------------------------------
+
+Michael Brennan offers the following programming pattern, which he uses
+frequently:
+
+ #! /bin/sh
+
+ awkp='
+ ...
+ '
+
+ INPUT_PROGRAM | awk "$awkp" | /bin/sh
+
+ For example, a program of his named `flac-edit' has this form:
+
+ $ flac-edit -song="Whoope! That's Great" file.flac
+
+ It generates the following output, which is to be piped to the shell
+(`/bin/sh'):
+
+ chmod +w file.flac
+ metaflac --remove-tag=TITLE file.flac
+ LANG=en_US.88591 metaflac --set-tag=TITLE='Whoope! That'"'"'s Great' file.flac
+ chmod -w file.flac
+
+ Note the need for shell quoting. The function `shell_quote()' does
+it. `SINGLE' is the one-character string `"'"' and `QSINGLE' is the
+three-character string `"\"'\""'.
+
+ # shell_quote --- quote an argument for passing to the shell
+
+ function shell_quote(s, # parameter
+ SINGLE, QSINGLE, i, X, n, ret) # locals
+ {
+ if (s == "")
+ return "\"\""
+
+ SINGLE = "\x27" # single quote
+ QSINGLE = "\"\x27\""
+ n = split(s, X, SINGLE)
+
+ ret = SINGLE X[1] SINGLE
+ for (i = 2; i <= n; i++)
+ ret = ret QSINGLE SINGLE X[i] SINGLE
+
+ return ret
+ }
+
+
File: gawk.info, Node: Data File Management, Next: Getopt Function, Prev: General Functions, Up: Library Functions
10.3 Data File Management
@@ -16110,12 +16225,12 @@ value. Here is a main program to demonstrate:
When run, the program produces the following output:
$ gawk -f walk_array.awk
- -| a[4][1][1] = 411
- -| a[4][2] = 42
-| a[1] = 1
-| a[2][1] = 21
-| a[2][2] = 22
-| a[3] = 3
+ -| a[4][1][1] = 411
+ -| a[4][2] = 42

File: gawk.info, Node: Library Functions Summary, Next: Library Exercises, Prev: Walking Arrays, Up: Library Functions
@@ -17620,17 +17735,17 @@ there are more characters in the "from" list than in the "to" list, the
last character of the "to" list is used for the remaining characters in
the "from" list.
- Once upon a time, a user proposed that a transliteration function
-should be added to `gawk'. The following program was written to prove
-that character transliteration could be done with a user-level
-function. This program is not as complete as the system `tr' utility
-but it does most of the job.
+ Once upon a time, a user proposed adding a transliteration function
+to `gawk'. The following program was written to prove that character
+transliteration could be done with a user-level function. This program
+is not as complete as the system `tr' utility but it does most of the
+job.
- The `translate' program demonstrates one of the few weaknesses of
-standard `awk': dealing with individual characters is very painful,
-requiring repeated use of the `substr()', `index()', and `gsub()'
-built-in functions (*note String Functions::).(2) There are two
-functions. The first, `stranslate()', takes three arguments:
+ The `translate' program was written long before `gawk' acquired the
+ability to split each character in a string into separate array
+elements. Thus, it makes repeated use of the `substr()', `index()',
+and `gsub()' built-in functions (*note String Functions::). There are
+two functions. The first, `stranslate()', takes three arguments:
`from'
A list of characters from which to translate.
@@ -17647,10 +17762,10 @@ simple loop goes through `from', one character at a time. For each
character in `from', if the character appears in `target', it is
replaced with the corresponding `to' character.
- The `translate()' function simply calls `stranslate()' using `$0' as
-the target. The main program sets two global variables, `FROM' and
-`TO', from the command line, and then changes `ARGV' so that `awk'
-reads from the standard input.
+ The `translate()' function calls `stranslate()' using `$0' as the
+target. The main program sets two global variables, `FROM' and `TO',
+from the command line, and then changes `ARGV' so that `awk' reads from
+the standard input.
Finally, the processing rule simply calls `translate()' for each
record:
@@ -17727,9 +17842,6 @@ program.
enclosed in square brackets (`[a-z]') and quoted, to prevent the shell
from attempting a file name expansion. This is not a feature.
- (2) This program was also written before `gawk' acquired the ability
-to split each character in a string into separate array elements.
-

File: gawk.info, Node: Labels Program, Next: Word Sorting, Prev: Translate Program, Up: Miscellaneous Programs
@@ -27839,7 +27951,7 @@ than 32 bits.
/name=(as_is,short)
Compile time macros need to be defined before the first VMS-supplied
-header file is included.
+header file is included, as follows:
#if (__CRTL_VER >= 70200000) && !defined (__VAX)
#define _LARGEFILE 1
@@ -27853,6 +27965,12 @@ header file is included.
#endif
#endif
+ If you are writing your own extensions to run on VMS, you must
+supply these definitions yourself. The `config.h' file created when
+building `gawk' on VMS does this for you; if instead you use that file
+or a similar one, then you must remember to include it before any
+VMS-supplied header files.
+

File: gawk.info, Node: VMS Installation Details, Next: VMS Running, Prev: VMS Dynamic Extensions, Up: VMS Installation
@@ -28021,11 +28139,11 @@ B.4 Reporting Problems and Bugs
please report it to the developers; we cannot promise to do anything
but we might well want to fix it.
- Before reporting a bug, please make sure you have actually found a
-real bug. Carefully reread the documentation and see if it really says
-you can do what you're trying to do. If it's not clear whether you
-should be able to do something or not, report that too; it's a bug in
-the documentation!
+ Before reporting a bug, please make sure you have really found a
+genuine bug. Carefully reread the documentation and see if it says you
+can do what you're trying to do. If it's not clear whether you should
+be able to do something or not, report that too; it's a bug in the
+documentation!
Before reporting a bug or trying to fix it yourself, try to isolate
it to the smallest possible `awk' program and input data file that
@@ -28038,7 +28156,8 @@ really in the documentation.
Please include the version number of `gawk' you are using. You can
get this information with the command `gawk --version'.
- Once you have a precise problem, send email to <bug-gawk@gnu.org>.
+ Once you have a precise problem description, send email to
+<bug-gawk@gnu.org>.
The `gawk' maintainers subscribe to this address and thus they will
receive your bug report. Although you can send mail to the maintainers
@@ -31729,7 +31848,7 @@ Index
* Brown, Martin: Contributors. (line 82)
* BSD-based operating systems: Glossary. (line 611)
* bt debugger command (alias for backtrace): Execution Stack. (line 13)
-* Buening, Andreas <1>: Bugs. (line 71)
+* Buening, Andreas <1>: Bugs. (line 72)
* Buening, Andreas <2>: Contributors. (line 92)
* Buening, Andreas: Acknowledgments. (line 60)
* buffering, input/output <1>: Two-way I/O. (line 52)
@@ -31844,7 +31963,7 @@ Index
* common extensions, RS as a regexp: gawk split records. (line 6)
* common extensions, single character fields: Single Character Fields.
(line 6)
-* comp.lang.awk newsgroup: Bugs. (line 38)
+* comp.lang.awk newsgroup: Bugs. (line 39)
* comparison expressions: Typing and Comparison.
(line 9)
* comparison expressions, as patterns: Expression Patterns. (line 14)
@@ -32101,7 +32220,7 @@ Index
* decimal point character, locale specific: Options. (line 270)
* decrement operators: Increment Ops. (line 35)
* default keyword: Switch Statement. (line 6)
-* Deifik, Scott <1>: Bugs. (line 71)
+* Deifik, Scott <1>: Bugs. (line 72)
* Deifik, Scott <2>: Contributors. (line 53)
* Deifik, Scott: Acknowledgments. (line 60)
* delete ARRAY: Delete. (line 39)
@@ -33033,7 +33152,7 @@ Index
* mail-list file: Sample Data Files. (line 6)
* mailing labels, printing: Labels Program. (line 6)
* mailing list, GNITS: Acknowledgments. (line 52)
-* Malmberg, John <1>: Bugs. (line 71)
+* Malmberg, John <1>: Bugs. (line 72)
* Malmberg, John: Acknowledgments. (line 60)
* Malmberg, John E.: Contributors. (line 137)
* mark parity: Ordinal Functions. (line 45)
@@ -33272,7 +33391,7 @@ Index
(line 6)
* pipe, input: Getline/Pipe. (line 9)
* pipe, output: Redirection. (line 57)
-* Pitts, Dave <1>: Bugs. (line 71)
+* Pitts, Dave <1>: Bugs. (line 72)
* Pitts, Dave: Acknowledgments. (line 60)
* Plauger, P.J.: Library Functions. (line 12)
* plug-in: Extension Intro. (line 6)
@@ -33478,7 +33597,7 @@ Index
* range expressions (regexps): Bracket Expressions. (line 6)
* range patterns: Ranges. (line 6)
* range patterns, line continuation and: Ranges. (line 65)
-* Rankin, Pat <1>: Bugs. (line 71)
+* Rankin, Pat <1>: Bugs. (line 72)
* Rankin, Pat <2>: Contributors. (line 37)
* Rankin, Pat <3>: Assignment Ops. (line 100)
* Rankin, Pat: Acknowledgments. (line 60)
@@ -33587,7 +33706,7 @@ Index
* RLENGTH variable: Auto-set. (line 259)
* RLENGTH variable, match() function and: String Functions. (line 227)
* Robbins, Arnold <1>: Future Extensions. (line 6)
-* Robbins, Arnold <2>: Bugs. (line 71)
+* Robbins, Arnold <2>: Bugs. (line 72)
* Robbins, Arnold <3>: Contributors. (line 144)
* Robbins, Arnold <4>: General Data Types. (line 6)
* Robbins, Arnold <5>: Alarm Program. (line 6)
@@ -34118,7 +34237,7 @@ Index
* xor: Bitwise Functions. (line 56)
* XOR bitwise operation: Bitwise Functions. (line 6)
* Yawitz, Efraim: Contributors. (line 131)
-* Zaretskii, Eli <1>: Bugs. (line 71)
+* Zaretskii, Eli <1>: Bugs. (line 72)
* Zaretskii, Eli <2>: Contributors. (line 55)
* Zaretskii, Eli: Acknowledgments. (line 60)
* zerofile.awk program: Empty Files. (line 21)
@@ -34151,557 +34270,557 @@ Index

Tag Table:
Node: Top1204
-Node: Foreword41980
-Node: Preface46327
-Ref: Preface-Footnote-149222
-Ref: Preface-Footnote-249329
-Ref: Preface-Footnote-349562
-Node: History49704
-Node: Names52078
-Ref: Names-Footnote-153172
-Node: This Manual53318
-Ref: This Manual-Footnote-159155
-Node: Conventions59255
-Node: Manual History61600
-Ref: Manual History-Footnote-164676
-Ref: Manual History-Footnote-264717
-Node: How To Contribute64791
-Node: Acknowledgments66030
-Node: Getting Started70778
-Node: Running gawk73212
-Node: One-shot74402
-Node: Read Terminal75627
-Node: Long77654
-Node: Executable Scripts79170
-Ref: Executable Scripts-Footnote-181959
-Node: Comments82061
-Node: Quoting84534
-Node: DOS Quoting90044
-Node: Sample Data Files90719
-Node: Very Simple93312
-Node: Two Rules98203
-Node: More Complex100089
-Node: Statements/Lines102951
-Ref: Statements/Lines-Footnote-1107407
-Node: Other Features107672
-Node: When108603
-Ref: When-Footnote-1110359
-Node: Intro Summary110424
-Node: Invoking Gawk111307
-Node: Command Line112822
-Node: Options113613
-Ref: Options-Footnote-1129379
-Node: Other Arguments129404
-Node: Naming Standard Input132365
-Node: Environment Variables133458
-Node: AWKPATH Variable134016
-Ref: AWKPATH Variable-Footnote-1136868
-Ref: AWKPATH Variable-Footnote-2136913
-Node: AWKLIBPATH Variable137173
-Node: Other Environment Variables137932
-Node: Exit Status141405
-Node: Include Files142080
-Node: Loading Shared Libraries145658
-Node: Obsolete147085
-Node: Undocumented147782
-Node: Invoking Summary148049
-Node: Regexp149715
-Node: Regexp Usage151174
-Node: Escape Sequences153207
-Node: Regexp Operators159307
-Ref: Regexp Operators-Footnote-1166742
-Ref: Regexp Operators-Footnote-2166889
-Node: Bracket Expressions166987
-Ref: table-char-classes169004
-Node: Leftmost Longest171944
-Node: Computed Regexps173246
-Node: GNU Regexp Operators176643
-Node: Case-sensitivity180349
-Ref: Case-sensitivity-Footnote-1183239
-Ref: Case-sensitivity-Footnote-2183474
-Node: Regexp Summary183582
-Node: Reading Files185051
-Node: Records187145
-Node: awk split records187877
-Node: gawk split records192791
-Ref: gawk split records-Footnote-1197330
-Node: Fields197367
-Ref: Fields-Footnote-1200165
-Node: Nonconstant Fields200251
-Ref: Nonconstant Fields-Footnote-1202481
-Node: Changing Fields202683
-Node: Field Separators208615
-Node: Default Field Splitting211319
-Node: Regexp Field Splitting212436
-Node: Single Character Fields215786
-Node: Command Line Field Separator216845
-Node: Full Line Fields220057
-Ref: Full Line Fields-Footnote-1220565
-Node: Field Splitting Summary220611
-Ref: Field Splitting Summary-Footnote-1223742
-Node: Constant Size223843
-Node: Splitting By Content228449
-Ref: Splitting By Content-Footnote-1232522
-Node: Multiple Line232562
-Ref: Multiple Line-Footnote-1238451
-Node: Getline238630
-Node: Plain Getline240841
-Node: Getline/Variable243481
-Node: Getline/File244628
-Node: Getline/Variable/File246012
-Ref: Getline/Variable/File-Footnote-1247613
-Node: Getline/Pipe247700
-Node: Getline/Variable/Pipe250383
-Node: Getline/Coprocess251514
-Node: Getline/Variable/Coprocess252766
-Node: Getline Notes253505
-Node: Getline Summary256297
-Ref: table-getline-variants256709
-Node: Read Timeout257538
-Ref: Read Timeout-Footnote-1261352
-Node: Command-line directories261410
-Node: Input Summary262314
-Node: Input Exercises265566
-Node: Printing266294
-Node: Print268071
-Node: Print Examples269528
-Node: Output Separators272307
-Node: OFMT274325
-Node: Printf275679
-Node: Basic Printf276464
-Node: Control Letters278035
-Node: Format Modifiers282019
-Node: Printf Examples288026
-Node: Redirection290508
-Node: Special FD297239
-Ref: Special FD-Footnote-1300396
-Node: Special Files300470
-Node: Other Inherited Files301086
-Node: Special Network302086
-Node: Special Caveats302947
-Node: Close Files And Pipes303898
-Ref: Close Files And Pipes-Footnote-1311077
-Ref: Close Files And Pipes-Footnote-2311225
-Node: Output Summary311375
-Node: Output Exercises312371
-Node: Expressions313051
-Node: Values314236
-Node: Constants314912
-Node: Scalar Constants315592
-Ref: Scalar Constants-Footnote-1316451
-Node: Nondecimal-numbers316701
-Node: Regexp Constants319701
-Node: Using Constant Regexps320226
-Node: Variables323364
-Node: Using Variables324019
-Node: Assignment Options325929
-Node: Conversion327804
-Node: Strings And Numbers328328
-Ref: Strings And Numbers-Footnote-1331392
-Node: Locale influences conversions331501
-Ref: table-locale-affects334216
-Node: All Operators334804
-Node: Arithmetic Ops335434
-Node: Concatenation337939
-Ref: Concatenation-Footnote-1340758
-Node: Assignment Ops340864
-Ref: table-assign-ops345847
-Node: Increment Ops347125
-Node: Truth Values and Conditions350563
-Node: Truth Values351646
-Node: Typing and Comparison352695
-Node: Variable Typing353488
-Node: Comparison Operators357140
-Ref: table-relational-ops357550
-Node: POSIX String Comparison361065
-Ref: POSIX String Comparison-Footnote-1362137
-Node: Boolean Ops362275
-Ref: Boolean Ops-Footnote-1366754
-Node: Conditional Exp366845
-Node: Function Calls368572
-Node: Precedence372452
-Node: Locales376120
-Node: Expressions Summary377751
-Node: Patterns and Actions380325
-Node: Pattern Overview381445
-Node: Regexp Patterns383124
-Node: Expression Patterns383667
-Node: Ranges387447
-Node: BEGIN/END390553
-Node: Using BEGIN/END391315
-Ref: Using BEGIN/END-Footnote-1394052
-Node: I/O And BEGIN/END394158
-Node: BEGINFILE/ENDFILE396472
-Node: Empty399373
-Node: Using Shell Variables399690
-Node: Action Overview401966
-Node: Statements404293
-Node: If Statement406141
-Node: While Statement407639
-Node: Do Statement409667
-Node: For Statement410809
-Node: Switch Statement413964
-Node: Break Statement416352
-Node: Continue Statement418393
-Node: Next Statement420218
-Node: Nextfile Statement422598
-Node: Exit Statement425228
-Node: Built-in Variables427631
-Node: User-modified428764
-Ref: User-modified-Footnote-1436444
-Node: Auto-set436506
-Ref: Auto-set-Footnote-1449700
-Ref: Auto-set-Footnote-2449905
-Node: ARGC and ARGV449961
-Node: Pattern Action Summary454165
-Node: Arrays456592
-Node: Array Basics457921
-Node: Array Intro458765
-Ref: figure-array-elements460738
-Ref: Array Intro-Footnote-1463262
-Node: Reference to Elements463390
-Node: Assigning Elements465840
-Node: Array Example466331
-Node: Scanning an Array468089
-Node: Controlling Scanning471105
-Ref: Controlling Scanning-Footnote-1476294
-Node: Numeric Array Subscripts476610
-Node: Uninitialized Subscripts478795
-Node: Delete480412
-Ref: Delete-Footnote-1483156
-Node: Multidimensional483213
-Node: Multiscanning486308
-Node: Arrays of Arrays487897
-Node: Arrays Summary492658
-Node: Functions494763
-Node: Built-in495636
-Node: Calling Built-in496714
-Node: Numeric Functions498702
-Ref: Numeric Functions-Footnote-1503526
-Ref: Numeric Functions-Footnote-2503883
-Ref: Numeric Functions-Footnote-3503931
-Node: String Functions504200
-Ref: String Functions-Footnote-1527664
-Ref: String Functions-Footnote-2527793
-Ref: String Functions-Footnote-3528041
-Node: Gory Details528128
-Ref: table-sub-escapes529909
-Ref: table-sub-proposed531429
-Ref: table-posix-sub532793
-Ref: table-gensub-escapes534333
-Ref: Gory Details-Footnote-1535165
-Node: I/O Functions535316
-Ref: I/O Functions-Footnote-1542417
-Node: Time Functions542564
-Ref: Time Functions-Footnote-1553033
-Ref: Time Functions-Footnote-2553101
-Ref: Time Functions-Footnote-3553259
-Ref: Time Functions-Footnote-4553370
-Ref: Time Functions-Footnote-5553482
-Ref: Time Functions-Footnote-6553709
-Node: Bitwise Functions553975
-Ref: table-bitwise-ops554537
-Ref: Bitwise Functions-Footnote-1558845
-Node: Type Functions559014
-Node: I18N Functions560163
-Node: User-defined561808
-Node: Definition Syntax562612
-Ref: Definition Syntax-Footnote-1568018
-Node: Function Example568087
-Ref: Function Example-Footnote-1571004
-Node: Function Caveats571026
-Node: Calling A Function571544
-Node: Variable Scope572499
-Node: Pass By Value/Reference575487
-Node: Return Statement578997
-Node: Dynamic Typing581981
-Node: Indirect Calls582910
-Ref: Indirect Calls-Footnote-1592631
-Node: Functions Summary592759
-Node: Library Functions595458
-Ref: Library Functions-Footnote-1599076
-Ref: Library Functions-Footnote-2599219
-Node: Library Names599390
-Ref: Library Names-Footnote-1602850
-Ref: Library Names-Footnote-2603070
-Node: General Functions603156
-Node: Strtonum Function604184
-Node: Assert Function607204
-Node: Round Function610528
-Node: Cliff Random Function612069
-Node: Ordinal Functions613085
-Ref: Ordinal Functions-Footnote-1616150
-Ref: Ordinal Functions-Footnote-2616402
-Node: Join Function616613
-Ref: Join Function-Footnote-1618384
-Node: Getlocaltime Function618584
-Node: Readfile Function622325
-Node: Data File Management624273
-Node: Filetrans Function624905
-Node: Rewind Function628964
-Node: File Checking630349
-Ref: File Checking-Footnote-1631677
-Node: Empty Files631878
-Node: Ignoring Assigns633857
-Node: Getopt Function635408
-Ref: Getopt Function-Footnote-1646868
-Node: Passwd Functions647071
-Ref: Passwd Functions-Footnote-1655922
-Node: Group Functions656010
-Ref: Group Functions-Footnote-1663913
-Node: Walking Arrays664126
-Node: Library Functions Summary665729
-Node: Library Exercises667130
-Node: Sample Programs668410
-Node: Running Examples669180
-Node: Clones669908
-Node: Cut Program671132
-Node: Egrep Program680862
-Ref: Egrep Program-Footnote-1688366
-Node: Id Program688476
-Node: Split Program692120
-Ref: Split Program-Footnote-1695566
-Node: Tee Program695694
-Node: Uniq Program698481
-Node: Wc Program705902
-Ref: Wc Program-Footnote-1710150
-Node: Miscellaneous Programs710242
-Node: Dupword Program711455
-Node: Alarm Program713486
-Node: Translate Program718290
-Ref: Translate Program-Footnote-1722863
-Ref: Translate Program-Footnote-2723133
-Node: Labels Program723272
-Ref: Labels Program-Footnote-1726621
-Node: Word Sorting726705
-Node: History Sorting730775
-Node: Extract Program732611
-Node: Simple Sed740143
-Node: Igawk Program743205
-Ref: Igawk Program-Footnote-1757531
-Ref: Igawk Program-Footnote-2757732
-Ref: Igawk Program-Footnote-3757854
-Node: Anagram Program757969
-Node: Signature Program761031
-Node: Programs Summary762278
-Node: Programs Exercises763471
-Ref: Programs Exercises-Footnote-1767602
-Node: Advanced Features767693
-Node: Nondecimal Data769641
-Node: Array Sorting771231
-Node: Controlling Array Traversal771928
-Ref: Controlling Array Traversal-Footnote-1780259
-Node: Array Sorting Functions780377
-Ref: Array Sorting Functions-Footnote-1784269
-Node: Two-way I/O784463
-Ref: Two-way I/O-Footnote-1789407
-Ref: Two-way I/O-Footnote-2789593
-Node: TCP/IP Networking789675
-Node: Profiling792552
-Node: Advanced Features Summary800105
-Node: Internationalization802038
-Node: I18N and L10N803518
-Node: Explaining gettext804204
-Ref: Explaining gettext-Footnote-1809233
-Ref: Explaining gettext-Footnote-2809417
-Node: Programmer i18n809582
-Ref: Programmer i18n-Footnote-1814448
-Node: Translator i18n814497
-Node: String Extraction815291
-Ref: String Extraction-Footnote-1816422
-Node: Printf Ordering816508
-Ref: Printf Ordering-Footnote-1819294
-Node: I18N Portability819358
-Ref: I18N Portability-Footnote-1821807
-Node: I18N Example821870
-Ref: I18N Example-Footnote-1824670
-Node: Gawk I18N824742
-Node: I18N Summary825380
-Node: Debugger826719
-Node: Debugging827741
-Node: Debugging Concepts828182
-Node: Debugging Terms830039
-Node: Awk Debugging832614
-Node: Sample Debugging Session833506
-Node: Debugger Invocation834026
-Node: Finding The Bug835410
-Node: List of Debugger Commands841885
-Node: Breakpoint Control843217
-Node: Debugger Execution Control846909
-Node: Viewing And Changing Data850273
-Node: Execution Stack853638
-Node: Debugger Info855276
-Node: Miscellaneous Debugger Commands859293
-Node: Readline Support864485
-Node: Limitations865377
-Node: Debugging Summary867474
-Node: Arbitrary Precision Arithmetic868642
-Node: Computer Arithmetic870058
-Ref: table-numeric-ranges873659
-Ref: Computer Arithmetic-Footnote-1874518
-Node: Math Definitions874575
-Ref: table-ieee-formats877862
-Ref: Math Definitions-Footnote-1878466
-Node: MPFR features878571
-Node: FP Math Caution880240
-Ref: FP Math Caution-Footnote-1881290
-Node: Inexactness of computations881659
-Node: Inexact representation882607
-Node: Comparing FP Values883962
-Node: Errors accumulate885035
-Node: Getting Accuracy886468
-Node: Try To Round889127
-Node: Setting precision890026
-Ref: table-predefined-precision-strings890710
-Node: Setting the rounding mode892504
-Ref: table-gawk-rounding-modes892868
-Ref: Setting the rounding mode-Footnote-1896322
-Node: Arbitrary Precision Integers896501
-Ref: Arbitrary Precision Integers-Footnote-1900284
-Node: POSIX Floating Point Problems900433
-Ref: POSIX Floating Point Problems-Footnote-1904309
-Node: Floating point summary904347
-Node: Dynamic Extensions906539
-Node: Extension Intro908091
-Node: Plugin License909357
-Node: Extension Mechanism Outline910154
-Ref: figure-load-extension910582
-Ref: figure-register-new-function912062
-Ref: figure-call-new-function913066
-Node: Extension API Description915052
-Node: Extension API Functions Introduction916502
-Node: General Data Types921338
-Ref: General Data Types-Footnote-1927025
-Node: Memory Allocation Functions927324
-Ref: Memory Allocation Functions-Footnote-1930154
-Node: Constructor Functions930250
-Node: Registration Functions931984
-Node: Extension Functions932669
-Node: Exit Callback Functions934965
-Node: Extension Version String936213
-Node: Input Parsers936863
-Node: Output Wrappers946678
-Node: Two-way processors951194
-Node: Printing Messages953398
-Ref: Printing Messages-Footnote-1954475
-Node: Updating `ERRNO'954627
-Node: Requesting Values955367
-Ref: table-value-types-returned956095
-Node: Accessing Parameters957053
-Node: Symbol Table Access958284
-Node: Symbol table by name958798
-Node: Symbol table by cookie960778
-Ref: Symbol table by cookie-Footnote-1964917
-Node: Cached values964980
-Ref: Cached values-Footnote-1968484
-Node: Array Manipulation968575
-Ref: Array Manipulation-Footnote-1969673
-Node: Array Data Types969712
-Ref: Array Data Types-Footnote-1972369
-Node: Array Functions972461
-Node: Flattening Arrays976315
-Node: Creating Arrays983202
-Node: Extension API Variables987969
-Node: Extension Versioning988605
-Node: Extension API Informational Variables990506
-Node: Extension API Boilerplate991594
-Node: Finding Extensions995410
-Node: Extension Example995970
-Node: Internal File Description996742
-Node: Internal File Ops1000809
-Ref: Internal File Ops-Footnote-11012467
-Node: Using Internal File Ops1012607
-Ref: Using Internal File Ops-Footnote-11014990
-Node: Extension Samples1015263
-Node: Extension Sample File Functions1016787
-Node: Extension Sample Fnmatch1024389
-Node: Extension Sample Fork1025871
-Node: Extension Sample Inplace1027084
-Node: Extension Sample Ord1028759
-Node: Extension Sample Readdir1029595
-Ref: table-readdir-file-types1030451
-Node: Extension Sample Revout1031262
-Node: Extension Sample Rev2way1031853
-Node: Extension Sample Read write array1032594
-Node: Extension Sample Readfile1034533
-Node: Extension Sample Time1035628
-Node: Extension Sample API Tests1036977
-Node: gawkextlib1037468
-Node: Extension summary1040118
-Node: Extension Exercises1043800
-Node: Language History1044522
-Node: V7/SVR3.11046179
-Node: SVR41048360
-Node: POSIX1049805
-Node: BTL1051194
-Node: POSIX/GNU1051928
-Node: Feature History1057557
-Node: Common Extensions1070648
-Node: Ranges and Locales1071972
-Ref: Ranges and Locales-Footnote-11076611
-Ref: Ranges and Locales-Footnote-21076638
-Ref: Ranges and Locales-Footnote-31076872
-Node: Contributors1077093
-Node: History summary1082633
-Node: Installation1084002
-Node: Gawk Distribution1084958
-Node: Getting1085442
-Node: Extracting1086266
-Node: Distribution contents1087908
-Node: Unix Installation1093678
-Node: Quick Installation1094295
-Node: Additional Configuration Options1096726
-Node: Configuration Philosophy1098466
-Node: Non-Unix Installation1100817
-Node: PC Installation1101275
-Node: PC Binary Installation1102601
-Node: PC Compiling1104449
-Ref: PC Compiling-Footnote-11107470
-Node: PC Testing1107575
-Node: PC Using1108751
-Node: Cygwin1112866
-Node: MSYS1113689
-Node: VMS Installation1114187
-Node: VMS Compilation1114979
-Ref: VMS Compilation-Footnote-11116201
-Node: VMS Dynamic Extensions1116259
-Node: VMS Installation Details1117632
-Node: VMS Running1119884
-Node: VMS GNV1122725
-Node: VMS Old Gawk1123454
-Node: Bugs1123924
-Node: Other Versions1127888
-Node: Installation summary1134101
-Node: Notes1135157
-Node: Compatibility Mode1136022
-Node: Additions1136804
-Node: Accessing The Source1137729
-Node: Adding Code1139165
-Node: New Ports1145337
-Node: Derived Files1149818
-Ref: Derived Files-Footnote-11155293
-Ref: Derived Files-Footnote-21155327
-Ref: Derived Files-Footnote-31155923
-Node: Future Extensions1156037
-Node: Implementation Limitations1156643
-Node: Extension Design1157891
-Node: Old Extension Problems1159045
-Ref: Old Extension Problems-Footnote-11160562
-Node: Extension New Mechanism Goals1160619
-Ref: Extension New Mechanism Goals-Footnote-11163979
-Node: Extension Other Design Decisions1164168
-Node: Extension Future Growth1166276
-Node: Old Extension Mechanism1167112
-Node: Notes summary1168874
-Node: Basic Concepts1170060
-Node: Basic High Level1170741
-Ref: figure-general-flow1171013
-Ref: figure-process-flow1171612
-Ref: Basic High Level-Footnote-11174841
-Node: Basic Data Typing1175026
-Node: Glossary1178354
-Node: Copying1203512
-Node: GNU Free Documentation License1241068
-Node: Index1266204
+Node: Foreword42103
+Node: Preface46450
+Ref: Preface-Footnote-149345
+Ref: Preface-Footnote-249452
+Ref: Preface-Footnote-349685
+Node: History49827
+Node: Names52201
+Ref: Names-Footnote-153295
+Node: This Manual53441
+Ref: This Manual-Footnote-159278
+Node: Conventions59378
+Node: Manual History61723
+Ref: Manual History-Footnote-164799
+Ref: Manual History-Footnote-264840
+Node: How To Contribute64914
+Node: Acknowledgments66153
+Node: Getting Started70901
+Node: Running gawk73335
+Node: One-shot74525
+Node: Read Terminal75750
+Node: Long77777
+Node: Executable Scripts79293
+Ref: Executable Scripts-Footnote-182082
+Node: Comments82184
+Node: Quoting84657
+Node: DOS Quoting90167
+Node: Sample Data Files90842
+Node: Very Simple93435
+Node: Two Rules98326
+Node: More Complex100212
+Node: Statements/Lines103074
+Ref: Statements/Lines-Footnote-1107530
+Node: Other Features107795
+Node: When108726
+Ref: When-Footnote-1110482
+Node: Intro Summary110547
+Node: Invoking Gawk111430
+Node: Command Line112945
+Node: Options113736
+Ref: Options-Footnote-1129502
+Node: Other Arguments129527
+Node: Naming Standard Input132488
+Node: Environment Variables133581
+Node: AWKPATH Variable134139
+Ref: AWKPATH Variable-Footnote-1136991
+Ref: AWKPATH Variable-Footnote-2137036
+Node: AWKLIBPATH Variable137296
+Node: Other Environment Variables138055
+Node: Exit Status141528
+Node: Include Files142203
+Node: Loading Shared Libraries145781
+Node: Obsolete147208
+Node: Undocumented147905
+Node: Invoking Summary148172
+Node: Regexp149838
+Node: Regexp Usage151297
+Node: Escape Sequences153330
+Node: Regexp Operators159430
+Ref: Regexp Operators-Footnote-1166865
+Ref: Regexp Operators-Footnote-2167012
+Node: Bracket Expressions167110
+Ref: table-char-classes169127
+Node: Leftmost Longest172067
+Node: Computed Regexps173369
+Node: GNU Regexp Operators176766
+Node: Case-sensitivity180472
+Ref: Case-sensitivity-Footnote-1183362
+Ref: Case-sensitivity-Footnote-2183597
+Node: Regexp Summary183705
+Node: Reading Files185174
+Node: Records187268
+Node: awk split records188000
+Node: gawk split records192914
+Ref: gawk split records-Footnote-1197453
+Node: Fields197490
+Ref: Fields-Footnote-1200288
+Node: Nonconstant Fields200374
+Ref: Nonconstant Fields-Footnote-1202604
+Node: Changing Fields202806
+Node: Field Separators208738
+Node: Default Field Splitting211442
+Node: Regexp Field Splitting212559
+Node: Single Character Fields215909
+Node: Command Line Field Separator216968
+Node: Full Line Fields220180
+Ref: Full Line Fields-Footnote-1220688
+Node: Field Splitting Summary220734
+Ref: Field Splitting Summary-Footnote-1223865
+Node: Constant Size223966
+Node: Splitting By Content228572
+Ref: Splitting By Content-Footnote-1232645
+Node: Multiple Line232685
+Ref: Multiple Line-Footnote-1238574
+Node: Getline238753
+Node: Plain Getline240964
+Node: Getline/Variable243604
+Node: Getline/File244751
+Node: Getline/Variable/File246135
+Ref: Getline/Variable/File-Footnote-1247736
+Node: Getline/Pipe247823
+Node: Getline/Variable/Pipe250506
+Node: Getline/Coprocess251637
+Node: Getline/Variable/Coprocess252889
+Node: Getline Notes253628
+Node: Getline Summary256420
+Ref: table-getline-variants256832
+Node: Read Timeout257661
+Ref: Read Timeout-Footnote-1261475
+Node: Command-line directories261533
+Node: Input Summary262437
+Node: Input Exercises265689
+Node: Printing266417
+Node: Print268194
+Node: Print Examples269651
+Node: Output Separators272430
+Node: OFMT274448
+Node: Printf275802
+Node: Basic Printf276587
+Node: Control Letters278158
+Node: Format Modifiers282142
+Node: Printf Examples288149
+Node: Redirection290631
+Node: Special FD297470
+Ref: Special FD-Footnote-1300627
+Node: Special Files300701
+Node: Other Inherited Files301317
+Node: Special Network302317
+Node: Special Caveats303178
+Node: Close Files And Pipes304129
+Ref: Close Files And Pipes-Footnote-1311308
+Ref: Close Files And Pipes-Footnote-2311456
+Node: Output Summary311606
+Node: Output Exercises312602
+Node: Expressions313282
+Node: Values314467
+Node: Constants315143
+Node: Scalar Constants315823
+Ref: Scalar Constants-Footnote-1316682
+Node: Nondecimal-numbers316932
+Node: Regexp Constants319932
+Node: Using Constant Regexps320457
+Node: Variables323595
+Node: Using Variables324250
+Node: Assignment Options326160
+Node: Conversion328035
+Node: Strings And Numbers328559
+Ref: Strings And Numbers-Footnote-1331623
+Node: Locale influences conversions331732
+Ref: table-locale-affects334447
+Node: All Operators335035
+Node: Arithmetic Ops335665
+Node: Concatenation338170
+Ref: Concatenation-Footnote-1340989
+Node: Assignment Ops341095
+Ref: table-assign-ops346078
+Node: Increment Ops347356
+Node: Truth Values and Conditions350794
+Node: Truth Values351877
+Node: Typing and Comparison352926
+Node: Variable Typing353719
+Node: Comparison Operators357371
+Ref: table-relational-ops357781
+Node: POSIX String Comparison361296
+Ref: POSIX String Comparison-Footnote-1362368
+Node: Boolean Ops362506
+Ref: Boolean Ops-Footnote-1366985
+Node: Conditional Exp367076
+Node: Function Calls368803
+Node: Precedence372683
+Node: Locales376351
+Node: Expressions Summary377982
+Node: Patterns and Actions380556
+Node: Pattern Overview381676
+Node: Regexp Patterns383355
+Node: Expression Patterns383898
+Node: Ranges387678
+Node: BEGIN/END390784
+Node: Using BEGIN/END391546
+Ref: Using BEGIN/END-Footnote-1394283
+Node: I/O And BEGIN/END394389
+Node: BEGINFILE/ENDFILE396703
+Node: Empty399604
+Node: Using Shell Variables399921
+Node: Action Overview402197
+Node: Statements404524
+Node: If Statement406372
+Node: While Statement407870
+Node: Do Statement409898
+Node: For Statement411040
+Node: Switch Statement414195
+Node: Break Statement416583
+Node: Continue Statement418624
+Node: Next Statement420449
+Node: Nextfile Statement422829
+Node: Exit Statement425459
+Node: Built-in Variables427862
+Node: User-modified428995
+Ref: User-modified-Footnote-1436675
+Node: Auto-set436737
+Ref: Auto-set-Footnote-1449931
+Ref: Auto-set-Footnote-2450136
+Node: ARGC and ARGV450192
+Node: Pattern Action Summary454396
+Node: Arrays456823
+Node: Array Basics458152
+Node: Array Intro458996
+Ref: figure-array-elements460969
+Ref: Array Intro-Footnote-1463493
+Node: Reference to Elements463621
+Node: Assigning Elements466071
+Node: Array Example466562
+Node: Scanning an Array468320
+Node: Controlling Scanning471336
+Ref: Controlling Scanning-Footnote-1476525
+Node: Numeric Array Subscripts476841
+Node: Uninitialized Subscripts479026
+Node: Delete480643
+Ref: Delete-Footnote-1483387
+Node: Multidimensional483444
+Node: Multiscanning486539
+Node: Arrays of Arrays488128
+Node: Arrays Summary492889
+Node: Functions494994
+Node: Built-in495867
+Node: Calling Built-in496945
+Node: Numeric Functions498933
+Ref: Numeric Functions-Footnote-1503757
+Ref: Numeric Functions-Footnote-2504114
+Ref: Numeric Functions-Footnote-3504162
+Node: String Functions504431
+Ref: String Functions-Footnote-1527895
+Ref: String Functions-Footnote-2528024
+Ref: String Functions-Footnote-3528272
+Node: Gory Details528359
+Ref: table-sub-escapes530140
+Ref: table-sub-proposed531660
+Ref: table-posix-sub533024
+Ref: table-gensub-escapes534564
+Ref: Gory Details-Footnote-1535396
+Node: I/O Functions535547
+Ref: I/O Functions-Footnote-1542648
+Node: Time Functions542795
+Ref: Time Functions-Footnote-1553264
+Ref: Time Functions-Footnote-2553332
+Ref: Time Functions-Footnote-3553490
+Ref: Time Functions-Footnote-4553601
+Ref: Time Functions-Footnote-5553713
+Ref: Time Functions-Footnote-6553940
+Node: Bitwise Functions554206
+Ref: table-bitwise-ops554768
+Ref: Bitwise Functions-Footnote-1559076
+Node: Type Functions559245
+Node: I18N Functions560394
+Node: User-defined562039
+Node: Definition Syntax562843
+Ref: Definition Syntax-Footnote-1568249
+Node: Function Example568318
+Ref: Function Example-Footnote-1571235
+Node: Function Caveats571257
+Node: Calling A Function571775
+Node: Variable Scope572730
+Node: Pass By Value/Reference575718
+Node: Return Statement579228
+Node: Dynamic Typing582212
+Node: Indirect Calls583141
+Ref: Indirect Calls-Footnote-1594445
+Node: Functions Summary594573
+Node: Library Functions597272
+Ref: Library Functions-Footnote-1600890
+Ref: Library Functions-Footnote-2601033
+Node: Library Names601204
+Ref: Library Names-Footnote-1604664
+Ref: Library Names-Footnote-2604884
+Node: General Functions604970
+Node: Strtonum Function606073
+Node: Assert Function609093
+Node: Round Function612417
+Node: Cliff Random Function613958
+Node: Ordinal Functions614974
+Ref: Ordinal Functions-Footnote-1618039
+Ref: Ordinal Functions-Footnote-2618291
+Node: Join Function618502
+Ref: Join Function-Footnote-1620273
+Node: Getlocaltime Function620473
+Node: Readfile Function624214
+Node: Shell Quoting626184
+Node: Data File Management627585
+Node: Filetrans Function628217
+Node: Rewind Function632276
+Node: File Checking633661
+Ref: File Checking-Footnote-1634989
+Node: Empty Files635190
+Node: Ignoring Assigns637169
+Node: Getopt Function638720
+Ref: Getopt Function-Footnote-1650180
+Node: Passwd Functions650383
+Ref: Passwd Functions-Footnote-1659234
+Node: Group Functions659322
+Ref: Group Functions-Footnote-1667225
+Node: Walking Arrays667438
+Node: Library Functions Summary669041
+Node: Library Exercises670442
+Node: Sample Programs671722
+Node: Running Examples672492
+Node: Clones673220
+Node: Cut Program674444
+Node: Egrep Program684174
+Ref: Egrep Program-Footnote-1691678
+Node: Id Program691788
+Node: Split Program695432
+Ref: Split Program-Footnote-1698878
+Node: Tee Program699006
+Node: Uniq Program701793
+Node: Wc Program709214
+Ref: Wc Program-Footnote-1713462
+Node: Miscellaneous Programs713554
+Node: Dupword Program714767
+Node: Alarm Program716798
+Node: Translate Program721602
+Ref: Translate Program-Footnote-1726166
+Node: Labels Program726436
+Ref: Labels Program-Footnote-1729785
+Node: Word Sorting729869
+Node: History Sorting733939
+Node: Extract Program735775
+Node: Simple Sed743307
+Node: Igawk Program746369
+Ref: Igawk Program-Footnote-1760695
+Ref: Igawk Program-Footnote-2760896
+Ref: Igawk Program-Footnote-3761018
+Node: Anagram Program761133
+Node: Signature Program764195
+Node: Programs Summary765442
+Node: Programs Exercises766635
+Ref: Programs Exercises-Footnote-1770766
+Node: Advanced Features770857
+Node: Nondecimal Data772805
+Node: Array Sorting774395
+Node: Controlling Array Traversal775092
+Ref: Controlling Array Traversal-Footnote-1783423
+Node: Array Sorting Functions783541
+Ref: Array Sorting Functions-Footnote-1787433
+Node: Two-way I/O787627
+Ref: Two-way I/O-Footnote-1792571
+Ref: Two-way I/O-Footnote-2792757
+Node: TCP/IP Networking792839
+Node: Profiling795716
+Node: Advanced Features Summary803269
+Node: Internationalization805202
+Node: I18N and L10N806682
+Node: Explaining gettext807368
+Ref: Explaining gettext-Footnote-1812397
+Ref: Explaining gettext-Footnote-2812581
+Node: Programmer i18n812746
+Ref: Programmer i18n-Footnote-1817612
+Node: Translator i18n817661
+Node: String Extraction818455
+Ref: String Extraction-Footnote-1819586
+Node: Printf Ordering819672
+Ref: Printf Ordering-Footnote-1822458
+Node: I18N Portability822522
+Ref: I18N Portability-Footnote-1824971
+Node: I18N Example825034
+Ref: I18N Example-Footnote-1827834
+Node: Gawk I18N827906
+Node: I18N Summary828544
+Node: Debugger829883
+Node: Debugging830905
+Node: Debugging Concepts831346
+Node: Debugging Terms833203
+Node: Awk Debugging835778
+Node: Sample Debugging Session836670
+Node: Debugger Invocation837190
+Node: Finding The Bug838574
+Node: List of Debugger Commands845049
+Node: Breakpoint Control846381
+Node: Debugger Execution Control850073
+Node: Viewing And Changing Data853437
+Node: Execution Stack856802
+Node: Debugger Info858440
+Node: Miscellaneous Debugger Commands862457
+Node: Readline Support867649
+Node: Limitations868541
+Node: Debugging Summary870638
+Node: Arbitrary Precision Arithmetic871806
+Node: Computer Arithmetic873222
+Ref: table-numeric-ranges876823
+Ref: Computer Arithmetic-Footnote-1877682
+Node: Math Definitions877739
+Ref: table-ieee-formats881026
+Ref: Math Definitions-Footnote-1881630
+Node: MPFR features881735
+Node: FP Math Caution883404
+Ref: FP Math Caution-Footnote-1884454
+Node: Inexactness of computations884823
+Node: Inexact representation885771
+Node: Comparing FP Values887126
+Node: Errors accumulate888199
+Node: Getting Accuracy889632
+Node: Try To Round892291
+Node: Setting precision893190
+Ref: table-predefined-precision-strings893874
+Node: Setting the rounding mode895668
+Ref: table-gawk-rounding-modes896032
+Ref: Setting the rounding mode-Footnote-1899486
+Node: Arbitrary Precision Integers899665
+Ref: Arbitrary Precision Integers-Footnote-1903448
+Node: POSIX Floating Point Problems903597
+Ref: POSIX Floating Point Problems-Footnote-1907473
+Node: Floating point summary907511
+Node: Dynamic Extensions909703
+Node: Extension Intro911255
+Node: Plugin License912521
+Node: Extension Mechanism Outline913318
+Ref: figure-load-extension913746
+Ref: figure-register-new-function915226
+Ref: figure-call-new-function916230
+Node: Extension API Description918216
+Node: Extension API Functions Introduction919666
+Node: General Data Types924502
+Ref: General Data Types-Footnote-1930189
+Node: Memory Allocation Functions930488
+Ref: Memory Allocation Functions-Footnote-1933318
+Node: Constructor Functions933414
+Node: Registration Functions935148
+Node: Extension Functions935833
+Node: Exit Callback Functions938129
+Node: Extension Version String939377
+Node: Input Parsers940027
+Node: Output Wrappers949842
+Node: Two-way processors954358
+Node: Printing Messages956562
+Ref: Printing Messages-Footnote-1957639
+Node: Updating `ERRNO'957791
+Node: Requesting Values958531
+Ref: table-value-types-returned959259
+Node: Accessing Parameters960217
+Node: Symbol Table Access961448
+Node: Symbol table by name961962
+Node: Symbol table by cookie963942
+Ref: Symbol table by cookie-Footnote-1968081
+Node: Cached values968144
+Ref: Cached values-Footnote-1971648
+Node: Array Manipulation971739
+Ref: Array Manipulation-Footnote-1972837
+Node: Array Data Types972876
+Ref: Array Data Types-Footnote-1975533
+Node: Array Functions975625
+Node: Flattening Arrays979479
+Node: Creating Arrays986366
+Node: Extension API Variables991133
+Node: Extension Versioning991769
+Node: Extension API Informational Variables993670
+Node: Extension API Boilerplate994758
+Node: Finding Extensions998574
+Node: Extension Example999134
+Node: Internal File Description999906
+Node: Internal File Ops1003973
+Ref: Internal File Ops-Footnote-11015631
+Node: Using Internal File Ops1015771
+Ref: Using Internal File Ops-Footnote-11018154
+Node: Extension Samples1018427
+Node: Extension Sample File Functions1019951
+Node: Extension Sample Fnmatch1027553
+Node: Extension Sample Fork1029035
+Node: Extension Sample Inplace1030248
+Node: Extension Sample Ord1031923
+Node: Extension Sample Readdir1032759
+Ref: table-readdir-file-types1033615
+Node: Extension Sample Revout1034426
+Node: Extension Sample Rev2way1035017
+Node: Extension Sample Read write array1035758
+Node: Extension Sample Readfile1037697
+Node: Extension Sample Time1038792
+Node: Extension Sample API Tests1040141
+Node: gawkextlib1040632
+Node: Extension summary1043282
+Node: Extension Exercises1046964
+Node: Language History1047686
+Node: V7/SVR3.11049343
+Node: SVR41051524
+Node: POSIX1052969
+Node: BTL1054358
+Node: POSIX/GNU1055092
+Node: Feature History1060721
+Node: Common Extensions1073812
+Node: Ranges and Locales1075136
+Ref: Ranges and Locales-Footnote-11079775
+Ref: Ranges and Locales-Footnote-21079802
+Ref: Ranges and Locales-Footnote-31080036
+Node: Contributors1080257
+Node: History summary1085797
+Node: Installation1087166
+Node: Gawk Distribution1088122
+Node: Getting1088606
+Node: Extracting1089430
+Node: Distribution contents1091072
+Node: Unix Installation1096842
+Node: Quick Installation1097459
+Node: Additional Configuration Options1099890
+Node: Configuration Philosophy1101630
+Node: Non-Unix Installation1103981
+Node: PC Installation1104439
+Node: PC Binary Installation1105765
+Node: PC Compiling1107613
+Ref: PC Compiling-Footnote-11110634
+Node: PC Testing1110739
+Node: PC Using1111915
+Node: Cygwin1116030
+Node: MSYS1116853
+Node: VMS Installation1117351
+Node: VMS Compilation1118143
+Ref: VMS Compilation-Footnote-11119365
+Node: VMS Dynamic Extensions1119423
+Node: VMS Installation Details1121107
+Node: VMS Running1123359
+Node: VMS GNV1126200
+Node: VMS Old Gawk1126929
+Node: Bugs1127399
+Node: Other Versions1131369
+Node: Installation summary1137582
+Node: Notes1138638
+Node: Compatibility Mode1139503
+Node: Additions1140285
+Node: Accessing The Source1141210
+Node: Adding Code1142646
+Node: New Ports1148818
+Node: Derived Files1153299
+Ref: Derived Files-Footnote-11158774
+Ref: Derived Files-Footnote-21158808
+Ref: Derived Files-Footnote-31159404
+Node: Future Extensions1159518
+Node: Implementation Limitations1160124
+Node: Extension Design1161372
+Node: Old Extension Problems1162526
+Ref: Old Extension Problems-Footnote-11164043
+Node: Extension New Mechanism Goals1164100
+Ref: Extension New Mechanism Goals-Footnote-11167460
+Node: Extension Other Design Decisions1167649
+Node: Extension Future Growth1169757
+Node: Old Extension Mechanism1170593
+Node: Notes summary1172355
+Node: Basic Concepts1173541
+Node: Basic High Level1174222
+Ref: figure-general-flow1174494
+Ref: figure-process-flow1175093
+Ref: Basic High Level-Footnote-11178322
+Node: Basic Data Typing1178507
+Node: Glossary1181835
+Node: Copying1206993
+Node: GNU Free Documentation License1244549
+Node: Index1269685

End Tag Table