aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog1
-rw-r--r--doc/gawk.info1066
-rw-r--r--doc/gawk.texi38
3 files changed, 593 insertions, 512 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 82ae98b7..a2c1eaa2 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -20,6 +20,7 @@
* 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.
+ (Old Extension Mechansim): New node.
2012-12-01 Arnold D. Robbins <arnold@skeeve.com>
diff --git a/doc/gawk.info b/doc/gawk.info
index 6843effe..24838360 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -637,6 +637,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* Future Extensions:: New features that may be implemented
one day.
* Implementation Limitations:: Some limitations of the implementation.
+* Old Extension Mechansim:: Some compatibility for old extensions.
* Basic High Level:: The high level view.
* Basic Data Typing:: A very quick intro to data types.
@@ -26496,6 +26497,7 @@ and maintainers of `gawk'. Everything in it applies specifically to
* Additions:: Making Additions To `gawk'.
* Future Extensions:: New features that may be implemented one day.
* Implementation Limitations:: Some limitations of the implementation.
+* Old Extension Mechansim:: Some compatibility for old extensions.

File: gawk.info, Node: Compatibility Mode, Next: Additions, Up: Notes
@@ -26959,7 +26961,7 @@ Additions::, if you are interested in tackling any of the projects
listed there.

-File: gawk.info, Node: Implementation Limitations, Prev: Future Extensions, Up: Notes
+File: gawk.info, Node: Implementation Limitations, Next: Old Extension Mechansim, Prev: Future Extensions, Up: Notes
C.4 Some Limitations of the Implementation
==========================================
@@ -26990,6 +26992,45 @@ Size of a literal string `MAX_INT '
Size of a printf string `MAX_INT '

+File: gawk.info, Node: Old Extension Mechansim, Prev: Implementation Limitations, Up: Notes
+
+C.5 Compatibility For Old Extensions
+====================================
+
+*note Dynamic Extensions::, describes the supported API and mechanisms
+for writing extensions for `gawk'. This API was introduced in *FIXME:
+VERSION*. However, for many years `gawk' provided an extension
+mechanism that required knowledge of `gawk' internals and that was not
+as well designed.
+
+ In order to provide a transition period, `gawk' version *FIXME:
+VERSION* continues to support the original extension mechanism. This
+will be true for the life of exactly one major release. This support
+will be withdrawn, and removed from the source code, at the next major
+release.
+
+ Briefly, original-style extensions should be compiled by including
+the `awk.h' header file in the extension source code. Additionally, you
+must define the identifier `GAWK' when building (use `-DGAWK' with
+Unix-style compilers). Otherwise, the definitions in `gawkapi.h' will
+cause conflicts with those in `awk.h' and your extension will not
+compile.
+
+ Just as in previous versions, you load an old-style extension with
+the `extension()' built-in function (which is not otherwise documented).
+This function in turn finds and loads the shared object file containing
+the extension and calls its `dl_load()' C routine.
+
+ Because original-style and new-style extensions use different
+initialiation routines (`dl_load()' versus `dlload()'), they may safely
+be installed in the same directory (to be found by `AWKLIBPATH')
+without conflict.
+
+ The `gawk' development team strongly recommends that you convert any
+old extensions that you may have to use the new API described in *note
+Dynamic Extensions::.
+
+
File: gawk.info, Node: Basic Concepts, Next: Glossary, Prev: Notes, Up: Top
Appendix D Basic Programming Concepts
@@ -31779,516 +31820,517 @@ Index

Tag Table:
Node: Top1352
-Node: Foreword40138
-Node: Preface44483
-Ref: Preface-Footnote-147536
-Ref: Preface-Footnote-247642
-Node: History47874
-Node: Names50265
-Ref: Names-Footnote-151742
-Node: This Manual51814
-Ref: This Manual-Footnote-157720
-Node: Conventions57820
-Node: Manual History59954
-Ref: Manual History-Footnote-163224
-Ref: Manual History-Footnote-263265
-Node: How To Contribute63339
-Node: Acknowledgments64483
-Node: Getting Started68979
-Node: Running gawk71358
-Node: One-shot72544
-Node: Read Terminal73769
-Ref: Read Terminal-Footnote-175419
-Ref: Read Terminal-Footnote-275695
-Node: Long75866
-Node: Executable Scripts77242
-Ref: Executable Scripts-Footnote-179111
-Ref: Executable Scripts-Footnote-279213
-Node: Comments79760
-Node: Quoting82227
-Node: DOS Quoting86850
-Node: Sample Data Files87525
-Node: Very Simple90557
-Node: Two Rules95156
-Node: More Complex97303
-Ref: More Complex-Footnote-1100233
-Node: Statements/Lines100318
-Ref: Statements/Lines-Footnote-1104780
-Node: Other Features105045
-Node: When105973
-Node: Invoking Gawk108120
-Node: Command Line109581
-Node: Options110364
-Ref: Options-Footnote-1125762
-Node: Other Arguments125787
-Node: Naming Standard Input128445
-Node: Environment Variables129539
-Node: AWKPATH Variable130097
-Ref: AWKPATH Variable-Footnote-1132855
-Node: AWKLIBPATH Variable133115
-Node: Other Environment Variables133712
-Node: Exit Status136207
-Node: Include Files136882
-Node: Loading Shared Libraries140451
-Node: Obsolete141676
-Node: Undocumented142373
-Node: Regexp142616
-Node: Regexp Usage144005
-Node: Escape Sequences146031
-Node: Regexp Operators151794
-Ref: Regexp Operators-Footnote-1159174
-Ref: Regexp Operators-Footnote-2159321
-Node: Bracket Expressions159419
-Ref: table-char-classes161309
-Node: GNU Regexp Operators163832
-Node: Case-sensitivity167555
-Ref: Case-sensitivity-Footnote-1170523
-Ref: Case-sensitivity-Footnote-2170758
-Node: Leftmost Longest170866
-Node: Computed Regexps172067
-Node: Reading Files175477
-Node: Records177480
-Ref: Records-Footnote-1186404
-Node: Fields186441
-Ref: Fields-Footnote-1189474
-Node: Nonconstant Fields189560
-Node: Changing Fields191762
-Node: Field Separators197743
-Node: Default Field Splitting200372
-Node: Regexp Field Splitting201489
-Node: Single Character Fields204831
-Node: Command Line Field Separator205890
-Node: Field Splitting Summary209331
-Ref: Field Splitting Summary-Footnote-1212523
-Node: Constant Size212624
-Node: Splitting By Content217208
-Ref: Splitting By Content-Footnote-1220934
-Node: Multiple Line220974
-Ref: Multiple Line-Footnote-1226821
-Node: Getline227000
-Node: Plain Getline229216
-Node: Getline/Variable231305
-Node: Getline/File232446
-Node: Getline/Variable/File233768
-Ref: Getline/Variable/File-Footnote-1235367
-Node: Getline/Pipe235454
-Node: Getline/Variable/Pipe238014
-Node: Getline/Coprocess239121
-Node: Getline/Variable/Coprocess240364
-Node: Getline Notes241078
-Node: Getline Summary243865
-Ref: table-getline-variants244273
-Node: Read Timeout245131
-Ref: Read Timeout-Footnote-1248876
-Node: Command line directories248933
-Node: Printing249563
-Node: Print251194
-Node: Print Examples252531
-Node: Output Separators255315
-Node: OFMT257075
-Node: Printf258433
-Node: Basic Printf259339
-Node: Control Letters260878
-Node: Format Modifiers264690
-Node: Printf Examples270699
-Node: Redirection273414
-Node: Special Files280398
-Node: Special FD280931
-Ref: Special FD-Footnote-1284556
-Node: Special Network284630
-Node: Special Caveats285480
-Node: Close Files And Pipes286276
-Ref: Close Files And Pipes-Footnote-1293299
-Ref: Close Files And Pipes-Footnote-2293447
-Node: Expressions293597
-Node: Values294729
-Node: Constants295405
-Node: Scalar Constants296085
-Ref: Scalar Constants-Footnote-1296944
-Node: Nondecimal-numbers297126
-Node: Regexp Constants300185
-Node: Using Constant Regexps300660
-Node: Variables303715
-Node: Using Variables304370
-Node: Assignment Options306094
-Node: Conversion307966
-Ref: table-locale-affects313342
-Ref: Conversion-Footnote-1313966
-Node: All Operators314075
-Node: Arithmetic Ops314705
-Node: Concatenation317210
-Ref: Concatenation-Footnote-1320003
-Node: Assignment Ops320123
-Ref: table-assign-ops325111
-Node: Increment Ops326519
-Node: Truth Values and Conditions329989
-Node: Truth Values331072
-Node: Typing and Comparison332121
-Node: Variable Typing332910
-Ref: Variable Typing-Footnote-1336807
-Node: Comparison Operators336929
-Ref: table-relational-ops337339
-Node: POSIX String Comparison340888
-Ref: POSIX String Comparison-Footnote-1341844
-Node: Boolean Ops341982
-Ref: Boolean Ops-Footnote-1346060
-Node: Conditional Exp346151
-Node: Function Calls347883
-Node: Precedence351477
-Node: Locales355146
-Node: Patterns and Actions356235
-Node: Pattern Overview357289
-Node: Regexp Patterns358958
-Node: Expression Patterns359501
-Node: Ranges363186
-Node: BEGIN/END366152
-Node: Using BEGIN/END366914
-Ref: Using BEGIN/END-Footnote-1369645
-Node: I/O And BEGIN/END369751
-Node: BEGINFILE/ENDFILE372033
-Node: Empty374937
-Node: Using Shell Variables375253
-Node: Action Overview377538
-Node: Statements379895
-Node: If Statement381749
-Node: While Statement383248
-Node: Do Statement385292
-Node: For Statement386448
-Node: Switch Statement389600
-Node: Break Statement391697
-Node: Continue Statement393687
-Node: Next Statement395480
-Node: Nextfile Statement397870
-Node: Exit Statement400511
-Node: Built-in Variables402927
-Node: User-modified404022
-Ref: User-modified-Footnote-1412377
-Node: Auto-set412439
-Ref: Auto-set-Footnote-1424790
-Ref: Auto-set-Footnote-2424995
-Node: ARGC and ARGV425051
-Node: Arrays428902
-Node: Array Basics430407
-Node: Array Intro431233
-Node: Reference to Elements435551
-Node: Assigning Elements437821
-Node: Array Example438312
-Node: Scanning an Array440044
-Node: Controlling Scanning442358
-Ref: Controlling Scanning-Footnote-1447291
-Node: Delete447607
-Ref: Delete-Footnote-1450372
-Node: Numeric Array Subscripts450429
-Node: Uninitialized Subscripts452612
-Node: Multi-dimensional454240
-Node: Multi-scanning457334
-Node: Arrays of Arrays458925
-Node: Functions463570
-Node: Built-in464389
-Node: Calling Built-in465467
-Node: Numeric Functions467455
-Ref: Numeric Functions-Footnote-1471287
-Ref: Numeric Functions-Footnote-2471644
-Ref: Numeric Functions-Footnote-3471692
-Node: String Functions471961
-Ref: String Functions-Footnote-1495458
-Ref: String Functions-Footnote-2495587
-Ref: String Functions-Footnote-3495835
-Node: Gory Details495922
-Ref: table-sub-escapes497601
-Ref: table-sub-posix-92498955
-Ref: table-sub-proposed500306
-Ref: table-posix-sub501660
-Ref: table-gensub-escapes503205
-Ref: Gory Details-Footnote-1504412
-Ref: Gory Details-Footnote-2504463
-Node: I/O Functions504614
-Ref: I/O Functions-Footnote-1511719
-Node: Time Functions511866
-Ref: Time Functions-Footnote-1522758
-Ref: Time Functions-Footnote-2522826
-Ref: Time Functions-Footnote-3522984
-Ref: Time Functions-Footnote-4523095
-Ref: Time Functions-Footnote-5523207
-Ref: Time Functions-Footnote-6523434
-Node: Bitwise Functions523700
-Ref: table-bitwise-ops524258
-Ref: Bitwise Functions-Footnote-1528479
-Node: Type Functions528663
-Node: I18N Functions529133
-Node: User-defined530760
-Node: Definition Syntax531564
-Ref: Definition Syntax-Footnote-1536474
-Node: Function Example536543
-Node: Function Caveats539137
-Node: Calling A Function539558
-Node: Variable Scope540673
-Node: Pass By Value/Reference543636
-Node: Return Statement547076
-Node: Dynamic Typing550057
-Node: Indirect Calls550792
-Node: Library Functions560477
-Ref: Library Functions-Footnote-1563476
-Node: Library Names563647
-Ref: Library Names-Footnote-1567118
-Ref: Library Names-Footnote-2567338
-Node: General Functions567424
-Node: Strtonum Function568377
-Node: Assert Function571307
-Node: Round Function574633
-Node: Cliff Random Function576176
-Node: Ordinal Functions577192
-Ref: Ordinal Functions-Footnote-1580262
-Ref: Ordinal Functions-Footnote-2580514
-Node: Join Function580723
-Ref: Join Function-Footnote-1582494
-Node: Getlocaltime Function582694
-Node: Data File Management586409
-Node: Filetrans Function587041
-Node: Rewind Function591180
-Node: File Checking592567
-Node: Empty Files593661
-Node: Ignoring Assigns595891
-Node: Getopt Function597444
-Ref: Getopt Function-Footnote-1608748
-Node: Passwd Functions608951
-Ref: Passwd Functions-Footnote-1617926
-Node: Group Functions618014
-Node: Walking Arrays626098
-Node: Sample Programs627667
-Node: Running Examples628344
-Node: Clones629072
-Node: Cut Program630296
-Node: Egrep Program640141
-Ref: Egrep Program-Footnote-1647914
-Node: Id Program648024
-Node: Split Program651640
-Ref: Split Program-Footnote-1655159
-Node: Tee Program655287
-Node: Uniq Program658090
-Node: Wc Program665519
-Ref: Wc Program-Footnote-1669785
-Ref: Wc Program-Footnote-2669985
-Node: Miscellaneous Programs670077
-Node: Dupword Program671265
-Node: Alarm Program673296
-Node: Translate Program678045
-Ref: Translate Program-Footnote-1682432
-Ref: Translate Program-Footnote-2682660
-Node: Labels Program682794
-Ref: Labels Program-Footnote-1686165
-Node: Word Sorting686249
-Node: History Sorting690133
-Node: Extract Program691972
-Ref: Extract Program-Footnote-1699455
-Node: Simple Sed699583
-Node: Igawk Program702645
-Ref: Igawk Program-Footnote-1717802
-Ref: Igawk Program-Footnote-2718003
-Node: Anagram Program718141
-Node: Signature Program721209
-Node: Internationalization722309
-Node: I18N and L10N723741
-Node: Explaining gettext724427
-Ref: Explaining gettext-Footnote-1729493
-Ref: Explaining gettext-Footnote-2729677
-Node: Programmer i18n729842
-Node: Translator i18n734042
-Node: String Extraction734835
-Ref: String Extraction-Footnote-1735796
-Node: Printf Ordering735882
-Ref: Printf Ordering-Footnote-1738666
-Node: I18N Portability738730
-Ref: I18N Portability-Footnote-1741179
-Node: I18N Example741242
-Ref: I18N Example-Footnote-1743877
-Node: Gawk I18N743949
-Node: Advanced Features744566
-Node: Nondecimal Data746070
-Node: Array Sorting747653
-Node: Controlling Array Traversal748350
-Node: Array Sorting Functions756588
-Ref: Array Sorting Functions-Footnote-1760262
-Ref: Array Sorting Functions-Footnote-2760355
-Node: Two-way I/O760549
-Ref: Two-way I/O-Footnote-1765981
-Node: TCP/IP Networking766051
-Node: Profiling768895
-Node: Debugger776349
-Node: Debugging777317
-Node: Debugging Concepts777750
-Node: Debugging Terms779606
-Node: Awk Debugging782203
-Node: Sample Debugging Session783095
-Node: Debugger Invocation783615
-Node: Finding The Bug784944
-Node: List of Debugger Commands791432
-Node: Breakpoint Control792766
-Node: Debugger Execution Control796430
-Node: Viewing And Changing Data799790
-Node: Execution Stack803146
-Node: Debugger Info804613
-Node: Miscellaneous Debugger Commands808594
-Node: Readline Support814039
-Node: Limitations814870
-Node: Arbitrary Precision Arithmetic817122
-Ref: Arbitrary Precision Arithmetic-Footnote-1818764
-Node: General Arithmetic818912
-Node: Floating Point Issues820632
-Node: String Conversion Precision821513
-Ref: String Conversion Precision-Footnote-1823219
-Node: Unexpected Results823328
-Node: POSIX Floating Point Problems825481
-Ref: POSIX Floating Point Problems-Footnote-1829306
-Node: Integer Programming829344
-Node: Floating-point Programming831097
-Ref: Floating-point Programming-Footnote-1837406
-Node: Floating-point Representation837670
-Node: Floating-point Context838835
-Ref: table-ieee-formats839677
-Node: Rounding Mode841061
-Ref: table-rounding-modes841540
-Ref: Rounding Mode-Footnote-1844544
-Node: Gawk and MPFR844725
-Node: Arbitrary Precision Floats845967
-Ref: Arbitrary Precision Floats-Footnote-1848396
-Node: Setting Precision848707
-Node: Setting Rounding Mode851440
-Ref: table-gawk-rounding-modes851844
-Node: Floating-point Constants853024
-Node: Changing Precision854448
-Ref: Changing Precision-Footnote-1855848
-Node: Exact Arithmetic856022
-Node: Arbitrary Precision Integers859130
-Ref: Arbitrary Precision Integers-Footnote-1862130
-Node: Dynamic Extensions862277
-Node: Extension Intro863663
-Node: Plugin License864871
-Node: Extension Design865545
-Node: Old Extension Problems866616
-Ref: Old Extension Problems-Footnote-1868126
-Node: Extension New Mechanism Goals868183
-Ref: Extension New Mechanism Goals-Footnote-1870895
-Node: Extension Other Design Decisions871081
-Node: Extension Mechanism Outline873193
-Ref: load-extension874218
-Ref: load-new-function875696
-Ref: call-new-function876677
-Node: Extension Future Growth878671
-Node: Extension API Description879489
-Node: Extension API Functions Introduction880817
-Node: General Data Types885595
-Ref: General Data Types-Footnote-1891197
-Node: Requesting Values891496
-Ref: table-value-types-returned892227
-Node: Constructor Functions893181
-Node: Registration Functions896177
-Node: Extension Functions896862
-Node: Exit Callback Functions899036
-Node: Extension Version String900279
-Node: Input Parsers900929
-Node: Output Wrappers909516
-Node: Two-way processors913932
-Node: Printing Messages916062
-Ref: Printing Messages-Footnote-1917139
-Node: Updating `ERRNO'917291
-Node: Accessing Parameters918030
-Node: Symbol Table Access919260
-Node: Symbol table by name919772
-Ref: Symbol table by name-Footnote-1921942
-Node: Symbol table by cookie922022
-Ref: Symbol table by cookie-Footnote-1926151
-Node: Cached values926214
-Ref: Cached values-Footnote-1929657
-Node: Array Manipulation929748
-Ref: Array Manipulation-Footnote-1930846
-Node: Array Data Types930885
-Ref: Array Data Types-Footnote-1933588
-Node: Array Functions933680
-Node: Flattening Arrays937446
-Node: Creating Arrays944279
-Node: Extension API Variables949074
-Node: Extension Versioning949710
-Node: Extension API Informational Variables951611
-Node: Extension API Boilerplate952697
-Node: Finding Extensions956528
-Node: Extension Example957075
-Node: Internal File Description957813
-Node: Internal File Ops961501
-Ref: Internal File Ops-Footnote-1972948
-Node: Using Internal File Ops973088
-Ref: Using Internal File Ops-Footnote-1975441
-Node: Extension Samples975707
-Node: Extension Sample File Functions977150
-Node: Extension Sample Fnmatch985623
-Node: Extension Sample Fork987349
-Node: Extension Sample Ord988563
-Node: Extension Sample Readdir989339
-Node: Extension Sample Revout990843
-Node: Extension Sample Rev2way991436
-Node: Extension Sample Read write array992126
-Node: Extension Sample Readfile994009
-Node: Extension Sample API Tests994764
-Node: Extension Sample Time995289
-Node: gawkextlib996596
-Node: Language History998977
-Node: V7/SVR3.11000499
-Node: SVR41002820
-Node: POSIX1004262
-Node: BTL1005270
-Node: POSIX/GNU1006075
-Node: Common Extensions1011610
-Node: Ranges and Locales1012669
-Ref: Ranges and Locales-Footnote-11017287
-Ref: Ranges and Locales-Footnote-21017314
-Ref: Ranges and Locales-Footnote-31017574
-Node: Contributors1017795
-Node: Installation1022091
-Node: Gawk Distribution1022985
-Node: Getting1023469
-Node: Extracting1024295
-Node: Distribution contents1025987
-Node: Unix Installation1031248
-Node: Quick Installation1031865
-Node: Additional Configuration Options1033827
-Node: Configuration Philosophy1035304
-Node: Non-Unix Installation1037646
-Node: PC Installation1038104
-Node: PC Binary Installation1039403
-Node: PC Compiling1041251
-Node: PC Testing1044195
-Node: PC Using1045371
-Node: Cygwin1049556
-Node: MSYS1050556
-Node: VMS Installation1051070
-Node: VMS Compilation1051673
-Ref: VMS Compilation-Footnote-11052680
-Node: VMS Installation Details1052738
-Node: VMS Running1054373
-Node: VMS Old Gawk1055980
-Node: Bugs1056454
-Node: Other Versions1060306
-Node: Notes1065621
-Node: Compatibility Mode1066280
-Node: Additions1067063
-Node: Accessing The Source1067990
-Node: Adding Code1069593
-Node: New Ports1075635
-Node: Derived Files1079770
-Ref: Derived Files-Footnote-11085078
-Ref: Derived Files-Footnote-21085112
-Ref: Derived Files-Footnote-31085712
-Node: Future Extensions1085810
-Node: Implementation Limitations1086391
-Node: Basic Concepts1087618
-Node: Basic High Level1088299
-Ref: figure-general-flow1088570
-Ref: figure-process-flow1089169
-Ref: Basic High Level-Footnote-11092398
-Node: Basic Data Typing1092583
-Node: Glossary1095938
-Node: Copying1121249
-Node: GNU Free Documentation License1158806
-Node: Index1183943
+Node: Foreword40217
+Node: Preface44562
+Ref: Preface-Footnote-147615
+Ref: Preface-Footnote-247721
+Node: History47953
+Node: Names50344
+Ref: Names-Footnote-151821
+Node: This Manual51893
+Ref: This Manual-Footnote-157799
+Node: Conventions57899
+Node: Manual History60033
+Ref: Manual History-Footnote-163303
+Ref: Manual History-Footnote-263344
+Node: How To Contribute63418
+Node: Acknowledgments64562
+Node: Getting Started69058
+Node: Running gawk71437
+Node: One-shot72623
+Node: Read Terminal73848
+Ref: Read Terminal-Footnote-175498
+Ref: Read Terminal-Footnote-275774
+Node: Long75945
+Node: Executable Scripts77321
+Ref: Executable Scripts-Footnote-179190
+Ref: Executable Scripts-Footnote-279292
+Node: Comments79839
+Node: Quoting82306
+Node: DOS Quoting86929
+Node: Sample Data Files87604
+Node: Very Simple90636
+Node: Two Rules95235
+Node: More Complex97382
+Ref: More Complex-Footnote-1100312
+Node: Statements/Lines100397
+Ref: Statements/Lines-Footnote-1104859
+Node: Other Features105124
+Node: When106052
+Node: Invoking Gawk108199
+Node: Command Line109660
+Node: Options110443
+Ref: Options-Footnote-1125841
+Node: Other Arguments125866
+Node: Naming Standard Input128524
+Node: Environment Variables129618
+Node: AWKPATH Variable130176
+Ref: AWKPATH Variable-Footnote-1132934
+Node: AWKLIBPATH Variable133194
+Node: Other Environment Variables133791
+Node: Exit Status136286
+Node: Include Files136961
+Node: Loading Shared Libraries140530
+Node: Obsolete141755
+Node: Undocumented142452
+Node: Regexp142695
+Node: Regexp Usage144084
+Node: Escape Sequences146110
+Node: Regexp Operators151873
+Ref: Regexp Operators-Footnote-1159253
+Ref: Regexp Operators-Footnote-2159400
+Node: Bracket Expressions159498
+Ref: table-char-classes161388
+Node: GNU Regexp Operators163911
+Node: Case-sensitivity167634
+Ref: Case-sensitivity-Footnote-1170602
+Ref: Case-sensitivity-Footnote-2170837
+Node: Leftmost Longest170945
+Node: Computed Regexps172146
+Node: Reading Files175556
+Node: Records177559
+Ref: Records-Footnote-1186483
+Node: Fields186520
+Ref: Fields-Footnote-1189553
+Node: Nonconstant Fields189639
+Node: Changing Fields191841
+Node: Field Separators197822
+Node: Default Field Splitting200451
+Node: Regexp Field Splitting201568
+Node: Single Character Fields204910
+Node: Command Line Field Separator205969
+Node: Field Splitting Summary209410
+Ref: Field Splitting Summary-Footnote-1212602
+Node: Constant Size212703
+Node: Splitting By Content217287
+Ref: Splitting By Content-Footnote-1221013
+Node: Multiple Line221053
+Ref: Multiple Line-Footnote-1226900
+Node: Getline227079
+Node: Plain Getline229295
+Node: Getline/Variable231384
+Node: Getline/File232525
+Node: Getline/Variable/File233847
+Ref: Getline/Variable/File-Footnote-1235446
+Node: Getline/Pipe235533
+Node: Getline/Variable/Pipe238093
+Node: Getline/Coprocess239200
+Node: Getline/Variable/Coprocess240443
+Node: Getline Notes241157
+Node: Getline Summary243944
+Ref: table-getline-variants244352
+Node: Read Timeout245210
+Ref: Read Timeout-Footnote-1248955
+Node: Command line directories249012
+Node: Printing249642
+Node: Print251273
+Node: Print Examples252610
+Node: Output Separators255394
+Node: OFMT257154
+Node: Printf258512
+Node: Basic Printf259418
+Node: Control Letters260957
+Node: Format Modifiers264769
+Node: Printf Examples270778
+Node: Redirection273493
+Node: Special Files280477
+Node: Special FD281010
+Ref: Special FD-Footnote-1284635
+Node: Special Network284709
+Node: Special Caveats285559
+Node: Close Files And Pipes286355
+Ref: Close Files And Pipes-Footnote-1293378
+Ref: Close Files And Pipes-Footnote-2293526
+Node: Expressions293676
+Node: Values294808
+Node: Constants295484
+Node: Scalar Constants296164
+Ref: Scalar Constants-Footnote-1297023
+Node: Nondecimal-numbers297205
+Node: Regexp Constants300264
+Node: Using Constant Regexps300739
+Node: Variables303794
+Node: Using Variables304449
+Node: Assignment Options306173
+Node: Conversion308045
+Ref: table-locale-affects313421
+Ref: Conversion-Footnote-1314045
+Node: All Operators314154
+Node: Arithmetic Ops314784
+Node: Concatenation317289
+Ref: Concatenation-Footnote-1320082
+Node: Assignment Ops320202
+Ref: table-assign-ops325190
+Node: Increment Ops326598
+Node: Truth Values and Conditions330068
+Node: Truth Values331151
+Node: Typing and Comparison332200
+Node: Variable Typing332989
+Ref: Variable Typing-Footnote-1336886
+Node: Comparison Operators337008
+Ref: table-relational-ops337418
+Node: POSIX String Comparison340967
+Ref: POSIX String Comparison-Footnote-1341923
+Node: Boolean Ops342061
+Ref: Boolean Ops-Footnote-1346139
+Node: Conditional Exp346230
+Node: Function Calls347962
+Node: Precedence351556
+Node: Locales355225
+Node: Patterns and Actions356314
+Node: Pattern Overview357368
+Node: Regexp Patterns359037
+Node: Expression Patterns359580
+Node: Ranges363265
+Node: BEGIN/END366231
+Node: Using BEGIN/END366993
+Ref: Using BEGIN/END-Footnote-1369724
+Node: I/O And BEGIN/END369830
+Node: BEGINFILE/ENDFILE372112
+Node: Empty375016
+Node: Using Shell Variables375332
+Node: Action Overview377617
+Node: Statements379974
+Node: If Statement381828
+Node: While Statement383327
+Node: Do Statement385371
+Node: For Statement386527
+Node: Switch Statement389679
+Node: Break Statement391776
+Node: Continue Statement393766
+Node: Next Statement395559
+Node: Nextfile Statement397949
+Node: Exit Statement400590
+Node: Built-in Variables403006
+Node: User-modified404101
+Ref: User-modified-Footnote-1412456
+Node: Auto-set412518
+Ref: Auto-set-Footnote-1424869
+Ref: Auto-set-Footnote-2425074
+Node: ARGC and ARGV425130
+Node: Arrays428981
+Node: Array Basics430486
+Node: Array Intro431312
+Node: Reference to Elements435630
+Node: Assigning Elements437900
+Node: Array Example438391
+Node: Scanning an Array440123
+Node: Controlling Scanning442437
+Ref: Controlling Scanning-Footnote-1447370
+Node: Delete447686
+Ref: Delete-Footnote-1450451
+Node: Numeric Array Subscripts450508
+Node: Uninitialized Subscripts452691
+Node: Multi-dimensional454319
+Node: Multi-scanning457413
+Node: Arrays of Arrays459004
+Node: Functions463649
+Node: Built-in464468
+Node: Calling Built-in465546
+Node: Numeric Functions467534
+Ref: Numeric Functions-Footnote-1471366
+Ref: Numeric Functions-Footnote-2471723
+Ref: Numeric Functions-Footnote-3471771
+Node: String Functions472040
+Ref: String Functions-Footnote-1495537
+Ref: String Functions-Footnote-2495666
+Ref: String Functions-Footnote-3495914
+Node: Gory Details496001
+Ref: table-sub-escapes497680
+Ref: table-sub-posix-92499034
+Ref: table-sub-proposed500385
+Ref: table-posix-sub501739
+Ref: table-gensub-escapes503284
+Ref: Gory Details-Footnote-1504491
+Ref: Gory Details-Footnote-2504542
+Node: I/O Functions504693
+Ref: I/O Functions-Footnote-1511798
+Node: Time Functions511945
+Ref: Time Functions-Footnote-1522837
+Ref: Time Functions-Footnote-2522905
+Ref: Time Functions-Footnote-3523063
+Ref: Time Functions-Footnote-4523174
+Ref: Time Functions-Footnote-5523286
+Ref: Time Functions-Footnote-6523513
+Node: Bitwise Functions523779
+Ref: table-bitwise-ops524337
+Ref: Bitwise Functions-Footnote-1528558
+Node: Type Functions528742
+Node: I18N Functions529212
+Node: User-defined530839
+Node: Definition Syntax531643
+Ref: Definition Syntax-Footnote-1536553
+Node: Function Example536622
+Node: Function Caveats539216
+Node: Calling A Function539637
+Node: Variable Scope540752
+Node: Pass By Value/Reference543715
+Node: Return Statement547155
+Node: Dynamic Typing550136
+Node: Indirect Calls550871
+Node: Library Functions560556
+Ref: Library Functions-Footnote-1563555
+Node: Library Names563726
+Ref: Library Names-Footnote-1567197
+Ref: Library Names-Footnote-2567417
+Node: General Functions567503
+Node: Strtonum Function568456
+Node: Assert Function571386
+Node: Round Function574712
+Node: Cliff Random Function576255
+Node: Ordinal Functions577271
+Ref: Ordinal Functions-Footnote-1580341
+Ref: Ordinal Functions-Footnote-2580593
+Node: Join Function580802
+Ref: Join Function-Footnote-1582573
+Node: Getlocaltime Function582773
+Node: Data File Management586488
+Node: Filetrans Function587120
+Node: Rewind Function591259
+Node: File Checking592646
+Node: Empty Files593740
+Node: Ignoring Assigns595970
+Node: Getopt Function597523
+Ref: Getopt Function-Footnote-1608827
+Node: Passwd Functions609030
+Ref: Passwd Functions-Footnote-1618005
+Node: Group Functions618093
+Node: Walking Arrays626177
+Node: Sample Programs627746
+Node: Running Examples628423
+Node: Clones629151
+Node: Cut Program630375
+Node: Egrep Program640220
+Ref: Egrep Program-Footnote-1647993
+Node: Id Program648103
+Node: Split Program651719
+Ref: Split Program-Footnote-1655238
+Node: Tee Program655366
+Node: Uniq Program658169
+Node: Wc Program665598
+Ref: Wc Program-Footnote-1669864
+Ref: Wc Program-Footnote-2670064
+Node: Miscellaneous Programs670156
+Node: Dupword Program671344
+Node: Alarm Program673375
+Node: Translate Program678124
+Ref: Translate Program-Footnote-1682511
+Ref: Translate Program-Footnote-2682739
+Node: Labels Program682873
+Ref: Labels Program-Footnote-1686244
+Node: Word Sorting686328
+Node: History Sorting690212
+Node: Extract Program692051
+Ref: Extract Program-Footnote-1699534
+Node: Simple Sed699662
+Node: Igawk Program702724
+Ref: Igawk Program-Footnote-1717881
+Ref: Igawk Program-Footnote-2718082
+Node: Anagram Program718220
+Node: Signature Program721288
+Node: Internationalization722388
+Node: I18N and L10N723820
+Node: Explaining gettext724506
+Ref: Explaining gettext-Footnote-1729572
+Ref: Explaining gettext-Footnote-2729756
+Node: Programmer i18n729921
+Node: Translator i18n734121
+Node: String Extraction734914
+Ref: String Extraction-Footnote-1735875
+Node: Printf Ordering735961
+Ref: Printf Ordering-Footnote-1738745
+Node: I18N Portability738809
+Ref: I18N Portability-Footnote-1741258
+Node: I18N Example741321
+Ref: I18N Example-Footnote-1743956
+Node: Gawk I18N744028
+Node: Advanced Features744645
+Node: Nondecimal Data746149
+Node: Array Sorting747732
+Node: Controlling Array Traversal748429
+Node: Array Sorting Functions756667
+Ref: Array Sorting Functions-Footnote-1760341
+Ref: Array Sorting Functions-Footnote-2760434
+Node: Two-way I/O760628
+Ref: Two-way I/O-Footnote-1766060
+Node: TCP/IP Networking766130
+Node: Profiling768974
+Node: Debugger776428
+Node: Debugging777396
+Node: Debugging Concepts777829
+Node: Debugging Terms779685
+Node: Awk Debugging782282
+Node: Sample Debugging Session783174
+Node: Debugger Invocation783694
+Node: Finding The Bug785023
+Node: List of Debugger Commands791511
+Node: Breakpoint Control792845
+Node: Debugger Execution Control796509
+Node: Viewing And Changing Data799869
+Node: Execution Stack803225
+Node: Debugger Info804692
+Node: Miscellaneous Debugger Commands808673
+Node: Readline Support814118
+Node: Limitations814949
+Node: Arbitrary Precision Arithmetic817201
+Ref: Arbitrary Precision Arithmetic-Footnote-1818843
+Node: General Arithmetic818991
+Node: Floating Point Issues820711
+Node: String Conversion Precision821592
+Ref: String Conversion Precision-Footnote-1823298
+Node: Unexpected Results823407
+Node: POSIX Floating Point Problems825560
+Ref: POSIX Floating Point Problems-Footnote-1829385
+Node: Integer Programming829423
+Node: Floating-point Programming831176
+Ref: Floating-point Programming-Footnote-1837485
+Node: Floating-point Representation837749
+Node: Floating-point Context838914
+Ref: table-ieee-formats839756
+Node: Rounding Mode841140
+Ref: table-rounding-modes841619
+Ref: Rounding Mode-Footnote-1844623
+Node: Gawk and MPFR844804
+Node: Arbitrary Precision Floats846046
+Ref: Arbitrary Precision Floats-Footnote-1848475
+Node: Setting Precision848786
+Node: Setting Rounding Mode851519
+Ref: table-gawk-rounding-modes851923
+Node: Floating-point Constants853103
+Node: Changing Precision854527
+Ref: Changing Precision-Footnote-1855927
+Node: Exact Arithmetic856101
+Node: Arbitrary Precision Integers859209
+Ref: Arbitrary Precision Integers-Footnote-1862209
+Node: Dynamic Extensions862356
+Node: Extension Intro863742
+Node: Plugin License864950
+Node: Extension Design865624
+Node: Old Extension Problems866695
+Ref: Old Extension Problems-Footnote-1868205
+Node: Extension New Mechanism Goals868262
+Ref: Extension New Mechanism Goals-Footnote-1870974
+Node: Extension Other Design Decisions871160
+Node: Extension Mechanism Outline873272
+Ref: load-extension874297
+Ref: load-new-function875775
+Ref: call-new-function876756
+Node: Extension Future Growth878750
+Node: Extension API Description879568
+Node: Extension API Functions Introduction880896
+Node: General Data Types885674
+Ref: General Data Types-Footnote-1891276
+Node: Requesting Values891575
+Ref: table-value-types-returned892306
+Node: Constructor Functions893260
+Node: Registration Functions896256
+Node: Extension Functions896941
+Node: Exit Callback Functions899115
+Node: Extension Version String900358
+Node: Input Parsers901008
+Node: Output Wrappers909595
+Node: Two-way processors914011
+Node: Printing Messages916141
+Ref: Printing Messages-Footnote-1917218
+Node: Updating `ERRNO'917370
+Node: Accessing Parameters918109
+Node: Symbol Table Access919339
+Node: Symbol table by name919851
+Ref: Symbol table by name-Footnote-1922021
+Node: Symbol table by cookie922101
+Ref: Symbol table by cookie-Footnote-1926230
+Node: Cached values926293
+Ref: Cached values-Footnote-1929736
+Node: Array Manipulation929827
+Ref: Array Manipulation-Footnote-1930925
+Node: Array Data Types930964
+Ref: Array Data Types-Footnote-1933667
+Node: Array Functions933759
+Node: Flattening Arrays937525
+Node: Creating Arrays944358
+Node: Extension API Variables949153
+Node: Extension Versioning949789
+Node: Extension API Informational Variables951690
+Node: Extension API Boilerplate952776
+Node: Finding Extensions956607
+Node: Extension Example957154
+Node: Internal File Description957892
+Node: Internal File Ops961580
+Ref: Internal File Ops-Footnote-1973027
+Node: Using Internal File Ops973167
+Ref: Using Internal File Ops-Footnote-1975520
+Node: Extension Samples975786
+Node: Extension Sample File Functions977229
+Node: Extension Sample Fnmatch985702
+Node: Extension Sample Fork987428
+Node: Extension Sample Ord988642
+Node: Extension Sample Readdir989418
+Node: Extension Sample Revout990922
+Node: Extension Sample Rev2way991515
+Node: Extension Sample Read write array992205
+Node: Extension Sample Readfile994088
+Node: Extension Sample API Tests994843
+Node: Extension Sample Time995368
+Node: gawkextlib996675
+Node: Language History999056
+Node: V7/SVR3.11000578
+Node: SVR41002899
+Node: POSIX1004341
+Node: BTL1005349
+Node: POSIX/GNU1006154
+Node: Common Extensions1011689
+Node: Ranges and Locales1012748
+Ref: Ranges and Locales-Footnote-11017366
+Ref: Ranges and Locales-Footnote-21017393
+Ref: Ranges and Locales-Footnote-31017653
+Node: Contributors1017874
+Node: Installation1022170
+Node: Gawk Distribution1023064
+Node: Getting1023548
+Node: Extracting1024374
+Node: Distribution contents1026066
+Node: Unix Installation1031327
+Node: Quick Installation1031944
+Node: Additional Configuration Options1033906
+Node: Configuration Philosophy1035383
+Node: Non-Unix Installation1037725
+Node: PC Installation1038183
+Node: PC Binary Installation1039482
+Node: PC Compiling1041330
+Node: PC Testing1044274
+Node: PC Using1045450
+Node: Cygwin1049635
+Node: MSYS1050635
+Node: VMS Installation1051149
+Node: VMS Compilation1051752
+Ref: VMS Compilation-Footnote-11052759
+Node: VMS Installation Details1052817
+Node: VMS Running1054452
+Node: VMS Old Gawk1056059
+Node: Bugs1056533
+Node: Other Versions1060385
+Node: Notes1065700
+Node: Compatibility Mode1066430
+Node: Additions1067213
+Node: Accessing The Source1068140
+Node: Adding Code1069743
+Node: New Ports1075785
+Node: Derived Files1079920
+Ref: Derived Files-Footnote-11085228
+Ref: Derived Files-Footnote-21085262
+Ref: Derived Files-Footnote-31085862
+Node: Future Extensions1085960
+Node: Implementation Limitations1086541
+Node: Old Extension Mechansim1087800
+Node: Basic Concepts1089567
+Node: Basic High Level1090248
+Ref: figure-general-flow1090519
+Ref: figure-process-flow1091118
+Ref: Basic High Level-Footnote-11094347
+Node: Basic Data Typing1094532
+Node: Glossary1097887
+Node: Copying1123198
+Node: GNU Free Documentation License1160755
+Node: Index1185892

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 77f8b527..fca7cebb 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -845,6 +845,7 @@ particular records in a file and perform operations upon them.
* Future Extensions:: New features that may be implemented
one day.
* Implementation Limitations:: Some limitations of the implementation.
+* Old Extension Mechansim:: Some compatibility for old extensions.
* Basic High Level:: The high level view.
* Basic Data Typing:: A very quick intro to data types.
@end detailmenu
@@ -34303,6 +34304,7 @@ maintainers of @command{gawk}. Everything in it applies specifically to
* Additions:: Making Additions To @command{gawk}.
* Future Extensions:: New features that may be implemented one day.
* Implementation Limitations:: Some limitations of the implementation.
+* Old Extension Mechansim:: Some compatibility for old extensions.
@end menu
@node Compatibility Mode
@@ -34933,6 +34935,42 @@ different limits.
@item Size of a printf string @tab @code{MAX_INT }
@end multitable
+@node Old Extension Mechansim
+@appendixsec Compatibility For Old Extensions
+
+@ref{Dynamic Extensions}, describes the supported API and mechanisms
+for writing extensions for @command{gawk}. This API was introduced
+in @strong{FIXME: VERSION}. However, for many years @command{gawk}
+provided an extension mechanism that required knowledge of @command{gawk}
+internals and that was not as well designed.
+
+In order to provide a transition period, @command{gawk} version
+@strong{FIXME: VERSION} continues to support the original extension mechanism.
+This will be true for the life of exactly one major release. This support
+will be withdrawn, and removed from the source code, at the next major
+release.
+
+Briefly, original-style extensions should be compiled by including the
+@file{awk.h} header file in the extension source code. Additionally,
+you must define the identifier @samp{GAWK} when building (use
+@samp{-DGAWK} with Unix-style compilers). Otherwise, the definitions
+in @file{gawkapi.h} will cause conflicts with those in @file{awk.h}
+and your extension will not compile.
+
+Just as in previous versions, you load an old-style extension with the
+@code{extension()} built-in function (which is not otherwise documented).
+This function in turn finds and loads the shared object file containing
+the extension and calls its @code{dl_load()} C routine.
+
+Because original-style and new-style extensions use different initialiation
+routines (@code{dl_load()} versus @code{dlload()}), they may safely
+be installed in the same directory (to be found by @env{AWKLIBPATH})
+without conflict.
+
+The @command{gawk} development team strongly recommends that you
+convert any old extensions that you may have to use the new API
+described in @ref{Dynamic Extensions}.
+
@c ENDOFRANGE impis
@c ENDOFRANGE gawii