summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-10-05 20:54:01 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-10-05 20:54:01 +0300
commitc86aa5e85c7ced14a81389c0bf96b6c75fe420c9 (patch)
tree31d709f3ae9f00c17f4f31939b5fee5f6dffa8d8
parent6b818c7f463e1bd6b9470f4bfb694f240ac3e5c2 (diff)
downloadgawk-eap4-release-to-production.tar.gz
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1089
-rw-r--r--doc/gawk.texi30
-rw-r--r--doc/gawktexi.in30
4 files changed, 587 insertions, 566 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index e4676b29..5f59e578 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2014-10-05 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Finished changes!
+
2014-10-03 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in (EMRED): Renamed from EMISTERED to match original.
diff --git a/doc/gawk.info b/doc/gawk.info
index 6c8b9c8b..68d60122 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1746,10 +1746,10 @@ the quoting rules.
awk -F"" 'PROGRAM' FILES # wrong!
- In the second case, `awk' will attempt to use the text of the
- program as the value of `FS', and the first file name as the text
- of the program! This results in syntax errors at best, and
- confusing behavior at worst.
+ In the second case, `awk' attempts to use the text of the program
+ as the value of `FS', and the first file name as the text of the
+ program! This results in syntax errors at best, and confusing
+ behavior at worst.
Mixing single and double quotes is difficult. You have to resort to
shell quoting tricks, like this:
@@ -3942,7 +3942,7 @@ No options
Traditional Unix `awk' regexps are matched. The GNU operators are
not special, and interval expressions are not available. The
POSIX character classes (`[[:alnum:]]', etc.) are supported, as
- BWK `awk' does support them. Characters described by octal and
+ BWK `awk' supports them. Characters described by octal and
hexadecimal escape sequences are treated literally, even if they
represent regexp metacharacters.
@@ -4465,9 +4465,9 @@ program. Other `awk' implementations may behave differently.)
As mentioned in *note Fields::, `awk' stores the current record's
number of fields in the built-in variable `NF' (also *note Built-in
-Variables::). The expression `$NF' is not a special feature--it is the
-direct consequence of evaluating `NF' and using its value as a field
-number.
+Variables::). Thus, the expression `$NF' is not a special feature--it
+is the direct consequence of evaluating `NF' and using its value as a
+field number.
---------- Footnotes ----------
@@ -7677,7 +7677,7 @@ difference in behavior, on a GNU/Linux system:
The `en_DK.utf-8' locale is for English in Denmark, where the comma
acts as the decimal point separator. In the normal `"C"' locale, `gawk'
treats `4,321' as 4, while in the Danish locale, it's treated as the
-full number, 4.321.
+full number including the fractional part, 4.321.
Some earlier versions of `gawk' fully complied with this aspect of
the standard. However, many users in non-English locales complained
@@ -10765,8 +10765,8 @@ program.
Arrays in `awk' superficially resemble arrays in other programming
languages, but there are fundamental differences. In `awk', it isn't
necessary to specify the size of an array before starting to use it.
-Additionally, any number or string in `awk', not just consecutive
-integers, may be used as an array index.
+Additionally, any number or string, not just consecutive integers, may
+be used as an array index.
In most other languages, arrays must be "declared" before use,
including a specification of how many elements or components they
@@ -12079,7 +12079,7 @@ Options::):
With BWK `awk' and `gawk', it is a fatal error to use a regexp
constant for FIND. Other implementations allow it, simply
treating the regexp constant as an expression meaning `$0 ~
- /regexp/'.
+ /regexp/'. (d.c.).
`length('[STRING]`)'
Return the number of characters in STRING. If STRING is a number,
@@ -18294,7 +18294,7 @@ pipeline of commands. While `sed' is a complicated program in its own
right, its most common use is to perform global substitutions in the
middle of a pipeline:
- command1 < orig.data | sed 's/old/new/g' | command2 > result
+ COMMAND1 < orig.data | sed 's/old/new/g' | COMMAND2 > result
Here, `s/old/new/g' tells `sed' to look for the regexp `old' on each
input line and globally replace it with the text `new', i.e., all the
@@ -25919,7 +25919,7 @@ File: gawk.info, Node: Extension summary, Next: Extension Exercises, Prev: ga
tasks.
* One of these tasks is to "register" the name and implementation of
- a new `awk'-level function with `gawk'. The implementation takes
+ new `awk'-level functions with `gawk'. The implementation takes
the form of a C function pointer with a defined signature. By
convention, implementation functions are named `do_XXXX()' for
some `awk'-level function `XXXX()'.
@@ -25955,7 +25955,7 @@ File: gawk.info, Node: Extension summary, Next: Extension Exercises, Prev: ga
modifying elements; getting the count of elements in an array;
creating a new array; clearing an array; and flattening an
array for easy C style looping over all its indices and
- elements
+ elements.
* The API defines a number of standard data types for representing
`awk' values, array elements, and arrays.
@@ -28068,8 +28068,8 @@ reorganized to supply individual PCSI packages for each component. See
The normal build procedure for `gawk' produces a program that is
suitable for use with GNV.
- The `vms/gawk_build_steps.txt' in the distribution documents the
-procedure for building a VMS PCSI kit that is compatible with GNV.
+ The file `vms/gawk_build_steps.txt' in the distribution documents
+the procedure for building a VMS PCSI kit that is compatible with GNV.

File: gawk.info, Node: VMS Old Gawk, Prev: VMS GNV, Up: VMS Installation
@@ -32292,6 +32292,7 @@ Index
* double quote ("), in shell commands: Quoting. (line 54)
* down debugger command: Execution Stack. (line 23)
* Drepper, Ulrich: Acknowledgments. (line 52)
+* Duman, Patrice: Acknowledgments. (line 74)
* dump all variables of a program: Options. (line 93)
* dump debugger command: Miscellaneous Debugger Commands.
(line 9)
@@ -34253,532 +34254,532 @@ Node: Executable Scripts79204
Ref: Executable Scripts-Footnote-181993
Node: Comments82095
Node: Quoting84568
-Node: DOS Quoting90078
-Node: Sample Data Files90753
-Node: Very Simple93346
-Node: Two Rules98237
-Node: More Complex100123
-Node: Statements/Lines102985
-Ref: Statements/Lines-Footnote-1107441
-Node: Other Features107706
-Node: When108637
-Ref: When-Footnote-1110393
-Node: Intro Summary110458
-Node: Invoking Gawk111341
-Node: Command Line112856
-Node: Options113647
-Ref: Options-Footnote-1129542
-Node: Other Arguments129567
-Node: Naming Standard Input132528
-Node: Environment Variables133621
-Node: AWKPATH Variable134179
-Ref: AWKPATH Variable-Footnote-1137031
-Ref: AWKPATH Variable-Footnote-2137076
-Node: AWKLIBPATH Variable137336
-Node: Other Environment Variables138095
-Node: Exit Status141797
-Node: Include Files142472
-Node: Loading Shared Libraries146050
-Node: Obsolete147477
-Node: Undocumented148174
-Node: Invoking Summary148441
-Node: Regexp150107
-Node: Regexp Usage151566
-Node: Escape Sequences153599
-Node: Regexp Operators159616
-Ref: Regexp Operators-Footnote-1167050
-Ref: Regexp Operators-Footnote-2167197
-Node: Bracket Expressions167295
-Ref: table-char-classes169312
-Node: Leftmost Longest172252
-Node: Computed Regexps173554
-Node: GNU Regexp Operators176951
-Node: Case-sensitivity180657
-Ref: Case-sensitivity-Footnote-1183547
-Ref: Case-sensitivity-Footnote-2183782
-Node: Regexp Summary183890
-Node: Reading Files185359
-Node: Records187453
-Node: awk split records188185
-Node: gawk split records193099
-Ref: gawk split records-Footnote-1197638
-Node: Fields197675
-Ref: Fields-Footnote-1200473
-Node: Nonconstant Fields200559
-Ref: Nonconstant Fields-Footnote-1202789
-Node: Changing Fields202991
-Node: Field Separators208923
-Node: Default Field Splitting211627
-Node: Regexp Field Splitting212744
-Node: Single Character Fields216094
-Node: Command Line Field Separator217153
-Node: Full Line Fields220365
-Ref: Full Line Fields-Footnote-1220873
-Node: Field Splitting Summary220919
-Ref: Field Splitting Summary-Footnote-1224050
-Node: Constant Size224151
-Node: Splitting By Content228757
-Ref: Splitting By Content-Footnote-1232830
-Node: Multiple Line232870
-Ref: Multiple Line-Footnote-1238759
-Node: Getline238938
-Node: Plain Getline241149
-Node: Getline/Variable243789
-Node: Getline/File244936
-Node: Getline/Variable/File246320
-Ref: Getline/Variable/File-Footnote-1247921
-Node: Getline/Pipe248008
-Node: Getline/Variable/Pipe250691
-Node: Getline/Coprocess251822
-Node: Getline/Variable/Coprocess253074
-Node: Getline Notes253813
-Node: Getline Summary256605
-Ref: table-getline-variants257017
-Node: Read Timeout257846
-Ref: Read Timeout-Footnote-1261660
-Node: Command-line directories261718
-Node: Input Summary262622
-Node: Input Exercises265874
-Node: Printing266602
-Node: Print268379
-Node: Print Examples269836
-Node: Output Separators272615
-Node: OFMT274633
-Node: Printf275987
-Node: Basic Printf276772
-Node: Control Letters278343
-Node: Format Modifiers282327
-Node: Printf Examples288334
-Node: Redirection290816
-Node: Special FD297655
-Ref: Special FD-Footnote-1300812
-Node: Special Files300886
-Node: Other Inherited Files301502
-Node: Special Network302502
-Node: Special Caveats303363
-Node: Close Files And Pipes304314
-Ref: Close Files And Pipes-Footnote-1311493
-Ref: Close Files And Pipes-Footnote-2311641
-Node: Output Summary311791
-Node: Output Exercises312787
-Node: Expressions313467
-Node: Values314652
-Node: Constants315328
-Node: Scalar Constants316008
-Ref: Scalar Constants-Footnote-1316867
-Node: Nondecimal-numbers317117
-Node: Regexp Constants320117
-Node: Using Constant Regexps320642
-Node: Variables323780
-Node: Using Variables324435
-Node: Assignment Options326345
-Node: Conversion328220
-Node: Strings And Numbers328744
-Ref: Strings And Numbers-Footnote-1331808
-Node: Locale influences conversions331917
-Ref: table-locale-affects334632
-Node: All Operators335220
-Node: Arithmetic Ops335850
-Node: Concatenation338355
-Ref: Concatenation-Footnote-1341174
-Node: Assignment Ops341280
-Ref: table-assign-ops346263
-Node: Increment Ops347541
-Node: Truth Values and Conditions350979
-Node: Truth Values352062
-Node: Typing and Comparison353111
-Node: Variable Typing353904
-Node: Comparison Operators357556
-Ref: table-relational-ops357966
-Node: POSIX String Comparison361481
-Ref: POSIX String Comparison-Footnote-1362553
-Node: Boolean Ops362691
-Ref: Boolean Ops-Footnote-1367170
-Node: Conditional Exp367261
-Node: Function Calls368988
-Node: Precedence372868
-Node: Locales376536
-Node: Expressions Summary378167
-Node: Patterns and Actions380741
-Node: Pattern Overview381861
-Node: Regexp Patterns383540
-Node: Expression Patterns384083
-Node: Ranges387863
-Node: BEGIN/END390969
-Node: Using BEGIN/END391731
-Ref: Using BEGIN/END-Footnote-1394468
-Node: I/O And BEGIN/END394574
-Node: BEGINFILE/ENDFILE396888
-Node: Empty399789
-Node: Using Shell Variables400106
-Node: Action Overview402382
-Node: Statements404709
-Node: If Statement406557
-Node: While Statement408055
-Node: Do Statement410083
-Node: For Statement411225
-Node: Switch Statement414380
-Node: Break Statement416768
-Node: Continue Statement418809
-Node: Next Statement420634
-Node: Nextfile Statement423014
-Node: Exit Statement425644
-Node: Built-in Variables428047
-Node: User-modified429180
-Ref: User-modified-Footnote-1436860
-Node: Auto-set436922
-Ref: Auto-set-Footnote-1449779
-Ref: Auto-set-Footnote-2449984
-Node: ARGC and ARGV450040
-Node: Pattern Action Summary454244
-Node: Arrays456671
-Node: Array Basics458000
-Node: Array Intro458844
-Ref: figure-array-elements460817
-Ref: Array Intro-Footnote-1463341
-Node: Reference to Elements463469
-Node: Assigning Elements465919
-Node: Array Example466410
-Node: Scanning an Array468168
-Node: Controlling Scanning471184
-Ref: Controlling Scanning-Footnote-1476373
-Node: Numeric Array Subscripts476689
-Node: Uninitialized Subscripts478874
-Node: Delete480491
-Ref: Delete-Footnote-1483235
-Node: Multidimensional483292
-Node: Multiscanning486387
-Node: Arrays of Arrays487976
-Node: Arrays Summary492737
-Node: Functions494842
-Node: Built-in495715
-Node: Calling Built-in496793
-Node: Numeric Functions498781
-Ref: Numeric Functions-Footnote-1502803
-Ref: Numeric Functions-Footnote-2503160
-Ref: Numeric Functions-Footnote-3503208
-Node: String Functions503477
-Ref: String Functions-Footnote-1526941
-Ref: String Functions-Footnote-2527070
-Ref: String Functions-Footnote-3527318
-Node: Gory Details527405
-Ref: table-sub-escapes529186
-Ref: table-sub-proposed530706
-Ref: table-posix-sub532070
-Ref: table-gensub-escapes533610
-Ref: Gory Details-Footnote-1534442
-Node: I/O Functions534593
-Ref: I/O Functions-Footnote-1541694
-Node: Time Functions541841
-Ref: Time Functions-Footnote-1552310
-Ref: Time Functions-Footnote-2552378
-Ref: Time Functions-Footnote-3552536
-Ref: Time Functions-Footnote-4552647
-Ref: Time Functions-Footnote-5552759
-Ref: Time Functions-Footnote-6552986
-Node: Bitwise Functions553252
-Ref: table-bitwise-ops553814
-Ref: Bitwise Functions-Footnote-1558122
-Node: Type Functions558291
-Node: I18N Functions559440
-Node: User-defined561085
-Node: Definition Syntax561889
-Ref: Definition Syntax-Footnote-1567295
-Node: Function Example567364
-Ref: Function Example-Footnote-1570281
-Node: Function Caveats570303
-Node: Calling A Function570821
-Node: Variable Scope571776
-Node: Pass By Value/Reference574764
-Node: Return Statement578274
-Node: Dynamic Typing581258
-Node: Indirect Calls582187
-Ref: Indirect Calls-Footnote-1593491
-Node: Functions Summary593619
-Node: Library Functions596318
-Ref: Library Functions-Footnote-1599936
-Ref: Library Functions-Footnote-2600079
-Node: Library Names600250
-Ref: Library Names-Footnote-1603710
-Ref: Library Names-Footnote-2603930
-Node: General Functions604016
-Node: Strtonum Function605119
-Node: Assert Function608139
-Node: Round Function611463
-Node: Cliff Random Function613004
-Node: Ordinal Functions614020
-Ref: Ordinal Functions-Footnote-1617085
-Ref: Ordinal Functions-Footnote-2617337
-Node: Join Function617548
-Ref: Join Function-Footnote-1619319
-Node: Getlocaltime Function619519
-Node: Readfile Function623260
-Node: Shell Quoting625230
-Node: Data File Management626631
-Node: Filetrans Function627263
-Node: Rewind Function631322
-Node: File Checking632707
-Ref: File Checking-Footnote-1634035
-Node: Empty Files634236
-Node: Ignoring Assigns636215
-Node: Getopt Function637766
-Ref: Getopt Function-Footnote-1649226
-Node: Passwd Functions649429
-Ref: Passwd Functions-Footnote-1658280
-Node: Group Functions658368
-Ref: Group Functions-Footnote-1666271
-Node: Walking Arrays666484
-Node: Library Functions Summary668087
-Node: Library Exercises669488
-Node: Sample Programs670768
-Node: Running Examples671538
-Node: Clones672266
-Node: Cut Program673490
-Node: Egrep Program683220
-Ref: Egrep Program-Footnote-1690724
-Node: Id Program690834
-Node: Split Program694478
-Ref: Split Program-Footnote-1697924
-Node: Tee Program698052
-Node: Uniq Program700839
-Node: Wc Program708260
-Ref: Wc Program-Footnote-1712508
-Node: Miscellaneous Programs712600
-Node: Dupword Program713813
-Node: Alarm Program715844
-Node: Translate Program720648
-Ref: Translate Program-Footnote-1725212
-Node: Labels Program725482
-Ref: Labels Program-Footnote-1728831
-Node: Word Sorting728915
-Node: History Sorting732985
-Node: Extract Program734821
-Node: Simple Sed742353
-Node: Igawk Program745415
-Ref: Igawk Program-Footnote-1759741
-Ref: Igawk Program-Footnote-2759942
-Ref: Igawk Program-Footnote-3760064
-Node: Anagram Program760179
-Node: Signature Program763241
-Node: Programs Summary764488
-Node: Programs Exercises765681
-Ref: Programs Exercises-Footnote-1769812
-Node: Advanced Features769903
-Node: Nondecimal Data771851
-Node: Array Sorting773441
-Node: Controlling Array Traversal774138
-Ref: Controlling Array Traversal-Footnote-1782469
-Node: Array Sorting Functions782587
-Ref: Array Sorting Functions-Footnote-1786479
-Node: Two-way I/O786673
-Ref: Two-way I/O-Footnote-1791617
-Ref: Two-way I/O-Footnote-2791803
-Node: TCP/IP Networking791885
-Node: Profiling794757
-Node: Advanced Features Summary802301
-Node: Internationalization804234
-Node: I18N and L10N805714
-Node: Explaining gettext806400
-Ref: Explaining gettext-Footnote-1811429
-Ref: Explaining gettext-Footnote-2811613
-Node: Programmer i18n811778
-Ref: Programmer i18n-Footnote-1816644
-Node: Translator i18n816693
-Node: String Extraction817487
-Ref: String Extraction-Footnote-1818618
-Node: Printf Ordering818704
-Ref: Printf Ordering-Footnote-1821490
-Node: I18N Portability821554
-Ref: I18N Portability-Footnote-1824003
-Node: I18N Example824066
-Ref: I18N Example-Footnote-1826866
-Node: Gawk I18N826938
-Node: I18N Summary827576
-Node: Debugger828915
-Node: Debugging829937
-Node: Debugging Concepts830378
-Node: Debugging Terms832235
-Node: Awk Debugging834810
-Node: Sample Debugging Session835702
-Node: Debugger Invocation836222
-Node: Finding The Bug837606
-Node: List of Debugger Commands844081
-Node: Breakpoint Control845413
-Node: Debugger Execution Control849105
-Node: Viewing And Changing Data852469
-Node: Execution Stack855834
-Node: Debugger Info857472
-Node: Miscellaneous Debugger Commands861489
-Node: Readline Support866681
-Node: Limitations867573
-Node: Debugging Summary869670
-Node: Arbitrary Precision Arithmetic870838
-Node: Computer Arithmetic872254
-Ref: table-numeric-ranges875855
-Ref: Computer Arithmetic-Footnote-1876714
-Node: Math Definitions876771
-Ref: table-ieee-formats880058
-Ref: Math Definitions-Footnote-1880662
-Node: MPFR features880767
-Node: FP Math Caution882438
-Ref: FP Math Caution-Footnote-1883488
-Node: Inexactness of computations883857
-Node: Inexact representation884805
-Node: Comparing FP Values886160
-Node: Errors accumulate887233
-Node: Getting Accuracy888666
-Node: Try To Round891325
-Node: Setting precision892224
-Ref: table-predefined-precision-strings892908
-Node: Setting the rounding mode894702
-Ref: table-gawk-rounding-modes895066
-Ref: Setting the rounding mode-Footnote-1898520
-Node: Arbitrary Precision Integers898699
-Ref: Arbitrary Precision Integers-Footnote-1901690
-Node: POSIX Floating Point Problems901839
-Ref: POSIX Floating Point Problems-Footnote-1905715
-Node: Floating point summary905753
-Node: Dynamic Extensions907945
-Node: Extension Intro909497
-Node: Plugin License910763
-Node: Extension Mechanism Outline911560
-Ref: figure-load-extension911988
-Ref: figure-register-new-function913468
-Ref: figure-call-new-function914472
-Node: Extension API Description916458
-Node: Extension API Functions Introduction917908
-Node: General Data Types922744
-Ref: General Data Types-Footnote-1928431
-Node: Memory Allocation Functions928730
-Ref: Memory Allocation Functions-Footnote-1931560
-Node: Constructor Functions931656
-Node: Registration Functions933390
-Node: Extension Functions934075
-Node: Exit Callback Functions936371
-Node: Extension Version String937619
-Node: Input Parsers938269
-Node: Output Wrappers948084
-Node: Two-way processors952600
-Node: Printing Messages954804
-Ref: Printing Messages-Footnote-1955881
-Node: Updating `ERRNO'956033
-Node: Requesting Values956773
-Ref: table-value-types-returned957501
-Node: Accessing Parameters958459
-Node: Symbol Table Access959690
-Node: Symbol table by name960204
-Node: Symbol table by cookie962184
-Ref: Symbol table by cookie-Footnote-1966323
-Node: Cached values966386
-Ref: Cached values-Footnote-1969890
-Node: Array Manipulation969981
-Ref: Array Manipulation-Footnote-1971079
-Node: Array Data Types971118
-Ref: Array Data Types-Footnote-1973775
-Node: Array Functions973867
-Node: Flattening Arrays977721
-Node: Creating Arrays984608
-Node: Extension API Variables989375
-Node: Extension Versioning990011
-Node: Extension API Informational Variables991912
-Node: Extension API Boilerplate993000
-Node: Finding Extensions996816
-Node: Extension Example997376
-Node: Internal File Description998148
-Node: Internal File Ops1002215
-Ref: Internal File Ops-Footnote-11013873
-Node: Using Internal File Ops1014013
-Ref: Using Internal File Ops-Footnote-11016396
-Node: Extension Samples1016669
-Node: Extension Sample File Functions1018193
-Node: Extension Sample Fnmatch1025795
-Node: Extension Sample Fork1027277
-Node: Extension Sample Inplace1028490
-Node: Extension Sample Ord1030165
-Node: Extension Sample Readdir1031001
-Ref: table-readdir-file-types1031857
-Node: Extension Sample Revout1032668
-Node: Extension Sample Rev2way1033259
-Node: Extension Sample Read write array1034000
-Node: Extension Sample Readfile1035939
-Node: Extension Sample Time1037034
-Node: Extension Sample API Tests1038383
-Node: gawkextlib1038874
-Node: Extension summary1041524
-Node: Extension Exercises1045206
-Node: Language History1045928
-Node: V7/SVR3.11047585
-Node: SVR41049766
-Node: POSIX1051211
-Node: BTL1052600
-Node: POSIX/GNU1053334
-Node: Feature History1058903
-Node: Common Extensions1071994
-Node: Ranges and Locales1073318
-Ref: Ranges and Locales-Footnote-11077957
-Ref: Ranges and Locales-Footnote-21077984
-Ref: Ranges and Locales-Footnote-31078218
-Node: Contributors1078439
-Node: History summary1083979
-Node: Installation1085348
-Node: Gawk Distribution1086304
-Node: Getting1086788
-Node: Extracting1087612
-Node: Distribution contents1089254
-Node: Unix Installation1094971
-Node: Quick Installation1095588
-Node: Additional Configuration Options1098019
-Node: Configuration Philosophy1099759
-Node: Non-Unix Installation1102110
-Node: PC Installation1102568
-Node: PC Binary Installation1103894
-Node: PC Compiling1105742
-Ref: PC Compiling-Footnote-11108763
-Node: PC Testing1108868
-Node: PC Using1110044
-Node: Cygwin1114159
-Node: MSYS1114982
-Node: VMS Installation1115480
-Node: VMS Compilation1116272
-Ref: VMS Compilation-Footnote-11117494
-Node: VMS Dynamic Extensions1117552
-Node: VMS Installation Details1119236
-Node: VMS Running1121488
-Node: VMS GNV1124329
-Node: VMS Old Gawk1125058
-Node: Bugs1125528
-Node: Other Versions1129498
-Node: Installation summary1135711
-Node: Notes1136767
-Node: Compatibility Mode1137632
-Node: Additions1138414
-Node: Accessing The Source1139339
-Node: Adding Code1140775
-Node: New Ports1146947
-Node: Derived Files1151429
-Ref: Derived Files-Footnote-11156904
-Ref: Derived Files-Footnote-21156938
-Ref: Derived Files-Footnote-31157534
-Node: Future Extensions1157648
-Node: Implementation Limitations1158254
-Node: Extension Design1159502
-Node: Old Extension Problems1160656
-Ref: Old Extension Problems-Footnote-11162173
-Node: Extension New Mechanism Goals1162230
-Ref: Extension New Mechanism Goals-Footnote-11165590
-Node: Extension Other Design Decisions1165779
-Node: Extension Future Growth1167887
-Node: Old Extension Mechanism1168723
-Node: Notes summary1170485
-Node: Basic Concepts1171671
-Node: Basic High Level1172352
-Ref: figure-general-flow1172624
-Ref: figure-process-flow1173223
-Ref: Basic High Level-Footnote-11176452
-Node: Basic Data Typing1176637
-Node: Glossary1179965
-Node: Copying1205123
-Node: GNU Free Documentation License1242679
-Node: Index1267815
+Node: DOS Quoting90074
+Node: Sample Data Files90749
+Node: Very Simple93342
+Node: Two Rules98233
+Node: More Complex100119
+Node: Statements/Lines102981
+Ref: Statements/Lines-Footnote-1107437
+Node: Other Features107702
+Node: When108633
+Ref: When-Footnote-1110389
+Node: Intro Summary110454
+Node: Invoking Gawk111337
+Node: Command Line112852
+Node: Options113643
+Ref: Options-Footnote-1129538
+Node: Other Arguments129563
+Node: Naming Standard Input132524
+Node: Environment Variables133617
+Node: AWKPATH Variable134175
+Ref: AWKPATH Variable-Footnote-1137027
+Ref: AWKPATH Variable-Footnote-2137072
+Node: AWKLIBPATH Variable137332
+Node: Other Environment Variables138091
+Node: Exit Status141793
+Node: Include Files142468
+Node: Loading Shared Libraries146046
+Node: Obsolete147473
+Node: Undocumented148170
+Node: Invoking Summary148437
+Node: Regexp150103
+Node: Regexp Usage151562
+Node: Escape Sequences153595
+Node: Regexp Operators159612
+Ref: Regexp Operators-Footnote-1167046
+Ref: Regexp Operators-Footnote-2167193
+Node: Bracket Expressions167291
+Ref: table-char-classes169308
+Node: Leftmost Longest172248
+Node: Computed Regexps173550
+Node: GNU Regexp Operators176947
+Node: Case-sensitivity180649
+Ref: Case-sensitivity-Footnote-1183539
+Ref: Case-sensitivity-Footnote-2183774
+Node: Regexp Summary183882
+Node: Reading Files185351
+Node: Records187445
+Node: awk split records188177
+Node: gawk split records193091
+Ref: gawk split records-Footnote-1197630
+Node: Fields197667
+Ref: Fields-Footnote-1200465
+Node: Nonconstant Fields200551
+Ref: Nonconstant Fields-Footnote-1202787
+Node: Changing Fields202989
+Node: Field Separators208921
+Node: Default Field Splitting211625
+Node: Regexp Field Splitting212742
+Node: Single Character Fields216092
+Node: Command Line Field Separator217151
+Node: Full Line Fields220363
+Ref: Full Line Fields-Footnote-1220871
+Node: Field Splitting Summary220917
+Ref: Field Splitting Summary-Footnote-1224048
+Node: Constant Size224149
+Node: Splitting By Content228755
+Ref: Splitting By Content-Footnote-1232828
+Node: Multiple Line232868
+Ref: Multiple Line-Footnote-1238757
+Node: Getline238936
+Node: Plain Getline241147
+Node: Getline/Variable243787
+Node: Getline/File244934
+Node: Getline/Variable/File246318
+Ref: Getline/Variable/File-Footnote-1247919
+Node: Getline/Pipe248006
+Node: Getline/Variable/Pipe250689
+Node: Getline/Coprocess251820
+Node: Getline/Variable/Coprocess253072
+Node: Getline Notes253811
+Node: Getline Summary256603
+Ref: table-getline-variants257015
+Node: Read Timeout257844
+Ref: Read Timeout-Footnote-1261658
+Node: Command-line directories261716
+Node: Input Summary262620
+Node: Input Exercises265872
+Node: Printing266600
+Node: Print268377
+Node: Print Examples269834
+Node: Output Separators272613
+Node: OFMT274631
+Node: Printf275985
+Node: Basic Printf276770
+Node: Control Letters278341
+Node: Format Modifiers282325
+Node: Printf Examples288332
+Node: Redirection290814
+Node: Special FD297653
+Ref: Special FD-Footnote-1300810
+Node: Special Files300884
+Node: Other Inherited Files301500
+Node: Special Network302500
+Node: Special Caveats303361
+Node: Close Files And Pipes304312
+Ref: Close Files And Pipes-Footnote-1311491
+Ref: Close Files And Pipes-Footnote-2311639
+Node: Output Summary311789
+Node: Output Exercises312785
+Node: Expressions313465
+Node: Values314650
+Node: Constants315326
+Node: Scalar Constants316006
+Ref: Scalar Constants-Footnote-1316865
+Node: Nondecimal-numbers317115
+Node: Regexp Constants320115
+Node: Using Constant Regexps320640
+Node: Variables323778
+Node: Using Variables324433
+Node: Assignment Options326343
+Node: Conversion328218
+Node: Strings And Numbers328742
+Ref: Strings And Numbers-Footnote-1331806
+Node: Locale influences conversions331915
+Ref: table-locale-affects334660
+Node: All Operators335248
+Node: Arithmetic Ops335878
+Node: Concatenation338383
+Ref: Concatenation-Footnote-1341202
+Node: Assignment Ops341308
+Ref: table-assign-ops346291
+Node: Increment Ops347569
+Node: Truth Values and Conditions351007
+Node: Truth Values352090
+Node: Typing and Comparison353139
+Node: Variable Typing353932
+Node: Comparison Operators357584
+Ref: table-relational-ops357994
+Node: POSIX String Comparison361509
+Ref: POSIX String Comparison-Footnote-1362581
+Node: Boolean Ops362719
+Ref: Boolean Ops-Footnote-1367198
+Node: Conditional Exp367289
+Node: Function Calls369016
+Node: Precedence372896
+Node: Locales376564
+Node: Expressions Summary378195
+Node: Patterns and Actions380769
+Node: Pattern Overview381889
+Node: Regexp Patterns383568
+Node: Expression Patterns384111
+Node: Ranges387891
+Node: BEGIN/END390997
+Node: Using BEGIN/END391759
+Ref: Using BEGIN/END-Footnote-1394496
+Node: I/O And BEGIN/END394602
+Node: BEGINFILE/ENDFILE396916
+Node: Empty399817
+Node: Using Shell Variables400134
+Node: Action Overview402410
+Node: Statements404737
+Node: If Statement406585
+Node: While Statement408083
+Node: Do Statement410111
+Node: For Statement411253
+Node: Switch Statement414408
+Node: Break Statement416796
+Node: Continue Statement418837
+Node: Next Statement420662
+Node: Nextfile Statement423042
+Node: Exit Statement425672
+Node: Built-in Variables428075
+Node: User-modified429208
+Ref: User-modified-Footnote-1436888
+Node: Auto-set436950
+Ref: Auto-set-Footnote-1449807
+Ref: Auto-set-Footnote-2450012
+Node: ARGC and ARGV450068
+Node: Pattern Action Summary454272
+Node: Arrays456699
+Node: Array Basics458028
+Node: Array Intro458872
+Ref: figure-array-elements460836
+Ref: Array Intro-Footnote-1463360
+Node: Reference to Elements463488
+Node: Assigning Elements465938
+Node: Array Example466429
+Node: Scanning an Array468187
+Node: Controlling Scanning471203
+Ref: Controlling Scanning-Footnote-1476392
+Node: Numeric Array Subscripts476708
+Node: Uninitialized Subscripts478893
+Node: Delete480510
+Ref: Delete-Footnote-1483254
+Node: Multidimensional483311
+Node: Multiscanning486406
+Node: Arrays of Arrays487995
+Node: Arrays Summary492756
+Node: Functions494861
+Node: Built-in495734
+Node: Calling Built-in496812
+Node: Numeric Functions498800
+Ref: Numeric Functions-Footnote-1502822
+Ref: Numeric Functions-Footnote-2503179
+Ref: Numeric Functions-Footnote-3503227
+Node: String Functions503496
+Ref: String Functions-Footnote-1526968
+Ref: String Functions-Footnote-2527097
+Ref: String Functions-Footnote-3527345
+Node: Gory Details527432
+Ref: table-sub-escapes529213
+Ref: table-sub-proposed530733
+Ref: table-posix-sub532097
+Ref: table-gensub-escapes533637
+Ref: Gory Details-Footnote-1534469
+Node: I/O Functions534620
+Ref: I/O Functions-Footnote-1541721
+Node: Time Functions541868
+Ref: Time Functions-Footnote-1552337
+Ref: Time Functions-Footnote-2552405
+Ref: Time Functions-Footnote-3552563
+Ref: Time Functions-Footnote-4552674
+Ref: Time Functions-Footnote-5552786
+Ref: Time Functions-Footnote-6553013
+Node: Bitwise Functions553279
+Ref: table-bitwise-ops553841
+Ref: Bitwise Functions-Footnote-1558149
+Node: Type Functions558318
+Node: I18N Functions559467
+Node: User-defined561112
+Node: Definition Syntax561916
+Ref: Definition Syntax-Footnote-1567322
+Node: Function Example567391
+Ref: Function Example-Footnote-1570308
+Node: Function Caveats570330
+Node: Calling A Function570848
+Node: Variable Scope571803
+Node: Pass By Value/Reference574791
+Node: Return Statement578301
+Node: Dynamic Typing581285
+Node: Indirect Calls582214
+Ref: Indirect Calls-Footnote-1593518
+Node: Functions Summary593646
+Node: Library Functions596345
+Ref: Library Functions-Footnote-1599963
+Ref: Library Functions-Footnote-2600106
+Node: Library Names600277
+Ref: Library Names-Footnote-1603737
+Ref: Library Names-Footnote-2603957
+Node: General Functions604043
+Node: Strtonum Function605146
+Node: Assert Function608166
+Node: Round Function611490
+Node: Cliff Random Function613031
+Node: Ordinal Functions614047
+Ref: Ordinal Functions-Footnote-1617112
+Ref: Ordinal Functions-Footnote-2617364
+Node: Join Function617575
+Ref: Join Function-Footnote-1619346
+Node: Getlocaltime Function619546
+Node: Readfile Function623287
+Node: Shell Quoting625257
+Node: Data File Management626658
+Node: Filetrans Function627290
+Node: Rewind Function631349
+Node: File Checking632734
+Ref: File Checking-Footnote-1634062
+Node: Empty Files634263
+Node: Ignoring Assigns636242
+Node: Getopt Function637793
+Ref: Getopt Function-Footnote-1649253
+Node: Passwd Functions649456
+Ref: Passwd Functions-Footnote-1658307
+Node: Group Functions658395
+Ref: Group Functions-Footnote-1666298
+Node: Walking Arrays666511
+Node: Library Functions Summary668114
+Node: Library Exercises669515
+Node: Sample Programs670795
+Node: Running Examples671565
+Node: Clones672293
+Node: Cut Program673517
+Node: Egrep Program683247
+Ref: Egrep Program-Footnote-1690751
+Node: Id Program690861
+Node: Split Program694505
+Ref: Split Program-Footnote-1697951
+Node: Tee Program698079
+Node: Uniq Program700866
+Node: Wc Program708287
+Ref: Wc Program-Footnote-1712535
+Node: Miscellaneous Programs712627
+Node: Dupword Program713840
+Node: Alarm Program715871
+Node: Translate Program720675
+Ref: Translate Program-Footnote-1725239
+Node: Labels Program725509
+Ref: Labels Program-Footnote-1728858
+Node: Word Sorting728942
+Node: History Sorting733012
+Node: Extract Program734848
+Node: Simple Sed742380
+Node: Igawk Program745442
+Ref: Igawk Program-Footnote-1759768
+Ref: Igawk Program-Footnote-2759969
+Ref: Igawk Program-Footnote-3760091
+Node: Anagram Program760206
+Node: Signature Program763268
+Node: Programs Summary764515
+Node: Programs Exercises765708
+Ref: Programs Exercises-Footnote-1769839
+Node: Advanced Features769930
+Node: Nondecimal Data771878
+Node: Array Sorting773468
+Node: Controlling Array Traversal774165
+Ref: Controlling Array Traversal-Footnote-1782496
+Node: Array Sorting Functions782614
+Ref: Array Sorting Functions-Footnote-1786506
+Node: Two-way I/O786700
+Ref: Two-way I/O-Footnote-1791644
+Ref: Two-way I/O-Footnote-2791830
+Node: TCP/IP Networking791912
+Node: Profiling794784
+Node: Advanced Features Summary802328
+Node: Internationalization804261
+Node: I18N and L10N805741
+Node: Explaining gettext806427
+Ref: Explaining gettext-Footnote-1811456
+Ref: Explaining gettext-Footnote-2811640
+Node: Programmer i18n811805
+Ref: Programmer i18n-Footnote-1816671
+Node: Translator i18n816720
+Node: String Extraction817514
+Ref: String Extraction-Footnote-1818645
+Node: Printf Ordering818731
+Ref: Printf Ordering-Footnote-1821517
+Node: I18N Portability821581
+Ref: I18N Portability-Footnote-1824030
+Node: I18N Example824093
+Ref: I18N Example-Footnote-1826893
+Node: Gawk I18N826965
+Node: I18N Summary827603
+Node: Debugger828942
+Node: Debugging829964
+Node: Debugging Concepts830405
+Node: Debugging Terms832262
+Node: Awk Debugging834837
+Node: Sample Debugging Session835729
+Node: Debugger Invocation836249
+Node: Finding The Bug837633
+Node: List of Debugger Commands844108
+Node: Breakpoint Control845440
+Node: Debugger Execution Control849132
+Node: Viewing And Changing Data852496
+Node: Execution Stack855861
+Node: Debugger Info857499
+Node: Miscellaneous Debugger Commands861516
+Node: Readline Support866708
+Node: Limitations867600
+Node: Debugging Summary869697
+Node: Arbitrary Precision Arithmetic870865
+Node: Computer Arithmetic872281
+Ref: table-numeric-ranges875882
+Ref: Computer Arithmetic-Footnote-1876741
+Node: Math Definitions876798
+Ref: table-ieee-formats880085
+Ref: Math Definitions-Footnote-1880689
+Node: MPFR features880794
+Node: FP Math Caution882465
+Ref: FP Math Caution-Footnote-1883515
+Node: Inexactness of computations883884
+Node: Inexact representation884832
+Node: Comparing FP Values886187
+Node: Errors accumulate887260
+Node: Getting Accuracy888693
+Node: Try To Round891352
+Node: Setting precision892251
+Ref: table-predefined-precision-strings892935
+Node: Setting the rounding mode894729
+Ref: table-gawk-rounding-modes895093
+Ref: Setting the rounding mode-Footnote-1898547
+Node: Arbitrary Precision Integers898726
+Ref: Arbitrary Precision Integers-Footnote-1901717
+Node: POSIX Floating Point Problems901866
+Ref: POSIX Floating Point Problems-Footnote-1905742
+Node: Floating point summary905780
+Node: Dynamic Extensions907972
+Node: Extension Intro909524
+Node: Plugin License910790
+Node: Extension Mechanism Outline911587
+Ref: figure-load-extension912015
+Ref: figure-register-new-function913495
+Ref: figure-call-new-function914499
+Node: Extension API Description916485
+Node: Extension API Functions Introduction917935
+Node: General Data Types922771
+Ref: General Data Types-Footnote-1928458
+Node: Memory Allocation Functions928757
+Ref: Memory Allocation Functions-Footnote-1931587
+Node: Constructor Functions931683
+Node: Registration Functions933417
+Node: Extension Functions934102
+Node: Exit Callback Functions936398
+Node: Extension Version String937646
+Node: Input Parsers938296
+Node: Output Wrappers948111
+Node: Two-way processors952627
+Node: Printing Messages954831
+Ref: Printing Messages-Footnote-1955908
+Node: Updating `ERRNO'956060
+Node: Requesting Values956800
+Ref: table-value-types-returned957528
+Node: Accessing Parameters958486
+Node: Symbol Table Access959717
+Node: Symbol table by name960231
+Node: Symbol table by cookie962211
+Ref: Symbol table by cookie-Footnote-1966350
+Node: Cached values966413
+Ref: Cached values-Footnote-1969917
+Node: Array Manipulation970008
+Ref: Array Manipulation-Footnote-1971106
+Node: Array Data Types971145
+Ref: Array Data Types-Footnote-1973802
+Node: Array Functions973894
+Node: Flattening Arrays977748
+Node: Creating Arrays984635
+Node: Extension API Variables989402
+Node: Extension Versioning990038
+Node: Extension API Informational Variables991939
+Node: Extension API Boilerplate993027
+Node: Finding Extensions996843
+Node: Extension Example997403
+Node: Internal File Description998175
+Node: Internal File Ops1002242
+Ref: Internal File Ops-Footnote-11013900
+Node: Using Internal File Ops1014040
+Ref: Using Internal File Ops-Footnote-11016423
+Node: Extension Samples1016696
+Node: Extension Sample File Functions1018220
+Node: Extension Sample Fnmatch1025822
+Node: Extension Sample Fork1027304
+Node: Extension Sample Inplace1028517
+Node: Extension Sample Ord1030192
+Node: Extension Sample Readdir1031028
+Ref: table-readdir-file-types1031884
+Node: Extension Sample Revout1032695
+Node: Extension Sample Rev2way1033286
+Node: Extension Sample Read write array1034027
+Node: Extension Sample Readfile1035966
+Node: Extension Sample Time1037061
+Node: Extension Sample API Tests1038410
+Node: gawkextlib1038901
+Node: Extension summary1041551
+Node: Extension Exercises1045233
+Node: Language History1045955
+Node: V7/SVR3.11047612
+Node: SVR41049793
+Node: POSIX1051238
+Node: BTL1052627
+Node: POSIX/GNU1053361
+Node: Feature History1058930
+Node: Common Extensions1072021
+Node: Ranges and Locales1073345
+Ref: Ranges and Locales-Footnote-11077984
+Ref: Ranges and Locales-Footnote-21078011
+Ref: Ranges and Locales-Footnote-31078245
+Node: Contributors1078466
+Node: History summary1084006
+Node: Installation1085375
+Node: Gawk Distribution1086331
+Node: Getting1086815
+Node: Extracting1087639
+Node: Distribution contents1089281
+Node: Unix Installation1094998
+Node: Quick Installation1095615
+Node: Additional Configuration Options1098046
+Node: Configuration Philosophy1099786
+Node: Non-Unix Installation1102137
+Node: PC Installation1102595
+Node: PC Binary Installation1103921
+Node: PC Compiling1105769
+Ref: PC Compiling-Footnote-11108790
+Node: PC Testing1108895
+Node: PC Using1110071
+Node: Cygwin1114186
+Node: MSYS1115009
+Node: VMS Installation1115507
+Node: VMS Compilation1116299
+Ref: VMS Compilation-Footnote-11117521
+Node: VMS Dynamic Extensions1117579
+Node: VMS Installation Details1119263
+Node: VMS Running1121515
+Node: VMS GNV1124356
+Node: VMS Old Gawk1125090
+Node: Bugs1125560
+Node: Other Versions1129530
+Node: Installation summary1135743
+Node: Notes1136799
+Node: Compatibility Mode1137664
+Node: Additions1138446
+Node: Accessing The Source1139371
+Node: Adding Code1140807
+Node: New Ports1146979
+Node: Derived Files1151461
+Ref: Derived Files-Footnote-11156936
+Ref: Derived Files-Footnote-21156970
+Ref: Derived Files-Footnote-31157566
+Node: Future Extensions1157680
+Node: Implementation Limitations1158286
+Node: Extension Design1159534
+Node: Old Extension Problems1160688
+Ref: Old Extension Problems-Footnote-11162205
+Node: Extension New Mechanism Goals1162262
+Ref: Extension New Mechanism Goals-Footnote-11165622
+Node: Extension Other Design Decisions1165811
+Node: Extension Future Growth1167919
+Node: Old Extension Mechanism1168755
+Node: Notes summary1170517
+Node: Basic Concepts1171703
+Node: Basic High Level1172384
+Ref: figure-general-flow1172656
+Ref: figure-process-flow1173255
+Ref: Basic High Level-Footnote-11176484
+Node: Basic Data Typing1176669
+Node: Glossary1179997
+Node: Copying1205155
+Node: GNU Free Documentation License1242711
+Node: Index1267847

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d8ebb0b1..40b7bfa3 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -2108,8 +2108,16 @@ working with this team of fine people.
Notable code and documentation contributions were made by
a number of people. @xref{Contributors}, for the full list.
+@ifset FOR_PRINT
+@cindex Oram, Andy
+Thanks to Andy Oram, of O'Reilly Media, for initiating
+the fourth edition and for his support during the work.
+@end ifset
+
Thanks to Michael Brennan for the Foreword.
+@cindex Duman, Patrice
+@cindex Berry, Karl
Thanks to Patrice Dumas for the new @command{makeinfo} program.
Thanks to Karl Berry who continues to work to keep
the Texinfo markup language sane.
@@ -2796,7 +2804,7 @@ awk -F"" '@var{program}' @var{files} # wrong!
@end example
@noindent
-In the second case, @command{awk} will attempt to use the text of the program
+In the second case, @command{awk} attempts to use the text of the program
as the value of @code{FS}, and the first @value{FN} as the text of the program!
This results in syntax errors at best, and confusing behavior at worst.
@end itemize
@@ -5976,7 +5984,7 @@ are allowed.
Traditional Unix @command{awk} regexps are matched. The GNU operators
are not special, and interval expressions are not available.
The POSIX character classes (@samp{[[:alnum:]]}, etc.) are supported,
-as BWK @command{awk} does support them.
+as BWK @command{awk} supports them.
Characters described by octal and hexadecimal escape sequences are
treated literally, even if they represent regexp metacharacters.
@@ -6692,7 +6700,7 @@ implementations may behave differently.)
As mentioned in @ref{Fields},
@command{awk} stores the current record's number of fields in the built-in
-variable @code{NF} (also @pxref{Built-in Variables}). The expression
+variable @code{NF} (also @pxref{Built-in Variables}). Thus, the expression
@code{$NF} is not a special feature---it is the direct consequence of
evaluating @code{NF} and using its value as a field number.
@@ -11036,7 +11044,7 @@ $ @kbd{echo 4,321 | LC_ALL=en_DK.utf-8 gawk '@{ print $1 + 1 @}'}
The @code{en_DK.utf-8} locale is for English in Denmark, where the comma acts as
the decimal point separator. In the normal @code{"C"} locale, @command{gawk}
treats @samp{4,321} as 4, while in the Danish locale, it's treated
-as the full number, 4.321.
+as the full number including the fractional part, 4.321.
Some earlier versions of @command{gawk} fully complied with this aspect
of the standard. However, many users in non-English locales complained
@@ -15390,7 +15398,7 @@ as a variable) in the same @command{awk} program.
Arrays in @command{awk} superficially resemble arrays in other programming
languages, but there are fundamental differences. In @command{awk}, it
isn't necessary to specify the size of an array before starting to use it.
-Additionally, any number or string in @command{awk}, not just consecutive integers,
+Additionally, any number or string, not just consecutive integers,
may be used as an array index.
In most other languages, arrays must be @dfn{declared} before use,
@@ -17167,7 +17175,7 @@ If @var{find} is not found, @code{index()} returns zero.
With BWK @command{awk} and @command{gawk},
it is a fatal error to use a regexp constant for @var{find}.
Other implementations allow it, simply treating the regexp
-constant as an expression meaning @samp{$0 ~ /regexp/}.
+constant as an expression meaning @samp{$0 ~ /regexp/}. @value{DARKCORNER}.
@item @code{length(}[@var{string}]@code{)}
@cindexawkfunc{length}
@@ -25720,7 +25728,7 @@ While @command{sed} is a complicated program in its own right, its most common
use is to perform global substitutions in the middle of a pipeline:
@example
-command1 < orig.data | sed 's/old/new/g' | command2 > result
+@var{command1} < orig.data | sed 's/old/new/g' | @var{command2} > result
@end example
Here, @samp{s/old/new/g} tells @command{sed} to look for the regexp
@@ -35004,7 +35012,7 @@ certain tasks.
@item
One of these tasks is to ``register'' the name and implementation of
-a new @command{awk}-level function with @command{gawk}. The implementation
+new @command{awk}-level functions with @command{gawk}. The implementation
takes the form of a C function pointer with a defined signature.
By convention, implementation functions are named @code{do_@var{XXXX}()}
for some @command{awk}-level function @code{@var{XXXX}()}.
@@ -35055,7 +35063,7 @@ getting the count of elements in an array;
creating a new array;
clearing an array;
and
-flattening an array for easy C style looping over all its indices and elements
+flattening an array for easy C style looping over all its indices and elements.
@end itemize
@item
@@ -38010,8 +38018,8 @@ See @w{@uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.}
The normal build procedure for @command{gawk} produces a program that
is suitable for use with GNV.
-The @file{vms/gawk_build_steps.txt} in the distribution documents the procedure
-for building a VMS PCSI kit that is compatible with GNV.
+The file @file{vms/gawk_build_steps.txt} in the distribution documents
+the procedure for building a VMS PCSI kit that is compatible with GNV.
@ignore
@c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 8d25e63a..fb4ca905 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -2075,8 +2075,16 @@ working with this team of fine people.
Notable code and documentation contributions were made by
a number of people. @xref{Contributors}, for the full list.
+@ifset FOR_PRINT
+@cindex Oram, Andy
+Thanks to Andy Oram, of O'Reilly Media, for initiating
+the fourth edition and for his support during the work.
+@end ifset
+
Thanks to Michael Brennan for the Foreword.
+@cindex Duman, Patrice
+@cindex Berry, Karl
Thanks to Patrice Dumas for the new @command{makeinfo} program.
Thanks to Karl Berry who continues to work to keep
the Texinfo markup language sane.
@@ -2707,7 +2715,7 @@ awk -F"" '@var{program}' @var{files} # wrong!
@end example
@noindent
-In the second case, @command{awk} will attempt to use the text of the program
+In the second case, @command{awk} attempts to use the text of the program
as the value of @code{FS}, and the first @value{FN} as the text of the program!
This results in syntax errors at best, and confusing behavior at worst.
@end itemize
@@ -5760,7 +5768,7 @@ are allowed.
Traditional Unix @command{awk} regexps are matched. The GNU operators
are not special, and interval expressions are not available.
The POSIX character classes (@samp{[[:alnum:]]}, etc.) are supported,
-as BWK @command{awk} does support them.
+as BWK @command{awk} supports them.
Characters described by octal and hexadecimal escape sequences are
treated literally, even if they represent regexp metacharacters.
@@ -6419,7 +6427,7 @@ implementations may behave differently.)
As mentioned in @ref{Fields},
@command{awk} stores the current record's number of fields in the built-in
-variable @code{NF} (also @pxref{Built-in Variables}). The expression
+variable @code{NF} (also @pxref{Built-in Variables}). Thus, the expression
@code{$NF} is not a special feature---it is the direct consequence of
evaluating @code{NF} and using its value as a field number.
@@ -10476,7 +10484,7 @@ $ @kbd{echo 4,321 | LC_ALL=en_DK.utf-8 gawk '@{ print $1 + 1 @}'}
The @code{en_DK.utf-8} locale is for English in Denmark, where the comma acts as
the decimal point separator. In the normal @code{"C"} locale, @command{gawk}
treats @samp{4,321} as 4, while in the Danish locale, it's treated
-as the full number, 4.321.
+as the full number including the fractional part, 4.321.
Some earlier versions of @command{gawk} fully complied with this aspect
of the standard. However, many users in non-English locales complained
@@ -14674,7 +14682,7 @@ as a variable) in the same @command{awk} program.
Arrays in @command{awk} superficially resemble arrays in other programming
languages, but there are fundamental differences. In @command{awk}, it
isn't necessary to specify the size of an array before starting to use it.
-Additionally, any number or string in @command{awk}, not just consecutive integers,
+Additionally, any number or string, not just consecutive integers,
may be used as an array index.
In most other languages, arrays must be @dfn{declared} before use,
@@ -16451,7 +16459,7 @@ If @var{find} is not found, @code{index()} returns zero.
With BWK @command{awk} and @command{gawk},
it is a fatal error to use a regexp constant for @var{find}.
Other implementations allow it, simply treating the regexp
-constant as an expression meaning @samp{$0 ~ /regexp/}.
+constant as an expression meaning @samp{$0 ~ /regexp/}. @value{DARKCORNER}.
@item @code{length(}[@var{string}]@code{)}
@cindexawkfunc{length}
@@ -24814,7 +24822,7 @@ While @command{sed} is a complicated program in its own right, its most common
use is to perform global substitutions in the middle of a pipeline:
@example
-command1 < orig.data | sed 's/old/new/g' | command2 > result
+@var{command1} < orig.data | sed 's/old/new/g' | @var{command2} > result
@end example
Here, @samp{s/old/new/g} tells @command{sed} to look for the regexp
@@ -34098,7 +34106,7 @@ certain tasks.
@item
One of these tasks is to ``register'' the name and implementation of
-a new @command{awk}-level function with @command{gawk}. The implementation
+new @command{awk}-level functions with @command{gawk}. The implementation
takes the form of a C function pointer with a defined signature.
By convention, implementation functions are named @code{do_@var{XXXX}()}
for some @command{awk}-level function @code{@var{XXXX}()}.
@@ -34149,7 +34157,7 @@ getting the count of elements in an array;
creating a new array;
clearing an array;
and
-flattening an array for easy C style looping over all its indices and elements
+flattening an array for easy C style looping over all its indices and elements.
@end itemize
@item
@@ -37104,8 +37112,8 @@ See @w{@uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.}
The normal build procedure for @command{gawk} produces a program that
is suitable for use with GNV.
-The @file{vms/gawk_build_steps.txt} in the distribution documents the procedure
-for building a VMS PCSI kit that is compatible with GNV.
+The file @file{vms/gawk_build_steps.txt} in the distribution documents
+the procedure for building a VMS PCSI kit that is compatible with GNV.
@ignore
@c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct