diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | awkgram.c | 22 | ||||
-rw-r--r-- | awkgram.y | 22 | ||||
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1214 | ||||
-rw-r--r-- | doc/gawk.texi | 18 | ||||
-rw-r--r-- | doc/gawktexi.in | 18 |
7 files changed, 704 insertions, 600 deletions
@@ -1,3 +1,9 @@ +2017-04-23 Arnold D. Robbins <arnold@skeeve.com> + + * awkgram.y (nextc): Adjust so that 3.1.x behavior is restored + whereby --source arguments are concatenated. Thanks to + "Neil R. Ormos" <ormos-gnulists17@ormos.org> for the report. + 2017-04-21 Arnold D. Robbins <arnold@skeeve.com> * awk.h (NODE): Put the `val' subportion back the way it @@ -5521,8 +5521,21 @@ nextc(bool check_for_bad) { if (gawk_mb_cur_max > 1) { again: +#ifdef NO_CONTINUE_SOURCE_STRINGS if (lexeof) return END_FILE; +#else + if (lexeof) { + if (sourcefile->next == srcfiles) + return END_FILE; + else { + next_sourcefile(); + if (get_src_buf()) + goto again; + return END_SRC; + } + } +#endif if (lexptr == NULL || lexptr >= lexend) { if (get_src_buf()) goto again; @@ -5574,8 +5587,17 @@ again: return (int) (unsigned char) *lexptr++; } else { do { +#ifdef NO_CONTINUE_SOURCE_STRINGS if (lexeof) return END_FILE; +#else + if (lexeof) { + if (sourcefile->next == srcfiles) + return END_FILE; + else + next_sourcefile(); + } +#endif if (lexptr && lexptr < lexend) { if (check_for_bad || *lexptr == '\0') check_bad_char(*lexptr); @@ -3101,8 +3101,21 @@ nextc(bool check_for_bad) { if (gawk_mb_cur_max > 1) { again: +#ifdef NO_CONTINUE_SOURCE_STRINGS if (lexeof) return END_FILE; +#else + if (lexeof) { + if (sourcefile->next == srcfiles) + return END_FILE; + else { + next_sourcefile(); + if (get_src_buf()) + goto again; + return END_SRC; + } + } +#endif if (lexptr == NULL || lexptr >= lexend) { if (get_src_buf()) goto again; @@ -3154,8 +3167,17 @@ again: return (int) (unsigned char) *lexptr++; } else { do { +#ifdef NO_CONTINUE_SOURCE_STRINGS if (lexeof) return END_FILE; +#else + if (lexeof) { + if (sourcefile->next == srcfiles) + return END_FILE; + else + next_sourcefile(); + } +#endif if (lexptr && lexptr < lexend) { if (check_for_bad || *lexptr == '\0') check_bad_char(*lexptr); diff --git a/doc/ChangeLog b/doc/ChangeLog index dd8b910f..567fa990 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2017-04-23 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Improve documentation of --source option. + 2017-04-20 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Document --disable-mpfr configure option. diff --git a/doc/gawk.info b/doc/gawk.info index 20702093..3779fa95 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -2557,6 +2557,20 @@ The following list describes options mandated by the POSIX standard: have library functions that you want to use from your command-line programs (*note AWKPATH Variable::). + Note that 'gawk' treats each string as if it ended with a newline + character (even if it doesn't). This makes building the total + program easier. + + CAUTION: At the moment, there is no requirement that each + PROGRAM-TEXT be a full syntactic unit. I.e., the following + currently works: + + $ gawk -e 'BEGIN { a = 5 ;' -e 'print a }' + -| 5 + + However, this could change in the future, so it's not a good + idea to rely upon this feature. + '-E' FILE '--exec' FILE Similar to '-f', read 'awk' program text from FILE. There are two @@ -32437,7 +32451,7 @@ Index * - (hyphen), filenames beginning with: Options. (line 60) * - (hyphen), in bracket expressions: Bracket Expressions. (line 25) * --assign option: Options. (line 32) -* --bignum option: Options. (line 203) +* --bignum option: Options. (line 217) * --characters-as-bytes option: Options. (line 69) * --copyright option: Options. (line 89) * --debug option: Options. (line 108) @@ -32452,31 +32466,31 @@ Index * --dump-variables option: Options. (line 94) * --dump-variables option, using for library functions: Library Names. (line 45) -* --exec option: Options. (line 125) +* --exec option: Options. (line 139) * --field-separator option: Options. (line 21) * --file option: Options. (line 25) -* --gen-pot option: Options. (line 147) +* --gen-pot option: Options. (line 161) * --gen-pot option <1>: String Extraction. (line 6) * --gen-pot option <2>: String Extraction. (line 6) -* --help option: Options. (line 154) -* --include option: Options. (line 159) +* --help option: Options. (line 168) +* --include option: Options. (line 173) * --lint option: Command Line. (line 20) -* --lint option <1>: Options. (line 184) -* --lint-old option: Options. (line 299) -* --load option: Options. (line 172) -* --no-optimize option: Options. (line 285) -* --non-decimal-data option: Options. (line 209) +* --lint option <1>: Options. (line 198) +* --lint-old option: Options. (line 313) +* --load option: Options. (line 186) +* --no-optimize option: Options. (line 299) +* --non-decimal-data option: Options. (line 223) * --non-decimal-data option <1>: Nondecimal Data. (line 6) * --non-decimal-data option, strtonum() function and: Nondecimal Data. (line 35) -* --optimize option: Options. (line 234) -* --posix option: Options. (line 257) -* --posix option, --traditional option and: Options. (line 272) -* --pretty-print option: Options. (line 223) -* --profile option: Options. (line 245) +* --optimize option: Options. (line 248) +* --posix option: Options. (line 271) +* --posix option, --traditional option and: Options. (line 286) +* --pretty-print option: Options. (line 237) +* --profile option: Options. (line 259) * --profile option <1>: Profiling. (line 12) -* --re-interval option: Options. (line 278) -* --sandbox option: Options. (line 290) +* --re-interval option: Options. (line 292) +* --sandbox option: Options. (line 304) * --sandbox option, disabling system() function: I/O Functions. (line 129) * --sandbox option, input redirection with getline: Getline. (line 19) @@ -32484,9 +32498,9 @@ Index (line 6) * --source option: Options. (line 117) * --traditional option: Options. (line 82) -* --traditional option, --posix option and: Options. (line 272) -* --use-lc-numeric option: Options. (line 218) -* --version option: Options. (line 304) +* --traditional option, --posix option and: Options. (line 286) +* --use-lc-numeric option: Options. (line 232) +* --version option: Options. (line 318) * --with-whiny-user-strftime configuration option: Additional Configuration Options. (line 42) * -b option: Options. (line 69) @@ -32495,33 +32509,33 @@ Index * -d option: Options. (line 94) * -D option: Options. (line 108) * -e option: Options. (line 117) -* -E option: Options. (line 125) -* -e option <1>: Options. (line 340) +* -E option: Options. (line 139) +* -e option <1>: Options. (line 354) * -f option: Long. (line 12) * -F option: Options. (line 21) * -f option <1>: Options. (line 25) -* -F option, -Ft sets FS to TAB: Options. (line 312) +* -F option, -Ft sets FS to TAB: Options. (line 326) * -F option, command-line: Command Line Field Separator. (line 6) -* -f option, multiple uses: Options. (line 317) -* -g option: Options. (line 147) -* -h option: Options. (line 154) -* -i option: Options. (line 159) -* -l option: Options. (line 172) -* -l option <1>: Options. (line 184) -* -L option: Options. (line 299) -* -M option: Options. (line 203) -* -n option: Options. (line 209) -* -N option: Options. (line 218) -* -o option: Options. (line 223) -* -O option: Options. (line 234) -* -p option: Options. (line 245) -* -P option: Options. (line 257) -* -r option: Options. (line 278) -* -s option: Options. (line 285) -* -S option: Options. (line 290) +* -f option, multiple uses: Options. (line 331) +* -g option: Options. (line 161) +* -h option: Options. (line 168) +* -i option: Options. (line 173) +* -l option: Options. (line 186) +* -l option <1>: Options. (line 198) +* -L option: Options. (line 313) +* -M option: Options. (line 217) +* -n option: Options. (line 223) +* -N option: Options. (line 232) +* -o option: Options. (line 237) +* -O option: Options. (line 248) +* -p option: Options. (line 259) +* -P option: Options. (line 271) +* -r option: Options. (line 292) +* -s option: Options. (line 299) +* -S option: Options. (line 304) * -v option: Options. (line 32) -* -V option: Options. (line 304) +* -V option: Options. (line 318) * -v option <1>: Assignment Options. (line 12) * -W option: Options. (line 47) * . (period), regexp operator: Regexp Operators. (line 44) @@ -32820,7 +32834,7 @@ Index * awf (amazingly workable formatter) program: Glossary. (line 24) * awk debugging, enabling: Options. (line 108) * awk language, POSIX version: Assignment Ops. (line 138) -* awk profiling, enabling: Options. (line 245) +* awk profiling, enabling: Options. (line 259) * awk programs: Getting Started. (line 12) * awk programs <1>: Executable Scripts. (line 6) * awk programs <2>: Two Rules. (line 6) @@ -32834,8 +32848,8 @@ Index * awk programs, lengthy: Long. (line 6) * awk programs, lengthy, assertions: Assert Function. (line 6) * awk programs, location of: Options. (line 25) -* awk programs, location of <1>: Options. (line 125) -* awk programs, location of <2>: Options. (line 159) +* awk programs, location of <1>: Options. (line 139) +* awk programs, location of <2>: Options. (line 173) * awk programs, one-line examples: Very Simple. (line 46) * awk programs, profiling: Profiling. (line 6) * awk programs, running: Running gawk. (line 6) @@ -33078,7 +33092,7 @@ Index * case sensitivity, example programs: Library Functions. (line 53) * case sensitivity, gawk: Case-sensitivity. (line 26) * case sensitivity, regexps and: Case-sensitivity. (line 6) -* CGI, awk scripts for: Options. (line 125) +* CGI, awk scripts for: Options. (line 139) * character classes, See bracket expressions: Regexp Operators. (line 56) * character lists in regular expression: Bracket Expressions. (line 6) @@ -33228,7 +33242,7 @@ Index * cosine: Numeric Functions. (line 16) * counting: Wc Program. (line 6) * csh utility: Statements/Lines. (line 43) -* csh utility, POSIXLY_CORRECT environment variable: Options. (line 358) +* csh utility, POSIXLY_CORRECT environment variable: Options. (line 372) * csh utility, |& operator, comparison with: Two-way I/O. (line 27) * ctime() user-defined function: Function Example. (line 74) * currency symbols, localization: Explaining gettext. (line 104) @@ -33417,7 +33431,7 @@ Index * debugger, read commands from a file: Debugger Info. (line 97) * debugging awk programs: Debugger. (line 6) * debugging gawk, bug reports: Bugs. (line 9) -* decimal point character, locale specific: Options. (line 269) +* decimal point character, locale specific: Options. (line 283) * decrement operators: Increment Ops. (line 35) * default keyword: Switch Statement. (line 6) * Deifik, Scott: Acknowledgments. (line 60) @@ -33796,7 +33810,7 @@ Index * files, portable object template: Explaining gettext. (line 31) * files, portable object, converting to message object files: I18N Example. (line 66) -* files, portable object, generating: Options. (line 147) +* files, portable object, generating: Options. (line 161) * files, processing, ARGIND variable and: Auto-set. (line 50) * files, reading: Rewind Function. (line 6) * files, reading, multiline records: Multiple Line. (line 6) @@ -33859,7 +33873,7 @@ Index * FS variable, --field-separator option and: Options. (line 21) * FS variable, as null string: Single Character Fields. (line 20) -* FS variable, as TAB character: Options. (line 266) +* FS variable, as TAB character: Options. (line 280) * FS variable, changing value of: Field Separators. (line 34) * FS variable, running awk programs and: Cut Program. (line 63) * FS variable, setting from command line: Command Line Field Separator. @@ -33949,7 +33963,7 @@ Index * gawk, ERRNO variable in <3>: Auto-set. (line 87) * gawk, ERRNO variable in <4>: TCP/IP Networking. (line 54) * gawk, escape sequences: Escape Sequences. (line 121) -* gawk, extensions, disabling: Options. (line 257) +* gawk, extensions, disabling: Options. (line 271) * gawk, features, adding: Adding Code. (line 6) * gawk, features, advanced: Advanced Features. (line 6) * gawk, field separators and: User-modified. (line 74) @@ -34010,7 +34024,7 @@ Index * gawk, TEXTDOMAIN variable in: User-modified. (line 155) * gawk, timestamps: Time Functions. (line 6) * gawk, uses for: Preface. (line 34) -* gawk, versions of, information about, printing: Options. (line 304) +* gawk, versions of, information about, printing: Options. (line 318) * gawk, VMS version of: VMS Installation. (line 6) * gawk, word-boundary operator: GNU Regexp Operators. (line 66) @@ -34089,7 +34103,7 @@ Index * GNU Lesser General Public License: Glossary. (line 491) * GNU long options: Command Line. (line 13) * GNU long options <1>: Options. (line 6) -* GNU long options, printing list of: Options. (line 154) +* GNU long options, printing list of: Options. (line 168) * GNU Project: Manual History. (line 11) * GNU Project <1>: Glossary. (line 405) * GNU/Linux: Manual History. (line 28) @@ -34121,7 +34135,7 @@ Index * help debugger command: Miscellaneous Debugger Commands. (line 69) * hexadecimal numbers: Nondecimal-numbers. (line 6) -* hexadecimal values, enabling interpretation of: Options. (line 209) +* hexadecimal values, enabling interpretation of: Options. (line 223) * history expansion, in debugger: Readline Support. (line 6) * histsort.awk program: History Sorting. (line 25) * Hughes, Phil: Acknowledgments. (line 43) @@ -34334,9 +34348,9 @@ Index * lint checking, array subscripts: Uninitialized Subscripts. (line 43) * lint checking, empty programs: Command Line. (line 16) -* lint checking, issuing warnings: Options. (line 184) +* lint checking, issuing warnings: Options. (line 198) * lint checking, POSIXLY_CORRECT environment variable: Options. - (line 343) + (line 357) * lint checking, undefined functions: Pass By Value/Reference. (line 85) * LINT variable: User-modified. (line 90) @@ -34349,10 +34363,10 @@ Index * list function definitions, in debugger: Debugger Info. (line 30) * loading extensions, @load directive: Loading Shared Libraries. (line 8) -* loading, extensions: Options. (line 172) +* loading, extensions: Options. (line 186) * local variables, in a function: Variable Scope. (line 6) * locale categories: Explaining gettext. (line 81) -* locale decimal point character: Options. (line 269) +* locale decimal point character: Options. (line 283) * locale, definition of: Locales. (line 6) * localization: I18N and L10N. (line 6) * localization, See internationalization, localization: I18N and L10N. @@ -34434,7 +34448,7 @@ Index * networks, programming: TCP/IP Networking. (line 6) * networks, support for: Special Network. (line 6) * newlines: Statements/Lines. (line 6) -* newlines <1>: Options. (line 263) +* newlines <1>: Options. (line 277) * newlines <2>: Boolean Ops. (line 69) * newlines, as record separators: awk split records. (line 12) * newlines, in dynamic regexps: Computed Regexps. (line 60) @@ -34509,7 +34523,7 @@ Index * o debugger command (alias for option): Debugger Info. (line 57) * obsolete features: Obsolete. (line 6) * octal numbers: Nondecimal-numbers. (line 6) -* octal values, enabling interpretation of: Options. (line 209) +* octal values, enabling interpretation of: Options. (line 223) * OFMT variable: OFMT. (line 15) * OFMT variable <1>: Strings And Numbers. (line 56) * OFMT variable <2>: User-modified. (line 107) @@ -34563,7 +34577,7 @@ Index * options, deprecated: Obsolete. (line 6) * options, long: Command Line. (line 13) * options, long <1>: Options. (line 6) -* options, printing list of: Options. (line 154) +* options, printing list of: Options. (line 168) * or: Bitwise Functions. (line 50) * OR bitwise operation: Bitwise Functions. (line 6) * or Boolean-logic operator: Boolean Ops. (line 6) @@ -34661,13 +34675,13 @@ Index * portability, NF variable, decrementing: Changing Fields. (line 115) * portability, operators: Increment Ops. (line 60) * portability, operators, not in POSIX awk: Precedence. (line 97) -* portability, POSIXLY_CORRECT environment variable: Options. (line 363) +* portability, POSIXLY_CORRECT environment variable: Options. (line 377) * portability, substr() function: String Functions. (line 515) * portable object files: Explaining gettext. (line 37) * portable object files <1>: Translator i18n. (line 6) * portable object files, converting to message object files: I18N Example. (line 66) -* portable object files, generating: Options. (line 147) +* portable object files, generating: Options. (line 161) * portable object template files: Explaining gettext. (line 31) * porting gawk: New Ports. (line 6) * positional specifiers, printf statement: Format Modifiers. (line 13) @@ -34709,12 +34723,12 @@ Index * POSIX awk, regular expressions and: Regexp Operators. (line 161) * POSIX awk, timestamps and: Time Functions. (line 6) * POSIX awk, | I/O operator and: Getline/Pipe. (line 56) -* POSIX mode: Options. (line 257) -* POSIX mode <1>: Options. (line 343) +* POSIX mode: Options. (line 271) +* POSIX mode <1>: Options. (line 357) * POSIX, awk and: Preface. (line 21) * POSIX, gawk extensions not included in: POSIX/GNU. (line 6) * POSIX, programs, implementing in awk: Clones. (line 6) -* POSIXLY_CORRECT environment variable: Options. (line 343) +* POSIXLY_CORRECT environment variable: Options. (line 357) * PREC variable: User-modified. (line 127) * precedence: Increment Ops. (line 60) * precedence <1>: Precedence. (line 6) @@ -34756,7 +34770,7 @@ Index * printf statement, syntax of: Basic Printf. (line 6) * printing: Printing. (line 6) * printing messages from extensions: Printing Messages. (line 6) -* printing, list of options: Options. (line 154) +* printing, list of options: Options. (line 168) * printing, mailing labels: Labels Program. (line 6) * printing, unduplicated lines of text: Uniq Program. (line 6) * printing, user information: Id Program. (line 6) @@ -34897,7 +34911,7 @@ Index (line 60) * regular expressions, gawk, command-line options: GNU Regexp Operators. (line 73) -* regular expressions, interval expressions and: Options. (line 278) +* regular expressions, interval expressions and: Options. (line 292) * regular expressions, leftmost longest match: Leftmost Longest. (line 6) * regular expressions, operators: Regexp Usage. (line 19) @@ -34979,7 +34993,7 @@ Index (line 68) * sample debugging session: Sample Debugging Session. (line 6) -* sandbox mode: Options. (line 290) +* sandbox mode: Options. (line 304) * save debugger options: Debugger Info. (line 85) * scalar or array: Type Functions. (line 11) * scalar values: Basic Data Typing. (line 13) @@ -35302,7 +35316,7 @@ Index * translate string: I18N Functions. (line 21) * translate.awk program: Translate Program. (line 55) * treating files, as single records: gawk split records. (line 92) -* troubleshooting, --non-decimal-data option: Options. (line 209) +* troubleshooting, --non-decimal-data option: Options. (line 223) * troubleshooting, == operator: Comparison Operators. (line 37) * troubleshooting, awk uses FS not IFS: Field Separators. (line 29) @@ -35443,7 +35457,7 @@ Index * Wall, Larry: Array Intro. (line 6) * Wall, Larry <1>: Future Extensions. (line 6) * Wallin, Anders: Contributors. (line 104) -* warnings, issuing: Options. (line 184) +* warnings, issuing: Options. (line 198) * watch debugger command: Viewing And Changing Data. (line 66) * watchpoint: Debugging Terms. (line 42) @@ -35459,7 +35473,7 @@ Index * whitespace, as field separators: Default Field Splitting. (line 6) * whitespace, functions, calling: Calling Built-in. (line 10) -* whitespace, newlines as: Options. (line 263) +* whitespace, newlines as: Options. (line 277) * Williams, Kent: Contributors. (line 35) * Woehlke, Matthew: Contributors. (line 80) * Woods, John: Contributors. (line 28) @@ -35529,534 +35543,534 @@ Node: Intro Summary114368 Node: Invoking Gawk115252 Node: Command Line116766 Node: Options117564 -Ref: Options-Footnote-1133663 -Ref: Options-Footnote-2133893 -Node: Other Arguments133918 -Node: Naming Standard Input136865 -Node: Environment Variables137958 -Node: AWKPATH Variable138516 -Ref: AWKPATH Variable-Footnote-1141927 -Ref: AWKPATH Variable-Footnote-2141961 -Node: AWKLIBPATH Variable142222 -Node: Other Environment Variables143479 -Node: Exit Status147300 -Node: Include Files147977 -Node: Loading Shared Libraries151572 -Node: Obsolete153000 -Node: Undocumented153692 -Node: Invoking Summary153989 -Node: Regexp155649 -Node: Regexp Usage157103 -Node: Escape Sequences159140 -Node: Regexp Operators165372 -Ref: Regexp Operators-Footnote-1172788 -Ref: Regexp Operators-Footnote-2172935 -Node: Bracket Expressions173033 -Ref: table-char-classes175509 -Node: Leftmost Longest178646 -Node: Computed Regexps179949 -Node: GNU Regexp Operators183376 -Node: Case-sensitivity187055 -Ref: Case-sensitivity-Footnote-1189942 -Ref: Case-sensitivity-Footnote-2190177 -Node: Regexp Summary190285 -Node: Reading Files191751 -Node: Records193914 -Node: awk split records194647 -Node: gawk split records199578 -Ref: gawk split records-Footnote-1204118 -Node: Fields204155 -Node: Nonconstant Fields206896 -Ref: Nonconstant Fields-Footnote-1209132 -Node: Changing Fields209336 -Node: Field Separators215264 -Node: Default Field Splitting217962 -Node: Regexp Field Splitting219080 -Node: Single Character Fields222433 -Node: Command Line Field Separator223493 -Node: Full Line Fields226711 -Ref: Full Line Fields-Footnote-1228233 -Ref: Full Line Fields-Footnote-2228279 -Node: Field Splitting Summary228380 -Node: Constant Size230454 -Node: Splitting By Content235763 -Ref: Splitting By Content-Footnote-1239903 -Node: Multiple Line240066 -Ref: Multiple Line-Footnote-1245948 -Node: Getline246127 -Node: Plain Getline248594 -Node: Getline/Variable251233 -Node: Getline/File252382 -Node: Getline/Variable/File253768 -Ref: Getline/Variable/File-Footnote-1255371 -Node: Getline/Pipe255459 -Node: Getline/Variable/Pipe258164 -Node: Getline/Coprocess259297 -Node: Getline/Variable/Coprocess260562 -Node: Getline Notes261302 -Node: Getline Summary264097 -Ref: table-getline-variants264519 -Node: Read Timeout265267 -Ref: Read Timeout-Footnote-1269173 -Node: Retrying Input269231 -Node: Command-line directories270430 -Node: Input Summary271336 -Node: Input Exercises274508 -Node: Printing275236 -Node: Print277070 -Node: Print Examples278527 -Node: Output Separators281307 -Node: OFMT283324 -Node: Printf284680 -Node: Basic Printf285465 -Node: Control Letters287039 -Node: Format Modifiers291027 -Node: Printf Examples297042 -Node: Redirection299528 -Node: Special FD306369 -Ref: Special FD-Footnote-1309537 -Node: Special Files309611 -Node: Other Inherited Files310228 -Node: Special Network311229 -Node: Special Caveats312089 -Node: Close Files And Pipes313038 -Ref: table-close-pipe-return-values319945 -Ref: Close Files And Pipes-Footnote-1320728 -Ref: Close Files And Pipes-Footnote-2320876 -Node: Nonfatal321028 -Node: Output Summary323353 -Node: Output Exercises324575 -Node: Expressions325254 -Node: Values326442 -Node: Constants327120 -Node: Scalar Constants327811 -Ref: Scalar Constants-Footnote-1328675 -Node: Nondecimal-numbers328925 -Node: Regexp Constants331926 -Node: Using Constant Regexps332452 -Node: Standard Regexp Constants333074 -Node: Strong Regexp Constants336262 -Node: Variables339220 -Node: Using Variables339877 -Node: Assignment Options341787 -Node: Conversion343660 -Node: Strings And Numbers344184 -Ref: Strings And Numbers-Footnote-1347247 -Node: Locale influences conversions347356 -Ref: table-locale-affects350114 -Node: All Operators350732 -Node: Arithmetic Ops351361 -Node: Concatenation353867 -Ref: Concatenation-Footnote-1356714 -Node: Assignment Ops356821 -Ref: table-assign-ops361812 -Node: Increment Ops363125 -Node: Truth Values and Conditions366585 -Node: Truth Values367659 -Node: Typing and Comparison368707 -Node: Variable Typing369527 -Ref: Variable Typing-Footnote-1375990 -Ref: Variable Typing-Footnote-2376062 -Node: Comparison Operators376139 -Ref: table-relational-ops376558 -Node: POSIX String Comparison380053 -Ref: POSIX String Comparison-Footnote-1381748 -Ref: POSIX String Comparison-Footnote-2381887 -Node: Boolean Ops381971 -Ref: Boolean Ops-Footnote-1386453 -Node: Conditional Exp386545 -Node: Function Calls388281 -Node: Precedence392158 -Node: Locales395817 -Node: Expressions Summary397449 -Node: Patterns and Actions400022 -Node: Pattern Overview401142 -Node: Regexp Patterns402819 -Node: Expression Patterns403361 -Node: Ranges407142 -Node: BEGIN/END410250 -Node: Using BEGIN/END411011 -Ref: Using BEGIN/END-Footnote-1413747 -Node: I/O And BEGIN/END413853 -Node: BEGINFILE/ENDFILE416167 -Node: Empty419074 -Node: Using Shell Variables419391 -Node: Action Overview421665 -Node: Statements423990 -Node: If Statement425838 -Node: While Statement427333 -Node: Do Statement429361 -Node: For Statement430509 -Node: Switch Statement433667 -Node: Break Statement436053 -Node: Continue Statement438145 -Node: Next Statement439972 -Node: Nextfile Statement442355 -Node: Exit Statement445007 -Node: Built-in Variables447410 -Node: User-modified448543 -Node: Auto-set456310 -Ref: Auto-set-Footnote-1471038 -Ref: Auto-set-Footnote-2471244 -Node: ARGC and ARGV471300 -Node: Pattern Action Summary475513 -Node: Arrays477943 -Node: Array Basics479272 -Node: Array Intro480116 -Ref: figure-array-elements482091 -Ref: Array Intro-Footnote-1484795 -Node: Reference to Elements484923 -Node: Assigning Elements487387 -Node: Array Example487878 -Node: Scanning an Array489637 -Node: Controlling Scanning492659 -Ref: Controlling Scanning-Footnote-1498058 -Node: Numeric Array Subscripts498374 -Node: Uninitialized Subscripts500558 -Node: Delete502177 -Ref: Delete-Footnote-1504929 -Node: Multidimensional504986 -Node: Multiscanning508081 -Node: Arrays of Arrays509672 -Node: Arrays Summary514439 -Node: Functions516532 -Node: Built-in517570 -Node: Calling Built-in518651 -Node: Numeric Functions520647 -Ref: Numeric Functions-Footnote-1524675 -Ref: Numeric Functions-Footnote-2525032 -Ref: Numeric Functions-Footnote-3525080 -Node: String Functions525352 -Ref: String Functions-Footnote-1549010 -Ref: String Functions-Footnote-2549138 -Ref: String Functions-Footnote-3549386 -Node: Gory Details549473 -Ref: table-sub-escapes551264 -Ref: table-sub-proposed552783 -Ref: table-posix-sub554146 -Ref: table-gensub-escapes555687 -Ref: Gory Details-Footnote-1556510 -Node: I/O Functions556664 -Ref: table-system-return-values563246 -Ref: I/O Functions-Footnote-1565226 -Ref: I/O Functions-Footnote-2565374 -Node: Time Functions565494 -Ref: Time Functions-Footnote-1576161 -Ref: Time Functions-Footnote-2576229 -Ref: Time Functions-Footnote-3576387 -Ref: Time Functions-Footnote-4576498 -Ref: Time Functions-Footnote-5576610 -Ref: Time Functions-Footnote-6576837 -Node: Bitwise Functions577103 -Ref: table-bitwise-ops577697 -Ref: Bitwise Functions-Footnote-1583730 -Ref: Bitwise Functions-Footnote-2583903 -Node: Type Functions584094 -Node: I18N Functions586769 -Node: User-defined588420 -Node: Definition Syntax589225 -Ref: Definition Syntax-Footnote-1594912 -Node: Function Example594983 -Ref: Function Example-Footnote-1597905 -Node: Function Caveats597927 -Node: Calling A Function598445 -Node: Variable Scope599403 -Node: Pass By Value/Reference602397 -Node: Return Statement605896 -Node: Dynamic Typing608875 -Node: Indirect Calls609805 -Ref: Indirect Calls-Footnote-1620056 -Node: Functions Summary620184 -Node: Library Functions622889 -Ref: Library Functions-Footnote-1626496 -Ref: Library Functions-Footnote-2626639 -Node: Library Names626810 -Ref: Library Names-Footnote-1630270 -Ref: Library Names-Footnote-2630493 -Node: General Functions630579 -Node: Strtonum Function631682 -Node: Assert Function634704 -Node: Round Function638030 -Node: Cliff Random Function639571 -Node: Ordinal Functions640587 -Ref: Ordinal Functions-Footnote-1643650 -Ref: Ordinal Functions-Footnote-2643902 -Node: Join Function644112 -Ref: Join Function-Footnote-1645882 -Node: Getlocaltime Function646082 -Node: Readfile Function649824 -Node: Shell Quoting651796 -Node: Data File Management653197 -Node: Filetrans Function653829 -Node: Rewind Function657925 -Node: File Checking659831 -Ref: File Checking-Footnote-1661165 -Node: Empty Files661366 -Node: Ignoring Assigns663345 -Node: Getopt Function664895 -Ref: Getopt Function-Footnote-1676364 -Node: Passwd Functions676564 -Ref: Passwd Functions-Footnote-1685403 -Node: Group Functions685491 -Ref: Group Functions-Footnote-1693389 -Node: Walking Arrays693596 -Node: Library Functions Summary696604 -Node: Library Exercises698010 -Node: Sample Programs698475 -Node: Running Examples699245 -Node: Clones699973 -Node: Cut Program701197 -Node: Egrep Program711126 -Ref: Egrep Program-Footnote-1718638 -Node: Id Program718748 -Node: Split Program722428 -Ref: Split Program-Footnote-1725887 -Node: Tee Program726016 -Node: Uniq Program728806 -Node: Wc Program736232 -Ref: Wc Program-Footnote-1740487 -Node: Miscellaneous Programs740581 -Node: Dupword Program741794 -Node: Alarm Program743824 -Node: Translate Program748679 -Ref: Translate Program-Footnote-1753244 -Node: Labels Program753514 -Ref: Labels Program-Footnote-1756865 -Node: Word Sorting756949 -Node: History Sorting761021 -Node: Extract Program762856 -Node: Simple Sed770385 -Node: Igawk Program773459 -Ref: Igawk Program-Footnote-1787790 -Ref: Igawk Program-Footnote-2787992 -Ref: Igawk Program-Footnote-3788114 -Node: Anagram Program788229 -Node: Signature Program791291 -Node: Programs Summary792538 -Node: Programs Exercises793752 -Ref: Programs Exercises-Footnote-1797881 -Node: Advanced Features797972 -Node: Nondecimal Data799962 -Node: Array Sorting801553 -Node: Controlling Array Traversal802253 -Ref: Controlling Array Traversal-Footnote-1810620 -Node: Array Sorting Functions810738 -Ref: Array Sorting Functions-Footnote-1815829 -Node: Two-way I/O816025 -Ref: Two-way I/O-Footnote-1822576 -Ref: Two-way I/O-Footnote-2822763 -Node: TCP/IP Networking822845 -Node: Profiling825963 -Ref: Profiling-Footnote-1834635 -Node: Advanced Features Summary834958 -Node: Internationalization836802 -Node: I18N and L10N838282 -Node: Explaining gettext838969 -Ref: Explaining gettext-Footnote-1844861 -Ref: Explaining gettext-Footnote-2845046 -Node: Programmer i18n845211 -Ref: Programmer i18n-Footnote-1850160 -Node: Translator i18n850209 -Node: String Extraction851003 -Ref: String Extraction-Footnote-1852135 -Node: Printf Ordering852221 -Ref: Printf Ordering-Footnote-1855007 -Node: I18N Portability855071 -Ref: I18N Portability-Footnote-1857527 -Node: I18N Example857590 -Ref: I18N Example-Footnote-1860396 -Node: Gawk I18N860469 -Node: I18N Summary861114 -Node: Debugger862455 -Node: Debugging863477 -Node: Debugging Concepts863918 -Node: Debugging Terms865727 -Node: Awk Debugging868302 -Node: Sample Debugging Session869208 -Node: Debugger Invocation869742 -Node: Finding The Bug871128 -Node: List of Debugger Commands877606 -Node: Breakpoint Control878939 -Node: Debugger Execution Control882633 -Node: Viewing And Changing Data885995 -Node: Execution Stack889369 -Node: Debugger Info891006 -Node: Miscellaneous Debugger Commands895077 -Node: Readline Support900165 -Node: Limitations901061 -Node: Debugging Summary903170 -Node: Arbitrary Precision Arithmetic904449 -Node: Computer Arithmetic905865 -Ref: table-numeric-ranges909456 -Ref: Computer Arithmetic-Footnote-1910178 -Node: Math Definitions910235 -Ref: table-ieee-formats913549 -Ref: Math Definitions-Footnote-1914152 -Node: MPFR features914257 -Node: FP Math Caution915974 -Ref: FP Math Caution-Footnote-1917046 -Node: Inexactness of computations917415 -Node: Inexact representation918375 -Node: Comparing FP Values919735 -Node: Errors accumulate920817 -Node: Getting Accuracy922250 -Node: Try To Round924960 -Node: Setting precision925859 -Ref: table-predefined-precision-strings926556 -Node: Setting the rounding mode928386 -Ref: table-gawk-rounding-modes928760 -Ref: Setting the rounding mode-Footnote-1932168 -Node: Arbitrary Precision Integers932347 -Ref: Arbitrary Precision Integers-Footnote-1935534 -Node: POSIX Floating Point Problems935683 -Ref: POSIX Floating Point Problems-Footnote-1939565 -Node: Floating point summary939603 -Node: Dynamic Extensions941793 -Node: Extension Intro943346 -Node: Plugin License944612 -Node: Extension Mechanism Outline945409 -Ref: figure-load-extension945848 -Ref: figure-register-new-function947413 -Ref: figure-call-new-function948505 -Node: Extension API Description950567 -Node: Extension API Functions Introduction952209 -Node: General Data Types957543 -Ref: General Data Types-Footnote-1964748 -Node: Memory Allocation Functions965047 -Ref: Memory Allocation Functions-Footnote-1967892 -Node: Constructor Functions967991 -Node: Registration Functions970990 -Node: Extension Functions971675 -Node: Exit Callback Functions976888 -Node: Extension Version String978138 -Node: Input Parsers978801 -Node: Output Wrappers991508 -Node: Two-way processors996020 -Node: Printing Messages998285 -Ref: Printing Messages-Footnote-1999456 -Node: Updating ERRNO999609 -Node: Requesting Values1000348 -Ref: table-value-types-returned1001085 -Node: Accessing Parameters1002021 -Node: Symbol Table Access1003256 -Node: Symbol table by name1003768 -Node: Symbol table by cookie1005557 -Ref: Symbol table by cookie-Footnote-11009742 -Node: Cached values1009806 -Ref: Cached values-Footnote-11013342 -Node: Array Manipulation1013433 -Ref: Array Manipulation-Footnote-11014524 -Node: Array Data Types1014561 -Ref: Array Data Types-Footnote-11017219 -Node: Array Functions1017311 -Node: Flattening Arrays1021710 -Node: Creating Arrays1028651 -Node: Redirection API1033420 -Node: Extension API Variables1036262 -Node: Extension Versioning1036895 -Ref: gawk-api-version1037332 -Node: Extension API Informational Variables1039060 -Node: Extension API Boilerplate1040124 -Node: Changes from API V11043986 -Node: Finding Extensions1044646 -Node: Extension Example1045205 -Node: Internal File Description1046003 -Node: Internal File Ops1050083 -Ref: Internal File Ops-Footnote-11061483 -Node: Using Internal File Ops1061623 -Ref: Using Internal File Ops-Footnote-11064006 -Node: Extension Samples1064280 -Node: Extension Sample File Functions1065809 -Node: Extension Sample Fnmatch1073458 -Node: Extension Sample Fork1074945 -Node: Extension Sample Inplace1076163 -Node: Extension Sample Ord1079373 -Node: Extension Sample Readdir1080209 -Ref: table-readdir-file-types1081098 -Node: Extension Sample Revout1081903 -Node: Extension Sample Rev2way1082492 -Node: Extension Sample Read write array1083232 -Node: Extension Sample Readfile1085174 -Node: Extension Sample Time1086269 -Node: Extension Sample API Tests1087617 -Node: gawkextlib1088109 -Node: Extension summary1090556 -Node: Extension Exercises1094258 -Node: Language History1095756 -Node: V7/SVR3.11097412 -Node: SVR41099564 -Node: POSIX1100998 -Node: BTL1102377 -Node: POSIX/GNU1103106 -Node: Feature History1108884 -Node: Common Extensions1123195 -Node: Ranges and Locales1124478 -Ref: Ranges and Locales-Footnote-11129094 -Ref: Ranges and Locales-Footnote-21129121 -Ref: Ranges and Locales-Footnote-31129356 -Node: Contributors1129577 -Node: History summary1135137 -Node: Installation1136517 -Node: Gawk Distribution1137461 -Node: Getting1137945 -Node: Extracting1138906 -Node: Distribution contents1140544 -Node: Unix Installation1146886 -Node: Quick Installation1147568 -Node: Shell Startup Files1149982 -Node: Additional Configuration Options1151071 -Node: Configuration Philosophy1153060 -Node: Non-Unix Installation1155429 -Node: PC Installation1155889 -Node: PC Binary Installation1156727 -Node: PC Compiling1157162 -Node: PC Using1158279 -Node: Cygwin1161324 -Node: MSYS1162094 -Node: VMS Installation1162595 -Node: VMS Compilation1163386 -Ref: VMS Compilation-Footnote-11164615 -Node: VMS Dynamic Extensions1164673 -Node: VMS Installation Details1166358 -Node: VMS Running1168611 -Node: VMS GNV1172890 -Node: VMS Old Gawk1173625 -Node: Bugs1174096 -Node: Bug address1174759 -Node: Usenet1177156 -Node: Maintainers1177933 -Node: Other Versions1179309 -Node: Installation summary1185893 -Node: Notes1186928 -Node: Compatibility Mode1187793 -Node: Additions1188575 -Node: Accessing The Source1189500 -Node: Adding Code1190935 -Node: New Ports1197153 -Node: Derived Files1201641 -Ref: Derived Files-Footnote-11207126 -Ref: Derived Files-Footnote-21207161 -Ref: Derived Files-Footnote-31207759 -Node: Future Extensions1207873 -Node: Implementation Limitations1208531 -Node: Extension Design1209714 -Node: Old Extension Problems1210868 -Ref: Old Extension Problems-Footnote-11212386 -Node: Extension New Mechanism Goals1212443 -Ref: Extension New Mechanism Goals-Footnote-11215807 -Node: Extension Other Design Decisions1215996 -Node: Extension Future Growth1218109 -Node: Old Extension Mechanism1218945 -Node: Notes summary1220708 -Node: Basic Concepts1221890 -Node: Basic High Level1222571 -Ref: figure-general-flow1222853 -Ref: figure-process-flow1223538 -Ref: Basic High Level-Footnote-11226839 -Node: Basic Data Typing1227024 -Node: Glossary1230352 -Node: Copying1262299 -Node: GNU Free Documentation License1299838 -Node: Index1324956 +Ref: Options-Footnote-1134183 +Ref: Options-Footnote-2134413 +Node: Other Arguments134438 +Node: Naming Standard Input137385 +Node: Environment Variables138478 +Node: AWKPATH Variable139036 +Ref: AWKPATH Variable-Footnote-1142447 +Ref: AWKPATH Variable-Footnote-2142481 +Node: AWKLIBPATH Variable142742 +Node: Other Environment Variables143999 +Node: Exit Status147820 +Node: Include Files148497 +Node: Loading Shared Libraries152092 +Node: Obsolete153520 +Node: Undocumented154212 +Node: Invoking Summary154509 +Node: Regexp156169 +Node: Regexp Usage157623 +Node: Escape Sequences159660 +Node: Regexp Operators165892 +Ref: Regexp Operators-Footnote-1173308 +Ref: Regexp Operators-Footnote-2173455 +Node: Bracket Expressions173553 +Ref: table-char-classes176029 +Node: Leftmost Longest179166 +Node: Computed Regexps180469 +Node: GNU Regexp Operators183896 +Node: Case-sensitivity187575 +Ref: Case-sensitivity-Footnote-1190462 +Ref: Case-sensitivity-Footnote-2190697 +Node: Regexp Summary190805 +Node: Reading Files192271 +Node: Records194434 +Node: awk split records195167 +Node: gawk split records200098 +Ref: gawk split records-Footnote-1204638 +Node: Fields204675 +Node: Nonconstant Fields207416 +Ref: Nonconstant Fields-Footnote-1209652 +Node: Changing Fields209856 +Node: Field Separators215784 +Node: Default Field Splitting218482 +Node: Regexp Field Splitting219600 +Node: Single Character Fields222953 +Node: Command Line Field Separator224013 +Node: Full Line Fields227231 +Ref: Full Line Fields-Footnote-1228753 +Ref: Full Line Fields-Footnote-2228799 +Node: Field Splitting Summary228900 +Node: Constant Size230974 +Node: Splitting By Content236283 +Ref: Splitting By Content-Footnote-1240423 +Node: Multiple Line240586 +Ref: Multiple Line-Footnote-1246468 +Node: Getline246647 +Node: Plain Getline249114 +Node: Getline/Variable251753 +Node: Getline/File252902 +Node: Getline/Variable/File254288 +Ref: Getline/Variable/File-Footnote-1255891 +Node: Getline/Pipe255979 +Node: Getline/Variable/Pipe258684 +Node: Getline/Coprocess259817 +Node: Getline/Variable/Coprocess261082 +Node: Getline Notes261822 +Node: Getline Summary264617 +Ref: table-getline-variants265039 +Node: Read Timeout265787 +Ref: Read Timeout-Footnote-1269693 +Node: Retrying Input269751 +Node: Command-line directories270950 +Node: Input Summary271856 +Node: Input Exercises275028 +Node: Printing275756 +Node: Print277590 +Node: Print Examples279047 +Node: Output Separators281827 +Node: OFMT283844 +Node: Printf285200 +Node: Basic Printf285985 +Node: Control Letters287559 +Node: Format Modifiers291547 +Node: Printf Examples297562 +Node: Redirection300048 +Node: Special FD306889 +Ref: Special FD-Footnote-1310057 +Node: Special Files310131 +Node: Other Inherited Files310748 +Node: Special Network311749 +Node: Special Caveats312609 +Node: Close Files And Pipes313558 +Ref: table-close-pipe-return-values320465 +Ref: Close Files And Pipes-Footnote-1321248 +Ref: Close Files And Pipes-Footnote-2321396 +Node: Nonfatal321548 +Node: Output Summary323873 +Node: Output Exercises325095 +Node: Expressions325774 +Node: Values326962 +Node: Constants327640 +Node: Scalar Constants328331 +Ref: Scalar Constants-Footnote-1329195 +Node: Nondecimal-numbers329445 +Node: Regexp Constants332446 +Node: Using Constant Regexps332972 +Node: Standard Regexp Constants333594 +Node: Strong Regexp Constants336782 +Node: Variables339740 +Node: Using Variables340397 +Node: Assignment Options342307 +Node: Conversion344180 +Node: Strings And Numbers344704 +Ref: Strings And Numbers-Footnote-1347767 +Node: Locale influences conversions347876 +Ref: table-locale-affects350634 +Node: All Operators351252 +Node: Arithmetic Ops351881 +Node: Concatenation354387 +Ref: Concatenation-Footnote-1357234 +Node: Assignment Ops357341 +Ref: table-assign-ops362332 +Node: Increment Ops363645 +Node: Truth Values and Conditions367105 +Node: Truth Values368179 +Node: Typing and Comparison369227 +Node: Variable Typing370047 +Ref: Variable Typing-Footnote-1376510 +Ref: Variable Typing-Footnote-2376582 +Node: Comparison Operators376659 +Ref: table-relational-ops377078 +Node: POSIX String Comparison380573 +Ref: POSIX String Comparison-Footnote-1382268 +Ref: POSIX String Comparison-Footnote-2382407 +Node: Boolean Ops382491 +Ref: Boolean Ops-Footnote-1386973 +Node: Conditional Exp387065 +Node: Function Calls388801 +Node: Precedence392678 +Node: Locales396337 +Node: Expressions Summary397969 +Node: Patterns and Actions400542 +Node: Pattern Overview401662 +Node: Regexp Patterns403339 +Node: Expression Patterns403881 +Node: Ranges407662 +Node: BEGIN/END410770 +Node: Using BEGIN/END411531 +Ref: Using BEGIN/END-Footnote-1414267 +Node: I/O And BEGIN/END414373 +Node: BEGINFILE/ENDFILE416687 +Node: Empty419594 +Node: Using Shell Variables419911 +Node: Action Overview422185 +Node: Statements424510 +Node: If Statement426358 +Node: While Statement427853 +Node: Do Statement429881 +Node: For Statement431029 +Node: Switch Statement434187 +Node: Break Statement436573 +Node: Continue Statement438665 +Node: Next Statement440492 +Node: Nextfile Statement442875 +Node: Exit Statement445527 +Node: Built-in Variables447930 +Node: User-modified449063 +Node: Auto-set456830 +Ref: Auto-set-Footnote-1471558 +Ref: Auto-set-Footnote-2471764 +Node: ARGC and ARGV471820 +Node: Pattern Action Summary476033 +Node: Arrays478463 +Node: Array Basics479792 +Node: Array Intro480636 +Ref: figure-array-elements482611 +Ref: Array Intro-Footnote-1485315 +Node: Reference to Elements485443 +Node: Assigning Elements487907 +Node: Array Example488398 +Node: Scanning an Array490157 +Node: Controlling Scanning493179 +Ref: Controlling Scanning-Footnote-1498578 +Node: Numeric Array Subscripts498894 +Node: Uninitialized Subscripts501078 +Node: Delete502697 +Ref: Delete-Footnote-1505449 +Node: Multidimensional505506 +Node: Multiscanning508601 +Node: Arrays of Arrays510192 +Node: Arrays Summary514959 +Node: Functions517052 +Node: Built-in518090 +Node: Calling Built-in519171 +Node: Numeric Functions521167 +Ref: Numeric Functions-Footnote-1525195 +Ref: Numeric Functions-Footnote-2525552 +Ref: Numeric Functions-Footnote-3525600 +Node: String Functions525872 +Ref: String Functions-Footnote-1549530 +Ref: String Functions-Footnote-2549658 +Ref: String Functions-Footnote-3549906 +Node: Gory Details549993 +Ref: table-sub-escapes551784 +Ref: table-sub-proposed553303 +Ref: table-posix-sub554666 +Ref: table-gensub-escapes556207 +Ref: Gory Details-Footnote-1557030 +Node: I/O Functions557184 +Ref: table-system-return-values563766 +Ref: I/O Functions-Footnote-1565746 +Ref: I/O Functions-Footnote-2565894 +Node: Time Functions566014 +Ref: Time Functions-Footnote-1576681 +Ref: Time Functions-Footnote-2576749 +Ref: Time Functions-Footnote-3576907 +Ref: Time Functions-Footnote-4577018 +Ref: Time Functions-Footnote-5577130 +Ref: Time Functions-Footnote-6577357 +Node: Bitwise Functions577623 +Ref: table-bitwise-ops578217 +Ref: Bitwise Functions-Footnote-1584250 +Ref: Bitwise Functions-Footnote-2584423 +Node: Type Functions584614 +Node: I18N Functions587289 +Node: User-defined588940 +Node: Definition Syntax589745 +Ref: Definition Syntax-Footnote-1595432 +Node: Function Example595503 +Ref: Function Example-Footnote-1598425 +Node: Function Caveats598447 +Node: Calling A Function598965 +Node: Variable Scope599923 +Node: Pass By Value/Reference602917 +Node: Return Statement606416 +Node: Dynamic Typing609395 +Node: Indirect Calls610325 +Ref: Indirect Calls-Footnote-1620576 +Node: Functions Summary620704 +Node: Library Functions623409 +Ref: Library Functions-Footnote-1627016 +Ref: Library Functions-Footnote-2627159 +Node: Library Names627330 +Ref: Library Names-Footnote-1630790 +Ref: Library Names-Footnote-2631013 +Node: General Functions631099 +Node: Strtonum Function632202 +Node: Assert Function635224 +Node: Round Function638550 +Node: Cliff Random Function640091 +Node: Ordinal Functions641107 +Ref: Ordinal Functions-Footnote-1644170 +Ref: Ordinal Functions-Footnote-2644422 +Node: Join Function644632 +Ref: Join Function-Footnote-1646402 +Node: Getlocaltime Function646602 +Node: Readfile Function650344 +Node: Shell Quoting652316 +Node: Data File Management653717 +Node: Filetrans Function654349 +Node: Rewind Function658445 +Node: File Checking660351 +Ref: File Checking-Footnote-1661685 +Node: Empty Files661886 +Node: Ignoring Assigns663865 +Node: Getopt Function665415 +Ref: Getopt Function-Footnote-1676884 +Node: Passwd Functions677084 +Ref: Passwd Functions-Footnote-1685923 +Node: Group Functions686011 +Ref: Group Functions-Footnote-1693909 +Node: Walking Arrays694116 +Node: Library Functions Summary697124 +Node: Library Exercises698530 +Node: Sample Programs698995 +Node: Running Examples699765 +Node: Clones700493 +Node: Cut Program701717 +Node: Egrep Program711646 +Ref: Egrep Program-Footnote-1719158 +Node: Id Program719268 +Node: Split Program722948 +Ref: Split Program-Footnote-1726407 +Node: Tee Program726536 +Node: Uniq Program729326 +Node: Wc Program736752 +Ref: Wc Program-Footnote-1741007 +Node: Miscellaneous Programs741101 +Node: Dupword Program742314 +Node: Alarm Program744344 +Node: Translate Program749199 +Ref: Translate Program-Footnote-1753764 +Node: Labels Program754034 +Ref: Labels Program-Footnote-1757385 +Node: Word Sorting757469 +Node: History Sorting761541 +Node: Extract Program763376 +Node: Simple Sed770905 +Node: Igawk Program773979 +Ref: Igawk Program-Footnote-1788310 +Ref: Igawk Program-Footnote-2788512 +Ref: Igawk Program-Footnote-3788634 +Node: Anagram Program788749 +Node: Signature Program791811 +Node: Programs Summary793058 +Node: Programs Exercises794272 +Ref: Programs Exercises-Footnote-1798401 +Node: Advanced Features798492 +Node: Nondecimal Data800482 +Node: Array Sorting802073 +Node: Controlling Array Traversal802773 +Ref: Controlling Array Traversal-Footnote-1811140 +Node: Array Sorting Functions811258 +Ref: Array Sorting Functions-Footnote-1816349 +Node: Two-way I/O816545 +Ref: Two-way I/O-Footnote-1823096 +Ref: Two-way I/O-Footnote-2823283 +Node: TCP/IP Networking823365 +Node: Profiling826483 +Ref: Profiling-Footnote-1835155 +Node: Advanced Features Summary835478 +Node: Internationalization837322 +Node: I18N and L10N838802 +Node: Explaining gettext839489 +Ref: Explaining gettext-Footnote-1845381 +Ref: Explaining gettext-Footnote-2845566 +Node: Programmer i18n845731 +Ref: Programmer i18n-Footnote-1850680 +Node: Translator i18n850729 +Node: String Extraction851523 +Ref: String Extraction-Footnote-1852655 +Node: Printf Ordering852741 +Ref: Printf Ordering-Footnote-1855527 +Node: I18N Portability855591 +Ref: I18N Portability-Footnote-1858047 +Node: I18N Example858110 +Ref: I18N Example-Footnote-1860916 +Node: Gawk I18N860989 +Node: I18N Summary861634 +Node: Debugger862975 +Node: Debugging863997 +Node: Debugging Concepts864438 +Node: Debugging Terms866247 +Node: Awk Debugging868822 +Node: Sample Debugging Session869728 +Node: Debugger Invocation870262 +Node: Finding The Bug871648 +Node: List of Debugger Commands878126 +Node: Breakpoint Control879459 +Node: Debugger Execution Control883153 +Node: Viewing And Changing Data886515 +Node: Execution Stack889889 +Node: Debugger Info891526 +Node: Miscellaneous Debugger Commands895597 +Node: Readline Support900685 +Node: Limitations901581 +Node: Debugging Summary903690 +Node: Arbitrary Precision Arithmetic904969 +Node: Computer Arithmetic906385 +Ref: table-numeric-ranges909976 +Ref: Computer Arithmetic-Footnote-1910698 +Node: Math Definitions910755 +Ref: table-ieee-formats914069 +Ref: Math Definitions-Footnote-1914672 +Node: MPFR features914777 +Node: FP Math Caution916494 +Ref: FP Math Caution-Footnote-1917566 +Node: Inexactness of computations917935 +Node: Inexact representation918895 +Node: Comparing FP Values920255 +Node: Errors accumulate921337 +Node: Getting Accuracy922770 +Node: Try To Round925480 +Node: Setting precision926379 +Ref: table-predefined-precision-strings927076 +Node: Setting the rounding mode928906 +Ref: table-gawk-rounding-modes929280 +Ref: Setting the rounding mode-Footnote-1932688 +Node: Arbitrary Precision Integers932867 +Ref: Arbitrary Precision Integers-Footnote-1936054 +Node: POSIX Floating Point Problems936203 +Ref: POSIX Floating Point Problems-Footnote-1940085 +Node: Floating point summary940123 +Node: Dynamic Extensions942313 +Node: Extension Intro943866 +Node: Plugin License945132 +Node: Extension Mechanism Outline945929 +Ref: figure-load-extension946368 +Ref: figure-register-new-function947933 +Ref: figure-call-new-function949025 +Node: Extension API Description951087 +Node: Extension API Functions Introduction952729 +Node: General Data Types958063 +Ref: General Data Types-Footnote-1965268 +Node: Memory Allocation Functions965567 +Ref: Memory Allocation Functions-Footnote-1968412 +Node: Constructor Functions968511 +Node: Registration Functions971510 +Node: Extension Functions972195 +Node: Exit Callback Functions977408 +Node: Extension Version String978658 +Node: Input Parsers979321 +Node: Output Wrappers992028 +Node: Two-way processors996540 +Node: Printing Messages998805 +Ref: Printing Messages-Footnote-1999976 +Node: Updating ERRNO1000129 +Node: Requesting Values1000868 +Ref: table-value-types-returned1001605 +Node: Accessing Parameters1002541 +Node: Symbol Table Access1003776 +Node: Symbol table by name1004288 +Node: Symbol table by cookie1006077 +Ref: Symbol table by cookie-Footnote-11010262 +Node: Cached values1010326 +Ref: Cached values-Footnote-11013862 +Node: Array Manipulation1013953 +Ref: Array Manipulation-Footnote-11015044 +Node: Array Data Types1015081 +Ref: Array Data Types-Footnote-11017739 +Node: Array Functions1017831 +Node: Flattening Arrays1022230 +Node: Creating Arrays1029171 +Node: Redirection API1033940 +Node: Extension API Variables1036782 +Node: Extension Versioning1037415 +Ref: gawk-api-version1037852 +Node: Extension API Informational Variables1039580 +Node: Extension API Boilerplate1040644 +Node: Changes from API V11044506 +Node: Finding Extensions1045166 +Node: Extension Example1045725 +Node: Internal File Description1046523 +Node: Internal File Ops1050603 +Ref: Internal File Ops-Footnote-11062003 +Node: Using Internal File Ops1062143 +Ref: Using Internal File Ops-Footnote-11064526 +Node: Extension Samples1064800 +Node: Extension Sample File Functions1066329 +Node: Extension Sample Fnmatch1073978 +Node: Extension Sample Fork1075465 +Node: Extension Sample Inplace1076683 +Node: Extension Sample Ord1079893 +Node: Extension Sample Readdir1080729 +Ref: table-readdir-file-types1081618 +Node: Extension Sample Revout1082423 +Node: Extension Sample Rev2way1083012 +Node: Extension Sample Read write array1083752 +Node: Extension Sample Readfile1085694 +Node: Extension Sample Time1086789 +Node: Extension Sample API Tests1088137 +Node: gawkextlib1088629 +Node: Extension summary1091076 +Node: Extension Exercises1094778 +Node: Language History1096276 +Node: V7/SVR3.11097932 +Node: SVR41100084 +Node: POSIX1101518 +Node: BTL1102897 +Node: POSIX/GNU1103626 +Node: Feature History1109404 +Node: Common Extensions1123715 +Node: Ranges and Locales1124998 +Ref: Ranges and Locales-Footnote-11129614 +Ref: Ranges and Locales-Footnote-21129641 +Ref: Ranges and Locales-Footnote-31129876 +Node: Contributors1130097 +Node: History summary1135657 +Node: Installation1137037 +Node: Gawk Distribution1137981 +Node: Getting1138465 +Node: Extracting1139426 +Node: Distribution contents1141064 +Node: Unix Installation1147406 +Node: Quick Installation1148088 +Node: Shell Startup Files1150502 +Node: Additional Configuration Options1151591 +Node: Configuration Philosophy1153580 +Node: Non-Unix Installation1155949 +Node: PC Installation1156409 +Node: PC Binary Installation1157247 +Node: PC Compiling1157682 +Node: PC Using1158799 +Node: Cygwin1161844 +Node: MSYS1162614 +Node: VMS Installation1163115 +Node: VMS Compilation1163906 +Ref: VMS Compilation-Footnote-11165135 +Node: VMS Dynamic Extensions1165193 +Node: VMS Installation Details1166878 +Node: VMS Running1169131 +Node: VMS GNV1173410 +Node: VMS Old Gawk1174145 +Node: Bugs1174616 +Node: Bug address1175279 +Node: Usenet1177676 +Node: Maintainers1178453 +Node: Other Versions1179829 +Node: Installation summary1186413 +Node: Notes1187448 +Node: Compatibility Mode1188313 +Node: Additions1189095 +Node: Accessing The Source1190020 +Node: Adding Code1191455 +Node: New Ports1197673 +Node: Derived Files1202161 +Ref: Derived Files-Footnote-11207646 +Ref: Derived Files-Footnote-21207681 +Ref: Derived Files-Footnote-31208279 +Node: Future Extensions1208393 +Node: Implementation Limitations1209051 +Node: Extension Design1210234 +Node: Old Extension Problems1211388 +Ref: Old Extension Problems-Footnote-11212906 +Node: Extension New Mechanism Goals1212963 +Ref: Extension New Mechanism Goals-Footnote-11216327 +Node: Extension Other Design Decisions1216516 +Node: Extension Future Growth1218629 +Node: Old Extension Mechanism1219465 +Node: Notes summary1221228 +Node: Basic Concepts1222410 +Node: Basic High Level1223091 +Ref: figure-general-flow1223373 +Ref: figure-process-flow1224058 +Ref: Basic High Level-Footnote-11227359 +Node: Basic Data Typing1227544 +Node: Glossary1230872 +Node: Copying1262819 +Node: GNU Free Documentation License1300358 +Node: Index1325476 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 6641705c..06add9d1 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -3961,6 +3961,24 @@ This is particularly useful when you have library functions that you want to use from your command-line programs (@pxref{AWKPATH Variable}). +Note that @command{gawk} treats each string as if it ended with +a newline character (even if it doesn't). This makes building +the total program easier. + +@quotation CAUTION +At the moment, there is no requirement that each @var{program-text} +be a full syntactic unit. I.e., the following currently works: + +@example +$ @kbd{gawk -e 'BEGIN @{ a = 5 ;' -e 'print a @}'} +@print{} 5 +@end example + +@noindent +However, this could change in the future, so it's not a +good idea to rely upon this feature. +@end quotation + @item @option{-E} @var{file} @itemx @option{--exec} @var{file} @cindex @option{-E} option diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 0a8c30fe..4f6d5bec 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -3872,6 +3872,24 @@ This is particularly useful when you have library functions that you want to use from your command-line programs (@pxref{AWKPATH Variable}). +Note that @command{gawk} treats each string as if it ended with +a newline character (even if it doesn't). This makes building +the total program easier. + +@quotation CAUTION +At the moment, there is no requirement that each @var{program-text} +be a full syntactic unit. I.e., the following currently works: + +@example +$ @kbd{gawk -e 'BEGIN @{ a = 5 ;' -e 'print a @}'} +@print{} 5 +@end example + +@noindent +However, this could change in the future, so it's not a +good idea to rely upon this feature. +@end quotation + @item @option{-E} @var{file} @itemx @option{--exec} @var{file} @cindex @option{-E} option |