aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1081
1 files changed, 561 insertions, 520 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index b3c7a696..693d2dcf 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -631,8 +631,8 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
`git' repository.
* Future Extensions:: New features that may be implemented
one day.
-* Implementation Limitations:: Some limitations of the
- implementation.
+* Implementation Limitations:: Some limitations of the implementation.
+* Old Extension Mechansim:: Some compatibility for old extensions.
* Extension Design:: Design notes about the extension API.
* Old Extension Problems:: Problems with the old mechanism.
* Extension New Mechanism Goals:: Goals for the new mechanism.
@@ -26287,6 +26287,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.
* Extension Design:: Design notes about the extension API.

@@ -26751,7 +26752,7 @@ Additions::, if you are interested in tackling any of the projects
listed there.

-File: gawk.info, Node: Implementation Limitations, Next: Extension Design, 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
==========================================
@@ -26782,9 +26783,48 @@ Size of a literal string `MAX_INT '
Size of a printf string `MAX_INT '

-File: gawk.info, Node: Extension Design, Prev: Implementation Limitations, Up: Notes
+File: gawk.info, Node: Old Extension Mechansim, Next: Extension Design, Prev: Implementation Limitations, Up: Notes
-C.5 Extension API Design
+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: Extension Design, Prev: Old Extension Mechansim, Up: Notes
+
+C.6 Extension API Design
========================
This minor node documents the design of the extension API, including a
@@ -26812,7 +26852,7 @@ mechanism was bolted onto the side and was not really thought out.

File: gawk.info, Node: Old Extension Problems, Next: Extension New Mechanism Goals, Up: Extension Design
-C.5.1 Problems With The Old Mechanism
+C.6.1 Problems With The Old Mechanism
-------------------------------------
The old extension mechanism had several problems:
@@ -26848,7 +26888,7 @@ it together. More information about the `xgawk' project is provided in

File: gawk.info, Node: Extension New Mechanism Goals, Next: Extension Other Design Decisions, Prev: Old Extension Problems, Up: Extension Design
-C.5.2 Goals For A New Mechanism
+C.6.2 Goals For A New Mechanism
-------------------------------
Some goals for the new API were:
@@ -26933,7 +26973,7 @@ dynamically at runtime is problematic on Windows.

File: gawk.info, Node: Extension Other Design Decisions, Next: Extension Future Growth, Prev: Extension New Mechanism Goals, Up: Extension Design
-C.5.3 Other Design Decisions
+C.6.3 Other Design Decisions
----------------------------
As an arbitrary design decision, extensions can read the values of
@@ -26977,7 +27017,7 @@ extensions.

File: gawk.info, Node: Extension Future Growth, Prev: Extension Other Design Decisions, Up: Extension Design
-C.5.4 Room For Future Growth
+C.6.4 Room For Future Growth
----------------------------
The API can later be expanded, in two ways:
@@ -31785,516 +31825,517 @@ Index

Tag Table:
Node: Top1352
-Node: Foreword40178
-Node: Preface44523
-Ref: Preface-Footnote-147576
-Ref: Preface-Footnote-247682
-Node: History47914
-Node: Names50305
-Ref: Names-Footnote-151782
-Node: This Manual51854
-Ref: This Manual-Footnote-157760
-Node: Conventions57860
-Node: Manual History59994
-Ref: Manual History-Footnote-163264
-Ref: Manual History-Footnote-263305
-Node: How To Contribute63379
-Node: Acknowledgments64523
-Node: Getting Started69019
-Node: Running gawk71398
-Node: One-shot72584
-Node: Read Terminal73809
-Ref: Read Terminal-Footnote-175459
-Ref: Read Terminal-Footnote-275735
-Node: Long75906
-Node: Executable Scripts77282
-Ref: Executable Scripts-Footnote-179151
-Ref: Executable Scripts-Footnote-279253
-Node: Comments79800
-Node: Quoting82267
-Node: DOS Quoting86890
-Node: Sample Data Files87565
-Node: Very Simple90597
-Node: Two Rules95196
-Node: More Complex97343
-Ref: More Complex-Footnote-1100273
-Node: Statements/Lines100358
-Ref: Statements/Lines-Footnote-1104820
-Node: Other Features105085
-Node: When106013
-Node: Invoking Gawk108160
-Node: Command Line109621
-Node: Options110404
-Ref: Options-Footnote-1125802
-Node: Other Arguments125827
-Node: Naming Standard Input128485
-Node: Environment Variables129579
-Node: AWKPATH Variable130137
-Ref: AWKPATH Variable-Footnote-1132895
-Node: AWKLIBPATH Variable133155
-Node: Other Environment Variables133752
-Node: Exit Status136247
-Node: Include Files136922
-Node: Loading Shared Libraries140491
-Node: Obsolete141716
-Node: Undocumented142413
-Node: Regexp142656
-Node: Regexp Usage144045
-Node: Escape Sequences146071
-Node: Regexp Operators151834
-Ref: Regexp Operators-Footnote-1159214
-Ref: Regexp Operators-Footnote-2159361
-Node: Bracket Expressions159459
-Ref: table-char-classes161349
-Node: GNU Regexp Operators163872
-Node: Case-sensitivity167595
-Ref: Case-sensitivity-Footnote-1170563
-Ref: Case-sensitivity-Footnote-2170798
-Node: Leftmost Longest170906
-Node: Computed Regexps172107
-Node: Reading Files175517
-Node: Records177520
-Ref: Records-Footnote-1186444
-Node: Fields186481
-Ref: Fields-Footnote-1189514
-Node: Nonconstant Fields189600
-Node: Changing Fields191802
-Node: Field Separators197783
-Node: Default Field Splitting200412
-Node: Regexp Field Splitting201529
-Node: Single Character Fields204871
-Node: Command Line Field Separator205930
-Node: Field Splitting Summary209371
-Ref: Field Splitting Summary-Footnote-1212563
-Node: Constant Size212664
-Node: Splitting By Content217248
-Ref: Splitting By Content-Footnote-1220974
-Node: Multiple Line221014
-Ref: Multiple Line-Footnote-1226861
-Node: Getline227040
-Node: Plain Getline229256
-Node: Getline/Variable231345
-Node: Getline/File232486
-Node: Getline/Variable/File233808
-Ref: Getline/Variable/File-Footnote-1235407
-Node: Getline/Pipe235494
-Node: Getline/Variable/Pipe238054
-Node: Getline/Coprocess239161
-Node: Getline/Variable/Coprocess240404
-Node: Getline Notes241118
-Node: Getline Summary243905
-Ref: table-getline-variants244313
-Node: Read Timeout245171
-Ref: Read Timeout-Footnote-1248916
-Node: Command line directories248973
-Node: Printing249603
-Node: Print251234
-Node: Print Examples252571
-Node: Output Separators255355
-Node: OFMT257115
-Node: Printf258473
-Node: Basic Printf259379
-Node: Control Letters260918
-Node: Format Modifiers264730
-Node: Printf Examples270739
-Node: Redirection273454
-Node: Special Files280438
-Node: Special FD280971
-Ref: Special FD-Footnote-1284596
-Node: Special Network284670
-Node: Special Caveats285520
-Node: Close Files And Pipes286316
-Ref: Close Files And Pipes-Footnote-1293339
-Ref: Close Files And Pipes-Footnote-2293487
-Node: Expressions293637
-Node: Values294769
-Node: Constants295445
-Node: Scalar Constants296125
-Ref: Scalar Constants-Footnote-1296984
-Node: Nondecimal-numbers297166
-Node: Regexp Constants300225
-Node: Using Constant Regexps300700
-Node: Variables303755
-Node: Using Variables304410
-Node: Assignment Options306134
-Node: Conversion308006
-Ref: table-locale-affects313382
-Ref: Conversion-Footnote-1314006
-Node: All Operators314115
-Node: Arithmetic Ops314745
-Node: Concatenation317250
-Ref: Concatenation-Footnote-1320043
-Node: Assignment Ops320163
-Ref: table-assign-ops325151
-Node: Increment Ops326559
-Node: Truth Values and Conditions330029
-Node: Truth Values331112
-Node: Typing and Comparison332161
-Node: Variable Typing332950
-Ref: Variable Typing-Footnote-1336847
-Node: Comparison Operators336969
-Ref: table-relational-ops337379
-Node: POSIX String Comparison340928
-Ref: POSIX String Comparison-Footnote-1341884
-Node: Boolean Ops342022
-Ref: Boolean Ops-Footnote-1346100
-Node: Conditional Exp346191
-Node: Function Calls347923
-Node: Precedence351517
-Node: Locales355186
-Node: Patterns and Actions356275
-Node: Pattern Overview357329
-Node: Regexp Patterns358998
-Node: Expression Patterns359541
-Node: Ranges363226
-Node: BEGIN/END366192
-Node: Using BEGIN/END366954
-Ref: Using BEGIN/END-Footnote-1369685
-Node: I/O And BEGIN/END369791
-Node: BEGINFILE/ENDFILE372073
-Node: Empty374977
-Node: Using Shell Variables375293
-Node: Action Overview377578
-Node: Statements379935
-Node: If Statement381789
-Node: While Statement383288
-Node: Do Statement385332
-Node: For Statement386488
-Node: Switch Statement389640
-Node: Break Statement391737
-Node: Continue Statement393727
-Node: Next Statement395520
-Node: Nextfile Statement397910
-Node: Exit Statement400551
-Node: Built-in Variables402967
-Node: User-modified404062
-Ref: User-modified-Footnote-1412417
-Node: Auto-set412479
-Ref: Auto-set-Footnote-1424830
-Ref: Auto-set-Footnote-2425035
-Node: ARGC and ARGV425091
-Node: Arrays428942
-Node: Array Basics430447
-Node: Array Intro431273
-Node: Reference to Elements435591
-Node: Assigning Elements437861
-Node: Array Example438352
-Node: Scanning an Array440084
-Node: Controlling Scanning442398
-Ref: Controlling Scanning-Footnote-1447331
-Node: Delete447647
-Ref: Delete-Footnote-1450412
-Node: Numeric Array Subscripts450469
-Node: Uninitialized Subscripts452652
-Node: Multi-dimensional454280
-Node: Multi-scanning457374
-Node: Arrays of Arrays458965
-Node: Functions463610
-Node: Built-in464429
-Node: Calling Built-in465507
-Node: Numeric Functions467495
-Ref: Numeric Functions-Footnote-1471327
-Ref: Numeric Functions-Footnote-2471684
-Ref: Numeric Functions-Footnote-3471732
-Node: String Functions472001
-Ref: String Functions-Footnote-1495498
-Ref: String Functions-Footnote-2495627
-Ref: String Functions-Footnote-3495875
-Node: Gory Details495962
-Ref: table-sub-escapes497641
-Ref: table-sub-posix-92498995
-Ref: table-sub-proposed500346
-Ref: table-posix-sub501700
-Ref: table-gensub-escapes503245
-Ref: Gory Details-Footnote-1504452
-Ref: Gory Details-Footnote-2504503
-Node: I/O Functions504654
-Ref: I/O Functions-Footnote-1511759
-Node: Time Functions511906
-Ref: Time Functions-Footnote-1522798
-Ref: Time Functions-Footnote-2522866
-Ref: Time Functions-Footnote-3523024
-Ref: Time Functions-Footnote-4523135
-Ref: Time Functions-Footnote-5523247
-Ref: Time Functions-Footnote-6523474
-Node: Bitwise Functions523740
-Ref: table-bitwise-ops524298
-Ref: Bitwise Functions-Footnote-1528519
-Node: Type Functions528703
-Node: I18N Functions529173
-Node: User-defined530800
-Node: Definition Syntax531604
-Ref: Definition Syntax-Footnote-1536514
-Node: Function Example536583
-Node: Function Caveats539177
-Node: Calling A Function539598
-Node: Variable Scope540713
-Node: Pass By Value/Reference543676
-Node: Return Statement547116
-Node: Dynamic Typing550097
-Node: Indirect Calls550832
-Node: Library Functions560517
-Ref: Library Functions-Footnote-1563516
-Node: Library Names563687
-Ref: Library Names-Footnote-1567158
-Ref: Library Names-Footnote-2567378
-Node: General Functions567464
-Node: Strtonum Function568417
-Node: Assert Function571347
-Node: Round Function574673
-Node: Cliff Random Function576216
-Node: Ordinal Functions577232
-Ref: Ordinal Functions-Footnote-1580302
-Ref: Ordinal Functions-Footnote-2580554
-Node: Join Function580763
-Ref: Join Function-Footnote-1582534
-Node: Getlocaltime Function582734
-Node: Data File Management586449
-Node: Filetrans Function587081
-Node: Rewind Function591220
-Node: File Checking592607
-Node: Empty Files593701
-Node: Ignoring Assigns595931
-Node: Getopt Function597484
-Ref: Getopt Function-Footnote-1608788
-Node: Passwd Functions608991
-Ref: Passwd Functions-Footnote-1617966
-Node: Group Functions618054
-Node: Walking Arrays626138
-Node: Sample Programs627707
-Node: Running Examples628384
-Node: Clones629112
-Node: Cut Program630336
-Node: Egrep Program640181
-Ref: Egrep Program-Footnote-1647954
-Node: Id Program648064
-Node: Split Program651680
-Ref: Split Program-Footnote-1655199
-Node: Tee Program655327
-Node: Uniq Program658130
-Node: Wc Program665559
-Ref: Wc Program-Footnote-1669825
-Ref: Wc Program-Footnote-2670025
-Node: Miscellaneous Programs670117
-Node: Dupword Program671305
-Node: Alarm Program673336
-Node: Translate Program678085
-Ref: Translate Program-Footnote-1682472
-Ref: Translate Program-Footnote-2682700
-Node: Labels Program682834
-Ref: Labels Program-Footnote-1686205
-Node: Word Sorting686289
-Node: History Sorting690173
-Node: Extract Program692012
-Ref: Extract Program-Footnote-1699495
-Node: Simple Sed699623
-Node: Igawk Program702685
-Ref: Igawk Program-Footnote-1717842
-Ref: Igawk Program-Footnote-2718043
-Node: Anagram Program718181
-Node: Signature Program721249
-Node: Internationalization722349
-Node: I18N and L10N723781
-Node: Explaining gettext724467
-Ref: Explaining gettext-Footnote-1729533
-Ref: Explaining gettext-Footnote-2729717
-Node: Programmer i18n729882
-Node: Translator i18n734082
-Node: String Extraction734875
-Ref: String Extraction-Footnote-1735836
-Node: Printf Ordering735922
-Ref: Printf Ordering-Footnote-1738706
-Node: I18N Portability738770
-Ref: I18N Portability-Footnote-1741219
-Node: I18N Example741282
-Ref: I18N Example-Footnote-1743917
-Node: Gawk I18N743989
-Node: Advanced Features744606
-Node: Nondecimal Data746110
-Node: Array Sorting747693
-Node: Controlling Array Traversal748390
-Node: Array Sorting Functions756628
-Ref: Array Sorting Functions-Footnote-1760302
-Ref: Array Sorting Functions-Footnote-2760395
-Node: Two-way I/O760589
-Ref: Two-way I/O-Footnote-1766021
-Node: TCP/IP Networking766091
-Node: Profiling768935
-Node: Debugger776389
-Node: Debugging777357
-Node: Debugging Concepts777790
-Node: Debugging Terms779646
-Node: Awk Debugging782243
-Node: Sample Debugging Session783135
-Node: Debugger Invocation783655
-Node: Finding The Bug784984
-Node: List of Debugger Commands791472
-Node: Breakpoint Control792806
-Node: Debugger Execution Control796470
-Node: Viewing And Changing Data799830
-Node: Execution Stack803186
-Node: Debugger Info804653
-Node: Miscellaneous Debugger Commands808634
-Node: Readline Support814079
-Node: Limitations814910
-Node: Arbitrary Precision Arithmetic817162
-Ref: Arbitrary Precision Arithmetic-Footnote-1818804
-Node: General Arithmetic818952
-Node: Floating Point Issues820672
-Node: String Conversion Precision821553
-Ref: String Conversion Precision-Footnote-1823259
-Node: Unexpected Results823368
-Node: POSIX Floating Point Problems825521
-Ref: POSIX Floating Point Problems-Footnote-1829346
-Node: Integer Programming829384
-Node: Floating-point Programming831137
-Ref: Floating-point Programming-Footnote-1837446
-Node: Floating-point Representation837710
-Node: Floating-point Context838875
-Ref: table-ieee-formats839717
-Node: Rounding Mode841101
-Ref: table-rounding-modes841580
-Ref: Rounding Mode-Footnote-1844584
-Node: Gawk and MPFR844765
-Node: Arbitrary Precision Floats846007
-Ref: Arbitrary Precision Floats-Footnote-1848436
-Node: Setting Precision848747
-Node: Setting Rounding Mode851480
-Ref: table-gawk-rounding-modes851884
-Node: Floating-point Constants853064
-Node: Changing Precision854488
-Ref: Changing Precision-Footnote-1855888
-Node: Exact Arithmetic856062
-Node: Arbitrary Precision Integers859170
-Ref: Arbitrary Precision Integers-Footnote-1862170
-Node: Dynamic Extensions862317
-Node: Extension Intro863694
-Node: Plugin License864902
-Node: Extension Mechanism Outline865587
-Ref: load-extension866004
-Ref: load-new-function867482
-Ref: call-new-function868463
-Node: Extension API Description870457
-Node: Extension API Functions Introduction871796
-Node: General Data Types876574
-Ref: General Data Types-Footnote-1882176
-Node: Requesting Values882475
-Ref: table-value-types-returned883206
-Node: Constructor Functions884160
-Node: Registration Functions887156
-Node: Extension Functions887841
-Node: Exit Callback Functions890015
-Node: Extension Version String891258
-Node: Input Parsers891908
-Node: Output Wrappers900495
-Node: Two-way processors904911
-Node: Printing Messages907041
-Ref: Printing Messages-Footnote-1908118
-Node: Updating `ERRNO'908270
-Node: Accessing Parameters909009
-Node: Symbol Table Access910239
-Node: Symbol table by name910751
-Ref: Symbol table by name-Footnote-1912921
-Node: Symbol table by cookie913001
-Ref: Symbol table by cookie-Footnote-1917130
-Node: Cached values917193
-Ref: Cached values-Footnote-1920636
-Node: Array Manipulation920727
-Ref: Array Manipulation-Footnote-1921825
-Node: Array Data Types921864
-Ref: Array Data Types-Footnote-1924567
-Node: Array Functions924659
-Node: Flattening Arrays928425
-Node: Creating Arrays935264
-Node: Extension API Variables940059
-Node: Extension Versioning940695
-Node: Extension API Informational Variables942596
-Node: Extension API Boilerplate943682
-Node: Finding Extensions947513
-Node: Extension Example948060
-Node: Internal File Description948798
-Node: Internal File Ops952486
-Ref: Internal File Ops-Footnote-1963933
-Node: Using Internal File Ops964073
-Ref: Using Internal File Ops-Footnote-1966426
-Node: Extension Samples966692
-Node: Extension Sample File Functions968135
-Node: Extension Sample Fnmatch976608
-Node: Extension Sample Fork978334
-Node: Extension Sample Ord979548
-Node: Extension Sample Readdir980324
-Node: Extension Sample Revout981828
-Node: Extension Sample Rev2way982421
-Node: Extension Sample Read write array983111
-Node: Extension Sample Readfile984994
-Node: Extension Sample API Tests985749
-Node: Extension Sample Time986274
-Node: gawkextlib987581
-Node: Language History989962
-Node: V7/SVR3.1991484
-Node: SVR4993805
-Node: POSIX995247
-Node: BTL996255
-Node: POSIX/GNU997060
-Node: Common Extensions1002595
-Node: Ranges and Locales1003654
-Ref: Ranges and Locales-Footnote-11008272
-Ref: Ranges and Locales-Footnote-21008299
-Ref: Ranges and Locales-Footnote-31008559
-Node: Contributors1008780
-Node: Installation1013076
-Node: Gawk Distribution1013970
-Node: Getting1014454
-Node: Extracting1015280
-Node: Distribution contents1016972
-Node: Unix Installation1022233
-Node: Quick Installation1022850
-Node: Additional Configuration Options1024812
-Node: Configuration Philosophy1026289
-Node: Non-Unix Installation1028631
-Node: PC Installation1029089
-Node: PC Binary Installation1030388
-Node: PC Compiling1032236
-Node: PC Testing1035180
-Node: PC Using1036356
-Node: Cygwin1040541
-Node: MSYS1041541
-Node: VMS Installation1042055
-Node: VMS Compilation1042658
-Ref: VMS Compilation-Footnote-11043665
-Node: VMS Installation Details1043723
-Node: VMS Running1045358
-Node: VMS Old Gawk1046965
-Node: Bugs1047439
-Node: Other Versions1051291
-Node: Notes1056606
-Node: Compatibility Mode1057335
-Node: Additions1058118
-Node: Accessing The Source1059045
-Node: Adding Code1060648
-Node: New Ports1066690
-Node: Derived Files1070825
-Ref: Derived Files-Footnote-11076146
-Ref: Derived Files-Footnote-21076180
-Ref: Derived Files-Footnote-31076780
-Node: Future Extensions1076878
-Node: Implementation Limitations1077459
-Node: Extension Design1078711
-Node: Old Extension Problems1079828
-Ref: Old Extension Problems-Footnote-11081336
-Node: Extension New Mechanism Goals1081393
-Ref: Extension New Mechanism Goals-Footnote-11084752
-Node: Extension Other Design Decisions1084938
-Node: Extension Future Growth1087044
-Node: Basic Concepts1087865
-Node: Basic High Level1088546
-Ref: figure-general-flow1088817
-Ref: figure-process-flow1089416
-Ref: Basic High Level-Footnote-11092645
-Node: Basic Data Typing1092830
-Node: Glossary1096185
-Node: Copying1121496
-Node: GNU Free Documentation License1159053
-Node: Index1184190
+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 Intro863733
+Node: Plugin License864941
+Node: Extension Mechanism Outline865626
+Ref: load-extension866043
+Ref: load-new-function867521
+Ref: call-new-function868502
+Node: Extension API Description870496
+Node: Extension API Functions Introduction871835
+Node: General Data Types876613
+Ref: General Data Types-Footnote-1882215
+Node: Requesting Values882514
+Ref: table-value-types-returned883245
+Node: Constructor Functions884199
+Node: Registration Functions887195
+Node: Extension Functions887880
+Node: Exit Callback Functions890054
+Node: Extension Version String891297
+Node: Input Parsers891947
+Node: Output Wrappers900534
+Node: Two-way processors904950
+Node: Printing Messages907080
+Ref: Printing Messages-Footnote-1908157
+Node: Updating `ERRNO'908309
+Node: Accessing Parameters909048
+Node: Symbol Table Access910278
+Node: Symbol table by name910790
+Ref: Symbol table by name-Footnote-1912960
+Node: Symbol table by cookie913040
+Ref: Symbol table by cookie-Footnote-1917169
+Node: Cached values917232
+Ref: Cached values-Footnote-1920675
+Node: Array Manipulation920766
+Ref: Array Manipulation-Footnote-1921864
+Node: Array Data Types921903
+Ref: Array Data Types-Footnote-1924606
+Node: Array Functions924698
+Node: Flattening Arrays928464
+Node: Creating Arrays935303
+Node: Extension API Variables940098
+Node: Extension Versioning940734
+Node: Extension API Informational Variables942635
+Node: Extension API Boilerplate943721
+Node: Finding Extensions947552
+Node: Extension Example948099
+Node: Internal File Description948837
+Node: Internal File Ops952525
+Ref: Internal File Ops-Footnote-1963972
+Node: Using Internal File Ops964112
+Ref: Using Internal File Ops-Footnote-1966465
+Node: Extension Samples966731
+Node: Extension Sample File Functions968174
+Node: Extension Sample Fnmatch976647
+Node: Extension Sample Fork978373
+Node: Extension Sample Ord979587
+Node: Extension Sample Readdir980363
+Node: Extension Sample Revout981867
+Node: Extension Sample Rev2way982460
+Node: Extension Sample Read write array983150
+Node: Extension Sample Readfile985033
+Node: Extension Sample API Tests985788
+Node: Extension Sample Time986313
+Node: gawkextlib987620
+Node: Language History990001
+Node: V7/SVR3.1991523
+Node: SVR4993844
+Node: POSIX995286
+Node: BTL996294
+Node: POSIX/GNU997099
+Node: Common Extensions1002634
+Node: Ranges and Locales1003693
+Ref: Ranges and Locales-Footnote-11008311
+Ref: Ranges and Locales-Footnote-21008338
+Ref: Ranges and Locales-Footnote-31008598
+Node: Contributors1008819
+Node: Installation1013115
+Node: Gawk Distribution1014009
+Node: Getting1014493
+Node: Extracting1015319
+Node: Distribution contents1017011
+Node: Unix Installation1022272
+Node: Quick Installation1022889
+Node: Additional Configuration Options1024851
+Node: Configuration Philosophy1026328
+Node: Non-Unix Installation1028670
+Node: PC Installation1029128
+Node: PC Binary Installation1030427
+Node: PC Compiling1032275
+Node: PC Testing1035219
+Node: PC Using1036395
+Node: Cygwin1040580
+Node: MSYS1041580
+Node: VMS Installation1042094
+Node: VMS Compilation1042697
+Ref: VMS Compilation-Footnote-11043704
+Node: VMS Installation Details1043762
+Node: VMS Running1045397
+Node: VMS Old Gawk1047004
+Node: Bugs1047478
+Node: Other Versions1051330
+Node: Notes1056645
+Node: Compatibility Mode1057445
+Node: Additions1058228
+Node: Accessing The Source1059155
+Node: Adding Code1060758
+Node: New Ports1066800
+Node: Derived Files1070935
+Ref: Derived Files-Footnote-11076256
+Ref: Derived Files-Footnote-21076290
+Ref: Derived Files-Footnote-31076890
+Node: Future Extensions1076988
+Node: Implementation Limitations1077569
+Node: Old Extension Mechansim1078828
+Node: Extension Design1080620
+Node: Old Extension Problems1081734
+Ref: Old Extension Problems-Footnote-11083242
+Node: Extension New Mechanism Goals1083299
+Ref: Extension New Mechanism Goals-Footnote-11086658
+Node: Extension Other Design Decisions1086844
+Node: Extension Future Growth1088950
+Node: Basic Concepts1089771
+Node: Basic High Level1090452
+Ref: figure-general-flow1090723
+Ref: figure-process-flow1091322
+Ref: Basic High Level-Footnote-11094551
+Node: Basic Data Typing1094736
+Node: Glossary1098091
+Node: Copying1123402
+Node: GNU Free Documentation License1160959
+Node: Index1186096

End Tag Table