diff options
-rw-r--r-- | doc/ChangeLog | 5 | ||||
-rw-r--r-- | doc/gawk.info | 1078 | ||||
-rw-r--r-- | doc/gawk.texi | 118 | ||||
-rw-r--r-- | doc/gawktexi.in | 118 |
4 files changed, 612 insertions, 707 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index b91b9238..9d4809ae 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2014-05-29 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Remove some obsolete bits, fix up some other + minor stuff. + 2014-05-27 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Edits through the end! diff --git a/doc/gawk.info b/doc/gawk.info index ceeeb6f7..cb22b934 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -1165,13 +1165,13 @@ 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 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 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 edition 4.1, the content has been reorganized into parts, and -the major new additions are *note Arbitrary Precision Arithmetic::, and -*note Dynamic Extensions::. + 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 @@ -2797,7 +2797,9 @@ filename. `.' explicitly in the path or write a null entry in the path. (A null entry is indicated by starting or ending the path with a colon or by placing two colons next to each other [`::'].) This - path search mechanism is similar to the shell's. + path search mechanism is similar to the shell's. (See `The + Bourne-Again SHell manual'. + (http://www.gnu.org/software/bash/manual/)) However, `gawk' always looks in the current directory _before_ searching `AWKPATH', so there is no real reason to include the @@ -22232,6 +22234,7 @@ not return a value. `#define emalloc(pointer, type, size, message) ...' The arguments to this macro are as follows: + `pointer' The pointer variable to point at the allocated storage. @@ -22391,6 +22394,7 @@ function with `gawk' using the following function. `void awk_atexit(void (*funcp)(void *data, int exit_status),' ` void *arg0);' The parameters are: + `funcp' A pointer to the function to be called before `gawk' exits. The `data' parameter will be the original value of `arg0'. @@ -26092,6 +26096,9 @@ Info file, in approximate chronological order: - The improved array sorting features were driven by John together with Pat Rankin. + Panos Papadopoulos contributed the original text for *note Include + Files::. + * Efraim Yawitz contributed the original text for *note Debugger::. * The development of the extension API first released with `gawk' @@ -27756,11 +27763,11 @@ critical, that for any given branch, the above incantation _just works_. 2. It would certainly help if everyone used the same versions of the GNU tools as he does, which in general are the latest released - versions of Automake, Autoconf, `bison', and `gettext'. + versions of Automake, Autoconf, `bison', and GNU `gettext'. Installing from source is quite easy. It's how the maintainer - worked for years, and still works. He had `/usr/local/bin' at the - front of his `PATH' and just did: + worked for years (and still works). He had `/usr/local/bin' at + the front of his `PATH' and just did: wget http://ftp.gnu.org/gnu/PACKAGE/PACKAGE-X.Y.Z.tar.gz tar -xpzvf PACKAGE-X.Y.Z.tar.gz @@ -30853,7 +30860,7 @@ Index * Collado, Manuel: Acknowledgments. (line 60) * collating elements: Bracket Expressions. (line 69) * collating symbols: Bracket Expressions. (line 76) -* Colombo, Antonio <1>: Contributors. (line 135) +* Colombo, Antonio <1>: Contributors. (line 138) * Colombo, Antonio: Acknowledgments. (line 60) * columns, aligning: Print Examples. (line 70) * columns, cutting: Cut Program. (line 6) @@ -32301,6 +32308,7 @@ Index * output, standard: Special FD. (line 6) * p debugger command (alias for print): Viewing And Changing Data. (line 36) +* Papadopoulos, Panos: Contributors. (line 129) * parent process ID of gawk process: Auto-set. (line 181) * parentheses (), in a profile: Profiling. (line 146) * parentheses (), regexp operator: Regexp Operators. (line 80) @@ -32647,7 +32655,7 @@ Index * RLENGTH variable, match() function and: String Functions. (line 224) * Robbins, Arnold <1>: Future Extensions. (line 6) * Robbins, Arnold <2>: Bugs. (line 32) -* Robbins, Arnold <3>: Contributors. (line 139) +* Robbins, Arnold <3>: Contributors. (line 142) * Robbins, Arnold <4>: General Data Types. (line 6) * Robbins, Arnold <5>: Alarm Program. (line 6) * Robbins, Arnold <6>: Passwd Functions. (line 90) @@ -32693,7 +32701,7 @@ Index * scalar values: Basic Data Typing. (line 13) * scanning arrays: Scanning an Array. (line 6) * scanning multidimensional arrays: Multiscanning. (line 11) -* Schorr, Andrew <1>: Contributors. (line 131) +* Schorr, Andrew <1>: Contributors. (line 134) * Schorr, Andrew <2>: Auto-set. (line 284) * Schorr, Andrew: Acknowledgments. (line 60) * Schreiber, Bert: Acknowledgments. (line 38) @@ -33180,7 +33188,7 @@ Index * xgettext utility: String Extraction. (line 13) * xor: Bitwise Functions. (line 55) * XOR bitwise operation: Bitwise Functions. (line 6) -* Yawitz, Efraim: Contributors. (line 129) +* Yawitz, Efraim: Contributors. (line 132) * Zaretskii, Eli <1>: Bugs. (line 71) * Zaretskii, Eli <2>: Contributors. (line 55) * Zaretskii, Eli: Acknowledgments. (line 60) @@ -33226,526 +33234,526 @@ Node: This Manual52572 Ref: This Manual-Footnote-158351 Node: Conventions58451 Node: Manual History60607 -Ref: Manual History-Footnote-164038 -Ref: Manual History-Footnote-264079 -Node: How To Contribute64153 -Node: Acknowledgments65392 -Node: Getting Started69541 -Node: Running gawk71914 -Node: One-shot73104 -Node: Read Terminal74329 -Ref: Read Terminal-Footnote-175979 -Ref: Read Terminal-Footnote-276255 -Node: Long76426 -Node: Executable Scripts77802 -Ref: Executable Scripts-Footnote-179635 -Ref: Executable Scripts-Footnote-279737 -Node: Comments80284 -Node: Quoting82751 -Node: DOS Quoting88067 -Node: Sample Data Files88742 -Node: Very Simple91257 -Node: Two Rules95895 -Node: More Complex97790 -Ref: More Complex-Footnote-1100722 -Node: Statements/Lines100807 -Ref: Statements/Lines-Footnote-1105262 -Node: Other Features105527 -Node: When106455 -Node: Invoking Gawk108603 -Node: Command Line110066 -Node: Options110857 -Ref: Options-Footnote-1126669 -Node: Other Arguments126694 -Node: Naming Standard Input129356 -Node: Environment Variables130450 -Node: AWKPATH Variable131008 -Ref: AWKPATH Variable-Footnote-1133786 -Ref: AWKPATH Variable-Footnote-2133831 -Node: AWKLIBPATH Variable134091 -Node: Other Environment Variables134850 -Node: Exit Status138505 -Node: Include Files139180 -Node: Loading Shared Libraries142758 -Node: Obsolete144141 -Node: Undocumented144838 -Node: Regexp145080 -Node: Regexp Usage146469 -Node: Escape Sequences148502 -Node: Regexp Operators154169 -Ref: Regexp Operators-Footnote-1161649 -Ref: Regexp Operators-Footnote-2161796 -Node: Bracket Expressions161894 -Ref: table-char-classes163784 -Node: GNU Regexp Operators166307 -Node: Case-sensitivity170030 -Ref: Case-sensitivity-Footnote-1172922 -Ref: Case-sensitivity-Footnote-2173157 -Node: Leftmost Longest173265 -Node: Computed Regexps174466 -Node: Reading Files177815 -Node: Records179817 -Node: awk split records180552 -Node: gawk split records185410 -Ref: gawk split records-Footnote-1189931 -Node: Fields189968 -Ref: Fields-Footnote-1192932 -Node: Nonconstant Fields193018 -Ref: Nonconstant Fields-Footnote-1195248 -Node: Changing Fields195450 -Node: Field Separators201404 -Node: Default Field Splitting204106 -Node: Regexp Field Splitting205223 -Node: Single Character Fields208564 -Node: Command Line Field Separator209623 -Node: Full Line Fields212965 -Ref: Full Line Fields-Footnote-1213473 -Node: Field Splitting Summary213519 -Ref: Field Splitting Summary-Footnote-1216618 -Node: Constant Size216719 -Node: Splitting By Content221326 -Ref: Splitting By Content-Footnote-1225076 -Node: Multiple Line225116 -Ref: Multiple Line-Footnote-1230972 -Node: Getline231151 -Node: Plain Getline233367 -Node: Getline/Variable235462 -Node: Getline/File236609 -Node: Getline/Variable/File237993 -Ref: Getline/Variable/File-Footnote-1239592 -Node: Getline/Pipe239679 -Node: Getline/Variable/Pipe242378 -Node: Getline/Coprocess243485 -Node: Getline/Variable/Coprocess244737 -Node: Getline Notes245474 -Node: Getline Summary248278 -Ref: table-getline-variants248686 -Node: Read Timeout249598 -Ref: Read Timeout-Footnote-1253425 -Node: Command line directories253483 -Node: Printing254365 -Node: Print255996 -Node: Print Examples257337 -Node: Output Separators260116 -Node: OFMT262132 -Node: Printf263490 -Node: Basic Printf264396 -Node: Control Letters265935 -Node: Format Modifiers269789 -Node: Printf Examples275816 -Node: Redirection278523 -Node: Special Files285495 -Node: Special FD286028 -Ref: Special FD-Footnote-1289652 -Node: Special Network289726 -Node: Special Caveats290576 -Node: Close Files And Pipes291372 -Ref: Close Files And Pipes-Footnote-1298510 -Ref: Close Files And Pipes-Footnote-2298658 -Node: Expressions298808 -Node: Values299940 -Node: Constants300616 -Node: Scalar Constants301296 -Ref: Scalar Constants-Footnote-1302155 -Node: Nondecimal-numbers302405 -Node: Regexp Constants305405 -Node: Using Constant Regexps305880 -Node: Variables308950 -Node: Using Variables309605 -Node: Assignment Options311329 -Node: Conversion313204 -Ref: table-locale-affects318640 -Ref: Conversion-Footnote-1319264 -Node: All Operators319373 -Node: Arithmetic Ops320003 -Node: Concatenation322508 -Ref: Concatenation-Footnote-1325304 -Node: Assignment Ops325424 -Ref: table-assign-ops330407 -Node: Increment Ops331724 -Node: Truth Values and Conditions335162 -Node: Truth Values336245 -Node: Typing and Comparison337294 -Node: Variable Typing338087 -Ref: Variable Typing-Footnote-1341987 -Node: Comparison Operators342109 -Ref: table-relational-ops342519 -Node: POSIX String Comparison346067 -Ref: POSIX String Comparison-Footnote-1347151 -Node: Boolean Ops347289 -Ref: Boolean Ops-Footnote-1351359 -Node: Conditional Exp351450 -Node: Function Calls353177 -Node: Precedence356935 -Node: Locales360604 -Node: Patterns and Actions362207 -Node: Pattern Overview363261 -Node: Regexp Patterns364938 -Node: Expression Patterns365481 -Node: Ranges369262 -Node: BEGIN/END372368 -Node: Using BEGIN/END373130 -Ref: Using BEGIN/END-Footnote-1375866 -Node: I/O And BEGIN/END375972 -Node: BEGINFILE/ENDFILE378257 -Node: Empty381188 -Node: Using Shell Variables381505 -Node: Action Overview383788 -Node: Statements386115 -Node: If Statement387963 -Node: While Statement389461 -Node: Do Statement391505 -Node: For Statement392661 -Node: Switch Statement395813 -Node: Break Statement397916 -Node: Continue Statement399971 -Node: Next Statement401764 -Node: Nextfile Statement404154 -Node: Exit Statement406809 -Node: Built-in Variables409213 -Node: User-modified410309 -Ref: User-modified-Footnote-1417994 -Node: Auto-set418056 -Ref: Auto-set-Footnote-1430621 -Ref: Auto-set-Footnote-2430826 -Node: ARGC and ARGV430882 -Node: Arrays434736 -Node: Array Basics436234 -Node: Array Intro437060 -Ref: figure-array-elements439033 -Node: Reference to Elements441440 -Node: Assigning Elements443713 -Node: Array Example444204 -Node: Scanning an Array445936 -Node: Controlling Scanning448951 -Ref: Controlling Scanning-Footnote-1454124 -Node: Delete454440 -Ref: Delete-Footnote-1457205 -Node: Numeric Array Subscripts457262 -Node: Uninitialized Subscripts459445 -Node: Multidimensional461070 -Node: Multiscanning464163 -Node: Arrays of Arrays465752 -Node: Functions470392 -Node: Built-in471211 -Node: Calling Built-in472289 -Node: Numeric Functions474277 -Ref: Numeric Functions-Footnote-1478111 -Ref: Numeric Functions-Footnote-2478468 -Ref: Numeric Functions-Footnote-3478516 -Node: String Functions478785 -Ref: String Functions-Footnote-1501796 -Ref: String Functions-Footnote-2501925 -Ref: String Functions-Footnote-3502173 -Node: Gory Details502260 -Ref: table-sub-escapes503929 -Ref: table-sub-posix-92505283 -Ref: table-sub-proposed506634 -Ref: table-posix-sub507988 -Ref: table-gensub-escapes509533 -Ref: Gory Details-Footnote-1510709 -Ref: Gory Details-Footnote-2510760 -Node: I/O Functions510911 -Ref: I/O Functions-Footnote-1518034 -Node: Time Functions518181 -Ref: Time Functions-Footnote-1528645 -Ref: Time Functions-Footnote-2528713 -Ref: Time Functions-Footnote-3528871 -Ref: Time Functions-Footnote-4528982 -Ref: Time Functions-Footnote-5529094 -Ref: Time Functions-Footnote-6529321 -Node: Bitwise Functions529587 -Ref: table-bitwise-ops530149 -Ref: Bitwise Functions-Footnote-1534394 -Node: Type Functions534578 -Node: I18N Functions535720 -Node: User-defined537365 -Node: Definition Syntax538169 -Ref: Definition Syntax-Footnote-1543094 -Node: Function Example543163 -Ref: Function Example-Footnote-1545807 -Node: Function Caveats545829 -Node: Calling A Function546347 -Node: Variable Scope547302 -Node: Pass By Value/Reference550290 -Node: Return Statement553798 -Node: Dynamic Typing556782 -Node: Indirect Calls557711 -Node: Library Functions567398 -Ref: Library Functions-Footnote-1570911 -Ref: Library Functions-Footnote-2571054 -Node: Library Names571225 -Ref: Library Names-Footnote-1574698 -Ref: Library Names-Footnote-2574918 -Node: General Functions575004 -Node: Strtonum Function576032 -Node: Assert Function578962 -Node: Round Function582288 -Node: Cliff Random Function583829 -Node: Ordinal Functions584845 -Ref: Ordinal Functions-Footnote-1587922 -Ref: Ordinal Functions-Footnote-2588174 -Node: Join Function588385 -Ref: Join Function-Footnote-1590156 -Node: Getlocaltime Function590356 -Node: Readfile Function594092 -Node: Data File Management595931 -Node: Filetrans Function596563 -Node: Rewind Function600632 -Node: File Checking602019 -Ref: File Checking-Footnote-1603151 -Node: Empty Files603352 -Node: Ignoring Assigns605582 -Node: Getopt Function607136 -Ref: Getopt Function-Footnote-1618439 -Node: Passwd Functions618642 -Ref: Passwd Functions-Footnote-1627621 -Node: Group Functions627709 -Ref: Group Functions-Footnote-1635651 -Node: Walking Arrays635864 -Node: Sample Programs638000 -Node: Running Examples638674 -Node: Clones639402 -Node: Cut Program640626 -Node: Egrep Program650479 -Ref: Egrep Program-Footnote-1658450 -Node: Id Program658560 -Node: Split Program662224 -Ref: Split Program-Footnote-1665762 -Node: Tee Program665890 -Node: Uniq Program668697 -Node: Wc Program676127 -Ref: Wc Program-Footnote-1680395 -Ref: Wc Program-Footnote-2680595 -Node: Miscellaneous Programs680687 -Node: Dupword Program681875 -Node: Alarm Program683906 -Node: Translate Program688713 -Ref: Translate Program-Footnote-1693104 -Ref: Translate Program-Footnote-2693374 -Node: Labels Program693508 -Ref: Labels Program-Footnote-1696879 -Node: Word Sorting696963 -Node: History Sorting701006 -Node: Extract Program702842 -Ref: Extract Program-Footnote-1710372 -Node: Simple Sed710501 -Node: Igawk Program713563 -Ref: Igawk Program-Footnote-1728738 -Ref: Igawk Program-Footnote-2728939 -Node: Anagram Program729077 -Node: Signature Program732145 -Node: Advanced Features733392 -Node: Nondecimal Data735278 -Node: Array Sorting736855 -Node: Controlling Array Traversal737552 -Node: Array Sorting Functions745832 -Ref: Array Sorting Functions-Footnote-1749739 -Node: Two-way I/O749933 -Ref: Two-way I/O-Footnote-1755449 -Node: TCP/IP Networking755531 -Node: Profiling758375 -Node: Internationalization765883 -Node: I18N and L10N767308 -Node: Explaining gettext767994 -Ref: Explaining gettext-Footnote-1773134 -Ref: Explaining gettext-Footnote-2773318 -Node: Programmer i18n773483 -Node: Translator i18n777708 -Node: String Extraction778502 -Ref: String Extraction-Footnote-1779463 -Node: Printf Ordering779549 -Ref: Printf Ordering-Footnote-1782331 -Node: I18N Portability782395 -Ref: I18N Portability-Footnote-1784844 -Node: I18N Example784907 -Ref: I18N Example-Footnote-1787629 -Node: Gawk I18N787701 -Node: Debugger788322 -Node: Debugging789293 -Node: Debugging Concepts789734 -Node: Debugging Terms791590 -Node: Awk Debugging794187 -Node: Sample Debugging Session795079 -Node: Debugger Invocation795599 -Node: Finding The Bug796932 -Node: List of Debugger Commands803414 -Node: Breakpoint Control804746 -Node: Debugger Execution Control808410 -Node: Viewing And Changing Data811770 -Node: Execution Stack815128 -Node: Debugger Info816641 -Node: Miscellaneous Debugger Commands820635 -Node: Readline Support825819 -Node: Limitations826711 -Node: Arbitrary Precision Arithmetic828959 -Ref: Arbitrary Precision Arithmetic-Footnote-1830608 -Node: General Arithmetic830756 -Node: Floating Point Issues832476 -Node: String Conversion Precision833357 -Ref: String Conversion Precision-Footnote-1835062 -Node: Unexpected Results835171 -Node: POSIX Floating Point Problems837324 -Ref: POSIX Floating Point Problems-Footnote-1841145 -Node: Integer Programming841183 -Node: Floating-point Programming842994 -Ref: Floating-point Programming-Footnote-1849322 -Ref: Floating-point Programming-Footnote-2849592 -Node: Floating-point Representation849856 -Node: Floating-point Context851021 -Ref: table-ieee-formats851860 -Node: Rounding Mode853244 -Ref: table-rounding-modes853723 -Ref: Rounding Mode-Footnote-1856738 -Node: Gawk and MPFR856917 -Node: Arbitrary Precision Floats858326 -Ref: Arbitrary Precision Floats-Footnote-1860769 -Node: Setting Precision861090 -Ref: table-predefined-precision-strings861774 -Node: Setting Rounding Mode863919 -Ref: table-gawk-rounding-modes864323 -Node: Floating-point Constants865510 -Node: Changing Precision866962 -Ref: Changing Precision-Footnote-1868354 -Node: Exact Arithmetic868528 -Node: Arbitrary Precision Integers871662 -Ref: Arbitrary Precision Integers-Footnote-1874677 -Node: Dynamic Extensions874824 -Node: Extension Intro876282 -Node: Plugin License877547 -Node: Extension Mechanism Outline878232 -Ref: figure-load-extension878656 -Ref: figure-load-new-function880141 -Ref: figure-call-new-function881143 -Node: Extension API Description883127 -Node: Extension API Functions Introduction884577 -Node: General Data Types889443 -Ref: General Data Types-Footnote-1895136 -Node: Requesting Values895435 -Ref: table-value-types-returned896172 -Node: Memory Allocation Functions897130 -Ref: Memory Allocation Functions-Footnote-1899876 -Node: Constructor Functions899972 -Node: Registration Functions901730 -Node: Extension Functions902415 -Node: Exit Callback Functions904717 -Node: Extension Version String905966 -Node: Input Parsers906616 -Node: Output Wrappers916419 -Node: Two-way processors920935 -Node: Printing Messages923138 -Ref: Printing Messages-Footnote-1924215 -Node: Updating `ERRNO'924367 -Node: Accessing Parameters925106 -Node: Symbol Table Access926336 -Node: Symbol table by name926850 -Node: Symbol table by cookie928826 -Ref: Symbol table by cookie-Footnote-1932959 -Node: Cached values933022 -Ref: Cached values-Footnote-1936527 -Node: Array Manipulation936618 -Ref: Array Manipulation-Footnote-1937716 -Node: Array Data Types937755 -Ref: Array Data Types-Footnote-1940458 -Node: Array Functions940550 -Node: Flattening Arrays944424 -Node: Creating Arrays951276 -Node: Extension API Variables956007 -Node: Extension Versioning956643 -Node: Extension API Informational Variables958544 -Node: Extension API Boilerplate959630 -Node: Finding Extensions963434 -Node: Extension Example963994 -Node: Internal File Description964724 -Node: Internal File Ops968815 -Ref: Internal File Ops-Footnote-1980361 -Node: Using Internal File Ops980501 -Ref: Using Internal File Ops-Footnote-1982848 -Node: Extension Samples983116 -Node: Extension Sample File Functions984640 -Node: Extension Sample Fnmatch992207 -Node: Extension Sample Fork993686 -Node: Extension Sample Inplace994899 -Node: Extension Sample Ord996677 -Node: Extension Sample Readdir997513 -Ref: table-readdir-file-types998368 -Node: Extension Sample Revout999167 -Node: Extension Sample Rev2way999758 -Node: Extension Sample Read write array1000499 -Node: Extension Sample Readfile1002378 -Node: Extension Sample API Tests1003478 -Node: Extension Sample Time1004003 -Node: gawkextlib1005318 -Node: Language History1008105 -Node: V7/SVR3.11009699 -Node: SVR41012019 -Node: POSIX1013461 -Node: BTL1014847 -Node: POSIX/GNU1015581 -Node: Feature History1021180 -Node: Common Extensions1034292 -Node: Ranges and Locales1035604 -Ref: Ranges and Locales-Footnote-11040221 -Ref: Ranges and Locales-Footnote-21040248 -Ref: Ranges and Locales-Footnote-31040482 -Node: Contributors1040703 -Node: Installation1046054 -Node: Gawk Distribution1046948 -Node: Getting1047432 -Node: Extracting1048258 -Node: Distribution contents1049900 -Node: Unix Installation1055617 -Node: Quick Installation1056234 -Node: Additional Configuration Options1058676 -Node: Configuration Philosophy1060414 -Node: Non-Unix Installation1062765 -Node: PC Installation1063223 -Node: PC Binary Installation1064534 -Node: PC Compiling1066382 -Ref: PC Compiling-Footnote-11069381 -Node: PC Testing1069486 -Node: PC Using1070662 -Node: Cygwin1074820 -Node: MSYS1075629 -Node: VMS Installation1076143 -Node: VMS Compilation1076939 -Ref: VMS Compilation-Footnote-11078160 -Node: VMS Dynamic Extensions1078218 -Node: VMS Installation Details1079591 -Node: VMS Running1081842 -Node: VMS GNV1084676 -Node: VMS Old Gawk1085399 -Node: Bugs1085869 -Node: Other Versions1089873 -Node: Notes1096098 -Node: Compatibility Mode1096898 -Node: Additions1097680 -Node: Accessing The Source1098605 -Node: Adding Code1100041 -Node: New Ports1106219 -Node: Derived Files1110700 -Ref: Derived Files-Footnote-11115776 -Ref: Derived Files-Footnote-21115810 -Ref: Derived Files-Footnote-31116406 -Node: Future Extensions1116520 -Node: Implementation Limitations1117126 -Node: Extension Design1118374 -Node: Old Extension Problems1119528 -Ref: Old Extension Problems-Footnote-11121045 -Node: Extension New Mechanism Goals1121102 -Ref: Extension New Mechanism Goals-Footnote-11124463 -Node: Extension Other Design Decisions1124652 -Node: Extension Future Growth1126758 -Node: Old Extension Mechanism1127594 -Node: Basic Concepts1129334 -Node: Basic High Level1130015 -Ref: figure-general-flow1130287 -Ref: figure-process-flow1130886 -Ref: Basic High Level-Footnote-11134115 -Node: Basic Data Typing1134300 -Node: Glossary1137627 -Node: Copying1162779 -Node: GNU Free Documentation License1200335 -Node: Index1225471 +Ref: Manual History-Footnote-164046 +Ref: Manual History-Footnote-264087 +Node: How To Contribute64161 +Node: Acknowledgments65400 +Node: Getting Started69549 +Node: Running gawk71922 +Node: One-shot73112 +Node: Read Terminal74337 +Ref: Read Terminal-Footnote-175987 +Ref: Read Terminal-Footnote-276263 +Node: Long76434 +Node: Executable Scripts77810 +Ref: Executable Scripts-Footnote-179643 +Ref: Executable Scripts-Footnote-279745 +Node: Comments80292 +Node: Quoting82759 +Node: DOS Quoting88075 +Node: Sample Data Files88750 +Node: Very Simple91265 +Node: Two Rules95903 +Node: More Complex97798 +Ref: More Complex-Footnote-1100730 +Node: Statements/Lines100815 +Ref: Statements/Lines-Footnote-1105270 +Node: Other Features105535 +Node: When106463 +Node: Invoking Gawk108611 +Node: Command Line110074 +Node: Options110865 +Ref: Options-Footnote-1126677 +Node: Other Arguments126702 +Node: Naming Standard Input129364 +Node: Environment Variables130458 +Node: AWKPATH Variable131016 +Ref: AWKPATH Variable-Footnote-1133887 +Ref: AWKPATH Variable-Footnote-2133932 +Node: AWKLIBPATH Variable134192 +Node: Other Environment Variables134951 +Node: Exit Status138606 +Node: Include Files139281 +Node: Loading Shared Libraries142859 +Node: Obsolete144242 +Node: Undocumented144939 +Node: Regexp145181 +Node: Regexp Usage146570 +Node: Escape Sequences148603 +Node: Regexp Operators154270 +Ref: Regexp Operators-Footnote-1161750 +Ref: Regexp Operators-Footnote-2161897 +Node: Bracket Expressions161995 +Ref: table-char-classes163885 +Node: GNU Regexp Operators166408 +Node: Case-sensitivity170131 +Ref: Case-sensitivity-Footnote-1173023 +Ref: Case-sensitivity-Footnote-2173258 +Node: Leftmost Longest173366 +Node: Computed Regexps174567 +Node: Reading Files177916 +Node: Records179918 +Node: awk split records180653 +Node: gawk split records185511 +Ref: gawk split records-Footnote-1190032 +Node: Fields190069 +Ref: Fields-Footnote-1193033 +Node: Nonconstant Fields193119 +Ref: Nonconstant Fields-Footnote-1195349 +Node: Changing Fields195551 +Node: Field Separators201505 +Node: Default Field Splitting204207 +Node: Regexp Field Splitting205324 +Node: Single Character Fields208665 +Node: Command Line Field Separator209724 +Node: Full Line Fields213066 +Ref: Full Line Fields-Footnote-1213574 +Node: Field Splitting Summary213620 +Ref: Field Splitting Summary-Footnote-1216719 +Node: Constant Size216820 +Node: Splitting By Content221427 +Ref: Splitting By Content-Footnote-1225177 +Node: Multiple Line225217 +Ref: Multiple Line-Footnote-1231073 +Node: Getline231252 +Node: Plain Getline233468 +Node: Getline/Variable235563 +Node: Getline/File236710 +Node: Getline/Variable/File238094 +Ref: Getline/Variable/File-Footnote-1239693 +Node: Getline/Pipe239780 +Node: Getline/Variable/Pipe242479 +Node: Getline/Coprocess243586 +Node: Getline/Variable/Coprocess244838 +Node: Getline Notes245575 +Node: Getline Summary248379 +Ref: table-getline-variants248787 +Node: Read Timeout249699 +Ref: Read Timeout-Footnote-1253526 +Node: Command line directories253584 +Node: Printing254466 +Node: Print256097 +Node: Print Examples257438 +Node: Output Separators260217 +Node: OFMT262233 +Node: Printf263591 +Node: Basic Printf264497 +Node: Control Letters266036 +Node: Format Modifiers269890 +Node: Printf Examples275917 +Node: Redirection278624 +Node: Special Files285596 +Node: Special FD286129 +Ref: Special FD-Footnote-1289753 +Node: Special Network289827 +Node: Special Caveats290677 +Node: Close Files And Pipes291473 +Ref: Close Files And Pipes-Footnote-1298611 +Ref: Close Files And Pipes-Footnote-2298759 +Node: Expressions298909 +Node: Values300041 +Node: Constants300717 +Node: Scalar Constants301397 +Ref: Scalar Constants-Footnote-1302256 +Node: Nondecimal-numbers302506 +Node: Regexp Constants305506 +Node: Using Constant Regexps305981 +Node: Variables309051 +Node: Using Variables309706 +Node: Assignment Options311430 +Node: Conversion313305 +Ref: table-locale-affects318741 +Ref: Conversion-Footnote-1319365 +Node: All Operators319474 +Node: Arithmetic Ops320104 +Node: Concatenation322609 +Ref: Concatenation-Footnote-1325405 +Node: Assignment Ops325525 +Ref: table-assign-ops330508 +Node: Increment Ops331825 +Node: Truth Values and Conditions335263 +Node: Truth Values336346 +Node: Typing and Comparison337395 +Node: Variable Typing338188 +Ref: Variable Typing-Footnote-1342088 +Node: Comparison Operators342210 +Ref: table-relational-ops342620 +Node: POSIX String Comparison346168 +Ref: POSIX String Comparison-Footnote-1347252 +Node: Boolean Ops347390 +Ref: Boolean Ops-Footnote-1351460 +Node: Conditional Exp351551 +Node: Function Calls353278 +Node: Precedence357036 +Node: Locales360705 +Node: Patterns and Actions362308 +Node: Pattern Overview363362 +Node: Regexp Patterns365039 +Node: Expression Patterns365582 +Node: Ranges369363 +Node: BEGIN/END372469 +Node: Using BEGIN/END373231 +Ref: Using BEGIN/END-Footnote-1375967 +Node: I/O And BEGIN/END376073 +Node: BEGINFILE/ENDFILE378358 +Node: Empty381289 +Node: Using Shell Variables381606 +Node: Action Overview383889 +Node: Statements386216 +Node: If Statement388064 +Node: While Statement389562 +Node: Do Statement391606 +Node: For Statement392762 +Node: Switch Statement395914 +Node: Break Statement398017 +Node: Continue Statement400072 +Node: Next Statement401865 +Node: Nextfile Statement404255 +Node: Exit Statement406910 +Node: Built-in Variables409314 +Node: User-modified410410 +Ref: User-modified-Footnote-1418095 +Node: Auto-set418157 +Ref: Auto-set-Footnote-1430722 +Ref: Auto-set-Footnote-2430927 +Node: ARGC and ARGV430983 +Node: Arrays434837 +Node: Array Basics436335 +Node: Array Intro437161 +Ref: figure-array-elements439134 +Node: Reference to Elements441541 +Node: Assigning Elements443814 +Node: Array Example444305 +Node: Scanning an Array446037 +Node: Controlling Scanning449052 +Ref: Controlling Scanning-Footnote-1454225 +Node: Delete454541 +Ref: Delete-Footnote-1457306 +Node: Numeric Array Subscripts457363 +Node: Uninitialized Subscripts459546 +Node: Multidimensional461171 +Node: Multiscanning464264 +Node: Arrays of Arrays465853 +Node: Functions470493 +Node: Built-in471312 +Node: Calling Built-in472390 +Node: Numeric Functions474378 +Ref: Numeric Functions-Footnote-1478212 +Ref: Numeric Functions-Footnote-2478569 +Ref: Numeric Functions-Footnote-3478617 +Node: String Functions478886 +Ref: String Functions-Footnote-1501897 +Ref: String Functions-Footnote-2502026 +Ref: String Functions-Footnote-3502274 +Node: Gory Details502361 +Ref: table-sub-escapes504030 +Ref: table-sub-posix-92505384 +Ref: table-sub-proposed506735 +Ref: table-posix-sub508089 +Ref: table-gensub-escapes509634 +Ref: Gory Details-Footnote-1510810 +Ref: Gory Details-Footnote-2510861 +Node: I/O Functions511012 +Ref: I/O Functions-Footnote-1518135 +Node: Time Functions518282 +Ref: Time Functions-Footnote-1528746 +Ref: Time Functions-Footnote-2528814 +Ref: Time Functions-Footnote-3528972 +Ref: Time Functions-Footnote-4529083 +Ref: Time Functions-Footnote-5529195 +Ref: Time Functions-Footnote-6529422 +Node: Bitwise Functions529688 +Ref: table-bitwise-ops530250 +Ref: Bitwise Functions-Footnote-1534495 +Node: Type Functions534679 +Node: I18N Functions535821 +Node: User-defined537466 +Node: Definition Syntax538270 +Ref: Definition Syntax-Footnote-1543195 +Node: Function Example543264 +Ref: Function Example-Footnote-1545908 +Node: Function Caveats545930 +Node: Calling A Function546448 +Node: Variable Scope547403 +Node: Pass By Value/Reference550391 +Node: Return Statement553899 +Node: Dynamic Typing556883 +Node: Indirect Calls557812 +Node: Library Functions567499 +Ref: Library Functions-Footnote-1571012 +Ref: Library Functions-Footnote-2571155 +Node: Library Names571326 +Ref: Library Names-Footnote-1574799 +Ref: Library Names-Footnote-2575019 +Node: General Functions575105 +Node: Strtonum Function576133 +Node: Assert Function579063 +Node: Round Function582389 +Node: Cliff Random Function583930 +Node: Ordinal Functions584946 +Ref: Ordinal Functions-Footnote-1588023 +Ref: Ordinal Functions-Footnote-2588275 +Node: Join Function588486 +Ref: Join Function-Footnote-1590257 +Node: Getlocaltime Function590457 +Node: Readfile Function594193 +Node: Data File Management596032 +Node: Filetrans Function596664 +Node: Rewind Function600733 +Node: File Checking602120 +Ref: File Checking-Footnote-1603252 +Node: Empty Files603453 +Node: Ignoring Assigns605683 +Node: Getopt Function607237 +Ref: Getopt Function-Footnote-1618540 +Node: Passwd Functions618743 +Ref: Passwd Functions-Footnote-1627722 +Node: Group Functions627810 +Ref: Group Functions-Footnote-1635752 +Node: Walking Arrays635965 +Node: Sample Programs638101 +Node: Running Examples638775 +Node: Clones639503 +Node: Cut Program640727 +Node: Egrep Program650580 +Ref: Egrep Program-Footnote-1658551 +Node: Id Program658661 +Node: Split Program662325 +Ref: Split Program-Footnote-1665863 +Node: Tee Program665991 +Node: Uniq Program668798 +Node: Wc Program676228 +Ref: Wc Program-Footnote-1680496 +Ref: Wc Program-Footnote-2680696 +Node: Miscellaneous Programs680788 +Node: Dupword Program681976 +Node: Alarm Program684007 +Node: Translate Program688814 +Ref: Translate Program-Footnote-1693205 +Ref: Translate Program-Footnote-2693475 +Node: Labels Program693609 +Ref: Labels Program-Footnote-1696980 +Node: Word Sorting697064 +Node: History Sorting701107 +Node: Extract Program702943 +Ref: Extract Program-Footnote-1710473 +Node: Simple Sed710602 +Node: Igawk Program713664 +Ref: Igawk Program-Footnote-1728839 +Ref: Igawk Program-Footnote-2729040 +Node: Anagram Program729178 +Node: Signature Program732246 +Node: Advanced Features733493 +Node: Nondecimal Data735379 +Node: Array Sorting736956 +Node: Controlling Array Traversal737653 +Node: Array Sorting Functions745933 +Ref: Array Sorting Functions-Footnote-1749840 +Node: Two-way I/O750034 +Ref: Two-way I/O-Footnote-1755550 +Node: TCP/IP Networking755632 +Node: Profiling758476 +Node: Internationalization765984 +Node: I18N and L10N767409 +Node: Explaining gettext768095 +Ref: Explaining gettext-Footnote-1773235 +Ref: Explaining gettext-Footnote-2773419 +Node: Programmer i18n773584 +Node: Translator i18n777809 +Node: String Extraction778603 +Ref: String Extraction-Footnote-1779564 +Node: Printf Ordering779650 +Ref: Printf Ordering-Footnote-1782432 +Node: I18N Portability782496 +Ref: I18N Portability-Footnote-1784945 +Node: I18N Example785008 +Ref: I18N Example-Footnote-1787730 +Node: Gawk I18N787802 +Node: Debugger788423 +Node: Debugging789394 +Node: Debugging Concepts789835 +Node: Debugging Terms791691 +Node: Awk Debugging794288 +Node: Sample Debugging Session795180 +Node: Debugger Invocation795700 +Node: Finding The Bug797033 +Node: List of Debugger Commands803515 +Node: Breakpoint Control804847 +Node: Debugger Execution Control808511 +Node: Viewing And Changing Data811871 +Node: Execution Stack815229 +Node: Debugger Info816742 +Node: Miscellaneous Debugger Commands820736 +Node: Readline Support825920 +Node: Limitations826812 +Node: Arbitrary Precision Arithmetic829060 +Ref: Arbitrary Precision Arithmetic-Footnote-1830709 +Node: General Arithmetic830857 +Node: Floating Point Issues832577 +Node: String Conversion Precision833458 +Ref: String Conversion Precision-Footnote-1835163 +Node: Unexpected Results835272 +Node: POSIX Floating Point Problems837425 +Ref: POSIX Floating Point Problems-Footnote-1841246 +Node: Integer Programming841284 +Node: Floating-point Programming843095 +Ref: Floating-point Programming-Footnote-1849423 +Ref: Floating-point Programming-Footnote-2849693 +Node: Floating-point Representation849957 +Node: Floating-point Context851122 +Ref: table-ieee-formats851961 +Node: Rounding Mode853345 +Ref: table-rounding-modes853824 +Ref: Rounding Mode-Footnote-1856839 +Node: Gawk and MPFR857018 +Node: Arbitrary Precision Floats858427 +Ref: Arbitrary Precision Floats-Footnote-1860870 +Node: Setting Precision861191 +Ref: table-predefined-precision-strings861875 +Node: Setting Rounding Mode864020 +Ref: table-gawk-rounding-modes864424 +Node: Floating-point Constants865611 +Node: Changing Precision867063 +Ref: Changing Precision-Footnote-1868455 +Node: Exact Arithmetic868629 +Node: Arbitrary Precision Integers871763 +Ref: Arbitrary Precision Integers-Footnote-1874778 +Node: Dynamic Extensions874925 +Node: Extension Intro876383 +Node: Plugin License877648 +Node: Extension Mechanism Outline878333 +Ref: figure-load-extension878757 +Ref: figure-load-new-function880242 +Ref: figure-call-new-function881244 +Node: Extension API Description883228 +Node: Extension API Functions Introduction884678 +Node: General Data Types889544 +Ref: General Data Types-Footnote-1895237 +Node: Requesting Values895536 +Ref: table-value-types-returned896273 +Node: Memory Allocation Functions897231 +Ref: Memory Allocation Functions-Footnote-1899978 +Node: Constructor Functions900074 +Node: Registration Functions901832 +Node: Extension Functions902517 +Node: Exit Callback Functions904819 +Node: Extension Version String906069 +Node: Input Parsers906719 +Node: Output Wrappers916522 +Node: Two-way processors921038 +Node: Printing Messages923241 +Ref: Printing Messages-Footnote-1924318 +Node: Updating `ERRNO'924470 +Node: Accessing Parameters925209 +Node: Symbol Table Access926439 +Node: Symbol table by name926953 +Node: Symbol table by cookie928929 +Ref: Symbol table by cookie-Footnote-1933062 +Node: Cached values933125 +Ref: Cached values-Footnote-1936630 +Node: Array Manipulation936721 +Ref: Array Manipulation-Footnote-1937819 +Node: Array Data Types937858 +Ref: Array Data Types-Footnote-1940561 +Node: Array Functions940653 +Node: Flattening Arrays944527 +Node: Creating Arrays951379 +Node: Extension API Variables956110 +Node: Extension Versioning956746 +Node: Extension API Informational Variables958647 +Node: Extension API Boilerplate959733 +Node: Finding Extensions963537 +Node: Extension Example964097 +Node: Internal File Description964827 +Node: Internal File Ops968918 +Ref: Internal File Ops-Footnote-1980464 +Node: Using Internal File Ops980604 +Ref: Using Internal File Ops-Footnote-1982951 +Node: Extension Samples983219 +Node: Extension Sample File Functions984743 +Node: Extension Sample Fnmatch992310 +Node: Extension Sample Fork993789 +Node: Extension Sample Inplace995002 +Node: Extension Sample Ord996780 +Node: Extension Sample Readdir997616 +Ref: table-readdir-file-types998471 +Node: Extension Sample Revout999270 +Node: Extension Sample Rev2way999861 +Node: Extension Sample Read write array1000602 +Node: Extension Sample Readfile1002481 +Node: Extension Sample API Tests1003581 +Node: Extension Sample Time1004106 +Node: gawkextlib1005421 +Node: Language History1008208 +Node: V7/SVR3.11009802 +Node: SVR41012122 +Node: POSIX1013564 +Node: BTL1014950 +Node: POSIX/GNU1015684 +Node: Feature History1021283 +Node: Common Extensions1034395 +Node: Ranges and Locales1035707 +Ref: Ranges and Locales-Footnote-11040324 +Ref: Ranges and Locales-Footnote-21040351 +Ref: Ranges and Locales-Footnote-31040585 +Node: Contributors1040806 +Node: Installation1046244 +Node: Gawk Distribution1047138 +Node: Getting1047622 +Node: Extracting1048448 +Node: Distribution contents1050090 +Node: Unix Installation1055807 +Node: Quick Installation1056424 +Node: Additional Configuration Options1058866 +Node: Configuration Philosophy1060604 +Node: Non-Unix Installation1062955 +Node: PC Installation1063413 +Node: PC Binary Installation1064724 +Node: PC Compiling1066572 +Ref: PC Compiling-Footnote-11069571 +Node: PC Testing1069676 +Node: PC Using1070852 +Node: Cygwin1075010 +Node: MSYS1075819 +Node: VMS Installation1076333 +Node: VMS Compilation1077129 +Ref: VMS Compilation-Footnote-11078350 +Node: VMS Dynamic Extensions1078408 +Node: VMS Installation Details1079781 +Node: VMS Running1082032 +Node: VMS GNV1084866 +Node: VMS Old Gawk1085589 +Node: Bugs1086059 +Node: Other Versions1090063 +Node: Notes1096288 +Node: Compatibility Mode1097088 +Node: Additions1097870 +Node: Accessing The Source1098795 +Node: Adding Code1100231 +Node: New Ports1106409 +Node: Derived Files1110890 +Ref: Derived Files-Footnote-11115971 +Ref: Derived Files-Footnote-21116005 +Ref: Derived Files-Footnote-31116601 +Node: Future Extensions1116715 +Node: Implementation Limitations1117321 +Node: Extension Design1118569 +Node: Old Extension Problems1119723 +Ref: Old Extension Problems-Footnote-11121240 +Node: Extension New Mechanism Goals1121297 +Ref: Extension New Mechanism Goals-Footnote-11124658 +Node: Extension Other Design Decisions1124847 +Node: Extension Future Growth1126953 +Node: Old Extension Mechanism1127789 +Node: Basic Concepts1129529 +Node: Basic High Level1130210 +Ref: figure-general-flow1130482 +Ref: figure-process-flow1131081 +Ref: Basic High Level-Footnote-11134310 +Node: Basic Data Typing1134495 +Node: Glossary1137822 +Node: Copying1162974 +Node: GNU Free Documentation License1200530 +Node: Index1225666 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 416bfd8a..4d63bae9 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -241,6 +241,10 @@ quirk of the language / makeinfo, and isn't going to change. @copying @docbook +<para> +“To boldly go where no man has gone before” is a +Registered Trademark of Paramount Pictures Corporation.</para> + <para>Published by:</para> <literallayout class="normal">Free Software Foundation @@ -1799,49 +1803,6 @@ License in @ref{GNU Free Documentation License}.) @end ifclear @end ifnotinfo -@ignore -@cindex Close, Diane -The @value{DOCUMENT} itself has gone through several previous, -preliminary 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 the -version which I started working with in the fall of 1988. -It was around 90 pages long and barely described the original, ``old'' -version of @command{awk}. After substantial revision, the first version of -the @cite{The GAWK Manual} to be released was Edition 0.11 Beta in -October of 1989. The manual then underwent more substantial revision -for Edition 0.13 of December 1991. -David Trueman, Pat Rankin and Michal Jaegermann contributed sections -of the manual for Edition 0.13. -That edition was published by the -FSF as a bound book early in 1992. Since then there were several -minor revisions, notably Edition 0.14 of November 1992 that was published -by the FSF in January of 1993 and Edition 0.16 of August 1993. - -Edition 1.0 of @cite{GAWK: The GNU Awk User's Guide} represented a significant re-working -of @cite{The GAWK Manual}, with much additional material. -The FSF and I agreed that I was now the primary author. -@c I also felt that the manual needed a more descriptive title. - -In January 1996, SSC published Edition 1.0 under the title @cite{Effective AWK Programming}. -In February 1997, they published Edition 1.0.3 which had minor changes -as a ``second edition.'' -In 1999, the FSF published this same version as Edition 2 -of @cite{GAWK: The GNU Awk User's Guide}. - -Edition @value{EDITION} maintains the basic structure of Edition 1.0, -but with significant additional material, reflecting the host of new features -in @command{gawk} version @value{VERSION}. -Of particular note is -@ref{Array Sorting}, -@ref{Bitwise Functions}, -@ref{Internationalization}, -@ref{Advanced Features}, -and -@ref{Dynamic Extensions}. -@end ignore - @cindex Close, Diane The @value{DOCUMENT} itself has gone through a number of previous editions. Paul Rubin wrote the very first draft of @cite{The GAWK Manual}; @@ -1860,16 +1821,24 @@ the title @cite{The GNU Awk User's Guide}. @ifset FOR_PRINT SSC published two editions of the @value{DOCUMENT} under the title @cite{Effective awk Programming}, and in O'Reilly published -the edition in 2001. +the third edition in 2001. @end ifset This edition maintains the basic structure of the previous editions. -For Edition 4.0, the content has been thoroughly reviewed +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 edition @value{EDITION}, the content has been reorganized into parts, +For FSF edition +@ifclear FOR_PRINT +@value{EDITION}, +@end ifclear +@ifset FOR_PRINT +@value{EDITION} +(the fourth edition as published by O'Reilly), +@end ifset +the content has been reorganized into parts, and the major new additions are @ref{Arbitrary Precision Arithmetic}, and @ref{Dynamic Extensions}. @@ -4178,7 +4147,8 @@ path. (A null entry is indicated by starting or ending the path with a colon or by placing two colons next to each other [@samp{::}].) This path search mechanism is similar to the shell's. -@c someday, @cite{The Bourne Again Shell}.... +(See @uref{http://www.gnu.org/software/bash/manual/, +@cite{The Bourne-Again SHell manual}.}) However, @command{gawk} always looks in the current directory @emph{before} searching @env{AWKPATH}, so there is no real reason to include @@ -4491,6 +4461,8 @@ that can be loaded with either @code{@@load} or the @option{-l} option. @node Obsolete @section Obsolete Options and/or Features +@c update this section for each release! + @cindex options, deprecated @cindex features, deprecated @cindex obsolete features @@ -4499,8 +4471,6 @@ previous releases of @command{gawk} that are either not available in the current version or that are still supported but deprecated (meaning that they will @emph{not} be in the next release). -@c update this section for each release! - The process-related special files @file{/dev/pid}, @file{/dev/ppid}, @file{/dev/pgrpid}, and @file{/dev/user} were deprecated in @command{gawk} 3.1, but still worked. As of version 4.0, they are no longer @@ -5518,9 +5488,6 @@ GNU operators, but this was deemed too confusing. The current method of using @samp{\y} for the GNU @samp{\b} appears to be the lesser of two evils. -@c NOTE!!! Keep this in sync with the same table in the summary appendix! -@c -@c Should really do this with file inclusion. @cindex regular expressions, @command{gawk}, command-line options @cindex @command{gawk}, command-line options, and regular expressions The various command-line options @@ -6978,7 +6945,6 @@ program on the file @file{mail-list}. The following command prints a list of the names of the people that work at or attend a university, and the first three digits of their phone numbers: -@c tweaked to make the tex output look better in @smallbook @example $ @kbd{awk -F- -f edu.awk mail-list} @print{} Fabius 555 @@ -8777,16 +8743,6 @@ the first character of the string. @cindex dark corner, format-control characters @cindex @command{gawk}, format-control characters @quotation NOTE -@ignore -The @samp{%c} format does @emph{not} handle values outside the range -0--255. On most systems, values from 0--127 are within the range of -ASCII and will yield an ASCII character. Values in the range 128--255 -may format as characters in some extended character set, or they may not. -System 390 (IBM architecture mainframe) systems use 8-bit characters, -and thus values from 0--255 yield the corresponding EBCDIC character. -Any value above 255 is treated as modulo 255; i.e., the lowest eight bits -of the value are used. The locale and character set are always ignored. -@end ignore The POSIX standard says the first character of a string is printed. In locales with multibyte characters, @command{gawk} attempts to convert the leading bytes of the string into a valid wide character @@ -8909,7 +8865,7 @@ which they may appear: @table @code @cindex differences in @command{awk} and @command{gawk}, @code{print}/@code{printf} statements @cindex @code{printf} statement, positional specifiers -@c the command does NOT start a secondary +@c the code{} does NOT start a secondary @cindex positional specifiers, @code{printf} statement @item @var{N}$ An integer constant followed by a @samp{$} is a @dfn{positional specifier}. @@ -10669,7 +10625,7 @@ One possibly undesirable effect of this definition of remainder is that In other @command{awk} implementations, the signedness of the remainder may be machine-dependent. -@c !!! what does posix say? +@c FIXME !!! what does posix say? @cindex portability, @code{**} operator and @cindex @code{*} (asterisk), @code{**} operator @@ -19594,7 +19550,6 @@ that their statement is correct, this @value{CHAPTER} and @ref{Sample Programs}, provide a good-sized body of code for you to read, and we hope, to learn from. -@c 2e: USE TEXINFO-2 FUNCTION DEFINITION STUFF!!!!!!!!!!!!! This @value{CHAPTER} presents a library of useful @command{awk} functions. Many of the sample programs presented later in this @value{DOCUMENT} use these functions. @@ -21003,7 +20958,6 @@ application might want to print its own error message.) @item optopt The letter representing the command-line option. -@c While not usually documented, most versions supply this variable. @end table The following C fragment shows how @code{getopt()} might process command-line @@ -21054,7 +21008,6 @@ necessary for accessing individual characters function was written before @command{gawk} acquired the ability to split strings into single characters using @code{""} as the separator. We have left it alone, since using @code{substr()} is more portable.} -@c FIXME: could use split(str, a, "") to do it more easily. The discussion that follows walks through the code a bit at a time: @@ -21339,8 +21292,6 @@ no more entries, it returns @code{NULL}, the null pointer. When this happens, the C program should call @code{endpwent()} to close the database. Following is @command{pwcat}, a C program that ``cats'' the password database: -@c Use old style function header for portability to old systems (SunOS, HP/UX). - @example @c file eg/lib/pwcat.c /* @@ -24734,7 +24685,6 @@ Finally, the function @code{@w{unexpected_eof()}} prints an appropriate error message and then exits. The @code{END} rule handles the final cleanup, closing the open file: -@c function lb put on same line for page breaking. sigh @example @c file eg/prog/extract.awk @group @@ -26656,7 +26606,6 @@ the body of an @code{if}, @code{else}, or loop is only a single statement. @item Parentheses are used only where needed, as indicated by the structure of the program and the precedence rules. -@c extra verbiage here satisfies the copyeditor. ugh. For example, @samp{(3 + 5) * 4} means add three plus five, then multiply the total by four. However, @samp{3 + 5 * 4} has no parentheses, and means @samp{3 + (5 * 4)}. @@ -27264,7 +27213,6 @@ present a special problem for translation. Consider the following:@footnote{This example is borrowed from the GNU @command{gettext} manual.} -@c line broken here only for smallbook format @example printf(_"String `%s' has %d characters\n", string, length(string))) @@ -28964,8 +28912,6 @@ exactly. @command{awk} uses @dfn{double precision} floating-point numbers, which can hold more digits than @dfn{single precision} floating-point numbers. -@c Floating-point issues are discussed more fully in -@c @ref{Floating Point Issues}. There a several important issues to be aware of, described next. @@ -30905,6 +30851,7 @@ procedure calls that do not return a value. @table @code @item #define emalloc(pointer, type, size, message) @dots{} The arguments to this macro are as follows: + @c nested table @table @code @item pointer @@ -31066,6 +31013,7 @@ a function with @command{gawk} using the following function. @item void awk_atexit(void (*funcp)(void *data, int exit_status), @itemx @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ void *arg0); The parameters are: + @c nested table @table @code @item funcp @@ -32848,7 +32796,6 @@ Those are followed by the necessary variable declarations to make use of the API macros and boilerplate code (@pxref{Extension API Boilerplate}). -@c break line for page breaking @example #ifdef HAVE_CONFIG_H #include <config.h> @@ -32935,7 +32882,6 @@ The @code{stat()} extension is more involved. First comes a function that turns a numeric mode into a printable representation (e.g., 644 becomes @samp{-rw-r--r--}). This is omitted here for brevity: -@c break line for page breaking @example /* format_mode --- turn a stat mode field into something readable */ @@ -34350,7 +34296,7 @@ The @code{fflush()} built-in function for flushing buffered output @ignore @item The @code{SYMTAB} array, that allows access to @command{awk}'s internal symbol -table. This feature is not documented, largely because +table. This feature was never documented for his @command{awk}, largely because it is somewhat shakily implemented. For instance, you cannot access arrays or array elements through it. @end ignore @@ -35659,6 +35605,9 @@ The improved array sorting features were driven by John together with Pat Rankin. @end itemize +@cindex Papadopoulos, Panos +Panos Papadopoulos contributed the original text for @ref{Include Files}. + @item @cindex Yawitz, Efraim Efraim Yawitz contributed the original text for @ref{Debugger}. @@ -37777,19 +37726,19 @@ Automake, Autoconf, @command{bison}, and -@command{gettext}. +GNU @command{gettext}. @ignore -If it would help if I sent out an "I just upgraded to version x.y -of tool Z" kind of message to this list, I can do that. Up until +If it would help if I sent out an ``I just upgraded to version x.y +of tool Z'' kind of message to this list, I can do that. Up until now it hasn't been a real issue since I'm the only one who's been dorking with the configuration machinery. @end ignore @c @enumerate A @c @item -Installing from source is quite easy. It's how the maintainer worked for years, -and still works. +Installing from source is quite easy. It's how the maintainer worked for years +(and still works). He had @file{/usr/local/bin} at the front of his @env{PATH} and just did: @example @@ -40459,9 +40408,6 @@ recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. -@c Local Variables: -@c ispell-local-pdict: "ispell-dict" -@c End: @end ifclear @ifnotdocbook diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 45e807a2..69abf674 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -236,6 +236,10 @@ quirk of the language / makeinfo, and isn't going to change. @copying @docbook +<para> +“To boldly go where no man has gone before” is a +Registered Trademark of Paramount Pictures Corporation.</para> + <para>Published by:</para> <literallayout class="normal">Free Software Foundation @@ -1766,49 +1770,6 @@ License in @ref{GNU Free Documentation License}.) @end ifclear @end ifnotinfo -@ignore -@cindex Close, Diane -The @value{DOCUMENT} itself has gone through several previous, -preliminary 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 the -version which I started working with in the fall of 1988. -It was around 90 pages long and barely described the original, ``old'' -version of @command{awk}. After substantial revision, the first version of -the @cite{The GAWK Manual} to be released was Edition 0.11 Beta in -October of 1989. The manual then underwent more substantial revision -for Edition 0.13 of December 1991. -David Trueman, Pat Rankin and Michal Jaegermann contributed sections -of the manual for Edition 0.13. -That edition was published by the -FSF as a bound book early in 1992. Since then there were several -minor revisions, notably Edition 0.14 of November 1992 that was published -by the FSF in January of 1993 and Edition 0.16 of August 1993. - -Edition 1.0 of @cite{GAWK: The GNU Awk User's Guide} represented a significant re-working -of @cite{The GAWK Manual}, with much additional material. -The FSF and I agreed that I was now the primary author. -@c I also felt that the manual needed a more descriptive title. - -In January 1996, SSC published Edition 1.0 under the title @cite{Effective AWK Programming}. -In February 1997, they published Edition 1.0.3 which had minor changes -as a ``second edition.'' -In 1999, the FSF published this same version as Edition 2 -of @cite{GAWK: The GNU Awk User's Guide}. - -Edition @value{EDITION} maintains the basic structure of Edition 1.0, -but with significant additional material, reflecting the host of new features -in @command{gawk} version @value{VERSION}. -Of particular note is -@ref{Array Sorting}, -@ref{Bitwise Functions}, -@ref{Internationalization}, -@ref{Advanced Features}, -and -@ref{Dynamic Extensions}. -@end ignore - @cindex Close, Diane The @value{DOCUMENT} itself has gone through a number of previous editions. Paul Rubin wrote the very first draft of @cite{The GAWK Manual}; @@ -1827,16 +1788,24 @@ the title @cite{The GNU Awk User's Guide}. @ifset FOR_PRINT SSC published two editions of the @value{DOCUMENT} under the title @cite{Effective awk Programming}, and in O'Reilly published -the edition in 2001. +the third edition in 2001. @end ifset This edition maintains the basic structure of the previous editions. -For Edition 4.0, the content has been thoroughly reviewed +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 edition @value{EDITION}, the content has been reorganized into parts, +For FSF edition +@ifclear FOR_PRINT +@value{EDITION}, +@end ifclear +@ifset FOR_PRINT +@value{EDITION} +(the fourth edition as published by O'Reilly), +@end ifset +the content has been reorganized into parts, and the major new additions are @ref{Arbitrary Precision Arithmetic}, and @ref{Dynamic Extensions}. @@ -4106,7 +4075,8 @@ path. (A null entry is indicated by starting or ending the path with a colon or by placing two colons next to each other [@samp{::}].) This path search mechanism is similar to the shell's. -@c someday, @cite{The Bourne Again Shell}.... +(See @uref{http://www.gnu.org/software/bash/manual/, +@cite{The Bourne-Again SHell manual}.}) However, @command{gawk} always looks in the current directory @emph{before} searching @env{AWKPATH}, so there is no real reason to include @@ -4419,6 +4389,8 @@ that can be loaded with either @code{@@load} or the @option{-l} option. @node Obsolete @section Obsolete Options and/or Features +@c update this section for each release! + @cindex options, deprecated @cindex features, deprecated @cindex obsolete features @@ -4427,8 +4399,6 @@ previous releases of @command{gawk} that are either not available in the current version or that are still supported but deprecated (meaning that they will @emph{not} be in the next release). -@c update this section for each release! - The process-related special files @file{/dev/pid}, @file{/dev/ppid}, @file{/dev/pgrpid}, and @file{/dev/user} were deprecated in @command{gawk} 3.1, but still worked. As of version 4.0, they are no longer @@ -5363,9 +5333,6 @@ GNU operators, but this was deemed too confusing. The current method of using @samp{\y} for the GNU @samp{\b} appears to be the lesser of two evils. -@c NOTE!!! Keep this in sync with the same table in the summary appendix! -@c -@c Should really do this with file inclusion. @cindex regular expressions, @command{gawk}, command-line options @cindex @command{gawk}, command-line options, and regular expressions The various command-line options @@ -6692,7 +6659,6 @@ program on the file @file{mail-list}. The following command prints a list of the names of the people that work at or attend a university, and the first three digits of their phone numbers: -@c tweaked to make the tex output look better in @smallbook @example $ @kbd{awk -F- -f edu.awk mail-list} @print{} Fabius 555 @@ -8396,16 +8362,6 @@ the first character of the string. @cindex dark corner, format-control characters @cindex @command{gawk}, format-control characters @quotation NOTE -@ignore -The @samp{%c} format does @emph{not} handle values outside the range -0--255. On most systems, values from 0--127 are within the range of -ASCII and will yield an ASCII character. Values in the range 128--255 -may format as characters in some extended character set, or they may not. -System 390 (IBM architecture mainframe) systems use 8-bit characters, -and thus values from 0--255 yield the corresponding EBCDIC character. -Any value above 255 is treated as modulo 255; i.e., the lowest eight bits -of the value are used. The locale and character set are always ignored. -@end ignore The POSIX standard says the first character of a string is printed. In locales with multibyte characters, @command{gawk} attempts to convert the leading bytes of the string into a valid wide character @@ -8528,7 +8484,7 @@ which they may appear: @table @code @cindex differences in @command{awk} and @command{gawk}, @code{print}/@code{printf} statements @cindex @code{printf} statement, positional specifiers -@c the command does NOT start a secondary +@c the code{} does NOT start a secondary @cindex positional specifiers, @code{printf} statement @item @var{N}$ An integer constant followed by a @samp{$} is a @dfn{positional specifier}. @@ -10159,7 +10115,7 @@ One possibly undesirable effect of this definition of remainder is that In other @command{awk} implementations, the signedness of the remainder may be machine-dependent. -@c !!! what does posix say? +@c FIXME !!! what does posix say? @cindex portability, @code{**} operator and @cindex @code{*} (asterisk), @code{**} operator @@ -18767,7 +18723,6 @@ that their statement is correct, this @value{CHAPTER} and @ref{Sample Programs}, provide a good-sized body of code for you to read, and we hope, to learn from. -@c 2e: USE TEXINFO-2 FUNCTION DEFINITION STUFF!!!!!!!!!!!!! This @value{CHAPTER} presents a library of useful @command{awk} functions. Many of the sample programs presented later in this @value{DOCUMENT} use these functions. @@ -20147,7 +20102,6 @@ application might want to print its own error message.) @item optopt The letter representing the command-line option. -@c While not usually documented, most versions supply this variable. @end table The following C fragment shows how @code{getopt()} might process command-line @@ -20198,7 +20152,6 @@ necessary for accessing individual characters function was written before @command{gawk} acquired the ability to split strings into single characters using @code{""} as the separator. We have left it alone, since using @code{substr()} is more portable.} -@c FIXME: could use split(str, a, "") to do it more easily. The discussion that follows walks through the code a bit at a time: @@ -20483,8 +20436,6 @@ no more entries, it returns @code{NULL}, the null pointer. When this happens, the C program should call @code{endpwent()} to close the database. Following is @command{pwcat}, a C program that ``cats'' the password database: -@c Use old style function header for portability to old systems (SunOS, HP/UX). - @example @c file eg/lib/pwcat.c /* @@ -23878,7 +23829,6 @@ Finally, the function @code{@w{unexpected_eof()}} prints an appropriate error message and then exits. The @code{END} rule handles the final cleanup, closing the open file: -@c function lb put on same line for page breaking. sigh @example @c file eg/prog/extract.awk @group @@ -25800,7 +25750,6 @@ the body of an @code{if}, @code{else}, or loop is only a single statement. @item Parentheses are used only where needed, as indicated by the structure of the program and the precedence rules. -@c extra verbiage here satisfies the copyeditor. ugh. For example, @samp{(3 + 5) * 4} means add three plus five, then multiply the total by four. However, @samp{3 + 5 * 4} has no parentheses, and means @samp{3 + (5 * 4)}. @@ -26408,7 +26357,6 @@ present a special problem for translation. Consider the following:@footnote{This example is borrowed from the GNU @command{gettext} manual.} -@c line broken here only for smallbook format @example printf(_"String `%s' has %d characters\n", string, length(string))) @@ -28108,8 +28056,6 @@ exactly. @command{awk} uses @dfn{double precision} floating-point numbers, which can hold more digits than @dfn{single precision} floating-point numbers. -@c Floating-point issues are discussed more fully in -@c @ref{Floating Point Issues}. There a several important issues to be aware of, described next. @@ -30049,6 +29995,7 @@ procedure calls that do not return a value. @table @code @item #define emalloc(pointer, type, size, message) @dots{} The arguments to this macro are as follows: + @c nested table @table @code @item pointer @@ -30210,6 +30157,7 @@ a function with @command{gawk} using the following function. @item void awk_atexit(void (*funcp)(void *data, int exit_status), @itemx @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ void *arg0); The parameters are: + @c nested table @table @code @item funcp @@ -31992,7 +31940,6 @@ Those are followed by the necessary variable declarations to make use of the API macros and boilerplate code (@pxref{Extension API Boilerplate}). -@c break line for page breaking @example #ifdef HAVE_CONFIG_H #include <config.h> @@ -32079,7 +32026,6 @@ The @code{stat()} extension is more involved. First comes a function that turns a numeric mode into a printable representation (e.g., 644 becomes @samp{-rw-r--r--}). This is omitted here for brevity: -@c break line for page breaking @example /* format_mode --- turn a stat mode field into something readable */ @@ -33494,7 +33440,7 @@ The @code{fflush()} built-in function for flushing buffered output @ignore @item The @code{SYMTAB} array, that allows access to @command{awk}'s internal symbol -table. This feature is not documented, largely because +table. This feature was never documented for his @command{awk}, largely because it is somewhat shakily implemented. For instance, you cannot access arrays or array elements through it. @end ignore @@ -34803,6 +34749,9 @@ The improved array sorting features were driven by John together with Pat Rankin. @end itemize +@cindex Papadopoulos, Panos +Panos Papadopoulos contributed the original text for @ref{Include Files}. + @item @cindex Yawitz, Efraim Efraim Yawitz contributed the original text for @ref{Debugger}. @@ -36921,19 +36870,19 @@ Automake, Autoconf, @command{bison}, and -@command{gettext}. +GNU @command{gettext}. @ignore -If it would help if I sent out an "I just upgraded to version x.y -of tool Z" kind of message to this list, I can do that. Up until +If it would help if I sent out an ``I just upgraded to version x.y +of tool Z'' kind of message to this list, I can do that. Up until now it hasn't been a real issue since I'm the only one who's been dorking with the configuration machinery. @end ignore @c @enumerate A @c @item -Installing from source is quite easy. It's how the maintainer worked for years, -and still works. +Installing from source is quite easy. It's how the maintainer worked for years +(and still works). He had @file{/usr/local/bin} at the front of his @env{PATH} and just did: @example @@ -39603,9 +39552,6 @@ recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. -@c Local Variables: -@c ispell-local-pdict: "ispell-dict" -@c End: @end ifclear @ifnotdocbook |