aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog8
-rw-r--r--doc/gawk.info1111
-rw-r--r--doc/gawk.texi5
-rw-r--r--doc/gawktexi.in5
-rw-r--r--doc/texinfo.tex123
5 files changed, 650 insertions, 602 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index cf320744..e6b14381 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,11 @@
+2014-12-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Add one more paragraph to new foreword.
+ * gawktexi.in: Fix exponentiation in TeX mode. Thanks to
+ Marco Curreli by way of Antonio Giovanni.
+
+ * texinfo.tex: Updated.
+
2014-12-12 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Minor fix.
diff --git a/doc/gawk.info b/doc/gawk.info
index 8e5e6b29..37494e64 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -798,6 +798,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
@@ -31999,7 +32002,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)
@@ -34452,558 +34455,558 @@ Tag Table:
Node: Top1204
Node: Foreword342225
Node: Foreword446667
-Node: Preface48100
-Ref: Preface-Footnote-150971
-Ref: Preface-Footnote-251078
-Ref: Preface-Footnote-351311
-Node: History51453
-Node: Names53799
-Ref: Names-Footnote-154893
-Node: This Manual55039
-Ref: This Manual-Footnote-161526
-Node: Conventions61626
-Node: Manual History63964
-Ref: Manual History-Footnote-166946
-Ref: Manual History-Footnote-266987
-Node: How To Contribute67061
-Node: Acknowledgments68190
-Node: Getting Started72995
-Node: Running gawk75428
-Node: One-shot76618
-Node: Read Terminal77866
-Node: Long79893
-Node: Executable Scripts81409
-Ref: Executable Scripts-Footnote-184198
-Node: Comments84301
-Node: Quoting86783
-Node: DOS Quoting92307
-Node: Sample Data Files92982
-Node: Very Simple95577
-Node: Two Rules100475
-Node: More Complex102361
-Node: Statements/Lines105223
-Ref: Statements/Lines-Footnote-1109678
-Node: Other Features109943
-Node: When110874
-Ref: When-Footnote-1112628
-Node: Intro Summary112693
-Node: Invoking Gawk113576
-Node: Command Line115090
-Node: Options115888
-Ref: Options-Footnote-1131692
-Ref: Options-Footnote-2131921
-Node: Other Arguments131946
-Node: Naming Standard Input134894
-Node: Environment Variables135987
-Node: AWKPATH Variable136545
-Ref: AWKPATH Variable-Footnote-1139958
-Ref: AWKPATH Variable-Footnote-2140003
-Node: AWKLIBPATH Variable140263
-Node: Other Environment Variables141519
-Node: Exit Status145007
-Node: Include Files145683
-Node: Loading Shared Libraries149280
-Node: Obsolete150707
-Node: Undocumented151404
-Node: Invoking Summary151671
-Node: Regexp153335
-Node: Regexp Usage154789
-Node: Escape Sequences156826
-Node: Regexp Operators163067
-Ref: Regexp Operators-Footnote-1170493
-Ref: Regexp Operators-Footnote-2170640
-Node: Bracket Expressions170738
-Ref: table-char-classes172753
-Node: Leftmost Longest175677
-Node: Computed Regexps176979
-Node: GNU Regexp Operators180376
-Node: Case-sensitivity184049
-Ref: Case-sensitivity-Footnote-1186934
-Ref: Case-sensitivity-Footnote-2187169
-Node: Regexp Summary187277
-Node: Reading Files188744
-Node: Records190838
-Node: awk split records191571
-Node: gawk split records196486
-Ref: gawk split records-Footnote-1201030
-Node: Fields201067
-Ref: Fields-Footnote-1203843
-Node: Nonconstant Fields203929
-Ref: Nonconstant Fields-Footnote-1206172
-Node: Changing Fields206376
-Node: Field Separators212305
-Node: Default Field Splitting215010
-Node: Regexp Field Splitting216127
-Node: Single Character Fields219477
-Node: Command Line Field Separator220536
-Node: Full Line Fields223748
-Ref: Full Line Fields-Footnote-1225265
-Ref: Full Line Fields-Footnote-2225311
-Node: Field Splitting Summary225412
-Node: Constant Size227486
-Node: Splitting By Content232075
-Ref: Splitting By Content-Footnote-1236069
-Node: Multiple Line236232
-Ref: Multiple Line-Footnote-1242118
-Node: Getline242297
-Node: Plain Getline244509
-Node: Getline/Variable247149
-Node: Getline/File248297
-Node: Getline/Variable/File249681
-Ref: Getline/Variable/File-Footnote-1251284
-Node: Getline/Pipe251371
-Node: Getline/Variable/Pipe254054
-Node: Getline/Coprocess255185
-Node: Getline/Variable/Coprocess256437
-Node: Getline Notes257176
-Node: Getline Summary259968
-Ref: table-getline-variants260380
-Node: Read Timeout261209
-Ref: Read Timeout-Footnote-1265034
-Node: Command-line directories265092
-Node: Input Summary265997
-Node: Input Exercises269298
-Node: Printing270026
-Node: Print271803
-Node: Print Examples273260
-Node: Output Separators276039
-Node: OFMT278057
-Node: Printf279411
-Node: Basic Printf280196
-Node: Control Letters281766
-Node: Format Modifiers285749
-Node: Printf Examples291758
-Node: Redirection294244
-Node: Special FD301085
-Ref: Special FD-Footnote-1304245
-Node: Special Files304319
-Node: Other Inherited Files304936
-Node: Special Network305936
-Node: Special Caveats306798
-Node: Close Files And Pipes307749
-Ref: Close Files And Pipes-Footnote-1314931
-Ref: Close Files And Pipes-Footnote-2315079
-Node: Output Summary315229
-Node: Output Exercises316227
-Node: Expressions316907
-Node: Values318092
-Node: Constants318770
-Node: Scalar Constants319461
-Ref: Scalar Constants-Footnote-1320320
-Node: Nondecimal-numbers320570
-Node: Regexp Constants323588
-Node: Using Constant Regexps324113
-Node: Variables327256
-Node: Using Variables327911
-Node: Assignment Options329822
-Node: Conversion331697
-Node: Strings And Numbers332221
-Ref: Strings And Numbers-Footnote-1335286
-Node: Locale influences conversions335395
-Ref: table-locale-affects338142
-Node: All Operators338730
-Node: Arithmetic Ops339360
-Node: Concatenation341865
-Ref: Concatenation-Footnote-1344684
-Node: Assignment Ops344790
-Ref: table-assign-ops349769
-Node: Increment Ops351041
-Node: Truth Values and Conditions354479
-Node: Truth Values355564
-Node: Typing and Comparison356613
-Node: Variable Typing357423
-Node: Comparison Operators361076
-Ref: table-relational-ops361486
-Node: POSIX String Comparison364981
-Ref: POSIX String Comparison-Footnote-1366053
-Node: Boolean Ops366191
-Ref: Boolean Ops-Footnote-1370670
-Node: Conditional Exp370761
-Node: Function Calls372488
-Node: Precedence376368
-Node: Locales380029
-Node: Expressions Summary381661
-Node: Patterns and Actions384221
-Node: Pattern Overview385341
-Node: Regexp Patterns387020
-Node: Expression Patterns387563
-Node: Ranges391273
-Node: BEGIN/END394379
-Node: Using BEGIN/END395140
-Ref: Using BEGIN/END-Footnote-1397874
-Node: I/O And BEGIN/END397980
-Node: BEGINFILE/ENDFILE400294
-Node: Empty403195
-Node: Using Shell Variables403512
-Node: Action Overview405785
-Node: Statements408111
-Node: If Statement409959
-Node: While Statement411454
-Node: Do Statement413483
-Node: For Statement414627
-Node: Switch Statement417784
-Node: Break Statement420166
-Node: Continue Statement422207
-Node: Next Statement424034
-Node: Nextfile Statement426415
-Node: Exit Statement429045
-Node: Built-in Variables431448
-Node: User-modified432581
-Ref: User-modified-Footnote-1440262
-Node: Auto-set440324
-Ref: Auto-set-Footnote-1454016
-Ref: Auto-set-Footnote-2454221
-Node: ARGC and ARGV454277
-Node: Pattern Action Summary458495
-Node: Arrays460922
-Node: Array Basics462251
-Node: Array Intro463095
-Ref: figure-array-elements465059
-Ref: Array Intro-Footnote-1467585
-Node: Reference to Elements467713
-Node: Assigning Elements470165
-Node: Array Example470656
-Node: Scanning an Array472414
-Node: Controlling Scanning475430
-Ref: Controlling Scanning-Footnote-1480626
-Node: Numeric Array Subscripts480942
-Node: Uninitialized Subscripts483127
-Node: Delete484744
-Ref: Delete-Footnote-1487487
-Node: Multidimensional487544
-Node: Multiscanning490641
-Node: Arrays of Arrays492230
-Node: Arrays Summary496989
-Node: Functions499081
-Node: Built-in499980
-Node: Calling Built-in501058
-Node: Numeric Functions503049
-Ref: Numeric Functions-Footnote-1507868
-Ref: Numeric Functions-Footnote-2508225
-Ref: Numeric Functions-Footnote-3508273
-Node: String Functions508545
-Ref: String Functions-Footnote-1532020
-Ref: String Functions-Footnote-2532149
-Ref: String Functions-Footnote-3532397
-Node: Gory Details532484
-Ref: table-sub-escapes534265
-Ref: table-sub-proposed535785
-Ref: table-posix-sub537149
-Ref: table-gensub-escapes538685
-Ref: Gory Details-Footnote-1539517
-Node: I/O Functions539668
-Ref: I/O Functions-Footnote-1546886
-Node: Time Functions547033
-Ref: Time Functions-Footnote-1557521
-Ref: Time Functions-Footnote-2557589
-Ref: Time Functions-Footnote-3557747
-Ref: Time Functions-Footnote-4557858
-Ref: Time Functions-Footnote-5557970
-Ref: Time Functions-Footnote-6558197
-Node: Bitwise Functions558463
-Ref: table-bitwise-ops559025
-Ref: Bitwise Functions-Footnote-1563334
-Node: Type Functions563503
-Node: I18N Functions564654
-Node: User-defined566299
-Node: Definition Syntax567104
-Ref: Definition Syntax-Footnote-1572511
-Node: Function Example572582
-Ref: Function Example-Footnote-1575501
-Node: Function Caveats575523
-Node: Calling A Function576041
-Node: Variable Scope576999
-Node: Pass By Value/Reference579987
-Node: Return Statement583482
-Node: Dynamic Typing586463
-Node: Indirect Calls587392
-Ref: Indirect Calls-Footnote-1598694
-Node: Functions Summary598822
-Node: Library Functions601524
-Ref: Library Functions-Footnote-1605133
-Ref: Library Functions-Footnote-2605276
-Node: Library Names605447
-Ref: Library Names-Footnote-1608901
-Ref: Library Names-Footnote-2609124
-Node: General Functions609210
-Node: Strtonum Function610313
-Node: Assert Function613335
-Node: Round Function616659
-Node: Cliff Random Function618200
-Node: Ordinal Functions619216
-Ref: Ordinal Functions-Footnote-1622279
-Ref: Ordinal Functions-Footnote-2622531
-Node: Join Function622742
-Ref: Join Function-Footnote-1624511
-Node: Getlocaltime Function624711
-Node: Readfile Function628455
-Node: Shell Quoting630425
-Node: Data File Management631826
-Node: Filetrans Function632458
-Node: Rewind Function636514
-Node: File Checking637901
-Ref: File Checking-Footnote-1639233
-Node: Empty Files639434
-Node: Ignoring Assigns641413
-Node: Getopt Function642964
-Ref: Getopt Function-Footnote-1654426
-Node: Passwd Functions654626
-Ref: Passwd Functions-Footnote-1663463
-Node: Group Functions663551
-Ref: Group Functions-Footnote-1671445
-Node: Walking Arrays671658
-Node: Library Functions Summary673261
-Node: Library Exercises674662
-Node: Sample Programs675942
-Node: Running Examples676712
-Node: Clones677440
-Node: Cut Program678664
-Node: Egrep Program688383
-Ref: Egrep Program-Footnote-1695881
-Node: Id Program695991
-Node: Split Program699636
-Ref: Split Program-Footnote-1703084
-Node: Tee Program703212
-Node: Uniq Program706001
-Node: Wc Program713420
-Ref: Wc Program-Footnote-1717670
-Node: Miscellaneous Programs717764
-Node: Dupword Program718977
-Node: Alarm Program721008
-Node: Translate Program725812
-Ref: Translate Program-Footnote-1730377
-Node: Labels Program730647
-Ref: Labels Program-Footnote-1733998
-Node: Word Sorting734082
-Node: History Sorting738153
-Node: Extract Program739989
-Node: Simple Sed747514
-Node: Igawk Program750582
-Ref: Igawk Program-Footnote-1764906
-Ref: Igawk Program-Footnote-2765107
-Ref: Igawk Program-Footnote-3765229
-Node: Anagram Program765344
-Node: Signature Program768401
-Node: Programs Summary769648
-Node: Programs Exercises770841
-Ref: Programs Exercises-Footnote-1774972
-Node: Advanced Features775063
-Node: Nondecimal Data777011
-Node: Array Sorting778601
-Node: Controlling Array Traversal779298
-Ref: Controlling Array Traversal-Footnote-1787631
-Node: Array Sorting Functions787749
-Ref: Array Sorting Functions-Footnote-1791638
-Node: Two-way I/O791834
-Ref: Two-way I/O-Footnote-1796779
-Ref: Two-way I/O-Footnote-2796965
-Node: TCP/IP Networking797047
-Node: Profiling799920
-Node: Advanced Features Summary808197
-Node: Internationalization810130
-Node: I18N and L10N811610
-Node: Explaining gettext812296
-Ref: Explaining gettext-Footnote-1817321
-Ref: Explaining gettext-Footnote-2817505
-Node: Programmer i18n817670
-Ref: Programmer i18n-Footnote-1822536
-Node: Translator i18n822585
-Node: String Extraction823379
-Ref: String Extraction-Footnote-1824510
-Node: Printf Ordering824596
-Ref: Printf Ordering-Footnote-1827382
-Node: I18N Portability827446
-Ref: I18N Portability-Footnote-1829901
-Node: I18N Example829964
-Ref: I18N Example-Footnote-1832767
-Node: Gawk I18N832839
-Node: I18N Summary833477
-Node: Debugger834816
-Node: Debugging835838
-Node: Debugging Concepts836279
-Node: Debugging Terms838132
-Node: Awk Debugging840704
-Node: Sample Debugging Session841598
-Node: Debugger Invocation842118
-Node: Finding The Bug843502
-Node: List of Debugger Commands849977
-Node: Breakpoint Control851310
-Node: Debugger Execution Control855006
-Node: Viewing And Changing Data858370
-Node: Execution Stack861748
-Node: Debugger Info863385
-Node: Miscellaneous Debugger Commands867402
-Node: Readline Support872431
-Node: Limitations873323
-Node: Debugging Summary875437
-Node: Arbitrary Precision Arithmetic876605
-Node: Computer Arithmetic878021
-Ref: table-numeric-ranges881619
-Ref: Computer Arithmetic-Footnote-1882478
-Node: Math Definitions882535
-Ref: table-ieee-formats885823
-Ref: Math Definitions-Footnote-1886427
-Node: MPFR features886532
-Node: FP Math Caution888203
-Ref: FP Math Caution-Footnote-1889253
-Node: Inexactness of computations889622
-Node: Inexact representation890581
-Node: Comparing FP Values891938
-Node: Errors accumulate893020
-Node: Getting Accuracy894453
-Node: Try To Round897115
-Node: Setting precision898014
-Ref: table-predefined-precision-strings898698
-Node: Setting the rounding mode900487
-Ref: table-gawk-rounding-modes900851
-Ref: Setting the rounding mode-Footnote-1904306
-Node: Arbitrary Precision Integers904485
-Ref: Arbitrary Precision Integers-Footnote-1909384
-Node: POSIX Floating Point Problems909533
-Ref: POSIX Floating Point Problems-Footnote-1913406
-Node: Floating point summary913444
-Node: Dynamic Extensions915638
-Node: Extension Intro917190
-Node: Plugin License918456
-Node: Extension Mechanism Outline919253
-Ref: figure-load-extension919681
-Ref: figure-register-new-function921161
-Ref: figure-call-new-function922165
-Node: Extension API Description924151
-Node: Extension API Functions Introduction925601
-Node: General Data Types930425
-Ref: General Data Types-Footnote-1936164
-Node: Memory Allocation Functions936463
-Ref: Memory Allocation Functions-Footnote-1939302
-Node: Constructor Functions939398
-Node: Registration Functions941132
-Node: Extension Functions941817
-Node: Exit Callback Functions944114
-Node: Extension Version String945362
-Node: Input Parsers946027
-Node: Output Wrappers955906
-Node: Two-way processors960421
-Node: Printing Messages962625
-Ref: Printing Messages-Footnote-1963701
-Node: Updating `ERRNO'963853
-Node: Requesting Values964593
-Ref: table-value-types-returned965321
-Node: Accessing Parameters966278
-Node: Symbol Table Access967509
-Node: Symbol table by name968023
-Node: Symbol table by cookie970004
-Ref: Symbol table by cookie-Footnote-1974148
-Node: Cached values974211
-Ref: Cached values-Footnote-1977710
-Node: Array Manipulation977801
-Ref: Array Manipulation-Footnote-1978899
-Node: Array Data Types978936
-Ref: Array Data Types-Footnote-1981591
-Node: Array Functions981683
-Node: Flattening Arrays985537
-Node: Creating Arrays992429
-Node: Extension API Variables997200
-Node: Extension Versioning997836
-Node: Extension API Informational Variables999737
-Node: Extension API Boilerplate1000802
-Node: Finding Extensions1004611
-Node: Extension Example1005171
-Node: Internal File Description1005943
-Node: Internal File Ops1010010
-Ref: Internal File Ops-Footnote-11021680
-Node: Using Internal File Ops1021820
-Ref: Using Internal File Ops-Footnote-11024203
-Node: Extension Samples1024476
-Node: Extension Sample File Functions1026002
-Node: Extension Sample Fnmatch1033640
-Node: Extension Sample Fork1035131
-Node: Extension Sample Inplace1036346
-Node: Extension Sample Ord1038021
-Node: Extension Sample Readdir1038857
-Ref: table-readdir-file-types1039733
-Node: Extension Sample Revout1040544
-Node: Extension Sample Rev2way1041134
-Node: Extension Sample Read write array1041874
-Node: Extension Sample Readfile1043814
-Node: Extension Sample Time1044909
-Node: Extension Sample API Tests1046258
-Node: gawkextlib1046749
-Node: Extension summary1049407
-Node: Extension Exercises1053096
-Node: Language History1053818
-Node: V7/SVR3.11055474
-Node: SVR41057655
-Node: POSIX1059100
-Node: BTL1060489
-Node: POSIX/GNU1061223
-Node: Feature History1066847
-Node: Common Extensions1079945
-Node: Ranges and Locales1081269
-Ref: Ranges and Locales-Footnote-11085887
-Ref: Ranges and Locales-Footnote-21085914
-Ref: Ranges and Locales-Footnote-31086148
-Node: Contributors1086369
-Node: History summary1091910
-Node: Installation1093280
-Node: Gawk Distribution1094226
-Node: Getting1094710
-Node: Extracting1095533
-Node: Distribution contents1097168
-Node: Unix Installation1103233
-Node: Quick Installation1103916
-Node: Shell Startup Files1106327
-Node: Additional Configuration Options1107406
-Node: Configuration Philosophy1109145
-Node: Non-Unix Installation1111514
-Node: PC Installation1111972
-Node: PC Binary Installation1113291
-Node: PC Compiling1115139
-Ref: PC Compiling-Footnote-11118160
-Node: PC Testing1118269
-Node: PC Using1119445
-Node: Cygwin1123560
-Node: MSYS1124383
-Node: VMS Installation1124883
-Node: VMS Compilation1125675
-Ref: VMS Compilation-Footnote-11126897
-Node: VMS Dynamic Extensions1126955
-Node: VMS Installation Details1128639
-Node: VMS Running1130891
-Node: VMS GNV1133727
-Node: VMS Old Gawk1134461
-Node: Bugs1134931
-Node: Other Versions1138814
-Node: Installation summary1145242
-Node: Notes1146298
-Node: Compatibility Mode1147163
-Node: Additions1147945
-Node: Accessing The Source1148870
-Node: Adding Code1150306
-Node: New Ports1156471
-Node: Derived Files1160953
-Ref: Derived Files-Footnote-11166428
-Ref: Derived Files-Footnote-21166462
-Ref: Derived Files-Footnote-31167058
-Node: Future Extensions1167172
-Node: Implementation Limitations1167778
-Node: Extension Design1169026
-Node: Old Extension Problems1170180
-Ref: Old Extension Problems-Footnote-11171697
-Node: Extension New Mechanism Goals1171754
-Ref: Extension New Mechanism Goals-Footnote-11175114
-Node: Extension Other Design Decisions1175303
-Node: Extension Future Growth1177411
-Node: Old Extension Mechanism1178247
-Node: Notes summary1180009
-Node: Basic Concepts1181195
-Node: Basic High Level1181876
-Ref: figure-general-flow1182148
-Ref: figure-process-flow1182747
-Ref: Basic High Level-Footnote-11185976
-Node: Basic Data Typing1186161
-Node: Glossary1189489
-Node: Copying1214647
-Node: GNU Free Documentation License1252203
-Node: Index1277339
+Node: Preface48189
+Ref: Preface-Footnote-151060
+Ref: Preface-Footnote-251167
+Ref: Preface-Footnote-351400
+Node: History51542
+Node: Names53888
+Ref: Names-Footnote-154982
+Node: This Manual55128
+Ref: This Manual-Footnote-161615
+Node: Conventions61715
+Node: Manual History64053
+Ref: Manual History-Footnote-167035
+Ref: Manual History-Footnote-267076
+Node: How To Contribute67150
+Node: Acknowledgments68279
+Node: Getting Started73084
+Node: Running gawk75517
+Node: One-shot76707
+Node: Read Terminal77955
+Node: Long79982
+Node: Executable Scripts81498
+Ref: Executable Scripts-Footnote-184287
+Node: Comments84390
+Node: Quoting86872
+Node: DOS Quoting92396
+Node: Sample Data Files93071
+Node: Very Simple95666
+Node: Two Rules100564
+Node: More Complex102450
+Node: Statements/Lines105312
+Ref: Statements/Lines-Footnote-1109767
+Node: Other Features110032
+Node: When110963
+Ref: When-Footnote-1112717
+Node: Intro Summary112782
+Node: Invoking Gawk113665
+Node: Command Line115179
+Node: Options115977
+Ref: Options-Footnote-1131781
+Ref: Options-Footnote-2132010
+Node: Other Arguments132035
+Node: Naming Standard Input134983
+Node: Environment Variables136076
+Node: AWKPATH Variable136634
+Ref: AWKPATH Variable-Footnote-1140047
+Ref: AWKPATH Variable-Footnote-2140092
+Node: AWKLIBPATH Variable140352
+Node: Other Environment Variables141608
+Node: Exit Status145096
+Node: Include Files145772
+Node: Loading Shared Libraries149369
+Node: Obsolete150796
+Node: Undocumented151493
+Node: Invoking Summary151760
+Node: Regexp153424
+Node: Regexp Usage154878
+Node: Escape Sequences156915
+Node: Regexp Operators163156
+Ref: Regexp Operators-Footnote-1170582
+Ref: Regexp Operators-Footnote-2170729
+Node: Bracket Expressions170827
+Ref: table-char-classes172842
+Node: Leftmost Longest175766
+Node: Computed Regexps177068
+Node: GNU Regexp Operators180465
+Node: Case-sensitivity184138
+Ref: Case-sensitivity-Footnote-1187023
+Ref: Case-sensitivity-Footnote-2187258
+Node: Regexp Summary187366
+Node: Reading Files188833
+Node: Records190927
+Node: awk split records191660
+Node: gawk split records196575
+Ref: gawk split records-Footnote-1201119
+Node: Fields201156
+Ref: Fields-Footnote-1203932
+Node: Nonconstant Fields204018
+Ref: Nonconstant Fields-Footnote-1206261
+Node: Changing Fields206465
+Node: Field Separators212394
+Node: Default Field Splitting215099
+Node: Regexp Field Splitting216216
+Node: Single Character Fields219566
+Node: Command Line Field Separator220625
+Node: Full Line Fields223837
+Ref: Full Line Fields-Footnote-1225354
+Ref: Full Line Fields-Footnote-2225400
+Node: Field Splitting Summary225501
+Node: Constant Size227575
+Node: Splitting By Content232164
+Ref: Splitting By Content-Footnote-1236158
+Node: Multiple Line236321
+Ref: Multiple Line-Footnote-1242207
+Node: Getline242386
+Node: Plain Getline244598
+Node: Getline/Variable247238
+Node: Getline/File248386
+Node: Getline/Variable/File249770
+Ref: Getline/Variable/File-Footnote-1251373
+Node: Getline/Pipe251460
+Node: Getline/Variable/Pipe254143
+Node: Getline/Coprocess255274
+Node: Getline/Variable/Coprocess256526
+Node: Getline Notes257265
+Node: Getline Summary260057
+Ref: table-getline-variants260469
+Node: Read Timeout261298
+Ref: Read Timeout-Footnote-1265123
+Node: Command-line directories265181
+Node: Input Summary266086
+Node: Input Exercises269387
+Node: Printing270115
+Node: Print271892
+Node: Print Examples273349
+Node: Output Separators276128
+Node: OFMT278146
+Node: Printf279500
+Node: Basic Printf280285
+Node: Control Letters281855
+Node: Format Modifiers285838
+Node: Printf Examples291847
+Node: Redirection294333
+Node: Special FD301174
+Ref: Special FD-Footnote-1304334
+Node: Special Files304408
+Node: Other Inherited Files305025
+Node: Special Network306025
+Node: Special Caveats306887
+Node: Close Files And Pipes307838
+Ref: Close Files And Pipes-Footnote-1315020
+Ref: Close Files And Pipes-Footnote-2315168
+Node: Output Summary315318
+Node: Output Exercises316316
+Node: Expressions316996
+Node: Values318181
+Node: Constants318859
+Node: Scalar Constants319550
+Ref: Scalar Constants-Footnote-1320409
+Node: Nondecimal-numbers320659
+Node: Regexp Constants323677
+Node: Using Constant Regexps324202
+Node: Variables327345
+Node: Using Variables328000
+Node: Assignment Options329911
+Node: Conversion331786
+Node: Strings And Numbers332310
+Ref: Strings And Numbers-Footnote-1335375
+Node: Locale influences conversions335484
+Ref: table-locale-affects338231
+Node: All Operators338819
+Node: Arithmetic Ops339449
+Node: Concatenation341954
+Ref: Concatenation-Footnote-1344773
+Node: Assignment Ops344879
+Ref: table-assign-ops349858
+Node: Increment Ops351130
+Node: Truth Values and Conditions354568
+Node: Truth Values355653
+Node: Typing and Comparison356702
+Node: Variable Typing357512
+Node: Comparison Operators361165
+Ref: table-relational-ops361575
+Node: POSIX String Comparison365070
+Ref: POSIX String Comparison-Footnote-1366142
+Node: Boolean Ops366280
+Ref: Boolean Ops-Footnote-1370759
+Node: Conditional Exp370850
+Node: Function Calls372577
+Node: Precedence376457
+Node: Locales380118
+Node: Expressions Summary381750
+Node: Patterns and Actions384310
+Node: Pattern Overview385430
+Node: Regexp Patterns387109
+Node: Expression Patterns387652
+Node: Ranges391362
+Node: BEGIN/END394468
+Node: Using BEGIN/END395229
+Ref: Using BEGIN/END-Footnote-1397963
+Node: I/O And BEGIN/END398069
+Node: BEGINFILE/ENDFILE400383
+Node: Empty403284
+Node: Using Shell Variables403601
+Node: Action Overview405874
+Node: Statements408200
+Node: If Statement410048
+Node: While Statement411543
+Node: Do Statement413572
+Node: For Statement414716
+Node: Switch Statement417873
+Node: Break Statement420255
+Node: Continue Statement422296
+Node: Next Statement424123
+Node: Nextfile Statement426504
+Node: Exit Statement429134
+Node: Built-in Variables431537
+Node: User-modified432670
+Ref: User-modified-Footnote-1440351
+Node: Auto-set440413
+Ref: Auto-set-Footnote-1454105
+Ref: Auto-set-Footnote-2454310
+Node: ARGC and ARGV454366
+Node: Pattern Action Summary458584
+Node: Arrays461011
+Node: Array Basics462340
+Node: Array Intro463184
+Ref: figure-array-elements465148
+Ref: Array Intro-Footnote-1467674
+Node: Reference to Elements467802
+Node: Assigning Elements470254
+Node: Array Example470745
+Node: Scanning an Array472503
+Node: Controlling Scanning475519
+Ref: Controlling Scanning-Footnote-1480715
+Node: Numeric Array Subscripts481031
+Node: Uninitialized Subscripts483216
+Node: Delete484833
+Ref: Delete-Footnote-1487576
+Node: Multidimensional487633
+Node: Multiscanning490730
+Node: Arrays of Arrays492319
+Node: Arrays Summary497078
+Node: Functions499170
+Node: Built-in500069
+Node: Calling Built-in501147
+Node: Numeric Functions503138
+Ref: Numeric Functions-Footnote-1507957
+Ref: Numeric Functions-Footnote-2508314
+Ref: Numeric Functions-Footnote-3508362
+Node: String Functions508634
+Ref: String Functions-Footnote-1532109
+Ref: String Functions-Footnote-2532238
+Ref: String Functions-Footnote-3532486
+Node: Gory Details532573
+Ref: table-sub-escapes534354
+Ref: table-sub-proposed535874
+Ref: table-posix-sub537238
+Ref: table-gensub-escapes538774
+Ref: Gory Details-Footnote-1539606
+Node: I/O Functions539757
+Ref: I/O Functions-Footnote-1546975
+Node: Time Functions547122
+Ref: Time Functions-Footnote-1557610
+Ref: Time Functions-Footnote-2557678
+Ref: Time Functions-Footnote-3557836
+Ref: Time Functions-Footnote-4557947
+Ref: Time Functions-Footnote-5558059
+Ref: Time Functions-Footnote-6558286
+Node: Bitwise Functions558552
+Ref: table-bitwise-ops559114
+Ref: Bitwise Functions-Footnote-1563423
+Node: Type Functions563592
+Node: I18N Functions564743
+Node: User-defined566388
+Node: Definition Syntax567193
+Ref: Definition Syntax-Footnote-1572600
+Node: Function Example572671
+Ref: Function Example-Footnote-1575590
+Node: Function Caveats575612
+Node: Calling A Function576130
+Node: Variable Scope577088
+Node: Pass By Value/Reference580076
+Node: Return Statement583571
+Node: Dynamic Typing586552
+Node: Indirect Calls587481
+Ref: Indirect Calls-Footnote-1598783
+Node: Functions Summary598911
+Node: Library Functions601613
+Ref: Library Functions-Footnote-1605222
+Ref: Library Functions-Footnote-2605365
+Node: Library Names605536
+Ref: Library Names-Footnote-1608990
+Ref: Library Names-Footnote-2609213
+Node: General Functions609299
+Node: Strtonum Function610402
+Node: Assert Function613424
+Node: Round Function616748
+Node: Cliff Random Function618289
+Node: Ordinal Functions619305
+Ref: Ordinal Functions-Footnote-1622368
+Ref: Ordinal Functions-Footnote-2622620
+Node: Join Function622831
+Ref: Join Function-Footnote-1624600
+Node: Getlocaltime Function624800
+Node: Readfile Function628544
+Node: Shell Quoting630514
+Node: Data File Management631915
+Node: Filetrans Function632547
+Node: Rewind Function636603
+Node: File Checking637990
+Ref: File Checking-Footnote-1639322
+Node: Empty Files639523
+Node: Ignoring Assigns641502
+Node: Getopt Function643053
+Ref: Getopt Function-Footnote-1654515
+Node: Passwd Functions654715
+Ref: Passwd Functions-Footnote-1663552
+Node: Group Functions663640
+Ref: Group Functions-Footnote-1671534
+Node: Walking Arrays671747
+Node: Library Functions Summary673350
+Node: Library Exercises674751
+Node: Sample Programs676031
+Node: Running Examples676801
+Node: Clones677529
+Node: Cut Program678753
+Node: Egrep Program688472
+Ref: Egrep Program-Footnote-1695970
+Node: Id Program696080
+Node: Split Program699725
+Ref: Split Program-Footnote-1703173
+Node: Tee Program703301
+Node: Uniq Program706090
+Node: Wc Program713509
+Ref: Wc Program-Footnote-1717759
+Node: Miscellaneous Programs717853
+Node: Dupword Program719066
+Node: Alarm Program721097
+Node: Translate Program725901
+Ref: Translate Program-Footnote-1730466
+Node: Labels Program730736
+Ref: Labels Program-Footnote-1734087
+Node: Word Sorting734171
+Node: History Sorting738242
+Node: Extract Program740078
+Node: Simple Sed747603
+Node: Igawk Program750671
+Ref: Igawk Program-Footnote-1764995
+Ref: Igawk Program-Footnote-2765196
+Ref: Igawk Program-Footnote-3765318
+Node: Anagram Program765433
+Node: Signature Program768490
+Node: Programs Summary769737
+Node: Programs Exercises770930
+Ref: Programs Exercises-Footnote-1775061
+Node: Advanced Features775152
+Node: Nondecimal Data777100
+Node: Array Sorting778690
+Node: Controlling Array Traversal779387
+Ref: Controlling Array Traversal-Footnote-1787720
+Node: Array Sorting Functions787838
+Ref: Array Sorting Functions-Footnote-1791727
+Node: Two-way I/O791923
+Ref: Two-way I/O-Footnote-1796868
+Ref: Two-way I/O-Footnote-2797054
+Node: TCP/IP Networking797136
+Node: Profiling800009
+Node: Advanced Features Summary808286
+Node: Internationalization810219
+Node: I18N and L10N811699
+Node: Explaining gettext812385
+Ref: Explaining gettext-Footnote-1817410
+Ref: Explaining gettext-Footnote-2817594
+Node: Programmer i18n817759
+Ref: Programmer i18n-Footnote-1822625
+Node: Translator i18n822674
+Node: String Extraction823468
+Ref: String Extraction-Footnote-1824599
+Node: Printf Ordering824685
+Ref: Printf Ordering-Footnote-1827471
+Node: I18N Portability827535
+Ref: I18N Portability-Footnote-1829990
+Node: I18N Example830053
+Ref: I18N Example-Footnote-1832856
+Node: Gawk I18N832928
+Node: I18N Summary833566
+Node: Debugger834905
+Node: Debugging835927
+Node: Debugging Concepts836368
+Node: Debugging Terms838221
+Node: Awk Debugging840793
+Node: Sample Debugging Session841687
+Node: Debugger Invocation842207
+Node: Finding The Bug843591
+Node: List of Debugger Commands850066
+Node: Breakpoint Control851399
+Node: Debugger Execution Control855095
+Node: Viewing And Changing Data858459
+Node: Execution Stack861837
+Node: Debugger Info863474
+Node: Miscellaneous Debugger Commands867491
+Node: Readline Support872520
+Node: Limitations873412
+Node: Debugging Summary875526
+Node: Arbitrary Precision Arithmetic876694
+Node: Computer Arithmetic878110
+Ref: table-numeric-ranges881708
+Ref: Computer Arithmetic-Footnote-1882567
+Node: Math Definitions882624
+Ref: table-ieee-formats885912
+Ref: Math Definitions-Footnote-1886516
+Node: MPFR features886621
+Node: FP Math Caution888292
+Ref: FP Math Caution-Footnote-1889342
+Node: Inexactness of computations889711
+Node: Inexact representation890670
+Node: Comparing FP Values892027
+Node: Errors accumulate893109
+Node: Getting Accuracy894542
+Node: Try To Round897204
+Node: Setting precision898103
+Ref: table-predefined-precision-strings898787
+Node: Setting the rounding mode900576
+Ref: table-gawk-rounding-modes900940
+Ref: Setting the rounding mode-Footnote-1904395
+Node: Arbitrary Precision Integers904574
+Ref: Arbitrary Precision Integers-Footnote-1909473
+Node: POSIX Floating Point Problems909622
+Ref: POSIX Floating Point Problems-Footnote-1913495
+Node: Floating point summary913533
+Node: Dynamic Extensions915727
+Node: Extension Intro917279
+Node: Plugin License918545
+Node: Extension Mechanism Outline919342
+Ref: figure-load-extension919770
+Ref: figure-register-new-function921250
+Ref: figure-call-new-function922254
+Node: Extension API Description924240
+Node: Extension API Functions Introduction925690
+Node: General Data Types930514
+Ref: General Data Types-Footnote-1936253
+Node: Memory Allocation Functions936552
+Ref: Memory Allocation Functions-Footnote-1939391
+Node: Constructor Functions939487
+Node: Registration Functions941221
+Node: Extension Functions941906
+Node: Exit Callback Functions944203
+Node: Extension Version String945451
+Node: Input Parsers946116
+Node: Output Wrappers955995
+Node: Two-way processors960510
+Node: Printing Messages962714
+Ref: Printing Messages-Footnote-1963790
+Node: Updating `ERRNO'963942
+Node: Requesting Values964682
+Ref: table-value-types-returned965410
+Node: Accessing Parameters966367
+Node: Symbol Table Access967598
+Node: Symbol table by name968112
+Node: Symbol table by cookie970093
+Ref: Symbol table by cookie-Footnote-1974237
+Node: Cached values974300
+Ref: Cached values-Footnote-1977799
+Node: Array Manipulation977890
+Ref: Array Manipulation-Footnote-1978988
+Node: Array Data Types979025
+Ref: Array Data Types-Footnote-1981680
+Node: Array Functions981772
+Node: Flattening Arrays985626
+Node: Creating Arrays992518
+Node: Extension API Variables997289
+Node: Extension Versioning997925
+Node: Extension API Informational Variables999826
+Node: Extension API Boilerplate1000891
+Node: Finding Extensions1004700
+Node: Extension Example1005260
+Node: Internal File Description1006032
+Node: Internal File Ops1010099
+Ref: Internal File Ops-Footnote-11021769
+Node: Using Internal File Ops1021909
+Ref: Using Internal File Ops-Footnote-11024292
+Node: Extension Samples1024565
+Node: Extension Sample File Functions1026091
+Node: Extension Sample Fnmatch1033729
+Node: Extension Sample Fork1035220
+Node: Extension Sample Inplace1036435
+Node: Extension Sample Ord1038110
+Node: Extension Sample Readdir1038946
+Ref: table-readdir-file-types1039822
+Node: Extension Sample Revout1040633
+Node: Extension Sample Rev2way1041223
+Node: Extension Sample Read write array1041963
+Node: Extension Sample Readfile1043903
+Node: Extension Sample Time1044998
+Node: Extension Sample API Tests1046347
+Node: gawkextlib1046838
+Node: Extension summary1049496
+Node: Extension Exercises1053185
+Node: Language History1053907
+Node: V7/SVR3.11055563
+Node: SVR41057744
+Node: POSIX1059189
+Node: BTL1060578
+Node: POSIX/GNU1061312
+Node: Feature History1066936
+Node: Common Extensions1080034
+Node: Ranges and Locales1081358
+Ref: Ranges and Locales-Footnote-11085976
+Ref: Ranges and Locales-Footnote-21086003
+Ref: Ranges and Locales-Footnote-31086237
+Node: Contributors1086458
+Node: History summary1091999
+Node: Installation1093369
+Node: Gawk Distribution1094315
+Node: Getting1094799
+Node: Extracting1095622
+Node: Distribution contents1097257
+Node: Unix Installation1103322
+Node: Quick Installation1104005
+Node: Shell Startup Files1106416
+Node: Additional Configuration Options1107495
+Node: Configuration Philosophy1109234
+Node: Non-Unix Installation1111603
+Node: PC Installation1112061
+Node: PC Binary Installation1113380
+Node: PC Compiling1115228
+Ref: PC Compiling-Footnote-11118249
+Node: PC Testing1118358
+Node: PC Using1119534
+Node: Cygwin1123649
+Node: MSYS1124472
+Node: VMS Installation1124972
+Node: VMS Compilation1125764
+Ref: VMS Compilation-Footnote-11126986
+Node: VMS Dynamic Extensions1127044
+Node: VMS Installation Details1128728
+Node: VMS Running1130980
+Node: VMS GNV1133816
+Node: VMS Old Gawk1134550
+Node: Bugs1135020
+Node: Other Versions1138903
+Node: Installation summary1145331
+Node: Notes1146387
+Node: Compatibility Mode1147252
+Node: Additions1148034
+Node: Accessing The Source1148959
+Node: Adding Code1150395
+Node: New Ports1156560
+Node: Derived Files1161042
+Ref: Derived Files-Footnote-11166517
+Ref: Derived Files-Footnote-21166551
+Ref: Derived Files-Footnote-31167147
+Node: Future Extensions1167261
+Node: Implementation Limitations1167867
+Node: Extension Design1169115
+Node: Old Extension Problems1170269
+Ref: Old Extension Problems-Footnote-11171786
+Node: Extension New Mechanism Goals1171843
+Ref: Extension New Mechanism Goals-Footnote-11175203
+Node: Extension Other Design Decisions1175392
+Node: Extension Future Growth1177500
+Node: Old Extension Mechanism1178336
+Node: Notes summary1180098
+Node: Basic Concepts1181284
+Node: Basic High Level1181965
+Ref: figure-general-flow1182237
+Ref: figure-process-flow1182836
+Ref: Basic High Level-Footnote-11186065
+Node: Basic Data Typing1186250
+Node: Glossary1189578
+Node: Copying1214736
+Node: GNU Free Documentation License1252292
+Node: Index1277428

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 4b6e68c1..1c3c0f78 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -1270,6 +1270,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
@@ -11843,7 +11846,7 @@ The post-increment @samp{foo++} is nearly the same as writing @samp{(foo
not necessarily equal @code{foo}. But the difference is minute as
long as you stick to numbers that are fairly small (less than
@iftex
-@math{10^12}).
+@math{10^{12}}).
@end iftex
@ifnottex
@ifnotdocbook
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index f330e8e0..8bdf1a70 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -1265,6 +1265,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
@@ -11230,7 +11233,7 @@ The post-increment @samp{foo++} is nearly the same as writing @samp{(foo
not necessarily equal @code{foo}. But the difference is minute as
long as you stick to numbers that are fairly small (less than
@iftex
-@math{10^12}).
+@math{10^{12}}).
@end iftex
@ifnottex
@ifnotdocbook
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 7506dffb..370d4505 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2014-03-18.17}
+\def\texinfoversion{2014-12-03.16}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -96,7 +96,9 @@
\let\ptexraggedright=\raggedright
\let\ptexrbrace=\}
\let\ptexslash=\/
+\let\ptexsp=\sp
\let\ptexstar=\*
+\let\ptexsup=\sup
\let\ptext=\t
\let\ptextop=\top
{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode
@@ -1010,24 +1012,15 @@ where each line of input produces a line of output.}
% paragraph.
%
\gdef\dosuppressfirstparagraphindent{%
- \gdef\indent{%
- \restorefirstparagraphindent
- \indent
- }%
- \gdef\noindent{%
- \restorefirstparagraphindent
- \noindent
- }%
- \global\everypar = {%
- \kern -\parindent
- \restorefirstparagraphindent
- }%
+ \gdef\indent {\restorefirstparagraphindent \indent}%
+ \gdef\noindent{\restorefirstparagraphindent \noindent}%
+ \global\everypar = {\kern -\parindent \restorefirstparagraphindent}%
}
-
+%
\gdef\restorefirstparagraphindent{%
- \global \let \indent = \ptexindent
- \global \let \noindent = \ptexnoindent
- \global \everypar = {}%
+ \global\let\indent = \ptexindent
+ \global\let\noindent = \ptexnoindent
+ \global\everypar = {}%
}
@@ -2090,12 +2083,9 @@ end
\endgroup
}
-
% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts except
-% in the main text, we don't bother to reset \scriptfont and
-% \scriptscriptfont (which would also require loading a lot more fonts).
+% we have to define the \textfont of the standard families. We don't
+% bother to reset \scriptfont and \scriptscriptfont; awaiting user need.
%
\def\resetmathfonts{%
\textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
@@ -2109,8 +2099,8 @@ end
% \tenSTYLE to set the current font.
%
% Each font-changing command also sets the names \lsize (one size lower)
-% and \lllsize (three sizes lower). These relative commands are used in
-% the LaTeX logo and acronyms.
+% and \lllsize (three sizes lower). These relative commands are used
+% in, e.g., the LaTeX logo and acronyms.
%
% This all needs generalizing, badly.
%
@@ -2146,7 +2136,7 @@ end
\let\tenttsl=\secttsl
\def\curfontsize{sec}%
\def\lsize{subsec}\def\lllsize{reduced}%
- \resetmathfonts \setleading{16pt}}
+ \resetmathfonts \setleading{17pt}}
\def\subsecfonts{%
\let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
\let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
@@ -2851,6 +2841,8 @@ end
\let\v=\check
\let\~=\tilde
\let\dotaccent=\dot
+ % have to provide another name for sup operator
+ \let\mathopsup=\sup
$\finishmath
}
\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
@@ -2874,6 +2866,18 @@ end
}
}
+% for @sub and @sup, if in math mode, just do a normal sub/superscript.
+% If in text, use math to place as sub/superscript, but switch
+% into text mode, with smaller fonts. This is a different font than the
+% one used for real math sub/superscripts (8pt vs. 7pt), but let's not
+% fix it (significant additions to font machinery) until someone notices.
+%
+\def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi}
+\def\finishsub#1{$\sb{\hbox{\selectfonts\lllsize #1}}$}%
+%
+\def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi}
+\def\finishsup#1{$\ptexsp{\hbox{\selectfonts\lllsize #1}}$}%
+
% ctrl is no longer a Texinfo command, but leave this definition for fun.
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
@@ -5739,13 +5743,16 @@ end
%
% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
% Yappendix, Yomitfromtoc), #3 the chapter number.
+% Not used for @heading series.
%
% To test against our argument.
\def\Ynothingkeyword{Ynothing}
-\def\Yomitfromtockeyword{Yomitfromtoc}
\def\Yappendixkeyword{Yappendix}
+\def\Yomitfromtockeyword{Yomitfromtoc}
%
\def\chapmacro#1#2#3{%
+ \checkenv{}% chapters, etc., should not start inside an environment.
+ %
% Insert the first mark before the heading break (see notes for \domark).
\let\prevchapterdefs=\lastchapterdefs
\let\prevsectiondefs=\lastsectiondefs
@@ -5798,6 +5805,7 @@ end
%
{%
\chapfonts \rmisbold
+ \let\footnote=\errfootnoteheading % give better error message
%
% Have to define \lastsection before calling \donoderef, because the
% xref code eventually uses it. On the other hand, it has to be called
@@ -5891,22 +5899,29 @@ end
% Print any size, any type, section title.
%
-% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
-% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
-% section number.
+% #1 is the text of the title,
+% #2 is the section level (sec/subsec/subsubsec),
+% #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc),
+% #4 is the section number.
%
\def\seckeyword{sec}
%
\def\sectionheading#1#2#3#4{%
{%
- \checkenv{}% should not be in an environment.
+ \def\sectionlevel{#2}%
+ \def\temptype{#3}%
+ %
+ % It is ok for the @heading series commands to appear inside an
+ % environment (it's been historically allowed, though the logic is
+ % dubious), but not the others.
+ \ifx\temptype\Yomitfromtockeyword\else
+ \checkenv{}% non-@*heading should not be in an environment.
+ \fi
+ \let\footnote=\errfootnoteheading
%
% Switch to the right set of fonts.
\csname #2fonts\endcsname \rmisbold
%
- \def\sectionlevel{#2}%
- \def\temptype{#3}%
- %
% Insert first mark before the heading break (see notes for \domark).
\let\prevsectiondefs=\lastsectiondefs
\ifx\temptype\Ynothingkeyword
@@ -6333,6 +6348,7 @@ end
% other math active characters (just in case), to plain's definitions.
\mathactive
%
+ % Inverse of the list at the beginning of the file.
\let\b=\ptexb
\let\bullet=\ptexbullet
\let\c=\ptexc
@@ -6348,7 +6364,9 @@ end
\let\+=\tabalign
\let\}=\ptexrbrace
\let\/=\ptexslash
+ \let\sp=\ptexsp
\let\*=\ptexstar
+ %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode
\let\t=\ptext
\expandafter \let\csname top\endcsname=\ptextop % we've made it outer
\let\frenchspacing=\plainfrenchspacing
@@ -7414,7 +7432,6 @@ end
%
% \anythingelse will almost certainly be an error of some kind.
-
% \mbodybackslash is the definition of \ in @macro bodies.
% It maps \foo\ => \csname macarg.foo\endcsname => #N
% where N is the macro parameter number.
@@ -7523,8 +7540,7 @@ end
% the catcode regime underwhich the body was input).
%
% If you compile with TeX (not eTeX), and you have macros with 10 or more
-% arguments, you need that no macro has more than 256 arguments, otherwise an
-% error is produced.
+% arguments, no macro can have more than 256 arguments (else error).
\def\parsemargdef#1;{%
\paramno=0\def\paramlist{}%
\let\hash\relax
@@ -8359,9 +8375,6 @@ end
%
% Auto-number footnotes. Otherwise like plain.
\gdef\footnote{%
- \let\indent=\ptexindent
- \let\noindent=\ptexnoindent
- %
\global\advance\footnoteno by \@ne
\edef\thisfootno{$^{\the\footnoteno}$}%
%
@@ -8388,7 +8401,7 @@ end
%
% Nested footnotes are not supported in TeX, that would take a lot
% more work. (\startsavinginserts does not suffice.)
- \let\footnote=\errfootnote
+ \let\footnote=\errfootnotenest
%
% We want to typeset this text as a normal paragraph, even if the
% footnote reference occurs in (for example) a display environment.
@@ -8427,12 +8440,17 @@ end
}
}%end \catcode `\@=11
-\def\errfootnote{%
+\def\errfootnotenest{%
\errhelp=\EMsimple
\errmessage{Nested footnotes not supported in texinfo.tex,
even though they work in makeinfo; sorry}
}
+\def\errfootnoteheading{%
+ \errhelp=\EMsimple
+ \errmessage{Footnotes in chapters, sections, etc., are not supported}
+}
+
% In case a @footnote appears in a vbox, save the footnote text and create
% the real \insert just after the vbox finished. Otherwise, the insertion
% would be lost.
@@ -8856,20 +8874,20 @@ end
{
\catcode`\_ = \active
\globaldefs=1
-\parseargdef\documentlanguage{\begingroup
- \let_=\normalunderscore % normal _ character for filenames
+\parseargdef\documentlanguage{%
\tex % read txi-??.tex file in plain TeX.
% Read the file by the name they passed if it exists.
+ \let_ = \normalunderscore % normal _ character for filename test
\openin 1 txi-#1.tex
\ifeof 1
- \documentlanguagetrywithoutunderscore{#1_\finish}%
+ \documentlanguagetrywithoutunderscore #1_\finish
\else
\globaldefs = 1 % everything in the txi-LL files needs to persist
\input txi-#1.tex
\fi
\closein 1
\endgroup % end raw TeX
-\endgroup}
+}
%
% If they passed de_DE, and txi-de_DE.tex doesn't exist,
% try txi-de.tex.
@@ -9279,6 +9297,18 @@ directory should work if nowhere else does.}
\UTFviiiLoop
\endgroup
+\def\globallet{\global\let} % save some \expandafter's below
+
+% @U{xxxx} to produce U+xxxx, if we support it.
+\def\U#1{%
+ \expandafter\ifx\csname uni:#1\endcsname \relax
+ \errhelp = \EMsimple
+ \errmessage{Unicode character U+#1 not supported, sorry}%
+ \else
+ \csname uni:#1\endcsname
+ \fi
+}
+
\begingroup
\catcode`\"=12
\catcode`\<=12
@@ -9287,7 +9317,6 @@ directory should work if nowhere else does.}
\catcode`\;=12
\catcode`\!=12
\catcode`\~=13
-
\gdef\DeclareUnicodeCharacter#1#2{%
\countUTFz = "#1\relax
%\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
@@ -9302,6 +9331,8 @@ directory should work if nowhere else does.}
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter
\gdef\UTFviiiTmp{#2}%
+ % define an additional control sequence for this code point.
+ \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
\endgroup}
\gdef\parseXMLCharref{%