aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-10-05 21:21:09 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-10-05 21:21:09 +0300
commit62988ea2ac1f845e30c3986bfc9bf4620693682a (patch)
tree129dc34ecfb1a78ddf6820c8fbf48b2f8e1366a4
parent2f7402ec4b65a2546373403fa701a29d7482cf3f (diff)
parentc86aa5e85c7ced14a81389c0bf96b6c75fe420c9 (diff)
downloadegawk-62988ea2ac1f845e30c3986bfc9bf4620693682a.tar.gz
egawk-62988ea2ac1f845e30c3986bfc9bf4620693682a.tar.bz2
egawk-62988ea2ac1f845e30c3986bfc9bf4620693682a.zip
Merge branch 'gawk-4.1-stable'
-rw-r--r--ChangeLog4
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1089
-rw-r--r--doc/gawk.texi30
-rw-r--r--doc/gawktexi.in30
-rw-r--r--test/ChangeLog5
6 files changed, 596 insertions, 566 deletions
diff --git a/ChangeLog b/ChangeLog
index 2e305ddd..38f06eed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2014-10-05 Arnold D. Robbins <arnold@skeeve.com>
+ * profile.c (pprint): Fix typo in header. Sheesh.
+
+ Unrelated:
+
* awkgram.y (mk_program): Add a comment that we don't need to
clear the comment* variables.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index ef6a7843..11dcda57 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 9f70b428..30dfc583 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:
@@ -3935,7 +3935,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.
@@ -4458,9 +4458,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 ----------
@@ -7670,7 +7670,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
@@ -10766,8 +10766,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
@@ -12095,7 +12095,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,
@@ -18310,7 +18310,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
@@ -25991,7 +25991,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()'.
@@ -26027,7 +26027,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.
@@ -28143,8 +28143,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
@@ -32368,6 +32368,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)
@@ -34329,532 +34330,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-1129413
-Node: Other Arguments129438
-Node: Naming Standard Input132399
-Node: Environment Variables133492
-Node: AWKPATH Variable134050
-Ref: AWKPATH Variable-Footnote-1136902
-Ref: AWKPATH Variable-Footnote-2136947
-Node: AWKLIBPATH Variable137207
-Node: Other Environment Variables137966
-Node: Exit Status141439
-Node: Include Files142114
-Node: Loading Shared Libraries145692
-Node: Obsolete147119
-Node: Undocumented147816
-Node: Invoking Summary148083
-Node: Regexp149749
-Node: Regexp Usage151208
-Node: Escape Sequences153241
-Node: Regexp Operators159341
-Ref: Regexp Operators-Footnote-1166775
-Ref: Regexp Operators-Footnote-2166922
-Node: Bracket Expressions167020
-Ref: table-char-classes169037
-Node: Leftmost Longest171977
-Node: Computed Regexps173279
-Node: GNU Regexp Operators176676
-Node: Case-sensitivity180382
-Ref: Case-sensitivity-Footnote-1183272
-Ref: Case-sensitivity-Footnote-2183507
-Node: Regexp Summary183615
-Node: Reading Files185084
-Node: Records187178
-Node: awk split records187910
-Node: gawk split records192824
-Ref: gawk split records-Footnote-1197363
-Node: Fields197400
-Ref: Fields-Footnote-1200198
-Node: Nonconstant Fields200284
-Ref: Nonconstant Fields-Footnote-1202514
-Node: Changing Fields202716
-Node: Field Separators208648
-Node: Default Field Splitting211352
-Node: Regexp Field Splitting212469
-Node: Single Character Fields215819
-Node: Command Line Field Separator216878
-Node: Full Line Fields220090
-Ref: Full Line Fields-Footnote-1220598
-Node: Field Splitting Summary220644
-Ref: Field Splitting Summary-Footnote-1223775
-Node: Constant Size223876
-Node: Splitting By Content228482
-Ref: Splitting By Content-Footnote-1232555
-Node: Multiple Line232595
-Ref: Multiple Line-Footnote-1238484
-Node: Getline238663
-Node: Plain Getline240874
-Node: Getline/Variable243514
-Node: Getline/File244661
-Node: Getline/Variable/File246045
-Ref: Getline/Variable/File-Footnote-1247646
-Node: Getline/Pipe247733
-Node: Getline/Variable/Pipe250416
-Node: Getline/Coprocess251547
-Node: Getline/Variable/Coprocess252799
-Node: Getline Notes253538
-Node: Getline Summary256330
-Ref: table-getline-variants256742
-Node: Read Timeout257571
-Ref: Read Timeout-Footnote-1261385
-Node: Command-line directories261443
-Node: Input Summary262347
-Node: Input Exercises265599
-Node: Printing266327
-Node: Print268104
-Node: Print Examples269561
-Node: Output Separators272340
-Node: OFMT274358
-Node: Printf275712
-Node: Basic Printf276497
-Node: Control Letters278068
-Node: Format Modifiers282052
-Node: Printf Examples288059
-Node: Redirection290541
-Node: Special FD297380
-Ref: Special FD-Footnote-1300537
-Node: Special Files300611
-Node: Other Inherited Files301227
-Node: Special Network302227
-Node: Special Caveats303088
-Node: Close Files And Pipes304039
-Ref: Close Files And Pipes-Footnote-1311218
-Ref: Close Files And Pipes-Footnote-2311366
-Node: Output Summary311516
-Node: Output Exercises312512
-Node: Expressions313192
-Node: Values314377
-Node: Constants315053
-Node: Scalar Constants315733
-Ref: Scalar Constants-Footnote-1316592
-Node: Nondecimal-numbers316842
-Node: Regexp Constants319842
-Node: Using Constant Regexps320367
-Node: Variables323505
-Node: Using Variables324160
-Node: Assignment Options326070
-Node: Conversion327945
-Node: Strings And Numbers328469
-Ref: Strings And Numbers-Footnote-1331533
-Node: Locale influences conversions331642
-Ref: table-locale-affects334357
-Node: All Operators334945
-Node: Arithmetic Ops335575
-Node: Concatenation338080
-Ref: Concatenation-Footnote-1340899
-Node: Assignment Ops341005
-Ref: table-assign-ops345988
-Node: Increment Ops347266
-Node: Truth Values and Conditions350704
-Node: Truth Values351787
-Node: Typing and Comparison352836
-Node: Variable Typing353629
-Node: Comparison Operators357281
-Ref: table-relational-ops357691
-Node: POSIX String Comparison361206
-Ref: POSIX String Comparison-Footnote-1362278
-Node: Boolean Ops362416
-Ref: Boolean Ops-Footnote-1366895
-Node: Conditional Exp366986
-Node: Function Calls368713
-Node: Precedence372593
-Node: Locales376261
-Node: Expressions Summary377892
-Node: Patterns and Actions380466
-Node: Pattern Overview381586
-Node: Regexp Patterns383265
-Node: Expression Patterns383808
-Node: Ranges387588
-Node: BEGIN/END390694
-Node: Using BEGIN/END391456
-Ref: Using BEGIN/END-Footnote-1394193
-Node: I/O And BEGIN/END394299
-Node: BEGINFILE/ENDFILE396613
-Node: Empty399514
-Node: Using Shell Variables399831
-Node: Action Overview402107
-Node: Statements404434
-Node: If Statement406282
-Node: While Statement407780
-Node: Do Statement409808
-Node: For Statement410950
-Node: Switch Statement414105
-Node: Break Statement416493
-Node: Continue Statement418534
-Node: Next Statement420359
-Node: Nextfile Statement422739
-Node: Exit Statement425369
-Node: Built-in Variables427772
-Node: User-modified428905
-Ref: User-modified-Footnote-1436585
-Node: Auto-set436647
-Ref: Auto-set-Footnote-1449841
-Ref: Auto-set-Footnote-2450046
-Node: ARGC and ARGV450102
-Node: Pattern Action Summary454306
-Node: Arrays456733
-Node: Array Basics458062
-Node: Array Intro458906
-Ref: figure-array-elements460879
-Ref: Array Intro-Footnote-1463403
-Node: Reference to Elements463531
-Node: Assigning Elements465981
-Node: Array Example466472
-Node: Scanning an Array468230
-Node: Controlling Scanning471246
-Ref: Controlling Scanning-Footnote-1476435
-Node: Numeric Array Subscripts476751
-Node: Uninitialized Subscripts478936
-Node: Delete480553
-Ref: Delete-Footnote-1483297
-Node: Multidimensional483354
-Node: Multiscanning486449
-Node: Arrays of Arrays488038
-Node: Arrays Summary492799
-Node: Functions494904
-Node: Built-in495777
-Node: Calling Built-in496855
-Node: Numeric Functions498843
-Ref: Numeric Functions-Footnote-1503667
-Ref: Numeric Functions-Footnote-2504024
-Ref: Numeric Functions-Footnote-3504072
-Node: String Functions504341
-Ref: String Functions-Footnote-1527805
-Ref: String Functions-Footnote-2527934
-Ref: String Functions-Footnote-3528182
-Node: Gory Details528269
-Ref: table-sub-escapes530050
-Ref: table-sub-proposed531570
-Ref: table-posix-sub532934
-Ref: table-gensub-escapes534474
-Ref: Gory Details-Footnote-1535306
-Node: I/O Functions535457
-Ref: I/O Functions-Footnote-1542558
-Node: Time Functions542705
-Ref: Time Functions-Footnote-1553174
-Ref: Time Functions-Footnote-2553242
-Ref: Time Functions-Footnote-3553400
-Ref: Time Functions-Footnote-4553511
-Ref: Time Functions-Footnote-5553623
-Ref: Time Functions-Footnote-6553850
-Node: Bitwise Functions554116
-Ref: table-bitwise-ops554678
-Ref: Bitwise Functions-Footnote-1558986
-Node: Type Functions559155
-Node: I18N Functions560304
-Node: User-defined561949
-Node: Definition Syntax562753
-Ref: Definition Syntax-Footnote-1568159
-Node: Function Example568228
-Ref: Function Example-Footnote-1571145
-Node: Function Caveats571167
-Node: Calling A Function571685
-Node: Variable Scope572640
-Node: Pass By Value/Reference575628
-Node: Return Statement579138
-Node: Dynamic Typing582122
-Node: Indirect Calls583051
-Ref: Indirect Calls-Footnote-1594355
-Node: Functions Summary594483
-Node: Library Functions597182
-Ref: Library Functions-Footnote-1600800
-Ref: Library Functions-Footnote-2600943
-Node: Library Names601114
-Ref: Library Names-Footnote-1604574
-Ref: Library Names-Footnote-2604794
-Node: General Functions604880
-Node: Strtonum Function605983
-Node: Assert Function609003
-Node: Round Function612327
-Node: Cliff Random Function613868
-Node: Ordinal Functions614884
-Ref: Ordinal Functions-Footnote-1617949
-Ref: Ordinal Functions-Footnote-2618201
-Node: Join Function618412
-Ref: Join Function-Footnote-1620183
-Node: Getlocaltime Function620383
-Node: Readfile Function624124
-Node: Shell Quoting626094
-Node: Data File Management627495
-Node: Filetrans Function628127
-Node: Rewind Function632186
-Node: File Checking633571
-Ref: File Checking-Footnote-1634899
-Node: Empty Files635100
-Node: Ignoring Assigns637079
-Node: Getopt Function638630
-Ref: Getopt Function-Footnote-1650090
-Node: Passwd Functions650293
-Ref: Passwd Functions-Footnote-1659144
-Node: Group Functions659232
-Ref: Group Functions-Footnote-1667135
-Node: Walking Arrays667348
-Node: Library Functions Summary668951
-Node: Library Exercises670352
-Node: Sample Programs671632
-Node: Running Examples672402
-Node: Clones673130
-Node: Cut Program674354
-Node: Egrep Program684084
-Ref: Egrep Program-Footnote-1691588
-Node: Id Program691698
-Node: Split Program695342
-Ref: Split Program-Footnote-1698788
-Node: Tee Program698916
-Node: Uniq Program701703
-Node: Wc Program709124
-Ref: Wc Program-Footnote-1713372
-Node: Miscellaneous Programs713464
-Node: Dupword Program714677
-Node: Alarm Program716708
-Node: Translate Program721512
-Ref: Translate Program-Footnote-1726076
-Node: Labels Program726346
-Ref: Labels Program-Footnote-1729695
-Node: Word Sorting729779
-Node: History Sorting733849
-Node: Extract Program735685
-Node: Simple Sed743217
-Node: Igawk Program746279
-Ref: Igawk Program-Footnote-1760605
-Ref: Igawk Program-Footnote-2760806
-Ref: Igawk Program-Footnote-3760928
-Node: Anagram Program761043
-Node: Signature Program764105
-Node: Programs Summary765352
-Node: Programs Exercises766545
-Ref: Programs Exercises-Footnote-1770676
-Node: Advanced Features770767
-Node: Nondecimal Data772715
-Node: Array Sorting774305
-Node: Controlling Array Traversal775002
-Ref: Controlling Array Traversal-Footnote-1783333
-Node: Array Sorting Functions783451
-Ref: Array Sorting Functions-Footnote-1787343
-Node: Two-way I/O787537
-Ref: Two-way I/O-Footnote-1792481
-Ref: Two-way I/O-Footnote-2792667
-Node: TCP/IP Networking792749
-Node: Profiling795621
-Node: Advanced Features Summary803174
-Node: Internationalization805107
-Node: I18N and L10N806587
-Node: Explaining gettext807273
-Ref: Explaining gettext-Footnote-1812302
-Ref: Explaining gettext-Footnote-2812486
-Node: Programmer i18n812651
-Ref: Programmer i18n-Footnote-1817517
-Node: Translator i18n817566
-Node: String Extraction818360
-Ref: String Extraction-Footnote-1819491
-Node: Printf Ordering819577
-Ref: Printf Ordering-Footnote-1822363
-Node: I18N Portability822427
-Ref: I18N Portability-Footnote-1824876
-Node: I18N Example824939
-Ref: I18N Example-Footnote-1827739
-Node: Gawk I18N827811
-Node: I18N Summary828449
-Node: Debugger829788
-Node: Debugging830810
-Node: Debugging Concepts831251
-Node: Debugging Terms833108
-Node: Awk Debugging835683
-Node: Sample Debugging Session836575
-Node: Debugger Invocation837095
-Node: Finding The Bug838479
-Node: List of Debugger Commands844954
-Node: Breakpoint Control846286
-Node: Debugger Execution Control849978
-Node: Viewing And Changing Data853342
-Node: Execution Stack856707
-Node: Debugger Info858345
-Node: Miscellaneous Debugger Commands862362
-Node: Readline Support867554
-Node: Limitations868446
-Node: Debugging Summary870543
-Node: Arbitrary Precision Arithmetic871711
-Node: Computer Arithmetic873127
-Ref: table-numeric-ranges876728
-Ref: Computer Arithmetic-Footnote-1877587
-Node: Math Definitions877644
-Ref: table-ieee-formats880931
-Ref: Math Definitions-Footnote-1881535
-Node: MPFR features881640
-Node: FP Math Caution883311
-Ref: FP Math Caution-Footnote-1884361
-Node: Inexactness of computations884730
-Node: Inexact representation885678
-Node: Comparing FP Values887033
-Node: Errors accumulate888106
-Node: Getting Accuracy889539
-Node: Try To Round892198
-Node: Setting precision893097
-Ref: table-predefined-precision-strings893781
-Node: Setting the rounding mode895575
-Ref: table-gawk-rounding-modes895939
-Ref: Setting the rounding mode-Footnote-1899393
-Node: Arbitrary Precision Integers899572
-Ref: Arbitrary Precision Integers-Footnote-1904476
-Node: POSIX Floating Point Problems904625
-Ref: POSIX Floating Point Problems-Footnote-1908501
-Node: Floating point summary908539
-Node: Dynamic Extensions910731
-Node: Extension Intro912283
-Node: Plugin License913549
-Node: Extension Mechanism Outline914346
-Ref: figure-load-extension914774
-Ref: figure-register-new-function916254
-Ref: figure-call-new-function917258
-Node: Extension API Description919244
-Node: Extension API Functions Introduction920694
-Node: General Data Types925530
-Ref: General Data Types-Footnote-1931217
-Node: Memory Allocation Functions931516
-Ref: Memory Allocation Functions-Footnote-1934346
-Node: Constructor Functions934442
-Node: Registration Functions936176
-Node: Extension Functions936861
-Node: Exit Callback Functions939157
-Node: Extension Version String940405
-Node: Input Parsers941055
-Node: Output Wrappers950870
-Node: Two-way processors955386
-Node: Printing Messages957590
-Ref: Printing Messages-Footnote-1958667
-Node: Updating `ERRNO'958819
-Node: Requesting Values959559
-Ref: table-value-types-returned960287
-Node: Accessing Parameters961245
-Node: Symbol Table Access962476
-Node: Symbol table by name962990
-Node: Symbol table by cookie964970
-Ref: Symbol table by cookie-Footnote-1969109
-Node: Cached values969172
-Ref: Cached values-Footnote-1972676
-Node: Array Manipulation972767
-Ref: Array Manipulation-Footnote-1973865
-Node: Array Data Types973904
-Ref: Array Data Types-Footnote-1976561
-Node: Array Functions976653
-Node: Flattening Arrays980507
-Node: Creating Arrays987394
-Node: Extension API Variables992161
-Node: Extension Versioning992797
-Node: Extension API Informational Variables994698
-Node: Extension API Boilerplate995786
-Node: Finding Extensions999602
-Node: Extension Example1000162
-Node: Internal File Description1000934
-Node: Internal File Ops1005001
-Ref: Internal File Ops-Footnote-11016659
-Node: Using Internal File Ops1016799
-Ref: Using Internal File Ops-Footnote-11019182
-Node: Extension Samples1019455
-Node: Extension Sample File Functions1020979
-Node: Extension Sample Fnmatch1028581
-Node: Extension Sample Fork1030063
-Node: Extension Sample Inplace1031276
-Node: Extension Sample Ord1032951
-Node: Extension Sample Readdir1033787
-Ref: table-readdir-file-types1034643
-Node: Extension Sample Revout1035454
-Node: Extension Sample Rev2way1036045
-Node: Extension Sample Read write array1036786
-Node: Extension Sample Readfile1038725
-Node: Extension Sample Time1039820
-Node: Extension Sample API Tests1041169
-Node: gawkextlib1041660
-Node: Extension summary1044310
-Node: Extension Exercises1047992
-Node: Language History1048714
-Node: V7/SVR3.11050371
-Node: SVR41052552
-Node: POSIX1053997
-Node: BTL1055386
-Node: POSIX/GNU1056120
-Node: Feature History1061749
-Node: Common Extensions1074840
-Node: Ranges and Locales1076164
-Ref: Ranges and Locales-Footnote-11080803
-Ref: Ranges and Locales-Footnote-21080830
-Ref: Ranges and Locales-Footnote-31081064
-Node: Contributors1081285
-Node: History summary1086825
-Node: Installation1088194
-Node: Gawk Distribution1089150
-Node: Getting1089634
-Node: Extracting1090458
-Node: Distribution contents1092100
-Node: Unix Installation1097870
-Node: Quick Installation1098487
-Node: Additional Configuration Options1100918
-Node: Configuration Philosophy1102658
-Node: Non-Unix Installation1105009
-Node: PC Installation1105467
-Node: PC Binary Installation1106793
-Node: PC Compiling1108641
-Ref: PC Compiling-Footnote-11111662
-Node: PC Testing1111767
-Node: PC Using1112943
-Node: Cygwin1117058
-Node: MSYS1117881
-Node: VMS Installation1118379
-Node: VMS Compilation1119171
-Ref: VMS Compilation-Footnote-11120393
-Node: VMS Dynamic Extensions1120451
-Node: VMS Installation Details1122135
-Node: VMS Running1124387
-Node: VMS GNV1127228
-Node: VMS Old Gawk1127957
-Node: Bugs1128427
-Node: Other Versions1132397
-Node: Installation summary1138610
-Node: Notes1139666
-Node: Compatibility Mode1140531
-Node: Additions1141313
-Node: Accessing The Source1142238
-Node: Adding Code1143674
-Node: New Ports1149846
-Node: Derived Files1154328
-Ref: Derived Files-Footnote-11159803
-Ref: Derived Files-Footnote-21159837
-Ref: Derived Files-Footnote-31160433
-Node: Future Extensions1160547
-Node: Implementation Limitations1161153
-Node: Extension Design1162401
-Node: Old Extension Problems1163555
-Ref: Old Extension Problems-Footnote-11165072
-Node: Extension New Mechanism Goals1165129
-Ref: Extension New Mechanism Goals-Footnote-11168489
-Node: Extension Other Design Decisions1168678
-Node: Extension Future Growth1170786
-Node: Old Extension Mechanism1171622
-Node: Notes summary1173384
-Node: Basic Concepts1174570
-Node: Basic High Level1175251
-Ref: figure-general-flow1175523
-Ref: figure-process-flow1176122
-Ref: Basic High Level-Footnote-11179351
-Node: Basic Data Typing1179536
-Node: Glossary1182864
-Node: Copying1208022
-Node: GNU Free Documentation License1245578
-Node: Index1270714
+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-1129409
+Node: Other Arguments129434
+Node: Naming Standard Input132395
+Node: Environment Variables133488
+Node: AWKPATH Variable134046
+Ref: AWKPATH Variable-Footnote-1136898
+Ref: AWKPATH Variable-Footnote-2136943
+Node: AWKLIBPATH Variable137203
+Node: Other Environment Variables137962
+Node: Exit Status141435
+Node: Include Files142110
+Node: Loading Shared Libraries145688
+Node: Obsolete147115
+Node: Undocumented147812
+Node: Invoking Summary148079
+Node: Regexp149745
+Node: Regexp Usage151204
+Node: Escape Sequences153237
+Node: Regexp Operators159337
+Ref: Regexp Operators-Footnote-1166771
+Ref: Regexp Operators-Footnote-2166918
+Node: Bracket Expressions167016
+Ref: table-char-classes169033
+Node: Leftmost Longest171973
+Node: Computed Regexps173275
+Node: GNU Regexp Operators176672
+Node: Case-sensitivity180374
+Ref: Case-sensitivity-Footnote-1183264
+Ref: Case-sensitivity-Footnote-2183499
+Node: Regexp Summary183607
+Node: Reading Files185076
+Node: Records187170
+Node: awk split records187902
+Node: gawk split records192816
+Ref: gawk split records-Footnote-1197355
+Node: Fields197392
+Ref: Fields-Footnote-1200190
+Node: Nonconstant Fields200276
+Ref: Nonconstant Fields-Footnote-1202512
+Node: Changing Fields202714
+Node: Field Separators208646
+Node: Default Field Splitting211350
+Node: Regexp Field Splitting212467
+Node: Single Character Fields215817
+Node: Command Line Field Separator216876
+Node: Full Line Fields220088
+Ref: Full Line Fields-Footnote-1220596
+Node: Field Splitting Summary220642
+Ref: Field Splitting Summary-Footnote-1223773
+Node: Constant Size223874
+Node: Splitting By Content228480
+Ref: Splitting By Content-Footnote-1232553
+Node: Multiple Line232593
+Ref: Multiple Line-Footnote-1238482
+Node: Getline238661
+Node: Plain Getline240872
+Node: Getline/Variable243512
+Node: Getline/File244659
+Node: Getline/Variable/File246043
+Ref: Getline/Variable/File-Footnote-1247644
+Node: Getline/Pipe247731
+Node: Getline/Variable/Pipe250414
+Node: Getline/Coprocess251545
+Node: Getline/Variable/Coprocess252797
+Node: Getline Notes253536
+Node: Getline Summary256328
+Ref: table-getline-variants256740
+Node: Read Timeout257569
+Ref: Read Timeout-Footnote-1261383
+Node: Command-line directories261441
+Node: Input Summary262345
+Node: Input Exercises265597
+Node: Printing266325
+Node: Print268102
+Node: Print Examples269559
+Node: Output Separators272338
+Node: OFMT274356
+Node: Printf275710
+Node: Basic Printf276495
+Node: Control Letters278066
+Node: Format Modifiers282050
+Node: Printf Examples288057
+Node: Redirection290539
+Node: Special FD297378
+Ref: Special FD-Footnote-1300535
+Node: Special Files300609
+Node: Other Inherited Files301225
+Node: Special Network302225
+Node: Special Caveats303086
+Node: Close Files And Pipes304037
+Ref: Close Files And Pipes-Footnote-1311216
+Ref: Close Files And Pipes-Footnote-2311364
+Node: Output Summary311514
+Node: Output Exercises312510
+Node: Expressions313190
+Node: Values314375
+Node: Constants315051
+Node: Scalar Constants315731
+Ref: Scalar Constants-Footnote-1316590
+Node: Nondecimal-numbers316840
+Node: Regexp Constants319840
+Node: Using Constant Regexps320365
+Node: Variables323503
+Node: Using Variables324158
+Node: Assignment Options326068
+Node: Conversion327943
+Node: Strings And Numbers328467
+Ref: Strings And Numbers-Footnote-1331531
+Node: Locale influences conversions331640
+Ref: table-locale-affects334385
+Node: All Operators334973
+Node: Arithmetic Ops335603
+Node: Concatenation338108
+Ref: Concatenation-Footnote-1340927
+Node: Assignment Ops341033
+Ref: table-assign-ops346016
+Node: Increment Ops347294
+Node: Truth Values and Conditions350732
+Node: Truth Values351815
+Node: Typing and Comparison352864
+Node: Variable Typing353657
+Node: Comparison Operators357309
+Ref: table-relational-ops357719
+Node: POSIX String Comparison361234
+Ref: POSIX String Comparison-Footnote-1362306
+Node: Boolean Ops362444
+Ref: Boolean Ops-Footnote-1366923
+Node: Conditional Exp367014
+Node: Function Calls368741
+Node: Precedence372621
+Node: Locales376289
+Node: Expressions Summary377920
+Node: Patterns and Actions380494
+Node: Pattern Overview381614
+Node: Regexp Patterns383293
+Node: Expression Patterns383836
+Node: Ranges387616
+Node: BEGIN/END390722
+Node: Using BEGIN/END391484
+Ref: Using BEGIN/END-Footnote-1394221
+Node: I/O And BEGIN/END394327
+Node: BEGINFILE/ENDFILE396641
+Node: Empty399542
+Node: Using Shell Variables399859
+Node: Action Overview402135
+Node: Statements404462
+Node: If Statement406310
+Node: While Statement407808
+Node: Do Statement409836
+Node: For Statement410978
+Node: Switch Statement414133
+Node: Break Statement416521
+Node: Continue Statement418562
+Node: Next Statement420387
+Node: Nextfile Statement422767
+Node: Exit Statement425397
+Node: Built-in Variables427800
+Node: User-modified428933
+Ref: User-modified-Footnote-1436613
+Node: Auto-set436675
+Ref: Auto-set-Footnote-1449869
+Ref: Auto-set-Footnote-2450074
+Node: ARGC and ARGV450130
+Node: Pattern Action Summary454334
+Node: Arrays456761
+Node: Array Basics458090
+Node: Array Intro458934
+Ref: figure-array-elements460898
+Ref: Array Intro-Footnote-1463422
+Node: Reference to Elements463550
+Node: Assigning Elements466000
+Node: Array Example466491
+Node: Scanning an Array468249
+Node: Controlling Scanning471265
+Ref: Controlling Scanning-Footnote-1476454
+Node: Numeric Array Subscripts476770
+Node: Uninitialized Subscripts478955
+Node: Delete480572
+Ref: Delete-Footnote-1483316
+Node: Multidimensional483373
+Node: Multiscanning486468
+Node: Arrays of Arrays488057
+Node: Arrays Summary492818
+Node: Functions494923
+Node: Built-in495796
+Node: Calling Built-in496874
+Node: Numeric Functions498862
+Ref: Numeric Functions-Footnote-1503686
+Ref: Numeric Functions-Footnote-2504043
+Ref: Numeric Functions-Footnote-3504091
+Node: String Functions504360
+Ref: String Functions-Footnote-1527832
+Ref: String Functions-Footnote-2527961
+Ref: String Functions-Footnote-3528209
+Node: Gory Details528296
+Ref: table-sub-escapes530077
+Ref: table-sub-proposed531597
+Ref: table-posix-sub532961
+Ref: table-gensub-escapes534501
+Ref: Gory Details-Footnote-1535333
+Node: I/O Functions535484
+Ref: I/O Functions-Footnote-1542585
+Node: Time Functions542732
+Ref: Time Functions-Footnote-1553201
+Ref: Time Functions-Footnote-2553269
+Ref: Time Functions-Footnote-3553427
+Ref: Time Functions-Footnote-4553538
+Ref: Time Functions-Footnote-5553650
+Ref: Time Functions-Footnote-6553877
+Node: Bitwise Functions554143
+Ref: table-bitwise-ops554705
+Ref: Bitwise Functions-Footnote-1559013
+Node: Type Functions559182
+Node: I18N Functions560331
+Node: User-defined561976
+Node: Definition Syntax562780
+Ref: Definition Syntax-Footnote-1568186
+Node: Function Example568255
+Ref: Function Example-Footnote-1571172
+Node: Function Caveats571194
+Node: Calling A Function571712
+Node: Variable Scope572667
+Node: Pass By Value/Reference575655
+Node: Return Statement579165
+Node: Dynamic Typing582149
+Node: Indirect Calls583078
+Ref: Indirect Calls-Footnote-1594382
+Node: Functions Summary594510
+Node: Library Functions597209
+Ref: Library Functions-Footnote-1600827
+Ref: Library Functions-Footnote-2600970
+Node: Library Names601141
+Ref: Library Names-Footnote-1604601
+Ref: Library Names-Footnote-2604821
+Node: General Functions604907
+Node: Strtonum Function606010
+Node: Assert Function609030
+Node: Round Function612354
+Node: Cliff Random Function613895
+Node: Ordinal Functions614911
+Ref: Ordinal Functions-Footnote-1617976
+Ref: Ordinal Functions-Footnote-2618228
+Node: Join Function618439
+Ref: Join Function-Footnote-1620210
+Node: Getlocaltime Function620410
+Node: Readfile Function624151
+Node: Shell Quoting626121
+Node: Data File Management627522
+Node: Filetrans Function628154
+Node: Rewind Function632213
+Node: File Checking633598
+Ref: File Checking-Footnote-1634926
+Node: Empty Files635127
+Node: Ignoring Assigns637106
+Node: Getopt Function638657
+Ref: Getopt Function-Footnote-1650117
+Node: Passwd Functions650320
+Ref: Passwd Functions-Footnote-1659171
+Node: Group Functions659259
+Ref: Group Functions-Footnote-1667162
+Node: Walking Arrays667375
+Node: Library Functions Summary668978
+Node: Library Exercises670379
+Node: Sample Programs671659
+Node: Running Examples672429
+Node: Clones673157
+Node: Cut Program674381
+Node: Egrep Program684111
+Ref: Egrep Program-Footnote-1691615
+Node: Id Program691725
+Node: Split Program695369
+Ref: Split Program-Footnote-1698815
+Node: Tee Program698943
+Node: Uniq Program701730
+Node: Wc Program709151
+Ref: Wc Program-Footnote-1713399
+Node: Miscellaneous Programs713491
+Node: Dupword Program714704
+Node: Alarm Program716735
+Node: Translate Program721539
+Ref: Translate Program-Footnote-1726103
+Node: Labels Program726373
+Ref: Labels Program-Footnote-1729722
+Node: Word Sorting729806
+Node: History Sorting733876
+Node: Extract Program735712
+Node: Simple Sed743244
+Node: Igawk Program746306
+Ref: Igawk Program-Footnote-1760632
+Ref: Igawk Program-Footnote-2760833
+Ref: Igawk Program-Footnote-3760955
+Node: Anagram Program761070
+Node: Signature Program764132
+Node: Programs Summary765379
+Node: Programs Exercises766572
+Ref: Programs Exercises-Footnote-1770703
+Node: Advanced Features770794
+Node: Nondecimal Data772742
+Node: Array Sorting774332
+Node: Controlling Array Traversal775029
+Ref: Controlling Array Traversal-Footnote-1783360
+Node: Array Sorting Functions783478
+Ref: Array Sorting Functions-Footnote-1787370
+Node: Two-way I/O787564
+Ref: Two-way I/O-Footnote-1792508
+Ref: Two-way I/O-Footnote-2792694
+Node: TCP/IP Networking792776
+Node: Profiling795648
+Node: Advanced Features Summary803201
+Node: Internationalization805134
+Node: I18N and L10N806614
+Node: Explaining gettext807300
+Ref: Explaining gettext-Footnote-1812329
+Ref: Explaining gettext-Footnote-2812513
+Node: Programmer i18n812678
+Ref: Programmer i18n-Footnote-1817544
+Node: Translator i18n817593
+Node: String Extraction818387
+Ref: String Extraction-Footnote-1819518
+Node: Printf Ordering819604
+Ref: Printf Ordering-Footnote-1822390
+Node: I18N Portability822454
+Ref: I18N Portability-Footnote-1824903
+Node: I18N Example824966
+Ref: I18N Example-Footnote-1827766
+Node: Gawk I18N827838
+Node: I18N Summary828476
+Node: Debugger829815
+Node: Debugging830837
+Node: Debugging Concepts831278
+Node: Debugging Terms833135
+Node: Awk Debugging835710
+Node: Sample Debugging Session836602
+Node: Debugger Invocation837122
+Node: Finding The Bug838506
+Node: List of Debugger Commands844981
+Node: Breakpoint Control846313
+Node: Debugger Execution Control850005
+Node: Viewing And Changing Data853369
+Node: Execution Stack856734
+Node: Debugger Info858372
+Node: Miscellaneous Debugger Commands862389
+Node: Readline Support867581
+Node: Limitations868473
+Node: Debugging Summary870570
+Node: Arbitrary Precision Arithmetic871738
+Node: Computer Arithmetic873154
+Ref: table-numeric-ranges876755
+Ref: Computer Arithmetic-Footnote-1877614
+Node: Math Definitions877671
+Ref: table-ieee-formats880958
+Ref: Math Definitions-Footnote-1881562
+Node: MPFR features881667
+Node: FP Math Caution883338
+Ref: FP Math Caution-Footnote-1884388
+Node: Inexactness of computations884757
+Node: Inexact representation885705
+Node: Comparing FP Values887060
+Node: Errors accumulate888133
+Node: Getting Accuracy889566
+Node: Try To Round892225
+Node: Setting precision893124
+Ref: table-predefined-precision-strings893808
+Node: Setting the rounding mode895602
+Ref: table-gawk-rounding-modes895966
+Ref: Setting the rounding mode-Footnote-1899420
+Node: Arbitrary Precision Integers899599
+Ref: Arbitrary Precision Integers-Footnote-1904503
+Node: POSIX Floating Point Problems904652
+Ref: POSIX Floating Point Problems-Footnote-1908528
+Node: Floating point summary908566
+Node: Dynamic Extensions910758
+Node: Extension Intro912310
+Node: Plugin License913576
+Node: Extension Mechanism Outline914373
+Ref: figure-load-extension914801
+Ref: figure-register-new-function916281
+Ref: figure-call-new-function917285
+Node: Extension API Description919271
+Node: Extension API Functions Introduction920721
+Node: General Data Types925557
+Ref: General Data Types-Footnote-1931244
+Node: Memory Allocation Functions931543
+Ref: Memory Allocation Functions-Footnote-1934373
+Node: Constructor Functions934469
+Node: Registration Functions936203
+Node: Extension Functions936888
+Node: Exit Callback Functions939184
+Node: Extension Version String940432
+Node: Input Parsers941082
+Node: Output Wrappers950897
+Node: Two-way processors955413
+Node: Printing Messages957617
+Ref: Printing Messages-Footnote-1958694
+Node: Updating `ERRNO'958846
+Node: Requesting Values959586
+Ref: table-value-types-returned960314
+Node: Accessing Parameters961272
+Node: Symbol Table Access962503
+Node: Symbol table by name963017
+Node: Symbol table by cookie964997
+Ref: Symbol table by cookie-Footnote-1969136
+Node: Cached values969199
+Ref: Cached values-Footnote-1972703
+Node: Array Manipulation972794
+Ref: Array Manipulation-Footnote-1973892
+Node: Array Data Types973931
+Ref: Array Data Types-Footnote-1976588
+Node: Array Functions976680
+Node: Flattening Arrays980534
+Node: Creating Arrays987421
+Node: Extension API Variables992188
+Node: Extension Versioning992824
+Node: Extension API Informational Variables994725
+Node: Extension API Boilerplate995813
+Node: Finding Extensions999629
+Node: Extension Example1000189
+Node: Internal File Description1000961
+Node: Internal File Ops1005028
+Ref: Internal File Ops-Footnote-11016686
+Node: Using Internal File Ops1016826
+Ref: Using Internal File Ops-Footnote-11019209
+Node: Extension Samples1019482
+Node: Extension Sample File Functions1021006
+Node: Extension Sample Fnmatch1028608
+Node: Extension Sample Fork1030090
+Node: Extension Sample Inplace1031303
+Node: Extension Sample Ord1032978
+Node: Extension Sample Readdir1033814
+Ref: table-readdir-file-types1034670
+Node: Extension Sample Revout1035481
+Node: Extension Sample Rev2way1036072
+Node: Extension Sample Read write array1036813
+Node: Extension Sample Readfile1038752
+Node: Extension Sample Time1039847
+Node: Extension Sample API Tests1041196
+Node: gawkextlib1041687
+Node: Extension summary1044337
+Node: Extension Exercises1048019
+Node: Language History1048741
+Node: V7/SVR3.11050398
+Node: SVR41052579
+Node: POSIX1054024
+Node: BTL1055413
+Node: POSIX/GNU1056147
+Node: Feature History1061776
+Node: Common Extensions1074867
+Node: Ranges and Locales1076191
+Ref: Ranges and Locales-Footnote-11080830
+Ref: Ranges and Locales-Footnote-21080857
+Ref: Ranges and Locales-Footnote-31081091
+Node: Contributors1081312
+Node: History summary1086852
+Node: Installation1088221
+Node: Gawk Distribution1089177
+Node: Getting1089661
+Node: Extracting1090485
+Node: Distribution contents1092127
+Node: Unix Installation1097897
+Node: Quick Installation1098514
+Node: Additional Configuration Options1100945
+Node: Configuration Philosophy1102685
+Node: Non-Unix Installation1105036
+Node: PC Installation1105494
+Node: PC Binary Installation1106820
+Node: PC Compiling1108668
+Ref: PC Compiling-Footnote-11111689
+Node: PC Testing1111794
+Node: PC Using1112970
+Node: Cygwin1117085
+Node: MSYS1117908
+Node: VMS Installation1118406
+Node: VMS Compilation1119198
+Ref: VMS Compilation-Footnote-11120420
+Node: VMS Dynamic Extensions1120478
+Node: VMS Installation Details1122162
+Node: VMS Running1124414
+Node: VMS GNV1127255
+Node: VMS Old Gawk1127989
+Node: Bugs1128459
+Node: Other Versions1132429
+Node: Installation summary1138642
+Node: Notes1139698
+Node: Compatibility Mode1140563
+Node: Additions1141345
+Node: Accessing The Source1142270
+Node: Adding Code1143706
+Node: New Ports1149878
+Node: Derived Files1154360
+Ref: Derived Files-Footnote-11159835
+Ref: Derived Files-Footnote-21159869
+Ref: Derived Files-Footnote-31160465
+Node: Future Extensions1160579
+Node: Implementation Limitations1161185
+Node: Extension Design1162433
+Node: Old Extension Problems1163587
+Ref: Old Extension Problems-Footnote-11165104
+Node: Extension New Mechanism Goals1165161
+Ref: Extension New Mechanism Goals-Footnote-11168521
+Node: Extension Other Design Decisions1168710
+Node: Extension Future Growth1170818
+Node: Old Extension Mechanism1171654
+Node: Notes summary1173416
+Node: Basic Concepts1174602
+Node: Basic High Level1175283
+Ref: figure-general-flow1175555
+Ref: figure-process-flow1176154
+Ref: Basic High Level-Footnote-11179383
+Node: Basic Data Typing1179568
+Node: Glossary1182896
+Node: Copying1208054
+Node: GNU Free Documentation License1245610
+Node: Index1270746

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 5b8cea20..5b3fc927 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
@@ -5967,7 +5975,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.
@@ -6683,7 +6691,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.
@@ -11027,7 +11035,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
@@ -15389,7 +15397,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,
@@ -17183,7 +17191,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}
@@ -25736,7 +25744,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
@@ -35133,7 +35141,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}()}.
@@ -35184,7 +35192,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
@@ -38143,8 +38151,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 0ff06880..86655116 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
@@ -5751,7 +5759,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.
@@ -6410,7 +6418,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.
@@ -10467,7 +10475,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
@@ -14673,7 +14681,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,
@@ -16467,7 +16475,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}
@@ -24830,7 +24838,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
@@ -34243,7 +34251,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}()}.
@@ -34294,7 +34302,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
@@ -37253,8 +37261,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/test/ChangeLog b/test/ChangeLog
index 96ba6ad2..3c4a386f 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-05 Arnold D. Robbins <arnold@skeeve.com>
+
+ * profile2.ok, profile3.ok, profile4.ok, profile5.ok:
+ Adjusted after minor code change. Again.
+
2014-10-04 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (genpot): New test.