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

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 6641705c..06add9d1 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -3961,6 +3961,24 @@ This is particularly useful
when you have library functions that you want to use from your command-line
programs (@pxref{AWKPATH Variable}).
+Note that @command{gawk} treats each string as if it ended with
+a newline character (even if it doesn't). This makes building
+the total program easier.
+
+@quotation CAUTION
+At the moment, there is no requirement that each @var{program-text}
+be a full syntactic unit. I.e., the following currently works:
+
+@example
+$ @kbd{gawk -e 'BEGIN @{ a = 5 ;' -e 'print a @}'}
+@print{} 5
+@end example
+
+@noindent
+However, this could change in the future, so it's not a
+good idea to rely upon this feature.
+@end quotation
+
@item @option{-E} @var{file}
@itemx @option{--exec} @var{file}
@cindex @option{-E} option
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 0a8c30fe..4f6d5bec 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -3872,6 +3872,24 @@ This is particularly useful
when you have library functions that you want to use from your command-line
programs (@pxref{AWKPATH Variable}).
+Note that @command{gawk} treats each string as if it ended with
+a newline character (even if it doesn't). This makes building
+the total program easier.
+
+@quotation CAUTION
+At the moment, there is no requirement that each @var{program-text}
+be a full syntactic unit. I.e., the following currently works:
+
+@example
+$ @kbd{gawk -e 'BEGIN @{ a = 5 ;' -e 'print a @}'}
+@print{} 5
+@end example
+
+@noindent
+However, this could change in the future, so it's not a
+good idea to rely upon this feature.
+@end quotation
+
@item @option{-E} @var{file}
@itemx @option{--exec} @var{file}
@cindex @option{-E} option