diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1081 |
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 |