aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-12-24 19:39:05 +0200
committerArnold D. Robbins <arnold@skeeve.com>2014-12-24 19:39:05 +0200
commit06e47b84ed3eb2ec562ee9910d192853f351a0bc (patch)
treea95207916c487eeec199ab15e921d64f1bfc6836
parent769d7886cceec048dcd4aa67236b5971891418c3 (diff)
downloadegawk-06e47b84ed3eb2ec562ee9910d192853f351a0bc.tar.gz
egawk-06e47b84ed3eb2ec562ee9910d192853f351a0bc.tar.bz2
egawk-06e47b84ed3eb2ec562ee9910d192853f351a0bc.zip
Update foreword from Mike Brennan.
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1109
-rw-r--r--doc/gawk.texi3
-rw-r--r--doc/gawktexi.in3
4 files changed, 566 insertions, 553 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index ede811ef..47dd656f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Add one more paragraph to new foreword.
+
2014-12-12 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Minor fix.
diff --git a/doc/gawk.info b/doc/gawk.info
index d6fccecd..0224c7d5 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -797,6 +797,9 @@ module loads the C/C++ module as a dynamic plug-in. *note Dynamic
Extensions::, has all the details, and as expected, many examples to
help you learn the ins and outs.
+ I enjoy programming in AWK and had fun (re)reading this book. I
+think you will too.
+
Michael Brennan
Author of `mawk'
October 2014
@@ -31853,7 +31856,7 @@ Index
* Brennan, Michael <2>: Simple Sed. (line 25)
* Brennan, Michael <3>: Delete. (line 56)
* Brennan, Michael <4>: Acknowledgments. (line 78)
-* Brennan, Michael <5>: Foreword4. (line 30)
+* Brennan, Michael <5>: Foreword4. (line 33)
* Brennan, Michael: Foreword3. (line 84)
* Brian Kernighan's awk <1>: I/O Functions. (line 43)
* Brian Kernighan's awk <2>: Gory Details. (line 19)
@@ -34299,557 +34302,557 @@ Tag Table:
Node: Top1204
Node: Foreword342156
Node: Foreword446598
-Node: Preface48031
-Ref: Preface-Footnote-150902
-Ref: Preface-Footnote-251009
-Ref: Preface-Footnote-351242
-Node: History51384
-Node: Names53730
-Ref: Names-Footnote-154824
-Node: This Manual54970
-Ref: This Manual-Footnote-161457
-Node: Conventions61557
-Node: Manual History63895
-Ref: Manual History-Footnote-166877
-Ref: Manual History-Footnote-266918
-Node: How To Contribute66992
-Node: Acknowledgments68121
-Node: Getting Started72926
-Node: Running gawk75359
-Node: One-shot76549
-Node: Read Terminal77797
-Node: Long79824
-Node: Executable Scripts81340
-Ref: Executable Scripts-Footnote-184129
-Node: Comments84232
-Node: Quoting86714
-Node: DOS Quoting92238
-Node: Sample Data Files92913
-Node: Very Simple95508
-Node: Two Rules100406
-Node: More Complex102292
-Node: Statements/Lines105154
-Ref: Statements/Lines-Footnote-1109609
-Node: Other Features109874
-Node: When110805
-Ref: When-Footnote-1112559
-Node: Intro Summary112624
-Node: Invoking Gawk113507
-Node: Command Line115021
-Node: Options115819
-Ref: Options-Footnote-1131752
-Ref: Options-Footnote-2131981
-Node: Other Arguments132006
-Node: Naming Standard Input134954
-Node: Environment Variables136047
-Node: AWKPATH Variable136605
-Ref: AWKPATH Variable-Footnote-1139908
-Ref: AWKPATH Variable-Footnote-2139953
-Node: AWKLIBPATH Variable140213
-Node: Other Environment Variables141356
-Node: Exit Status145084
-Node: Include Files145760
-Node: Loading Shared Libraries149357
-Node: Obsolete150784
-Node: Undocumented151481
-Node: Invoking Summary151748
-Node: Regexp153412
-Node: Regexp Usage154866
-Node: Escape Sequences156903
-Node: Regexp Operators162914
-Ref: Regexp Operators-Footnote-1170340
-Ref: Regexp Operators-Footnote-2170487
-Node: Bracket Expressions170585
-Ref: table-char-classes172600
-Node: Leftmost Longest175524
-Node: Computed Regexps176826
-Node: GNU Regexp Operators180223
-Node: Case-sensitivity183896
-Ref: Case-sensitivity-Footnote-1186781
-Ref: Case-sensitivity-Footnote-2187016
-Node: Regexp Summary187124
-Node: Reading Files188591
-Node: Records190685
-Node: awk split records191418
-Node: gawk split records196333
-Ref: gawk split records-Footnote-1200877
-Node: Fields200914
-Ref: Fields-Footnote-1203690
-Node: Nonconstant Fields203776
-Ref: Nonconstant Fields-Footnote-1206019
-Node: Changing Fields206223
-Node: Field Separators212152
-Node: Default Field Splitting214857
-Node: Regexp Field Splitting215974
-Node: Single Character Fields219324
-Node: Command Line Field Separator220383
-Node: Full Line Fields223595
-Ref: Full Line Fields-Footnote-1225112
-Ref: Full Line Fields-Footnote-2225158
-Node: Field Splitting Summary225259
-Node: Constant Size227333
-Node: Splitting By Content231922
-Ref: Splitting By Content-Footnote-1235916
-Node: Multiple Line236079
-Ref: Multiple Line-Footnote-1241965
-Node: Getline242144
-Node: Plain Getline244356
-Node: Getline/Variable246996
-Node: Getline/File248144
-Node: Getline/Variable/File249528
-Ref: Getline/Variable/File-Footnote-1251131
-Node: Getline/Pipe251218
-Node: Getline/Variable/Pipe253901
-Node: Getline/Coprocess255032
-Node: Getline/Variable/Coprocess256284
-Node: Getline Notes257023
-Node: Getline Summary259815
-Ref: table-getline-variants260227
-Node: Read Timeout261056
-Ref: Read Timeout-Footnote-1264881
-Node: Command-line directories264939
-Node: Input Summary265844
-Node: Input Exercises269145
-Node: Printing269873
-Node: Print271650
-Node: Print Examples273107
-Node: Output Separators275886
-Node: OFMT277904
-Node: Printf279258
-Node: Basic Printf280043
-Node: Control Letters281613
-Node: Format Modifiers285596
-Node: Printf Examples291605
-Node: Redirection294091
-Node: Special FD300932
-Ref: Special FD-Footnote-1304092
-Node: Special Files304166
-Node: Other Inherited Files304783
-Node: Special Network305783
-Node: Special Caveats306645
-Node: Close Files And Pipes307596
-Ref: Close Files And Pipes-Footnote-1314778
-Ref: Close Files And Pipes-Footnote-2314926
-Node: Output Summary315076
-Node: Output Exercises316074
-Node: Expressions316754
-Node: Values317939
-Node: Constants318617
-Node: Scalar Constants319308
-Ref: Scalar Constants-Footnote-1320167
-Node: Nondecimal-numbers320417
-Node: Regexp Constants323435
-Node: Using Constant Regexps323960
-Node: Variables327103
-Node: Using Variables327758
-Node: Assignment Options329669
-Node: Conversion331544
-Node: Strings And Numbers332068
-Ref: Strings And Numbers-Footnote-1335133
-Node: Locale influences conversions335242
-Ref: table-locale-affects337989
-Node: All Operators338577
-Node: Arithmetic Ops339207
-Node: Concatenation341712
-Ref: Concatenation-Footnote-1344531
-Node: Assignment Ops344637
-Ref: table-assign-ops349616
-Node: Increment Ops350888
-Node: Truth Values and Conditions354326
-Node: Truth Values355411
-Node: Typing and Comparison356460
-Node: Variable Typing357270
-Node: Comparison Operators360923
-Ref: table-relational-ops361333
-Node: POSIX String Comparison364828
-Ref: POSIX String Comparison-Footnote-1365900
-Node: Boolean Ops366038
-Ref: Boolean Ops-Footnote-1370517
-Node: Conditional Exp370608
-Node: Function Calls372335
-Node: Precedence376215
-Node: Locales379876
-Node: Expressions Summary381508
-Node: Patterns and Actions384068
-Node: Pattern Overview385188
-Node: Regexp Patterns386867
-Node: Expression Patterns387410
-Node: Ranges391120
-Node: BEGIN/END394226
-Node: Using BEGIN/END394987
-Ref: Using BEGIN/END-Footnote-1397721
-Node: I/O And BEGIN/END397827
-Node: BEGINFILE/ENDFILE400141
-Node: Empty403042
-Node: Using Shell Variables403359
-Node: Action Overview405632
-Node: Statements407958
-Node: If Statement409806
-Node: While Statement411301
-Node: Do Statement413330
-Node: For Statement414474
-Node: Switch Statement417631
-Node: Break Statement420013
-Node: Continue Statement422054
-Node: Next Statement423881
-Node: Nextfile Statement426262
-Node: Exit Statement428892
-Node: Built-in Variables431295
-Node: User-modified432428
-Ref: User-modified-Footnote-1440109
-Node: Auto-set440171
-Ref: Auto-set-Footnote-1453206
-Ref: Auto-set-Footnote-2453411
-Node: ARGC and ARGV453467
-Node: Pattern Action Summary457685
-Node: Arrays460112
-Node: Array Basics461441
-Node: Array Intro462285
-Ref: figure-array-elements464249
-Ref: Array Intro-Footnote-1466775
-Node: Reference to Elements466903
-Node: Assigning Elements469355
-Node: Array Example469846
-Node: Scanning an Array471604
-Node: Controlling Scanning474620
-Ref: Controlling Scanning-Footnote-1479816
-Node: Numeric Array Subscripts480132
-Node: Uninitialized Subscripts482317
-Node: Delete483934
-Ref: Delete-Footnote-1486677
-Node: Multidimensional486734
-Node: Multiscanning489831
-Node: Arrays of Arrays491420
-Node: Arrays Summary496179
-Node: Functions498271
-Node: Built-in499170
-Node: Calling Built-in500248
-Node: Numeric Functions502239
-Ref: Numeric Functions-Footnote-1506256
-Ref: Numeric Functions-Footnote-2506613
-Ref: Numeric Functions-Footnote-3506661
-Node: String Functions506933
-Ref: String Functions-Footnote-1530408
-Ref: String Functions-Footnote-2530537
-Ref: String Functions-Footnote-3530785
-Node: Gory Details530872
-Ref: table-sub-escapes532653
-Ref: table-sub-proposed534173
-Ref: table-posix-sub535537
-Ref: table-gensub-escapes537073
-Ref: Gory Details-Footnote-1537905
-Node: I/O Functions538056
-Ref: I/O Functions-Footnote-1545274
-Node: Time Functions545421
-Ref: Time Functions-Footnote-1555909
-Ref: Time Functions-Footnote-2555977
-Ref: Time Functions-Footnote-3556135
-Ref: Time Functions-Footnote-4556246
-Ref: Time Functions-Footnote-5556358
-Ref: Time Functions-Footnote-6556585
-Node: Bitwise Functions556851
-Ref: table-bitwise-ops557413
-Ref: Bitwise Functions-Footnote-1561722
-Node: Type Functions561891
-Node: I18N Functions563042
-Node: User-defined564687
-Node: Definition Syntax565492
-Ref: Definition Syntax-Footnote-1570899
-Node: Function Example570970
-Ref: Function Example-Footnote-1573889
-Node: Function Caveats573911
-Node: Calling A Function574429
-Node: Variable Scope575387
-Node: Pass By Value/Reference578375
-Node: Return Statement581870
-Node: Dynamic Typing584851
-Node: Indirect Calls585780
-Ref: Indirect Calls-Footnote-1597082
-Node: Functions Summary597210
-Node: Library Functions599912
-Ref: Library Functions-Footnote-1603521
-Ref: Library Functions-Footnote-2603664
-Node: Library Names603835
-Ref: Library Names-Footnote-1607289
-Ref: Library Names-Footnote-2607512
-Node: General Functions607598
-Node: Strtonum Function608701
-Node: Assert Function611723
-Node: Round Function615047
-Node: Cliff Random Function616588
-Node: Ordinal Functions617604
-Ref: Ordinal Functions-Footnote-1620667
-Ref: Ordinal Functions-Footnote-2620919
-Node: Join Function621130
-Ref: Join Function-Footnote-1622899
-Node: Getlocaltime Function623099
-Node: Readfile Function626843
-Node: Shell Quoting628813
-Node: Data File Management630214
-Node: Filetrans Function630846
-Node: Rewind Function634902
-Node: File Checking636289
-Ref: File Checking-Footnote-1637621
-Node: Empty Files637822
-Node: Ignoring Assigns639801
-Node: Getopt Function641352
-Ref: Getopt Function-Footnote-1652814
-Node: Passwd Functions653014
-Ref: Passwd Functions-Footnote-1661851
-Node: Group Functions661939
-Ref: Group Functions-Footnote-1669833
-Node: Walking Arrays670046
-Node: Library Functions Summary671649
-Node: Library Exercises673050
-Node: Sample Programs674330
-Node: Running Examples675100
-Node: Clones675828
-Node: Cut Program677052
-Node: Egrep Program686771
-Ref: Egrep Program-Footnote-1694269
-Node: Id Program694379
-Node: Split Program698024
-Ref: Split Program-Footnote-1701472
-Node: Tee Program701600
-Node: Uniq Program704389
-Node: Wc Program711808
-Ref: Wc Program-Footnote-1716058
-Node: Miscellaneous Programs716152
-Node: Dupword Program717365
-Node: Alarm Program719396
-Node: Translate Program724200
-Ref: Translate Program-Footnote-1728765
-Node: Labels Program729035
-Ref: Labels Program-Footnote-1732386
-Node: Word Sorting732470
-Node: History Sorting736541
-Node: Extract Program738377
-Node: Simple Sed745902
-Node: Igawk Program748970
-Ref: Igawk Program-Footnote-1763294
-Ref: Igawk Program-Footnote-2763495
-Ref: Igawk Program-Footnote-3763617
-Node: Anagram Program763732
-Node: Signature Program766789
-Node: Programs Summary768036
-Node: Programs Exercises769229
-Ref: Programs Exercises-Footnote-1773360
-Node: Advanced Features773451
-Node: Nondecimal Data775399
-Node: Array Sorting776989
-Node: Controlling Array Traversal777686
-Ref: Controlling Array Traversal-Footnote-1786019
-Node: Array Sorting Functions786137
-Ref: Array Sorting Functions-Footnote-1790026
-Node: Two-way I/O790222
-Ref: Two-way I/O-Footnote-1795167
-Ref: Two-way I/O-Footnote-2795353
-Node: TCP/IP Networking795435
-Node: Profiling798308
-Node: Advanced Features Summary805855
-Node: Internationalization807788
-Node: I18N and L10N809268
-Node: Explaining gettext809954
-Ref: Explaining gettext-Footnote-1814979
-Ref: Explaining gettext-Footnote-2815163
-Node: Programmer i18n815328
-Ref: Programmer i18n-Footnote-1820194
-Node: Translator i18n820243
-Node: String Extraction821037
-Ref: String Extraction-Footnote-1822168
-Node: Printf Ordering822254
-Ref: Printf Ordering-Footnote-1825040
-Node: I18N Portability825104
-Ref: I18N Portability-Footnote-1827559
-Node: I18N Example827622
-Ref: I18N Example-Footnote-1830425
-Node: Gawk I18N830497
-Node: I18N Summary831135
-Node: Debugger832474
-Node: Debugging833496
-Node: Debugging Concepts833937
-Node: Debugging Terms835790
-Node: Awk Debugging838362
-Node: Sample Debugging Session839256
-Node: Debugger Invocation839776
-Node: Finding The Bug841160
-Node: List of Debugger Commands847635
-Node: Breakpoint Control848968
-Node: Debugger Execution Control852664
-Node: Viewing And Changing Data856028
-Node: Execution Stack859406
-Node: Debugger Info861043
-Node: Miscellaneous Debugger Commands865060
-Node: Readline Support870089
-Node: Limitations870981
-Node: Debugging Summary873095
-Node: Arbitrary Precision Arithmetic874263
-Node: Computer Arithmetic875679
-Ref: table-numeric-ranges879277
-Ref: Computer Arithmetic-Footnote-1880136
-Node: Math Definitions880193
-Ref: table-ieee-formats883481
-Ref: Math Definitions-Footnote-1884085
-Node: MPFR features884190
-Node: FP Math Caution885861
-Ref: FP Math Caution-Footnote-1886911
-Node: Inexactness of computations887280
-Node: Inexact representation888239
-Node: Comparing FP Values889596
-Node: Errors accumulate890678
-Node: Getting Accuracy892111
-Node: Try To Round894773
-Node: Setting precision895672
-Ref: table-predefined-precision-strings896356
-Node: Setting the rounding mode898145
-Ref: table-gawk-rounding-modes898509
-Ref: Setting the rounding mode-Footnote-1901964
-Node: Arbitrary Precision Integers902143
-Ref: Arbitrary Precision Integers-Footnote-1905129
-Node: POSIX Floating Point Problems905278
-Ref: POSIX Floating Point Problems-Footnote-1909151
-Node: Floating point summary909189
-Node: Dynamic Extensions911383
-Node: Extension Intro912935
-Node: Plugin License914201
-Node: Extension Mechanism Outline914998
-Ref: figure-load-extension915426
-Ref: figure-register-new-function916906
-Ref: figure-call-new-function917910
-Node: Extension API Description919896
-Node: Extension API Functions Introduction921346
-Node: General Data Types926170
-Ref: General Data Types-Footnote-1931909
-Node: Memory Allocation Functions932208
-Ref: Memory Allocation Functions-Footnote-1935047
-Node: Constructor Functions935143
-Node: Registration Functions936877
-Node: Extension Functions937562
-Node: Exit Callback Functions939859
-Node: Extension Version String941107
-Node: Input Parsers941772
-Node: Output Wrappers951651
-Node: Two-way processors956166
-Node: Printing Messages958370
-Ref: Printing Messages-Footnote-1959446
-Node: Updating `ERRNO'959598
-Node: Requesting Values960338
-Ref: table-value-types-returned961066
-Node: Accessing Parameters962023
-Node: Symbol Table Access963254
-Node: Symbol table by name963768
-Node: Symbol table by cookie965749
-Ref: Symbol table by cookie-Footnote-1969893
-Node: Cached values969956
-Ref: Cached values-Footnote-1973455
-Node: Array Manipulation973546
-Ref: Array Manipulation-Footnote-1974644
-Node: Array Data Types974681
-Ref: Array Data Types-Footnote-1977336
-Node: Array Functions977428
-Node: Flattening Arrays981282
-Node: Creating Arrays988174
-Node: Extension API Variables992945
-Node: Extension Versioning993581
-Node: Extension API Informational Variables995482
-Node: Extension API Boilerplate996547
-Node: Finding Extensions1000356
-Node: Extension Example1000916
-Node: Internal File Description1001688
-Node: Internal File Ops1005755
-Ref: Internal File Ops-Footnote-11017425
-Node: Using Internal File Ops1017565
-Ref: Using Internal File Ops-Footnote-11019948
-Node: Extension Samples1020221
-Node: Extension Sample File Functions1021747
-Node: Extension Sample Fnmatch1029385
-Node: Extension Sample Fork1030876
-Node: Extension Sample Inplace1032091
-Node: Extension Sample Ord1033766
-Node: Extension Sample Readdir1034602
-Ref: table-readdir-file-types1035478
-Node: Extension Sample Revout1036289
-Node: Extension Sample Rev2way1036879
-Node: Extension Sample Read write array1037619
-Node: Extension Sample Readfile1039559
-Node: Extension Sample Time1040654
-Node: Extension Sample API Tests1042003
-Node: gawkextlib1042494
-Node: Extension summary1045152
-Node: Extension Exercises1048841
-Node: Language History1049563
-Node: V7/SVR3.11051219
-Node: SVR41053400
-Node: POSIX1054845
-Node: BTL1056234
-Node: POSIX/GNU1056968
-Node: Feature History1062532
-Node: Common Extensions1075630
-Node: Ranges and Locales1076954
-Ref: Ranges and Locales-Footnote-11081572
-Ref: Ranges and Locales-Footnote-21081599
-Ref: Ranges and Locales-Footnote-31081833
-Node: Contributors1082054
-Node: History summary1087595
-Node: Installation1088965
-Node: Gawk Distribution1089911
-Node: Getting1090395
-Node: Extracting1091218
-Node: Distribution contents1092853
-Node: Unix Installation1098570
-Node: Quick Installation1099187
-Node: Additional Configuration Options1101611
-Node: Configuration Philosophy1103349
-Node: Non-Unix Installation1105718
-Node: PC Installation1106176
-Node: PC Binary Installation1107495
-Node: PC Compiling1109343
-Ref: PC Compiling-Footnote-11112364
-Node: PC Testing1112473
-Node: PC Using1113649
-Node: Cygwin1117764
-Node: MSYS1118587
-Node: VMS Installation1119087
-Node: VMS Compilation1119879
-Ref: VMS Compilation-Footnote-11121101
-Node: VMS Dynamic Extensions1121159
-Node: VMS Installation Details1122843
-Node: VMS Running1125095
-Node: VMS GNV1127931
-Node: VMS Old Gawk1128665
-Node: Bugs1129135
-Node: Other Versions1133018
-Node: Installation summary1139446
-Node: Notes1140502
-Node: Compatibility Mode1141367
-Node: Additions1142149
-Node: Accessing The Source1143074
-Node: Adding Code1144510
-Node: New Ports1150675
-Node: Derived Files1155157
-Ref: Derived Files-Footnote-11160632
-Ref: Derived Files-Footnote-21160666
-Ref: Derived Files-Footnote-31161262
-Node: Future Extensions1161376
-Node: Implementation Limitations1161982
-Node: Extension Design1163230
-Node: Old Extension Problems1164384
-Ref: Old Extension Problems-Footnote-11165901
-Node: Extension New Mechanism Goals1165958
-Ref: Extension New Mechanism Goals-Footnote-11169318
-Node: Extension Other Design Decisions1169507
-Node: Extension Future Growth1171615
-Node: Old Extension Mechanism1172451
-Node: Notes summary1174213
-Node: Basic Concepts1175399
-Node: Basic High Level1176080
-Ref: figure-general-flow1176352
-Ref: figure-process-flow1176951
-Ref: Basic High Level-Footnote-11180180
-Node: Basic Data Typing1180365
-Node: Glossary1183693
-Node: Copying1208851
-Node: GNU Free Documentation License1246407
-Node: Index1271543
+Node: Preface48120
+Ref: Preface-Footnote-150991
+Ref: Preface-Footnote-251098
+Ref: Preface-Footnote-351331
+Node: History51473
+Node: Names53819
+Ref: Names-Footnote-154913
+Node: This Manual55059
+Ref: This Manual-Footnote-161546
+Node: Conventions61646
+Node: Manual History63984
+Ref: Manual History-Footnote-166966
+Ref: Manual History-Footnote-267007
+Node: How To Contribute67081
+Node: Acknowledgments68210
+Node: Getting Started73015
+Node: Running gawk75448
+Node: One-shot76638
+Node: Read Terminal77886
+Node: Long79913
+Node: Executable Scripts81429
+Ref: Executable Scripts-Footnote-184218
+Node: Comments84321
+Node: Quoting86803
+Node: DOS Quoting92327
+Node: Sample Data Files93002
+Node: Very Simple95597
+Node: Two Rules100495
+Node: More Complex102381
+Node: Statements/Lines105243
+Ref: Statements/Lines-Footnote-1109698
+Node: Other Features109963
+Node: When110894
+Ref: When-Footnote-1112648
+Node: Intro Summary112713
+Node: Invoking Gawk113596
+Node: Command Line115110
+Node: Options115908
+Ref: Options-Footnote-1131841
+Ref: Options-Footnote-2132070
+Node: Other Arguments132095
+Node: Naming Standard Input135043
+Node: Environment Variables136136
+Node: AWKPATH Variable136694
+Ref: AWKPATH Variable-Footnote-1139997
+Ref: AWKPATH Variable-Footnote-2140042
+Node: AWKLIBPATH Variable140302
+Node: Other Environment Variables141445
+Node: Exit Status145173
+Node: Include Files145849
+Node: Loading Shared Libraries149446
+Node: Obsolete150873
+Node: Undocumented151570
+Node: Invoking Summary151837
+Node: Regexp153501
+Node: Regexp Usage154955
+Node: Escape Sequences156992
+Node: Regexp Operators163003
+Ref: Regexp Operators-Footnote-1170429
+Ref: Regexp Operators-Footnote-2170576
+Node: Bracket Expressions170674
+Ref: table-char-classes172689
+Node: Leftmost Longest175613
+Node: Computed Regexps176915
+Node: GNU Regexp Operators180312
+Node: Case-sensitivity183985
+Ref: Case-sensitivity-Footnote-1186870
+Ref: Case-sensitivity-Footnote-2187105
+Node: Regexp Summary187213
+Node: Reading Files188680
+Node: Records190774
+Node: awk split records191507
+Node: gawk split records196422
+Ref: gawk split records-Footnote-1200966
+Node: Fields201003
+Ref: Fields-Footnote-1203779
+Node: Nonconstant Fields203865
+Ref: Nonconstant Fields-Footnote-1206108
+Node: Changing Fields206312
+Node: Field Separators212241
+Node: Default Field Splitting214946
+Node: Regexp Field Splitting216063
+Node: Single Character Fields219413
+Node: Command Line Field Separator220472
+Node: Full Line Fields223684
+Ref: Full Line Fields-Footnote-1225201
+Ref: Full Line Fields-Footnote-2225247
+Node: Field Splitting Summary225348
+Node: Constant Size227422
+Node: Splitting By Content232011
+Ref: Splitting By Content-Footnote-1236005
+Node: Multiple Line236168
+Ref: Multiple Line-Footnote-1242054
+Node: Getline242233
+Node: Plain Getline244445
+Node: Getline/Variable247085
+Node: Getline/File248233
+Node: Getline/Variable/File249617
+Ref: Getline/Variable/File-Footnote-1251220
+Node: Getline/Pipe251307
+Node: Getline/Variable/Pipe253990
+Node: Getline/Coprocess255121
+Node: Getline/Variable/Coprocess256373
+Node: Getline Notes257112
+Node: Getline Summary259904
+Ref: table-getline-variants260316
+Node: Read Timeout261145
+Ref: Read Timeout-Footnote-1264970
+Node: Command-line directories265028
+Node: Input Summary265933
+Node: Input Exercises269234
+Node: Printing269962
+Node: Print271739
+Node: Print Examples273196
+Node: Output Separators275975
+Node: OFMT277993
+Node: Printf279347
+Node: Basic Printf280132
+Node: Control Letters281702
+Node: Format Modifiers285685
+Node: Printf Examples291694
+Node: Redirection294180
+Node: Special FD301021
+Ref: Special FD-Footnote-1304181
+Node: Special Files304255
+Node: Other Inherited Files304872
+Node: Special Network305872
+Node: Special Caveats306734
+Node: Close Files And Pipes307685
+Ref: Close Files And Pipes-Footnote-1314867
+Ref: Close Files And Pipes-Footnote-2315015
+Node: Output Summary315165
+Node: Output Exercises316163
+Node: Expressions316843
+Node: Values318028
+Node: Constants318706
+Node: Scalar Constants319397
+Ref: Scalar Constants-Footnote-1320256
+Node: Nondecimal-numbers320506
+Node: Regexp Constants323524
+Node: Using Constant Regexps324049
+Node: Variables327192
+Node: Using Variables327847
+Node: Assignment Options329758
+Node: Conversion331633
+Node: Strings And Numbers332157
+Ref: Strings And Numbers-Footnote-1335222
+Node: Locale influences conversions335331
+Ref: table-locale-affects338078
+Node: All Operators338666
+Node: Arithmetic Ops339296
+Node: Concatenation341801
+Ref: Concatenation-Footnote-1344620
+Node: Assignment Ops344726
+Ref: table-assign-ops349705
+Node: Increment Ops350977
+Node: Truth Values and Conditions354415
+Node: Truth Values355500
+Node: Typing and Comparison356549
+Node: Variable Typing357359
+Node: Comparison Operators361012
+Ref: table-relational-ops361422
+Node: POSIX String Comparison364917
+Ref: POSIX String Comparison-Footnote-1365989
+Node: Boolean Ops366127
+Ref: Boolean Ops-Footnote-1370606
+Node: Conditional Exp370697
+Node: Function Calls372424
+Node: Precedence376304
+Node: Locales379965
+Node: Expressions Summary381597
+Node: Patterns and Actions384157
+Node: Pattern Overview385277
+Node: Regexp Patterns386956
+Node: Expression Patterns387499
+Node: Ranges391209
+Node: BEGIN/END394315
+Node: Using BEGIN/END395076
+Ref: Using BEGIN/END-Footnote-1397810
+Node: I/O And BEGIN/END397916
+Node: BEGINFILE/ENDFILE400230
+Node: Empty403131
+Node: Using Shell Variables403448
+Node: Action Overview405721
+Node: Statements408047
+Node: If Statement409895
+Node: While Statement411390
+Node: Do Statement413419
+Node: For Statement414563
+Node: Switch Statement417720
+Node: Break Statement420102
+Node: Continue Statement422143
+Node: Next Statement423970
+Node: Nextfile Statement426351
+Node: Exit Statement428981
+Node: Built-in Variables431384
+Node: User-modified432517
+Ref: User-modified-Footnote-1440198
+Node: Auto-set440260
+Ref: Auto-set-Footnote-1453295
+Ref: Auto-set-Footnote-2453500
+Node: ARGC and ARGV453556
+Node: Pattern Action Summary457774
+Node: Arrays460201
+Node: Array Basics461530
+Node: Array Intro462374
+Ref: figure-array-elements464338
+Ref: Array Intro-Footnote-1466864
+Node: Reference to Elements466992
+Node: Assigning Elements469444
+Node: Array Example469935
+Node: Scanning an Array471693
+Node: Controlling Scanning474709
+Ref: Controlling Scanning-Footnote-1479905
+Node: Numeric Array Subscripts480221
+Node: Uninitialized Subscripts482406
+Node: Delete484023
+Ref: Delete-Footnote-1486766
+Node: Multidimensional486823
+Node: Multiscanning489920
+Node: Arrays of Arrays491509
+Node: Arrays Summary496268
+Node: Functions498360
+Node: Built-in499259
+Node: Calling Built-in500337
+Node: Numeric Functions502328
+Ref: Numeric Functions-Footnote-1506345
+Ref: Numeric Functions-Footnote-2506702
+Ref: Numeric Functions-Footnote-3506750
+Node: String Functions507022
+Ref: String Functions-Footnote-1530497
+Ref: String Functions-Footnote-2530626
+Ref: String Functions-Footnote-3530874
+Node: Gory Details530961
+Ref: table-sub-escapes532742
+Ref: table-sub-proposed534262
+Ref: table-posix-sub535626
+Ref: table-gensub-escapes537162
+Ref: Gory Details-Footnote-1537994
+Node: I/O Functions538145
+Ref: I/O Functions-Footnote-1545363
+Node: Time Functions545510
+Ref: Time Functions-Footnote-1555998
+Ref: Time Functions-Footnote-2556066
+Ref: Time Functions-Footnote-3556224
+Ref: Time Functions-Footnote-4556335
+Ref: Time Functions-Footnote-5556447
+Ref: Time Functions-Footnote-6556674
+Node: Bitwise Functions556940
+Ref: table-bitwise-ops557502
+Ref: Bitwise Functions-Footnote-1561811
+Node: Type Functions561980
+Node: I18N Functions563131
+Node: User-defined564776
+Node: Definition Syntax565581
+Ref: Definition Syntax-Footnote-1570988
+Node: Function Example571059
+Ref: Function Example-Footnote-1573978
+Node: Function Caveats574000
+Node: Calling A Function574518
+Node: Variable Scope575476
+Node: Pass By Value/Reference578464
+Node: Return Statement581959
+Node: Dynamic Typing584940
+Node: Indirect Calls585869
+Ref: Indirect Calls-Footnote-1597171
+Node: Functions Summary597299
+Node: Library Functions600001
+Ref: Library Functions-Footnote-1603610
+Ref: Library Functions-Footnote-2603753
+Node: Library Names603924
+Ref: Library Names-Footnote-1607378
+Ref: Library Names-Footnote-2607601
+Node: General Functions607687
+Node: Strtonum Function608790
+Node: Assert Function611812
+Node: Round Function615136
+Node: Cliff Random Function616677
+Node: Ordinal Functions617693
+Ref: Ordinal Functions-Footnote-1620756
+Ref: Ordinal Functions-Footnote-2621008
+Node: Join Function621219
+Ref: Join Function-Footnote-1622988
+Node: Getlocaltime Function623188
+Node: Readfile Function626932
+Node: Shell Quoting628902
+Node: Data File Management630303
+Node: Filetrans Function630935
+Node: Rewind Function634991
+Node: File Checking636378
+Ref: File Checking-Footnote-1637710
+Node: Empty Files637911
+Node: Ignoring Assigns639890
+Node: Getopt Function641441
+Ref: Getopt Function-Footnote-1652903
+Node: Passwd Functions653103
+Ref: Passwd Functions-Footnote-1661940
+Node: Group Functions662028
+Ref: Group Functions-Footnote-1669922
+Node: Walking Arrays670135
+Node: Library Functions Summary671738
+Node: Library Exercises673139
+Node: Sample Programs674419
+Node: Running Examples675189
+Node: Clones675917
+Node: Cut Program677141
+Node: Egrep Program686860
+Ref: Egrep Program-Footnote-1694358
+Node: Id Program694468
+Node: Split Program698113
+Ref: Split Program-Footnote-1701561
+Node: Tee Program701689
+Node: Uniq Program704478
+Node: Wc Program711897
+Ref: Wc Program-Footnote-1716147
+Node: Miscellaneous Programs716241
+Node: Dupword Program717454
+Node: Alarm Program719485
+Node: Translate Program724289
+Ref: Translate Program-Footnote-1728854
+Node: Labels Program729124
+Ref: Labels Program-Footnote-1732475
+Node: Word Sorting732559
+Node: History Sorting736630
+Node: Extract Program738466
+Node: Simple Sed745991
+Node: Igawk Program749059
+Ref: Igawk Program-Footnote-1763383
+Ref: Igawk Program-Footnote-2763584
+Ref: Igawk Program-Footnote-3763706
+Node: Anagram Program763821
+Node: Signature Program766878
+Node: Programs Summary768125
+Node: Programs Exercises769318
+Ref: Programs Exercises-Footnote-1773449
+Node: Advanced Features773540
+Node: Nondecimal Data775488
+Node: Array Sorting777078
+Node: Controlling Array Traversal777775
+Ref: Controlling Array Traversal-Footnote-1786108
+Node: Array Sorting Functions786226
+Ref: Array Sorting Functions-Footnote-1790115
+Node: Two-way I/O790311
+Ref: Two-way I/O-Footnote-1795256
+Ref: Two-way I/O-Footnote-2795442
+Node: TCP/IP Networking795524
+Node: Profiling798397
+Node: Advanced Features Summary805944
+Node: Internationalization807877
+Node: I18N and L10N809357
+Node: Explaining gettext810043
+Ref: Explaining gettext-Footnote-1815068
+Ref: Explaining gettext-Footnote-2815252
+Node: Programmer i18n815417
+Ref: Programmer i18n-Footnote-1820283
+Node: Translator i18n820332
+Node: String Extraction821126
+Ref: String Extraction-Footnote-1822257
+Node: Printf Ordering822343
+Ref: Printf Ordering-Footnote-1825129
+Node: I18N Portability825193
+Ref: I18N Portability-Footnote-1827648
+Node: I18N Example827711
+Ref: I18N Example-Footnote-1830514
+Node: Gawk I18N830586
+Node: I18N Summary831224
+Node: Debugger832563
+Node: Debugging833585
+Node: Debugging Concepts834026
+Node: Debugging Terms835879
+Node: Awk Debugging838451
+Node: Sample Debugging Session839345
+Node: Debugger Invocation839865
+Node: Finding The Bug841249
+Node: List of Debugger Commands847724
+Node: Breakpoint Control849057
+Node: Debugger Execution Control852753
+Node: Viewing And Changing Data856117
+Node: Execution Stack859495
+Node: Debugger Info861132
+Node: Miscellaneous Debugger Commands865149
+Node: Readline Support870178
+Node: Limitations871070
+Node: Debugging Summary873184
+Node: Arbitrary Precision Arithmetic874352
+Node: Computer Arithmetic875768
+Ref: table-numeric-ranges879366
+Ref: Computer Arithmetic-Footnote-1880225
+Node: Math Definitions880282
+Ref: table-ieee-formats883570
+Ref: Math Definitions-Footnote-1884174
+Node: MPFR features884279
+Node: FP Math Caution885950
+Ref: FP Math Caution-Footnote-1887000
+Node: Inexactness of computations887369
+Node: Inexact representation888328
+Node: Comparing FP Values889685
+Node: Errors accumulate890767
+Node: Getting Accuracy892200
+Node: Try To Round894862
+Node: Setting precision895761
+Ref: table-predefined-precision-strings896445
+Node: Setting the rounding mode898234
+Ref: table-gawk-rounding-modes898598
+Ref: Setting the rounding mode-Footnote-1902053
+Node: Arbitrary Precision Integers902232
+Ref: Arbitrary Precision Integers-Footnote-1905218
+Node: POSIX Floating Point Problems905367
+Ref: POSIX Floating Point Problems-Footnote-1909240
+Node: Floating point summary909278
+Node: Dynamic Extensions911472
+Node: Extension Intro913024
+Node: Plugin License914290
+Node: Extension Mechanism Outline915087
+Ref: figure-load-extension915515
+Ref: figure-register-new-function916995
+Ref: figure-call-new-function917999
+Node: Extension API Description919985
+Node: Extension API Functions Introduction921435
+Node: General Data Types926259
+Ref: General Data Types-Footnote-1931998
+Node: Memory Allocation Functions932297
+Ref: Memory Allocation Functions-Footnote-1935136
+Node: Constructor Functions935232
+Node: Registration Functions936966
+Node: Extension Functions937651
+Node: Exit Callback Functions939948
+Node: Extension Version String941196
+Node: Input Parsers941861
+Node: Output Wrappers951740
+Node: Two-way processors956255
+Node: Printing Messages958459
+Ref: Printing Messages-Footnote-1959535
+Node: Updating `ERRNO'959687
+Node: Requesting Values960427
+Ref: table-value-types-returned961155
+Node: Accessing Parameters962112
+Node: Symbol Table Access963343
+Node: Symbol table by name963857
+Node: Symbol table by cookie965838
+Ref: Symbol table by cookie-Footnote-1969982
+Node: Cached values970045
+Ref: Cached values-Footnote-1973544
+Node: Array Manipulation973635
+Ref: Array Manipulation-Footnote-1974733
+Node: Array Data Types974770
+Ref: Array Data Types-Footnote-1977425
+Node: Array Functions977517
+Node: Flattening Arrays981371
+Node: Creating Arrays988263
+Node: Extension API Variables993034
+Node: Extension Versioning993670
+Node: Extension API Informational Variables995571
+Node: Extension API Boilerplate996636
+Node: Finding Extensions1000445
+Node: Extension Example1001005
+Node: Internal File Description1001777
+Node: Internal File Ops1005844
+Ref: Internal File Ops-Footnote-11017514
+Node: Using Internal File Ops1017654
+Ref: Using Internal File Ops-Footnote-11020037
+Node: Extension Samples1020310
+Node: Extension Sample File Functions1021836
+Node: Extension Sample Fnmatch1029474
+Node: Extension Sample Fork1030965
+Node: Extension Sample Inplace1032180
+Node: Extension Sample Ord1033855
+Node: Extension Sample Readdir1034691
+Ref: table-readdir-file-types1035567
+Node: Extension Sample Revout1036378
+Node: Extension Sample Rev2way1036968
+Node: Extension Sample Read write array1037708
+Node: Extension Sample Readfile1039648
+Node: Extension Sample Time1040743
+Node: Extension Sample API Tests1042092
+Node: gawkextlib1042583
+Node: Extension summary1045241
+Node: Extension Exercises1048930
+Node: Language History1049652
+Node: V7/SVR3.11051308
+Node: SVR41053489
+Node: POSIX1054934
+Node: BTL1056323
+Node: POSIX/GNU1057057
+Node: Feature History1062621
+Node: Common Extensions1075719
+Node: Ranges and Locales1077043
+Ref: Ranges and Locales-Footnote-11081661
+Ref: Ranges and Locales-Footnote-21081688
+Ref: Ranges and Locales-Footnote-31081922
+Node: Contributors1082143
+Node: History summary1087684
+Node: Installation1089054
+Node: Gawk Distribution1090000
+Node: Getting1090484
+Node: Extracting1091307
+Node: Distribution contents1092942
+Node: Unix Installation1098659
+Node: Quick Installation1099276
+Node: Additional Configuration Options1101700
+Node: Configuration Philosophy1103438
+Node: Non-Unix Installation1105807
+Node: PC Installation1106265
+Node: PC Binary Installation1107584
+Node: PC Compiling1109432
+Ref: PC Compiling-Footnote-11112453
+Node: PC Testing1112562
+Node: PC Using1113738
+Node: Cygwin1117853
+Node: MSYS1118676
+Node: VMS Installation1119176
+Node: VMS Compilation1119968
+Ref: VMS Compilation-Footnote-11121190
+Node: VMS Dynamic Extensions1121248
+Node: VMS Installation Details1122932
+Node: VMS Running1125184
+Node: VMS GNV1128020
+Node: VMS Old Gawk1128754
+Node: Bugs1129224
+Node: Other Versions1133107
+Node: Installation summary1139535
+Node: Notes1140591
+Node: Compatibility Mode1141456
+Node: Additions1142238
+Node: Accessing The Source1143163
+Node: Adding Code1144599
+Node: New Ports1150764
+Node: Derived Files1155246
+Ref: Derived Files-Footnote-11160721
+Ref: Derived Files-Footnote-21160755
+Ref: Derived Files-Footnote-31161351
+Node: Future Extensions1161465
+Node: Implementation Limitations1162071
+Node: Extension Design1163319
+Node: Old Extension Problems1164473
+Ref: Old Extension Problems-Footnote-11165990
+Node: Extension New Mechanism Goals1166047
+Ref: Extension New Mechanism Goals-Footnote-11169407
+Node: Extension Other Design Decisions1169596
+Node: Extension Future Growth1171704
+Node: Old Extension Mechanism1172540
+Node: Notes summary1174302
+Node: Basic Concepts1175488
+Node: Basic High Level1176169
+Ref: figure-general-flow1176441
+Ref: figure-process-flow1177040
+Ref: Basic High Level-Footnote-11180269
+Node: Basic Data Typing1180454
+Node: Glossary1183782
+Node: Copying1208940
+Node: GNU Free Documentation License1246496
+Node: Index1271632

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 3e6fb5d6..a7df2315 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -1269,6 +1269,9 @@ the C/C++ module as a dynamic plug-in.
has all the
details, and as expected, many examples to help you learn the ins and outs.
+I enjoy programming in AWK and had fun (re)reading this book.
+I think you will too.
+
@ifnotdocbook
@cindex Brennan, Michael
@display
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 61575e42..73471b6d 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -1264,6 +1264,9 @@ the C/C++ module as a dynamic plug-in.
has all the
details, and as expected, many examples to help you learn the ins and outs.
+I enjoy programming in AWK and had fun (re)reading this book.
+I think you will too.
+
@ifnotdocbook
@cindex Brennan, Michael
@display