diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2017-04-23 22:27:23 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2017-04-23 22:27:23 +0300 |
commit | 3a01684c2edafbcc64db1162f4b99ab6946004e2 (patch) | |
tree | d4f4762297ffa6a6d62141978844f8ae629efc8b | |
parent | cb012bf63a9cb943ff22441d6e10ab8d63c06971 (diff) | |
parent | 09149c00e701d265efb08cec1040841aa40d6fcf (diff) | |
download | egawk-3a01684c2edafbcc64db1162f4b99ab6946004e2.tar.gz egawk-3a01684c2edafbcc64db1162f4b99ab6946004e2.tar.bz2 egawk-3a01684c2edafbcc64db1162f4b99ab6946004e2.zip |
Merge branch 'master' into feature/fix-comments
-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 @@ -5544,8 +5544,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; @@ -5597,8 +5610,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); @@ -3116,8 +3116,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; @@ -3169,8 +3182,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 24ff43aa..ad5aca41 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 f2fd50fe..5111770d 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 @@ -32512,7 +32526,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) @@ -32527,31 +32541,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) @@ -32559,9 +32573,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) @@ -32570,33 +32584,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) @@ -32895,7 +32909,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) @@ -32909,8 +32923,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) @@ -33153,7 +33167,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) @@ -33303,7 +33317,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) @@ -33492,7 +33506,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) @@ -33871,7 +33885,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) @@ -33934,7 +33948,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. @@ -34024,7 +34038,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) @@ -34085,7 +34099,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) @@ -34164,7 +34178,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) @@ -34196,7 +34210,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) @@ -34411,9 +34425,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) @@ -34426,10 +34440,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. @@ -34511,7 +34525,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) @@ -34586,7 +34600,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) @@ -34640,7 +34654,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) @@ -34738,13 +34752,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) @@ -34786,12 +34800,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) @@ -34833,7 +34847,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) @@ -34974,7 +34988,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) @@ -35056,7 +35070,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) @@ -35379,7 +35393,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) @@ -35520,7 +35534,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) @@ -35536,7 +35550,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) @@ -35606,534 +35620,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-1525592 -Ref: Numeric Functions-Footnote-2525949 -Ref: Numeric Functions-Footnote-3525997 -Node: String Functions526269 -Ref: String Functions-Footnote-1549927 -Ref: String Functions-Footnote-2550055 -Ref: String Functions-Footnote-3550303 -Node: Gory Details550390 -Ref: table-sub-escapes552181 -Ref: table-sub-proposed553700 -Ref: table-posix-sub555063 -Ref: table-gensub-escapes556604 -Ref: Gory Details-Footnote-1557427 -Node: I/O Functions557581 -Ref: table-system-return-values564163 -Ref: I/O Functions-Footnote-1566143 -Ref: I/O Functions-Footnote-2566291 -Node: Time Functions566411 -Ref: Time Functions-Footnote-1577078 -Ref: Time Functions-Footnote-2577146 -Ref: Time Functions-Footnote-3577304 -Ref: Time Functions-Footnote-4577415 -Ref: Time Functions-Footnote-5577527 -Ref: Time Functions-Footnote-6577754 -Node: Bitwise Functions578020 -Ref: table-bitwise-ops578614 -Ref: Bitwise Functions-Footnote-1584647 -Ref: Bitwise Functions-Footnote-2584820 -Node: Type Functions585011 -Node: I18N Functions587686 -Node: User-defined589337 -Node: Definition Syntax590142 -Ref: Definition Syntax-Footnote-1595829 -Node: Function Example595900 -Ref: Function Example-Footnote-1598822 -Node: Function Caveats598844 -Node: Calling A Function599362 -Node: Variable Scope600320 -Node: Pass By Value/Reference603314 -Node: Return Statement606813 -Node: Dynamic Typing609792 -Node: Indirect Calls610722 -Ref: Indirect Calls-Footnote-1620973 -Node: Functions Summary621101 -Node: Library Functions623806 -Ref: Library Functions-Footnote-1627413 -Ref: Library Functions-Footnote-2627556 -Node: Library Names627727 -Ref: Library Names-Footnote-1631187 -Ref: Library Names-Footnote-2631410 -Node: General Functions631496 -Node: Strtonum Function632599 -Node: Assert Function635621 -Node: Round Function638947 -Node: Cliff Random Function640488 -Node: Ordinal Functions641504 -Ref: Ordinal Functions-Footnote-1644567 -Ref: Ordinal Functions-Footnote-2644819 -Node: Join Function645029 -Ref: Join Function-Footnote-1646799 -Node: Getlocaltime Function646999 -Node: Readfile Function650741 -Node: Shell Quoting652713 -Node: Data File Management654114 -Node: Filetrans Function654746 -Node: Rewind Function658842 -Node: File Checking660748 -Ref: File Checking-Footnote-1662082 -Node: Empty Files662283 -Node: Ignoring Assigns664262 -Node: Getopt Function665812 -Ref: Getopt Function-Footnote-1677281 -Node: Passwd Functions677481 -Ref: Passwd Functions-Footnote-1686320 -Node: Group Functions686408 -Ref: Group Functions-Footnote-1694306 -Node: Walking Arrays694513 -Node: Library Functions Summary697521 -Node: Library Exercises698927 -Node: Sample Programs699392 -Node: Running Examples700162 -Node: Clones700890 -Node: Cut Program702114 -Node: Egrep Program712043 -Ref: Egrep Program-Footnote-1719555 -Node: Id Program719665 -Node: Split Program723345 -Ref: Split Program-Footnote-1726804 -Node: Tee Program726933 -Node: Uniq Program729723 -Node: Wc Program737149 -Ref: Wc Program-Footnote-1741404 -Node: Miscellaneous Programs741498 -Node: Dupword Program742711 -Node: Alarm Program744741 -Node: Translate Program749596 -Ref: Translate Program-Footnote-1754161 -Node: Labels Program754431 -Ref: Labels Program-Footnote-1757782 -Node: Word Sorting757866 -Node: History Sorting761938 -Node: Extract Program763773 -Node: Simple Sed771302 -Node: Igawk Program774376 -Ref: Igawk Program-Footnote-1788707 -Ref: Igawk Program-Footnote-2788909 -Ref: Igawk Program-Footnote-3789031 -Node: Anagram Program789146 -Node: Signature Program792208 -Node: Programs Summary793455 -Node: Programs Exercises794669 -Ref: Programs Exercises-Footnote-1798798 -Node: Advanced Features798889 -Node: Nondecimal Data800879 -Node: Array Sorting802470 -Node: Controlling Array Traversal803170 -Ref: Controlling Array Traversal-Footnote-1811537 -Node: Array Sorting Functions811655 -Ref: Array Sorting Functions-Footnote-1816746 -Node: Two-way I/O816942 -Ref: Two-way I/O-Footnote-1823493 -Ref: Two-way I/O-Footnote-2823680 -Node: TCP/IP Networking823762 -Node: Profiling826880 -Ref: Profiling-Footnote-1835552 -Node: Advanced Features Summary835875 -Node: Internationalization837719 -Node: I18N and L10N839199 -Node: Explaining gettext839886 -Ref: Explaining gettext-Footnote-1845778 -Ref: Explaining gettext-Footnote-2845963 -Node: Programmer i18n846128 -Ref: Programmer i18n-Footnote-1851077 -Node: Translator i18n851126 -Node: String Extraction851920 -Ref: String Extraction-Footnote-1853052 -Node: Printf Ordering853138 -Ref: Printf Ordering-Footnote-1855924 -Node: I18N Portability855988 -Ref: I18N Portability-Footnote-1858444 -Node: I18N Example858507 -Ref: I18N Example-Footnote-1861313 -Node: Gawk I18N861386 -Node: I18N Summary862031 -Node: Debugger863372 -Node: Debugging864394 -Node: Debugging Concepts864835 -Node: Debugging Terms866644 -Node: Awk Debugging869219 -Node: Sample Debugging Session870125 -Node: Debugger Invocation870659 -Node: Finding The Bug872045 -Node: List of Debugger Commands878523 -Node: Breakpoint Control879856 -Node: Debugger Execution Control883550 -Node: Viewing And Changing Data886912 -Node: Execution Stack890286 -Node: Debugger Info891923 -Node: Miscellaneous Debugger Commands895994 -Node: Readline Support901082 -Node: Limitations901978 -Node: Debugging Summary904087 -Node: Arbitrary Precision Arithmetic905366 -Node: Computer Arithmetic906782 -Ref: table-numeric-ranges910373 -Ref: Computer Arithmetic-Footnote-1911095 -Node: Math Definitions911152 -Ref: table-ieee-formats914466 -Ref: Math Definitions-Footnote-1915069 -Node: MPFR features915174 -Node: FP Math Caution916891 -Ref: FP Math Caution-Footnote-1917963 -Node: Inexactness of computations918332 -Node: Inexact representation919292 -Node: Comparing FP Values920652 -Node: Errors accumulate921734 -Node: Getting Accuracy923167 -Node: Try To Round925877 -Node: Setting precision926776 -Ref: table-predefined-precision-strings927473 -Node: Setting the rounding mode929303 -Ref: table-gawk-rounding-modes929677 -Ref: Setting the rounding mode-Footnote-1933085 -Node: Arbitrary Precision Integers933264 -Ref: Arbitrary Precision Integers-Footnote-1938181 -Node: POSIX Floating Point Problems938330 -Ref: POSIX Floating Point Problems-Footnote-1942212 -Node: Floating point summary942250 -Node: Dynamic Extensions944440 -Node: Extension Intro945993 -Node: Plugin License947259 -Node: Extension Mechanism Outline948056 -Ref: figure-load-extension948495 -Ref: figure-register-new-function950060 -Ref: figure-call-new-function951152 -Node: Extension API Description953214 -Node: Extension API Functions Introduction954856 -Node: General Data Types960190 -Ref: General Data Types-Footnote-1967395 -Node: Memory Allocation Functions967694 -Ref: Memory Allocation Functions-Footnote-1970539 -Node: Constructor Functions970638 -Node: Registration Functions973637 -Node: Extension Functions974322 -Node: Exit Callback Functions979535 -Node: Extension Version String980785 -Node: Input Parsers981448 -Node: Output Wrappers994155 -Node: Two-way processors998667 -Node: Printing Messages1000932 -Ref: Printing Messages-Footnote-11002103 -Node: Updating ERRNO1002256 -Node: Requesting Values1002995 -Ref: table-value-types-returned1003732 -Node: Accessing Parameters1004668 -Node: Symbol Table Access1005903 -Node: Symbol table by name1006415 -Node: Symbol table by cookie1008204 -Ref: Symbol table by cookie-Footnote-11012389 -Node: Cached values1012453 -Ref: Cached values-Footnote-11015989 -Node: Array Manipulation1016080 -Ref: Array Manipulation-Footnote-11017171 -Node: Array Data Types1017208 -Ref: Array Data Types-Footnote-11019866 -Node: Array Functions1019958 -Node: Flattening Arrays1024357 -Node: Creating Arrays1031298 -Node: Redirection API1036067 -Node: Extension API Variables1038909 -Node: Extension Versioning1039542 -Ref: gawk-api-version1039979 -Node: Extension API Informational Variables1041707 -Node: Extension API Boilerplate1042771 -Node: Changes from API V11046633 -Node: Finding Extensions1047293 -Node: Extension Example1047852 -Node: Internal File Description1048650 -Node: Internal File Ops1052730 -Ref: Internal File Ops-Footnote-11064130 -Node: Using Internal File Ops1064270 -Ref: Using Internal File Ops-Footnote-11066653 -Node: Extension Samples1066927 -Node: Extension Sample File Functions1068456 -Node: Extension Sample Fnmatch1076105 -Node: Extension Sample Fork1077592 -Node: Extension Sample Inplace1078810 -Node: Extension Sample Ord1082020 -Node: Extension Sample Readdir1082856 -Ref: table-readdir-file-types1083745 -Node: Extension Sample Revout1084550 -Node: Extension Sample Rev2way1085139 -Node: Extension Sample Read write array1085879 -Node: Extension Sample Readfile1087821 -Node: Extension Sample Time1088916 -Node: Extension Sample API Tests1090264 -Node: gawkextlib1090756 -Node: Extension summary1093203 -Node: Extension Exercises1096905 -Node: Language History1098403 -Node: V7/SVR3.11100059 -Node: SVR41102211 -Node: POSIX1103645 -Node: BTL1105024 -Node: POSIX/GNU1105753 -Node: Feature History1111645 -Node: Common Extensions1126015 -Node: Ranges and Locales1127298 -Ref: Ranges and Locales-Footnote-11131914 -Ref: Ranges and Locales-Footnote-21131941 -Ref: Ranges and Locales-Footnote-31132176 -Node: Contributors1132397 -Node: History summary1137957 -Node: Installation1139337 -Node: Gawk Distribution1140281 -Node: Getting1140765 -Node: Extracting1141726 -Node: Distribution contents1143364 -Node: Unix Installation1149706 -Node: Quick Installation1150388 -Node: Shell Startup Files1152802 -Node: Additional Configuration Options1153891 -Node: Configuration Philosophy1155880 -Node: Non-Unix Installation1158249 -Node: PC Installation1158709 -Node: PC Binary Installation1159547 -Node: PC Compiling1159982 -Node: PC Using1161099 -Node: Cygwin1164144 -Node: MSYS1164914 -Node: VMS Installation1165415 -Node: VMS Compilation1166206 -Ref: VMS Compilation-Footnote-11167435 -Node: VMS Dynamic Extensions1167493 -Node: VMS Installation Details1169178 -Node: VMS Running1171431 -Node: VMS GNV1175710 -Node: VMS Old Gawk1176445 -Node: Bugs1176916 -Node: Bug address1177579 -Node: Usenet1179976 -Node: Maintainers1180753 -Node: Other Versions1182129 -Node: Installation summary1188713 -Node: Notes1189748 -Node: Compatibility Mode1190613 -Node: Additions1191395 -Node: Accessing The Source1192320 -Node: Adding Code1193755 -Node: New Ports1199973 -Node: Derived Files1204461 -Ref: Derived Files-Footnote-11209946 -Ref: Derived Files-Footnote-21209981 -Ref: Derived Files-Footnote-31210579 -Node: Future Extensions1210693 -Node: Implementation Limitations1211351 -Node: Extension Design1212534 -Node: Old Extension Problems1213688 -Ref: Old Extension Problems-Footnote-11215206 -Node: Extension New Mechanism Goals1215263 -Ref: Extension New Mechanism Goals-Footnote-11218627 -Node: Extension Other Design Decisions1218816 -Node: Extension Future Growth1220929 -Node: Old Extension Mechanism1221765 -Node: Notes summary1223528 -Node: Basic Concepts1224710 -Node: Basic High Level1225391 -Ref: figure-general-flow1225673 -Ref: figure-process-flow1226358 -Ref: Basic High Level-Footnote-11229659 -Node: Basic Data Typing1229844 -Node: Glossary1233172 -Node: Copying1265119 -Node: GNU Free Documentation License1302658 -Node: Index1327776 +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-1526112 +Ref: Numeric Functions-Footnote-2526469 +Ref: Numeric Functions-Footnote-3526517 +Node: String Functions526789 +Ref: String Functions-Footnote-1550447 +Ref: String Functions-Footnote-2550575 +Ref: String Functions-Footnote-3550823 +Node: Gory Details550910 +Ref: table-sub-escapes552701 +Ref: table-sub-proposed554220 +Ref: table-posix-sub555583 +Ref: table-gensub-escapes557124 +Ref: Gory Details-Footnote-1557947 +Node: I/O Functions558101 +Ref: table-system-return-values564683 +Ref: I/O Functions-Footnote-1566663 +Ref: I/O Functions-Footnote-2566811 +Node: Time Functions566931 +Ref: Time Functions-Footnote-1577598 +Ref: Time Functions-Footnote-2577666 +Ref: Time Functions-Footnote-3577824 +Ref: Time Functions-Footnote-4577935 +Ref: Time Functions-Footnote-5578047 +Ref: Time Functions-Footnote-6578274 +Node: Bitwise Functions578540 +Ref: table-bitwise-ops579134 +Ref: Bitwise Functions-Footnote-1585167 +Ref: Bitwise Functions-Footnote-2585340 +Node: Type Functions585531 +Node: I18N Functions588206 +Node: User-defined589857 +Node: Definition Syntax590662 +Ref: Definition Syntax-Footnote-1596349 +Node: Function Example596420 +Ref: Function Example-Footnote-1599342 +Node: Function Caveats599364 +Node: Calling A Function599882 +Node: Variable Scope600840 +Node: Pass By Value/Reference603834 +Node: Return Statement607333 +Node: Dynamic Typing610312 +Node: Indirect Calls611242 +Ref: Indirect Calls-Footnote-1621493 +Node: Functions Summary621621 +Node: Library Functions624326 +Ref: Library Functions-Footnote-1627933 +Ref: Library Functions-Footnote-2628076 +Node: Library Names628247 +Ref: Library Names-Footnote-1631707 +Ref: Library Names-Footnote-2631930 +Node: General Functions632016 +Node: Strtonum Function633119 +Node: Assert Function636141 +Node: Round Function639467 +Node: Cliff Random Function641008 +Node: Ordinal Functions642024 +Ref: Ordinal Functions-Footnote-1645087 +Ref: Ordinal Functions-Footnote-2645339 +Node: Join Function645549 +Ref: Join Function-Footnote-1647319 +Node: Getlocaltime Function647519 +Node: Readfile Function651261 +Node: Shell Quoting653233 +Node: Data File Management654634 +Node: Filetrans Function655266 +Node: Rewind Function659362 +Node: File Checking661268 +Ref: File Checking-Footnote-1662602 +Node: Empty Files662803 +Node: Ignoring Assigns664782 +Node: Getopt Function666332 +Ref: Getopt Function-Footnote-1677801 +Node: Passwd Functions678001 +Ref: Passwd Functions-Footnote-1686840 +Node: Group Functions686928 +Ref: Group Functions-Footnote-1694826 +Node: Walking Arrays695033 +Node: Library Functions Summary698041 +Node: Library Exercises699447 +Node: Sample Programs699912 +Node: Running Examples700682 +Node: Clones701410 +Node: Cut Program702634 +Node: Egrep Program712563 +Ref: Egrep Program-Footnote-1720075 +Node: Id Program720185 +Node: Split Program723865 +Ref: Split Program-Footnote-1727324 +Node: Tee Program727453 +Node: Uniq Program730243 +Node: Wc Program737669 +Ref: Wc Program-Footnote-1741924 +Node: Miscellaneous Programs742018 +Node: Dupword Program743231 +Node: Alarm Program745261 +Node: Translate Program750116 +Ref: Translate Program-Footnote-1754681 +Node: Labels Program754951 +Ref: Labels Program-Footnote-1758302 +Node: Word Sorting758386 +Node: History Sorting762458 +Node: Extract Program764293 +Node: Simple Sed771822 +Node: Igawk Program774896 +Ref: Igawk Program-Footnote-1789227 +Ref: Igawk Program-Footnote-2789429 +Ref: Igawk Program-Footnote-3789551 +Node: Anagram Program789666 +Node: Signature Program792728 +Node: Programs Summary793975 +Node: Programs Exercises795189 +Ref: Programs Exercises-Footnote-1799318 +Node: Advanced Features799409 +Node: Nondecimal Data801399 +Node: Array Sorting802990 +Node: Controlling Array Traversal803690 +Ref: Controlling Array Traversal-Footnote-1812057 +Node: Array Sorting Functions812175 +Ref: Array Sorting Functions-Footnote-1817266 +Node: Two-way I/O817462 +Ref: Two-way I/O-Footnote-1824013 +Ref: Two-way I/O-Footnote-2824200 +Node: TCP/IP Networking824282 +Node: Profiling827400 +Ref: Profiling-Footnote-1836072 +Node: Advanced Features Summary836395 +Node: Internationalization838239 +Node: I18N and L10N839719 +Node: Explaining gettext840406 +Ref: Explaining gettext-Footnote-1846298 +Ref: Explaining gettext-Footnote-2846483 +Node: Programmer i18n846648 +Ref: Programmer i18n-Footnote-1851597 +Node: Translator i18n851646 +Node: String Extraction852440 +Ref: String Extraction-Footnote-1853572 +Node: Printf Ordering853658 +Ref: Printf Ordering-Footnote-1856444 +Node: I18N Portability856508 +Ref: I18N Portability-Footnote-1858964 +Node: I18N Example859027 +Ref: I18N Example-Footnote-1861833 +Node: Gawk I18N861906 +Node: I18N Summary862551 +Node: Debugger863892 +Node: Debugging864914 +Node: Debugging Concepts865355 +Node: Debugging Terms867164 +Node: Awk Debugging869739 +Node: Sample Debugging Session870645 +Node: Debugger Invocation871179 +Node: Finding The Bug872565 +Node: List of Debugger Commands879043 +Node: Breakpoint Control880376 +Node: Debugger Execution Control884070 +Node: Viewing And Changing Data887432 +Node: Execution Stack890806 +Node: Debugger Info892443 +Node: Miscellaneous Debugger Commands896514 +Node: Readline Support901602 +Node: Limitations902498 +Node: Debugging Summary904607 +Node: Arbitrary Precision Arithmetic905886 +Node: Computer Arithmetic907302 +Ref: table-numeric-ranges910893 +Ref: Computer Arithmetic-Footnote-1911615 +Node: Math Definitions911672 +Ref: table-ieee-formats914986 +Ref: Math Definitions-Footnote-1915589 +Node: MPFR features915694 +Node: FP Math Caution917411 +Ref: FP Math Caution-Footnote-1918483 +Node: Inexactness of computations918852 +Node: Inexact representation919812 +Node: Comparing FP Values921172 +Node: Errors accumulate922254 +Node: Getting Accuracy923687 +Node: Try To Round926397 +Node: Setting precision927296 +Ref: table-predefined-precision-strings927993 +Node: Setting the rounding mode929823 +Ref: table-gawk-rounding-modes930197 +Ref: Setting the rounding mode-Footnote-1933605 +Node: Arbitrary Precision Integers933784 +Ref: Arbitrary Precision Integers-Footnote-1938701 +Node: POSIX Floating Point Problems938850 +Ref: POSIX Floating Point Problems-Footnote-1942732 +Node: Floating point summary942770 +Node: Dynamic Extensions944960 +Node: Extension Intro946513 +Node: Plugin License947779 +Node: Extension Mechanism Outline948576 +Ref: figure-load-extension949015 +Ref: figure-register-new-function950580 +Ref: figure-call-new-function951672 +Node: Extension API Description953734 +Node: Extension API Functions Introduction955376 +Node: General Data Types960710 +Ref: General Data Types-Footnote-1967915 +Node: Memory Allocation Functions968214 +Ref: Memory Allocation Functions-Footnote-1971059 +Node: Constructor Functions971158 +Node: Registration Functions974157 +Node: Extension Functions974842 +Node: Exit Callback Functions980055 +Node: Extension Version String981305 +Node: Input Parsers981968 +Node: Output Wrappers994675 +Node: Two-way processors999187 +Node: Printing Messages1001452 +Ref: Printing Messages-Footnote-11002623 +Node: Updating ERRNO1002776 +Node: Requesting Values1003515 +Ref: table-value-types-returned1004252 +Node: Accessing Parameters1005188 +Node: Symbol Table Access1006423 +Node: Symbol table by name1006935 +Node: Symbol table by cookie1008724 +Ref: Symbol table by cookie-Footnote-11012909 +Node: Cached values1012973 +Ref: Cached values-Footnote-11016509 +Node: Array Manipulation1016600 +Ref: Array Manipulation-Footnote-11017691 +Node: Array Data Types1017728 +Ref: Array Data Types-Footnote-11020386 +Node: Array Functions1020478 +Node: Flattening Arrays1024877 +Node: Creating Arrays1031818 +Node: Redirection API1036587 +Node: Extension API Variables1039429 +Node: Extension Versioning1040062 +Ref: gawk-api-version1040499 +Node: Extension API Informational Variables1042227 +Node: Extension API Boilerplate1043291 +Node: Changes from API V11047153 +Node: Finding Extensions1047813 +Node: Extension Example1048372 +Node: Internal File Description1049170 +Node: Internal File Ops1053250 +Ref: Internal File Ops-Footnote-11064650 +Node: Using Internal File Ops1064790 +Ref: Using Internal File Ops-Footnote-11067173 +Node: Extension Samples1067447 +Node: Extension Sample File Functions1068976 +Node: Extension Sample Fnmatch1076625 +Node: Extension Sample Fork1078112 +Node: Extension Sample Inplace1079330 +Node: Extension Sample Ord1082540 +Node: Extension Sample Readdir1083376 +Ref: table-readdir-file-types1084265 +Node: Extension Sample Revout1085070 +Node: Extension Sample Rev2way1085659 +Node: Extension Sample Read write array1086399 +Node: Extension Sample Readfile1088341 +Node: Extension Sample Time1089436 +Node: Extension Sample API Tests1090784 +Node: gawkextlib1091276 +Node: Extension summary1093723 +Node: Extension Exercises1097425 +Node: Language History1098923 +Node: V7/SVR3.11100579 +Node: SVR41102731 +Node: POSIX1104165 +Node: BTL1105544 +Node: POSIX/GNU1106273 +Node: Feature History1112165 +Node: Common Extensions1126535 +Node: Ranges and Locales1127818 +Ref: Ranges and Locales-Footnote-11132434 +Ref: Ranges and Locales-Footnote-21132461 +Ref: Ranges and Locales-Footnote-31132696 +Node: Contributors1132917 +Node: History summary1138477 +Node: Installation1139857 +Node: Gawk Distribution1140801 +Node: Getting1141285 +Node: Extracting1142246 +Node: Distribution contents1143884 +Node: Unix Installation1150226 +Node: Quick Installation1150908 +Node: Shell Startup Files1153322 +Node: Additional Configuration Options1154411 +Node: Configuration Philosophy1156400 +Node: Non-Unix Installation1158769 +Node: PC Installation1159229 +Node: PC Binary Installation1160067 +Node: PC Compiling1160502 +Node: PC Using1161619 +Node: Cygwin1164664 +Node: MSYS1165434 +Node: VMS Installation1165935 +Node: VMS Compilation1166726 +Ref: VMS Compilation-Footnote-11167955 +Node: VMS Dynamic Extensions1168013 +Node: VMS Installation Details1169698 +Node: VMS Running1171951 +Node: VMS GNV1176230 +Node: VMS Old Gawk1176965 +Node: Bugs1177436 +Node: Bug address1178099 +Node: Usenet1180496 +Node: Maintainers1181273 +Node: Other Versions1182649 +Node: Installation summary1189233 +Node: Notes1190268 +Node: Compatibility Mode1191133 +Node: Additions1191915 +Node: Accessing The Source1192840 +Node: Adding Code1194275 +Node: New Ports1200493 +Node: Derived Files1204981 +Ref: Derived Files-Footnote-11210466 +Ref: Derived Files-Footnote-21210501 +Ref: Derived Files-Footnote-31211099 +Node: Future Extensions1211213 +Node: Implementation Limitations1211871 +Node: Extension Design1213054 +Node: Old Extension Problems1214208 +Ref: Old Extension Problems-Footnote-11215726 +Node: Extension New Mechanism Goals1215783 +Ref: Extension New Mechanism Goals-Footnote-11219147 +Node: Extension Other Design Decisions1219336 +Node: Extension Future Growth1221449 +Node: Old Extension Mechanism1222285 +Node: Notes summary1224048 +Node: Basic Concepts1225230 +Node: Basic High Level1225911 +Ref: figure-general-flow1226193 +Ref: figure-process-flow1226878 +Ref: Basic High Level-Footnote-11230179 +Node: Basic Data Typing1230364 +Node: Glossary1233692 +Node: Copying1265639 +Node: GNU Free Documentation License1303178 +Node: Index1328296 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 6db3fb01..353a0c9d 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 bbf7f5d6..d5707932 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 |