aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--awkgram.c22
-rw-r--r--awkgram.y22
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1214
-rw-r--r--doc/gawk.texi18
-rw-r--r--doc/gawktexi.in18
7 files changed, 704 insertions, 600 deletions
diff --git a/ChangeLog b/ChangeLog
index d36cc240..691662d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/awkgram.c b/awkgram.c
index cce661ff..be93f884 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -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);
diff --git a/awkgram.y b/awkgram.y
index ecf74d4d..38e8c00c 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -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