diff options
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1211 | ||||
-rw-r--r-- | doc/gawk.texi | 74 | ||||
-rw-r--r-- | doc/gawktexi.in | 74 |
4 files changed, 680 insertions, 683 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 56e54b17..718ee7ac 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2014-10-02 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Pretty much done! + 2014-10-01 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: More fixes after reading through the MS. diff --git a/doc/gawk.info b/doc/gawk.info index 6c46bb79..42076983 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -779,14 +779,14 @@ rest of the file alone. Such jobs are often easy with `awk'. The makes it easy to handle simple data-reformatting jobs. The GNU implementation of `awk' is called `gawk'; if you invoke it -with the proper options or environment variables (*note Options::), it -is fully compatible with the POSIX(1) specification of the `awk' -language and with the Unix version of `awk' maintained by Brian -Kernighan. This means that all properly written `awk' programs should -work with `gawk'. So most of the time, we don't distinguish between -`gawk' and other `awk' implementations. +with the proper options or environment variables it is fully compatible +with the POSIX(1) specification of the `awk' language and with the Unix +version of `awk' maintained by Brian Kernighan. This means that all +properly written `awk' programs should work with `gawk'. So most of +the time, we don't distinguish between `gawk' and other `awk' +implementations. - Using `awk' allows you to: + Using `awk' you can: * Manage small, personal databases @@ -878,16 +878,16 @@ V Release 3.1 (1987). The version in System V Release 4 (1989) added some new features and cleaned up the behavior in some of the "dark corners" of the language. The specification for `awk' in the POSIX Command Language and Utilities standard further clarified the language. -Both the `gawk' designers and the original Bell Laboratories `awk' -designers provided feedback for the POSIX specification. +Both the `gawk' designers and the original `awk' designers at Bell +Laboratories provided feedback for the POSIX specification. - Paul Rubin wrote the GNU implementation, `gawk', in 1986. Jay -Fenlason completed it, with advice from Richard Stallman. John Woods -contributed parts of the code as well. In 1988 and 1989, David -Trueman, with help from me, thoroughly reworked `gawk' for compatibility -with the newer `awk'. Circa 1994, I became the primary maintainer. -Current development focuses on bug fixes, performance improvements, -standards compliance and, occasionally, new features. + Paul Rubin wrote `gawk' in 1986. Jay Fenlason completed it, with +advice from Richard Stallman. John Woods contributed parts of the code +as well. In 1988 and 1989, David Trueman, with help from me, +thoroughly reworked `gawk' for compatibility with the newer `awk'. +Circa 1994, I became the primary maintainer. Current development +focuses on bug fixes, performance improvements, standards compliance +and, occasionally, new features. In May of 1997, Ju"rgen Kahrs felt the need for network access from `awk', and with a little help from me, set about adding features to do @@ -900,8 +900,8 @@ the `gawk' distribution). His code finally became part of the main `awk'-level debugger. This version became available as `gawk' version 4.0, in 2011. - *Note Contributors::, for a complete list of those who made -important contributions to `gawk'. + *Note Contributors::, for a full list of those who made important +contributions to `gawk'. File: gawk.info, Node: Names, Next: This Manual, Prev: History, Up: Preface @@ -954,8 +954,8 @@ programming language. in the POSIX standard. It does so in the context of the `gawk' implementation. While doing so, it also attempts to describe important differences between `gawk' and other `awk' implementations.(1) Finally, -any `gawk' features that are not in the POSIX standard for `awk' are -noted. +it notes any `gawk' features that are not in the POSIX standard for +`awk'. There are sidebars scattered throughout the Info file. They add a more complete explanation of points that are relevant, but not likely @@ -1026,18 +1026,18 @@ problems. Part III focuses on features specific to `gawk'. It contains the following chapters: - *note Advanced Features::, describes a number of `gawk'-specific -advanced features. Of particular note are the abilities to have -two-way communications with another process, perform TCP/IP networking, -and profile your `awk' programs. + *note Advanced Features::, describes a number of advanced features. +Of particular note are the abilities to control the order of array +traversal, have two-way communications with another process, perform +TCP/IP networking, and profile your `awk' programs. - *note Internationalization::, describes special features in `gawk' -for translating program messages into different languages at runtime. + *note Internationalization::, describes special features for +translating program messages into different languages at runtime. - *note Debugger::, describes the `awk' debugger. + *note Debugger::, describes the `gawk' debugger. *note Arbitrary Precision Arithmetic::, describes advanced -arithmetic facilities provided by `gawk'. +arithmetic facilities. *note Dynamic Extensions::, describes how to add new variables and functions to `gawk' by writing extensions in C or C++. @@ -1124,8 +1124,8 @@ at all. Descriptions of such features (often called "dark corners") are noted in this Info file with "(d.c.)". They also appear in the index under the heading "dark corner." - As noted by the opening quote, though, any coverage of dark corners -is, by definition, incomplete. + But, as noted by the opening quote, any coverage of dark corners is +by definition incomplete. Extensions to the standard `awk' language that are supported by more than one `awk' implementation are marked "(c.e.)," and listed in the @@ -1165,7 +1165,7 @@ system for Intel, Power Architecture, Sun SPARC, IBM S/390, and other systems.(2) Many GNU/Linux distributions are available for download from the Internet. - The Info file itself has gone through a number of previous editions. + The Info file itself has gone through multiple previous editions. Paul Rubin wrote the very first draft of `The GAWK Manual'; it was around 40 pages in size. Diane Close and Richard Stallman improved it, yielding a version that was around 90 pages long and barely described @@ -1178,17 +1178,16 @@ published the first two editions under the title `The GNU Awk User's Guide'. This edition maintains the basic structure of the previous editions. -For FSF edition 4.0, the content has been thoroughly reviewed and -updated. All references to `gawk' versions prior to 4.0 have been -removed. Of significant note for this edition was *note Debugger::. +For FSF edition 4.0, the content was thoroughly reviewed and updated. +All references to `gawk' versions prior to 4.0 were removed. Of +significant note for that edition was *note Debugger::. For FSF edition 4.1, the content has been reorganized into parts, and the major new additions are *note Arbitrary Precision Arithmetic::, and *note Dynamic Extensions::. - This Info file will undoubtedly continue to evolve. An electronic -version comes with the `gawk' distribution from the FSF. If you find -an error in this Info file, please report it! *Note Bugs::, for + This Info file will undoubtedly continue to evolve. If you find an +error in this Info file, please report it! *Note Bugs::, for information on submitting problem reports electronically. ---------- Footnotes ---------- @@ -1293,12 +1292,14 @@ Michal Jaegermann, Ju"rgen Kahrs, Stepan Kasal, John Malmberg, Dave Pitts, Chet Ramey, Pat Rankin, Andrew Schorr, Corinna Vinschen, and Eli Zaretskii (in alphabetical order) make up the current `gawk' "crack portability team." Without their hard work and help, `gawk' would not -be nearly the fine program it is today. It has been and continues to -be a pleasure working with this team of fine people. +be nearly the robust, portable program it is today. It has been and +continues to be a pleasure working with this team of fine people. Notable code and documentation contributions were made by a number of people. *Note Contributors::, for the full list. + Thanks to Michael Brennan for the Foreword. + Thanks to Patrice Dumas for the new `makeinfo' program. Thanks to Karl Berry who continues to work to keep the Texinfo markup language sane. @@ -3563,7 +3564,7 @@ sequences and that are not listed in the following stand for themselves: To cause `*' to apply to a larger sub-expression, use parentheses: `(ph)*' matches `ph', `phph', `phphph' and so on. - Second, `*' finds as many repetititons as possible. If the text to + Second, `*' finds as many repetitions as possible. If the text to be matched is `phhhhhhhhhhhhhhooey', `ph*' matches all of the `h's. `+' @@ -18896,7 +18897,7 @@ File: gawk.info, Node: Programs Exercises, Prev: Programs Summary, Up: Sample ============== 1. Rewrite `cut.awk' (*note Cut Program::) using `split()' with `""' - as the seperator. + as the separator. 2. In *note Egrep Program::, we mentioned that `egrep -i' could be simulated in versions of `awk' without `IGNORECASE' by using @@ -18920,7 +18921,7 @@ File: gawk.info, Node: Programs Exercises, Prev: Programs Summary, Up: Sample that can be in one of a set number of stable conditions depending on its previous condition and on the present values of its inputs."(1) Brian Kernighan suggests that "an alternative approach - to state mechines is to just read the input into an array, then + to state machines is to just read the input into an array, then use indexing. It's almost always easier code, and for most inputs where you would use this, just as fast." Rewrite the logic to follow this suggestion. @@ -21715,7 +21716,7 @@ floating point values occupy 64 bits. Floating point values are always signed. The possible ranges of values are shown in *note table-numeric-ranges::. -Numeric representation Miniumum value Maximum value +Numeric representation Minimum value Maximum value --------------------------------------------------------------------------- 32-bit signed integer -2,147,483,648 2,147,483,647 32-bit unsigned integer 0 4,294,967,295 @@ -21840,8 +21841,8 @@ paraphrased, and for the examples. File: gawk.info, Node: MPFR features, Next: FP Math Caution, Prev: Math Definitions, Up: Arbitrary Precision Arithmetic -15.3 Arbitrary Precison Arithmetic Features In `gawk' -===================================================== +15.3 Arbitrary Precision Arithmetic Features In `gawk' +====================================================== By default, `gawk' uses the double precision floating-point values supplied by the hardware of the system it runs on. However, if it was @@ -28628,9 +28629,9 @@ steps: 6. Be willing to continue to maintain the port. Non-Unix operating systems are supported by volunteers who maintain the code needed - to compile and run `gawk' on their systems. If noone volunteers to - maintain a port, it becomes unsupported and it may be necessary to - remove it from the distribution. + to compile and run `gawk' on their systems. If no-one volunteers + to maintain a port, it becomes unsupported and it may be necessary + to remove it from the distribution. 7. Supply an appropriate `gawkmisc.???' file. Each port has its own `gawkmisc.???' that implements certain operating system specific @@ -31780,7 +31781,7 @@ Index * Brennan, Michael <1>: Other Versions. (line 6) * Brennan, Michael <2>: Simple Sed. (line 25) * Brennan, Michael <3>: Delete. (line 56) -* Brennan, Michael <4>: Acknowledgments. (line 76) +* Brennan, Michael <4>: Acknowledgments. (line 78) * Brennan, Michael: Foreword. (line 83) * Brian Kernighan's awk <1>: I/O Functions. (line 43) * Brian Kernighan's awk <2>: Gory Details. (line 19) @@ -32059,7 +32060,7 @@ Index (line 112) * Davies, Stephen <1>: Contributors. (line 74) * Davies, Stephen: Acknowledgments. (line 60) -* Day, Robert P.J.: Acknowledgments. (line 76) +* Day, Robert P.J.: Acknowledgments. (line 78) * dcgettext <1>: Programmer i18n. (line 19) * dcgettext: I18N Functions. (line 22) * dcgettext() function (gawk), portability and: I18N Portability. @@ -32664,7 +32665,7 @@ Index (line 47) * functions, user-defined, next/nextfile statements and: Next Statement. (line 44) -* G-d: Acknowledgments. (line 92) +* G-d: Acknowledgments. (line 94) * Garfinkle, Scott: Contributors. (line 34) * gawk program, dynamic profiling: Profiling. (line 179) * gawk version: Auto-set. (line 206) @@ -32990,7 +32991,7 @@ Index * Kernighan, Brian <6>: Library Functions. (line 12) * Kernighan, Brian <7>: Concatenation. (line 6) * Kernighan, Brian <8>: Getline/Pipe. (line 6) -* Kernighan, Brian <9>: Acknowledgments. (line 76) +* Kernighan, Brian <9>: Acknowledgments. (line 78) * Kernighan, Brian <10>: Conventions. (line 38) * Kernighan, Brian: History. (line 17) * kill command, dynamic profiling: Profiling. (line 188) @@ -33672,11 +33673,11 @@ Index * Robbins, Arnold: Command Line Field Separator. (line 71) * Robbins, Bill: Getline/Pipe. (line 39) -* Robbins, Harry: Acknowledgments. (line 92) -* Robbins, Jean: Acknowledgments. (line 92) +* Robbins, Harry: Acknowledgments. (line 94) +* Robbins, Jean: Acknowledgments. (line 94) * Robbins, Miriam <1>: Passwd Functions. (line 90) * Robbins, Miriam <2>: Getline/Pipe. (line 39) -* Robbins, Miriam: Acknowledgments. (line 92) +* Robbins, Miriam: Acknowledgments. (line 94) * Rommel, Kai Uwe: Contributors. (line 42) * round to nearest integer: Numeric Functions. (line 23) * round() user-defined function: Round Function. (line 16) @@ -34229,555 +34230,555 @@ Tag Table: Node: Top1204 Node: Foreword42103 Node: Preface46450 -Ref: Preface-Footnote-149345 -Ref: Preface-Footnote-249452 -Ref: Preface-Footnote-349685 -Node: History49827 -Node: Names52201 -Ref: Names-Footnote-153295 -Node: This Manual53441 -Ref: This Manual-Footnote-159278 -Node: Conventions59378 -Node: Manual History61723 -Ref: Manual History-Footnote-164799 -Ref: Manual History-Footnote-264840 -Node: How To Contribute64914 -Node: Acknowledgments66153 -Node: Getting Started70901 -Node: Running gawk73335 -Node: One-shot74525 -Node: Read Terminal75750 -Node: Long77777 -Node: Executable Scripts79293 -Ref: Executable Scripts-Footnote-182082 -Node: Comments82184 -Node: Quoting84657 -Node: DOS Quoting90167 -Node: Sample Data Files90842 -Node: Very Simple93435 -Node: Two Rules98326 -Node: More Complex100212 -Node: Statements/Lines103074 -Ref: Statements/Lines-Footnote-1107530 -Node: Other Features107795 -Node: When108726 -Ref: When-Footnote-1110482 -Node: Intro Summary110547 -Node: Invoking Gawk111430 -Node: Command Line112945 -Node: Options113736 -Ref: Options-Footnote-1129631 -Node: Other Arguments129656 -Node: Naming Standard Input132617 -Node: Environment Variables133710 -Node: AWKPATH Variable134268 -Ref: AWKPATH Variable-Footnote-1137120 -Ref: AWKPATH Variable-Footnote-2137165 -Node: AWKLIBPATH Variable137425 -Node: Other Environment Variables138184 -Node: Exit Status141886 -Node: Include Files142561 -Node: Loading Shared Libraries146139 -Node: Obsolete147566 -Node: Undocumented148263 -Node: Invoking Summary148530 -Node: Regexp150196 -Node: Regexp Usage151655 -Node: Escape Sequences153688 -Node: Regexp Operators159705 -Ref: Regexp Operators-Footnote-1167140 -Ref: Regexp Operators-Footnote-2167287 -Node: Bracket Expressions167385 -Ref: table-char-classes169402 -Node: Leftmost Longest172342 -Node: Computed Regexps173644 -Node: GNU Regexp Operators177041 -Node: Case-sensitivity180747 -Ref: Case-sensitivity-Footnote-1183637 -Ref: Case-sensitivity-Footnote-2183872 -Node: Regexp Summary183980 -Node: Reading Files185449 -Node: Records187543 -Node: awk split records188275 -Node: gawk split records193189 -Ref: gawk split records-Footnote-1197728 -Node: Fields197765 -Ref: Fields-Footnote-1200563 -Node: Nonconstant Fields200649 -Ref: Nonconstant Fields-Footnote-1202879 -Node: Changing Fields203081 -Node: Field Separators209013 -Node: Default Field Splitting211717 -Node: Regexp Field Splitting212834 -Node: Single Character Fields216184 -Node: Command Line Field Separator217243 -Node: Full Line Fields220455 -Ref: Full Line Fields-Footnote-1220963 -Node: Field Splitting Summary221009 -Ref: Field Splitting Summary-Footnote-1224140 -Node: Constant Size224241 -Node: Splitting By Content228847 -Ref: Splitting By Content-Footnote-1232920 -Node: Multiple Line232960 -Ref: Multiple Line-Footnote-1238849 -Node: Getline239028 -Node: Plain Getline241239 -Node: Getline/Variable243879 -Node: Getline/File245026 -Node: Getline/Variable/File246410 -Ref: Getline/Variable/File-Footnote-1248011 -Node: Getline/Pipe248098 -Node: Getline/Variable/Pipe250781 -Node: Getline/Coprocess251912 -Node: Getline/Variable/Coprocess253164 -Node: Getline Notes253903 -Node: Getline Summary256695 -Ref: table-getline-variants257107 -Node: Read Timeout257936 -Ref: Read Timeout-Footnote-1261750 -Node: Command-line directories261808 -Node: Input Summary262712 -Node: Input Exercises265964 -Node: Printing266692 -Node: Print268469 -Node: Print Examples269926 -Node: Output Separators272705 -Node: OFMT274723 -Node: Printf276077 -Node: Basic Printf276862 -Node: Control Letters278433 -Node: Format Modifiers282417 -Node: Printf Examples288424 -Node: Redirection290906 -Node: Special FD297745 -Ref: Special FD-Footnote-1300902 -Node: Special Files300976 -Node: Other Inherited Files301592 -Node: Special Network302592 -Node: Special Caveats303453 -Node: Close Files And Pipes304404 -Ref: Close Files And Pipes-Footnote-1311583 -Ref: Close Files And Pipes-Footnote-2311731 -Node: Output Summary311881 -Node: Output Exercises312877 -Node: Expressions313557 -Node: Values314742 -Node: Constants315418 -Node: Scalar Constants316098 -Ref: Scalar Constants-Footnote-1316957 -Node: Nondecimal-numbers317207 -Node: Regexp Constants320207 -Node: Using Constant Regexps320732 -Node: Variables323870 -Node: Using Variables324525 -Node: Assignment Options326435 -Node: Conversion328310 -Node: Strings And Numbers328834 -Ref: Strings And Numbers-Footnote-1331898 -Node: Locale influences conversions332007 -Ref: table-locale-affects334722 -Node: All Operators335310 -Node: Arithmetic Ops335940 -Node: Concatenation338445 -Ref: Concatenation-Footnote-1341264 -Node: Assignment Ops341370 -Ref: table-assign-ops346353 -Node: Increment Ops347631 -Node: Truth Values and Conditions351069 -Node: Truth Values352152 -Node: Typing and Comparison353201 -Node: Variable Typing353994 -Node: Comparison Operators357646 -Ref: table-relational-ops358056 -Node: POSIX String Comparison361571 -Ref: POSIX String Comparison-Footnote-1362643 -Node: Boolean Ops362781 -Ref: Boolean Ops-Footnote-1367260 -Node: Conditional Exp367351 -Node: Function Calls369078 -Node: Precedence372958 -Node: Locales376626 -Node: Expressions Summary378257 -Node: Patterns and Actions380831 -Node: Pattern Overview381951 -Node: Regexp Patterns383630 -Node: Expression Patterns384173 -Node: Ranges387953 -Node: BEGIN/END391059 -Node: Using BEGIN/END391821 -Ref: Using BEGIN/END-Footnote-1394558 -Node: I/O And BEGIN/END394664 -Node: BEGINFILE/ENDFILE396978 -Node: Empty399879 -Node: Using Shell Variables400196 -Node: Action Overview402472 -Node: Statements404799 -Node: If Statement406647 -Node: While Statement408145 -Node: Do Statement410173 -Node: For Statement411315 -Node: Switch Statement414470 -Node: Break Statement416858 -Node: Continue Statement418899 -Node: Next Statement420724 -Node: Nextfile Statement423104 -Node: Exit Statement425734 -Node: Built-in Variables428137 -Node: User-modified429270 -Ref: User-modified-Footnote-1436950 -Node: Auto-set437012 -Ref: Auto-set-Footnote-1449869 -Ref: Auto-set-Footnote-2450074 -Node: ARGC and ARGV450130 -Node: Pattern Action Summary454334 -Node: Arrays456761 -Node: Array Basics458090 -Node: Array Intro458934 -Ref: figure-array-elements460907 -Ref: Array Intro-Footnote-1463431 -Node: Reference to Elements463559 -Node: Assigning Elements466009 -Node: Array Example466500 -Node: Scanning an Array468258 -Node: Controlling Scanning471274 -Ref: Controlling Scanning-Footnote-1476463 -Node: Numeric Array Subscripts476779 -Node: Uninitialized Subscripts478964 -Node: Delete480581 -Ref: Delete-Footnote-1483325 -Node: Multidimensional483382 -Node: Multiscanning486477 -Node: Arrays of Arrays488066 -Node: Arrays Summary492827 -Node: Functions494932 -Node: Built-in495805 -Node: Calling Built-in496883 -Node: Numeric Functions498871 -Ref: Numeric Functions-Footnote-1502893 -Ref: Numeric Functions-Footnote-2503250 -Ref: Numeric Functions-Footnote-3503298 -Node: String Functions503567 -Ref: String Functions-Footnote-1527031 -Ref: String Functions-Footnote-2527160 -Ref: String Functions-Footnote-3527408 -Node: Gory Details527495 -Ref: table-sub-escapes529276 -Ref: table-sub-proposed530796 -Ref: table-posix-sub532160 -Ref: table-gensub-escapes533700 -Ref: Gory Details-Footnote-1534532 -Node: I/O Functions534683 -Ref: I/O Functions-Footnote-1541784 -Node: Time Functions541931 -Ref: Time Functions-Footnote-1552400 -Ref: Time Functions-Footnote-2552468 -Ref: Time Functions-Footnote-3552626 -Ref: Time Functions-Footnote-4552737 -Ref: Time Functions-Footnote-5552849 -Ref: Time Functions-Footnote-6553076 -Node: Bitwise Functions553342 -Ref: table-bitwise-ops553904 -Ref: Bitwise Functions-Footnote-1558212 -Node: Type Functions558381 -Node: I18N Functions559530 -Node: User-defined561175 -Node: Definition Syntax561979 -Ref: Definition Syntax-Footnote-1567385 -Node: Function Example567454 -Ref: Function Example-Footnote-1570371 -Node: Function Caveats570393 -Node: Calling A Function570911 -Node: Variable Scope571866 -Node: Pass By Value/Reference574854 -Node: Return Statement578364 -Node: Dynamic Typing581348 -Node: Indirect Calls582277 -Ref: Indirect Calls-Footnote-1593581 -Node: Functions Summary593709 -Node: Library Functions596408 -Ref: Library Functions-Footnote-1600026 -Ref: Library Functions-Footnote-2600169 -Node: Library Names600340 -Ref: Library Names-Footnote-1603800 -Ref: Library Names-Footnote-2604020 -Node: General Functions604106 -Node: Strtonum Function605209 -Node: Assert Function608229 -Node: Round Function611553 -Node: Cliff Random Function613094 -Node: Ordinal Functions614110 -Ref: Ordinal Functions-Footnote-1617175 -Ref: Ordinal Functions-Footnote-2617427 -Node: Join Function617638 -Ref: Join Function-Footnote-1619409 -Node: Getlocaltime Function619609 -Node: Readfile Function623350 -Node: Shell Quoting625320 -Node: Data File Management626721 -Node: Filetrans Function627353 -Node: Rewind Function631412 -Node: File Checking632797 -Ref: File Checking-Footnote-1634125 -Node: Empty Files634326 -Node: Ignoring Assigns636305 -Node: Getopt Function637856 -Ref: Getopt Function-Footnote-1649316 -Node: Passwd Functions649519 -Ref: Passwd Functions-Footnote-1658370 -Node: Group Functions658458 -Ref: Group Functions-Footnote-1666361 -Node: Walking Arrays666574 -Node: Library Functions Summary668177 -Node: Library Exercises669578 -Node: Sample Programs670858 -Node: Running Examples671628 -Node: Clones672356 -Node: Cut Program673580 -Node: Egrep Program683310 -Ref: Egrep Program-Footnote-1690814 -Node: Id Program690924 -Node: Split Program694568 -Ref: Split Program-Footnote-1698014 -Node: Tee Program698142 -Node: Uniq Program700929 -Node: Wc Program708350 -Ref: Wc Program-Footnote-1712598 -Node: Miscellaneous Programs712690 -Node: Dupword Program713903 -Node: Alarm Program715934 -Node: Translate Program720738 -Ref: Translate Program-Footnote-1725302 -Node: Labels Program725572 -Ref: Labels Program-Footnote-1728921 -Node: Word Sorting729005 -Node: History Sorting733075 -Node: Extract Program734911 -Node: Simple Sed742443 -Node: Igawk Program745505 -Ref: Igawk Program-Footnote-1759831 -Ref: Igawk Program-Footnote-2760032 -Ref: Igawk Program-Footnote-3760154 -Node: Anagram Program760269 -Node: Signature Program763331 -Node: Programs Summary764578 -Node: Programs Exercises765771 -Ref: Programs Exercises-Footnote-1769902 -Node: Advanced Features769993 -Node: Nondecimal Data771941 -Node: Array Sorting773531 -Node: Controlling Array Traversal774228 -Ref: Controlling Array Traversal-Footnote-1782559 -Node: Array Sorting Functions782677 -Ref: Array Sorting Functions-Footnote-1786569 -Node: Two-way I/O786763 -Ref: Two-way I/O-Footnote-1791707 -Ref: Two-way I/O-Footnote-2791893 -Node: TCP/IP Networking791975 -Node: Profiling794852 -Node: Advanced Features Summary802396 -Node: Internationalization804329 -Node: I18N and L10N805809 -Node: Explaining gettext806495 -Ref: Explaining gettext-Footnote-1811524 -Ref: Explaining gettext-Footnote-2811708 -Node: Programmer i18n811873 -Ref: Programmer i18n-Footnote-1816739 -Node: Translator i18n816788 -Node: String Extraction817582 -Ref: String Extraction-Footnote-1818713 -Node: Printf Ordering818799 -Ref: Printf Ordering-Footnote-1821585 -Node: I18N Portability821649 -Ref: I18N Portability-Footnote-1824098 -Node: I18N Example824161 -Ref: I18N Example-Footnote-1826961 -Node: Gawk I18N827033 -Node: I18N Summary827671 -Node: Debugger829010 -Node: Debugging830032 -Node: Debugging Concepts830473 -Node: Debugging Terms832330 -Node: Awk Debugging834905 -Node: Sample Debugging Session835797 -Node: Debugger Invocation836317 -Node: Finding The Bug837701 -Node: List of Debugger Commands844176 -Node: Breakpoint Control845508 -Node: Debugger Execution Control849200 -Node: Viewing And Changing Data852564 -Node: Execution Stack855929 -Node: Debugger Info857567 -Node: Miscellaneous Debugger Commands861584 -Node: Readline Support866776 -Node: Limitations867668 -Node: Debugging Summary869765 -Node: Arbitrary Precision Arithmetic870933 -Node: Computer Arithmetic872349 -Ref: table-numeric-ranges875950 -Ref: Computer Arithmetic-Footnote-1876809 -Node: Math Definitions876866 -Ref: table-ieee-formats880153 -Ref: Math Definitions-Footnote-1880757 -Node: MPFR features880862 -Node: FP Math Caution882531 -Ref: FP Math Caution-Footnote-1883581 -Node: Inexactness of computations883950 -Node: Inexact representation884898 -Node: Comparing FP Values886253 -Node: Errors accumulate887326 -Node: Getting Accuracy888759 -Node: Try To Round891418 -Node: Setting precision892317 -Ref: table-predefined-precision-strings893001 -Node: Setting the rounding mode894795 -Ref: table-gawk-rounding-modes895159 -Ref: Setting the rounding mode-Footnote-1898613 -Node: Arbitrary Precision Integers898792 -Ref: Arbitrary Precision Integers-Footnote-1901783 -Node: POSIX Floating Point Problems901932 -Ref: POSIX Floating Point Problems-Footnote-1905808 -Node: Floating point summary905846 -Node: Dynamic Extensions908038 -Node: Extension Intro909590 -Node: Plugin License910856 -Node: Extension Mechanism Outline911653 -Ref: figure-load-extension912081 -Ref: figure-register-new-function913561 -Ref: figure-call-new-function914565 -Node: Extension API Description916551 -Node: Extension API Functions Introduction918001 -Node: General Data Types922837 -Ref: General Data Types-Footnote-1928524 -Node: Memory Allocation Functions928823 -Ref: Memory Allocation Functions-Footnote-1931653 -Node: Constructor Functions931749 -Node: Registration Functions933483 -Node: Extension Functions934168 -Node: Exit Callback Functions936464 -Node: Extension Version String937712 -Node: Input Parsers938362 -Node: Output Wrappers948177 -Node: Two-way processors952693 -Node: Printing Messages954897 -Ref: Printing Messages-Footnote-1955974 -Node: Updating `ERRNO'956126 -Node: Requesting Values956866 -Ref: table-value-types-returned957594 -Node: Accessing Parameters958552 -Node: Symbol Table Access959783 -Node: Symbol table by name960297 -Node: Symbol table by cookie962277 -Ref: Symbol table by cookie-Footnote-1966416 -Node: Cached values966479 -Ref: Cached values-Footnote-1969983 -Node: Array Manipulation970074 -Ref: Array Manipulation-Footnote-1971172 -Node: Array Data Types971211 -Ref: Array Data Types-Footnote-1973868 -Node: Array Functions973960 -Node: Flattening Arrays977814 -Node: Creating Arrays984701 -Node: Extension API Variables989468 -Node: Extension Versioning990104 -Node: Extension API Informational Variables992005 -Node: Extension API Boilerplate993093 -Node: Finding Extensions996909 -Node: Extension Example997469 -Node: Internal File Description998241 -Node: Internal File Ops1002308 -Ref: Internal File Ops-Footnote-11013966 -Node: Using Internal File Ops1014106 -Ref: Using Internal File Ops-Footnote-11016489 -Node: Extension Samples1016762 -Node: Extension Sample File Functions1018286 -Node: Extension Sample Fnmatch1025888 -Node: Extension Sample Fork1027370 -Node: Extension Sample Inplace1028583 -Node: Extension Sample Ord1030258 -Node: Extension Sample Readdir1031094 -Ref: table-readdir-file-types1031950 -Node: Extension Sample Revout1032761 -Node: Extension Sample Rev2way1033352 -Node: Extension Sample Read write array1034093 -Node: Extension Sample Readfile1036032 -Node: Extension Sample Time1037127 -Node: Extension Sample API Tests1038476 -Node: gawkextlib1038967 -Node: Extension summary1041617 -Node: Extension Exercises1045299 -Node: Language History1046021 -Node: V7/SVR3.11047678 -Node: SVR41049859 -Node: POSIX1051304 -Node: BTL1052693 -Node: POSIX/GNU1053427 -Node: Feature History1058996 -Node: Common Extensions1072087 -Node: Ranges and Locales1073411 -Ref: Ranges and Locales-Footnote-11078050 -Ref: Ranges and Locales-Footnote-21078077 -Ref: Ranges and Locales-Footnote-31078311 -Node: Contributors1078532 -Node: History summary1084072 -Node: Installation1085441 -Node: Gawk Distribution1086397 -Node: Getting1086881 -Node: Extracting1087705 -Node: Distribution contents1089347 -Node: Unix Installation1095064 -Node: Quick Installation1095681 -Node: Additional Configuration Options1098112 -Node: Configuration Philosophy1099852 -Node: Non-Unix Installation1102203 -Node: PC Installation1102661 -Node: PC Binary Installation1103987 -Node: PC Compiling1105835 -Ref: PC Compiling-Footnote-11108856 -Node: PC Testing1108961 -Node: PC Using1110137 -Node: Cygwin1114252 -Node: MSYS1115075 -Node: VMS Installation1115573 -Node: VMS Compilation1116365 -Ref: VMS Compilation-Footnote-11117587 -Node: VMS Dynamic Extensions1117645 -Node: VMS Installation Details1119329 -Node: VMS Running1121581 -Node: VMS GNV1124422 -Node: VMS Old Gawk1125151 -Node: Bugs1125621 -Node: Other Versions1129591 -Node: Installation summary1135804 -Node: Notes1136860 -Node: Compatibility Mode1137725 -Node: Additions1138507 -Node: Accessing The Source1139432 -Node: Adding Code1140868 -Node: New Ports1147040 -Node: Derived Files1151521 -Ref: Derived Files-Footnote-11156996 -Ref: Derived Files-Footnote-21157030 -Ref: Derived Files-Footnote-31157626 -Node: Future Extensions1157740 -Node: Implementation Limitations1158346 -Node: Extension Design1159594 -Node: Old Extension Problems1160748 -Ref: Old Extension Problems-Footnote-11162265 -Node: Extension New Mechanism Goals1162322 -Ref: Extension New Mechanism Goals-Footnote-11165682 -Node: Extension Other Design Decisions1165871 -Node: Extension Future Growth1167979 -Node: Old Extension Mechanism1168815 -Node: Notes summary1170577 -Node: Basic Concepts1171763 -Node: Basic High Level1172444 -Ref: figure-general-flow1172716 -Ref: figure-process-flow1173315 -Ref: Basic High Level-Footnote-11176544 -Node: Basic Data Typing1176729 -Node: Glossary1180057 -Node: Copying1205215 -Node: GNU Free Documentation License1242771 -Node: Index1267907 +Ref: Preface-Footnote-149320 +Ref: Preface-Footnote-249427 +Ref: Preface-Footnote-349660 +Node: History49802 +Node: Names52150 +Ref: Names-Footnote-153244 +Node: This Manual53390 +Ref: This Manual-Footnote-159219 +Node: Conventions59319 +Node: Manual History61659 +Ref: Manual History-Footnote-164650 +Ref: Manual History-Footnote-264691 +Node: How To Contribute64765 +Node: Acknowledgments66004 +Node: Getting Started70812 +Node: Running gawk73246 +Node: One-shot74436 +Node: Read Terminal75661 +Node: Long77688 +Node: Executable Scripts79204 +Ref: Executable Scripts-Footnote-181993 +Node: Comments82095 +Node: Quoting84568 +Node: DOS Quoting90078 +Node: Sample Data Files90753 +Node: Very Simple93346 +Node: Two Rules98237 +Node: More Complex100123 +Node: Statements/Lines102985 +Ref: Statements/Lines-Footnote-1107441 +Node: Other Features107706 +Node: When108637 +Ref: When-Footnote-1110393 +Node: Intro Summary110458 +Node: Invoking Gawk111341 +Node: Command Line112856 +Node: Options113647 +Ref: Options-Footnote-1129542 +Node: Other Arguments129567 +Node: Naming Standard Input132528 +Node: Environment Variables133621 +Node: AWKPATH Variable134179 +Ref: AWKPATH Variable-Footnote-1137031 +Ref: AWKPATH Variable-Footnote-2137076 +Node: AWKLIBPATH Variable137336 +Node: Other Environment Variables138095 +Node: Exit Status141797 +Node: Include Files142472 +Node: Loading Shared Libraries146050 +Node: Obsolete147477 +Node: Undocumented148174 +Node: Invoking Summary148441 +Node: Regexp150107 +Node: Regexp Usage151566 +Node: Escape Sequences153599 +Node: Regexp Operators159616 +Ref: Regexp Operators-Footnote-1167050 +Ref: Regexp Operators-Footnote-2167197 +Node: Bracket Expressions167295 +Ref: table-char-classes169312 +Node: Leftmost Longest172252 +Node: Computed Regexps173554 +Node: GNU Regexp Operators176951 +Node: Case-sensitivity180657 +Ref: Case-sensitivity-Footnote-1183547 +Ref: Case-sensitivity-Footnote-2183782 +Node: Regexp Summary183890 +Node: Reading Files185359 +Node: Records187453 +Node: awk split records188185 +Node: gawk split records193099 +Ref: gawk split records-Footnote-1197638 +Node: Fields197675 +Ref: Fields-Footnote-1200473 +Node: Nonconstant Fields200559 +Ref: Nonconstant Fields-Footnote-1202789 +Node: Changing Fields202991 +Node: Field Separators208923 +Node: Default Field Splitting211627 +Node: Regexp Field Splitting212744 +Node: Single Character Fields216094 +Node: Command Line Field Separator217153 +Node: Full Line Fields220365 +Ref: Full Line Fields-Footnote-1220873 +Node: Field Splitting Summary220919 +Ref: Field Splitting Summary-Footnote-1224050 +Node: Constant Size224151 +Node: Splitting By Content228757 +Ref: Splitting By Content-Footnote-1232830 +Node: Multiple Line232870 +Ref: Multiple Line-Footnote-1238759 +Node: Getline238938 +Node: Plain Getline241149 +Node: Getline/Variable243789 +Node: Getline/File244936 +Node: Getline/Variable/File246320 +Ref: Getline/Variable/File-Footnote-1247921 +Node: Getline/Pipe248008 +Node: Getline/Variable/Pipe250691 +Node: Getline/Coprocess251822 +Node: Getline/Variable/Coprocess253074 +Node: Getline Notes253813 +Node: Getline Summary256605 +Ref: table-getline-variants257017 +Node: Read Timeout257846 +Ref: Read Timeout-Footnote-1261660 +Node: Command-line directories261718 +Node: Input Summary262622 +Node: Input Exercises265874 +Node: Printing266602 +Node: Print268379 +Node: Print Examples269836 +Node: Output Separators272615 +Node: OFMT274633 +Node: Printf275987 +Node: Basic Printf276772 +Node: Control Letters278343 +Node: Format Modifiers282327 +Node: Printf Examples288334 +Node: Redirection290816 +Node: Special FD297655 +Ref: Special FD-Footnote-1300812 +Node: Special Files300886 +Node: Other Inherited Files301502 +Node: Special Network302502 +Node: Special Caveats303363 +Node: Close Files And Pipes304314 +Ref: Close Files And Pipes-Footnote-1311493 +Ref: Close Files And Pipes-Footnote-2311641 +Node: Output Summary311791 +Node: Output Exercises312787 +Node: Expressions313467 +Node: Values314652 +Node: Constants315328 +Node: Scalar Constants316008 +Ref: Scalar Constants-Footnote-1316867 +Node: Nondecimal-numbers317117 +Node: Regexp Constants320117 +Node: Using Constant Regexps320642 +Node: Variables323780 +Node: Using Variables324435 +Node: Assignment Options326345 +Node: Conversion328220 +Node: Strings And Numbers328744 +Ref: Strings And Numbers-Footnote-1331808 +Node: Locale influences conversions331917 +Ref: table-locale-affects334632 +Node: All Operators335220 +Node: Arithmetic Ops335850 +Node: Concatenation338355 +Ref: Concatenation-Footnote-1341174 +Node: Assignment Ops341280 +Ref: table-assign-ops346263 +Node: Increment Ops347541 +Node: Truth Values and Conditions350979 +Node: Truth Values352062 +Node: Typing and Comparison353111 +Node: Variable Typing353904 +Node: Comparison Operators357556 +Ref: table-relational-ops357966 +Node: POSIX String Comparison361481 +Ref: POSIX String Comparison-Footnote-1362553 +Node: Boolean Ops362691 +Ref: Boolean Ops-Footnote-1367170 +Node: Conditional Exp367261 +Node: Function Calls368988 +Node: Precedence372868 +Node: Locales376536 +Node: Expressions Summary378167 +Node: Patterns and Actions380741 +Node: Pattern Overview381861 +Node: Regexp Patterns383540 +Node: Expression Patterns384083 +Node: Ranges387863 +Node: BEGIN/END390969 +Node: Using BEGIN/END391731 +Ref: Using BEGIN/END-Footnote-1394468 +Node: I/O And BEGIN/END394574 +Node: BEGINFILE/ENDFILE396888 +Node: Empty399789 +Node: Using Shell Variables400106 +Node: Action Overview402382 +Node: Statements404709 +Node: If Statement406557 +Node: While Statement408055 +Node: Do Statement410083 +Node: For Statement411225 +Node: Switch Statement414380 +Node: Break Statement416768 +Node: Continue Statement418809 +Node: Next Statement420634 +Node: Nextfile Statement423014 +Node: Exit Statement425644 +Node: Built-in Variables428047 +Node: User-modified429180 +Ref: User-modified-Footnote-1436860 +Node: Auto-set436922 +Ref: Auto-set-Footnote-1449779 +Ref: Auto-set-Footnote-2449984 +Node: ARGC and ARGV450040 +Node: Pattern Action Summary454244 +Node: Arrays456671 +Node: Array Basics458000 +Node: Array Intro458844 +Ref: figure-array-elements460817 +Ref: Array Intro-Footnote-1463341 +Node: Reference to Elements463469 +Node: Assigning Elements465919 +Node: Array Example466410 +Node: Scanning an Array468168 +Node: Controlling Scanning471184 +Ref: Controlling Scanning-Footnote-1476373 +Node: Numeric Array Subscripts476689 +Node: Uninitialized Subscripts478874 +Node: Delete480491 +Ref: Delete-Footnote-1483235 +Node: Multidimensional483292 +Node: Multiscanning486387 +Node: Arrays of Arrays487976 +Node: Arrays Summary492737 +Node: Functions494842 +Node: Built-in495715 +Node: Calling Built-in496793 +Node: Numeric Functions498781 +Ref: Numeric Functions-Footnote-1502803 +Ref: Numeric Functions-Footnote-2503160 +Ref: Numeric Functions-Footnote-3503208 +Node: String Functions503477 +Ref: String Functions-Footnote-1526941 +Ref: String Functions-Footnote-2527070 +Ref: String Functions-Footnote-3527318 +Node: Gory Details527405 +Ref: table-sub-escapes529186 +Ref: table-sub-proposed530706 +Ref: table-posix-sub532070 +Ref: table-gensub-escapes533610 +Ref: Gory Details-Footnote-1534442 +Node: I/O Functions534593 +Ref: I/O Functions-Footnote-1541694 +Node: Time Functions541841 +Ref: Time Functions-Footnote-1552310 +Ref: Time Functions-Footnote-2552378 +Ref: Time Functions-Footnote-3552536 +Ref: Time Functions-Footnote-4552647 +Ref: Time Functions-Footnote-5552759 +Ref: Time Functions-Footnote-6552986 +Node: Bitwise Functions553252 +Ref: table-bitwise-ops553814 +Ref: Bitwise Functions-Footnote-1558122 +Node: Type Functions558291 +Node: I18N Functions559440 +Node: User-defined561085 +Node: Definition Syntax561889 +Ref: Definition Syntax-Footnote-1567295 +Node: Function Example567364 +Ref: Function Example-Footnote-1570281 +Node: Function Caveats570303 +Node: Calling A Function570821 +Node: Variable Scope571776 +Node: Pass By Value/Reference574764 +Node: Return Statement578274 +Node: Dynamic Typing581258 +Node: Indirect Calls582187 +Ref: Indirect Calls-Footnote-1593491 +Node: Functions Summary593619 +Node: Library Functions596318 +Ref: Library Functions-Footnote-1599936 +Ref: Library Functions-Footnote-2600079 +Node: Library Names600250 +Ref: Library Names-Footnote-1603710 +Ref: Library Names-Footnote-2603930 +Node: General Functions604016 +Node: Strtonum Function605119 +Node: Assert Function608139 +Node: Round Function611463 +Node: Cliff Random Function613004 +Node: Ordinal Functions614020 +Ref: Ordinal Functions-Footnote-1617085 +Ref: Ordinal Functions-Footnote-2617337 +Node: Join Function617548 +Ref: Join Function-Footnote-1619319 +Node: Getlocaltime Function619519 +Node: Readfile Function623260 +Node: Shell Quoting625230 +Node: Data File Management626631 +Node: Filetrans Function627263 +Node: Rewind Function631322 +Node: File Checking632707 +Ref: File Checking-Footnote-1634035 +Node: Empty Files634236 +Node: Ignoring Assigns636215 +Node: Getopt Function637766 +Ref: Getopt Function-Footnote-1649226 +Node: Passwd Functions649429 +Ref: Passwd Functions-Footnote-1658280 +Node: Group Functions658368 +Ref: Group Functions-Footnote-1666271 +Node: Walking Arrays666484 +Node: Library Functions Summary668087 +Node: Library Exercises669488 +Node: Sample Programs670768 +Node: Running Examples671538 +Node: Clones672266 +Node: Cut Program673490 +Node: Egrep Program683220 +Ref: Egrep Program-Footnote-1690724 +Node: Id Program690834 +Node: Split Program694478 +Ref: Split Program-Footnote-1697924 +Node: Tee Program698052 +Node: Uniq Program700839 +Node: Wc Program708260 +Ref: Wc Program-Footnote-1712508 +Node: Miscellaneous Programs712600 +Node: Dupword Program713813 +Node: Alarm Program715844 +Node: Translate Program720648 +Ref: Translate Program-Footnote-1725212 +Node: Labels Program725482 +Ref: Labels Program-Footnote-1728831 +Node: Word Sorting728915 +Node: History Sorting732985 +Node: Extract Program734821 +Node: Simple Sed742353 +Node: Igawk Program745415 +Ref: Igawk Program-Footnote-1759741 +Ref: Igawk Program-Footnote-2759942 +Ref: Igawk Program-Footnote-3760064 +Node: Anagram Program760179 +Node: Signature Program763241 +Node: Programs Summary764488 +Node: Programs Exercises765681 +Ref: Programs Exercises-Footnote-1769812 +Node: Advanced Features769903 +Node: Nondecimal Data771851 +Node: Array Sorting773441 +Node: Controlling Array Traversal774138 +Ref: Controlling Array Traversal-Footnote-1782469 +Node: Array Sorting Functions782587 +Ref: Array Sorting Functions-Footnote-1786479 +Node: Two-way I/O786673 +Ref: Two-way I/O-Footnote-1791617 +Ref: Two-way I/O-Footnote-2791803 +Node: TCP/IP Networking791885 +Node: Profiling794762 +Node: Advanced Features Summary802306 +Node: Internationalization804239 +Node: I18N and L10N805719 +Node: Explaining gettext806405 +Ref: Explaining gettext-Footnote-1811434 +Ref: Explaining gettext-Footnote-2811618 +Node: Programmer i18n811783 +Ref: Programmer i18n-Footnote-1816649 +Node: Translator i18n816698 +Node: String Extraction817492 +Ref: String Extraction-Footnote-1818623 +Node: Printf Ordering818709 +Ref: Printf Ordering-Footnote-1821495 +Node: I18N Portability821559 +Ref: I18N Portability-Footnote-1824008 +Node: I18N Example824071 +Ref: I18N Example-Footnote-1826871 +Node: Gawk I18N826943 +Node: I18N Summary827581 +Node: Debugger828920 +Node: Debugging829942 +Node: Debugging Concepts830383 +Node: Debugging Terms832240 +Node: Awk Debugging834815 +Node: Sample Debugging Session835707 +Node: Debugger Invocation836227 +Node: Finding The Bug837611 +Node: List of Debugger Commands844086 +Node: Breakpoint Control845418 +Node: Debugger Execution Control849110 +Node: Viewing And Changing Data852474 +Node: Execution Stack855839 +Node: Debugger Info857477 +Node: Miscellaneous Debugger Commands861494 +Node: Readline Support866686 +Node: Limitations867578 +Node: Debugging Summary869675 +Node: Arbitrary Precision Arithmetic870843 +Node: Computer Arithmetic872259 +Ref: table-numeric-ranges875860 +Ref: Computer Arithmetic-Footnote-1876719 +Node: Math Definitions876776 +Ref: table-ieee-formats880063 +Ref: Math Definitions-Footnote-1880667 +Node: MPFR features880772 +Node: FP Math Caution882443 +Ref: FP Math Caution-Footnote-1883493 +Node: Inexactness of computations883862 +Node: Inexact representation884810 +Node: Comparing FP Values886165 +Node: Errors accumulate887238 +Node: Getting Accuracy888671 +Node: Try To Round891330 +Node: Setting precision892229 +Ref: table-predefined-precision-strings892913 +Node: Setting the rounding mode894707 +Ref: table-gawk-rounding-modes895071 +Ref: Setting the rounding mode-Footnote-1898525 +Node: Arbitrary Precision Integers898704 +Ref: Arbitrary Precision Integers-Footnote-1901695 +Node: POSIX Floating Point Problems901844 +Ref: POSIX Floating Point Problems-Footnote-1905720 +Node: Floating point summary905758 +Node: Dynamic Extensions907950 +Node: Extension Intro909502 +Node: Plugin License910768 +Node: Extension Mechanism Outline911565 +Ref: figure-load-extension911993 +Ref: figure-register-new-function913473 +Ref: figure-call-new-function914477 +Node: Extension API Description916463 +Node: Extension API Functions Introduction917913 +Node: General Data Types922749 +Ref: General Data Types-Footnote-1928436 +Node: Memory Allocation Functions928735 +Ref: Memory Allocation Functions-Footnote-1931565 +Node: Constructor Functions931661 +Node: Registration Functions933395 +Node: Extension Functions934080 +Node: Exit Callback Functions936376 +Node: Extension Version String937624 +Node: Input Parsers938274 +Node: Output Wrappers948089 +Node: Two-way processors952605 +Node: Printing Messages954809 +Ref: Printing Messages-Footnote-1955886 +Node: Updating `ERRNO'956038 +Node: Requesting Values956778 +Ref: table-value-types-returned957506 +Node: Accessing Parameters958464 +Node: Symbol Table Access959695 +Node: Symbol table by name960209 +Node: Symbol table by cookie962189 +Ref: Symbol table by cookie-Footnote-1966328 +Node: Cached values966391 +Ref: Cached values-Footnote-1969895 +Node: Array Manipulation969986 +Ref: Array Manipulation-Footnote-1971084 +Node: Array Data Types971123 +Ref: Array Data Types-Footnote-1973780 +Node: Array Functions973872 +Node: Flattening Arrays977726 +Node: Creating Arrays984613 +Node: Extension API Variables989380 +Node: Extension Versioning990016 +Node: Extension API Informational Variables991917 +Node: Extension API Boilerplate993005 +Node: Finding Extensions996821 +Node: Extension Example997381 +Node: Internal File Description998153 +Node: Internal File Ops1002220 +Ref: Internal File Ops-Footnote-11013878 +Node: Using Internal File Ops1014018 +Ref: Using Internal File Ops-Footnote-11016401 +Node: Extension Samples1016674 +Node: Extension Sample File Functions1018198 +Node: Extension Sample Fnmatch1025800 +Node: Extension Sample Fork1027282 +Node: Extension Sample Inplace1028495 +Node: Extension Sample Ord1030170 +Node: Extension Sample Readdir1031006 +Ref: table-readdir-file-types1031862 +Node: Extension Sample Revout1032673 +Node: Extension Sample Rev2way1033264 +Node: Extension Sample Read write array1034005 +Node: Extension Sample Readfile1035944 +Node: Extension Sample Time1037039 +Node: Extension Sample API Tests1038388 +Node: gawkextlib1038879 +Node: Extension summary1041529 +Node: Extension Exercises1045211 +Node: Language History1045933 +Node: V7/SVR3.11047590 +Node: SVR41049771 +Node: POSIX1051216 +Node: BTL1052605 +Node: POSIX/GNU1053339 +Node: Feature History1058908 +Node: Common Extensions1071999 +Node: Ranges and Locales1073323 +Ref: Ranges and Locales-Footnote-11077962 +Ref: Ranges and Locales-Footnote-21077989 +Ref: Ranges and Locales-Footnote-31078223 +Node: Contributors1078444 +Node: History summary1083984 +Node: Installation1085353 +Node: Gawk Distribution1086309 +Node: Getting1086793 +Node: Extracting1087617 +Node: Distribution contents1089259 +Node: Unix Installation1094976 +Node: Quick Installation1095593 +Node: Additional Configuration Options1098024 +Node: Configuration Philosophy1099764 +Node: Non-Unix Installation1102115 +Node: PC Installation1102573 +Node: PC Binary Installation1103899 +Node: PC Compiling1105747 +Ref: PC Compiling-Footnote-11108768 +Node: PC Testing1108873 +Node: PC Using1110049 +Node: Cygwin1114164 +Node: MSYS1114987 +Node: VMS Installation1115485 +Node: VMS Compilation1116277 +Ref: VMS Compilation-Footnote-11117499 +Node: VMS Dynamic Extensions1117557 +Node: VMS Installation Details1119241 +Node: VMS Running1121493 +Node: VMS GNV1124334 +Node: VMS Old Gawk1125063 +Node: Bugs1125533 +Node: Other Versions1129503 +Node: Installation summary1135716 +Node: Notes1136772 +Node: Compatibility Mode1137637 +Node: Additions1138419 +Node: Accessing The Source1139344 +Node: Adding Code1140780 +Node: New Ports1146952 +Node: Derived Files1151434 +Ref: Derived Files-Footnote-11156909 +Ref: Derived Files-Footnote-21156943 +Ref: Derived Files-Footnote-31157539 +Node: Future Extensions1157653 +Node: Implementation Limitations1158259 +Node: Extension Design1159507 +Node: Old Extension Problems1160661 +Ref: Old Extension Problems-Footnote-11162178 +Node: Extension New Mechanism Goals1162235 +Ref: Extension New Mechanism Goals-Footnote-11165595 +Node: Extension Other Design Decisions1165784 +Node: Extension Future Growth1167892 +Node: Old Extension Mechanism1168728 +Node: Notes summary1170490 +Node: Basic Concepts1171676 +Node: Basic High Level1172357 +Ref: figure-general-flow1172629 +Ref: figure-process-flow1173228 +Ref: Basic High Level-Footnote-11176457 +Node: Basic Data Typing1176642 +Node: Glossary1179970 +Node: Copying1205128 +Node: GNU Free Documentation License1242684 +Node: Index1267820 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index f314c99f..1e052502 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -1244,8 +1244,7 @@ language that makes it easy to handle simple data-reformatting jobs. The GNU implementation of @command{awk} is called @command{gawk}; if you invoke it with the proper options or environment variables -(@pxref{Options}), it is fully -compatible with +it is fully compatible with the POSIX@footnote{The 2008 POSIX standard is accessible online at @w{@url{http://www.opengroup.org/onlinepubs/9699919799/}.}} specification of the @command{awk} language @@ -1262,7 +1261,7 @@ So most of the time, we don't distinguish between @command{gawk} and other @cindex @command{gawk}, @command{awk} and @cindex @command{awk}, @command{gawk} and @cindex @command{awk}, uses for -Using @command{awk} allows you to: +Using @command{awk} you can: @itemize @value{BULLET} @item @@ -1409,13 +1408,13 @@ The version in System V Release 4 (1989) added some new features and cleaned up the behavior in some of the ``dark corners'' of the language. The specification for @command{awk} in the POSIX Command Language and Utilities standard further clarified the language. -Both the @command{gawk} designers and the original Bell Laboratories @command{awk} -designers provided feedback for the POSIX specification. +Both the @command{gawk} designers and the original @command{awk} designers at Bell Laboratories +provided feedback for the POSIX specification. @cindex Rubin, Paul @cindex Fenlason, Jay @cindex Trueman, David -Paul Rubin wrote the GNU implementation, @command{gawk}, in 1986. +Paul Rubin wrote @command{gawk} in 1986. Jay Fenlason completed it, with advice from Richard Stallman. John Woods contributed parts of the code as well. In 1988 and 1989, David Trueman, with help from me, thoroughly reworked @command{gawk} for compatibility @@ -1438,7 +1437,7 @@ an @command{awk}-level debugger. This version became available as @command{gawk} @value{PVERSION} 4.0, in 2011. @xref{Contributors}, -for a complete list of those who made important contributions to @command{gawk}. +for a full list of those who made important contributions to @command{gawk}. @node Names @unnumberedsec A Rose by Any Other Name @@ -1504,8 +1503,8 @@ entry ``differences in @command{awk} and @command{gawk}.''} @ifset FOR_PRINT implementations. @end ifset -Finally, any @command{gawk} features that are not in -the POSIX standard for @command{awk} are noted. +Finally, it notes any @command{gawk} features that are not in +the POSIX standard for @command{awk}. @ifnotinfo This @value{DOCUMENT} has the difficult task of being both a tutorial and a reference. @@ -1603,21 +1602,21 @@ Part III focuses on features specific to @command{gawk}. It contains the following chapters: @ref{Advanced Features}, -describes a number of @command{gawk}-specific advanced features. +describes a number of advanced features. Of particular note -are the abilities to have two-way communications with another process, +are the abilities to control the order of array traversal, +have two-way communications with another process, perform TCP/IP networking, and profile your @command{awk} programs. @ref{Internationalization}, -describes special features in @command{gawk} for translating program +describes special features for translating program messages into different languages at runtime. -@ref{Debugger}, describes the @command{awk} debugger. +@ref{Debugger}, describes the @command{gawk} debugger. @ref{Arbitrary Precision Arithmetic}, -describes advanced arithmetic facilities provided by -@command{gawk}. +describes advanced arithmetic facilities. @ref{Dynamic Extensions}, describes how to add new variables and functions to @command{gawk} by writing extensions in C or C++. @@ -1800,8 +1799,8 @@ the picture of a flashlight in the margin, as shown here. They also appear in the index under the heading ``dark corner.'' @end ifclear -As noted by the opening quote, though, any coverage of dark corners is, -by definition, incomplete. +But, as noted by the opening quote, any coverage of dark +corners is by definition incomplete. @cindex c.e., See common extensions Extensions to the standard @command{awk} language that are supported by @@ -1875,9 +1874,7 @@ available for download from the Internet. @ifnotinfo The @value{DOCUMENT} you are reading is actually free---at least, the information in it is free to anyone. The machine-readable -source code for the @value{DOCUMENT} comes with @command{gawk}; anyone -may take this @value{DOCUMENT} to a copying machine and make as many -copies as they like. +source code for the @value{DOCUMENT} comes with @command{gawk}. @ifclear FOR_PRINT (Take a moment to check the Free Documentation License in @ref{GNU Free Documentation License}.) @@ -1885,7 +1882,7 @@ License in @ref{GNU Free Documentation License}.) @end ifnotinfo @cindex Close, Diane -The @value{DOCUMENT} itself has gone through a number of previous editions. +The @value{DOCUMENT} itself has gone through multiple previous editions. Paul Rubin wrote the very first draft of @cite{The GAWK Manual}; it was around 40 pages in size. Diane Close and Richard Stallman improved it, yielding a @@ -1906,10 +1903,9 @@ the third edition in 2001. @end ifset This edition maintains the basic structure of the previous editions. -For FSF edition 4.0, the content has been thoroughly reviewed -and updated. All references to @command{gawk} versions prior to 4.0 have been -removed. -Of significant note for this edition was @ref{Debugger}. +For FSF edition 4.0, the content was thoroughly reviewed and updated. All +references to @command{gawk} versions prior to 4.0 were removed. +Of significant note for that edition was @ref{Debugger}. For FSF edition @ifclear FOR_PRINT @@ -1923,8 +1919,7 @@ the content has been reorganized into parts, and the major new additions are @ref{Arbitrary Precision Arithmetic}, and @ref{Dynamic Extensions}. -This @value{DOCUMENT} will undoubtedly continue to evolve. An electronic -version comes with the @command{gawk} distribution from the FSF. If you +This @value{DOCUMENT} will undoubtedly continue to evolve. If you find an error in this @value{DOCUMENT}, please report it! @xref{Bugs}, for information on submitting problem reports electronically. @@ -2105,15 +2100,16 @@ Andrew Schorr, Corinna Vinschen, and Eli Zaretskii (in alphabetical order) -make up the current -@command{gawk} ``crack portability team.'' Without their hard work and -help, @command{gawk} would not be nearly the fine program it is today. It -has been and continues to be a pleasure working with this team of fine -people. +make up the current @command{gawk} ``crack portability team.'' Without +their hard work and help, @command{gawk} would not be nearly the robust, +portable program it is today. It has been and continues to be a pleasure +working with this team of fine people. Notable code and documentation contributions were made by a number of people. @xref{Contributors}, for the full list. +Thanks to Michael Brennan for the Foreword. + Thanks to Patrice Dumas for the new @command{makeinfo} program. Thanks to Karl Berry who continues to work to keep the Texinfo markup language sane. @@ -5381,7 +5377,7 @@ component (e.g., in @samp{ph*}, it applies just to the @samp{h}). To cause @samp{*} to apply to a larger sub-expression, use parentheses: @samp{(ph)*} matches @samp{ph}, @samp{phph}, @samp{phphph} and so on. -Second, @samp{*} finds as many repetititons as possible. If the text +Second, @samp{*} finds as many repetitions as possible. If the text to be matched is @samp{phhhhhhhhhhhhhhooey}, @samp{ph*} matches all of the @samp{h}s. @@ -24460,7 +24456,7 @@ conditions depending on its previous condition and on the present values of its inputs.''@footnote{This is the definition returned from entering @code{define: state machine} into Google.} Brian Kernighan suggests that -``an alternative approach to state mechines is to just read +``an alternative approach to state machines is to just read the input into an array, then use indexing. It's almost always easier code, and for most inputs where you would use this, just as fast.'' Consider how to rewrite the logic to follow this @@ -26577,7 +26573,7 @@ mailing labels, and finding anagrams. @enumerate @item Rewrite @file{cut.awk} (@pxref{Cut Program}) -using @code{split()} with @code{""} as the seperator. +using @code{split()} with @code{""} as the separator. @item In @ref{Egrep Program}, we mentioned that @samp{egrep -i} could be @@ -26609,7 +26605,7 @@ conditions depending on its previous condition and on the present values of its inputs.''@footnote{This is the definition returned from entering @code{define: state machine} into Google.} Brian Kernighan suggests that -``an alternative approach to state mechines is to just read +``an alternative approach to state machines is to just read the input into an array, then use indexing. It's almost always easier code, and for most inputs where you would use this, just as fast.'' Rewrite the logic to follow this @@ -30257,7 +30253,7 @@ signed. The possible ranges of values are shown in @ref{table-numeric-ranges}. @float Table,table-numeric-ranges @caption{Value Ranges for Different Numeric Representations} @multitable @columnfractions .34 .33 .33 -@headitem Numeric representation @tab Miniumum value @tab Maximum value +@headitem Numeric representation @tab Minimum value @tab Maximum value @item 32-bit signed integer @tab @minus{}2,147,483,648 @tab 2,147,483,647 @item 32-bit unsigned integer @tab 0 @tab 4,294,967,295 @item 64-bit signed integer @tab @minus{}9,223,372,036,854,775,808 @tab 9,223,372,036,854,775,807 @@ -30387,7 +30383,7 @@ one extra bit of significand. @end quotation @node MPFR features -@section Arbitrary Precison Arithmetic Features In @command{gawk} +@section Arbitrary Precision Arithmetic Features In @command{gawk} By default, @command{gawk} uses the double precision floating-point values supplied by the hardware of the system it runs on. However, if it was @@ -38813,7 +38809,7 @@ and @item Be willing to continue to maintain the port. Non-Unix operating systems are supported by volunteers who maintain -the code needed to compile and run @command{gawk} on their systems. If noone +the code needed to compile and run @command{gawk} on their systems. If no-one volunteers to maintain a port, it becomes unsupported and it may be necessary to remove it from the distribution. diff --git a/doc/gawktexi.in b/doc/gawktexi.in index f041935f..8ce01f66 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -1239,8 +1239,7 @@ language that makes it easy to handle simple data-reformatting jobs. The GNU implementation of @command{awk} is called @command{gawk}; if you invoke it with the proper options or environment variables -(@pxref{Options}), it is fully -compatible with +it is fully compatible with the POSIX@footnote{The 2008 POSIX standard is accessible online at @w{@url{http://www.opengroup.org/onlinepubs/9699919799/}.}} specification of the @command{awk} language @@ -1257,7 +1256,7 @@ So most of the time, we don't distinguish between @command{gawk} and other @cindex @command{gawk}, @command{awk} and @cindex @command{awk}, @command{gawk} and @cindex @command{awk}, uses for -Using @command{awk} allows you to: +Using @command{awk} you can: @itemize @value{BULLET} @item @@ -1376,13 +1375,13 @@ The version in System V Release 4 (1989) added some new features and cleaned up the behavior in some of the ``dark corners'' of the language. The specification for @command{awk} in the POSIX Command Language and Utilities standard further clarified the language. -Both the @command{gawk} designers and the original Bell Laboratories @command{awk} -designers provided feedback for the POSIX specification. +Both the @command{gawk} designers and the original @command{awk} designers at Bell Laboratories +provided feedback for the POSIX specification. @cindex Rubin, Paul @cindex Fenlason, Jay @cindex Trueman, David -Paul Rubin wrote the GNU implementation, @command{gawk}, in 1986. +Paul Rubin wrote @command{gawk} in 1986. Jay Fenlason completed it, with advice from Richard Stallman. John Woods contributed parts of the code as well. In 1988 and 1989, David Trueman, with help from me, thoroughly reworked @command{gawk} for compatibility @@ -1405,7 +1404,7 @@ an @command{awk}-level debugger. This version became available as @command{gawk} @value{PVERSION} 4.0, in 2011. @xref{Contributors}, -for a complete list of those who made important contributions to @command{gawk}. +for a full list of those who made important contributions to @command{gawk}. @node Names @unnumberedsec A Rose by Any Other Name @@ -1471,8 +1470,8 @@ entry ``differences in @command{awk} and @command{gawk}.''} @ifset FOR_PRINT implementations. @end ifset -Finally, any @command{gawk} features that are not in -the POSIX standard for @command{awk} are noted. +Finally, it notes any @command{gawk} features that are not in +the POSIX standard for @command{awk}. @ifnotinfo This @value{DOCUMENT} has the difficult task of being both a tutorial and a reference. @@ -1570,21 +1569,21 @@ Part III focuses on features specific to @command{gawk}. It contains the following chapters: @ref{Advanced Features}, -describes a number of @command{gawk}-specific advanced features. +describes a number of advanced features. Of particular note -are the abilities to have two-way communications with another process, +are the abilities to control the order of array traversal, +have two-way communications with another process, perform TCP/IP networking, and profile your @command{awk} programs. @ref{Internationalization}, -describes special features in @command{gawk} for translating program +describes special features for translating program messages into different languages at runtime. -@ref{Debugger}, describes the @command{awk} debugger. +@ref{Debugger}, describes the @command{gawk} debugger. @ref{Arbitrary Precision Arithmetic}, -describes advanced arithmetic facilities provided by -@command{gawk}. +describes advanced arithmetic facilities. @ref{Dynamic Extensions}, describes how to add new variables and functions to @command{gawk} by writing extensions in C or C++. @@ -1767,8 +1766,8 @@ the picture of a flashlight in the margin, as shown here. They also appear in the index under the heading ``dark corner.'' @end ifclear -As noted by the opening quote, though, any coverage of dark corners is, -by definition, incomplete. +But, as noted by the opening quote, any coverage of dark +corners is by definition incomplete. @cindex c.e., See common extensions Extensions to the standard @command{awk} language that are supported by @@ -1842,9 +1841,7 @@ available for download from the Internet. @ifnotinfo The @value{DOCUMENT} you are reading is actually free---at least, the information in it is free to anyone. The machine-readable -source code for the @value{DOCUMENT} comes with @command{gawk}; anyone -may take this @value{DOCUMENT} to a copying machine and make as many -copies as they like. +source code for the @value{DOCUMENT} comes with @command{gawk}. @ifclear FOR_PRINT (Take a moment to check the Free Documentation License in @ref{GNU Free Documentation License}.) @@ -1852,7 +1849,7 @@ License in @ref{GNU Free Documentation License}.) @end ifnotinfo @cindex Close, Diane -The @value{DOCUMENT} itself has gone through a number of previous editions. +The @value{DOCUMENT} itself has gone through multiple previous editions. Paul Rubin wrote the very first draft of @cite{The GAWK Manual}; it was around 40 pages in size. Diane Close and Richard Stallman improved it, yielding a @@ -1873,10 +1870,9 @@ the third edition in 2001. @end ifset This edition maintains the basic structure of the previous editions. -For FSF edition 4.0, the content has been thoroughly reviewed -and updated. All references to @command{gawk} versions prior to 4.0 have been -removed. -Of significant note for this edition was @ref{Debugger}. +For FSF edition 4.0, the content was thoroughly reviewed and updated. All +references to @command{gawk} versions prior to 4.0 were removed. +Of significant note for that edition was @ref{Debugger}. For FSF edition @ifclear FOR_PRINT @@ -1890,8 +1886,7 @@ the content has been reorganized into parts, and the major new additions are @ref{Arbitrary Precision Arithmetic}, and @ref{Dynamic Extensions}. -This @value{DOCUMENT} will undoubtedly continue to evolve. An electronic -version comes with the @command{gawk} distribution from the FSF. If you +This @value{DOCUMENT} will undoubtedly continue to evolve. If you find an error in this @value{DOCUMENT}, please report it! @xref{Bugs}, for information on submitting problem reports electronically. @@ -2072,15 +2067,16 @@ Andrew Schorr, Corinna Vinschen, and Eli Zaretskii (in alphabetical order) -make up the current -@command{gawk} ``crack portability team.'' Without their hard work and -help, @command{gawk} would not be nearly the fine program it is today. It -has been and continues to be a pleasure working with this team of fine -people. +make up the current @command{gawk} ``crack portability team.'' Without +their hard work and help, @command{gawk} would not be nearly the robust, +portable program it is today. It has been and continues to be a pleasure +working with this team of fine people. Notable code and documentation contributions were made by a number of people. @xref{Contributors}, for the full list. +Thanks to Michael Brennan for the Foreword. + Thanks to Patrice Dumas for the new @command{makeinfo} program. Thanks to Karl Berry who continues to work to keep the Texinfo markup language sane. @@ -5209,7 +5205,7 @@ component (e.g., in @samp{ph*}, it applies just to the @samp{h}). To cause @samp{*} to apply to a larger sub-expression, use parentheses: @samp{(ph)*} matches @samp{ph}, @samp{phph}, @samp{phphph} and so on. -Second, @samp{*} finds as many repetititons as possible. If the text +Second, @samp{*} finds as many repetitions as possible. If the text to be matched is @samp{phhhhhhhhhhhhhhooey}, @samp{ph*} matches all of the @samp{h}s. @@ -23554,7 +23550,7 @@ conditions depending on its previous condition and on the present values of its inputs.''@footnote{This is the definition returned from entering @code{define: state machine} into Google.} Brian Kernighan suggests that -``an alternative approach to state mechines is to just read +``an alternative approach to state machines is to just read the input into an array, then use indexing. It's almost always easier code, and for most inputs where you would use this, just as fast.'' Consider how to rewrite the logic to follow this @@ -25671,7 +25667,7 @@ mailing labels, and finding anagrams. @enumerate @item Rewrite @file{cut.awk} (@pxref{Cut Program}) -using @code{split()} with @code{""} as the seperator. +using @code{split()} with @code{""} as the separator. @item In @ref{Egrep Program}, we mentioned that @samp{egrep -i} could be @@ -25703,7 +25699,7 @@ conditions depending on its previous condition and on the present values of its inputs.''@footnote{This is the definition returned from entering @code{define: state machine} into Google.} Brian Kernighan suggests that -``an alternative approach to state mechines is to just read +``an alternative approach to state machines is to just read the input into an array, then use indexing. It's almost always easier code, and for most inputs where you would use this, just as fast.'' Rewrite the logic to follow this @@ -29351,7 +29347,7 @@ signed. The possible ranges of values are shown in @ref{table-numeric-ranges}. @float Table,table-numeric-ranges @caption{Value Ranges for Different Numeric Representations} @multitable @columnfractions .34 .33 .33 -@headitem Numeric representation @tab Miniumum value @tab Maximum value +@headitem Numeric representation @tab Minimum value @tab Maximum value @item 32-bit signed integer @tab @minus{}2,147,483,648 @tab 2,147,483,647 @item 32-bit unsigned integer @tab 0 @tab 4,294,967,295 @item 64-bit signed integer @tab @minus{}9,223,372,036,854,775,808 @tab 9,223,372,036,854,775,807 @@ -29481,7 +29477,7 @@ one extra bit of significand. @end quotation @node MPFR features -@section Arbitrary Precison Arithmetic Features In @command{gawk} +@section Arbitrary Precision Arithmetic Features In @command{gawk} By default, @command{gawk} uses the double precision floating-point values supplied by the hardware of the system it runs on. However, if it was @@ -37907,7 +37903,7 @@ and @item Be willing to continue to maintain the port. Non-Unix operating systems are supported by volunteers who maintain -the code needed to compile and run @command{gawk} on their systems. If noone +the code needed to compile and run @command{gawk} on their systems. If no-one volunteers to maintain a port, it becomes unsupported and it may be necessary to remove it from the distribution. |