aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1340
1 files changed, 730 insertions, 610 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index fe51de53..10085b35 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -217,6 +217,7 @@ entitled "GNU Free Documentation License".
`getline'.
* Getline Summary:: Summary of `getline' Variants.
* Read Timeout:: Reading input with a timeout.
+* Retrying Input:: Retrying input after certain errors.
* Command-line directories:: What happens if you put a directory on
the command line.
* Input Summary:: Input summary.
@@ -557,6 +558,7 @@ entitled "GNU Free Documentation License".
* Array Functions:: Functions for working with arrays.
* Flattening Arrays:: How to flatten arrays.
* Creating Arrays:: How to create and populate arrays.
+* Redirection API:: How to access and manipulate redirections.
* Extension API Variables:: Variables provided by the API.
* Extension Versioning:: API Version information.
* Extension API Informational Variables:: Variables providing information about
@@ -4167,6 +4169,7 @@ have to be named on the `awk' command line (*note Getline::).
* Getline:: Reading files under explicit program control
using the `getline' function.
* Read Timeout:: Reading input with a timeout.
+* Retrying Input:: Retrying input after certain errors.
* Command-line directories:: What happens if you put a directory on the
command line.
* Input Summary:: Input summary.
@@ -5438,7 +5441,11 @@ how `awk' works.
encounters the end of the file. If there is some error in getting a
record, such as a file that cannot be opened, then `getline' returns
-1. In this case, `gawk' sets the variable `ERRNO' to a string
-describing the error that occurred.
+describing the error that occurred. If the `errno' variable indicates
+that the I/O operation may be retried, and `PROCINFO["input", "RETRY"]'
+is set, then -2 will be returned instead of -1, and further calls to
+`getline' may be attemped. *Note Retrying Input::, for further
+information about this feature.
In the following examples, COMMAND stands for a string value that
represents a shell command.
@@ -5875,7 +5882,7 @@ VAR
Table 4.1: `getline' variants and what they set

-File: gawk.info, Node: Read Timeout, Next: Command-line directories, Prev: Getline, Up: Reading Files
+File: gawk.info, Node: Read Timeout, Next: Retrying Input, Prev: Getline, Up: Reading Files
4.10 Reading Input with a Timeout
=================================
@@ -5954,7 +5961,8 @@ a per command or connection basis.
`gawk' considers a timeout event to be an error even though the
attempt to read from the underlying device may succeed in a later
attempt. This is a limitation, and it also means that you cannot use
-this to multiplex input from two or more sources.
+this to multiplex input from two or more sources. *Note Retrying
+Input::, for a way to enable later I/O attempts to succeed.
Assigning a timeout value prevents read operations from blocking
indefinitely. But bear in mind that there are other ways `gawk' can
@@ -5969,9 +5977,36 @@ writing.
(1) This assumes that standard input is the keyboard.

-File: gawk.info, Node: Command-line directories, Next: Input Summary, Prev: Read Timeout, Up: Reading Files
+File: gawk.info, Node: Retrying Input, Next: Command-line directories, Prev: Read Timeout, Up: Reading Files
-4.11 Directories on the Command Line
+4.11 Retrying Reads After Certain Input Errors
+==============================================
+
+This minor node describes a feature that is specific to `gawk'.
+
+ When `gawk' encounters an error while reading input, it will by
+default return -1 from getline, and subsequent attempts to read from
+that file will result in an end-of-file indication. However, you may
+optionally instruct `gawk' to allow I/O to be retried when certain
+errors are encountered by setting setting a special element in the
+`PROCINFO' array (*note Auto-set::):
+
+ PROCINFO["input_name", "RETRY"]
+
+ When set, this causes `gawk' to check the value of the system
+`errno' variable when an I/O error occurs. If `errno' indicates a
+subsequent I/O attempt may succeed, `getline' will instead return -2 and
+further calls to `getline' may succeed. This applies to `errno' values
+EAGAIN, EWOULDBLOCK, EINTR, or ETIMEDOUT.
+
+ This feature is useful in conjunction with `PROCINFO["input_name",
+"READ_TIMEOUT"]' or situations where a file descriptor has been
+configured to behave in a non-blocking fashion.
+
+
+File: gawk.info, Node: Command-line directories, Next: Input Summary, Prev: Retrying Input, Up: Reading Files
+
+4.12 Directories on the Command Line
====================================
According to the POSIX standard, files named on the `awk' command line
@@ -5994,7 +6029,7 @@ usable data from an `awk' program.

File: gawk.info, Node: Input Summary, Next: Input Exercises, Prev: Command-line directories, Up: Reading Files
-4.12 Summary
+4.13 Summary
============
* Input is split into records based on the value of `RS'. The
@@ -6067,7 +6102,7 @@ File: gawk.info, Node: Input Summary, Next: Input Exercises, Prev: Command-li

File: gawk.info, Node: Input Exercises, Prev: Input Summary, Up: Reading Files
-4.13 Exercises
+4.14 Exercises
==============
1. Using the `FIELDWIDTHS' variable (*note Constant Size::), write a
@@ -10362,6 +10397,11 @@ Options::), they are not special:
`getline' returning -1. You are, of course, free to clear it
yourself before doing an I/O operation.
+ If the value of `ERRNO' corresponds to a system error in the C
+ `errno' variable, then `PROCINFO["errno"]' will be set to the value
+ of `errno'. For non-system errors, `PROCINFO["errno"]' will be
+ zero.
+
`FILENAME'
The name of the current input file. When no data files are listed
on the command line, `awk' reads from the standard input and
@@ -10410,6 +10450,10 @@ Options::), they are not special:
`PROCINFO["egid"]'
The value of the `getegid()' system call.
+ `PROCINFO["errno"]'
+ The value of the C `errno' variable when `ERRNO' is set to
+ the associated error message.
+
`PROCINFO["euid"]'
The value of the `geteuid()' system call.
@@ -10520,6 +10564,10 @@ Options::), they are not special:
open input file, pipe, or coprocess. *Note Read Timeout::,
for more information.
+ * It may be used to indicate that input may be retried when it
+ fails due to certain errors. *Note Retrying Input::, for
+ more information.
+
* It may be used to cause coprocesses to communicate over
pseudo-ttys instead of through two-way pipes; this is
discussed further in *note Two-way I/O::.
@@ -22874,6 +22922,7 @@ describes the API in detail.
* Symbol Table Access:: Functions for accessing global
variables.
* Array Manipulation:: Functions for working with arrays.
+* Redirection API:: How to access and manipulate redirections.
* Extension API Variables:: Variables provided by the API.
* Extension API Boilerplate:: Boilerplate code for using the API.
@@ -22934,6 +22983,9 @@ operations:
- Flattening an array for easy C style looping over all its
indices and elements
+ * Accessing and manipulating redirections.
+
+
Some points about using the API:
* The following types, macros, and/or functions are referenced in
@@ -24140,7 +24192,7 @@ using `release_value()'.
`double' to store.

-File: gawk.info, Node: Array Manipulation, Next: Extension API Variables, Prev: Symbol Table Access, Up: Extension API Description
+File: gawk.info, Node: Array Manipulation, Next: Redirection API, Prev: Symbol Table Access, Up: Extension API Description
16.4.11 Array Manipulation
--------------------------
@@ -24625,9 +24677,72 @@ array:
environment variable.)

-File: gawk.info, Node: Extension API Variables, Next: Extension API Boilerplate, Prev: Array Manipulation, Up: Extension API Description
-
-16.4.12 API Variables
+File: gawk.info, Node: Redirection API, Next: Extension API Variables, Prev: Array Manipulation, Up: Extension API Description
+
+16.4.12 Accessing and Manipulating Redirections
+-----------------------------------------------
+
+The following function allows extensions to access and manipulate
+redirections.
+
+`awk_bool_t get_file(const char *name,'
+` size_t name_len,'
+` const char *filetype,'
+` int fd,'
+` const awk_input_buf_t **ibufp,'
+` const awk_output_buf_t **obufp);'
+ Look up a file in `gawk''s internal redirection table. If `name'
+ is NULL or `name_len' is 0, it returns data for the currently open
+ input file corresponding to `FILENAME' (and it will not access the
+ `filetype' argument, so that may be undefined). If the file is
+ not already open, it tries to open it. The `filetype' argument
+ must be NUL-terminated and should be one of:
+ `>'
+ A file opened for output.
+
+ `>>'
+ A file opened for append.
+
+ `<'
+ A file opened for input.
+
+ `|>'
+ A pipe opened for output.
+
+ `|<'
+ A pipe opened for input.
+
+ `|&'
+ A two-way coprocess.
+ On error, a `false' value is returned. Otherwise, the return
+ status is `true', and additional information about the redirection
+ is returned in the `ibufp' and `obufp' pointers. For input
+ redirections, the `*ibufp' value should be non-NULL, and `*obufp'
+ should be NULL. For output redirections, the `*obufp' value
+ should be non-NULL, and `*ibufp' should be NULL. For two-way
+ coprocesses, both values should be non-NULL. In the usual case,
+ the extension is interested in `(*ibufp)->fd' and/or
+ `fileno((*obufp)->fp)'. If the file is not already open, and the
+ fd argument is non-negative, `gawk' will use that file descriptor
+ instead of opening the file in the usual way. If the fd is
+ non-negative, but the file exists already, `gawk' ignores the fd
+ and returns the existing file. It is the caller's responsibility
+ to notice that neither the fd in the returned `awk_input_buf_t'
+ nor the fd in the returned `awk_output_buf_t' matches the
+ requested value. Note that supplying a file descriptor is
+ currently NOT supported for pipes. It should work for input,
+ output, append, and two-way (coprocess) sockets. If `filetype' is
+ two-way, we assume that it is a socket! Note that in the two-way
+ case, the input and output file descriptors may differ. To check
+ for success, one must check whether either matches.
+
+ It is anticipated that this API function will be used to implement
+I/O multiplexing and a socket library.
+
+
+File: gawk.info, Node: Extension API Variables, Next: Extension API Boilerplate, Prev: Redirection API, Up: Extension API Description
+
+16.4.13 API Variables
---------------------
The API provides two sets of variables. The first provides information
@@ -24644,7 +24759,7 @@ information about how `gawk' was invoked.

File: gawk.info, Node: Extension Versioning, Next: Extension API Informational Variables, Up: Extension API Variables
-16.4.12.1 API Version Constants and Variables
+16.4.13.1 API Version Constants and Variables
.............................................
The API provides both a "major" and a "minor" version number. The API
@@ -24693,7 +24808,7 @@ Boilerplate::).

File: gawk.info, Node: Extension API Informational Variables, Prev: Extension Versioning, Up: Extension API Variables
-16.4.12.2 Informational Variables
+16.4.13.2 Informational Variables
.................................
The API provides access to several variables that describe whether the
@@ -24728,7 +24843,7 @@ not change during execution.

File: gawk.info, Node: Extension API Boilerplate, Prev: Extension API Variables, Up: Extension API Description
-16.4.13 Boilerplate Code
+16.4.14 Boilerplate Code
------------------------
As mentioned earlier (*note Extension Mechanism Outline::), the function
@@ -32245,9 +32360,9 @@ Index
(line 143)
* dark corner, exit statement: Exit Statement. (line 30)
* dark corner, field separators: Full Line Fields. (line 22)
-* dark corner, FILENAME variable <1>: Auto-set. (line 104)
+* dark corner, FILENAME variable <1>: Auto-set. (line 109)
* dark corner, FILENAME variable: Getline Notes. (line 19)
-* dark corner, FNR/NR variables: Auto-set. (line 328)
+* dark corner, FNR/NR variables: Auto-set. (line 341)
* dark corner, format-control characters: Control Letters. (line 18)
* dark corner, FS as null string: Single Character Fields.
(line 20)
@@ -32441,7 +32556,7 @@ Index
* differences in awk and gawk, FIELDWIDTHS variable: User-modified.
(line 37)
* differences in awk and gawk, FPAT variable: User-modified. (line 43)
-* differences in awk and gawk, FUNCTAB variable: Auto-set. (line 130)
+* differences in awk and gawk, FUNCTAB variable: Auto-set. (line 135)
* differences in awk and gawk, function arguments (gawk): Calling Built-in.
(line 16)
* differences in awk and gawk, getline command: Getline. (line 19)
@@ -32464,7 +32579,7 @@ Index
(line 263)
* differences in awk and gawk, print/printf statements: Format Modifiers.
(line 13)
-* differences in awk and gawk, PROCINFO array: Auto-set. (line 144)
+* differences in awk and gawk, PROCINFO array: Auto-set. (line 149)
* differences in awk and gawk, read timeouts: Read Timeout. (line 6)
* differences in awk and gawk, record separators: awk split records.
(line 125)
@@ -32472,9 +32587,11 @@ Index
(line 43)
* differences in awk and gawk, regular expressions: Case-sensitivity.
(line 26)
+* differences in awk and gawk, retrying input: Retrying Input.
+ (line 6)
* differences in awk and gawk, RS/RT variables: gawk split records.
(line 58)
-* differences in awk and gawk, RT variable: Auto-set. (line 279)
+* differences in awk and gawk, RT variable: Auto-set. (line 292)
* differences in awk and gawk, single-character fields: Single Character Fields.
(line 6)
* differences in awk and gawk, split() function: String Functions.
@@ -32482,7 +32599,7 @@ Index
* differences in awk and gawk, strings: Scalar Constants. (line 20)
* differences in awk and gawk, strings, storing: gawk split records.
(line 77)
-* differences in awk and gawk, SYMTAB variable: Auto-set. (line 283)
+* differences in awk and gawk, SYMTAB variable: Auto-set. (line 296)
* differences in awk and gawk, TEXTDOMAIN variable: User-modified.
(line 151)
* differences in awk and gawk, trunc-mod operation: Arithmetic Ops.
@@ -32523,8 +32640,8 @@ Index
* dynamically loaded extensions: Dynamic Extensions. (line 6)
* e debugger command (alias for enable): Breakpoint Control. (line 73)
* EBCDIC: Ordinal Functions. (line 45)
-* effective group ID of gawk user: Auto-set. (line 149)
-* effective user ID of gawk user: Auto-set. (line 153)
+* effective group ID of gawk user: Auto-set. (line 154)
+* effective user ID of gawk user: Auto-set. (line 162)
* egrep utility <1>: Egrep Program. (line 6)
* egrep utility: Bracket Expressions. (line 26)
* egrep.awk program: Egrep Program. (line 54)
@@ -32639,7 +32756,7 @@ Index
(line 6)
* extension API version: Extension Versioning.
(line 6)
-* extension API, version number: Auto-set. (line 246)
+* extension API, version number: Auto-set. (line 255)
* extension example: Extension Example. (line 6)
* extension registration: Registration Functions.
(line 6)
@@ -32720,7 +32837,7 @@ Index
* file names, distinguishing: Auto-set. (line 56)
* file names, in compatibility mode: Special Caveats. (line 9)
* file names, standard streams in gawk: Special FD. (line 48)
-* FILENAME variable <1>: Auto-set. (line 104)
+* FILENAME variable <1>: Auto-set. (line 109)
* FILENAME variable: Reading Files. (line 6)
* FILENAME variable, getline, setting with: Getline Notes. (line 19)
* filenames, assignments as: Ignoring Assigns. (line 6)
@@ -32788,9 +32905,9 @@ Index
* flush buffered output: I/O Functions. (line 28)
* fnmatch() extension function: Extension Sample Fnmatch.
(line 12)
-* FNR variable <1>: Auto-set. (line 114)
+* FNR variable <1>: Auto-set. (line 119)
* FNR variable: Records. (line 6)
-* FNR variable, changing: Auto-set. (line 328)
+* FNR variable, changing: Auto-set. (line 341)
* for statement: For Statement. (line 6)
* for statement, looping over arrays: Scanning an Array. (line 20)
* fork() extension function: Extension Sample Fork.
@@ -32840,7 +32957,7 @@ Index
* FSF (Free Software Foundation): Manual History. (line 6)
* fts() extension function: Extension Sample File Functions.
(line 61)
-* FUNCTAB array: Auto-set. (line 130)
+* FUNCTAB array: Auto-set. (line 135)
* function calls: Function Calls. (line 6)
* function calls, indirect: Indirect Calls. (line 6)
* function calls, indirect, @-notation for: Indirect Calls. (line 47)
@@ -32890,7 +33007,7 @@ Index
* G-d: Acknowledgments. (line 94)
* Garfinkle, Scott: Contributors. (line 34)
* gawk program, dynamic profiling: Profiling. (line 178)
-* gawk version: Auto-set. (line 221)
+* gawk version: Auto-set. (line 230)
* gawk, ARGIND variable in: Other Arguments. (line 15)
* gawk, awk and <1>: This Manual. (line 14)
* gawk, awk and: Preface. (line 21)
@@ -32925,7 +33042,7 @@ Index
* gawk, FPAT variable in <1>: User-modified. (line 43)
* gawk, FPAT variable in: Splitting By Content.
(line 25)
-* gawk, FUNCTAB array in: Auto-set. (line 130)
+* gawk, FUNCTAB array in: Auto-set. (line 135)
* gawk, function arguments and: Calling Built-in. (line 16)
* gawk, hexadecimal numbers and: Nondecimal-numbers. (line 42)
* gawk, IGNORECASE variable in <1>: Array Sorting Functions.
@@ -32957,7 +33074,7 @@ Index
* gawk, predefined variables and: Built-in Variables. (line 14)
* gawk, PROCINFO array in <1>: Two-way I/O. (line 99)
* gawk, PROCINFO array in <2>: Time Functions. (line 47)
-* gawk, PROCINFO array in: Auto-set. (line 144)
+* gawk, PROCINFO array in: Auto-set. (line 149)
* gawk, regexp constants and: Using Constant Regexps.
(line 28)
* gawk, regular expressions, case sensitivity: Case-sensitivity.
@@ -32965,14 +33082,14 @@ Index
* gawk, regular expressions, operators: GNU Regexp Operators.
(line 6)
* gawk, regular expressions, precedence: Regexp Operators. (line 161)
-* gawk, RT variable in <1>: Auto-set. (line 279)
+* gawk, RT variable in <1>: Auto-set. (line 292)
* gawk, RT variable in <2>: Multiple Line. (line 129)
* gawk, RT variable in: awk split records. (line 125)
* gawk, See Also awk: Preface. (line 34)
* gawk, source code, obtaining: Getting. (line 6)
* gawk, splitting fields and: Constant Size. (line 87)
* gawk, string-translation functions: I18N Functions. (line 6)
-* gawk, SYMTAB array in: Auto-set. (line 283)
+* gawk, SYMTAB array in: Auto-set. (line 296)
* gawk, TEXTDOMAIN variable in: User-modified. (line 151)
* gawk, timestamps: Time Functions. (line 6)
* gawk, uses for: Preface. (line 34)
@@ -33064,7 +33181,7 @@ Index
* Grigera, Juan: Contributors. (line 57)
* group database, reading: Group Functions. (line 6)
* group file: Group Functions. (line 6)
-* group ID of gawk user: Auto-set. (line 194)
+* group ID of gawk user: Auto-set. (line 203)
* groups, information about: Group Functions. (line 6)
* gsub <1>: String Functions. (line 140)
* gsub: Using Constant Regexps.
@@ -33359,7 +33476,7 @@ Index
* mawk utility <3>: Concatenation. (line 36)
* mawk utility <4>: Getline/Pipe. (line 62)
* mawk utility: Escape Sequences. (line 120)
-* maximum precision supported by MPFR library: Auto-set. (line 235)
+* maximum precision supported by MPFR library: Auto-set. (line 244)
* McIlroy, Doug: Glossary. (line 177)
* McPhee, Patrick: Contributors. (line 100)
* message object files: Explaining gettext. (line 42)
@@ -33372,7 +33489,7 @@ Index
* messages from extensions: Printing Messages. (line 6)
* metacharacters in regular expressions: Regexp Operators. (line 6)
* metacharacters, escape sequences for: Escape Sequences. (line 139)
-* minimum precision supported by MPFR library: Auto-set. (line 238)
+* minimum precision supported by MPFR library: Auto-set. (line 247)
* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* monetary information, localization: Explaining gettext. (line 104)
@@ -33421,7 +33538,7 @@ Index
(line 47)
* nexti debugger command: Debugger Execution Control.
(line 49)
-* NF variable <1>: Auto-set. (line 119)
+* NF variable <1>: Auto-set. (line 124)
* NF variable: Fields. (line 33)
* NF variable, decrementing: Changing Fields. (line 107)
* ni debugger command (alias for nexti): Debugger Execution Control.
@@ -33430,9 +33547,9 @@ Index
* non-existent array elements: Reference to Elements.
(line 23)
* not Boolean-logic operator: Boolean Ops. (line 6)
-* NR variable <1>: Auto-set. (line 139)
+* NR variable <1>: Auto-set. (line 144)
* NR variable: Records. (line 6)
-* NR variable, changing: Auto-set. (line 328)
+* NR variable, changing: Auto-set. (line 341)
* null strings <1>: Basic Data Typing. (line 26)
* null strings <2>: Truth Values. (line 6)
* null strings <3>: Regexp Field Splitting.
@@ -33546,7 +33663,7 @@ Index
* p debugger command (alias for print): Viewing And Changing Data.
(line 36)
* Papadopoulos, Panos: Contributors. (line 128)
-* parent process ID of gawk process: Auto-set. (line 203)
+* parent process ID of gawk process: Auto-set. (line 212)
* parentheses (), in a profile: Profiling. (line 146)
* parentheses (), regexp operator: Regexp Operators. (line 81)
* password file: Passwd Functions. (line 16)
@@ -33712,24 +33829,24 @@ Index
* printing, unduplicated lines of text: Uniq Program. (line 6)
* printing, user information: Id Program. (line 6)
* private variables: Library Names. (line 11)
-* process group idIDof gawk process: Auto-set. (line 197)
-* process ID of gawk process: Auto-set. (line 200)
+* process group idIDof gawk process: Auto-set. (line 206)
+* process ID of gawk process: Auto-set. (line 209)
* processes, two-way communications with: Two-way I/O. (line 6)
* processing data: Basic High Level. (line 6)
* PROCINFO array <1>: Passwd Functions. (line 6)
* PROCINFO array <2>: Time Functions. (line 47)
-* PROCINFO array: Auto-set. (line 144)
+* PROCINFO array: Auto-set. (line 149)
* PROCINFO array, and communications via ptys: Two-way I/O. (line 99)
* PROCINFO array, and group membership: Group Functions. (line 6)
* PROCINFO array, and user and group ID numbers: Id Program. (line 15)
* PROCINFO array, testing the field splitting: Passwd Functions.
(line 154)
-* PROCINFO array, uses: Auto-set. (line 256)
+* PROCINFO array, uses: Auto-set. (line 265)
* PROCINFO, values of sorted_in: Controlling Scanning.
(line 26)
* profiling awk programs: Profiling. (line 6)
* profiling awk programs, dynamically: Profiling. (line 178)
-* program identifiers: Auto-set. (line 162)
+* program identifiers: Auto-set. (line 171)
* program, definition of: Getting Started. (line 21)
* programming conventions, --non-decimal-data option: Nondecimal Data.
(line 35)
@@ -33864,6 +33981,7 @@ Index
* relational operators, See comparison operators: Typing and Comparison.
(line 9)
* replace in string: String Functions. (line 408)
+* retrying input: Retrying Input. (line 6)
* return debugger command: Debugger Execution Control.
(line 54)
* return statement, user-defined functions: Return Statement. (line 6)
@@ -33887,7 +34005,7 @@ Index
* right shift: Bitwise Functions. (line 53)
* right shift, bitwise: Bitwise Functions. (line 32)
* Ritchie, Dennis: Basic Data Typing. (line 54)
-* RLENGTH variable: Auto-set. (line 266)
+* RLENGTH variable: Auto-set. (line 279)
* RLENGTH variable, match() function and: String Functions. (line 228)
* Robbins, Arnold <1>: Future Extensions. (line 6)
* Robbins, Arnold <2>: Bugs. (line 70)
@@ -33913,9 +34031,9 @@ Index
* RS variable: awk split records. (line 12)
* RS variable, multiline records and: Multiple Line. (line 17)
* rshift: Bitwise Functions. (line 53)
-* RSTART variable: Auto-set. (line 272)
+* RSTART variable: Auto-set. (line 285)
* RSTART variable, match() function and: String Functions. (line 228)
-* RT variable <1>: Auto-set. (line 279)
+* RT variable <1>: Auto-set. (line 292)
* RT variable <2>: Multiple Line. (line 129)
* RT variable: awk split records. (line 125)
* Rubin, Paul <1>: Contributors. (line 15)
@@ -33935,7 +34053,7 @@ Index
* scanning arrays: Scanning an Array. (line 6)
* scanning multidimensional arrays: Multiscanning. (line 11)
* Schorr, Andrew <1>: Contributors. (line 133)
-* Schorr, Andrew <2>: Auto-set. (line 311)
+* Schorr, Andrew <2>: Auto-set. (line 324)
* Schorr, Andrew: Acknowledgments. (line 60)
* Schreiber, Bert: Acknowledgments. (line 38)
* Schreiber, Rita: Acknowledgments. (line 38)
@@ -34018,7 +34136,7 @@ Index
(line 106)
* sidebar, Changing FS Does Not Affect the Fields: Full Line Fields.
(line 14)
-* sidebar, Changing NR and FNR: Auto-set. (line 326)
+* sidebar, Changing NR and FNR: Auto-set. (line 339)
* sidebar, Controlling Output Buffering with system(): I/O Functions.
(line 138)
* sidebar, Escape Sequences for Metacharacters: Escape Sequences.
@@ -34180,9 +34298,9 @@ Index
* substr: String Functions. (line 481)
* substring: String Functions. (line 481)
* Sumner, Andrew: Other Versions. (line 68)
-* supplementary groups of gawk process: Auto-set. (line 251)
+* supplementary groups of gawk process: Auto-set. (line 260)
* switch statement: Switch Statement. (line 6)
-* SYMTAB array: Auto-set. (line 283)
+* SYMTAB array: Auto-set. (line 296)
* syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 148)
* system: I/O Functions. (line 106)
@@ -34359,10 +34477,10 @@ Index
* variables, uninitialized, as array subscripts: Uninitialized Subscripts.
(line 6)
* variables, user-defined: Variables. (line 6)
-* version of gawk: Auto-set. (line 221)
-* version of gawk extension API: Auto-set. (line 246)
-* version of GNU MP library: Auto-set. (line 232)
-* version of GNU MPFR library: Auto-set. (line 228)
+* version of gawk: Auto-set. (line 230)
+* version of gawk extension API: Auto-set. (line 255)
+* version of GNU MP library: Auto-set. (line 241)
+* version of GNU MPFR library: Auto-set. (line 237)
* vertical bar (|): Regexp Operators. (line 70)
* vertical bar (|), | operator (I/O) <1>: Precedence. (line 65)
* vertical bar (|), | operator (I/O): Getline/Pipe. (line 9)
@@ -34452,560 +34570,562 @@ Index

Tag Table:
Node: Top1204
-Node: Foreword342225
-Node: Foreword446669
-Node: Preface48200
-Ref: Preface-Footnote-151071
-Ref: Preface-Footnote-251178
-Ref: Preface-Footnote-351411
-Node: History51553
-Node: Names53904
-Ref: Names-Footnote-154997
-Node: This Manual55143
-Ref: This Manual-Footnote-161643
-Node: Conventions61743
-Node: Manual History64080
-Ref: Manual History-Footnote-167073
-Ref: Manual History-Footnote-267114
-Node: How To Contribute67188
-Node: Acknowledgments68317
-Node: Getting Started73134
-Node: Running gawk75573
-Node: One-shot76763
-Node: Read Terminal78027
-Node: Long80058
-Node: Executable Scripts81571
-Ref: Executable Scripts-Footnote-184360
-Node: Comments84463
-Node: Quoting86945
-Node: DOS Quoting92463
-Node: Sample Data Files93138
-Node: Very Simple95733
-Node: Two Rules100632
-Node: More Complex102518
-Node: Statements/Lines105380
-Ref: Statements/Lines-Footnote-1109835
-Node: Other Features110100
-Node: When111031
-Ref: When-Footnote-1112785
-Node: Intro Summary112850
-Node: Invoking Gawk113733
-Node: Command Line115247
-Node: Options116045
-Ref: Options-Footnote-1131849
-Ref: Options-Footnote-2132078
-Node: Other Arguments132103
-Node: Naming Standard Input135051
-Node: Environment Variables136144
-Node: AWKPATH Variable136702
-Ref: AWKPATH Variable-Footnote-1140115
-Ref: AWKPATH Variable-Footnote-2140160
-Node: AWKLIBPATH Variable140420
-Node: Other Environment Variables141676
-Node: Exit Status145164
-Node: Include Files145840
-Node: Loading Shared Libraries149437
-Node: Obsolete150864
-Node: Undocumented151561
-Node: Invoking Summary151828
-Node: Regexp153492
-Node: Regexp Usage154946
-Node: Escape Sequences156983
-Node: Regexp Operators163224
-Ref: Regexp Operators-Footnote-1170650
-Ref: Regexp Operators-Footnote-2170797
-Node: Bracket Expressions170895
-Ref: table-char-classes172910
-Node: Leftmost Longest175834
-Node: Computed Regexps177136
-Node: GNU Regexp Operators180533
-Node: Case-sensitivity184206
-Ref: Case-sensitivity-Footnote-1187091
-Ref: Case-sensitivity-Footnote-2187326
-Node: Regexp Summary187434
-Node: Reading Files188901
-Node: Records190995
-Node: awk split records191728
-Node: gawk split records196643
-Ref: gawk split records-Footnote-1201187
-Node: Fields201224
-Ref: Fields-Footnote-1204000
-Node: Nonconstant Fields204086
-Ref: Nonconstant Fields-Footnote-1206329
-Node: Changing Fields206533
-Node: Field Separators212462
-Node: Default Field Splitting215167
-Node: Regexp Field Splitting216284
-Node: Single Character Fields219634
-Node: Command Line Field Separator220693
-Node: Full Line Fields223905
-Ref: Full Line Fields-Footnote-1225422
-Ref: Full Line Fields-Footnote-2225468
-Node: Field Splitting Summary225569
-Node: Constant Size227643
-Node: Splitting By Content232232
-Ref: Splitting By Content-Footnote-1236226
-Node: Multiple Line236389
-Ref: Multiple Line-Footnote-1242275
-Node: Getline242454
-Node: Plain Getline244666
-Node: Getline/Variable247306
-Node: Getline/File248454
-Node: Getline/Variable/File249838
-Ref: Getline/Variable/File-Footnote-1251441
-Node: Getline/Pipe251528
-Node: Getline/Variable/Pipe254211
-Node: Getline/Coprocess255342
-Node: Getline/Variable/Coprocess256594
-Node: Getline Notes257333
-Node: Getline Summary260125
-Ref: table-getline-variants260537
-Node: Read Timeout261366
-Ref: Read Timeout-Footnote-1265190
-Node: Command-line directories265248
-Node: Input Summary266153
-Node: Input Exercises269454
-Node: Printing270182
-Node: Print271959
-Node: Print Examples273416
-Node: Output Separators276195
-Node: OFMT278213
-Node: Printf279567
-Node: Basic Printf280352
-Node: Control Letters281922
-Node: Format Modifiers285905
-Node: Printf Examples291914
-Node: Redirection294400
-Node: Special FD301241
-Ref: Special FD-Footnote-1304401
-Node: Special Files304475
-Node: Other Inherited Files305092
-Node: Special Network306092
-Node: Special Caveats306954
-Node: Close Files And Pipes307905
-Ref: Close Files And Pipes-Footnote-1315087
-Ref: Close Files And Pipes-Footnote-2315235
-Node: Output Summary315385
-Node: Output Exercises316383
-Node: Expressions317063
-Node: Values318248
-Node: Constants318926
-Node: Scalar Constants319617
-Ref: Scalar Constants-Footnote-1320476
-Node: Nondecimal-numbers320726
-Node: Regexp Constants323744
-Node: Using Constant Regexps324269
-Node: Variables327412
-Node: Using Variables328067
-Node: Assignment Options329978
-Node: Conversion331853
-Node: Strings And Numbers332377
-Ref: Strings And Numbers-Footnote-1335442
-Node: Locale influences conversions335551
-Ref: table-locale-affects338298
-Node: All Operators338886
-Node: Arithmetic Ops339516
-Node: Concatenation342021
-Ref: Concatenation-Footnote-1344840
-Node: Assignment Ops344946
-Ref: table-assign-ops349925
-Node: Increment Ops351197
-Node: Truth Values and Conditions354635
-Node: Truth Values355720
-Node: Typing and Comparison356769
-Node: Variable Typing357579
-Node: Comparison Operators361232
-Ref: table-relational-ops361642
-Node: POSIX String Comparison365137
-Ref: POSIX String Comparison-Footnote-1366209
-Node: Boolean Ops366347
-Ref: Boolean Ops-Footnote-1370826
-Node: Conditional Exp370917
-Node: Function Calls372644
-Node: Precedence376524
-Node: Locales380185
-Node: Expressions Summary381817
-Node: Patterns and Actions384377
-Node: Pattern Overview385497
-Node: Regexp Patterns387176
-Node: Expression Patterns387719
-Node: Ranges391429
-Node: BEGIN/END394535
-Node: Using BEGIN/END395296
-Ref: Using BEGIN/END-Footnote-1398030
-Node: I/O And BEGIN/END398136
-Node: BEGINFILE/ENDFILE400450
-Node: Empty403351
-Node: Using Shell Variables403668
-Node: Action Overview405941
-Node: Statements408267
-Node: If Statement410115
-Node: While Statement411610
-Node: Do Statement413639
-Node: For Statement414783
-Node: Switch Statement417940
-Node: Break Statement420322
-Node: Continue Statement422363
-Node: Next Statement424190
-Node: Nextfile Statement426571
-Node: Exit Statement429201
-Node: Built-in Variables431604
-Node: User-modified432737
-Ref: User-modified-Footnote-1440418
-Node: Auto-set440480
-Ref: Auto-set-Footnote-1454172
-Ref: Auto-set-Footnote-2454377
-Node: ARGC and ARGV454433
-Node: Pattern Action Summary458651
-Node: Arrays461078
-Node: Array Basics462407
-Node: Array Intro463251
-Ref: figure-array-elements465215
-Ref: Array Intro-Footnote-1467741
-Node: Reference to Elements467869
-Node: Assigning Elements470321
-Node: Array Example470812
-Node: Scanning an Array472570
-Node: Controlling Scanning475586
-Ref: Controlling Scanning-Footnote-1480782
-Node: Numeric Array Subscripts481098
-Node: Uninitialized Subscripts483283
-Node: Delete484900
-Ref: Delete-Footnote-1487643
-Node: Multidimensional487700
-Node: Multiscanning490797
-Node: Arrays of Arrays492386
-Node: Arrays Summary497145
-Node: Functions499237
-Node: Built-in500136
-Node: Calling Built-in501214
-Node: Numeric Functions503205
-Ref: Numeric Functions-Footnote-1508024
-Ref: Numeric Functions-Footnote-2508381
-Ref: Numeric Functions-Footnote-3508429
-Node: String Functions508701
-Ref: String Functions-Footnote-1532176
-Ref: String Functions-Footnote-2532305
-Ref: String Functions-Footnote-3532553
-Node: Gory Details532640
-Ref: table-sub-escapes534421
-Ref: table-sub-proposed535941
-Ref: table-posix-sub537305
-Ref: table-gensub-escapes538841
-Ref: Gory Details-Footnote-1539673
-Node: I/O Functions539824
-Ref: I/O Functions-Footnote-1547042
-Node: Time Functions547189
-Ref: Time Functions-Footnote-1557677
-Ref: Time Functions-Footnote-2557745
-Ref: Time Functions-Footnote-3557903
-Ref: Time Functions-Footnote-4558014
-Ref: Time Functions-Footnote-5558126
-Ref: Time Functions-Footnote-6558353
-Node: Bitwise Functions558619
-Ref: table-bitwise-ops559181
-Ref: Bitwise Functions-Footnote-1563490
-Node: Type Functions563659
-Node: I18N Functions564810
-Node: User-defined566455
-Node: Definition Syntax567260
-Ref: Definition Syntax-Footnote-1572667
-Node: Function Example572738
-Ref: Function Example-Footnote-1575657
-Node: Function Caveats575679
-Node: Calling A Function576197
-Node: Variable Scope577155
-Node: Pass By Value/Reference580143
-Node: Return Statement583638
-Node: Dynamic Typing586619
-Node: Indirect Calls587548
-Ref: Indirect Calls-Footnote-1598850
-Node: Functions Summary598978
-Node: Library Functions601680
-Ref: Library Functions-Footnote-1605289
-Ref: Library Functions-Footnote-2605432
-Node: Library Names605603
-Ref: Library Names-Footnote-1609057
-Ref: Library Names-Footnote-2609280
-Node: General Functions609366
-Node: Strtonum Function610469
-Node: Assert Function613491
-Node: Round Function616815
-Node: Cliff Random Function618356
-Node: Ordinal Functions619372
-Ref: Ordinal Functions-Footnote-1622435
-Ref: Ordinal Functions-Footnote-2622687
-Node: Join Function622898
-Ref: Join Function-Footnote-1624667
-Node: Getlocaltime Function624867
-Node: Readfile Function628611
-Node: Shell Quoting630581
-Node: Data File Management631982
-Node: Filetrans Function632614
-Node: Rewind Function636670
-Node: File Checking638057
-Ref: File Checking-Footnote-1639389
-Node: Empty Files639590
-Node: Ignoring Assigns641569
-Node: Getopt Function643120
-Ref: Getopt Function-Footnote-1654582
-Node: Passwd Functions654782
-Ref: Passwd Functions-Footnote-1663619
-Node: Group Functions663707
-Ref: Group Functions-Footnote-1671601
-Node: Walking Arrays671814
-Node: Library Functions Summary673417
-Node: Library Exercises674818
-Node: Sample Programs676098
-Node: Running Examples676868
-Node: Clones677596
-Node: Cut Program678820
-Node: Egrep Program688539
-Ref: Egrep Program-Footnote-1696037
-Node: Id Program696147
-Node: Split Program699792
-Ref: Split Program-Footnote-1703240
-Node: Tee Program703368
-Node: Uniq Program706157
-Node: Wc Program713576
-Ref: Wc Program-Footnote-1717826
-Node: Miscellaneous Programs717920
-Node: Dupword Program719133
-Node: Alarm Program721164
-Node: Translate Program725968
-Ref: Translate Program-Footnote-1730533
-Node: Labels Program730803
-Ref: Labels Program-Footnote-1734154
-Node: Word Sorting734238
-Node: History Sorting738309
-Node: Extract Program740145
-Node: Simple Sed747670
-Node: Igawk Program750738
-Ref: Igawk Program-Footnote-1765062
-Ref: Igawk Program-Footnote-2765263
-Ref: Igawk Program-Footnote-3765385
-Node: Anagram Program765500
-Node: Signature Program768557
-Node: Programs Summary769804
-Node: Programs Exercises770997
-Ref: Programs Exercises-Footnote-1775128
-Node: Advanced Features775219
-Node: Nondecimal Data777167
-Node: Array Sorting778757
-Node: Controlling Array Traversal779454
-Ref: Controlling Array Traversal-Footnote-1787787
-Node: Array Sorting Functions787905
-Ref: Array Sorting Functions-Footnote-1791794
-Node: Two-way I/O791990
-Ref: Two-way I/O-Footnote-1796935
-Ref: Two-way I/O-Footnote-2797121
-Node: TCP/IP Networking797203
-Node: Profiling800076
-Node: Advanced Features Summary808353
-Node: Internationalization810286
-Node: I18N and L10N811766
-Node: Explaining gettext812452
-Ref: Explaining gettext-Footnote-1817477
-Ref: Explaining gettext-Footnote-2817661
-Node: Programmer i18n817826
-Ref: Programmer i18n-Footnote-1822692
-Node: Translator i18n822741
-Node: String Extraction823535
-Ref: String Extraction-Footnote-1824666
-Node: Printf Ordering824752
-Ref: Printf Ordering-Footnote-1827538
-Node: I18N Portability827602
-Ref: I18N Portability-Footnote-1830057
-Node: I18N Example830120
-Ref: I18N Example-Footnote-1832923
-Node: Gawk I18N832995
-Node: I18N Summary833633
-Node: Debugger834972
-Node: Debugging835994
-Node: Debugging Concepts836435
-Node: Debugging Terms838288
-Node: Awk Debugging840860
-Node: Sample Debugging Session841754
-Node: Debugger Invocation842274
-Node: Finding The Bug843658
-Node: List of Debugger Commands850133
-Node: Breakpoint Control851466
-Node: Debugger Execution Control855162
-Node: Viewing And Changing Data858526
-Node: Execution Stack861904
-Node: Debugger Info863541
-Node: Miscellaneous Debugger Commands867558
-Node: Readline Support872587
-Node: Limitations873479
-Node: Debugging Summary875593
-Node: Arbitrary Precision Arithmetic876761
-Node: Computer Arithmetic878177
-Ref: table-numeric-ranges881775
-Ref: Computer Arithmetic-Footnote-1882634
-Node: Math Definitions882691
-Ref: table-ieee-formats885979
-Ref: Math Definitions-Footnote-1886583
-Node: MPFR features886688
-Node: FP Math Caution888359
-Ref: FP Math Caution-Footnote-1889409
-Node: Inexactness of computations889778
-Node: Inexact representation890737
-Node: Comparing FP Values892094
-Node: Errors accumulate893176
-Node: Getting Accuracy894609
-Node: Try To Round897271
-Node: Setting precision898170
-Ref: table-predefined-precision-strings898854
-Node: Setting the rounding mode900643
-Ref: table-gawk-rounding-modes901007
-Ref: Setting the rounding mode-Footnote-1904462
-Node: Arbitrary Precision Integers904641
-Ref: Arbitrary Precision Integers-Footnote-1909540
-Node: POSIX Floating Point Problems909689
-Ref: POSIX Floating Point Problems-Footnote-1913562
-Node: Floating point summary913600
-Node: Dynamic Extensions915794
-Node: Extension Intro917346
-Node: Plugin License918612
-Node: Extension Mechanism Outline919409
-Ref: figure-load-extension919837
-Ref: figure-register-new-function921317
-Ref: figure-call-new-function922321
-Node: Extension API Description924307
-Node: Extension API Functions Introduction925757
-Node: General Data Types930581
-Ref: General Data Types-Footnote-1936320
-Node: Memory Allocation Functions936619
-Ref: Memory Allocation Functions-Footnote-1939458
-Node: Constructor Functions939554
-Node: Registration Functions941288
-Node: Extension Functions941973
-Node: Exit Callback Functions944270
-Node: Extension Version String945518
-Node: Input Parsers946183
-Node: Output Wrappers956062
-Node: Two-way processors960577
-Node: Printing Messages962781
-Ref: Printing Messages-Footnote-1963857
-Node: Updating `ERRNO'964009
-Node: Requesting Values964749
-Ref: table-value-types-returned965477
-Node: Accessing Parameters966434
-Node: Symbol Table Access967665
-Node: Symbol table by name968179
-Node: Symbol table by cookie970160
-Ref: Symbol table by cookie-Footnote-1974304
-Node: Cached values974367
-Ref: Cached values-Footnote-1977866
-Node: Array Manipulation977957
-Ref: Array Manipulation-Footnote-1979055
-Node: Array Data Types979092
-Ref: Array Data Types-Footnote-1981747
-Node: Array Functions981839
-Node: Flattening Arrays985693
-Node: Creating Arrays992585
-Node: Extension API Variables997356
-Node: Extension Versioning997992
-Node: Extension API Informational Variables999893
-Node: Extension API Boilerplate1000958
-Node: Finding Extensions1004767
-Node: Extension Example1005327
-Node: Internal File Description1006099
-Node: Internal File Ops1010166
-Ref: Internal File Ops-Footnote-11021836
-Node: Using Internal File Ops1021976
-Ref: Using Internal File Ops-Footnote-11024359
-Node: Extension Samples1024632
-Node: Extension Sample File Functions1026158
-Node: Extension Sample Fnmatch1033796
-Node: Extension Sample Fork1035287
-Node: Extension Sample Inplace1036502
-Node: Extension Sample Ord1038177
-Node: Extension Sample Readdir1039013
-Ref: table-readdir-file-types1039889
-Node: Extension Sample Revout1040700
-Node: Extension Sample Rev2way1041290
-Node: Extension Sample Read write array1042030
-Node: Extension Sample Readfile1043970
-Node: Extension Sample Time1045065
-Node: Extension Sample API Tests1046414
-Node: gawkextlib1046905
-Node: Extension summary1049563
-Node: Extension Exercises1053252
-Node: Language History1053974
-Node: V7/SVR3.11055630
-Node: SVR41057811
-Node: POSIX1059256
-Node: BTL1060645
-Node: POSIX/GNU1061379
-Node: Feature History1067003
-Node: Common Extensions1080101
-Node: Ranges and Locales1081425
-Ref: Ranges and Locales-Footnote-11086043
-Ref: Ranges and Locales-Footnote-21086070
-Ref: Ranges and Locales-Footnote-31086304
-Node: Contributors1086525
-Node: History summary1092066
-Node: Installation1093436
-Node: Gawk Distribution1094382
-Node: Getting1094866
-Node: Extracting1095689
-Node: Distribution contents1097324
-Node: Unix Installation1103389
-Node: Quick Installation1104072
-Node: Shell Startup Files1106483
-Node: Additional Configuration Options1107562
-Node: Configuration Philosophy1109301
-Node: Non-Unix Installation1111670
-Node: PC Installation1112128
-Node: PC Binary Installation1113447
-Node: PC Compiling1115295
-Ref: PC Compiling-Footnote-11118316
-Node: PC Testing1118425
-Node: PC Using1119601
-Node: Cygwin1123716
-Node: MSYS1124539
-Node: VMS Installation1125039
-Node: VMS Compilation1125831
-Ref: VMS Compilation-Footnote-11127053
-Node: VMS Dynamic Extensions1127111
-Node: VMS Installation Details1128795
-Node: VMS Running1131047
-Node: VMS GNV1133883
-Node: VMS Old Gawk1134617
-Node: Bugs1135087
-Node: Other Versions1138970
-Node: Installation summary1145398
-Node: Notes1146454
-Node: Compatibility Mode1147319
-Node: Additions1148101
-Node: Accessing The Source1149026
-Node: Adding Code1150462
-Node: New Ports1156627
-Node: Derived Files1161109
-Ref: Derived Files-Footnote-11166584
-Ref: Derived Files-Footnote-21166618
-Ref: Derived Files-Footnote-31167214
-Node: Future Extensions1167328
-Node: Implementation Limitations1167934
-Node: Extension Design1169182
-Node: Old Extension Problems1170336
-Ref: Old Extension Problems-Footnote-11171853
-Node: Extension New Mechanism Goals1171910
-Ref: Extension New Mechanism Goals-Footnote-11175270
-Node: Extension Other Design Decisions1175459
-Node: Extension Future Growth1177567
-Node: Old Extension Mechanism1178403
-Node: Notes summary1180165
-Node: Basic Concepts1181351
-Node: Basic High Level1182032
-Ref: figure-general-flow1182304
-Ref: figure-process-flow1182903
-Ref: Basic High Level-Footnote-11186132
-Node: Basic Data Typing1186317
-Node: Glossary1189645
-Node: Copying1214803
-Node: GNU Free Documentation License1252359
-Node: Index1277495
+Node: Foreword342385
+Node: Foreword446829
+Node: Preface48360
+Ref: Preface-Footnote-151231
+Ref: Preface-Footnote-251338
+Ref: Preface-Footnote-351571
+Node: History51713
+Node: Names54064
+Ref: Names-Footnote-155157
+Node: This Manual55303
+Ref: This Manual-Footnote-161803
+Node: Conventions61903
+Node: Manual History64240
+Ref: Manual History-Footnote-167233
+Ref: Manual History-Footnote-267274
+Node: How To Contribute67348
+Node: Acknowledgments68477
+Node: Getting Started73294
+Node: Running gawk75733
+Node: One-shot76923
+Node: Read Terminal78187
+Node: Long80218
+Node: Executable Scripts81731
+Ref: Executable Scripts-Footnote-184520
+Node: Comments84623
+Node: Quoting87105
+Node: DOS Quoting92623
+Node: Sample Data Files93298
+Node: Very Simple95893
+Node: Two Rules100792
+Node: More Complex102678
+Node: Statements/Lines105540
+Ref: Statements/Lines-Footnote-1109995
+Node: Other Features110260
+Node: When111191
+Ref: When-Footnote-1112945
+Node: Intro Summary113010
+Node: Invoking Gawk113893
+Node: Command Line115407
+Node: Options116205
+Ref: Options-Footnote-1132009
+Ref: Options-Footnote-2132238
+Node: Other Arguments132263
+Node: Naming Standard Input135211
+Node: Environment Variables136304
+Node: AWKPATH Variable136862
+Ref: AWKPATH Variable-Footnote-1140275
+Ref: AWKPATH Variable-Footnote-2140320
+Node: AWKLIBPATH Variable140580
+Node: Other Environment Variables141836
+Node: Exit Status145324
+Node: Include Files146000
+Node: Loading Shared Libraries149597
+Node: Obsolete151024
+Node: Undocumented151721
+Node: Invoking Summary151988
+Node: Regexp153652
+Node: Regexp Usage155106
+Node: Escape Sequences157143
+Node: Regexp Operators163384
+Ref: Regexp Operators-Footnote-1170810
+Ref: Regexp Operators-Footnote-2170957
+Node: Bracket Expressions171055
+Ref: table-char-classes173070
+Node: Leftmost Longest175994
+Node: Computed Regexps177296
+Node: GNU Regexp Operators180693
+Node: Case-sensitivity184366
+Ref: Case-sensitivity-Footnote-1187251
+Ref: Case-sensitivity-Footnote-2187486
+Node: Regexp Summary187594
+Node: Reading Files189061
+Node: Records191224
+Node: awk split records191957
+Node: gawk split records196872
+Ref: gawk split records-Footnote-1201416
+Node: Fields201453
+Ref: Fields-Footnote-1204229
+Node: Nonconstant Fields204315
+Ref: Nonconstant Fields-Footnote-1206558
+Node: Changing Fields206762
+Node: Field Separators212691
+Node: Default Field Splitting215396
+Node: Regexp Field Splitting216513
+Node: Single Character Fields219863
+Node: Command Line Field Separator220922
+Node: Full Line Fields224134
+Ref: Full Line Fields-Footnote-1225651
+Ref: Full Line Fields-Footnote-2225697
+Node: Field Splitting Summary225798
+Node: Constant Size227872
+Node: Splitting By Content232461
+Ref: Splitting By Content-Footnote-1236455
+Node: Multiple Line236618
+Ref: Multiple Line-Footnote-1242504
+Node: Getline242683
+Node: Plain Getline245167
+Node: Getline/Variable247807
+Node: Getline/File248955
+Node: Getline/Variable/File250339
+Ref: Getline/Variable/File-Footnote-1251942
+Node: Getline/Pipe252029
+Node: Getline/Variable/Pipe254712
+Node: Getline/Coprocess255843
+Node: Getline/Variable/Coprocess257095
+Node: Getline Notes257834
+Node: Getline Summary260626
+Ref: table-getline-variants261038
+Node: Read Timeout261867
+Ref: Read Timeout-Footnote-1265757
+Node: Retrying Input265815
+Node: Command-line directories267010
+Node: Input Summary267917
+Node: Input Exercises271218
+Node: Printing271946
+Node: Print273723
+Node: Print Examples275180
+Node: Output Separators277959
+Node: OFMT279977
+Node: Printf281331
+Node: Basic Printf282116
+Node: Control Letters283686
+Node: Format Modifiers287669
+Node: Printf Examples293678
+Node: Redirection296164
+Node: Special FD303005
+Ref: Special FD-Footnote-1306165
+Node: Special Files306239
+Node: Other Inherited Files306856
+Node: Special Network307856
+Node: Special Caveats308718
+Node: Close Files And Pipes309669
+Ref: Close Files And Pipes-Footnote-1316851
+Ref: Close Files And Pipes-Footnote-2316999
+Node: Output Summary317149
+Node: Output Exercises318147
+Node: Expressions318827
+Node: Values320012
+Node: Constants320690
+Node: Scalar Constants321381
+Ref: Scalar Constants-Footnote-1322240
+Node: Nondecimal-numbers322490
+Node: Regexp Constants325508
+Node: Using Constant Regexps326033
+Node: Variables329176
+Node: Using Variables329831
+Node: Assignment Options331742
+Node: Conversion333617
+Node: Strings And Numbers334141
+Ref: Strings And Numbers-Footnote-1337206
+Node: Locale influences conversions337315
+Ref: table-locale-affects340062
+Node: All Operators340650
+Node: Arithmetic Ops341280
+Node: Concatenation343785
+Ref: Concatenation-Footnote-1346604
+Node: Assignment Ops346710
+Ref: table-assign-ops351689
+Node: Increment Ops352961
+Node: Truth Values and Conditions356399
+Node: Truth Values357484
+Node: Typing and Comparison358533
+Node: Variable Typing359343
+Node: Comparison Operators362996
+Ref: table-relational-ops363406
+Node: POSIX String Comparison366901
+Ref: POSIX String Comparison-Footnote-1367973
+Node: Boolean Ops368111
+Ref: Boolean Ops-Footnote-1372590
+Node: Conditional Exp372681
+Node: Function Calls374408
+Node: Precedence378288
+Node: Locales381949
+Node: Expressions Summary383581
+Node: Patterns and Actions386141
+Node: Pattern Overview387261
+Node: Regexp Patterns388940
+Node: Expression Patterns389483
+Node: Ranges393193
+Node: BEGIN/END396299
+Node: Using BEGIN/END397060
+Ref: Using BEGIN/END-Footnote-1399794
+Node: I/O And BEGIN/END399900
+Node: BEGINFILE/ENDFILE402214
+Node: Empty405115
+Node: Using Shell Variables405432
+Node: Action Overview407705
+Node: Statements410031
+Node: If Statement411879
+Node: While Statement413374
+Node: Do Statement415403
+Node: For Statement416547
+Node: Switch Statement419704
+Node: Break Statement422086
+Node: Continue Statement424127
+Node: Next Statement425954
+Node: Nextfile Statement428335
+Node: Exit Statement430965
+Node: Built-in Variables433368
+Node: User-modified434501
+Ref: User-modified-Footnote-1442182
+Node: Auto-set442244
+Ref: Auto-set-Footnote-1456460
+Ref: Auto-set-Footnote-2456665
+Node: ARGC and ARGV456721
+Node: Pattern Action Summary460939
+Node: Arrays463366
+Node: Array Basics464695
+Node: Array Intro465539
+Ref: figure-array-elements467503
+Ref: Array Intro-Footnote-1470029
+Node: Reference to Elements470157
+Node: Assigning Elements472609
+Node: Array Example473100
+Node: Scanning an Array474858
+Node: Controlling Scanning477874
+Ref: Controlling Scanning-Footnote-1483070
+Node: Numeric Array Subscripts483386
+Node: Uninitialized Subscripts485571
+Node: Delete487188
+Ref: Delete-Footnote-1489931
+Node: Multidimensional489988
+Node: Multiscanning493085
+Node: Arrays of Arrays494674
+Node: Arrays Summary499433
+Node: Functions501525
+Node: Built-in502424
+Node: Calling Built-in503502
+Node: Numeric Functions505493
+Ref: Numeric Functions-Footnote-1510312
+Ref: Numeric Functions-Footnote-2510669
+Ref: Numeric Functions-Footnote-3510717
+Node: String Functions510989
+Ref: String Functions-Footnote-1534464
+Ref: String Functions-Footnote-2534593
+Ref: String Functions-Footnote-3534841
+Node: Gory Details534928
+Ref: table-sub-escapes536709
+Ref: table-sub-proposed538229
+Ref: table-posix-sub539593
+Ref: table-gensub-escapes541129
+Ref: Gory Details-Footnote-1541961
+Node: I/O Functions542112
+Ref: I/O Functions-Footnote-1549330
+Node: Time Functions549477
+Ref: Time Functions-Footnote-1559965
+Ref: Time Functions-Footnote-2560033
+Ref: Time Functions-Footnote-3560191
+Ref: Time Functions-Footnote-4560302
+Ref: Time Functions-Footnote-5560414
+Ref: Time Functions-Footnote-6560641
+Node: Bitwise Functions560907
+Ref: table-bitwise-ops561469
+Ref: Bitwise Functions-Footnote-1565778
+Node: Type Functions565947
+Node: I18N Functions567098
+Node: User-defined568743
+Node: Definition Syntax569548
+Ref: Definition Syntax-Footnote-1574955
+Node: Function Example575026
+Ref: Function Example-Footnote-1577945
+Node: Function Caveats577967
+Node: Calling A Function578485
+Node: Variable Scope579443
+Node: Pass By Value/Reference582431
+Node: Return Statement585926
+Node: Dynamic Typing588907
+Node: Indirect Calls589836
+Ref: Indirect Calls-Footnote-1601138
+Node: Functions Summary601266
+Node: Library Functions603968
+Ref: Library Functions-Footnote-1607577
+Ref: Library Functions-Footnote-2607720
+Node: Library Names607891
+Ref: Library Names-Footnote-1611345
+Ref: Library Names-Footnote-2611568
+Node: General Functions611654
+Node: Strtonum Function612757
+Node: Assert Function615779
+Node: Round Function619103
+Node: Cliff Random Function620644
+Node: Ordinal Functions621660
+Ref: Ordinal Functions-Footnote-1624723
+Ref: Ordinal Functions-Footnote-2624975
+Node: Join Function625186
+Ref: Join Function-Footnote-1626955
+Node: Getlocaltime Function627155
+Node: Readfile Function630899
+Node: Shell Quoting632869
+Node: Data File Management634270
+Node: Filetrans Function634902
+Node: Rewind Function638958
+Node: File Checking640345
+Ref: File Checking-Footnote-1641677
+Node: Empty Files641878
+Node: Ignoring Assigns643857
+Node: Getopt Function645408
+Ref: Getopt Function-Footnote-1656870
+Node: Passwd Functions657070
+Ref: Passwd Functions-Footnote-1665907
+Node: Group Functions665995
+Ref: Group Functions-Footnote-1673889
+Node: Walking Arrays674102
+Node: Library Functions Summary675705
+Node: Library Exercises677106
+Node: Sample Programs678386
+Node: Running Examples679156
+Node: Clones679884
+Node: Cut Program681108
+Node: Egrep Program690827
+Ref: Egrep Program-Footnote-1698325
+Node: Id Program698435
+Node: Split Program702080
+Ref: Split Program-Footnote-1705528
+Node: Tee Program705656
+Node: Uniq Program708445
+Node: Wc Program715864
+Ref: Wc Program-Footnote-1720114
+Node: Miscellaneous Programs720208
+Node: Dupword Program721421
+Node: Alarm Program723452
+Node: Translate Program728256
+Ref: Translate Program-Footnote-1732821
+Node: Labels Program733091
+Ref: Labels Program-Footnote-1736442
+Node: Word Sorting736526
+Node: History Sorting740597
+Node: Extract Program742433
+Node: Simple Sed749958
+Node: Igawk Program753026
+Ref: Igawk Program-Footnote-1767350
+Ref: Igawk Program-Footnote-2767551
+Ref: Igawk Program-Footnote-3767673
+Node: Anagram Program767788
+Node: Signature Program770845
+Node: Programs Summary772092
+Node: Programs Exercises773285
+Ref: Programs Exercises-Footnote-1777416
+Node: Advanced Features777507
+Node: Nondecimal Data779455
+Node: Array Sorting781045
+Node: Controlling Array Traversal781742
+Ref: Controlling Array Traversal-Footnote-1790075
+Node: Array Sorting Functions790193
+Ref: Array Sorting Functions-Footnote-1794082
+Node: Two-way I/O794278
+Ref: Two-way I/O-Footnote-1799223
+Ref: Two-way I/O-Footnote-2799409
+Node: TCP/IP Networking799491
+Node: Profiling802364
+Node: Advanced Features Summary810641
+Node: Internationalization812574
+Node: I18N and L10N814054
+Node: Explaining gettext814740
+Ref: Explaining gettext-Footnote-1819765
+Ref: Explaining gettext-Footnote-2819949
+Node: Programmer i18n820114
+Ref: Programmer i18n-Footnote-1824980
+Node: Translator i18n825029
+Node: String Extraction825823
+Ref: String Extraction-Footnote-1826954
+Node: Printf Ordering827040
+Ref: Printf Ordering-Footnote-1829826
+Node: I18N Portability829890
+Ref: I18N Portability-Footnote-1832345
+Node: I18N Example832408
+Ref: I18N Example-Footnote-1835211
+Node: Gawk I18N835283
+Node: I18N Summary835921
+Node: Debugger837260
+Node: Debugging838282
+Node: Debugging Concepts838723
+Node: Debugging Terms840576
+Node: Awk Debugging843148
+Node: Sample Debugging Session844042
+Node: Debugger Invocation844562
+Node: Finding The Bug845946
+Node: List of Debugger Commands852421
+Node: Breakpoint Control853754
+Node: Debugger Execution Control857450
+Node: Viewing And Changing Data860814
+Node: Execution Stack864192
+Node: Debugger Info865829
+Node: Miscellaneous Debugger Commands869846
+Node: Readline Support874875
+Node: Limitations875767
+Node: Debugging Summary877881
+Node: Arbitrary Precision Arithmetic879049
+Node: Computer Arithmetic880465
+Ref: table-numeric-ranges884063
+Ref: Computer Arithmetic-Footnote-1884922
+Node: Math Definitions884979
+Ref: table-ieee-formats888267
+Ref: Math Definitions-Footnote-1888871
+Node: MPFR features888976
+Node: FP Math Caution890647
+Ref: FP Math Caution-Footnote-1891697
+Node: Inexactness of computations892066
+Node: Inexact representation893025
+Node: Comparing FP Values894382
+Node: Errors accumulate895464
+Node: Getting Accuracy896897
+Node: Try To Round899559
+Node: Setting precision900458
+Ref: table-predefined-precision-strings901142
+Node: Setting the rounding mode902931
+Ref: table-gawk-rounding-modes903295
+Ref: Setting the rounding mode-Footnote-1906750
+Node: Arbitrary Precision Integers906929
+Ref: Arbitrary Precision Integers-Footnote-1911828
+Node: POSIX Floating Point Problems911977
+Ref: POSIX Floating Point Problems-Footnote-1915850
+Node: Floating point summary915888
+Node: Dynamic Extensions918082
+Node: Extension Intro919634
+Node: Plugin License920900
+Node: Extension Mechanism Outline921697
+Ref: figure-load-extension922125
+Ref: figure-register-new-function923605
+Ref: figure-call-new-function924609
+Node: Extension API Description926595
+Node: Extension API Functions Introduction928129
+Node: General Data Types933001
+Ref: General Data Types-Footnote-1938740
+Node: Memory Allocation Functions939039
+Ref: Memory Allocation Functions-Footnote-1941878
+Node: Constructor Functions941974
+Node: Registration Functions943708
+Node: Extension Functions944393
+Node: Exit Callback Functions946690
+Node: Extension Version String947938
+Node: Input Parsers948603
+Node: Output Wrappers958482
+Node: Two-way processors962997
+Node: Printing Messages965201
+Ref: Printing Messages-Footnote-1966277
+Node: Updating `ERRNO'966429
+Node: Requesting Values967169
+Ref: table-value-types-returned967897
+Node: Accessing Parameters968854
+Node: Symbol Table Access970085
+Node: Symbol table by name970599
+Node: Symbol table by cookie972580
+Ref: Symbol table by cookie-Footnote-1976724
+Node: Cached values976787
+Ref: Cached values-Footnote-1980286
+Node: Array Manipulation980377
+Ref: Array Manipulation-Footnote-1981467
+Node: Array Data Types981504
+Ref: Array Data Types-Footnote-1984159
+Node: Array Functions984251
+Node: Flattening Arrays988105
+Node: Creating Arrays994997
+Node: Redirection API999768
+Node: Extension API Variables1002539
+Node: Extension Versioning1003172
+Node: Extension API Informational Variables1005073
+Node: Extension API Boilerplate1006138
+Node: Finding Extensions1009947
+Node: Extension Example1010507
+Node: Internal File Description1011279
+Node: Internal File Ops1015346
+Ref: Internal File Ops-Footnote-11027016
+Node: Using Internal File Ops1027156
+Ref: Using Internal File Ops-Footnote-11029539
+Node: Extension Samples1029812
+Node: Extension Sample File Functions1031338
+Node: Extension Sample Fnmatch1038976
+Node: Extension Sample Fork1040467
+Node: Extension Sample Inplace1041682
+Node: Extension Sample Ord1043357
+Node: Extension Sample Readdir1044193
+Ref: table-readdir-file-types1045069
+Node: Extension Sample Revout1045880
+Node: Extension Sample Rev2way1046470
+Node: Extension Sample Read write array1047210
+Node: Extension Sample Readfile1049150
+Node: Extension Sample Time1050245
+Node: Extension Sample API Tests1051594
+Node: gawkextlib1052085
+Node: Extension summary1054743
+Node: Extension Exercises1058432
+Node: Language History1059154
+Node: V7/SVR3.11060810
+Node: SVR41062991
+Node: POSIX1064436
+Node: BTL1065825
+Node: POSIX/GNU1066559
+Node: Feature History1072183
+Node: Common Extensions1085281
+Node: Ranges and Locales1086605
+Ref: Ranges and Locales-Footnote-11091223
+Ref: Ranges and Locales-Footnote-21091250
+Ref: Ranges and Locales-Footnote-31091484
+Node: Contributors1091705
+Node: History summary1097246
+Node: Installation1098616
+Node: Gawk Distribution1099562
+Node: Getting1100046
+Node: Extracting1100869
+Node: Distribution contents1102504
+Node: Unix Installation1108569
+Node: Quick Installation1109252
+Node: Shell Startup Files1111663
+Node: Additional Configuration Options1112742
+Node: Configuration Philosophy1114481
+Node: Non-Unix Installation1116850
+Node: PC Installation1117308
+Node: PC Binary Installation1118627
+Node: PC Compiling1120475
+Ref: PC Compiling-Footnote-11123496
+Node: PC Testing1123605
+Node: PC Using1124781
+Node: Cygwin1128896
+Node: MSYS1129719
+Node: VMS Installation1130219
+Node: VMS Compilation1131011
+Ref: VMS Compilation-Footnote-11132233
+Node: VMS Dynamic Extensions1132291
+Node: VMS Installation Details1133975
+Node: VMS Running1136227
+Node: VMS GNV1139063
+Node: VMS Old Gawk1139797
+Node: Bugs1140267
+Node: Other Versions1144150
+Node: Installation summary1150578
+Node: Notes1151634
+Node: Compatibility Mode1152499
+Node: Additions1153281
+Node: Accessing The Source1154206
+Node: Adding Code1155642
+Node: New Ports1161807
+Node: Derived Files1166289
+Ref: Derived Files-Footnote-11171764
+Ref: Derived Files-Footnote-21171798
+Ref: Derived Files-Footnote-31172394
+Node: Future Extensions1172508
+Node: Implementation Limitations1173114
+Node: Extension Design1174362
+Node: Old Extension Problems1175516
+Ref: Old Extension Problems-Footnote-11177033
+Node: Extension New Mechanism Goals1177090
+Ref: Extension New Mechanism Goals-Footnote-11180450
+Node: Extension Other Design Decisions1180639
+Node: Extension Future Growth1182747
+Node: Old Extension Mechanism1183583
+Node: Notes summary1185345
+Node: Basic Concepts1186531
+Node: Basic High Level1187212
+Ref: figure-general-flow1187484
+Ref: figure-process-flow1188083
+Ref: Basic High Level-Footnote-11191312
+Node: Basic Data Typing1191497
+Node: Glossary1194825
+Node: Copying1219983
+Node: GNU Free Documentation License1257539
+Node: Index1282675

End Tag Table