aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-05-29 21:30:44 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-05-29 21:30:44 +0300
commitd48b796888b2e6bafc898f4f45038349785a6d8f (patch)
treefd328abc00faca0613a16455e0ec500f10786821
parentb2a169acc85cb791ad3e54ea3d250b897d819a15 (diff)
parentd029488bda4b1cdddc5a7c397375da080d476efa (diff)
downloadegawk-d48b796888b2e6bafc898f4f45038349785a6d8f.tar.gz
egawk-d48b796888b2e6bafc898f4f45038349785a6d8f.tar.bz2
egawk-d48b796888b2e6bafc898f4f45038349785a6d8f.zip
Merge branch 'gawk-4.1-stable'
-rw-r--r--ChangeLog4
-rw-r--r--dfa.c49
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info1078
-rw-r--r--doc/gawk.texi118
-rw-r--r--doc/gawktexi.in118
6 files changed, 638 insertions, 734 deletions
diff --git a/ChangeLog b/ChangeLog
index e76e541a..5ef9e2e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-05-29 Arnold D. Robbins <arnold@skeeve.com>
+
+ * dfa.c: Sync with GNU grep.
+
2014-05-26 Arnold D. Robbins <arnold@skeeve.com>
* io.c (inetfile): Change return type to bool. Wrap code
diff --git a/dfa.c b/dfa.c
index 18f8faf1..d1046b31 100644
--- a/dfa.c
+++ b/dfa.c
@@ -1475,10 +1475,10 @@ lex (void)
{
if (syntax_bits & RE_INVALID_INTERVAL_ORD)
goto normal_char;
- dfaerror (_("Invalid content of \\{\\}"));
+ dfaerror (_("invalid content of \\{\\}"));
}
if (RE_DUP_MAX < maxrep)
- dfaerror (_("Regular expression too big"));
+ dfaerror (_("regular expression too big"));
lexptr = p;
lexleft = lim - p;
}
@@ -2932,16 +2932,17 @@ build_state (state_num s, struct dfa *d)
/* Set an upper limit on the number of transition tables that will ever
exist at once. 1024 is arbitrary. The idea is that the frequently
used transition tables will be quickly rebuilt, whereas the ones that
- were only needed once or twice will be cleared away. */
+ were only needed once or twice will be cleared away. However, do
+ not clear the initial state, as it's always used. */
if (d->trcount >= 1024)
{
- for (i = 0; i < d->tralloc; ++i)
+ for (i = 1; i < d->tralloc; ++i)
{
free (d->trans[i]);
free (d->fails[i]);
d->trans[i] = d->fails[i] = NULL;
}
- d->trcount = 0;
+ d->trcount = 1;
}
++d->trcount;
@@ -2978,22 +2979,6 @@ build_state (state_num s, struct dfa *d)
d->trans[s] = trans;
}
-static void
-build_state_zero (struct dfa *d)
-{
- /* Initial size of the transition tables; must be positive. */
- int initial_tab_size = 1;
-
- d->tralloc = 0;
- d->trcount = 0;
- d->trans = NULL;
- d->fails = NULL;
- d->success = NULL;
- d->newlines = NULL;
- realloc_trans_if_necessary (d, initial_tab_size);
- build_state (0, d);
-}
-
/* Multibyte character handling sub-routines for dfaexec. */
/* Return values of transit_state_singlebyte, and
@@ -3357,7 +3342,10 @@ dfaexec (struct dfa *d, char const *begin, char *end,
size_t nlcount = 0;
if (!d->tralloc)
- build_state_zero (d);
+ {
+ realloc_trans_if_necessary (d, 1);
+ build_state (0, d);
+ }
s = s1 = 0;
p = mbp = (unsigned char const *) begin;
@@ -3478,7 +3466,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
/* If the previous character was a newline, count it, and skip
checking of multibyte character boundary until here. */
- if (p[-1] == eol && (char *) p != begin)
+ if (p[-1] == eol)
{
nlcount++;
mbp = p;
@@ -4056,10 +4044,17 @@ dfamust (struct dfa *d)
size_t j, ln, rn, n;
/* Guaranteed to be. Unlikely, but ... */
- if (!STREQ (lmp->is, rmp->is))
- lmp->is[0] = '\0';
- lmp->begline &= rmp->begline;
- lmp->endline &= rmp->endline;
+ if (STREQ (lmp->is, rmp->is))
+ {
+ lmp->begline &= rmp->begline;
+ lmp->endline &= rmp->endline;
+ }
+ else
+ {
+ lmp->is[0] = '\0';
+ lmp->begline = false;
+ lmp->endline = false;
+ }
/* Left side--easy */
i = 0;
while (lmp->left[i] != '\0' && lmp->left[i] == rmp->left[i])
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 67937858..07a34105 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-29 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Remove some obsolete bits, fix up some other
+ minor stuff.
+
2014-05-27 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Edits through the end!
diff --git a/doc/gawk.info b/doc/gawk.info
index 89bc8c64..607f2c18 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1165,13 +1165,13 @@ published the first two editions under the title `The GNU Awk User's
Guide'.
This edition maintains the basic structure of the previous editions.
-For Edition 4.0, the content has been thoroughly reviewed and updated.
-All references to `gawk' versions prior to 4.0 have been removed. Of
-significant note for this edition was *note Debugger::.
+For FSF edition 4.0, the content has been thoroughly reviewed and
+updated. All references to `gawk' versions prior to 4.0 have been
+removed. Of significant note for this edition was *note Debugger::.
- For edition 4.1, the content has been reorganized into parts, and
-the major new additions are *note Arbitrary Precision Arithmetic::, and
-*note Dynamic Extensions::.
+ For FSF edition 4.1, the content has been reorganized into parts,
+and the major new additions are *note Arbitrary Precision Arithmetic::,
+and *note Dynamic Extensions::.
This Info file will undoubtedly continue to evolve. An electronic
version comes with the `gawk' distribution from the FSF. If you find
@@ -2797,7 +2797,9 @@ filename.
`.' explicitly in the path or write a null entry in the path. (A
null entry is indicated by starting or ending the path with a
colon or by placing two colons next to each other [`::'].) This
- path search mechanism is similar to the shell's.
+ path search mechanism is similar to the shell's. (See `The
+ Bourne-Again SHell manual'.
+ (http://www.gnu.org/software/bash/manual/))
However, `gawk' always looks in the current directory _before_
searching `AWKPATH', so there is no real reason to include the
@@ -22240,6 +22242,7 @@ not return a value.
`#define emalloc(pointer, type, size, message) ...'
The arguments to this macro are as follows:
+
`pointer'
The pointer variable to point at the allocated storage.
@@ -22399,6 +22402,7 @@ function with `gawk' using the following function.
`void awk_atexit(void (*funcp)(void *data, int exit_status),'
` void *arg0);'
The parameters are:
+
`funcp'
A pointer to the function to be called before `gawk' exits.
The `data' parameter will be the original value of `arg0'.
@@ -26100,6 +26104,9 @@ Info file, in approximate chronological order:
- The improved array sorting features were driven by John
together with Pat Rankin.
+ Panos Papadopoulos contributed the original text for *note Include
+ Files::.
+
* Efraim Yawitz contributed the original text for *note Debugger::.
* The development of the extension API first released with `gawk'
@@ -27764,11 +27771,11 @@ critical, that for any given branch, the above incantation _just works_.
2. It would certainly help if everyone used the same versions of the
GNU tools as he does, which in general are the latest released
- versions of Automake, Autoconf, `bison', and `gettext'.
+ versions of Automake, Autoconf, `bison', and GNU `gettext'.
Installing from source is quite easy. It's how the maintainer
- worked for years, and still works. He had `/usr/local/bin' at the
- front of his `PATH' and just did:
+ worked for years (and still works). He had `/usr/local/bin' at
+ the front of his `PATH' and just did:
wget http://ftp.gnu.org/gnu/PACKAGE/PACKAGE-X.Y.Z.tar.gz
tar -xpzvf PACKAGE-X.Y.Z.tar.gz
@@ -30861,7 +30868,7 @@ Index
* Collado, Manuel: Acknowledgments. (line 60)
* collating elements: Bracket Expressions. (line 69)
* collating symbols: Bracket Expressions. (line 76)
-* Colombo, Antonio <1>: Contributors. (line 135)
+* Colombo, Antonio <1>: Contributors. (line 138)
* Colombo, Antonio: Acknowledgments. (line 60)
* columns, aligning: Print Examples. (line 70)
* columns, cutting: Cut Program. (line 6)
@@ -32309,6 +32316,7 @@ Index
* output, standard: Special FD. (line 6)
* p debugger command (alias for print): Viewing And Changing Data.
(line 36)
+* Papadopoulos, Panos: Contributors. (line 129)
* parent process ID of gawk process: Auto-set. (line 189)
* parentheses (), in a profile: Profiling. (line 146)
* parentheses (), regexp operator: Regexp Operators. (line 80)
@@ -32655,7 +32663,7 @@ Index
* RLENGTH variable, match() function and: String Functions. (line 224)
* Robbins, Arnold <1>: Future Extensions. (line 6)
* Robbins, Arnold <2>: Bugs. (line 32)
-* Robbins, Arnold <3>: Contributors. (line 139)
+* Robbins, Arnold <3>: Contributors. (line 142)
* Robbins, Arnold <4>: General Data Types. (line 6)
* Robbins, Arnold <5>: Alarm Program. (line 6)
* Robbins, Arnold <6>: Passwd Functions. (line 90)
@@ -32701,7 +32709,7 @@ Index
* scalar values: Basic Data Typing. (line 13)
* scanning arrays: Scanning an Array. (line 6)
* scanning multidimensional arrays: Multiscanning. (line 11)
-* Schorr, Andrew <1>: Contributors. (line 131)
+* Schorr, Andrew <1>: Contributors. (line 134)
* Schorr, Andrew <2>: Auto-set. (line 292)
* Schorr, Andrew: Acknowledgments. (line 60)
* Schreiber, Bert: Acknowledgments. (line 38)
@@ -33188,7 +33196,7 @@ Index
* xgettext utility: String Extraction. (line 13)
* xor: Bitwise Functions. (line 55)
* XOR bitwise operation: Bitwise Functions. (line 6)
-* Yawitz, Efraim: Contributors. (line 129)
+* Yawitz, Efraim: Contributors. (line 132)
* Zaretskii, Eli <1>: Bugs. (line 71)
* Zaretskii, Eli <2>: Contributors. (line 55)
* Zaretskii, Eli: Acknowledgments. (line 60)
@@ -33234,526 +33242,526 @@ Node: This Manual52572
Ref: This Manual-Footnote-158351
Node: Conventions58451
Node: Manual History60607
-Ref: Manual History-Footnote-164038
-Ref: Manual History-Footnote-264079
-Node: How To Contribute64153
-Node: Acknowledgments65392
-Node: Getting Started69541
-Node: Running gawk71914
-Node: One-shot73104
-Node: Read Terminal74329
-Ref: Read Terminal-Footnote-175979
-Ref: Read Terminal-Footnote-276255
-Node: Long76426
-Node: Executable Scripts77802
-Ref: Executable Scripts-Footnote-179635
-Ref: Executable Scripts-Footnote-279737
-Node: Comments80284
-Node: Quoting82751
-Node: DOS Quoting88067
-Node: Sample Data Files88742
-Node: Very Simple91257
-Node: Two Rules95895
-Node: More Complex97790
-Ref: More Complex-Footnote-1100722
-Node: Statements/Lines100807
-Ref: Statements/Lines-Footnote-1105262
-Node: Other Features105527
-Node: When106455
-Node: Invoking Gawk108603
-Node: Command Line110066
-Node: Options110857
-Ref: Options-Footnote-1126669
-Node: Other Arguments126694
-Node: Naming Standard Input129356
-Node: Environment Variables130450
-Node: AWKPATH Variable131008
-Ref: AWKPATH Variable-Footnote-1133786
-Ref: AWKPATH Variable-Footnote-2133831
-Node: AWKLIBPATH Variable134091
-Node: Other Environment Variables134850
-Node: Exit Status138505
-Node: Include Files139180
-Node: Loading Shared Libraries142758
-Node: Obsolete144141
-Node: Undocumented144838
-Node: Regexp145080
-Node: Regexp Usage146469
-Node: Escape Sequences148502
-Node: Regexp Operators154169
-Ref: Regexp Operators-Footnote-1161649
-Ref: Regexp Operators-Footnote-2161796
-Node: Bracket Expressions161894
-Ref: table-char-classes163784
-Node: GNU Regexp Operators166307
-Node: Case-sensitivity170030
-Ref: Case-sensitivity-Footnote-1172922
-Ref: Case-sensitivity-Footnote-2173157
-Node: Leftmost Longest173265
-Node: Computed Regexps174466
-Node: Reading Files177815
-Node: Records179817
-Node: awk split records180552
-Node: gawk split records185410
-Ref: gawk split records-Footnote-1189931
-Node: Fields189968
-Ref: Fields-Footnote-1192932
-Node: Nonconstant Fields193018
-Ref: Nonconstant Fields-Footnote-1195248
-Node: Changing Fields195450
-Node: Field Separators201404
-Node: Default Field Splitting204106
-Node: Regexp Field Splitting205223
-Node: Single Character Fields208564
-Node: Command Line Field Separator209623
-Node: Full Line Fields212965
-Ref: Full Line Fields-Footnote-1213473
-Node: Field Splitting Summary213519
-Ref: Field Splitting Summary-Footnote-1216618
-Node: Constant Size216719
-Node: Splitting By Content221326
-Ref: Splitting By Content-Footnote-1225076
-Node: Multiple Line225116
-Ref: Multiple Line-Footnote-1230972
-Node: Getline231151
-Node: Plain Getline233367
-Node: Getline/Variable235462
-Node: Getline/File236609
-Node: Getline/Variable/File237993
-Ref: Getline/Variable/File-Footnote-1239592
-Node: Getline/Pipe239679
-Node: Getline/Variable/Pipe242378
-Node: Getline/Coprocess243485
-Node: Getline/Variable/Coprocess244737
-Node: Getline Notes245474
-Node: Getline Summary248278
-Ref: table-getline-variants248686
-Node: Read Timeout249598
-Ref: Read Timeout-Footnote-1253425
-Node: Command line directories253483
-Node: Printing254365
-Node: Print255996
-Node: Print Examples257337
-Node: Output Separators260116
-Node: OFMT262132
-Node: Printf263490
-Node: Basic Printf264396
-Node: Control Letters265935
-Node: Format Modifiers269789
-Node: Printf Examples275816
-Node: Redirection278523
-Node: Special Files285495
-Node: Special FD286028
-Ref: Special FD-Footnote-1289652
-Node: Special Network289726
-Node: Special Caveats290576
-Node: Close Files And Pipes291372
-Ref: Close Files And Pipes-Footnote-1298510
-Ref: Close Files And Pipes-Footnote-2298658
-Node: Expressions298808
-Node: Values299940
-Node: Constants300616
-Node: Scalar Constants301296
-Ref: Scalar Constants-Footnote-1302155
-Node: Nondecimal-numbers302405
-Node: Regexp Constants305405
-Node: Using Constant Regexps305880
-Node: Variables308950
-Node: Using Variables309605
-Node: Assignment Options311329
-Node: Conversion313204
-Ref: table-locale-affects318640
-Ref: Conversion-Footnote-1319264
-Node: All Operators319373
-Node: Arithmetic Ops320003
-Node: Concatenation322508
-Ref: Concatenation-Footnote-1325304
-Node: Assignment Ops325424
-Ref: table-assign-ops330407
-Node: Increment Ops331724
-Node: Truth Values and Conditions335162
-Node: Truth Values336245
-Node: Typing and Comparison337294
-Node: Variable Typing338087
-Ref: Variable Typing-Footnote-1341987
-Node: Comparison Operators342109
-Ref: table-relational-ops342519
-Node: POSIX String Comparison346067
-Ref: POSIX String Comparison-Footnote-1347151
-Node: Boolean Ops347289
-Ref: Boolean Ops-Footnote-1351359
-Node: Conditional Exp351450
-Node: Function Calls353177
-Node: Precedence356935
-Node: Locales360604
-Node: Patterns and Actions362207
-Node: Pattern Overview363261
-Node: Regexp Patterns364938
-Node: Expression Patterns365481
-Node: Ranges369262
-Node: BEGIN/END372368
-Node: Using BEGIN/END373130
-Ref: Using BEGIN/END-Footnote-1375866
-Node: I/O And BEGIN/END375972
-Node: BEGINFILE/ENDFILE378257
-Node: Empty381188
-Node: Using Shell Variables381505
-Node: Action Overview383788
-Node: Statements386115
-Node: If Statement387963
-Node: While Statement389461
-Node: Do Statement391505
-Node: For Statement392661
-Node: Switch Statement395813
-Node: Break Statement397916
-Node: Continue Statement399971
-Node: Next Statement401764
-Node: Nextfile Statement404154
-Node: Exit Statement406809
-Node: Built-in Variables409213
-Node: User-modified410309
-Ref: User-modified-Footnote-1417994
-Node: Auto-set418056
-Ref: Auto-set-Footnote-1430958
-Ref: Auto-set-Footnote-2431163
-Node: ARGC and ARGV431219
-Node: Arrays435073
-Node: Array Basics436571
-Node: Array Intro437397
-Ref: figure-array-elements439370
-Node: Reference to Elements441777
-Node: Assigning Elements444050
-Node: Array Example444541
-Node: Scanning an Array446273
-Node: Controlling Scanning449288
-Ref: Controlling Scanning-Footnote-1454461
-Node: Delete454777
-Ref: Delete-Footnote-1457542
-Node: Numeric Array Subscripts457599
-Node: Uninitialized Subscripts459782
-Node: Multidimensional461407
-Node: Multiscanning464500
-Node: Arrays of Arrays466089
-Node: Functions470729
-Node: Built-in471548
-Node: Calling Built-in472626
-Node: Numeric Functions474614
-Ref: Numeric Functions-Footnote-1478448
-Ref: Numeric Functions-Footnote-2478805
-Ref: Numeric Functions-Footnote-3478853
-Node: String Functions479122
-Ref: String Functions-Footnote-1502133
-Ref: String Functions-Footnote-2502262
-Ref: String Functions-Footnote-3502510
-Node: Gory Details502597
-Ref: table-sub-escapes504266
-Ref: table-sub-posix-92505620
-Ref: table-sub-proposed506971
-Ref: table-posix-sub508325
-Ref: table-gensub-escapes509870
-Ref: Gory Details-Footnote-1511046
-Ref: Gory Details-Footnote-2511097
-Node: I/O Functions511248
-Ref: I/O Functions-Footnote-1518371
-Node: Time Functions518518
-Ref: Time Functions-Footnote-1528982
-Ref: Time Functions-Footnote-2529050
-Ref: Time Functions-Footnote-3529208
-Ref: Time Functions-Footnote-4529319
-Ref: Time Functions-Footnote-5529431
-Ref: Time Functions-Footnote-6529658
-Node: Bitwise Functions529924
-Ref: table-bitwise-ops530486
-Ref: Bitwise Functions-Footnote-1534731
-Node: Type Functions534915
-Node: I18N Functions536057
-Node: User-defined537702
-Node: Definition Syntax538506
-Ref: Definition Syntax-Footnote-1543431
-Node: Function Example543500
-Ref: Function Example-Footnote-1546144
-Node: Function Caveats546166
-Node: Calling A Function546684
-Node: Variable Scope547639
-Node: Pass By Value/Reference550627
-Node: Return Statement554135
-Node: Dynamic Typing557119
-Node: Indirect Calls558048
-Node: Library Functions567735
-Ref: Library Functions-Footnote-1571248
-Ref: Library Functions-Footnote-2571391
-Node: Library Names571562
-Ref: Library Names-Footnote-1575035
-Ref: Library Names-Footnote-2575255
-Node: General Functions575341
-Node: Strtonum Function576369
-Node: Assert Function579299
-Node: Round Function582625
-Node: Cliff Random Function584166
-Node: Ordinal Functions585182
-Ref: Ordinal Functions-Footnote-1588259
-Ref: Ordinal Functions-Footnote-2588511
-Node: Join Function588722
-Ref: Join Function-Footnote-1590493
-Node: Getlocaltime Function590693
-Node: Readfile Function594429
-Node: Data File Management596268
-Node: Filetrans Function596900
-Node: Rewind Function600969
-Node: File Checking602356
-Ref: File Checking-Footnote-1603488
-Node: Empty Files603689
-Node: Ignoring Assigns605919
-Node: Getopt Function607473
-Ref: Getopt Function-Footnote-1618776
-Node: Passwd Functions618979
-Ref: Passwd Functions-Footnote-1627958
-Node: Group Functions628046
-Ref: Group Functions-Footnote-1635988
-Node: Walking Arrays636201
-Node: Sample Programs638337
-Node: Running Examples639011
-Node: Clones639739
-Node: Cut Program640963
-Node: Egrep Program650816
-Ref: Egrep Program-Footnote-1658787
-Node: Id Program658897
-Node: Split Program662561
-Ref: Split Program-Footnote-1666099
-Node: Tee Program666227
-Node: Uniq Program669034
-Node: Wc Program676464
-Ref: Wc Program-Footnote-1680732
-Ref: Wc Program-Footnote-2680932
-Node: Miscellaneous Programs681024
-Node: Dupword Program682212
-Node: Alarm Program684243
-Node: Translate Program689050
-Ref: Translate Program-Footnote-1693441
-Ref: Translate Program-Footnote-2693711
-Node: Labels Program693845
-Ref: Labels Program-Footnote-1697216
-Node: Word Sorting697300
-Node: History Sorting701343
-Node: Extract Program703179
-Ref: Extract Program-Footnote-1710709
-Node: Simple Sed710838
-Node: Igawk Program713900
-Ref: Igawk Program-Footnote-1729075
-Ref: Igawk Program-Footnote-2729276
-Node: Anagram Program729414
-Node: Signature Program732482
-Node: Advanced Features733729
-Node: Nondecimal Data735615
-Node: Array Sorting737192
-Node: Controlling Array Traversal737889
-Node: Array Sorting Functions746169
-Ref: Array Sorting Functions-Footnote-1750076
-Node: Two-way I/O750270
-Ref: Two-way I/O-Footnote-1755786
-Node: TCP/IP Networking755868
-Node: Profiling758712
-Node: Internationalization766220
-Node: I18N and L10N767645
-Node: Explaining gettext768331
-Ref: Explaining gettext-Footnote-1773471
-Ref: Explaining gettext-Footnote-2773655
-Node: Programmer i18n773820
-Node: Translator i18n778045
-Node: String Extraction778839
-Ref: String Extraction-Footnote-1779800
-Node: Printf Ordering779886
-Ref: Printf Ordering-Footnote-1782668
-Node: I18N Portability782732
-Ref: I18N Portability-Footnote-1785181
-Node: I18N Example785244
-Ref: I18N Example-Footnote-1787966
-Node: Gawk I18N788038
-Node: Debugger788659
-Node: Debugging789630
-Node: Debugging Concepts790071
-Node: Debugging Terms791927
-Node: Awk Debugging794524
-Node: Sample Debugging Session795416
-Node: Debugger Invocation795936
-Node: Finding The Bug797269
-Node: List of Debugger Commands803751
-Node: Breakpoint Control805083
-Node: Debugger Execution Control808747
-Node: Viewing And Changing Data812107
-Node: Execution Stack815465
-Node: Debugger Info816978
-Node: Miscellaneous Debugger Commands820972
-Node: Readline Support826156
-Node: Limitations827048
-Node: Arbitrary Precision Arithmetic829296
-Ref: Arbitrary Precision Arithmetic-Footnote-1830945
-Node: General Arithmetic831093
-Node: Floating Point Issues832813
-Node: String Conversion Precision833694
-Ref: String Conversion Precision-Footnote-1835399
-Node: Unexpected Results835508
-Node: POSIX Floating Point Problems837661
-Ref: POSIX Floating Point Problems-Footnote-1841482
-Node: Integer Programming841520
-Node: Floating-point Programming843331
-Ref: Floating-point Programming-Footnote-1849659
-Ref: Floating-point Programming-Footnote-2849929
-Node: Floating-point Representation850193
-Node: Floating-point Context851358
-Ref: table-ieee-formats852197
-Node: Rounding Mode853581
-Ref: table-rounding-modes854060
-Ref: Rounding Mode-Footnote-1857075
-Node: Gawk and MPFR857254
-Node: Arbitrary Precision Floats858663
-Ref: Arbitrary Precision Floats-Footnote-1861106
-Node: Setting Precision861427
-Ref: table-predefined-precision-strings862111
-Node: Setting Rounding Mode864256
-Ref: table-gawk-rounding-modes864660
-Node: Floating-point Constants865847
-Node: Changing Precision867299
-Ref: Changing Precision-Footnote-1868691
-Node: Exact Arithmetic868865
-Node: Arbitrary Precision Integers871999
-Ref: Arbitrary Precision Integers-Footnote-1875014
-Node: Dynamic Extensions875161
-Node: Extension Intro876619
-Node: Plugin License877884
-Node: Extension Mechanism Outline878569
-Ref: figure-load-extension878993
-Ref: figure-load-new-function880478
-Ref: figure-call-new-function881480
-Node: Extension API Description883464
-Node: Extension API Functions Introduction884914
-Node: General Data Types889780
-Ref: General Data Types-Footnote-1895473
-Node: Requesting Values895772
-Ref: table-value-types-returned896509
-Node: Memory Allocation Functions897467
-Ref: Memory Allocation Functions-Footnote-1900213
-Node: Constructor Functions900309
-Node: Registration Functions902067
-Node: Extension Functions902752
-Node: Exit Callback Functions905054
-Node: Extension Version String906303
-Node: Input Parsers906953
-Node: Output Wrappers916756
-Node: Two-way processors921272
-Node: Printing Messages923475
-Ref: Printing Messages-Footnote-1924552
-Node: Updating `ERRNO'924704
-Node: Accessing Parameters925443
-Node: Symbol Table Access926673
-Node: Symbol table by name927187
-Node: Symbol table by cookie929163
-Ref: Symbol table by cookie-Footnote-1933296
-Node: Cached values933359
-Ref: Cached values-Footnote-1936864
-Node: Array Manipulation936955
-Ref: Array Manipulation-Footnote-1938053
-Node: Array Data Types938092
-Ref: Array Data Types-Footnote-1940795
-Node: Array Functions940887
-Node: Flattening Arrays944761
-Node: Creating Arrays951613
-Node: Extension API Variables956344
-Node: Extension Versioning956980
-Node: Extension API Informational Variables958881
-Node: Extension API Boilerplate959967
-Node: Finding Extensions963771
-Node: Extension Example964331
-Node: Internal File Description965061
-Node: Internal File Ops969152
-Ref: Internal File Ops-Footnote-1980698
-Node: Using Internal File Ops980838
-Ref: Using Internal File Ops-Footnote-1983185
-Node: Extension Samples983453
-Node: Extension Sample File Functions984977
-Node: Extension Sample Fnmatch992544
-Node: Extension Sample Fork994023
-Node: Extension Sample Inplace995236
-Node: Extension Sample Ord997014
-Node: Extension Sample Readdir997850
-Ref: table-readdir-file-types998705
-Node: Extension Sample Revout999504
-Node: Extension Sample Rev2way1000095
-Node: Extension Sample Read write array1000836
-Node: Extension Sample Readfile1002715
-Node: Extension Sample API Tests1003815
-Node: Extension Sample Time1004340
-Node: gawkextlib1005655
-Node: Language History1008442
-Node: V7/SVR3.11010036
-Node: SVR41012356
-Node: POSIX1013798
-Node: BTL1015184
-Node: POSIX/GNU1015918
-Node: Feature History1021517
-Node: Common Extensions1034629
-Node: Ranges and Locales1035941
-Ref: Ranges and Locales-Footnote-11040558
-Ref: Ranges and Locales-Footnote-21040585
-Ref: Ranges and Locales-Footnote-31040819
-Node: Contributors1041040
-Node: Installation1046391
-Node: Gawk Distribution1047285
-Node: Getting1047769
-Node: Extracting1048595
-Node: Distribution contents1050237
-Node: Unix Installation1055954
-Node: Quick Installation1056571
-Node: Additional Configuration Options1059013
-Node: Configuration Philosophy1060751
-Node: Non-Unix Installation1063102
-Node: PC Installation1063560
-Node: PC Binary Installation1064871
-Node: PC Compiling1066719
-Ref: PC Compiling-Footnote-11069718
-Node: PC Testing1069823
-Node: PC Using1070999
-Node: Cygwin1075157
-Node: MSYS1075966
-Node: VMS Installation1076480
-Node: VMS Compilation1077276
-Ref: VMS Compilation-Footnote-11078497
-Node: VMS Dynamic Extensions1078555
-Node: VMS Installation Details1079928
-Node: VMS Running1082179
-Node: VMS GNV1085013
-Node: VMS Old Gawk1085736
-Node: Bugs1086206
-Node: Other Versions1090210
-Node: Notes1096435
-Node: Compatibility Mode1097235
-Node: Additions1098017
-Node: Accessing The Source1098942
-Node: Adding Code1100378
-Node: New Ports1106556
-Node: Derived Files1111037
-Ref: Derived Files-Footnote-11116113
-Ref: Derived Files-Footnote-21116147
-Ref: Derived Files-Footnote-31116743
-Node: Future Extensions1116857
-Node: Implementation Limitations1117463
-Node: Extension Design1118711
-Node: Old Extension Problems1119865
-Ref: Old Extension Problems-Footnote-11121382
-Node: Extension New Mechanism Goals1121439
-Ref: Extension New Mechanism Goals-Footnote-11124800
-Node: Extension Other Design Decisions1124989
-Node: Extension Future Growth1127095
-Node: Old Extension Mechanism1127931
-Node: Basic Concepts1129671
-Node: Basic High Level1130352
-Ref: figure-general-flow1130624
-Ref: figure-process-flow1131223
-Ref: Basic High Level-Footnote-11134452
-Node: Basic Data Typing1134637
-Node: Glossary1137964
-Node: Copying1163116
-Node: GNU Free Documentation License1200672
-Node: Index1225808
+Ref: Manual History-Footnote-164046
+Ref: Manual History-Footnote-264087
+Node: How To Contribute64161
+Node: Acknowledgments65400
+Node: Getting Started69549
+Node: Running gawk71922
+Node: One-shot73112
+Node: Read Terminal74337
+Ref: Read Terminal-Footnote-175987
+Ref: Read Terminal-Footnote-276263
+Node: Long76434
+Node: Executable Scripts77810
+Ref: Executable Scripts-Footnote-179643
+Ref: Executable Scripts-Footnote-279745
+Node: Comments80292
+Node: Quoting82759
+Node: DOS Quoting88075
+Node: Sample Data Files88750
+Node: Very Simple91265
+Node: Two Rules95903
+Node: More Complex97798
+Ref: More Complex-Footnote-1100730
+Node: Statements/Lines100815
+Ref: Statements/Lines-Footnote-1105270
+Node: Other Features105535
+Node: When106463
+Node: Invoking Gawk108611
+Node: Command Line110074
+Node: Options110865
+Ref: Options-Footnote-1126677
+Node: Other Arguments126702
+Node: Naming Standard Input129364
+Node: Environment Variables130458
+Node: AWKPATH Variable131016
+Ref: AWKPATH Variable-Footnote-1133887
+Ref: AWKPATH Variable-Footnote-2133932
+Node: AWKLIBPATH Variable134192
+Node: Other Environment Variables134951
+Node: Exit Status138606
+Node: Include Files139281
+Node: Loading Shared Libraries142859
+Node: Obsolete144242
+Node: Undocumented144939
+Node: Regexp145181
+Node: Regexp Usage146570
+Node: Escape Sequences148603
+Node: Regexp Operators154270
+Ref: Regexp Operators-Footnote-1161750
+Ref: Regexp Operators-Footnote-2161897
+Node: Bracket Expressions161995
+Ref: table-char-classes163885
+Node: GNU Regexp Operators166408
+Node: Case-sensitivity170131
+Ref: Case-sensitivity-Footnote-1173023
+Ref: Case-sensitivity-Footnote-2173258
+Node: Leftmost Longest173366
+Node: Computed Regexps174567
+Node: Reading Files177916
+Node: Records179918
+Node: awk split records180653
+Node: gawk split records185511
+Ref: gawk split records-Footnote-1190032
+Node: Fields190069
+Ref: Fields-Footnote-1193033
+Node: Nonconstant Fields193119
+Ref: Nonconstant Fields-Footnote-1195349
+Node: Changing Fields195551
+Node: Field Separators201505
+Node: Default Field Splitting204207
+Node: Regexp Field Splitting205324
+Node: Single Character Fields208665
+Node: Command Line Field Separator209724
+Node: Full Line Fields213066
+Ref: Full Line Fields-Footnote-1213574
+Node: Field Splitting Summary213620
+Ref: Field Splitting Summary-Footnote-1216719
+Node: Constant Size216820
+Node: Splitting By Content221427
+Ref: Splitting By Content-Footnote-1225177
+Node: Multiple Line225217
+Ref: Multiple Line-Footnote-1231073
+Node: Getline231252
+Node: Plain Getline233468
+Node: Getline/Variable235563
+Node: Getline/File236710
+Node: Getline/Variable/File238094
+Ref: Getline/Variable/File-Footnote-1239693
+Node: Getline/Pipe239780
+Node: Getline/Variable/Pipe242479
+Node: Getline/Coprocess243586
+Node: Getline/Variable/Coprocess244838
+Node: Getline Notes245575
+Node: Getline Summary248379
+Ref: table-getline-variants248787
+Node: Read Timeout249699
+Ref: Read Timeout-Footnote-1253526
+Node: Command line directories253584
+Node: Printing254466
+Node: Print256097
+Node: Print Examples257438
+Node: Output Separators260217
+Node: OFMT262233
+Node: Printf263591
+Node: Basic Printf264497
+Node: Control Letters266036
+Node: Format Modifiers269890
+Node: Printf Examples275917
+Node: Redirection278624
+Node: Special Files285596
+Node: Special FD286129
+Ref: Special FD-Footnote-1289753
+Node: Special Network289827
+Node: Special Caveats290677
+Node: Close Files And Pipes291473
+Ref: Close Files And Pipes-Footnote-1298611
+Ref: Close Files And Pipes-Footnote-2298759
+Node: Expressions298909
+Node: Values300041
+Node: Constants300717
+Node: Scalar Constants301397
+Ref: Scalar Constants-Footnote-1302256
+Node: Nondecimal-numbers302506
+Node: Regexp Constants305506
+Node: Using Constant Regexps305981
+Node: Variables309051
+Node: Using Variables309706
+Node: Assignment Options311430
+Node: Conversion313305
+Ref: table-locale-affects318741
+Ref: Conversion-Footnote-1319365
+Node: All Operators319474
+Node: Arithmetic Ops320104
+Node: Concatenation322609
+Ref: Concatenation-Footnote-1325405
+Node: Assignment Ops325525
+Ref: table-assign-ops330508
+Node: Increment Ops331825
+Node: Truth Values and Conditions335263
+Node: Truth Values336346
+Node: Typing and Comparison337395
+Node: Variable Typing338188
+Ref: Variable Typing-Footnote-1342088
+Node: Comparison Operators342210
+Ref: table-relational-ops342620
+Node: POSIX String Comparison346168
+Ref: POSIX String Comparison-Footnote-1347252
+Node: Boolean Ops347390
+Ref: Boolean Ops-Footnote-1351460
+Node: Conditional Exp351551
+Node: Function Calls353278
+Node: Precedence357036
+Node: Locales360705
+Node: Patterns and Actions362308
+Node: Pattern Overview363362
+Node: Regexp Patterns365039
+Node: Expression Patterns365582
+Node: Ranges369363
+Node: BEGIN/END372469
+Node: Using BEGIN/END373231
+Ref: Using BEGIN/END-Footnote-1375967
+Node: I/O And BEGIN/END376073
+Node: BEGINFILE/ENDFILE378358
+Node: Empty381289
+Node: Using Shell Variables381606
+Node: Action Overview383889
+Node: Statements386216
+Node: If Statement388064
+Node: While Statement389562
+Node: Do Statement391606
+Node: For Statement392762
+Node: Switch Statement395914
+Node: Break Statement398017
+Node: Continue Statement400072
+Node: Next Statement401865
+Node: Nextfile Statement404255
+Node: Exit Statement406910
+Node: Built-in Variables409314
+Node: User-modified410410
+Ref: User-modified-Footnote-1418095
+Node: Auto-set418157
+Ref: Auto-set-Footnote-1431059
+Ref: Auto-set-Footnote-2431264
+Node: ARGC and ARGV431320
+Node: Arrays435174
+Node: Array Basics436672
+Node: Array Intro437498
+Ref: figure-array-elements439471
+Node: Reference to Elements441878
+Node: Assigning Elements444151
+Node: Array Example444642
+Node: Scanning an Array446374
+Node: Controlling Scanning449389
+Ref: Controlling Scanning-Footnote-1454562
+Node: Delete454878
+Ref: Delete-Footnote-1457643
+Node: Numeric Array Subscripts457700
+Node: Uninitialized Subscripts459883
+Node: Multidimensional461508
+Node: Multiscanning464601
+Node: Arrays of Arrays466190
+Node: Functions470830
+Node: Built-in471649
+Node: Calling Built-in472727
+Node: Numeric Functions474715
+Ref: Numeric Functions-Footnote-1478549
+Ref: Numeric Functions-Footnote-2478906
+Ref: Numeric Functions-Footnote-3478954
+Node: String Functions479223
+Ref: String Functions-Footnote-1502234
+Ref: String Functions-Footnote-2502363
+Ref: String Functions-Footnote-3502611
+Node: Gory Details502698
+Ref: table-sub-escapes504367
+Ref: table-sub-posix-92505721
+Ref: table-sub-proposed507072
+Ref: table-posix-sub508426
+Ref: table-gensub-escapes509971
+Ref: Gory Details-Footnote-1511147
+Ref: Gory Details-Footnote-2511198
+Node: I/O Functions511349
+Ref: I/O Functions-Footnote-1518472
+Node: Time Functions518619
+Ref: Time Functions-Footnote-1529083
+Ref: Time Functions-Footnote-2529151
+Ref: Time Functions-Footnote-3529309
+Ref: Time Functions-Footnote-4529420
+Ref: Time Functions-Footnote-5529532
+Ref: Time Functions-Footnote-6529759
+Node: Bitwise Functions530025
+Ref: table-bitwise-ops530587
+Ref: Bitwise Functions-Footnote-1534832
+Node: Type Functions535016
+Node: I18N Functions536158
+Node: User-defined537803
+Node: Definition Syntax538607
+Ref: Definition Syntax-Footnote-1543532
+Node: Function Example543601
+Ref: Function Example-Footnote-1546245
+Node: Function Caveats546267
+Node: Calling A Function546785
+Node: Variable Scope547740
+Node: Pass By Value/Reference550728
+Node: Return Statement554236
+Node: Dynamic Typing557220
+Node: Indirect Calls558149
+Node: Library Functions567836
+Ref: Library Functions-Footnote-1571349
+Ref: Library Functions-Footnote-2571492
+Node: Library Names571663
+Ref: Library Names-Footnote-1575136
+Ref: Library Names-Footnote-2575356
+Node: General Functions575442
+Node: Strtonum Function576470
+Node: Assert Function579400
+Node: Round Function582726
+Node: Cliff Random Function584267
+Node: Ordinal Functions585283
+Ref: Ordinal Functions-Footnote-1588360
+Ref: Ordinal Functions-Footnote-2588612
+Node: Join Function588823
+Ref: Join Function-Footnote-1590594
+Node: Getlocaltime Function590794
+Node: Readfile Function594530
+Node: Data File Management596369
+Node: Filetrans Function597001
+Node: Rewind Function601070
+Node: File Checking602457
+Ref: File Checking-Footnote-1603589
+Node: Empty Files603790
+Node: Ignoring Assigns606020
+Node: Getopt Function607574
+Ref: Getopt Function-Footnote-1618877
+Node: Passwd Functions619080
+Ref: Passwd Functions-Footnote-1628059
+Node: Group Functions628147
+Ref: Group Functions-Footnote-1636089
+Node: Walking Arrays636302
+Node: Sample Programs638438
+Node: Running Examples639112
+Node: Clones639840
+Node: Cut Program641064
+Node: Egrep Program650917
+Ref: Egrep Program-Footnote-1658888
+Node: Id Program658998
+Node: Split Program662662
+Ref: Split Program-Footnote-1666200
+Node: Tee Program666328
+Node: Uniq Program669135
+Node: Wc Program676565
+Ref: Wc Program-Footnote-1680833
+Ref: Wc Program-Footnote-2681033
+Node: Miscellaneous Programs681125
+Node: Dupword Program682313
+Node: Alarm Program684344
+Node: Translate Program689151
+Ref: Translate Program-Footnote-1693542
+Ref: Translate Program-Footnote-2693812
+Node: Labels Program693946
+Ref: Labels Program-Footnote-1697317
+Node: Word Sorting697401
+Node: History Sorting701444
+Node: Extract Program703280
+Ref: Extract Program-Footnote-1710810
+Node: Simple Sed710939
+Node: Igawk Program714001
+Ref: Igawk Program-Footnote-1729176
+Ref: Igawk Program-Footnote-2729377
+Node: Anagram Program729515
+Node: Signature Program732583
+Node: Advanced Features733830
+Node: Nondecimal Data735716
+Node: Array Sorting737293
+Node: Controlling Array Traversal737990
+Node: Array Sorting Functions746270
+Ref: Array Sorting Functions-Footnote-1750177
+Node: Two-way I/O750371
+Ref: Two-way I/O-Footnote-1755887
+Node: TCP/IP Networking755969
+Node: Profiling758813
+Node: Internationalization766321
+Node: I18N and L10N767746
+Node: Explaining gettext768432
+Ref: Explaining gettext-Footnote-1773572
+Ref: Explaining gettext-Footnote-2773756
+Node: Programmer i18n773921
+Node: Translator i18n778146
+Node: String Extraction778940
+Ref: String Extraction-Footnote-1779901
+Node: Printf Ordering779987
+Ref: Printf Ordering-Footnote-1782769
+Node: I18N Portability782833
+Ref: I18N Portability-Footnote-1785282
+Node: I18N Example785345
+Ref: I18N Example-Footnote-1788067
+Node: Gawk I18N788139
+Node: Debugger788760
+Node: Debugging789731
+Node: Debugging Concepts790172
+Node: Debugging Terms792028
+Node: Awk Debugging794625
+Node: Sample Debugging Session795517
+Node: Debugger Invocation796037
+Node: Finding The Bug797370
+Node: List of Debugger Commands803852
+Node: Breakpoint Control805184
+Node: Debugger Execution Control808848
+Node: Viewing And Changing Data812208
+Node: Execution Stack815566
+Node: Debugger Info817079
+Node: Miscellaneous Debugger Commands821073
+Node: Readline Support826257
+Node: Limitations827149
+Node: Arbitrary Precision Arithmetic829397
+Ref: Arbitrary Precision Arithmetic-Footnote-1831046
+Node: General Arithmetic831194
+Node: Floating Point Issues832914
+Node: String Conversion Precision833795
+Ref: String Conversion Precision-Footnote-1835500
+Node: Unexpected Results835609
+Node: POSIX Floating Point Problems837762
+Ref: POSIX Floating Point Problems-Footnote-1841583
+Node: Integer Programming841621
+Node: Floating-point Programming843432
+Ref: Floating-point Programming-Footnote-1849760
+Ref: Floating-point Programming-Footnote-2850030
+Node: Floating-point Representation850294
+Node: Floating-point Context851459
+Ref: table-ieee-formats852298
+Node: Rounding Mode853682
+Ref: table-rounding-modes854161
+Ref: Rounding Mode-Footnote-1857176
+Node: Gawk and MPFR857355
+Node: Arbitrary Precision Floats858764
+Ref: Arbitrary Precision Floats-Footnote-1861207
+Node: Setting Precision861528
+Ref: table-predefined-precision-strings862212
+Node: Setting Rounding Mode864357
+Ref: table-gawk-rounding-modes864761
+Node: Floating-point Constants865948
+Node: Changing Precision867400
+Ref: Changing Precision-Footnote-1868792
+Node: Exact Arithmetic868966
+Node: Arbitrary Precision Integers872100
+Ref: Arbitrary Precision Integers-Footnote-1875115
+Node: Dynamic Extensions875262
+Node: Extension Intro876720
+Node: Plugin License877985
+Node: Extension Mechanism Outline878670
+Ref: figure-load-extension879094
+Ref: figure-load-new-function880579
+Ref: figure-call-new-function881581
+Node: Extension API Description883565
+Node: Extension API Functions Introduction885015
+Node: General Data Types889881
+Ref: General Data Types-Footnote-1895574
+Node: Requesting Values895873
+Ref: table-value-types-returned896610
+Node: Memory Allocation Functions897568
+Ref: Memory Allocation Functions-Footnote-1900315
+Node: Constructor Functions900411
+Node: Registration Functions902169
+Node: Extension Functions902854
+Node: Exit Callback Functions905156
+Node: Extension Version String906406
+Node: Input Parsers907056
+Node: Output Wrappers916859
+Node: Two-way processors921375
+Node: Printing Messages923578
+Ref: Printing Messages-Footnote-1924655
+Node: Updating `ERRNO'924807
+Node: Accessing Parameters925546
+Node: Symbol Table Access926776
+Node: Symbol table by name927290
+Node: Symbol table by cookie929266
+Ref: Symbol table by cookie-Footnote-1933399
+Node: Cached values933462
+Ref: Cached values-Footnote-1936967
+Node: Array Manipulation937058
+Ref: Array Manipulation-Footnote-1938156
+Node: Array Data Types938195
+Ref: Array Data Types-Footnote-1940898
+Node: Array Functions940990
+Node: Flattening Arrays944864
+Node: Creating Arrays951716
+Node: Extension API Variables956447
+Node: Extension Versioning957083
+Node: Extension API Informational Variables958984
+Node: Extension API Boilerplate960070
+Node: Finding Extensions963874
+Node: Extension Example964434
+Node: Internal File Description965164
+Node: Internal File Ops969255
+Ref: Internal File Ops-Footnote-1980801
+Node: Using Internal File Ops980941
+Ref: Using Internal File Ops-Footnote-1983288
+Node: Extension Samples983556
+Node: Extension Sample File Functions985080
+Node: Extension Sample Fnmatch992647
+Node: Extension Sample Fork994126
+Node: Extension Sample Inplace995339
+Node: Extension Sample Ord997117
+Node: Extension Sample Readdir997953
+Ref: table-readdir-file-types998808
+Node: Extension Sample Revout999607
+Node: Extension Sample Rev2way1000198
+Node: Extension Sample Read write array1000939
+Node: Extension Sample Readfile1002818
+Node: Extension Sample API Tests1003918
+Node: Extension Sample Time1004443
+Node: gawkextlib1005758
+Node: Language History1008545
+Node: V7/SVR3.11010139
+Node: SVR41012459
+Node: POSIX1013901
+Node: BTL1015287
+Node: POSIX/GNU1016021
+Node: Feature History1021620
+Node: Common Extensions1034732
+Node: Ranges and Locales1036044
+Ref: Ranges and Locales-Footnote-11040661
+Ref: Ranges and Locales-Footnote-21040688
+Ref: Ranges and Locales-Footnote-31040922
+Node: Contributors1041143
+Node: Installation1046581
+Node: Gawk Distribution1047475
+Node: Getting1047959
+Node: Extracting1048785
+Node: Distribution contents1050427
+Node: Unix Installation1056144
+Node: Quick Installation1056761
+Node: Additional Configuration Options1059203
+Node: Configuration Philosophy1060941
+Node: Non-Unix Installation1063292
+Node: PC Installation1063750
+Node: PC Binary Installation1065061
+Node: PC Compiling1066909
+Ref: PC Compiling-Footnote-11069908
+Node: PC Testing1070013
+Node: PC Using1071189
+Node: Cygwin1075347
+Node: MSYS1076156
+Node: VMS Installation1076670
+Node: VMS Compilation1077466
+Ref: VMS Compilation-Footnote-11078687
+Node: VMS Dynamic Extensions1078745
+Node: VMS Installation Details1080118
+Node: VMS Running1082369
+Node: VMS GNV1085203
+Node: VMS Old Gawk1085926
+Node: Bugs1086396
+Node: Other Versions1090400
+Node: Notes1096625
+Node: Compatibility Mode1097425
+Node: Additions1098207
+Node: Accessing The Source1099132
+Node: Adding Code1100568
+Node: New Ports1106746
+Node: Derived Files1111227
+Ref: Derived Files-Footnote-11116308
+Ref: Derived Files-Footnote-21116342
+Ref: Derived Files-Footnote-31116938
+Node: Future Extensions1117052
+Node: Implementation Limitations1117658
+Node: Extension Design1118906
+Node: Old Extension Problems1120060
+Ref: Old Extension Problems-Footnote-11121577
+Node: Extension New Mechanism Goals1121634
+Ref: Extension New Mechanism Goals-Footnote-11124995
+Node: Extension Other Design Decisions1125184
+Node: Extension Future Growth1127290
+Node: Old Extension Mechanism1128126
+Node: Basic Concepts1129866
+Node: Basic High Level1130547
+Ref: figure-general-flow1130819
+Ref: figure-process-flow1131418
+Ref: Basic High Level-Footnote-11134647
+Node: Basic Data Typing1134832
+Node: Glossary1138159
+Node: Copying1163311
+Node: GNU Free Documentation License1200867
+Node: Index1226003

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 36a28e07..08102cfa 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -241,6 +241,10 @@ quirk of the language / makeinfo, and isn't going to change.
@copying
@docbook
+<para>
+&ldquo;To boldly go where no man has gone before&rdquo; is a
+Registered Trademark of Paramount Pictures Corporation.</para>
+
<para>Published by:</para>
<literallayout class="normal">Free Software Foundation
@@ -1799,49 +1803,6 @@ License in @ref{GNU Free Documentation License}.)
@end ifclear
@end ifnotinfo
-@ignore
-@cindex Close, Diane
-The @value{DOCUMENT} itself has gone through several previous,
-preliminary editions.
-Paul Rubin wrote the very first draft of @cite{The GAWK Manual};
-it was around 40 pages in size.
-Diane Close and Richard Stallman improved it, yielding the
-version which I started working with in the fall of 1988.
-It was around 90 pages long and barely described the original, ``old''
-version of @command{awk}. After substantial revision, the first version of
-the @cite{The GAWK Manual} to be released was Edition 0.11 Beta in
-October of 1989. The manual then underwent more substantial revision
-for Edition 0.13 of December 1991.
-David Trueman, Pat Rankin and Michal Jaegermann contributed sections
-of the manual for Edition 0.13.
-That edition was published by the
-FSF as a bound book early in 1992. Since then there were several
-minor revisions, notably Edition 0.14 of November 1992 that was published
-by the FSF in January of 1993 and Edition 0.16 of August 1993.
-
-Edition 1.0 of @cite{GAWK: The GNU Awk User's Guide} represented a significant re-working
-of @cite{The GAWK Manual}, with much additional material.
-The FSF and I agreed that I was now the primary author.
-@c I also felt that the manual needed a more descriptive title.
-
-In January 1996, SSC published Edition 1.0 under the title @cite{Effective AWK Programming}.
-In February 1997, they published Edition 1.0.3 which had minor changes
-as a ``second edition.''
-In 1999, the FSF published this same version as Edition 2
-of @cite{GAWK: The GNU Awk User's Guide}.
-
-Edition @value{EDITION} maintains the basic structure of Edition 1.0,
-but with significant additional material, reflecting the host of new features
-in @command{gawk} version @value{VERSION}.
-Of particular note is
-@ref{Array Sorting},
-@ref{Bitwise Functions},
-@ref{Internationalization},
-@ref{Advanced Features},
-and
-@ref{Dynamic Extensions}.
-@end ignore
-
@cindex Close, Diane
The @value{DOCUMENT} itself has gone through a number of previous editions.
Paul Rubin wrote the very first draft of @cite{The GAWK Manual};
@@ -1860,16 +1821,24 @@ the title @cite{The GNU Awk User's Guide}.
@ifset FOR_PRINT
SSC published two editions of the @value{DOCUMENT} under the
title @cite{Effective awk Programming}, and in O'Reilly published
-the edition in 2001.
+the third edition in 2001.
@end ifset
This edition maintains the basic structure of the previous editions.
-For Edition 4.0, the content has been thoroughly reviewed
+For FSF edition 4.0, the content has been thoroughly reviewed
and updated. All references to @command{gawk} versions prior to 4.0 have been
removed.
Of significant note for this edition was @ref{Debugger}.
-For edition @value{EDITION}, the content has been reorganized into parts,
+For FSF edition
+@ifclear FOR_PRINT
+@value{EDITION},
+@end ifclear
+@ifset FOR_PRINT
+@value{EDITION}
+(the fourth edition as published by O'Reilly),
+@end ifset
+the content has been reorganized into parts,
and the major new additions are @ref{Arbitrary Precision Arithmetic},
and @ref{Dynamic Extensions}.
@@ -4178,7 +4147,8 @@ path. (A null entry is indicated by starting or ending the path with a
colon or by placing two colons next to each other [@samp{::}].)
This path search mechanism is similar
to the shell's.
-@c someday, @cite{The Bourne Again Shell}....
+(See @uref{http://www.gnu.org/software/bash/manual/,
+@cite{The Bourne-Again SHell manual}.})
However, @command{gawk} always looks in the current directory @emph{before}
searching @env{AWKPATH}, so there is no real reason to include
@@ -4491,6 +4461,8 @@ that can be loaded with either @code{@@load} or the @option{-l} option.
@node Obsolete
@section Obsolete Options and/or Features
+@c update this section for each release!
+
@cindex options, deprecated
@cindex features, deprecated
@cindex obsolete features
@@ -4499,8 +4471,6 @@ previous releases of @command{gawk} that are either not available in the
current version or that are still supported but deprecated (meaning that
they will @emph{not} be in the next release).
-@c update this section for each release!
-
The process-related special files @file{/dev/pid}, @file{/dev/ppid},
@file{/dev/pgrpid}, and @file{/dev/user} were deprecated in @command{gawk}
3.1, but still worked. As of version 4.0, they are no longer
@@ -5518,9 +5488,6 @@ GNU operators, but this was deemed too confusing. The current
method of using @samp{\y} for the GNU @samp{\b} appears to be the
lesser of two evils.
-@c NOTE!!! Keep this in sync with the same table in the summary appendix!
-@c
-@c Should really do this with file inclusion.
@cindex regular expressions, @command{gawk}, command-line options
@cindex @command{gawk}, command-line options, and regular expressions
The various command-line options
@@ -6978,7 +6945,6 @@ program on the file @file{mail-list}. The following command prints a
list of the names of the people that work at or attend a university, and
the first three digits of their phone numbers:
-@c tweaked to make the tex output look better in @smallbook
@example
$ @kbd{awk -F- -f edu.awk mail-list}
@print{} Fabius 555
@@ -8777,16 +8743,6 @@ the first character of the string.
@cindex dark corner, format-control characters
@cindex @command{gawk}, format-control characters
@quotation NOTE
-@ignore
-The @samp{%c} format does @emph{not} handle values outside the range
-0--255. On most systems, values from 0--127 are within the range of
-ASCII and will yield an ASCII character. Values in the range 128--255
-may format as characters in some extended character set, or they may not.
-System 390 (IBM architecture mainframe) systems use 8-bit characters,
-and thus values from 0--255 yield the corresponding EBCDIC character.
-Any value above 255 is treated as modulo 255; i.e., the lowest eight bits
-of the value are used. The locale and character set are always ignored.
-@end ignore
The POSIX standard says the first character of a string is printed.
In locales with multibyte characters, @command{gawk} attempts to
convert the leading bytes of the string into a valid wide character
@@ -8909,7 +8865,7 @@ which they may appear:
@table @code
@cindex differences in @command{awk} and @command{gawk}, @code{print}/@code{printf} statements
@cindex @code{printf} statement, positional specifiers
-@c the command does NOT start a secondary
+@c the code{} does NOT start a secondary
@cindex positional specifiers, @code{printf} statement
@item @var{N}$
An integer constant followed by a @samp{$} is a @dfn{positional specifier}.
@@ -10669,7 +10625,7 @@ One possibly undesirable effect of this definition of remainder is that
In other @command{awk} implementations, the signedness of the remainder
may be machine-dependent.
-@c !!! what does posix say?
+@c FIXME !!! what does posix say?
@cindex portability, @code{**} operator and
@cindex @code{*} (asterisk), @code{**} operator
@@ -19602,7 +19558,6 @@ that their statement is correct, this @value{CHAPTER} and @ref{Sample
Programs}, provide a good-sized body of code for you to read, and we hope,
to learn from.
-@c 2e: USE TEXINFO-2 FUNCTION DEFINITION STUFF!!!!!!!!!!!!!
This @value{CHAPTER} presents a library of useful @command{awk} functions.
Many of the sample programs presented later in this @value{DOCUMENT}
use these functions.
@@ -21011,7 +20966,6 @@ application might want to print its own error message.)
@item optopt
The letter representing the command-line option.
-@c While not usually documented, most versions supply this variable.
@end table
The following C fragment shows how @code{getopt()} might process command-line
@@ -21062,7 +21016,6 @@ necessary for accessing individual characters
function was written before @command{gawk} acquired the ability to
split strings into single characters using @code{""} as the separator.
We have left it alone, since using @code{substr()} is more portable.}
-@c FIXME: could use split(str, a, "") to do it more easily.
The discussion that follows walks through the code a bit at a time:
@@ -21347,8 +21300,6 @@ no more entries, it returns @code{NULL}, the null pointer. When this
happens, the C program should call @code{endpwent()} to close the database.
Following is @command{pwcat}, a C program that ``cats'' the password database:
-@c Use old style function header for portability to old systems (SunOS, HP/UX).
-
@example
@c file eg/lib/pwcat.c
/*
@@ -24742,7 +24693,6 @@ Finally, the function @code{@w{unexpected_eof()}} prints an appropriate
error message and then exits.
The @code{END} rule handles the final cleanup, closing the open file:
-@c function lb put on same line for page breaking. sigh
@example
@c file eg/prog/extract.awk
@group
@@ -26664,7 +26614,6 @@ the body of an @code{if}, @code{else}, or loop is only a single statement.
@item
Parentheses are used only where needed, as indicated by the structure
of the program and the precedence rules.
-@c extra verbiage here satisfies the copyeditor. ugh.
For example, @samp{(3 + 5) * 4} means add three plus five, then multiply
the total by four. However, @samp{3 + 5 * 4} has no parentheses, and
means @samp{3 + (5 * 4)}.
@@ -27272,7 +27221,6 @@ present a special problem for translation.
Consider the following:@footnote{This example is borrowed
from the GNU @command{gettext} manual.}
-@c line broken here only for smallbook format
@example
printf(_"String `%s' has %d characters\n",
string, length(string)))
@@ -28972,8 +28920,6 @@ exactly.
@command{awk} uses @dfn{double precision} floating-point numbers, which
can hold more digits than @dfn{single precision}
floating-point numbers.
-@c Floating-point issues are discussed more fully in
-@c @ref{Floating Point Issues}.
There a several important issues to be aware of, described next.
@@ -30913,6 +30859,7 @@ procedure calls that do not return a value.
@table @code
@item #define emalloc(pointer, type, size, message) @dots{}
The arguments to this macro are as follows:
+
@c nested table
@table @code
@item pointer
@@ -31074,6 +31021,7 @@ a function with @command{gawk} using the following function.
@item void awk_atexit(void (*funcp)(void *data, int exit_status),
@itemx @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ void *arg0);
The parameters are:
+
@c nested table
@table @code
@item funcp
@@ -32856,7 +32804,6 @@ Those are followed by the necessary variable declarations
to make use of the API macros and boilerplate code
(@pxref{Extension API Boilerplate}).
-@c break line for page breaking
@example
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -32943,7 +32890,6 @@ The @code{stat()} extension is more involved. First comes a function
that turns a numeric mode into a printable representation
(e.g., 644 becomes @samp{-rw-r--r--}). This is omitted here for brevity:
-@c break line for page breaking
@example
/* format_mode --- turn a stat mode field into something readable */
@@ -34358,7 +34304,7 @@ The @code{fflush()} built-in function for flushing buffered output
@ignore
@item
The @code{SYMTAB} array, that allows access to @command{awk}'s internal symbol
-table. This feature is not documented, largely because
+table. This feature was never documented for his @command{awk}, largely because
it is somewhat shakily implemented. For instance, you cannot access arrays
or array elements through it.
@end ignore
@@ -35667,6 +35613,9 @@ The improved array sorting features were driven by John together
with Pat Rankin.
@end itemize
+@cindex Papadopoulos, Panos
+Panos Papadopoulos contributed the original text for @ref{Include Files}.
+
@item
@cindex Yawitz, Efraim
Efraim Yawitz contributed the original text for @ref{Debugger}.
@@ -37787,19 +37736,19 @@ Automake,
Autoconf,
@command{bison},
and
-@command{gettext}.
+GNU @command{gettext}.
@ignore
-If it would help if I sent out an "I just upgraded to version x.y
-of tool Z" kind of message to this list, I can do that. Up until
+If it would help if I sent out an ``I just upgraded to version x.y
+of tool Z'' kind of message to this list, I can do that. Up until
now it hasn't been a real issue since I'm the only one who's been
dorking with the configuration machinery.
@end ignore
@c @enumerate A
@c @item
-Installing from source is quite easy. It's how the maintainer worked for years,
-and still works.
+Installing from source is quite easy. It's how the maintainer worked for years
+(and still works).
He had @file{/usr/local/bin} at the front of his @env{PATH} and just did:
@example
@@ -40469,9 +40418,6 @@ recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
-@c Local Variables:
-@c ispell-local-pdict: "ispell-dict"
-@c End:
@end ifclear
@ifnotdocbook
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index c85ba0bc..b9024eb9 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -236,6 +236,10 @@ quirk of the language / makeinfo, and isn't going to change.
@copying
@docbook
+<para>
+&ldquo;To boldly go where no man has gone before&rdquo; is a
+Registered Trademark of Paramount Pictures Corporation.</para>
+
<para>Published by:</para>
<literallayout class="normal">Free Software Foundation
@@ -1766,49 +1770,6 @@ License in @ref{GNU Free Documentation License}.)
@end ifclear
@end ifnotinfo
-@ignore
-@cindex Close, Diane
-The @value{DOCUMENT} itself has gone through several previous,
-preliminary editions.
-Paul Rubin wrote the very first draft of @cite{The GAWK Manual};
-it was around 40 pages in size.
-Diane Close and Richard Stallman improved it, yielding the
-version which I started working with in the fall of 1988.
-It was around 90 pages long and barely described the original, ``old''
-version of @command{awk}. After substantial revision, the first version of
-the @cite{The GAWK Manual} to be released was Edition 0.11 Beta in
-October of 1989. The manual then underwent more substantial revision
-for Edition 0.13 of December 1991.
-David Trueman, Pat Rankin and Michal Jaegermann contributed sections
-of the manual for Edition 0.13.
-That edition was published by the
-FSF as a bound book early in 1992. Since then there were several
-minor revisions, notably Edition 0.14 of November 1992 that was published
-by the FSF in January of 1993 and Edition 0.16 of August 1993.
-
-Edition 1.0 of @cite{GAWK: The GNU Awk User's Guide} represented a significant re-working
-of @cite{The GAWK Manual}, with much additional material.
-The FSF and I agreed that I was now the primary author.
-@c I also felt that the manual needed a more descriptive title.
-
-In January 1996, SSC published Edition 1.0 under the title @cite{Effective AWK Programming}.
-In February 1997, they published Edition 1.0.3 which had minor changes
-as a ``second edition.''
-In 1999, the FSF published this same version as Edition 2
-of @cite{GAWK: The GNU Awk User's Guide}.
-
-Edition @value{EDITION} maintains the basic structure of Edition 1.0,
-but with significant additional material, reflecting the host of new features
-in @command{gawk} version @value{VERSION}.
-Of particular note is
-@ref{Array Sorting},
-@ref{Bitwise Functions},
-@ref{Internationalization},
-@ref{Advanced Features},
-and
-@ref{Dynamic Extensions}.
-@end ignore
-
@cindex Close, Diane
The @value{DOCUMENT} itself has gone through a number of previous editions.
Paul Rubin wrote the very first draft of @cite{The GAWK Manual};
@@ -1827,16 +1788,24 @@ the title @cite{The GNU Awk User's Guide}.
@ifset FOR_PRINT
SSC published two editions of the @value{DOCUMENT} under the
title @cite{Effective awk Programming}, and in O'Reilly published
-the edition in 2001.
+the third edition in 2001.
@end ifset
This edition maintains the basic structure of the previous editions.
-For Edition 4.0, the content has been thoroughly reviewed
+For FSF edition 4.0, the content has been thoroughly reviewed
and updated. All references to @command{gawk} versions prior to 4.0 have been
removed.
Of significant note for this edition was @ref{Debugger}.
-For edition @value{EDITION}, the content has been reorganized into parts,
+For FSF edition
+@ifclear FOR_PRINT
+@value{EDITION},
+@end ifclear
+@ifset FOR_PRINT
+@value{EDITION}
+(the fourth edition as published by O'Reilly),
+@end ifset
+the content has been reorganized into parts,
and the major new additions are @ref{Arbitrary Precision Arithmetic},
and @ref{Dynamic Extensions}.
@@ -4106,7 +4075,8 @@ path. (A null entry is indicated by starting or ending the path with a
colon or by placing two colons next to each other [@samp{::}].)
This path search mechanism is similar
to the shell's.
-@c someday, @cite{The Bourne Again Shell}....
+(See @uref{http://www.gnu.org/software/bash/manual/,
+@cite{The Bourne-Again SHell manual}.})
However, @command{gawk} always looks in the current directory @emph{before}
searching @env{AWKPATH}, so there is no real reason to include
@@ -4419,6 +4389,8 @@ that can be loaded with either @code{@@load} or the @option{-l} option.
@node Obsolete
@section Obsolete Options and/or Features
+@c update this section for each release!
+
@cindex options, deprecated
@cindex features, deprecated
@cindex obsolete features
@@ -4427,8 +4399,6 @@ previous releases of @command{gawk} that are either not available in the
current version or that are still supported but deprecated (meaning that
they will @emph{not} be in the next release).
-@c update this section for each release!
-
The process-related special files @file{/dev/pid}, @file{/dev/ppid},
@file{/dev/pgrpid}, and @file{/dev/user} were deprecated in @command{gawk}
3.1, but still worked. As of version 4.0, they are no longer
@@ -5363,9 +5333,6 @@ GNU operators, but this was deemed too confusing. The current
method of using @samp{\y} for the GNU @samp{\b} appears to be the
lesser of two evils.
-@c NOTE!!! Keep this in sync with the same table in the summary appendix!
-@c
-@c Should really do this with file inclusion.
@cindex regular expressions, @command{gawk}, command-line options
@cindex @command{gawk}, command-line options, and regular expressions
The various command-line options
@@ -6692,7 +6659,6 @@ program on the file @file{mail-list}. The following command prints a
list of the names of the people that work at or attend a university, and
the first three digits of their phone numbers:
-@c tweaked to make the tex output look better in @smallbook
@example
$ @kbd{awk -F- -f edu.awk mail-list}
@print{} Fabius 555
@@ -8396,16 +8362,6 @@ the first character of the string.
@cindex dark corner, format-control characters
@cindex @command{gawk}, format-control characters
@quotation NOTE
-@ignore
-The @samp{%c} format does @emph{not} handle values outside the range
-0--255. On most systems, values from 0--127 are within the range of
-ASCII and will yield an ASCII character. Values in the range 128--255
-may format as characters in some extended character set, or they may not.
-System 390 (IBM architecture mainframe) systems use 8-bit characters,
-and thus values from 0--255 yield the corresponding EBCDIC character.
-Any value above 255 is treated as modulo 255; i.e., the lowest eight bits
-of the value are used. The locale and character set are always ignored.
-@end ignore
The POSIX standard says the first character of a string is printed.
In locales with multibyte characters, @command{gawk} attempts to
convert the leading bytes of the string into a valid wide character
@@ -8528,7 +8484,7 @@ which they may appear:
@table @code
@cindex differences in @command{awk} and @command{gawk}, @code{print}/@code{printf} statements
@cindex @code{printf} statement, positional specifiers
-@c the command does NOT start a secondary
+@c the code{} does NOT start a secondary
@cindex positional specifiers, @code{printf} statement
@item @var{N}$
An integer constant followed by a @samp{$} is a @dfn{positional specifier}.
@@ -10159,7 +10115,7 @@ One possibly undesirable effect of this definition of remainder is that
In other @command{awk} implementations, the signedness of the remainder
may be machine-dependent.
-@c !!! what does posix say?
+@c FIXME !!! what does posix say?
@cindex portability, @code{**} operator and
@cindex @code{*} (asterisk), @code{**} operator
@@ -18775,7 +18731,6 @@ that their statement is correct, this @value{CHAPTER} and @ref{Sample
Programs}, provide a good-sized body of code for you to read, and we hope,
to learn from.
-@c 2e: USE TEXINFO-2 FUNCTION DEFINITION STUFF!!!!!!!!!!!!!
This @value{CHAPTER} presents a library of useful @command{awk} functions.
Many of the sample programs presented later in this @value{DOCUMENT}
use these functions.
@@ -20155,7 +20110,6 @@ application might want to print its own error message.)
@item optopt
The letter representing the command-line option.
-@c While not usually documented, most versions supply this variable.
@end table
The following C fragment shows how @code{getopt()} might process command-line
@@ -20206,7 +20160,6 @@ necessary for accessing individual characters
function was written before @command{gawk} acquired the ability to
split strings into single characters using @code{""} as the separator.
We have left it alone, since using @code{substr()} is more portable.}
-@c FIXME: could use split(str, a, "") to do it more easily.
The discussion that follows walks through the code a bit at a time:
@@ -20491,8 +20444,6 @@ no more entries, it returns @code{NULL}, the null pointer. When this
happens, the C program should call @code{endpwent()} to close the database.
Following is @command{pwcat}, a C program that ``cats'' the password database:
-@c Use old style function header for portability to old systems (SunOS, HP/UX).
-
@example
@c file eg/lib/pwcat.c
/*
@@ -23886,7 +23837,6 @@ Finally, the function @code{@w{unexpected_eof()}} prints an appropriate
error message and then exits.
The @code{END} rule handles the final cleanup, closing the open file:
-@c function lb put on same line for page breaking. sigh
@example
@c file eg/prog/extract.awk
@group
@@ -25808,7 +25758,6 @@ the body of an @code{if}, @code{else}, or loop is only a single statement.
@item
Parentheses are used only where needed, as indicated by the structure
of the program and the precedence rules.
-@c extra verbiage here satisfies the copyeditor. ugh.
For example, @samp{(3 + 5) * 4} means add three plus five, then multiply
the total by four. However, @samp{3 + 5 * 4} has no parentheses, and
means @samp{3 + (5 * 4)}.
@@ -26416,7 +26365,6 @@ present a special problem for translation.
Consider the following:@footnote{This example is borrowed
from the GNU @command{gettext} manual.}
-@c line broken here only for smallbook format
@example
printf(_"String `%s' has %d characters\n",
string, length(string)))
@@ -28116,8 +28064,6 @@ exactly.
@command{awk} uses @dfn{double precision} floating-point numbers, which
can hold more digits than @dfn{single precision}
floating-point numbers.
-@c Floating-point issues are discussed more fully in
-@c @ref{Floating Point Issues}.
There a several important issues to be aware of, described next.
@@ -30057,6 +30003,7 @@ procedure calls that do not return a value.
@table @code
@item #define emalloc(pointer, type, size, message) @dots{}
The arguments to this macro are as follows:
+
@c nested table
@table @code
@item pointer
@@ -30218,6 +30165,7 @@ a function with @command{gawk} using the following function.
@item void awk_atexit(void (*funcp)(void *data, int exit_status),
@itemx @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ void *arg0);
The parameters are:
+
@c nested table
@table @code
@item funcp
@@ -32000,7 +31948,6 @@ Those are followed by the necessary variable declarations
to make use of the API macros and boilerplate code
(@pxref{Extension API Boilerplate}).
-@c break line for page breaking
@example
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -32087,7 +32034,6 @@ The @code{stat()} extension is more involved. First comes a function
that turns a numeric mode into a printable representation
(e.g., 644 becomes @samp{-rw-r--r--}). This is omitted here for brevity:
-@c break line for page breaking
@example
/* format_mode --- turn a stat mode field into something readable */
@@ -33502,7 +33448,7 @@ The @code{fflush()} built-in function for flushing buffered output
@ignore
@item
The @code{SYMTAB} array, that allows access to @command{awk}'s internal symbol
-table. This feature is not documented, largely because
+table. This feature was never documented for his @command{awk}, largely because
it is somewhat shakily implemented. For instance, you cannot access arrays
or array elements through it.
@end ignore
@@ -34811,6 +34757,9 @@ The improved array sorting features were driven by John together
with Pat Rankin.
@end itemize
+@cindex Papadopoulos, Panos
+Panos Papadopoulos contributed the original text for @ref{Include Files}.
+
@item
@cindex Yawitz, Efraim
Efraim Yawitz contributed the original text for @ref{Debugger}.
@@ -36931,19 +36880,19 @@ Automake,
Autoconf,
@command{bison},
and
-@command{gettext}.
+GNU @command{gettext}.
@ignore
-If it would help if I sent out an "I just upgraded to version x.y
-of tool Z" kind of message to this list, I can do that. Up until
+If it would help if I sent out an ``I just upgraded to version x.y
+of tool Z'' kind of message to this list, I can do that. Up until
now it hasn't been a real issue since I'm the only one who's been
dorking with the configuration machinery.
@end ignore
@c @enumerate A
@c @item
-Installing from source is quite easy. It's how the maintainer worked for years,
-and still works.
+Installing from source is quite easy. It's how the maintainer worked for years
+(and still works).
He had @file{/usr/local/bin} at the front of his @env{PATH} and just did:
@example
@@ -39613,9 +39562,6 @@ recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
-@c Local Variables:
-@c ispell-local-pdict: "ispell-dict"
-@c End:
@end ifclear
@ifnotdocbook