aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/ChangeLog6
-rw-r--r--doc/gawk.info584
-rw-r--r--doc/gawk.texi137
3 files changed, 366 insertions, 361 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1d4a9e32..c3be84ec 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-03 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawk.texi: Fix all @tex ... @end tex tables to use a different
+ control character than @ so that the new makeinfo won't
+ complain about them. Thanks to Karl Berry for the guidance.
+
2012-12-01 Arnold D. Robbins <arnold@skeeve.com>
* gawk.texi: API chapter. Sync with gawkapi.h
diff --git a/doc/gawk.info b/doc/gawk.info
index 724ae201..c339dcbb 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -11838,7 +11838,7 @@ Table 9.4: POSIX Rules For `sub()' And `gsub()'
follow the 1996 proposed rules, since that had been its behavior for
many years.
- When version 4.0.0, was released, the `gawk' maintainer made the
+ When version 4.0.0 was released, the `gawk' maintainer made the
POSIX rules the default, breaking well over a decade's worth of
backwards compatibility.(2) Needless to say, this was a bad idea, and
as of version 4.0.1, `gawk' resumed its historical behavior, and only
@@ -31993,296 +31993,296 @@ Ref: table-sub-escapes497601
Ref: table-sub-posix-92498955
Ref: table-sub-proposed500306
Ref: table-posix-sub501660
-Ref: table-gensub-escapes503206
-Ref: Gory Details-Footnote-1504413
-Ref: Gory Details-Footnote-2504464
-Node: I/O Functions504615
-Ref: I/O Functions-Footnote-1511639
-Node: Time Functions511786
-Ref: Time Functions-Footnote-1522678
-Ref: Time Functions-Footnote-2522746
-Ref: Time Functions-Footnote-3522904
-Ref: Time Functions-Footnote-4523015
-Ref: Time Functions-Footnote-5523127
-Ref: Time Functions-Footnote-6523354
-Node: Bitwise Functions523620
-Ref: table-bitwise-ops524178
-Ref: Bitwise Functions-Footnote-1528399
-Node: Type Functions528583
-Node: I18N Functions529053
-Node: User-defined530680
-Node: Definition Syntax531484
-Ref: Definition Syntax-Footnote-1536394
-Node: Function Example536463
-Node: Function Caveats539057
-Node: Calling A Function539478
-Node: Variable Scope540593
-Node: Pass By Value/Reference543556
-Node: Return Statement546996
-Node: Dynamic Typing549977
-Node: Indirect Calls550712
-Node: Library Functions560397
-Ref: Library Functions-Footnote-1563396
-Node: Library Names563567
-Ref: Library Names-Footnote-1567038
-Ref: Library Names-Footnote-2567258
-Node: General Functions567344
-Node: Strtonum Function568297
-Node: Assert Function571227
-Node: Round Function574553
-Node: Cliff Random Function576096
-Node: Ordinal Functions577112
-Ref: Ordinal Functions-Footnote-1580182
-Ref: Ordinal Functions-Footnote-2580434
-Node: Join Function580643
-Ref: Join Function-Footnote-1582414
-Node: Getlocaltime Function582614
-Node: Data File Management586329
-Node: Filetrans Function586961
-Node: Rewind Function591100
-Node: File Checking592487
-Node: Empty Files593581
-Node: Ignoring Assigns595811
-Node: Getopt Function597364
-Ref: Getopt Function-Footnote-1608668
-Node: Passwd Functions608871
-Ref: Passwd Functions-Footnote-1617846
-Node: Group Functions617934
-Node: Walking Arrays626018
-Node: Sample Programs627587
-Node: Running Examples628264
-Node: Clones628992
-Node: Cut Program630216
-Node: Egrep Program640061
-Ref: Egrep Program-Footnote-1647834
-Node: Id Program647944
-Node: Split Program651560
-Ref: Split Program-Footnote-1655079
-Node: Tee Program655207
-Node: Uniq Program658010
-Node: Wc Program665439
-Ref: Wc Program-Footnote-1669705
-Ref: Wc Program-Footnote-2669905
-Node: Miscellaneous Programs669997
-Node: Dupword Program671185
-Node: Alarm Program673216
-Node: Translate Program677965
-Ref: Translate Program-Footnote-1682352
-Ref: Translate Program-Footnote-2682580
-Node: Labels Program682714
-Ref: Labels Program-Footnote-1686085
-Node: Word Sorting686169
-Node: History Sorting690053
-Node: Extract Program691892
-Ref: Extract Program-Footnote-1699375
-Node: Simple Sed699503
-Node: Igawk Program702565
-Ref: Igawk Program-Footnote-1717722
-Ref: Igawk Program-Footnote-2717923
-Node: Anagram Program718061
-Node: Signature Program721129
-Node: Internationalization722229
-Node: I18N and L10N723661
-Node: Explaining gettext724347
-Ref: Explaining gettext-Footnote-1729413
-Ref: Explaining gettext-Footnote-2729597
-Node: Programmer i18n729762
-Node: Translator i18n733962
-Node: String Extraction734755
-Ref: String Extraction-Footnote-1735716
-Node: Printf Ordering735802
-Ref: Printf Ordering-Footnote-1738586
-Node: I18N Portability738650
-Ref: I18N Portability-Footnote-1741099
-Node: I18N Example741162
-Ref: I18N Example-Footnote-1743797
-Node: Gawk I18N743869
-Node: Advanced Features744486
-Node: Nondecimal Data745990
-Node: Array Sorting747573
-Node: Controlling Array Traversal748270
-Node: Array Sorting Functions756508
-Ref: Array Sorting Functions-Footnote-1760182
-Ref: Array Sorting Functions-Footnote-2760275
-Node: Two-way I/O760469
-Ref: Two-way I/O-Footnote-1765901
-Node: TCP/IP Networking765971
-Node: Profiling768815
-Node: Debugger776269
-Node: Debugging777237
-Node: Debugging Concepts777670
-Node: Debugging Terms779526
-Node: Awk Debugging782123
-Node: Sample Debugging Session783015
-Node: Debugger Invocation783535
-Node: Finding The Bug784864
-Node: List of Debugger Commands791352
-Node: Breakpoint Control792686
-Node: Debugger Execution Control796350
-Node: Viewing And Changing Data799710
-Node: Execution Stack803066
-Node: Debugger Info804533
-Node: Miscellaneous Debugger Commands808514
-Node: Readline Support813959
-Node: Limitations814790
-Node: Arbitrary Precision Arithmetic817042
-Ref: Arbitrary Precision Arithmetic-Footnote-1818684
-Node: General Arithmetic818832
-Node: Floating Point Issues820552
-Node: String Conversion Precision821433
-Ref: String Conversion Precision-Footnote-1823139
-Node: Unexpected Results823248
-Node: POSIX Floating Point Problems825401
-Ref: POSIX Floating Point Problems-Footnote-1829226
-Node: Integer Programming829264
-Node: Floating-point Programming831017
-Ref: Floating-point Programming-Footnote-1837326
-Node: Floating-point Representation837590
-Node: Floating-point Context838755
-Ref: table-ieee-formats839597
-Node: Rounding Mode840981
-Ref: table-rounding-modes841460
-Ref: Rounding Mode-Footnote-1844464
-Node: Gawk and MPFR844645
-Node: Arbitrary Precision Floats845887
-Ref: Arbitrary Precision Floats-Footnote-1848316
-Node: Setting Precision848627
-Node: Setting Rounding Mode851360
-Ref: table-gawk-rounding-modes851764
-Node: Floating-point Constants852944
-Node: Changing Precision854368
-Ref: Changing Precision-Footnote-1855768
-Node: Exact Arithmetic855942
-Node: Arbitrary Precision Integers859050
-Ref: Arbitrary Precision Integers-Footnote-1862050
-Node: Dynamic Extensions862197
-Node: Extension Intro863583
-Node: Plugin License864791
-Node: Extension Design865465
-Node: Old Extension Problems866536
-Ref: Old Extension Problems-Footnote-1868046
-Node: Extension New Mechanism Goals868103
-Ref: Extension New Mechanism Goals-Footnote-1870815
-Node: Extension Other Design Decisions871001
-Node: Extension Mechanism Outline873113
-Ref: load-extension874138
-Ref: load-new-function875616
-Ref: call-new-function876597
-Node: Extension Future Growth878591
-Node: Extension API Description879409
-Node: Extension API Functions Introduction880737
-Node: General Data Types885437
-Ref: General Data Types-Footnote-1891039
-Node: Requesting Values891338
-Ref: table-value-types-returned892069
-Node: Constructor Functions893023
-Node: Registration Functions896019
-Node: Extension Functions896704
-Node: Exit Callback Functions898536
-Node: Extension Version String899779
-Node: Input Parsers900429
-Node: Output Wrappers909016
-Node: Two-way processors913432
-Node: Printing Messages915562
-Ref: Printing Messages-Footnote-1916639
-Node: Updating `ERRNO'916791
-Node: Accessing Parameters917530
-Node: Symbol Table Access918760
-Node: Symbol table by name919272
-Ref: Symbol table by name-Footnote-1921442
-Node: Symbol table by cookie921522
-Ref: Symbol table by cookie-Footnote-1925651
-Node: Cached values925714
-Ref: Cached values-Footnote-1929157
-Node: Array Manipulation929248
-Ref: Array Manipulation-Footnote-1930346
-Node: Array Data Types930385
-Ref: Array Data Types-Footnote-1933088
-Node: Array Functions933180
-Node: Flattening Arrays936946
-Node: Creating Arrays943779
-Node: Extension API Variables948574
-Node: Extension Versioning949210
-Node: Extension API Informational Variables951111
-Node: Extension API Boilerplate952197
-Node: Finding Extensions956028
-Node: Extension Example956575
-Node: Internal File Description957313
-Node: Internal File Ops961001
-Ref: Internal File Ops-Footnote-1972448
-Node: Using Internal File Ops972588
-Ref: Using Internal File Ops-Footnote-1974941
-Node: Extension Samples975207
-Node: Extension Sample File Functions976650
-Node: Extension Sample Fnmatch985123
-Node: Extension Sample Fork986849
-Node: Extension Sample Ord988063
-Node: Extension Sample Readdir988839
-Node: Extension Sample Revout990343
-Node: Extension Sample Rev2way990936
-Node: Extension Sample Read write array991626
-Node: Extension Sample Readfile993509
-Node: Extension Sample API Tests994264
-Node: Extension Sample Time994789
-Node: gawkextlib996096
-Node: Language History998477
-Node: V7/SVR3.1999999
-Node: SVR41002320
-Node: POSIX1003762
-Node: BTL1004770
-Node: POSIX/GNU1005504
-Node: Common Extensions1011039
-Node: Ranges and Locales1012146
-Ref: Ranges and Locales-Footnote-11016764
-Ref: Ranges and Locales-Footnote-21016791
-Ref: Ranges and Locales-Footnote-31017051
-Node: Contributors1017272
-Node: Installation1021568
-Node: Gawk Distribution1022462
-Node: Getting1022946
-Node: Extracting1023772
-Node: Distribution contents1025464
-Node: Unix Installation1030686
-Node: Quick Installation1031303
-Node: Additional Configuration Options1033265
-Node: Configuration Philosophy1034742
-Node: Non-Unix Installation1037084
-Node: PC Installation1037542
-Node: PC Binary Installation1038841
-Node: PC Compiling1040689
-Node: PC Testing1043633
-Node: PC Using1044809
-Node: Cygwin1048994
-Node: MSYS1049994
-Node: VMS Installation1050508
-Node: VMS Compilation1051111
-Ref: VMS Compilation-Footnote-11052118
-Node: VMS Installation Details1052176
-Node: VMS Running1053811
-Node: VMS Old Gawk1055418
-Node: Bugs1055892
-Node: Other Versions1059744
-Node: Notes1065059
-Node: Compatibility Mode1065718
-Node: Additions1066501
-Node: Accessing The Source1067428
-Node: Adding Code1069031
-Node: New Ports1075073
-Node: Derived Files1079208
-Ref: Derived Files-Footnote-11084516
-Ref: Derived Files-Footnote-21084550
-Ref: Derived Files-Footnote-31085150
-Node: Future Extensions1085248
-Node: Implementation Limitations1085829
-Node: Basic Concepts1087056
-Node: Basic High Level1087737
-Ref: figure-general-flow1088008
-Ref: figure-process-flow1088607
-Ref: Basic High Level-Footnote-11091836
-Node: Basic Data Typing1092021
-Node: Glossary1095376
-Node: Copying1120687
-Node: GNU Free Documentation License1158244
-Node: Index1183381
+Ref: table-gensub-escapes503205
+Ref: Gory Details-Footnote-1504412
+Ref: Gory Details-Footnote-2504463
+Node: I/O Functions504614
+Ref: I/O Functions-Footnote-1511638
+Node: Time Functions511785
+Ref: Time Functions-Footnote-1522677
+Ref: Time Functions-Footnote-2522745
+Ref: Time Functions-Footnote-3522903
+Ref: Time Functions-Footnote-4523014
+Ref: Time Functions-Footnote-5523126
+Ref: Time Functions-Footnote-6523353
+Node: Bitwise Functions523619
+Ref: table-bitwise-ops524177
+Ref: Bitwise Functions-Footnote-1528398
+Node: Type Functions528582
+Node: I18N Functions529052
+Node: User-defined530679
+Node: Definition Syntax531483
+Ref: Definition Syntax-Footnote-1536393
+Node: Function Example536462
+Node: Function Caveats539056
+Node: Calling A Function539477
+Node: Variable Scope540592
+Node: Pass By Value/Reference543555
+Node: Return Statement546995
+Node: Dynamic Typing549976
+Node: Indirect Calls550711
+Node: Library Functions560396
+Ref: Library Functions-Footnote-1563395
+Node: Library Names563566
+Ref: Library Names-Footnote-1567037
+Ref: Library Names-Footnote-2567257
+Node: General Functions567343
+Node: Strtonum Function568296
+Node: Assert Function571226
+Node: Round Function574552
+Node: Cliff Random Function576095
+Node: Ordinal Functions577111
+Ref: Ordinal Functions-Footnote-1580181
+Ref: Ordinal Functions-Footnote-2580433
+Node: Join Function580642
+Ref: Join Function-Footnote-1582413
+Node: Getlocaltime Function582613
+Node: Data File Management586328
+Node: Filetrans Function586960
+Node: Rewind Function591099
+Node: File Checking592486
+Node: Empty Files593580
+Node: Ignoring Assigns595810
+Node: Getopt Function597363
+Ref: Getopt Function-Footnote-1608667
+Node: Passwd Functions608870
+Ref: Passwd Functions-Footnote-1617845
+Node: Group Functions617933
+Node: Walking Arrays626017
+Node: Sample Programs627586
+Node: Running Examples628263
+Node: Clones628991
+Node: Cut Program630215
+Node: Egrep Program640060
+Ref: Egrep Program-Footnote-1647833
+Node: Id Program647943
+Node: Split Program651559
+Ref: Split Program-Footnote-1655078
+Node: Tee Program655206
+Node: Uniq Program658009
+Node: Wc Program665438
+Ref: Wc Program-Footnote-1669704
+Ref: Wc Program-Footnote-2669904
+Node: Miscellaneous Programs669996
+Node: Dupword Program671184
+Node: Alarm Program673215
+Node: Translate Program677964
+Ref: Translate Program-Footnote-1682351
+Ref: Translate Program-Footnote-2682579
+Node: Labels Program682713
+Ref: Labels Program-Footnote-1686084
+Node: Word Sorting686168
+Node: History Sorting690052
+Node: Extract Program691891
+Ref: Extract Program-Footnote-1699374
+Node: Simple Sed699502
+Node: Igawk Program702564
+Ref: Igawk Program-Footnote-1717721
+Ref: Igawk Program-Footnote-2717922
+Node: Anagram Program718060
+Node: Signature Program721128
+Node: Internationalization722228
+Node: I18N and L10N723660
+Node: Explaining gettext724346
+Ref: Explaining gettext-Footnote-1729412
+Ref: Explaining gettext-Footnote-2729596
+Node: Programmer i18n729761
+Node: Translator i18n733961
+Node: String Extraction734754
+Ref: String Extraction-Footnote-1735715
+Node: Printf Ordering735801
+Ref: Printf Ordering-Footnote-1738585
+Node: I18N Portability738649
+Ref: I18N Portability-Footnote-1741098
+Node: I18N Example741161
+Ref: I18N Example-Footnote-1743796
+Node: Gawk I18N743868
+Node: Advanced Features744485
+Node: Nondecimal Data745989
+Node: Array Sorting747572
+Node: Controlling Array Traversal748269
+Node: Array Sorting Functions756507
+Ref: Array Sorting Functions-Footnote-1760181
+Ref: Array Sorting Functions-Footnote-2760274
+Node: Two-way I/O760468
+Ref: Two-way I/O-Footnote-1765900
+Node: TCP/IP Networking765970
+Node: Profiling768814
+Node: Debugger776268
+Node: Debugging777236
+Node: Debugging Concepts777669
+Node: Debugging Terms779525
+Node: Awk Debugging782122
+Node: Sample Debugging Session783014
+Node: Debugger Invocation783534
+Node: Finding The Bug784863
+Node: List of Debugger Commands791351
+Node: Breakpoint Control792685
+Node: Debugger Execution Control796349
+Node: Viewing And Changing Data799709
+Node: Execution Stack803065
+Node: Debugger Info804532
+Node: Miscellaneous Debugger Commands808513
+Node: Readline Support813958
+Node: Limitations814789
+Node: Arbitrary Precision Arithmetic817041
+Ref: Arbitrary Precision Arithmetic-Footnote-1818683
+Node: General Arithmetic818831
+Node: Floating Point Issues820551
+Node: String Conversion Precision821432
+Ref: String Conversion Precision-Footnote-1823138
+Node: Unexpected Results823247
+Node: POSIX Floating Point Problems825400
+Ref: POSIX Floating Point Problems-Footnote-1829225
+Node: Integer Programming829263
+Node: Floating-point Programming831016
+Ref: Floating-point Programming-Footnote-1837325
+Node: Floating-point Representation837589
+Node: Floating-point Context838754
+Ref: table-ieee-formats839596
+Node: Rounding Mode840980
+Ref: table-rounding-modes841459
+Ref: Rounding Mode-Footnote-1844463
+Node: Gawk and MPFR844644
+Node: Arbitrary Precision Floats845886
+Ref: Arbitrary Precision Floats-Footnote-1848315
+Node: Setting Precision848626
+Node: Setting Rounding Mode851359
+Ref: table-gawk-rounding-modes851763
+Node: Floating-point Constants852943
+Node: Changing Precision854367
+Ref: Changing Precision-Footnote-1855767
+Node: Exact Arithmetic855941
+Node: Arbitrary Precision Integers859049
+Ref: Arbitrary Precision Integers-Footnote-1862049
+Node: Dynamic Extensions862196
+Node: Extension Intro863582
+Node: Plugin License864790
+Node: Extension Design865464
+Node: Old Extension Problems866535
+Ref: Old Extension Problems-Footnote-1868045
+Node: Extension New Mechanism Goals868102
+Ref: Extension New Mechanism Goals-Footnote-1870814
+Node: Extension Other Design Decisions871000
+Node: Extension Mechanism Outline873112
+Ref: load-extension874137
+Ref: load-new-function875615
+Ref: call-new-function876596
+Node: Extension Future Growth878590
+Node: Extension API Description879408
+Node: Extension API Functions Introduction880736
+Node: General Data Types885436
+Ref: General Data Types-Footnote-1891038
+Node: Requesting Values891337
+Ref: table-value-types-returned892068
+Node: Constructor Functions893022
+Node: Registration Functions896018
+Node: Extension Functions896703
+Node: Exit Callback Functions898535
+Node: Extension Version String899778
+Node: Input Parsers900428
+Node: Output Wrappers909015
+Node: Two-way processors913431
+Node: Printing Messages915561
+Ref: Printing Messages-Footnote-1916638
+Node: Updating `ERRNO'916790
+Node: Accessing Parameters917529
+Node: Symbol Table Access918759
+Node: Symbol table by name919271
+Ref: Symbol table by name-Footnote-1921441
+Node: Symbol table by cookie921521
+Ref: Symbol table by cookie-Footnote-1925650
+Node: Cached values925713
+Ref: Cached values-Footnote-1929156
+Node: Array Manipulation929247
+Ref: Array Manipulation-Footnote-1930345
+Node: Array Data Types930384
+Ref: Array Data Types-Footnote-1933087
+Node: Array Functions933179
+Node: Flattening Arrays936945
+Node: Creating Arrays943778
+Node: Extension API Variables948573
+Node: Extension Versioning949209
+Node: Extension API Informational Variables951110
+Node: Extension API Boilerplate952196
+Node: Finding Extensions956027
+Node: Extension Example956574
+Node: Internal File Description957312
+Node: Internal File Ops961000
+Ref: Internal File Ops-Footnote-1972447
+Node: Using Internal File Ops972587
+Ref: Using Internal File Ops-Footnote-1974940
+Node: Extension Samples975206
+Node: Extension Sample File Functions976649
+Node: Extension Sample Fnmatch985122
+Node: Extension Sample Fork986848
+Node: Extension Sample Ord988062
+Node: Extension Sample Readdir988838
+Node: Extension Sample Revout990342
+Node: Extension Sample Rev2way990935
+Node: Extension Sample Read write array991625
+Node: Extension Sample Readfile993508
+Node: Extension Sample API Tests994263
+Node: Extension Sample Time994788
+Node: gawkextlib996095
+Node: Language History998476
+Node: V7/SVR3.1999998
+Node: SVR41002319
+Node: POSIX1003761
+Node: BTL1004769
+Node: POSIX/GNU1005503
+Node: Common Extensions1011038
+Node: Ranges and Locales1012145
+Ref: Ranges and Locales-Footnote-11016763
+Ref: Ranges and Locales-Footnote-21016790
+Ref: Ranges and Locales-Footnote-31017050
+Node: Contributors1017271
+Node: Installation1021567
+Node: Gawk Distribution1022461
+Node: Getting1022945
+Node: Extracting1023771
+Node: Distribution contents1025463
+Node: Unix Installation1030685
+Node: Quick Installation1031302
+Node: Additional Configuration Options1033264
+Node: Configuration Philosophy1034741
+Node: Non-Unix Installation1037083
+Node: PC Installation1037541
+Node: PC Binary Installation1038840
+Node: PC Compiling1040688
+Node: PC Testing1043632
+Node: PC Using1044808
+Node: Cygwin1048993
+Node: MSYS1049993
+Node: VMS Installation1050507
+Node: VMS Compilation1051110
+Ref: VMS Compilation-Footnote-11052117
+Node: VMS Installation Details1052175
+Node: VMS Running1053810
+Node: VMS Old Gawk1055417
+Node: Bugs1055891
+Node: Other Versions1059743
+Node: Notes1065058
+Node: Compatibility Mode1065717
+Node: Additions1066500
+Node: Accessing The Source1067427
+Node: Adding Code1069030
+Node: New Ports1075072
+Node: Derived Files1079207
+Ref: Derived Files-Footnote-11084515
+Ref: Derived Files-Footnote-21084549
+Ref: Derived Files-Footnote-31085149
+Node: Future Extensions1085247
+Node: Implementation Limitations1085828
+Node: Basic Concepts1087055
+Node: Basic High Level1087736
+Ref: figure-general-flow1088007
+Ref: figure-process-flow1088606
+Ref: Basic High Level-Footnote-11091835
+Node: Basic Data Typing1092020
+Node: Glossary1095375
+Node: Copying1120686
+Node: GNU Free Documentation License1158243
+Node: Index1183380

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 02b7623b..835dbc00 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -14747,13 +14747,7 @@ Optional parameters are enclosed in square brackets@w{ ([ ]):}
@item atan2(@var{y}, @var{x})
@cindex @code{atan2()} function
Return the arctangent of @code{@var{y} / @var{x}} in radians.
-You can use @samp{pi = atan2(0, -1)} to retrieve the value of
-@tex
-$\pi$.
-@end tex
-@ifnottex
-pi.
-@end ifnottex
+You can use @samp{pi = atan2(0, -1)} to retrieve the value of @value{PI}.
@item cos(@var{x})
@cindex @code{cos()} function
@@ -15625,22 +15619,23 @@ through unchanged. This is illustrated in @ref{table-sub-escapes}.
@caption{Historical Escape Sequence Processing for @code{sub()} and @code{gsub()}}
@tex
\vbox{\bigskip
-% This table has lots of &'s and \'s, so unspecialize them.
+% We need more characters for escape and tab ...
+\catcode`_ = 0
+\catcode`! = 4
+% ... since this table has lots of &'s and \'s, so we unspecialize them.
\catcode`\& = \other \catcode`\\ = \other
-% But then we need character for escape and tab.
-@catcode`! = 4
-@halign{@hfil#!@qquad@hfil#!@qquad#@hfil@cr
- You type!@code{sub()} sees!@code{sub()} generates@cr
-@hrulefill!@hrulefill!@hrulefill@cr
- @code{\&}! @code{&}!the matched text@cr
- @code{\\&}! @code{\&}!a literal @samp{&}@cr
- @code{\\\&}! @code{\&}!a literal @samp{&}@cr
-@code{\\\\&}! @code{\\&}!a literal @samp{\&}@cr
-@code{\\\\\&}! @code{\\&}!a literal @samp{\&}@cr
-@code{\\\\\\&}! @code{\\\&}!a literal @samp{\\&}@cr
- @code{\\q}! @code{\q}!a literal @samp{\q}@cr
+_halign{_hfil#!_qquad_hfil#!_qquad#_hfil_cr
+ You type!@code{sub()} sees!@code{sub()} generates_cr
+_hrulefill!_hrulefill!_hrulefill_cr
+ @code{\&}! @code{&}!the matched text_cr
+ @code{\\&}! @code{\&}!a literal @samp{&}_cr
+ @code{\\\&}! @code{\&}!a literal @samp{&}_cr
+ @code{\\\\&}! @code{\\&}!a literal @samp{\&}_cr
+ @code{\\\\\&}! @code{\\&}!a literal @samp{\&}_cr
+@code{\\\\\\&}! @code{\\\&}!a literal @samp{\\&}_cr
+ @code{\\q}! @code{\q}!a literal @samp{\q}_cr
}
-@bigskip}
+_bigskip}
@end tex
@ifdocbook
@multitable @columnfractions .20 .20 .60
@@ -15694,17 +15689,18 @@ as shown in @ref{table-sub-posix-92}.
@c thanks to Karl Berry for formatting this table
@tex
\vbox{\bigskip
-% This table has lots of &'s and \'s, so unspecialize them.
+% We need more characters for escape and tab ...
+\catcode`_ = 0
+\catcode`! = 4
+% ... since this table has lots of &'s and \'s, so we unspecialize them.
\catcode`\& = \other \catcode`\\ = \other
-% But then we need character for escape and tab.
-@catcode`! = 4
-@halign{@hfil#!@qquad@hfil#!@qquad#@hfil@cr
- You type!@code{sub()} sees!@code{sub()} generates@cr
-@hrulefill!@hrulefill!@hrulefill@cr
- @code{&}! @code{&}!the matched text@cr
- @code{\\&}! @code{\&}!a literal @samp{&}@cr
-@code{\\\\&}! @code{\\&}!a literal @samp{\}, then the matched text@cr
-@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}@cr
+_halign{_hfil#!_qquad_hfil#!_qquad#_hfil_cr
+ You type!@code{sub()} sees!@code{sub()} generates_cr
+_hrulefill!_hrulefill!_hrulefill_cr
+ @code{&}! @code{&}!the matched text_cr
+ @code{\\&}! @code{\&}!a literal @samp{&}_cr
+@code{\\\\&}! @code{\\&}!a literal @samp{\}, then the matched text_cr
+@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}_cr
}
@bigskip}
@end tex
@@ -15762,20 +15758,21 @@ to produce a @samp{\} preceding the matched text. This is shown in
@caption{Proposed Rules For @code{sub()} And Backslash}
@tex
\vbox{\bigskip
-% This table has lots of &'s and \'s, so unspecialize them.
+% We need more characters for escape and tab ...
+\catcode`_ = 0
+\catcode`! = 4
+% ... since this table has lots of &'s and \'s, so we unspecialize them.
\catcode`\& = \other \catcode`\\ = \other
-% But then we need character for escape and tab.
-@catcode`! = 4
-@halign{@hfil#!@qquad@hfil#!@qquad#@hfil@cr
- You type!@code{sub()} sees!@code{sub()} generates@cr
-@hrulefill!@hrulefill!@hrulefill@cr
-@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}@cr
-@code{\\\\&}! @code{\\&}!a literal @samp{\}, followed by the matched text@cr
- @code{\\&}! @code{\&}!a literal @samp{&}@cr
- @code{\\q}! @code{\q}!a literal @samp{\q}@cr
- @code{\\\\}! @code{\\}!@code{\\}@cr
+_halign{_hfil#!_qquad_hfil#!_qquad#_hfil_cr
+ You type!@code{sub()} sees!@code{sub()} generates_cr
+_hrulefill!_hrulefill!_hrulefill_cr
+@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}_cr
+@code{\\\\&}! @code{\\&}!a literal @samp{\}, followed by the matched text_cr
+ @code{\\&}! @code{\&}!a literal @samp{&}_cr
+ @code{\\q}! @code{\q}!a literal @samp{\q}_cr
+ @code{\\\\}! @code{\\}!@code{\\}_cr
}
-@bigskip}
+_bigskip}
@end tex
@ifdocbook
@multitable @columnfractions .20 .20 .60
@@ -15824,20 +15821,21 @@ These rules are presented in @ref{table-posix-sub}.
@caption{POSIX Rules For @code{sub()} And @code{gsub()}}
@tex
\vbox{\bigskip
-% This table has lots of &'s and \'s, so unspecialize them.
+% We need more characters for escape and tab ...
+\catcode`_ = 0
+\catcode`! = 4
+% ... since this table has lots of &'s and \'s, so we unspecialize them.
\catcode`\& = \other \catcode`\\ = \other
-% But then we need character for escape and tab.
-@catcode`! = 4
-@halign{@hfil#!@qquad@hfil#!@qquad#@hfil@cr
- You type!@code{sub()} sees!@code{sub()} generates@cr
-@hrulefill!@hrulefill!@hrulefill@cr
-@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}@cr
-@code{\\\\&}! @code{\\&}!a literal @samp{\}, followed by the matched text@cr
- @code{\\&}! @code{\&}!a literal @samp{&}@cr
- @code{\\q}! @code{\q}!a literal @samp{\q}@cr
- @code{\\\\}! @code{\\}!@code{\}@cr
+_halign{_hfil#!_qquad_hfil#!_qquad#_hfil_cr
+ You type!@code{sub()} sees!@code{sub()} generates_cr
+_hrulefill!_hrulefill!_hrulefill_cr
+@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}_cr
+@code{\\\\&}! @code{\\&}!a literal @samp{\}, followed by the matched text_cr
+ @code{\\&}! @code{\&}!a literal @samp{&}_cr
+ @code{\\q}! @code{\q}!a literal @samp{\q}_cr
+ @code{\\\\}! @code{\\}!@code{\}_cr
}
-@bigskip}
+_bigskip}
@end tex
@ifdocbook
@multitable @columnfractions .20 .20 .60
@@ -15872,7 +15870,7 @@ when @option{--posix} is specified (@pxref{Options}). Otherwise,
it continued to follow the 1996 proposed rules, since
that had been its behavior for many years.
-When @value{PVERSION} 4.0.0, was released, the @command{gawk} maintainer
+When @value{PVERSION} 4.0.0 was released, the @command{gawk} maintainer
made the POSIX rules the default, breaking well over a decade's worth
of backwards compatibility.@footnote{This was rather naive of him, despite
there being a note in this section indicating that the next major version
@@ -15892,21 +15890,22 @@ as shown in @ref{table-gensub-escapes}.
@caption{Escape Sequence Processing For @code{gensub()}}
@tex
\vbox{\bigskip
-% This table has lots of &'s and \'s, so unspecialize them.
+% We need more characters for escape and tab ...
+\catcode`_ = 0
+\catcode`! = 4
+% ... since this table has lots of &'s and \'s, so we unspecialize them.
\catcode`\& = \other \catcode`\\ = \other
-% But then we need character for escape and tab.
-@catcode`! = 4
-@halign{@hfil#!@qquad@hfil#!@qquad#@hfil@cr
- You type!@code{gensub()} sees!@code{gensub()} generates@cr
-@hrulefill!@hrulefill!@hrulefill@cr
- @code{&}! @code{&}!the matched text@cr
- @code{\\&}! @code{\&}!a literal @samp{&}@cr
- @code{\\\\}! @code{\\}!a literal @samp{\}@cr
- @code{\\\\&}! @code{\\&}!a literal @samp{\}, then the matched text@cr
-@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}@cr
- @code{\\q}! @code{\q}!a literal @samp{q}@cr
+_halign{_hfil#!_qquad_hfil#!_qquad#_hfil_cr
+ You type!@code{gensub()} sees!@code{gensub()} generates_cr
+_hrulefill!_hrulefill!_hrulefill_cr
+ @code{&}! @code{&}!the matched text_cr
+ @code{\\&}! @code{\&}!a literal @samp{&}_cr
+ @code{\\\\}! @code{\\}!a literal @samp{\}_cr
+ @code{\\\\&}! @code{\\&}!a literal @samp{\}, then the matched text_cr
+@code{\\\\\\&}! @code{\\\&}!a literal @samp{\&}_cr
+ @code{\\q}! @code{\q}!a literal @samp{q}_cr
}
-@bigskip}
+_bigskip}
@end tex
@ifdocbook
@multitable @columnfractions .20 .20 .60