diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1340 |
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 |