diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1408 |
1 files changed, 718 insertions, 690 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 7e013b6e..94c10b3b 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -14,8 +14,8 @@ END-INFO-DIR-ENTRY Software Foundation, Inc. - This is Edition 4 of `GAWK: Effective AWK Programming: A User's -Guide for GNU Awk', for the 4.0.2 (or later) version of the GNU + This is Edition 4.1 of `GAWK: Effective AWK Programming: A User's +Guide for GNU Awk', for the 4.1.0 (or later) version of the GNU implementation of AWK. Permission is granted to copy, distribute and/or modify this document @@ -46,8 +46,8 @@ particular records in a file and perform operations upon them. Software Foundation, Inc. - This is Edition 4 of `GAWK: Effective AWK Programming: A User's -Guide for GNU Awk', for the 4.0.2 (or later) version of the GNU + This is Edition 4.1 of `GAWK: Effective AWK Programming: A User's +Guide for GNU Awk', for the 4.1.0 (or later) version of the GNU implementation of AWK. Permission is granted to copy, distribute and/or modify this document @@ -1011,7 +1011,7 @@ for translating program messages into different languages at runtime. arithmetic facilities provided by `gawk'. *note Dynamic Extensions::, describes how to add new variables and -functions to `gawk' by writing extensions in C. +functions to `gawk' by writing extensions in C or C++. Part IV provides the appendices, the Glossary, and two licenses that cover the `gawk' source code and this Info file, respectively. It @@ -1032,8 +1032,7 @@ directions for `gawk' development. *note Basic Concepts::, provides some very cursory background material for those who are completely unfamiliar with computer -programming. Also centralized there is a discussion of some of the -issues surrounding floating-point numbers. +programming. The *note Glossary::, defines most, if not all, the significant terms used throughout the book. If you find terms that you aren't @@ -1155,10 +1154,11 @@ Guide'. This edition maintains the basic structure of the previous editions. For Edition 4.0, the content has been thoroughly reviewed and updated. All references to `gawk' versions prior to 4.0 have been removed. Of -significant note for this edition is *note Debugger::. +significant note for this edition was *note Debugger::. For edition 4.1, the content has been reorganized into parts, and -the major new addition is *note Dynamic Extensions::. +the major new additions are *note Arbitrary Precision Arithmetic::, and +*note Dynamic Extensions::. `GAWK: Effective AWK Programming' will undoubtedly continue to evolve. An electronic version comes with the `gawk' distribution from @@ -1289,7 +1289,7 @@ to take advantage of those opportunities. Arnold Robbins Nof Ayalon ISRAEL -April, 2013 +May, 2013 File: gawk.info, Node: Getting Started, Next: Invoking Gawk, Prev: Preface, Up: Top @@ -7143,8 +7143,8 @@ decimal point when reading the `awk' program source code, and for command-line variable assignments (*note Other Arguments::). However, when interpreting input data, for `print' and `printf' output, and for number to string conversion, the local decimal point character is used. -Here are some examples indicating the difference in behavior, on a -GNU/Linux system: +(d.c.). Here are some examples indicating the difference in behavior, +on a GNU/Linux system: $ export POSIXLY_CORRECT=1 Force POSIX behavior $ gawk 'BEGIN { printf "%g\n", 3.1415927 }' @@ -7241,17 +7241,17 @@ scores: The following list provides the arithmetic operators in `awk', in order from the highest precedence to the lowest: +`X ^ Y' +`X ** Y' + Exponentiation; X raised to the Y power. `2 ^ 3' has the value + eight; the character sequence `**' is equivalent to `^'. (c.e.) + `- X' Negation. `+ X' Unary plus; the expression is converted to a number. -`X ^ Y' -`X ** Y' - Exponentiation; X raised to the Y power. `2 ^ 3' has the value - eight; the character sequence `**' is equivalent to `^'. (c.e.) - `X * Y' Multiplication. @@ -8669,8 +8669,8 @@ program are merged, in the order they are read by `gawk', and all reads the first record from a file. `FILENAME' is set to the name of the current file, and `FNR' is set to zero. - The `BEGINFILE' rule provides you the opportunity for two tasks that -would otherwise be difficult or impossible to perform: + The `BEGINFILE' rule provides you the opportunity to accomplish two +tasks that would otherwise be difficult or impossible to perform: * You can test if the file is readable. Normally, it is a fatal error if a file named on the command line cannot be opened for @@ -11334,6 +11334,8 @@ pound sign (`#'): If FIND is not found, `index()' returns zero. (Remember that string indices in `awk' start at one.) + It is a fatal error to use a regexp constant for FIND. + `length([STRING])' Return the number of characters in STRING. If STRING is a number, the length of the digit string representing that number is @@ -18649,7 +18651,8 @@ output. They are as follows: scalar, it gets parenthesized. * `gawk' supplies leading comments in front of the `BEGIN' and `END' - rules, the pattern/action rules, and the functions. + rules, the `BEGINFILE' and `ENDFILE' rules, the pattern/action + rules, and the functions. The profiled version of your program may not look exactly like what @@ -18805,7 +18808,7 @@ in this order: `fr.po' for a French translation. 5. Each language's `.po' file is converted into a binary message - object (`.mo') file. A message object file contains the original + object (`.gmo') file. A message object file contains the original messages and their translations in a binary format that allows fast lookup of translations at runtime. @@ -18813,7 +18816,7 @@ in this order: are installed in a standard place. 7. For testing and development, it is possible to tell `gettext' to - use `.mo' files in a different directory than the standard one by + use `.gmo' files in a different directory than the standard one by using the `bindtextdomain()' function. 8. At runtime, `guide' looks up each string via a call to @@ -18944,7 +18947,7 @@ internationalization: function apply. `bindtextdomain(DIRECTORY [, DOMAIN])' - Change the directory in which `gettext' looks for `.mo' files, in + Change the directory in which `gettext' looks for `.gmo' files, in case they will not or cannot be placed in the standard locations (e.g., during testing). Return the directory in which DOMAIN is "bound." @@ -18984,7 +18987,7 @@ outlined in *note Explaining gettext::, like so: (`"adminprog"') in which to find the message, but it uses the default `"LC_MESSAGES"' category. - 4. During development, you might want to put the `.mo' file in a + 4. During development, you might want to put the `.gmo' file in a private directory for testing. This is done with the `bindtextdomain()' built-in function: @@ -19248,19 +19251,19 @@ Following are the translations: msgstr "Like, the scoop is" The next step is to make the directory to hold the binary message -object file and then to create the `guide.mo' file. The directory +object file and then to create the `guide.gmo' file. The directory layout shown here is standard for GNU `gettext' on GNU/Linux systems. Other versions of `gettext' may use a different layout: $ mkdir en_US en_US/LC_MESSAGES The `msgfmt' utility does the conversion from human-readable `.po' -file to machine-readable `.mo' file. By default, `msgfmt' creates a +file to machine-readable `.gmo' file. By default, `msgfmt' creates a file named `messages'. This file must be renamed and placed in the proper directory so that `gawk' can find it: $ msgfmt guide-mellow.po - $ mv messages en_US/LC_MESSAGES/guide.mo + $ mv messages en_US/LC_MESSAGES/guide.gmo Finally, we run the program to test it: @@ -25141,6 +25144,10 @@ Feature BWK Awk Mawk GNU Awk `BINMODE' variable X X Time related functions X X + (Technically speaking, as of late 2012, `fflush()', `delete ARRAY', +and `nextfile' are no longer extensions, since they have been added to +POSIX.) + File: gawk.info, Node: Ranges and Locales, Next: Contributors, Prev: Common Extensions, Up: Language History @@ -25315,7 +25322,8 @@ Info file, in approximate chronological order: various PC platforms. * Christos Zoulas provided the `extension()' built-in function for - dynamically adding new modules. (This was removed at `gawk' 4.1.) + dynamically adding new modules. (This was obsoleted at `gawk' + 4.1.) * Ju"rgen Kahrs contributed the initial version of the TCP/IP networking code and documentation, and motivated the inclusion of @@ -25363,6 +25371,8 @@ Info file, in approximate chronological order: - The work to merge the three versions of `gawk' into one, for the 4.1 release. + - Improved array internals for arrays indexed by integers. + * Efraim Yawitz contributed the original text for *note Debugger::. * The development of the extension API first released with `gawk' @@ -25425,7 +25435,7 @@ There are three ways to get GNU software: supported. If you have the `wget' program, you can use a command like the following: - wget http://ftp.gnu.org/gnu/gawk/gawk-4.0.2.tar.gz + wget http://ftp.gnu.org/gnu/gawk/gawk-4.1.0.tar.gz The GNU software archive is mirrored around the world. The up-to-date list of mirror sites is available from the main FSF web site @@ -25444,26 +25454,26 @@ compression programs: `gzip', `bzip2', and `xz'. For simplicity, the rest of these instructions assume you are using the one compressed with the GNU Zip program, `gzip'. - Once you have the distribution (for example, `gawk-4.0.2.tar.gz'), + Once you have the distribution (for example, `gawk-4.1.0.tar.gz'), use `gzip' to expand the file and then use `tar' to extract it. You can use the following pipeline to produce the `gawk' distribution: # Under System V, add 'o' to the tar options - gzip -d -c gawk-4.0.2.tar.gz | tar -xvpf - + gzip -d -c gawk-4.1.0.tar.gz | tar -xvpf - On a system with GNU `tar', you can let `tar' do the decompression for you: - tar -xvpzf gawk-4.0.2.tar.gz + tar -xvpzf gawk-4.1.0.tar.gz -Extracting the archive creates a directory named `gawk-4.0.2' in the +Extracting the archive creates a directory named `gawk-4.1.0' in the current directory. The distribution file name is of the form `gawk-V.R.P.tar.gz'. The V represents the major version of `gawk', the R represents the current release of version V, and the P represents a "patch level", meaning that minor bugs have been fixed in the release. The current patch -level is 2, but when retrieving distributions, you should get the +level is 0, but when retrieving distributions, you should get the version with the highest version, release, and patch level. (Note, however, that patch levels greater than or equal to 70 denote "beta" or nonproduction software; you might not want to retrieve such a version @@ -25658,7 +25668,7 @@ Unix-derived systems, GNU/Linux, BSD-based systems, and the Cygwin environment for MS-Windows. After you have extracted the `gawk' distribution, `cd' to -`gawk-4.0.2'. Like most GNU software, `gawk' is configured +`gawk-4.1.0'. Like most GNU software, `gawk' is configured automatically for your system by running the `configure' program. This program is a Bourne shell script that is generated automatically using GNU `autoconf'. (The `autoconf' software is described fully starting @@ -26068,8 +26078,8 @@ tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make, and other GNU programs. Compilation and installation for Cygwin is the same as for a Unix system: - tar -xvpzf gawk-4.0.2.tar.gz - cd gawk-4.0.2 + tar -xvpzf gawk-4.1.0.tar.gz + cd gawk-4.1.0 ./configure make @@ -27849,7 +27859,7 @@ Octal Thus, `013' is 11 (one times 8 plus 3). *Note Nondecimal-numbers::. -P1003.1, P1003.2 +P1003.1 See "POSIX." Pattern @@ -29267,11 +29277,9 @@ Index * ! (exclamation point), !~ operator: Regexp Usage. (line 19) * " (double quote) <1>: Quoting. (line 37) * " (double quote): Read Terminal. (line 25) -* " (double quote), regexp constants: Computed Regexps. (line 28) +* " (double quote), in regexp constants: Computed Regexps. (line 28) * # (number sign), #! (executable scripts): Executable Scripts. (line 6) -* # (number sign), #! (executable scripts), portability issues with: Executable Scripts. - (line 6) * # (number sign), commenting: Comments. (line 6) * $ (dollar sign): Regexp Operators. (line 35) * $ (dollar sign), $ field operator <1>: Precedence. (line 43) @@ -29306,15 +29314,13 @@ Index * * (asterisk), *= operator: Assignment Ops. (line 129) * + (plus sign): Regexp Operators. (line 102) * + (plus sign), + operator: Precedence. (line 52) -* + (plus sign), ++ (decrement/increment operators): Increment Ops. - (line 11) * + (plus sign), ++ operator <1>: Precedence. (line 46) -* + (plus sign), ++ operator: Increment Ops. (line 40) +* + (plus sign), ++ operator: Increment Ops. (line 11) * + (plus sign), += operator <1>: Precedence. (line 95) * + (plus sign), += operator: Assignment Ops. (line 82) * , (comma), in range patterns: Ranges. (line 6) * - (hyphen), - operator: Precedence. (line 52) -* - (hyphen), -- (decrement/increment) operator: Precedence. (line 46) +* - (hyphen), -- operator <1>: Precedence. (line 46) * - (hyphen), -- operator: Increment Ops. (line 48) * - (hyphen), -= operator <1>: Precedence. (line 95) * - (hyphen), -= operator: Assignment Ops. (line 129) @@ -29380,7 +29386,7 @@ Index * -F option: Options. (line 21) * -f option: Long. (line 12) * -F option, -Ft sets FS to TAB: Options. (line 301) -* -f option, on command line: Options. (line 306) +* -f option, multiple uses: Options. (line 306) * -g option: Options. (line 161) * -h option: Options. (line 168) * -i option: Options. (line 32) @@ -29394,18 +29400,18 @@ Index * -p option: Options. (line 235) * -r option: Options. (line 272) * -S option: Options. (line 279) +* -v option: Assignment Options. (line 12) * -V option: Options. (line 293) * -v option: Options. (line 46) -* -v option, variables, assigning: Assignment Options. (line 12) * -W option: Options. (line 60) * . (period): Regexp Operators. (line 43) -* .mo files: Explaining gettext. (line 41) -* .mo files, converting from .po: I18N Example. (line 62) -* .mo files, specifying directory of <1>: Programmer i18n. (line 47) -* .mo files, specifying directory of: Explaining gettext. (line 53) +* .gmo files: Explaining gettext. (line 41) +* .gmo files, converting from .po: I18N Example. (line 62) +* .gmo files, specifying directory of <1>: Programmer i18n. (line 47) +* .gmo files, specifying directory of: Explaining gettext. (line 53) * .po files <1>: Translator i18n. (line 6) * .po files: Explaining gettext. (line 36) -* .po files, converting to .mo: I18N Example. (line 62) +* .po files, converting to .gmo: I18N Example. (line 62) * .pot files: Explaining gettext. (line 30) * / (forward slash): Regexp. (line 10) * / (forward slash), / operator: Precedence. (line 55) @@ -29486,7 +29492,7 @@ Index * \ (backslash), \x escape sequence: Escape Sequences. (line 61) * \ (backslash), \y operator (gawk): GNU Regexp Operators. (line 38) -* \ (backslash), as field separators: Command Line Field Separator. +* \ (backslash), as field separator: Command Line Field Separator. (line 27) * \ (backslash), continuing lines and <1>: Egrep Program. (line 220) * \ (backslash), continuing lines and: Statements/Lines. (line 19) @@ -29500,17 +29506,17 @@ Index * \ (backslash), in escape sequences: Escape Sequences. (line 6) * \ (backslash), in escape sequences, POSIX and: Escape Sequences. (line 112) -* \ (backslash), regexp constants: Computed Regexps. (line 28) -* ^ (caret) <1>: GNU Regexp Operators. +* \ (backslash), in regexp constants: Computed Regexps. (line 28) +* ^ (caret): GNU Regexp Operators. (line 59) -* ^ (caret): Regexp Operators. (line 22) * ^ (caret), ^ operator: Precedence. (line 49) * ^ (caret), ^= operator <1>: Precedence. (line 95) * ^ (caret), ^= operator: Assignment Ops. (line 129) * ^ (caret), in bracket expressions: Bracket Expressions. (line 17) +* ^ (caret), regexp operator: Regexp Operators. (line 22) * ^, in FS: Regexp Field Splitting. (line 59) -* _ (underscore), _ C macro: Explaining gettext. (line 70) +* _ (underscore), C macro: Explaining gettext. (line 70) * _ (underscore), in names of private variables: Library Names. (line 29) * _ (underscore), translatable string: Programmer i18n. (line 69) @@ -29528,14 +29534,12 @@ Index * adding, fields: Changing Fields. (line 53) * advanced features, fixed-width data: Constant Size. (line 9) * advanced features, gawk: Advanced Features. (line 6) -* advanced features, gawk, network programming: TCP/IP Networking. - (line 6) -* advanced features, gawk, nondecimal input data: Nondecimal Data. - (line 6) -* advanced features, gawk, processes, communicating with: Two-way I/O. - (line 23) * advanced features, network connections, See Also networks, connections: Advanced Features. (line 6) +* advanced features, network programming: TCP/IP Networking. (line 6) +* advanced features, nondecimal input data: Nondecimal Data. (line 6) +* advanced features, processes, communicating with: Two-way I/O. + (line 23) * advanced features, specifying field content: Splitting By Content. (line 9) * Aho, Alfred <1>: Contributors. (line 12) @@ -29636,7 +29640,6 @@ Index * atan2() function: Numeric Functions. (line 11) * awf (amazingly workable formatter) program: Glossary. (line 25) * awk debugging, enabling: Options. (line 122) -* awk enabling: Options. (line 220) * awk language, POSIX version: Assignment Ops. (line 136) * awk profiling, enabling: Options. (line 235) * awk programs <1>: Two Rules. (line 6) @@ -29731,7 +29734,7 @@ Index * backslash (\), \x escape sequence: Escape Sequences. (line 61) * backslash (\), \y operator (gawk): GNU Regexp Operators. (line 38) -* backslash (\), as field separators: Command Line Field Separator. +* backslash (\), as field separator: Command Line Field Separator. (line 27) * backslash (\), continuing lines and <1>: Egrep Program. (line 220) * backslash (\), continuing lines and: Statements/Lines. (line 19) @@ -29745,7 +29748,7 @@ Index * backslash (\), in escape sequences: Escape Sequences. (line 6) * backslash (\), in escape sequences, POSIX and: Escape Sequences. (line 112) -* backslash (\), regexp constants: Computed Regexps. (line 28) +* backslash (\), in regexp constants: Computed Regexps. (line 28) * backtrace debugger command: Execution Stack. (line 13) * BBS-list file: Sample Data Files. (line 6) * Beebe, Nelson <1>: Other Versions. (line 78) @@ -29775,7 +29778,7 @@ Index * BEGINFILE pattern, Boolean patterns and: Expression Patterns. (line 73) * beginfile() user-defined function: Filetrans Function. (line 62) -* Benzinger, Michael: Contributors. (line 97) +* Benzinger, Michael: Contributors. (line 98) * Berry, Karl: Acknowledgments. (line 33) * binary input/output: User-modified. (line 10) * bindtextdomain() function (C library): Explaining gettext. (line 49) @@ -29818,14 +29821,14 @@ Index * Brennan, Michael <2>: Two-way I/O. (line 6) * Brennan, Michael <3>: Simple Sed. (line 25) * Brennan, Michael: Delete. (line 56) -* Brian Kernighan's awk, extensions <1>: Other Versions. (line 13) +* Brian Kernighan's awk: Other Versions. (line 13) * Brian Kernighan's awk, extensions: BTL. (line 6) -* Broder, Alan J.: Contributors. (line 88) -* Brown, Martin: Contributors. (line 82) +* Broder, Alan J.: Contributors. (line 89) +* Brown, Martin: Contributors. (line 83) * BSD-based operating systems: Glossary. (line 624) * bt debugger command (alias for backtrace): Execution Stack. (line 13) * Buening, Andreas <1>: Bugs. (line 71) -* Buening, Andreas <2>: Contributors. (line 92) +* Buening, Andreas <2>: Contributors. (line 93) * Buening, Andreas: Acknowledgments. (line 60) * buffering, input/output <1>: Two-way I/O. (line 70) * buffering, input/output: I/O Functions. (line 137) @@ -29846,16 +29849,16 @@ Index (line 47) * call by value: Pass By Value/Reference. (line 18) -* caret (^) <1>: GNU Regexp Operators. +* caret (^): GNU Regexp Operators. (line 59) -* caret (^): Regexp Operators. (line 22) * caret (^), ^ operator: Precedence. (line 49) * caret (^), ^= operator <1>: Precedence. (line 95) * caret (^), ^= operator: Assignment Ops. (line 129) * caret (^), in bracket expressions: Bracket Expressions. (line 17) +* caret (^), regexp operator: Regexp Operators. (line 22) * case keyword: Switch Statement. (line 6) * case sensitivity, array indices and: Array Intro. (line 92) -* case sensitivity, converting case: String Functions. (line 522) +* case sensitivity, converting case: String Functions. (line 524) * case sensitivity, example programs: Library Functions. (line 53) * case sensitivity, gawk: Case-sensitivity. (line 26) * case sensitivity, regexps and <1>: User-modified. (line 82) @@ -29872,7 +29875,11 @@ Index * characters, transliterating: Translate Program. (line 6) * characters, values of as numbers: Ordinal Functions. (line 6) * Chassell, Robert J.: Acknowledgments. (line 33) +* chdir extension function: Extension Sample File Functions. + (line 12) * chem utility: Glossary. (line 151) +* chr extension function: Extension Sample Ord. + (line 15) * chr() user-defined function: Ordinal Functions. (line 16) * clear debugger command: Breakpoint Control. (line 36) * Cliff random numbers: Cliff Random Function. @@ -29885,7 +29892,7 @@ Index * close() function <3>: Getline/Pipe. (line 28) * close() function: Getline/Variable/File. (line 30) -* close() function, return values: Close Files And Pipes. +* close() function, return value: Close Files And Pipes. (line 130) * close() function, two-way pipes and: Two-way I/O. (line 77) * Close, Diane <1>: Contributors. (line 21) @@ -29918,7 +29925,7 @@ Index (line 10) * commenting: Comments. (line 6) * commenting, backslash continuation and: Statements/Lines. (line 76) -* common extensions, ** operator: Arithmetic Ops. (line 36) +* common extensions, ** operator: Arithmetic Ops. (line 30) * common extensions, **= operator: Assignment Ops. (line 136) * common extensions, /dev/stderr special file: Special FD. (line 46) * common extensions, /dev/stdin special file: Special FD. (line 46) @@ -29926,11 +29933,9 @@ Index * common extensions, \x escape sequence: Escape Sequences. (line 61) * common extensions, BINMODE variable: PC Using. (line 34) * common extensions, delete to delete entire arrays: Delete. (line 39) -* common extensions, fflush() function: I/O Functions. (line 25) * common extensions, func keyword: Definition Syntax. (line 83) * common extensions, length() applied to an array: String Functions. - (line 196) -* common extensions, nextfile statement: Nextfile Statement. (line 6) + (line 198) * common extensions, RS as a regexp: Records. (line 120) * common extensions, single character fields: Single Character Fields. (line 6) @@ -29975,7 +29980,7 @@ Index (line 6) * continue statement: Continue Statement. (line 6) * control statements: Statements. (line 6) -* converting, case: String Functions. (line 522) +* converting, case: String Functions. (line 524) * converting, dates to timestamps: Time Functions. (line 75) * converting, during subscripting: Numeric Array Subscripts. (line 31) @@ -30007,9 +30012,10 @@ Index * d debugger command (alias for delete): Breakpoint Control. (line 64) * d.c., See dark corner: Conventions. (line 38) * dark corner <1>: Glossary. (line 197) -* dark corner <2>: Truth Values. (line 24) -* dark corner <3>: Assignment Ops. (line 147) * dark corner: Conventions. (line 38) +* dark corner, "0" is actually true: Truth Values. (line 24) +* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops. + (line 147) * dark corner, ^, in FS: Regexp Field Splitting. (line 59) * dark corner, array subscripts: Uninitialized Subscripts. @@ -30034,7 +30040,8 @@ Index (line 20) * dark corner, input files: Records. (line 103) * dark corner, invoking awk: Command Line. (line 16) -* dark corner, length() function: String Functions. (line 182) +* dark corner, length() function: String Functions. (line 184) +* dark corner, locale's decimal point character: Conversion. (line 77) * dark corner, multiline records: Multiple Line. (line 35) * dark corner, NF variable, decrementing: Changing Fields. (line 107) * dark corner, OFMT variable: OFMT. (line 27) @@ -30044,7 +30051,7 @@ Index (line 147) * dark corner, regexp constants, as arguments to user-defined functions: Using Constant Regexps. (line 43) -* dark corner, split() function: String Functions. (line 361) +* dark corner, split() function: String Functions. (line 363) * dark corner, strings, storing: Records. (line 195) * dark corner, value of ARGV[0]: Auto-set. (line 35) * data, fixed-width: Constant Size. (line 9) @@ -30056,7 +30063,7 @@ Index * dates, converting to timestamps: Time Functions. (line 75) * dates, information related to, localization: Explaining gettext. (line 115) -* Davies, Stephen <1>: Contributors. (line 74) +* Davies, Stephen <1>: Contributors. (line 75) * Davies, Stephen: Acknowledgments. (line 60) * dcgettext() function (gawk) <1>: Programmer i18n. (line 19) * dcgettext() function (gawk): I18N Functions. (line 22) @@ -30176,7 +30183,7 @@ Index * deleting elements in arrays: Delete. (line 6) * deleting entire arrays: Delete. (line 39) * Demaille, Akim: Acknowledgments. (line 60) -* differences between gawk and awk: String Functions. (line 196) +* differences between gawk and awk: String Functions. (line 198) * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV. (line 88) * differences in awk and gawk, ARGIND variable: Auto-set. (line 40) @@ -30188,6 +30195,8 @@ Index (line 6) * differences in awk and gawk, BEGIN/END patterns: I/O And BEGIN/END. (line 16) +* differences in awk and gawk, BEGINFILE/ENDFILE patterns: BEGINFILE/ENDFILE. + (line 6) * differences in awk and gawk, BINMODE variable <1>: PC Using. (line 34) * differences in awk and gawk, BINMODE variable: User-modified. @@ -30219,9 +30228,7 @@ Index (line 34) * differences in awk and gawk, LINT variable: User-modified. (line 98) * differences in awk and gawk, match() function: String Functions. - (line 259) -* differences in awk and gawk, next/nextfile statements: Nextfile Statement. - (line 6) + (line 261) * differences in awk and gawk, print/printf statements: Format Modifiers. (line 13) * differences in awk and gawk, PROCINFO array: Auto-set. (line 130) @@ -30235,11 +30242,11 @@ Index * differences in awk and gawk, single-character fields: Single Character Fields. (line 6) * differences in awk and gawk, split() function: String Functions. - (line 349) + (line 351) * differences in awk and gawk, strings: Scalar Constants. (line 20) * differences in awk and gawk, strings, storing: Records. (line 191) * differences in awk and gawk, strtonum() function (gawk): String Functions. - (line 404) + (line 406) * differences in awk and gawk, SYMTAB variable: Auto-set. (line 271) * differences in awk and gawk, TEXTDOMAIN variable: User-modified. (line 162) @@ -30267,7 +30274,7 @@ Index * double precision floating-point: General Arithmetic. (line 21) * double quote (") <1>: Quoting. (line 37) * double quote ("): Read Terminal. (line 25) -* double quote ("), regexp constants: Computed Regexps. (line 28) +* double quote ("), in regexp constants: Computed Regexps. (line 28) * down debugger command: Execution Stack. (line 21) * Drepper, Ulrich: Acknowledgments. (line 52) * dump debugger command: Miscellaneous Debugger Commands. @@ -30357,6 +30364,7 @@ Index * exit status, of gawk: Exit Status. (line 6) * exp() function: Numeric Functions. (line 18) * expand utility: Very Simple. (line 69) +* Expat XML parser library: gawkextlib. (line 33) * expressions: Expressions. (line 6) * expressions, as patterns: Expression Patterns. (line 6) * expressions, assignment: Assignment Ops. (line 6) @@ -30368,9 +30376,9 @@ Index (line 9) * expressions, selecting: Conditional Exp. (line 6) * Extended Regular Expressions (EREs): Bracket Expressions. (line 24) -* extensions, Brian Kernighan's awk <1>: Other Versions. (line 13) +* extensions, Brian Kernighan's awk <1>: Common Extensions. (line 6) * extensions, Brian Kernighan's awk: BTL. (line 6) -* extensions, common, ** operator: Arithmetic Ops. (line 36) +* extensions, common, ** operator: Arithmetic Ops. (line 30) * extensions, common, **= operator: Assignment Ops. (line 136) * extensions, common, /dev/stderr special file: Special FD. (line 46) * extensions, common, /dev/stdin special file: Special FD. (line 46) @@ -30378,15 +30386,14 @@ Index * extensions, common, \x escape sequence: Escape Sequences. (line 61) * extensions, common, BINMODE variable: PC Using. (line 34) * extensions, common, delete to delete entire arrays: Delete. (line 39) -* extensions, common, fflush() function: I/O Functions. (line 25) * extensions, common, func keyword: Definition Syntax. (line 83) * extensions, common, length() applied to an array: String Functions. - (line 196) -* extensions, common, nextfile statement: Nextfile Statement. (line 6) + (line 198) * extensions, common, RS as a regexp: Records. (line 120) * extensions, common, single character fields: Single Character Fields. (line 6) * extensions, in gawk, not in POSIX awk: POSIX/GNU. (line 6) +* extensions, mawk: Common Extensions. (line 6) * extract.awk program: Extract Program. (line 79) * extraction, of marked strings (internationalization): String Extraction. (line 6) @@ -30443,13 +30450,13 @@ Index * FILENAME variable: Reading Files. (line 6) * FILENAME variable, getline, setting with: Getline Notes. (line 19) * filenames, assignments as: Ignoring Assigns. (line 6) -* files, .mo: Explaining gettext. (line 41) -* files, .mo, converting from .po: I18N Example. (line 62) -* files, .mo, specifying directory of <1>: Programmer i18n. (line 47) -* files, .mo, specifying directory of: Explaining gettext. (line 53) +* files, .gmo: Explaining gettext. (line 41) +* files, .gmo, converting from .po: I18N Example. (line 62) +* files, .gmo, specifying directory of <1>: Programmer i18n. (line 47) +* files, .gmo, specifying directory of: Explaining gettext. (line 53) * files, .po <1>: Translator i18n. (line 6) * files, .po: Explaining gettext. (line 36) -* files, .po, converting to .mo: I18N Example. (line 62) +* files, .po, converting to .gmo: I18N Example. (line 62) * files, .pot: Explaining gettext. (line 30) * files, /dev/... special files: Special FD. (line 46) * files, /inet/... (gawk): TCP/IP Networking. (line 6) @@ -30504,11 +30511,15 @@ Index (line 6) * floating-point, numbers <1>: Unexpected Results. (line 6) * floating-point, numbers: General Arithmetic. (line 6) +* fnmatch extension function: Extension Sample Fnmatch. + (line 6) * FNR variable <1>: Auto-set. (line 103) * FNR variable: Records. (line 6) * FNR variable, changing: Auto-set. (line 311) * for statement: For Statement. (line 6) -* for statement, in arrays: Scanning an Array. (line 20) +* for statement, looping over arrays: Scanning an Array. (line 20) +* fork extension function: Extension Sample Fork. + (line 11) * format specifiers, mixing regular with positional specifiers: Printf Ordering. (line 57) * format specifiers, printf statement: Control Letters. (line 6) @@ -30549,6 +30560,8 @@ Index * FSF (Free Software Foundation) <1>: Glossary. (line 305) * FSF (Free Software Foundation) <2>: Getting. (line 10) * FSF (Free Software Foundation): Manual History. (line 6) +* fts extension function: Extension Sample File Functions. + (line 77) * FUNCTAB array: Auto-set. (line 119) * function calls: Function Calls. (line 6) * function calls, indirect: Indirect Calls. (line 6) @@ -30597,7 +30610,7 @@ Index (line 45) * G-d: Acknowledgments. (line 78) * Garfinkle, Scott: Contributors. (line 35) -* gawk program, dynamic profiling: Profiling. (line 171) +* gawk program, dynamic profiling: Profiling. (line 172) * gawk, ARGIND variable in: Other Arguments. (line 12) * gawk, awk and <1>: This Manual. (line 14) * gawk, awk and: Preface. (line 23) @@ -30691,6 +30704,7 @@ Index * gawk, VMS version of: VMS Installation. (line 6) * gawk, word-boundary operator: GNU Regexp Operators. (line 63) +* gawkextlib project: gawkextlib. (line 6) * General Public License (GPL): Glossary. (line 314) * General Public License, See GPL: Manual History. (line 11) * gensub() function (gawk) <1>: String Functions. (line 86) @@ -30734,7 +30748,7 @@ Index * gettext library: Explaining gettext. (line 6) * gettext library, locale categories: Explaining gettext. (line 80) * gettext() function (C library): Explaining gettext. (line 62) -* gettimeofday time extension function: Extension Sample Time. +* gettimeofday extension function: Extension Sample Time. (line 13) * GMP: Arbitrary Precision Arithmetic. (line 6) @@ -30763,25 +30777,25 @@ Index * gsub() function <1>: String Functions. (line 139) * gsub() function: Using Constant Regexps. (line 43) -* gsub() function, arguments of: String Functions. (line 462) +* gsub() function, arguments of: String Functions. (line 464) * gsub() function, escape processing: Gory Details. (line 6) * h debugger command (alias for help): Miscellaneous Debugger Commands. (line 66) * Hankerson, Darrel <1>: Contributors. (line 61) * Hankerson, Darrel: Acknowledgments. (line 60) -* Haque, John: Contributors. (line 103) +* Haque, John: Contributors. (line 104) * Hartholz, Elaine: Acknowledgments. (line 38) * Hartholz, Marshall: Acknowledgments. (line 38) -* Hasegawa, Isamu: Contributors. (line 94) +* Hasegawa, Isamu: Contributors. (line 95) * help debugger command: Miscellaneous Debugger Commands. (line 66) * hexadecimal numbers: Nondecimal-numbers. (line 6) * hexadecimal values, enabling interpretation of: Options. (line 207) * histsort.awk program: History Sorting. (line 25) * Hughes, Phil: Acknowledgments. (line 43) -* HUP signal: Profiling. (line 203) +* HUP signal: Profiling. (line 204) * hyphen (-), - operator: Precedence. (line 52) -* hyphen (-), -- (decrement/increment) operators: Precedence. (line 46) +* hyphen (-), -- operator <1>: Precedence. (line 46) * hyphen (-), -- operator: Increment Ops. (line 48) * hyphen (-), -= operator <1>: Precedence. (line 95) * hyphen (-), -= operator: Assignment Ops. (line 129) @@ -30813,13 +30827,13 @@ Index * implementation issues, gawk, limits <1>: Redirection. (line 135) * implementation issues, gawk, limits: Getline Notes. (line 14) * in operator <1>: Id Program. (line 93) -* in operator <2>: For Statement. (line 75) -* in operator <3>: Precedence. (line 83) +* in operator <2>: Scanning an Array. (line 17) +* in operator <3>: Reference to Elements. + (line 37) +* in operator <4>: For Statement. (line 75) +* in operator <5>: Precedence. (line 83) * in operator: Comparison Operators. (line 11) -* in operator, arrays and <1>: Scanning an Array. (line 17) -* in operator, arrays and: Reference to Elements. - (line 37) * increment operators: Increment Ops. (line 6) * index() function: String Functions. (line 155) * indexing arrays: Array Intro. (line 50) @@ -30828,6 +30842,8 @@ Index (line 6) * info debugger command: Debugger Info. (line 13) * initialization, automatic: More Complex. (line 38) +* inplace extension: Extension Sample Inplace. + (line 6) * input files: Reading Files. (line 6) * input files, closing: Close Files And Pipes. (line 6) @@ -30851,7 +30867,7 @@ Index * insomnia, cure for: Alarm Program. (line 6) * installation, VMS: VMS Installation. (line 6) * installing gawk: Installation. (line 6) -* INT signal (MS-Windows): Profiling. (line 206) +* INT signal (MS-Windows): Profiling. (line 207) * int() function: Numeric Functions. (line 23) * integer, arbitrary precision: Arbitrary Precision Integers. (line 6) @@ -30890,7 +30906,7 @@ Index * jawk: Other Versions. (line 106) * Jedi knights: Undocumented. (line 6) * join() user-defined function: Join Function. (line 18) -* Kahrs, Ju"rgen <1>: Contributors. (line 70) +* Kahrs, Ju"rgen <1>: Contributors. (line 71) * Kahrs, Ju"rgen: Acknowledgments. (line 60) * Kasal, Stepan: Acknowledgments. (line 60) * Kenobi, Obi-Wan: Undocumented. (line 6) @@ -30902,7 +30918,7 @@ Index * Kernighan, Brian <6>: Acknowledgments. (line 72) * Kernighan, Brian <7>: Conventions. (line 34) * Kernighan, Brian: History. (line 17) -* kill command, dynamic profiling: Profiling. (line 180) +* kill command, dynamic profiling: Profiling. (line 181) * Knights, jedi: Undocumented. (line 6) * Knuth, Donald: Arbitrary Precision Arithmetic. (line 6) @@ -30931,7 +30947,7 @@ Index (line 11) * left shift, bitwise: Bitwise Functions. (line 32) * leftmost longest match: Multiple Line. (line 26) -* length() function: String Functions. (line 166) +* length() function: String Functions. (line 168) * Lesser General Public License (LGPL): Glossary. (line 405) * LGPL (Lesser General Public License): Glossary. (line 405) * libmawk: Other Versions. (line 114) @@ -31013,15 +31029,15 @@ Index (line 6) * marked strings, extracting: String Extraction. (line 6) * Marx, Groucho: Increment Ops. (line 60) -* match() function: String Functions. (line 206) +* match() function: String Functions. (line 208) * match() function, RSTART/RLENGTH variables: String Functions. - (line 223) + (line 225) * matching, expressions, See comparison expressions: Typing and Comparison. (line 9) * matching, leftmost longest: Multiple Line. (line 26) * matching, null strings: Gory Details. (line 164) * mawk program: Other Versions. (line 44) -* McPhee, Patrick: Contributors. (line 100) +* McPhee, Patrick: Contributors. (line 101) * message object files: Explaining gettext. (line 41) * message object files, converting from portable object files: I18N Example. (line 62) @@ -31104,8 +31120,6 @@ Index * null strings, quoting and: Quoting. (line 62) * number sign (#), #! (executable scripts): Executable Scripts. (line 6) -* number sign (#), #! (executable scripts), portability issues with: Executable Scripts. - (line 6) * number sign (#), commenting: Comments. (line 6) * numbers, as array subscripts: Numeric Array Subscripts. (line 6) @@ -31184,6 +31198,8 @@ Index * OR bitwise operation: Bitwise Functions. (line 6) * or Boolean-logic operator: Boolean Ops. (line 6) * or() function (gawk): Bitwise Functions. (line 49) +* ord extension function: Extension Sample Ord. + (line 12) * ord() user-defined function: Ordinal Functions. (line 16) * order of evaluation, concatenation: Concatenation. (line 42) * ORS variable <1>: User-modified. (line 129) @@ -31205,11 +31221,10 @@ Index * p debugger command (alias for print): Viewing And Changing Data. (line 36) * P1003.1 POSIX standard: Glossary. (line 462) -* P1003.2 POSIX standard: Glossary. (line 462) * parentheses () <1>: Profiling. (line 138) * parentheses (): Regexp Operators. (line 79) * password file: Passwd Functions. (line 16) -* patsplit() function: String Functions. (line 293) +* patsplit() function (gawk): String Functions. (line 295) * patterns: Patterns and Actions. (line 6) * patterns, comparison expressions as: Expression Patterns. (line 14) @@ -31230,7 +31245,7 @@ Index * percent sign (%), %= operator: Assignment Ops. (line 129) * period (.): Regexp Operators. (line 43) * Perl: Future Extensions. (line 6) -* Peters, Arno: Contributors. (line 85) +* Peters, Arno: Contributors. (line 86) * Peterson, Hal: Contributors. (line 40) * pipes, closing: Close Files And Pipes. (line 6) @@ -31240,10 +31255,8 @@ Index * Pitts, Dave: Acknowledgments. (line 60) * plus sign (+): Regexp Operators. (line 102) * plus sign (+), + operator: Precedence. (line 52) -* plus sign (+), ++ (decrement/increment operators): Increment Ops. - (line 11) * plus sign (+), ++ operator <1>: Precedence. (line 46) -* plus sign (+), ++ operator: Increment Ops. (line 40) +* plus sign (+), ++ operator: Increment Ops. (line 11) * plus sign (+), += operator <1>: Precedence. (line 95) * plus sign (+), += operator: Assignment Ops. (line 82) * pointers to functions: Indirect Calls. (line 6) @@ -31260,12 +31273,11 @@ Index * portability, data files as single record: Records. (line 179) * portability, deleting array elements: Delete. (line 56) * portability, example programs: Library Functions. (line 42) -* portability, fflush() function and: I/O Functions. (line 29) * portability, functions, defining: Definition Syntax. (line 99) * portability, gawk: New Ports. (line 6) * portability, gettext library and: Explaining gettext. (line 10) * portability, internationalization and: I18N Portability. (line 6) -* portability, length() function: String Functions. (line 175) +* portability, length() function: String Functions. (line 177) * portability, new awk vs. old awk: Conversion. (line 55) * portability, next statement in user-defined functions: Pass By Value/Reference. (line 91) @@ -31273,7 +31285,7 @@ Index * portability, operators: Increment Ops. (line 60) * portability, operators, not in POSIX awk: Precedence. (line 98) * portability, POSIXLY_CORRECT environment variable: Options. (line 353) -* portability, substr() function: String Functions. (line 512) +* portability, substr() function: String Functions. (line 514) * portable object files <1>: Translator i18n. (line 6) * portable object files: Explaining gettext. (line 36) * portable object files, converting to message object files: I18N Example. @@ -31292,7 +31304,7 @@ Index * POSIX awk, ** operator and: Precedence. (line 98) * POSIX awk, **= operator and: Assignment Ops. (line 142) * POSIX awk, < operator and: Getline/File. (line 26) -* POSIX awk, arithmetic operators and: Arithmetic Ops. (line 36) +* POSIX awk, arithmetic operators and: Arithmetic Ops. (line 30) * POSIX awk, backslashes in string constants: Escape Sequences. (line 112) * POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 16) @@ -31310,7 +31322,7 @@ Index * POSIX awk, FS variable and: User-modified. (line 66) * POSIX awk, function keyword in: Definition Syntax. (line 83) * POSIX awk, functions and, gsub()/sub(): Gory Details. (line 54) -* POSIX awk, functions and, length(): String Functions. (line 175) +* POSIX awk, functions and, length(): String Functions. (line 177) * POSIX awk, GNU long options and: Options. (line 15) * POSIX awk, interval expressions in: Regexp Operators. (line 135) * POSIX awk, next/nextfile statements and: Next Statement. (line 45) @@ -31377,8 +31389,7 @@ Index * PROCINFO array <6>: Auto-set. (line 130) * PROCINFO array: Obsolete. (line 11) * profiling awk programs: Profiling. (line 6) -* profiling awk programs, dynamically: Profiling. (line 171) -* profiling gawk: Profiling. (line 6) +* profiling awk programs, dynamically: Profiling. (line 172) * program, definition of: Getting Started. (line 21) * programmers, attractiveness of: Two-way I/O. (line 6) * programming conventions, --non-decimal-data option: Nondecimal Data. @@ -31391,7 +31402,8 @@ Index (line 10) * programming conventions, functions, writing: Definition Syntax. (line 55) -* programming conventions, gawk internals: Internal File Ops. (line 45) +* programming conventions, gawk extensions: Internal File Ops. + (line 45) * programming conventions, private variable names: Library Names. (line 23) * programming language, recipe for: History. (line 6) @@ -31412,7 +31424,7 @@ Index * QuikTrim Awk: Other Versions. (line 128) * quit debugger command: Miscellaneous Debugger Commands. (line 99) -* QUIT signal (MS-Windows): Profiling. (line 206) +* QUIT signal (MS-Windows): Profiling. (line 207) * quoting <1>: Comments. (line 27) * quoting <2>: Long. (line 26) * quoting: Read Terminal. (line 25) @@ -31434,8 +31446,14 @@ Index * Rankin, Pat <2>: Contributors. (line 38) * Rankin, Pat <3>: Assignment Ops. (line 100) * Rankin, Pat: Acknowledgments. (line 60) +* reada extension function: Extension Sample Read write array. + (line 15) * readable data files, checking: File Checking. (line 6) * readable.awk program: File Checking. (line 11) +* readdir extension: Extension Sample Readdir. + (line 9) +* readfile extension function: Extension Sample Readfile. + (line 11) * recipe for a programming language: History. (line 6) * record separators <1>: User-modified. (line 143) * record separators: Records. (line 14) @@ -31502,9 +31520,13 @@ Index * return debugger command: Debugger Execution Control. (line 54) * return statement, user-defined functions: Return Statement. (line 6) -* return values, close() function: Close Files And Pipes. +* return value, close() function: Close Files And Pipes. (line 130) * rev() user-defined function: Function Example. (line 52) +* revoutput extension: Extension Sample Revout. + (line 11) +* revtwoway extension: Extension Sample Rev2way. + (line 12) * rewind() user-defined function: Rewind Function. (line 16) * right angle bracket (>), > operator <1>: Precedence. (line 65) * right angle bracket (>), > operator: Comparison Operators. @@ -31518,10 +31540,10 @@ Index * right shift, bitwise: Bitwise Functions. (line 32) * Ritchie, Dennis: Basic Data Typing. (line 55) * RLENGTH variable: Auto-set. (line 250) -* RLENGTH variable, match() function and: String Functions. (line 223) +* RLENGTH variable, match() function and: String Functions. (line 225) * Robbins, Arnold <1>: Future Extensions. (line 6) * Robbins, Arnold <2>: Bugs. (line 32) -* Robbins, Arnold <3>: Contributors. (line 122) +* Robbins, Arnold <3>: Contributors. (line 125) * Robbins, Arnold <4>: Alarm Program. (line 6) * Robbins, Arnold <5>: Passwd Functions. (line 90) * Robbins, Arnold <6>: Getline/Pipe. (line 40) @@ -31545,7 +31567,7 @@ Index * RS variable, multiline records and: Multiple Line. (line 17) * rshift() function (gawk): Bitwise Functions. (line 52) * RSTART variable: Auto-set. (line 256) -* RSTART variable, match() function and: String Functions. (line 223) +* RSTART variable, match() function and: String Functions. (line 225) * RT variable <1>: Auto-set. (line 263) * RT variable <2>: Getline/Variable/File. (line 10) @@ -31561,7 +31583,7 @@ Index (line 68) * sandbox mode: Options. (line 279) * scalar values: Basic Data Typing. (line 13) -* Schorr, Andrew <1>: Contributors. (line 118) +* Schorr, Andrew <1>: Contributors. (line 121) * Schorr, Andrew: Acknowledgments. (line 60) * Schreiber, Bert: Acknowledgments. (line 38) * Schreiber, Rita: Acknowledgments. (line 38) @@ -31653,14 +31675,14 @@ Index (line 56) * sidebar, Using close()'s Return Value: Close Files And Pipes. (line 128) -* SIGHUP signal: Profiling. (line 203) -* SIGINT signal (MS-Windows): Profiling. (line 206) -* signals, HUP/SIGHUP: Profiling. (line 203) -* signals, INT/SIGINT (MS-Windows): Profiling. (line 206) -* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 206) -* signals, USR1/SIGUSR1: Profiling. (line 180) -* SIGQUIT signal (MS-Windows): Profiling. (line 206) -* SIGUSR1 signal: Profiling. (line 180) +* SIGHUP signal: Profiling. (line 204) +* SIGINT signal (MS-Windows): Profiling. (line 207) +* signals, HUP/SIGHUP: Profiling. (line 204) +* signals, INT/SIGINT (MS-Windows): Profiling. (line 207) +* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 207) +* signals, USR1/SIGUSR1: Profiling. (line 181) +* SIGQUIT signal (MS-Windows): Profiling. (line 207) +* SIGUSR1 signal: Profiling. (line 181) * silent debugger command: Debugger Execution Control. (line 10) * sin() function: Numeric Functions. (line 75) @@ -31673,9 +31695,7 @@ Index * single-character fields: Single Character Fields. (line 6) * Skywalker, Luke: Undocumented. (line 6) -* sleep: Extension Sample Time. - (line 6) -* sleep time extension function: Extension Sample Time. +* sleep extension function: Extension Sample Time. (line 23) * sleep utility: Alarm Program. (line 109) * Solaris, POSIX-compliant awk: Other Versions. (line 96) @@ -31701,10 +31721,10 @@ Index * sparse arrays: Array Intro. (line 71) * Spencer, Henry: Glossary. (line 12) * split utility: Split Program. (line 6) -* split() function: String Functions. (line 315) +* split() function: String Functions. (line 317) * split() function, array elements, deleting: Delete. (line 61) * split.awk program: Split Program. (line 30) -* sprintf() function <1>: String Functions. (line 380) +* sprintf() function <1>: String Functions. (line 382) * sprintf() function: OFMT. (line 15) * sprintf() function, OFMT variable and: User-modified. (line 124) * sprintf() function, print/printf statements and: Round Function. @@ -31720,6 +31740,8 @@ Index * standard input <1>: Special FD. (line 6) * standard input: Read Terminal. (line 6) * standard output: Special FD. (line 6) +* stat extension function: Extension Sample File Functions. + (line 18) * statements, compound, control statements and: Statements. (line 10) * statements, control, in actions: Statements. (line 6) * statements, multiple: Statements/Lines. (line 91) @@ -31748,14 +31770,14 @@ Index * strings, null: Regexp Field Splitting. (line 43) * strings, numeric: Variable Typing. (line 6) -* strings, splitting: String Functions. (line 335) -* strtonum() function (gawk): String Functions. (line 387) +* strings, splitting: String Functions. (line 337) +* strtonum() function (gawk): String Functions. (line 389) * strtonum() function (gawk), --non-decimal-data option and: Nondecimal Data. (line 36) -* sub() function <1>: String Functions. (line 408) +* sub() function <1>: String Functions. (line 410) * sub() function: Using Constant Regexps. (line 43) -* sub() function, arguments of: String Functions. (line 462) +* sub() function, arguments of: String Functions. (line 464) * sub() function, escape processing: Gory Details. (line 6) * subscript separators: User-modified. (line 156) * subscripts in arrays, multidimensional: Multi-dimensional. (line 10) @@ -31768,7 +31790,7 @@ Index * SUBSEP variable: User-modified. (line 156) * SUBSEP variable, multidimensional arrays: Multi-dimensional. (line 16) -* substr() function: String Functions. (line 481) +* substr() function: String Functions. (line 483) * Sumner, Andrew: Other Versions. (line 64) * switch statement: Switch Statement. (line 6) * SYMTAB array: Auto-set. (line 271) @@ -31785,6 +31807,8 @@ Index * tee.awk program: Tee Program. (line 26) * terminating records: Records. (line 117) * testbits.awk program: Bitwise Functions. (line 70) +* testext extension: Extension Sample API Tests. + (line 6) * Texinfo <1>: Adding Code. (line 99) * Texinfo <2>: Distribution contents. (line 80) @@ -31811,8 +31835,6 @@ Index * tilde (~), ~ operator <5>: Computed Regexps. (line 6) * tilde (~), ~ operator <6>: Case-sensitivity. (line 26) * tilde (~), ~ operator: Regexp Usage. (line 19) -* time: Extension Sample Time. - (line 6) * time, alarm clock example program: Alarm Program. (line 9) * time, localization and: Explaining gettext. (line 115) * time, managing: Getlocaltime Function. @@ -31823,8 +31845,8 @@ Index * timestamps, converting dates to: Time Functions. (line 75) * timestamps, formatted: Getlocaltime Function. (line 6) -* tolower() function: String Functions. (line 523) -* toupper() function: String Functions. (line 529) +* tolower() function: String Functions. (line 525) +* toupper() function: String Functions. (line 531) * tr utility: Translate Program. (line 6) * trace debugger command: Miscellaneous Debugger Commands. (line 108) @@ -31847,9 +31869,9 @@ Index * troubleshooting, gawk, fatal errors, function arguments: Calling Built-in. (line 16) * troubleshooting, getline function: File Checking. (line 25) -* troubleshooting, gsub()/sub() functions: String Functions. (line 472) -* troubleshooting, match() function: String Functions. (line 288) -* troubleshooting, patsplit() function: String Functions. (line 311) +* troubleshooting, gsub()/sub() functions: String Functions. (line 474) +* troubleshooting, match() function: String Functions. (line 290) +* troubleshooting, patsplit() function: String Functions. (line 313) * troubleshooting, print statement, omitting commas: Print Examples. (line 31) * troubleshooting, printing: Redirection. (line 118) @@ -31858,7 +31880,7 @@ Index * troubleshooting, regexp constants vs. string constants: Computed Regexps. (line 38) * troubleshooting, string concatenation: Concatenation. (line 27) -* troubleshooting, substr() function: String Functions. (line 499) +* troubleshooting, substr() function: String Functions. (line 501) * troubleshooting, system() function: I/O Functions. (line 94) * troubleshooting, typographical errors, global variables: Options. (line 112) @@ -31873,7 +31895,7 @@ Index (line 83) * undefined functions: Pass By Value/Reference. (line 71) -* underscore (_), _ C macro: Explaining gettext. (line 70) +* underscore (_), C macro: Explaining gettext. (line 70) * underscore (_), in names of private variables: Library Names. (line 29) * underscore (_), translatable string: Programmer i18n. (line 69) @@ -31907,7 +31929,7 @@ Index * user-modifiable variables: User-modified. (line 6) * users, information about, printing: Id Program. (line 6) * users, information about, retrieving: Passwd Functions. (line 16) -* USR1 signal: Profiling. (line 180) +* USR1 signal: Profiling. (line 181) * values, numeric: Basic Data Typing. (line 13) * values, string: Basic Data Typing. (line 13) * variable typing: Typing and Comparison. @@ -31953,6 +31975,10 @@ Index * w debugger command (alias for watch): Viewing And Changing Data. (line 67) * w utility: Constant Size. (line 22) +* wait extension function: Extension Sample Fork. + (line 22) +* waitpid extension function: Extension Sample Fork. + (line 18) * walk_array() user-defined function: Walking Arrays. (line 14) * Wall, Larry <1>: Future Extensions. (line 6) * Wall, Larry: Array Intro. (line 6) @@ -31971,7 +31997,7 @@ Index * whitespace, functions, calling: Calling Built-in. (line 10) * whitespace, newlines as: Options. (line 253) * Williams, Kent: Contributors. (line 35) -* Woehlke, Matthew: Contributors. (line 79) +* Woehlke, Matthew: Contributors. (line 80) * Woods, John: Contributors. (line 28) * word boundaries, matching: GNU Regexp Operators. (line 38) @@ -31983,10 +32009,12 @@ Index * words, counting: Wc Program. (line 6) * words, duplicate, searching for: Dupword Program. (line 6) * words, usage counts, generating: Word Sorting. (line 6) +* writea extension function: Extension Sample Read write array. + (line 9) * xgettext utility: String Extraction. (line 13) * XOR bitwise operation: Bitwise Functions. (line 6) * xor() function (gawk): Bitwise Functions. (line 55) -* Yawitz, Efraim: Contributors. (line 116) +* Yawitz, Efraim: Contributors. (line 119) * Zaretskii, Eli <1>: Bugs. (line 70) * Zaretskii, Eli <2>: Contributors. (line 56) * Zaretskii, Eli: Acknowledgments. (line 60) @@ -32020,521 +32048,521 @@ Index Tag Table: -Node: Top1358 -Node: Foreword40334 -Node: Preface44679 -Ref: Preface-Footnote-147732 -Ref: Preface-Footnote-247828 -Node: History48060 -Node: Names50434 -Ref: Names-Footnote-151911 -Node: This Manual51983 -Ref: This Manual-Footnote-157848 -Node: Conventions57948 -Node: Manual History60100 -Ref: Manual History-Footnote-163501 -Ref: Manual History-Footnote-263542 -Node: How To Contribute63616 -Node: Acknowledgments64760 -Node: Getting Started68971 -Node: Running gawk71350 -Node: One-shot72536 -Node: Read Terminal73761 -Ref: Read Terminal-Footnote-175411 -Ref: Read Terminal-Footnote-275687 -Node: Long75858 -Node: Executable Scripts77234 -Ref: Executable Scripts-Footnote-179067 -Ref: Executable Scripts-Footnote-279169 -Node: Comments79716 -Node: Quoting82183 -Node: DOS Quoting86806 -Node: Sample Data Files87481 -Node: Very Simple90513 -Node: Two Rules95112 -Node: More Complex97259 -Ref: More Complex-Footnote-1100189 -Node: Statements/Lines100274 -Ref: Statements/Lines-Footnote-1104736 -Node: Other Features105001 -Node: When105929 -Node: Invoking Gawk108076 -Node: Command Line109537 -Node: Options110320 -Ref: Options-Footnote-1125712 -Node: Other Arguments125737 -Node: Naming Standard Input128395 -Node: Environment Variables129489 -Node: AWKPATH Variable130047 -Ref: AWKPATH Variable-Footnote-1132805 -Node: AWKLIBPATH Variable133065 -Node: Other Environment Variables133783 -Node: Exit Status136278 -Node: Include Files136953 -Node: Loading Shared Libraries140522 -Node: Obsolete141886 -Node: Undocumented142583 -Node: Regexp142826 -Node: Regexp Usage144215 -Node: Escape Sequences146241 -Node: Regexp Operators151910 -Ref: Regexp Operators-Footnote-1159290 -Ref: Regexp Operators-Footnote-2159437 -Node: Bracket Expressions159535 -Ref: table-char-classes161425 -Node: GNU Regexp Operators163948 -Node: Case-sensitivity167671 -Ref: Case-sensitivity-Footnote-1170639 -Ref: Case-sensitivity-Footnote-2170874 -Node: Leftmost Longest170982 -Node: Computed Regexps172183 -Node: Reading Files175520 -Node: Records177523 -Ref: Records-Footnote-1186412 -Node: Fields186449 -Ref: Fields-Footnote-1189482 -Node: Nonconstant Fields189568 -Node: Changing Fields191770 -Node: Field Separators197729 -Node: Default Field Splitting200358 -Node: Regexp Field Splitting201475 -Node: Single Character Fields204817 -Node: Command Line Field Separator205876 -Node: Field Splitting Summary209317 -Ref: Field Splitting Summary-Footnote-1212428 -Node: Constant Size212529 -Node: Splitting By Content217113 -Ref: Splitting By Content-Footnote-1220839 -Node: Multiple Line220879 -Ref: Multiple Line-Footnote-1226726 -Node: Getline226905 -Node: Plain Getline229121 -Node: Getline/Variable231216 -Node: Getline/File232363 -Node: Getline/Variable/File233704 -Ref: Getline/Variable/File-Footnote-1235303 -Node: Getline/Pipe235390 -Node: Getline/Variable/Pipe238090 -Node: Getline/Coprocess239197 -Node: Getline/Variable/Coprocess240449 -Node: Getline Notes241186 -Node: Getline Summary243973 -Ref: table-getline-variants244381 -Node: Read Timeout245293 -Ref: Read Timeout-Footnote-1249034 -Node: Command line directories249091 -Node: Printing249721 -Node: Print251352 -Node: Print Examples252689 -Node: Output Separators255473 -Node: OFMT257233 -Node: Printf258591 -Node: Basic Printf259497 -Node: Control Letters261036 -Node: Format Modifiers264848 -Node: Printf Examples270857 -Node: Redirection273572 -Node: Special Files280537 -Node: Special FD281070 -Ref: Special FD-Footnote-1284695 -Node: Special Network284769 -Node: Special Caveats285619 -Node: Close Files And Pipes286415 -Ref: Close Files And Pipes-Footnote-1293398 -Ref: Close Files And Pipes-Footnote-2293546 -Node: Expressions293696 -Node: Values294828 -Node: Constants295504 -Node: Scalar Constants296184 -Ref: Scalar Constants-Footnote-1297043 -Node: Nondecimal-numbers297225 -Node: Regexp Constants300225 -Node: Using Constant Regexps300700 -Node: Variables303755 -Node: Using Variables304410 -Node: Assignment Options306134 -Node: Conversion308006 -Ref: table-locale-affects313497 -Ref: Conversion-Footnote-1314121 -Node: All Operators314230 -Node: Arithmetic Ops314860 -Node: Concatenation317365 -Ref: Concatenation-Footnote-1320158 -Node: Assignment Ops320278 -Ref: table-assign-ops325266 -Node: Increment Ops326597 -Node: Truth Values and Conditions330032 -Node: Truth Values331115 -Node: Typing and Comparison332164 -Node: Variable Typing332953 -Ref: Variable Typing-Footnote-1336850 -Node: Comparison Operators336972 -Ref: table-relational-ops337382 -Node: POSIX String Comparison340931 -Ref: POSIX String Comparison-Footnote-1341887 -Node: Boolean Ops342025 -Ref: Boolean Ops-Footnote-1346103 -Node: Conditional Exp346194 -Node: Function Calls347926 -Node: Precedence351520 -Node: Locales355189 -Node: Patterns and Actions356278 -Node: Pattern Overview357332 -Node: Regexp Patterns359001 -Node: Expression Patterns359544 -Node: Ranges363229 -Node: BEGIN/END366195 -Node: Using BEGIN/END366957 -Ref: Using BEGIN/END-Footnote-1369688 -Node: I/O And BEGIN/END369794 -Node: BEGINFILE/ENDFILE372076 -Node: Empty374980 -Node: Using Shell Variables375296 -Node: Action Overview377581 -Node: Statements379938 -Node: If Statement381792 -Node: While Statement383291 -Node: Do Statement385335 -Node: For Statement386491 -Node: Switch Statement389643 -Node: Break Statement391740 -Node: Continue Statement393730 -Node: Next Statement395523 -Node: Nextfile Statement397913 -Node: Exit Statement400556 -Node: Built-in Variables402972 -Node: User-modified404067 -Ref: User-modified-Footnote-1412427 -Node: Auto-set412489 -Ref: Auto-set-Footnote-1425420 -Ref: Auto-set-Footnote-2425625 -Node: ARGC and ARGV425681 -Node: Arrays429532 -Node: Array Basics431037 -Node: Array Intro431863 -Node: Reference to Elements436181 -Node: Assigning Elements438451 -Node: Array Example438942 -Node: Scanning an Array440674 -Node: Controlling Scanning442988 -Ref: Controlling Scanning-Footnote-1447911 -Node: Delete448227 -Ref: Delete-Footnote-1450992 -Node: Numeric Array Subscripts451049 -Node: Uninitialized Subscripts453232 -Node: Multi-dimensional454860 -Node: Multi-scanning457954 -Node: Arrays of Arrays459545 -Node: Functions464186 -Node: Built-in465005 -Node: Calling Built-in466083 -Node: Numeric Functions468071 -Ref: Numeric Functions-Footnote-1471903 -Ref: Numeric Functions-Footnote-2472260 -Ref: Numeric Functions-Footnote-3472308 -Node: String Functions472577 -Ref: String Functions-Footnote-1496074 -Ref: String Functions-Footnote-2496203 -Ref: String Functions-Footnote-3496451 -Node: Gory Details496538 -Ref: table-sub-escapes498217 -Ref: table-sub-posix-92499571 -Ref: table-sub-proposed500922 -Ref: table-posix-sub502276 -Ref: table-gensub-escapes503821 -Ref: Gory Details-Footnote-1504997 -Ref: Gory Details-Footnote-2505048 -Node: I/O Functions505199 -Ref: I/O Functions-Footnote-1512184 -Node: Time Functions512331 -Ref: Time Functions-Footnote-1523264 -Ref: Time Functions-Footnote-2523332 -Ref: Time Functions-Footnote-3523490 -Ref: Time Functions-Footnote-4523601 -Ref: Time Functions-Footnote-5523713 -Ref: Time Functions-Footnote-6523940 -Node: Bitwise Functions524206 -Ref: table-bitwise-ops524764 -Ref: Bitwise Functions-Footnote-1528985 -Node: Type Functions529169 -Node: I18N Functions529639 -Node: User-defined531266 -Node: Definition Syntax532070 -Ref: Definition Syntax-Footnote-1536980 -Node: Function Example537049 -Node: Function Caveats539643 -Node: Calling A Function540064 -Node: Variable Scope541179 -Node: Pass By Value/Reference544142 -Node: Return Statement547650 -Node: Dynamic Typing550631 -Node: Indirect Calls551562 -Node: Library Functions561247 -Ref: Library Functions-Footnote-1564760 -Ref: Library Functions-Footnote-2564903 -Node: Library Names565074 -Ref: Library Names-Footnote-1568545 -Ref: Library Names-Footnote-2568765 -Node: General Functions568851 -Node: Strtonum Function569804 -Node: Assert Function572734 -Node: Round Function576060 -Node: Cliff Random Function577603 -Node: Ordinal Functions578619 -Ref: Ordinal Functions-Footnote-1581689 -Ref: Ordinal Functions-Footnote-2581941 -Node: Join Function582150 -Ref: Join Function-Footnote-1583921 -Node: Getlocaltime Function584121 -Node: Data File Management587836 -Node: Filetrans Function588468 -Node: Rewind Function592537 -Node: File Checking593924 -Node: Empty Files595018 -Node: Ignoring Assigns597248 -Node: Getopt Function598801 -Ref: Getopt Function-Footnote-1610105 -Node: Passwd Functions610308 -Ref: Passwd Functions-Footnote-1619283 -Node: Group Functions619371 -Node: Walking Arrays627455 -Node: Sample Programs629592 -Node: Running Examples630266 -Node: Clones630994 -Node: Cut Program632218 -Node: Egrep Program642063 -Ref: Egrep Program-Footnote-1649836 -Node: Id Program649946 -Node: Split Program653562 -Ref: Split Program-Footnote-1657081 -Node: Tee Program657209 -Node: Uniq Program660012 -Node: Wc Program667441 -Ref: Wc Program-Footnote-1671707 -Ref: Wc Program-Footnote-2671907 -Node: Miscellaneous Programs671999 -Node: Dupword Program673187 -Node: Alarm Program675218 -Node: Translate Program679967 -Ref: Translate Program-Footnote-1684354 -Ref: Translate Program-Footnote-2684582 -Node: Labels Program684716 -Ref: Labels Program-Footnote-1688087 -Node: Word Sorting688171 -Node: History Sorting692055 -Node: Extract Program693894 -Ref: Extract Program-Footnote-1701395 -Node: Simple Sed701523 -Node: Igawk Program704585 -Ref: Igawk Program-Footnote-1719742 -Ref: Igawk Program-Footnote-2719943 -Node: Anagram Program720081 -Node: Signature Program723149 -Node: Advanced Features724249 -Node: Nondecimal Data726131 -Node: Array Sorting727714 -Node: Controlling Array Traversal728411 -Node: Array Sorting Functions736649 -Ref: Array Sorting Functions-Footnote-1740323 -Ref: Array Sorting Functions-Footnote-2740416 -Node: Two-way I/O740610 -Ref: Two-way I/O-Footnote-1746042 -Node: TCP/IP Networking746112 -Node: Profiling748956 -Node: Internationalization756411 -Node: I18N and L10N757836 -Node: Explaining gettext758522 -Ref: Explaining gettext-Footnote-1763588 -Ref: Explaining gettext-Footnote-2763772 -Node: Programmer i18n763937 -Node: Translator i18n768137 -Node: String Extraction768930 -Ref: String Extraction-Footnote-1769891 -Node: Printf Ordering769977 -Ref: Printf Ordering-Footnote-1772761 -Node: I18N Portability772825 -Ref: I18N Portability-Footnote-1775274 -Node: I18N Example775337 -Ref: I18N Example-Footnote-1777972 -Node: Gawk I18N778044 -Node: Debugger778665 -Node: Debugging779636 -Node: Debugging Concepts780069 -Node: Debugging Terms781925 -Node: Awk Debugging784522 -Node: Sample Debugging Session785414 -Node: Debugger Invocation785934 -Node: Finding The Bug787266 -Node: List of Debugger Commands793754 -Node: Breakpoint Control795088 -Node: Debugger Execution Control798752 -Node: Viewing And Changing Data802112 -Node: Execution Stack805468 -Node: Debugger Info806935 -Node: Miscellaneous Debugger Commands810917 -Node: Readline Support816093 -Node: Limitations816924 -Node: Arbitrary Precision Arithmetic819176 -Ref: Arbitrary Precision Arithmetic-Footnote-1820827 -Node: General Arithmetic820975 -Node: Floating Point Issues822695 -Node: String Conversion Precision823576 -Ref: String Conversion Precision-Footnote-1825282 -Node: Unexpected Results825391 -Node: POSIX Floating Point Problems827544 -Ref: POSIX Floating Point Problems-Footnote-1831369 -Node: Integer Programming831407 -Node: Floating-point Programming833146 -Ref: Floating-point Programming-Footnote-1839477 -Ref: Floating-point Programming-Footnote-2839747 -Node: Floating-point Representation840011 -Node: Floating-point Context841176 -Ref: table-ieee-formats842015 -Node: Rounding Mode843399 -Ref: table-rounding-modes843878 -Ref: Rounding Mode-Footnote-1846893 -Node: Gawk and MPFR847072 -Node: Arbitrary Precision Floats848327 -Ref: Arbitrary Precision Floats-Footnote-1850770 -Node: Setting Precision851086 -Ref: table-predefined-precision-strings851772 -Node: Setting Rounding Mode853917 -Ref: table-gawk-rounding-modes854321 -Node: Floating-point Constants855508 -Node: Changing Precision856937 -Ref: Changing Precision-Footnote-1858337 -Node: Exact Arithmetic858511 -Node: Arbitrary Precision Integers861649 -Ref: Arbitrary Precision Integers-Footnote-1864667 -Node: Dynamic Extensions864814 -Node: Extension Intro866272 -Node: Plugin License867537 -Node: Extension Mechanism Outline868222 -Ref: load-extension868639 -Ref: load-new-function870117 -Ref: call-new-function871112 -Node: Extension API Description873127 -Node: Extension API Functions Introduction874340 -Node: General Data Types879206 -Ref: General Data Types-Footnote-1884808 -Node: Requesting Values885107 -Ref: table-value-types-returned885838 -Node: Constructor Functions886792 -Node: Registration Functions889812 -Node: Extension Functions890497 -Node: Exit Callback Functions892722 -Node: Extension Version String893971 -Node: Input Parsers894621 -Node: Output Wrappers904378 -Node: Two-way processors908888 -Node: Printing Messages911096 -Ref: Printing Messages-Footnote-1912173 -Node: Updating `ERRNO'912325 -Node: Accessing Parameters913064 -Node: Symbol Table Access914294 -Node: Symbol table by name914806 -Node: Symbol table by cookie916553 -Ref: Symbol table by cookie-Footnote-1920683 -Node: Cached values920746 -Ref: Cached values-Footnote-1924195 -Node: Array Manipulation924286 -Ref: Array Manipulation-Footnote-1925384 -Node: Array Data Types925423 -Ref: Array Data Types-Footnote-1928126 -Node: Array Functions928218 -Node: Flattening Arrays931984 -Node: Creating Arrays938836 -Node: Extension API Variables943561 -Node: Extension Versioning944197 -Node: Extension API Informational Variables946098 -Node: Extension API Boilerplate947184 -Node: Finding Extensions950988 -Node: Extension Example951548 -Node: Internal File Description952279 -Node: Internal File Ops955967 -Ref: Internal File Ops-Footnote-1967451 -Node: Using Internal File Ops967591 -Ref: Using Internal File Ops-Footnote-1969944 -Node: Extension Samples970210 -Node: Extension Sample File Functions971734 -Node: Extension Sample Fnmatch980221 -Node: Extension Sample Fork981947 -Node: Extension Sample Inplace983165 -Node: Extension Sample Ord984943 -Node: Extension Sample Readdir985779 -Node: Extension Sample Revout987311 -Node: Extension Sample Rev2way987904 -Node: Extension Sample Read write array988594 -Node: Extension Sample Readfile990477 -Node: Extension Sample API Tests991295 -Node: Extension Sample Time991820 -Node: gawkextlib993184 -Node: Language History995615 -Node: V7/SVR3.1997137 -Node: SVR4999458 -Node: POSIX1000900 -Node: BTL1002286 -Node: POSIX/GNU1003020 -Node: Common Extensions1008555 -Node: Ranges and Locales1009710 -Ref: Ranges and Locales-Footnote-11014328 -Ref: Ranges and Locales-Footnote-21014355 -Ref: Ranges and Locales-Footnote-31014615 -Node: Contributors1014836 -Node: Installation1019640 -Node: Gawk Distribution1020534 -Node: Getting1021018 -Node: Extracting1021844 -Node: Distribution contents1023536 -Node: Unix Installation1028797 -Node: Quick Installation1029414 -Node: Additional Configuration Options1031376 -Node: Configuration Philosophy1032853 -Node: Non-Unix Installation1035195 -Node: PC Installation1035653 -Node: PC Binary Installation1036952 -Node: PC Compiling1038800 -Node: PC Testing1041744 -Node: PC Using1042920 -Node: Cygwin1047105 -Node: MSYS1048105 -Node: VMS Installation1048619 -Node: VMS Compilation1049222 -Ref: VMS Compilation-Footnote-11050229 -Node: VMS Installation Details1050287 -Node: VMS Running1051922 -Node: VMS Old Gawk1053529 -Node: Bugs1054003 -Node: Other Versions1057855 -Node: Notes1063456 -Node: Compatibility Mode1064256 -Node: Additions1065039 -Node: Accessing The Source1065966 -Node: Adding Code1067406 -Node: New Ports1073451 -Node: Derived Files1077586 -Ref: Derived Files-Footnote-11082907 -Ref: Derived Files-Footnote-21082941 -Ref: Derived Files-Footnote-31083541 -Node: Future Extensions1083639 -Node: Implementation Limitations1084220 -Node: Extension Design1085472 -Node: Old Extension Problems1086626 -Ref: Old Extension Problems-Footnote-11088134 -Node: Extension New Mechanism Goals1088191 -Ref: Extension New Mechanism Goals-Footnote-11091557 -Node: Extension Other Design Decisions1091743 -Node: Extension Future Growth1093849 -Node: Old Extension Mechanism1094685 -Node: Basic Concepts1096425 -Node: Basic High Level1097106 -Ref: figure-general-flow1097377 -Ref: figure-process-flow1097976 -Ref: Basic High Level-Footnote-11101205 -Node: Basic Data Typing1101390 -Node: Glossary1104745 -Node: Copying1130216 -Node: GNU Free Documentation License1167773 -Node: Index1192910 +Node: Top1360 +Node: Foreword40338 +Node: Preface44683 +Ref: Preface-Footnote-147736 +Ref: Preface-Footnote-247832 +Node: History48064 +Node: Names50438 +Ref: Names-Footnote-151915 +Node: This Manual51987 +Ref: This Manual-Footnote-157761 +Node: Conventions57861 +Node: Manual History60013 +Ref: Manual History-Footnote-163461 +Ref: Manual History-Footnote-263502 +Node: How To Contribute63576 +Node: Acknowledgments64720 +Node: Getting Started68929 +Node: Running gawk71308 +Node: One-shot72494 +Node: Read Terminal73719 +Ref: Read Terminal-Footnote-175369 +Ref: Read Terminal-Footnote-275645 +Node: Long75816 +Node: Executable Scripts77192 +Ref: Executable Scripts-Footnote-179025 +Ref: Executable Scripts-Footnote-279127 +Node: Comments79674 +Node: Quoting82141 +Node: DOS Quoting86764 +Node: Sample Data Files87439 +Node: Very Simple90471 +Node: Two Rules95070 +Node: More Complex97217 +Ref: More Complex-Footnote-1100147 +Node: Statements/Lines100232 +Ref: Statements/Lines-Footnote-1104694 +Node: Other Features104959 +Node: When105887 +Node: Invoking Gawk108034 +Node: Command Line109495 +Node: Options110278 +Ref: Options-Footnote-1125670 +Node: Other Arguments125695 +Node: Naming Standard Input128353 +Node: Environment Variables129447 +Node: AWKPATH Variable130005 +Ref: AWKPATH Variable-Footnote-1132763 +Node: AWKLIBPATH Variable133023 +Node: Other Environment Variables133741 +Node: Exit Status136236 +Node: Include Files136911 +Node: Loading Shared Libraries140480 +Node: Obsolete141844 +Node: Undocumented142541 +Node: Regexp142784 +Node: Regexp Usage144173 +Node: Escape Sequences146199 +Node: Regexp Operators151868 +Ref: Regexp Operators-Footnote-1159248 +Ref: Regexp Operators-Footnote-2159395 +Node: Bracket Expressions159493 +Ref: table-char-classes161383 +Node: GNU Regexp Operators163906 +Node: Case-sensitivity167629 +Ref: Case-sensitivity-Footnote-1170597 +Ref: Case-sensitivity-Footnote-2170832 +Node: Leftmost Longest170940 +Node: Computed Regexps172141 +Node: Reading Files175478 +Node: Records177481 +Ref: Records-Footnote-1186370 +Node: Fields186407 +Ref: Fields-Footnote-1189440 +Node: Nonconstant Fields189526 +Node: Changing Fields191728 +Node: Field Separators197687 +Node: Default Field Splitting200316 +Node: Regexp Field Splitting201433 +Node: Single Character Fields204775 +Node: Command Line Field Separator205834 +Node: Field Splitting Summary209275 +Ref: Field Splitting Summary-Footnote-1212386 +Node: Constant Size212487 +Node: Splitting By Content217071 +Ref: Splitting By Content-Footnote-1220797 +Node: Multiple Line220837 +Ref: Multiple Line-Footnote-1226684 +Node: Getline226863 +Node: Plain Getline229079 +Node: Getline/Variable231174 +Node: Getline/File232321 +Node: Getline/Variable/File233662 +Ref: Getline/Variable/File-Footnote-1235261 +Node: Getline/Pipe235348 +Node: Getline/Variable/Pipe238048 +Node: Getline/Coprocess239155 +Node: Getline/Variable/Coprocess240407 +Node: Getline Notes241144 +Node: Getline Summary243931 +Ref: table-getline-variants244339 +Node: Read Timeout245251 +Ref: Read Timeout-Footnote-1248992 +Node: Command line directories249049 +Node: Printing249679 +Node: Print251310 +Node: Print Examples252647 +Node: Output Separators255431 +Node: OFMT257191 +Node: Printf258549 +Node: Basic Printf259455 +Node: Control Letters260994 +Node: Format Modifiers264806 +Node: Printf Examples270815 +Node: Redirection273530 +Node: Special Files280495 +Node: Special FD281028 +Ref: Special FD-Footnote-1284653 +Node: Special Network284727 +Node: Special Caveats285577 +Node: Close Files And Pipes286373 +Ref: Close Files And Pipes-Footnote-1293356 +Ref: Close Files And Pipes-Footnote-2293504 +Node: Expressions293654 +Node: Values294786 +Node: Constants295462 +Node: Scalar Constants296142 +Ref: Scalar Constants-Footnote-1297001 +Node: Nondecimal-numbers297183 +Node: Regexp Constants300183 +Node: Using Constant Regexps300658 +Node: Variables303713 +Node: Using Variables304368 +Node: Assignment Options306092 +Node: Conversion307964 +Ref: table-locale-affects313464 +Ref: Conversion-Footnote-1314088 +Node: All Operators314197 +Node: Arithmetic Ops314827 +Node: Concatenation317332 +Ref: Concatenation-Footnote-1320125 +Node: Assignment Ops320245 +Ref: table-assign-ops325233 +Node: Increment Ops326564 +Node: Truth Values and Conditions329999 +Node: Truth Values331082 +Node: Typing and Comparison332131 +Node: Variable Typing332920 +Ref: Variable Typing-Footnote-1336817 +Node: Comparison Operators336939 +Ref: table-relational-ops337349 +Node: POSIX String Comparison340898 +Ref: POSIX String Comparison-Footnote-1341854 +Node: Boolean Ops341992 +Ref: Boolean Ops-Footnote-1346070 +Node: Conditional Exp346161 +Node: Function Calls347893 +Node: Precedence351487 +Node: Locales355156 +Node: Patterns and Actions356245 +Node: Pattern Overview357299 +Node: Regexp Patterns358968 +Node: Expression Patterns359511 +Node: Ranges363196 +Node: BEGIN/END366162 +Node: Using BEGIN/END366924 +Ref: Using BEGIN/END-Footnote-1369655 +Node: I/O And BEGIN/END369761 +Node: BEGINFILE/ENDFILE372043 +Node: Empty374957 +Node: Using Shell Variables375273 +Node: Action Overview377558 +Node: Statements379915 +Node: If Statement381769 +Node: While Statement383268 +Node: Do Statement385312 +Node: For Statement386468 +Node: Switch Statement389620 +Node: Break Statement391717 +Node: Continue Statement393707 +Node: Next Statement395500 +Node: Nextfile Statement397890 +Node: Exit Statement400533 +Node: Built-in Variables402949 +Node: User-modified404044 +Ref: User-modified-Footnote-1412404 +Node: Auto-set412466 +Ref: Auto-set-Footnote-1425397 +Ref: Auto-set-Footnote-2425602 +Node: ARGC and ARGV425658 +Node: Arrays429509 +Node: Array Basics431014 +Node: Array Intro431840 +Node: Reference to Elements436158 +Node: Assigning Elements438428 +Node: Array Example438919 +Node: Scanning an Array440651 +Node: Controlling Scanning442965 +Ref: Controlling Scanning-Footnote-1447888 +Node: Delete448204 +Ref: Delete-Footnote-1450969 +Node: Numeric Array Subscripts451026 +Node: Uninitialized Subscripts453209 +Node: Multi-dimensional454837 +Node: Multi-scanning457931 +Node: Arrays of Arrays459522 +Node: Functions464163 +Node: Built-in464982 +Node: Calling Built-in466060 +Node: Numeric Functions468048 +Ref: Numeric Functions-Footnote-1471880 +Ref: Numeric Functions-Footnote-2472237 +Ref: Numeric Functions-Footnote-3472285 +Node: String Functions472554 +Ref: String Functions-Footnote-1496112 +Ref: String Functions-Footnote-2496241 +Ref: String Functions-Footnote-3496489 +Node: Gory Details496576 +Ref: table-sub-escapes498255 +Ref: table-sub-posix-92499609 +Ref: table-sub-proposed500960 +Ref: table-posix-sub502314 +Ref: table-gensub-escapes503859 +Ref: Gory Details-Footnote-1505035 +Ref: Gory Details-Footnote-2505086 +Node: I/O Functions505237 +Ref: I/O Functions-Footnote-1512222 +Node: Time Functions512369 +Ref: Time Functions-Footnote-1523302 +Ref: Time Functions-Footnote-2523370 +Ref: Time Functions-Footnote-3523528 +Ref: Time Functions-Footnote-4523639 +Ref: Time Functions-Footnote-5523751 +Ref: Time Functions-Footnote-6523978 +Node: Bitwise Functions524244 +Ref: table-bitwise-ops524802 +Ref: Bitwise Functions-Footnote-1529023 +Node: Type Functions529207 +Node: I18N Functions529677 +Node: User-defined531304 +Node: Definition Syntax532108 +Ref: Definition Syntax-Footnote-1537018 +Node: Function Example537087 +Node: Function Caveats539681 +Node: Calling A Function540102 +Node: Variable Scope541217 +Node: Pass By Value/Reference544180 +Node: Return Statement547688 +Node: Dynamic Typing550669 +Node: Indirect Calls551600 +Node: Library Functions561285 +Ref: Library Functions-Footnote-1564798 +Ref: Library Functions-Footnote-2564941 +Node: Library Names565112 +Ref: Library Names-Footnote-1568583 +Ref: Library Names-Footnote-2568803 +Node: General Functions568889 +Node: Strtonum Function569842 +Node: Assert Function572772 +Node: Round Function576098 +Node: Cliff Random Function577641 +Node: Ordinal Functions578657 +Ref: Ordinal Functions-Footnote-1581727 +Ref: Ordinal Functions-Footnote-2581979 +Node: Join Function582188 +Ref: Join Function-Footnote-1583959 +Node: Getlocaltime Function584159 +Node: Data File Management587874 +Node: Filetrans Function588506 +Node: Rewind Function592575 +Node: File Checking593962 +Node: Empty Files595056 +Node: Ignoring Assigns597286 +Node: Getopt Function598839 +Ref: Getopt Function-Footnote-1610143 +Node: Passwd Functions610346 +Ref: Passwd Functions-Footnote-1619321 +Node: Group Functions619409 +Node: Walking Arrays627493 +Node: Sample Programs629630 +Node: Running Examples630304 +Node: Clones631032 +Node: Cut Program632256 +Node: Egrep Program642101 +Ref: Egrep Program-Footnote-1649874 +Node: Id Program649984 +Node: Split Program653600 +Ref: Split Program-Footnote-1657119 +Node: Tee Program657247 +Node: Uniq Program660050 +Node: Wc Program667479 +Ref: Wc Program-Footnote-1671745 +Ref: Wc Program-Footnote-2671945 +Node: Miscellaneous Programs672037 +Node: Dupword Program673225 +Node: Alarm Program675256 +Node: Translate Program680005 +Ref: Translate Program-Footnote-1684392 +Ref: Translate Program-Footnote-2684620 +Node: Labels Program684754 +Ref: Labels Program-Footnote-1688125 +Node: Word Sorting688209 +Node: History Sorting692093 +Node: Extract Program693932 +Ref: Extract Program-Footnote-1701433 +Node: Simple Sed701561 +Node: Igawk Program704623 +Ref: Igawk Program-Footnote-1719780 +Ref: Igawk Program-Footnote-2719981 +Node: Anagram Program720119 +Node: Signature Program723187 +Node: Advanced Features724287 +Node: Nondecimal Data726169 +Node: Array Sorting727752 +Node: Controlling Array Traversal728449 +Node: Array Sorting Functions736687 +Ref: Array Sorting Functions-Footnote-1740361 +Ref: Array Sorting Functions-Footnote-2740454 +Node: Two-way I/O740648 +Ref: Two-way I/O-Footnote-1746080 +Node: TCP/IP Networking746150 +Node: Profiling748994 +Node: Internationalization756491 +Node: I18N and L10N757916 +Node: Explaining gettext758602 +Ref: Explaining gettext-Footnote-1763670 +Ref: Explaining gettext-Footnote-2763854 +Node: Programmer i18n764019 +Node: Translator i18n768221 +Node: String Extraction769014 +Ref: String Extraction-Footnote-1769975 +Node: Printf Ordering770061 +Ref: Printf Ordering-Footnote-1772845 +Node: I18N Portability772909 +Ref: I18N Portability-Footnote-1775358 +Node: I18N Example775421 +Ref: I18N Example-Footnote-1778059 +Node: Gawk I18N778131 +Node: Debugger778752 +Node: Debugging779723 +Node: Debugging Concepts780156 +Node: Debugging Terms782012 +Node: Awk Debugging784609 +Node: Sample Debugging Session785501 +Node: Debugger Invocation786021 +Node: Finding The Bug787353 +Node: List of Debugger Commands793841 +Node: Breakpoint Control795175 +Node: Debugger Execution Control798839 +Node: Viewing And Changing Data802199 +Node: Execution Stack805555 +Node: Debugger Info807022 +Node: Miscellaneous Debugger Commands811004 +Node: Readline Support816180 +Node: Limitations817011 +Node: Arbitrary Precision Arithmetic819263 +Ref: Arbitrary Precision Arithmetic-Footnote-1820914 +Node: General Arithmetic821062 +Node: Floating Point Issues822782 +Node: String Conversion Precision823663 +Ref: String Conversion Precision-Footnote-1825369 +Node: Unexpected Results825478 +Node: POSIX Floating Point Problems827631 +Ref: POSIX Floating Point Problems-Footnote-1831456 +Node: Integer Programming831494 +Node: Floating-point Programming833233 +Ref: Floating-point Programming-Footnote-1839564 +Ref: Floating-point Programming-Footnote-2839834 +Node: Floating-point Representation840098 +Node: Floating-point Context841263 +Ref: table-ieee-formats842102 +Node: Rounding Mode843486 +Ref: table-rounding-modes843965 +Ref: Rounding Mode-Footnote-1846980 +Node: Gawk and MPFR847159 +Node: Arbitrary Precision Floats848414 +Ref: Arbitrary Precision Floats-Footnote-1850857 +Node: Setting Precision851173 +Ref: table-predefined-precision-strings851859 +Node: Setting Rounding Mode854004 +Ref: table-gawk-rounding-modes854408 +Node: Floating-point Constants855595 +Node: Changing Precision857024 +Ref: Changing Precision-Footnote-1858424 +Node: Exact Arithmetic858598 +Node: Arbitrary Precision Integers861736 +Ref: Arbitrary Precision Integers-Footnote-1864754 +Node: Dynamic Extensions864901 +Node: Extension Intro866359 +Node: Plugin License867624 +Node: Extension Mechanism Outline868309 +Ref: load-extension868726 +Ref: load-new-function870204 +Ref: call-new-function871199 +Node: Extension API Description873214 +Node: Extension API Functions Introduction874427 +Node: General Data Types879293 +Ref: General Data Types-Footnote-1884895 +Node: Requesting Values885194 +Ref: table-value-types-returned885925 +Node: Constructor Functions886879 +Node: Registration Functions889899 +Node: Extension Functions890584 +Node: Exit Callback Functions892809 +Node: Extension Version String894058 +Node: Input Parsers894708 +Node: Output Wrappers904465 +Node: Two-way processors908975 +Node: Printing Messages911183 +Ref: Printing Messages-Footnote-1912260 +Node: Updating `ERRNO'912412 +Node: Accessing Parameters913151 +Node: Symbol Table Access914381 +Node: Symbol table by name914893 +Node: Symbol table by cookie916640 +Ref: Symbol table by cookie-Footnote-1920770 +Node: Cached values920833 +Ref: Cached values-Footnote-1924282 +Node: Array Manipulation924373 +Ref: Array Manipulation-Footnote-1925471 +Node: Array Data Types925510 +Ref: Array Data Types-Footnote-1928213 +Node: Array Functions928305 +Node: Flattening Arrays932071 +Node: Creating Arrays938923 +Node: Extension API Variables943648 +Node: Extension Versioning944284 +Node: Extension API Informational Variables946185 +Node: Extension API Boilerplate947271 +Node: Finding Extensions951075 +Node: Extension Example951635 +Node: Internal File Description952366 +Node: Internal File Ops956054 +Ref: Internal File Ops-Footnote-1967538 +Node: Using Internal File Ops967678 +Ref: Using Internal File Ops-Footnote-1970031 +Node: Extension Samples970297 +Node: Extension Sample File Functions971821 +Node: Extension Sample Fnmatch980308 +Node: Extension Sample Fork982034 +Node: Extension Sample Inplace983252 +Node: Extension Sample Ord985030 +Node: Extension Sample Readdir985866 +Node: Extension Sample Revout987398 +Node: Extension Sample Rev2way987991 +Node: Extension Sample Read write array988681 +Node: Extension Sample Readfile990564 +Node: Extension Sample API Tests991382 +Node: Extension Sample Time991907 +Node: gawkextlib993271 +Node: Language History995702 +Node: V7/SVR3.1997224 +Node: SVR4999545 +Node: POSIX1000987 +Node: BTL1002373 +Node: POSIX/GNU1003107 +Node: Common Extensions1008642 +Node: Ranges and Locales1009948 +Ref: Ranges and Locales-Footnote-11014566 +Ref: Ranges and Locales-Footnote-21014593 +Ref: Ranges and Locales-Footnote-31014853 +Node: Contributors1015074 +Node: Installation1019953 +Node: Gawk Distribution1020847 +Node: Getting1021331 +Node: Extracting1022157 +Node: Distribution contents1023849 +Node: Unix Installation1029110 +Node: Quick Installation1029727 +Node: Additional Configuration Options1031689 +Node: Configuration Philosophy1033166 +Node: Non-Unix Installation1035508 +Node: PC Installation1035966 +Node: PC Binary Installation1037265 +Node: PC Compiling1039113 +Node: PC Testing1042057 +Node: PC Using1043233 +Node: Cygwin1047418 +Node: MSYS1048418 +Node: VMS Installation1048932 +Node: VMS Compilation1049535 +Ref: VMS Compilation-Footnote-11050542 +Node: VMS Installation Details1050600 +Node: VMS Running1052235 +Node: VMS Old Gawk1053842 +Node: Bugs1054316 +Node: Other Versions1058168 +Node: Notes1063769 +Node: Compatibility Mode1064569 +Node: Additions1065352 +Node: Accessing The Source1066279 +Node: Adding Code1067719 +Node: New Ports1073764 +Node: Derived Files1077899 +Ref: Derived Files-Footnote-11083220 +Ref: Derived Files-Footnote-21083254 +Ref: Derived Files-Footnote-31083854 +Node: Future Extensions1083952 +Node: Implementation Limitations1084533 +Node: Extension Design1085785 +Node: Old Extension Problems1086939 +Ref: Old Extension Problems-Footnote-11088447 +Node: Extension New Mechanism Goals1088504 +Ref: Extension New Mechanism Goals-Footnote-11091870 +Node: Extension Other Design Decisions1092056 +Node: Extension Future Growth1094162 +Node: Old Extension Mechanism1094998 +Node: Basic Concepts1096738 +Node: Basic High Level1097419 +Ref: figure-general-flow1097690 +Ref: figure-process-flow1098289 +Ref: Basic High Level-Footnote-11101518 +Node: Basic Data Typing1101703 +Node: Glossary1105058 +Node: Copying1130520 +Node: GNU Free Documentation License1168077 +Node: Index1193214 End Tag Table |