diff options
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1089 | ||||
-rw-r--r-- | doc/gawk.texi | 30 | ||||
-rw-r--r-- | doc/gawktexi.in | 30 |
4 files changed, 587 insertions, 566 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index e4676b29..5f59e578 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2014-10-05 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Finished changes! + 2014-10-03 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in (EMRED): Renamed from EMISTERED to match original. diff --git a/doc/gawk.info b/doc/gawk.info index 6c8b9c8b..68d60122 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -1746,10 +1746,10 @@ the quoting rules. awk -F"" 'PROGRAM' FILES # wrong! - In the second case, `awk' will attempt to use the text of the - program as the value of `FS', and the first file name as the text - of the program! This results in syntax errors at best, and - confusing behavior at worst. + In the second case, `awk' attempts to use the text of the program + as the value of `FS', and the first file name as the text of the + program! This results in syntax errors at best, and confusing + behavior at worst. Mixing single and double quotes is difficult. You have to resort to shell quoting tricks, like this: @@ -3942,7 +3942,7 @@ No options Traditional Unix `awk' regexps are matched. The GNU operators are not special, and interval expressions are not available. The POSIX character classes (`[[:alnum:]]', etc.) are supported, as - BWK `awk' does support them. Characters described by octal and + BWK `awk' supports them. Characters described by octal and hexadecimal escape sequences are treated literally, even if they represent regexp metacharacters. @@ -4465,9 +4465,9 @@ program. Other `awk' implementations may behave differently.) As mentioned in *note Fields::, `awk' stores the current record's number of fields in the built-in variable `NF' (also *note Built-in -Variables::). The expression `$NF' is not a special feature--it is the -direct consequence of evaluating `NF' and using its value as a field -number. +Variables::). Thus, the expression `$NF' is not a special feature--it +is the direct consequence of evaluating `NF' and using its value as a +field number. ---------- Footnotes ---------- @@ -7677,7 +7677,7 @@ difference in behavior, on a GNU/Linux system: The `en_DK.utf-8' locale is for English in Denmark, where the comma acts as the decimal point separator. In the normal `"C"' locale, `gawk' treats `4,321' as 4, while in the Danish locale, it's treated as the -full number, 4.321. +full number including the fractional part, 4.321. Some earlier versions of `gawk' fully complied with this aspect of the standard. However, many users in non-English locales complained @@ -10765,8 +10765,8 @@ program. Arrays in `awk' superficially resemble arrays in other programming languages, but there are fundamental differences. In `awk', it isn't necessary to specify the size of an array before starting to use it. -Additionally, any number or string in `awk', not just consecutive -integers, may be used as an array index. +Additionally, any number or string, not just consecutive integers, may +be used as an array index. In most other languages, arrays must be "declared" before use, including a specification of how many elements or components they @@ -12079,7 +12079,7 @@ Options::): With BWK `awk' and `gawk', it is a fatal error to use a regexp constant for FIND. Other implementations allow it, simply treating the regexp constant as an expression meaning `$0 ~ - /regexp/'. + /regexp/'. (d.c.). `length('[STRING]`)' Return the number of characters in STRING. If STRING is a number, @@ -18294,7 +18294,7 @@ pipeline of commands. While `sed' is a complicated program in its own right, its most common use is to perform global substitutions in the middle of a pipeline: - command1 < orig.data | sed 's/old/new/g' | command2 > result + COMMAND1 < orig.data | sed 's/old/new/g' | COMMAND2 > result Here, `s/old/new/g' tells `sed' to look for the regexp `old' on each input line and globally replace it with the text `new', i.e., all the @@ -25919,7 +25919,7 @@ File: gawk.info, Node: Extension summary, Next: Extension Exercises, Prev: ga tasks. * One of these tasks is to "register" the name and implementation of - a new `awk'-level function with `gawk'. The implementation takes + new `awk'-level functions with `gawk'. The implementation takes the form of a C function pointer with a defined signature. By convention, implementation functions are named `do_XXXX()' for some `awk'-level function `XXXX()'. @@ -25955,7 +25955,7 @@ File: gawk.info, Node: Extension summary, Next: Extension Exercises, Prev: ga modifying elements; getting the count of elements in an array; creating a new array; clearing an array; and flattening an array for easy C style looping over all its indices and - elements + elements. * The API defines a number of standard data types for representing `awk' values, array elements, and arrays. @@ -28068,8 +28068,8 @@ reorganized to supply individual PCSI packages for each component. See The normal build procedure for `gawk' produces a program that is suitable for use with GNV. - The `vms/gawk_build_steps.txt' in the distribution documents the -procedure for building a VMS PCSI kit that is compatible with GNV. + The file `vms/gawk_build_steps.txt' in the distribution documents +the procedure for building a VMS PCSI kit that is compatible with GNV. File: gawk.info, Node: VMS Old Gawk, Prev: VMS GNV, Up: VMS Installation @@ -32292,6 +32292,7 @@ Index * double quote ("), in shell commands: Quoting. (line 54) * down debugger command: Execution Stack. (line 23) * Drepper, Ulrich: Acknowledgments. (line 52) +* Duman, Patrice: Acknowledgments. (line 74) * dump all variables of a program: Options. (line 93) * dump debugger command: Miscellaneous Debugger Commands. (line 9) @@ -34253,532 +34254,532 @@ 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: Profiling794757 -Node: Advanced Features Summary802301 -Node: Internationalization804234 -Node: I18N and L10N805714 -Node: Explaining gettext806400 -Ref: Explaining gettext-Footnote-1811429 -Ref: Explaining gettext-Footnote-2811613 -Node: Programmer i18n811778 -Ref: Programmer i18n-Footnote-1816644 -Node: Translator i18n816693 -Node: String Extraction817487 -Ref: String Extraction-Footnote-1818618 -Node: Printf Ordering818704 -Ref: Printf Ordering-Footnote-1821490 -Node: I18N Portability821554 -Ref: I18N Portability-Footnote-1824003 -Node: I18N Example824066 -Ref: I18N Example-Footnote-1826866 -Node: Gawk I18N826938 -Node: I18N Summary827576 -Node: Debugger828915 -Node: Debugging829937 -Node: Debugging Concepts830378 -Node: Debugging Terms832235 -Node: Awk Debugging834810 -Node: Sample Debugging Session835702 -Node: Debugger Invocation836222 -Node: Finding The Bug837606 -Node: List of Debugger Commands844081 -Node: Breakpoint Control845413 -Node: Debugger Execution Control849105 -Node: Viewing And Changing Data852469 -Node: Execution Stack855834 -Node: Debugger Info857472 -Node: Miscellaneous Debugger Commands861489 -Node: Readline Support866681 -Node: Limitations867573 -Node: Debugging Summary869670 -Node: Arbitrary Precision Arithmetic870838 -Node: Computer Arithmetic872254 -Ref: table-numeric-ranges875855 -Ref: Computer Arithmetic-Footnote-1876714 -Node: Math Definitions876771 -Ref: table-ieee-formats880058 -Ref: Math Definitions-Footnote-1880662 -Node: MPFR features880767 -Node: FP Math Caution882438 -Ref: FP Math Caution-Footnote-1883488 -Node: Inexactness of computations883857 -Node: Inexact representation884805 -Node: Comparing FP Values886160 -Node: Errors accumulate887233 -Node: Getting Accuracy888666 -Node: Try To Round891325 -Node: Setting precision892224 -Ref: table-predefined-precision-strings892908 -Node: Setting the rounding mode894702 -Ref: table-gawk-rounding-modes895066 -Ref: Setting the rounding mode-Footnote-1898520 -Node: Arbitrary Precision Integers898699 -Ref: Arbitrary Precision Integers-Footnote-1901690 -Node: POSIX Floating Point Problems901839 -Ref: POSIX Floating Point Problems-Footnote-1905715 -Node: Floating point summary905753 -Node: Dynamic Extensions907945 -Node: Extension Intro909497 -Node: Plugin License910763 -Node: Extension Mechanism Outline911560 -Ref: figure-load-extension911988 -Ref: figure-register-new-function913468 -Ref: figure-call-new-function914472 -Node: Extension API Description916458 -Node: Extension API Functions Introduction917908 -Node: General Data Types922744 -Ref: General Data Types-Footnote-1928431 -Node: Memory Allocation Functions928730 -Ref: Memory Allocation Functions-Footnote-1931560 -Node: Constructor Functions931656 -Node: Registration Functions933390 -Node: Extension Functions934075 -Node: Exit Callback Functions936371 -Node: Extension Version String937619 -Node: Input Parsers938269 -Node: Output Wrappers948084 -Node: Two-way processors952600 -Node: Printing Messages954804 -Ref: Printing Messages-Footnote-1955881 -Node: Updating `ERRNO'956033 -Node: Requesting Values956773 -Ref: table-value-types-returned957501 -Node: Accessing Parameters958459 -Node: Symbol Table Access959690 -Node: Symbol table by name960204 -Node: Symbol table by cookie962184 -Ref: Symbol table by cookie-Footnote-1966323 -Node: Cached values966386 -Ref: Cached values-Footnote-1969890 -Node: Array Manipulation969981 -Ref: Array Manipulation-Footnote-1971079 -Node: Array Data Types971118 -Ref: Array Data Types-Footnote-1973775 -Node: Array Functions973867 -Node: Flattening Arrays977721 -Node: Creating Arrays984608 -Node: Extension API Variables989375 -Node: Extension Versioning990011 -Node: Extension API Informational Variables991912 -Node: Extension API Boilerplate993000 -Node: Finding Extensions996816 -Node: Extension Example997376 -Node: Internal File Description998148 -Node: Internal File Ops1002215 -Ref: Internal File Ops-Footnote-11013873 -Node: Using Internal File Ops1014013 -Ref: Using Internal File Ops-Footnote-11016396 -Node: Extension Samples1016669 -Node: Extension Sample File Functions1018193 -Node: Extension Sample Fnmatch1025795 -Node: Extension Sample Fork1027277 -Node: Extension Sample Inplace1028490 -Node: Extension Sample Ord1030165 -Node: Extension Sample Readdir1031001 -Ref: table-readdir-file-types1031857 -Node: Extension Sample Revout1032668 -Node: Extension Sample Rev2way1033259 -Node: Extension Sample Read write array1034000 -Node: Extension Sample Readfile1035939 -Node: Extension Sample Time1037034 -Node: Extension Sample API Tests1038383 -Node: gawkextlib1038874 -Node: Extension summary1041524 -Node: Extension Exercises1045206 -Node: Language History1045928 -Node: V7/SVR3.11047585 -Node: SVR41049766 -Node: POSIX1051211 -Node: BTL1052600 -Node: POSIX/GNU1053334 -Node: Feature History1058903 -Node: Common Extensions1071994 -Node: Ranges and Locales1073318 -Ref: Ranges and Locales-Footnote-11077957 -Ref: Ranges and Locales-Footnote-21077984 -Ref: Ranges and Locales-Footnote-31078218 -Node: Contributors1078439 -Node: History summary1083979 -Node: Installation1085348 -Node: Gawk Distribution1086304 -Node: Getting1086788 -Node: Extracting1087612 -Node: Distribution contents1089254 -Node: Unix Installation1094971 -Node: Quick Installation1095588 -Node: Additional Configuration Options1098019 -Node: Configuration Philosophy1099759 -Node: Non-Unix Installation1102110 -Node: PC Installation1102568 -Node: PC Binary Installation1103894 -Node: PC Compiling1105742 -Ref: PC Compiling-Footnote-11108763 -Node: PC Testing1108868 -Node: PC Using1110044 -Node: Cygwin1114159 -Node: MSYS1114982 -Node: VMS Installation1115480 -Node: VMS Compilation1116272 -Ref: VMS Compilation-Footnote-11117494 -Node: VMS Dynamic Extensions1117552 -Node: VMS Installation Details1119236 -Node: VMS Running1121488 -Node: VMS GNV1124329 -Node: VMS Old Gawk1125058 -Node: Bugs1125528 -Node: Other Versions1129498 -Node: Installation summary1135711 -Node: Notes1136767 -Node: Compatibility Mode1137632 -Node: Additions1138414 -Node: Accessing The Source1139339 -Node: Adding Code1140775 -Node: New Ports1146947 -Node: Derived Files1151429 -Ref: Derived Files-Footnote-11156904 -Ref: Derived Files-Footnote-21156938 -Ref: Derived Files-Footnote-31157534 -Node: Future Extensions1157648 -Node: Implementation Limitations1158254 -Node: Extension Design1159502 -Node: Old Extension Problems1160656 -Ref: Old Extension Problems-Footnote-11162173 -Node: Extension New Mechanism Goals1162230 -Ref: Extension New Mechanism Goals-Footnote-11165590 -Node: Extension Other Design Decisions1165779 -Node: Extension Future Growth1167887 -Node: Old Extension Mechanism1168723 -Node: Notes summary1170485 -Node: Basic Concepts1171671 -Node: Basic High Level1172352 -Ref: figure-general-flow1172624 -Ref: figure-process-flow1173223 -Ref: Basic High Level-Footnote-11176452 -Node: Basic Data Typing1176637 -Node: Glossary1179965 -Node: Copying1205123 -Node: GNU Free Documentation License1242679 -Node: Index1267815 +Node: DOS Quoting90074 +Node: Sample Data Files90749 +Node: Very Simple93342 +Node: Two Rules98233 +Node: More Complex100119 +Node: Statements/Lines102981 +Ref: Statements/Lines-Footnote-1107437 +Node: Other Features107702 +Node: When108633 +Ref: When-Footnote-1110389 +Node: Intro Summary110454 +Node: Invoking Gawk111337 +Node: Command Line112852 +Node: Options113643 +Ref: Options-Footnote-1129538 +Node: Other Arguments129563 +Node: Naming Standard Input132524 +Node: Environment Variables133617 +Node: AWKPATH Variable134175 +Ref: AWKPATH Variable-Footnote-1137027 +Ref: AWKPATH Variable-Footnote-2137072 +Node: AWKLIBPATH Variable137332 +Node: Other Environment Variables138091 +Node: Exit Status141793 +Node: Include Files142468 +Node: Loading Shared Libraries146046 +Node: Obsolete147473 +Node: Undocumented148170 +Node: Invoking Summary148437 +Node: Regexp150103 +Node: Regexp Usage151562 +Node: Escape Sequences153595 +Node: Regexp Operators159612 +Ref: Regexp Operators-Footnote-1167046 +Ref: Regexp Operators-Footnote-2167193 +Node: Bracket Expressions167291 +Ref: table-char-classes169308 +Node: Leftmost Longest172248 +Node: Computed Regexps173550 +Node: GNU Regexp Operators176947 +Node: Case-sensitivity180649 +Ref: Case-sensitivity-Footnote-1183539 +Ref: Case-sensitivity-Footnote-2183774 +Node: Regexp Summary183882 +Node: Reading Files185351 +Node: Records187445 +Node: awk split records188177 +Node: gawk split records193091 +Ref: gawk split records-Footnote-1197630 +Node: Fields197667 +Ref: Fields-Footnote-1200465 +Node: Nonconstant Fields200551 +Ref: Nonconstant Fields-Footnote-1202787 +Node: Changing Fields202989 +Node: Field Separators208921 +Node: Default Field Splitting211625 +Node: Regexp Field Splitting212742 +Node: Single Character Fields216092 +Node: Command Line Field Separator217151 +Node: Full Line Fields220363 +Ref: Full Line Fields-Footnote-1220871 +Node: Field Splitting Summary220917 +Ref: Field Splitting Summary-Footnote-1224048 +Node: Constant Size224149 +Node: Splitting By Content228755 +Ref: Splitting By Content-Footnote-1232828 +Node: Multiple Line232868 +Ref: Multiple Line-Footnote-1238757 +Node: Getline238936 +Node: Plain Getline241147 +Node: Getline/Variable243787 +Node: Getline/File244934 +Node: Getline/Variable/File246318 +Ref: Getline/Variable/File-Footnote-1247919 +Node: Getline/Pipe248006 +Node: Getline/Variable/Pipe250689 +Node: Getline/Coprocess251820 +Node: Getline/Variable/Coprocess253072 +Node: Getline Notes253811 +Node: Getline Summary256603 +Ref: table-getline-variants257015 +Node: Read Timeout257844 +Ref: Read Timeout-Footnote-1261658 +Node: Command-line directories261716 +Node: Input Summary262620 +Node: Input Exercises265872 +Node: Printing266600 +Node: Print268377 +Node: Print Examples269834 +Node: Output Separators272613 +Node: OFMT274631 +Node: Printf275985 +Node: Basic Printf276770 +Node: Control Letters278341 +Node: Format Modifiers282325 +Node: Printf Examples288332 +Node: Redirection290814 +Node: Special FD297653 +Ref: Special FD-Footnote-1300810 +Node: Special Files300884 +Node: Other Inherited Files301500 +Node: Special Network302500 +Node: Special Caveats303361 +Node: Close Files And Pipes304312 +Ref: Close Files And Pipes-Footnote-1311491 +Ref: Close Files And Pipes-Footnote-2311639 +Node: Output Summary311789 +Node: Output Exercises312785 +Node: Expressions313465 +Node: Values314650 +Node: Constants315326 +Node: Scalar Constants316006 +Ref: Scalar Constants-Footnote-1316865 +Node: Nondecimal-numbers317115 +Node: Regexp Constants320115 +Node: Using Constant Regexps320640 +Node: Variables323778 +Node: Using Variables324433 +Node: Assignment Options326343 +Node: Conversion328218 +Node: Strings And Numbers328742 +Ref: Strings And Numbers-Footnote-1331806 +Node: Locale influences conversions331915 +Ref: table-locale-affects334660 +Node: All Operators335248 +Node: Arithmetic Ops335878 +Node: Concatenation338383 +Ref: Concatenation-Footnote-1341202 +Node: Assignment Ops341308 +Ref: table-assign-ops346291 +Node: Increment Ops347569 +Node: Truth Values and Conditions351007 +Node: Truth Values352090 +Node: Typing and Comparison353139 +Node: Variable Typing353932 +Node: Comparison Operators357584 +Ref: table-relational-ops357994 +Node: POSIX String Comparison361509 +Ref: POSIX String Comparison-Footnote-1362581 +Node: Boolean Ops362719 +Ref: Boolean Ops-Footnote-1367198 +Node: Conditional Exp367289 +Node: Function Calls369016 +Node: Precedence372896 +Node: Locales376564 +Node: Expressions Summary378195 +Node: Patterns and Actions380769 +Node: Pattern Overview381889 +Node: Regexp Patterns383568 +Node: Expression Patterns384111 +Node: Ranges387891 +Node: BEGIN/END390997 +Node: Using BEGIN/END391759 +Ref: Using BEGIN/END-Footnote-1394496 +Node: I/O And BEGIN/END394602 +Node: BEGINFILE/ENDFILE396916 +Node: Empty399817 +Node: Using Shell Variables400134 +Node: Action Overview402410 +Node: Statements404737 +Node: If Statement406585 +Node: While Statement408083 +Node: Do Statement410111 +Node: For Statement411253 +Node: Switch Statement414408 +Node: Break Statement416796 +Node: Continue Statement418837 +Node: Next Statement420662 +Node: Nextfile Statement423042 +Node: Exit Statement425672 +Node: Built-in Variables428075 +Node: User-modified429208 +Ref: User-modified-Footnote-1436888 +Node: Auto-set436950 +Ref: Auto-set-Footnote-1449807 +Ref: Auto-set-Footnote-2450012 +Node: ARGC and ARGV450068 +Node: Pattern Action Summary454272 +Node: Arrays456699 +Node: Array Basics458028 +Node: Array Intro458872 +Ref: figure-array-elements460836 +Ref: Array Intro-Footnote-1463360 +Node: Reference to Elements463488 +Node: Assigning Elements465938 +Node: Array Example466429 +Node: Scanning an Array468187 +Node: Controlling Scanning471203 +Ref: Controlling Scanning-Footnote-1476392 +Node: Numeric Array Subscripts476708 +Node: Uninitialized Subscripts478893 +Node: Delete480510 +Ref: Delete-Footnote-1483254 +Node: Multidimensional483311 +Node: Multiscanning486406 +Node: Arrays of Arrays487995 +Node: Arrays Summary492756 +Node: Functions494861 +Node: Built-in495734 +Node: Calling Built-in496812 +Node: Numeric Functions498800 +Ref: Numeric Functions-Footnote-1502822 +Ref: Numeric Functions-Footnote-2503179 +Ref: Numeric Functions-Footnote-3503227 +Node: String Functions503496 +Ref: String Functions-Footnote-1526968 +Ref: String Functions-Footnote-2527097 +Ref: String Functions-Footnote-3527345 +Node: Gory Details527432 +Ref: table-sub-escapes529213 +Ref: table-sub-proposed530733 +Ref: table-posix-sub532097 +Ref: table-gensub-escapes533637 +Ref: Gory Details-Footnote-1534469 +Node: I/O Functions534620 +Ref: I/O Functions-Footnote-1541721 +Node: Time Functions541868 +Ref: Time Functions-Footnote-1552337 +Ref: Time Functions-Footnote-2552405 +Ref: Time Functions-Footnote-3552563 +Ref: Time Functions-Footnote-4552674 +Ref: Time Functions-Footnote-5552786 +Ref: Time Functions-Footnote-6553013 +Node: Bitwise Functions553279 +Ref: table-bitwise-ops553841 +Ref: Bitwise Functions-Footnote-1558149 +Node: Type Functions558318 +Node: I18N Functions559467 +Node: User-defined561112 +Node: Definition Syntax561916 +Ref: Definition Syntax-Footnote-1567322 +Node: Function Example567391 +Ref: Function Example-Footnote-1570308 +Node: Function Caveats570330 +Node: Calling A Function570848 +Node: Variable Scope571803 +Node: Pass By Value/Reference574791 +Node: Return Statement578301 +Node: Dynamic Typing581285 +Node: Indirect Calls582214 +Ref: Indirect Calls-Footnote-1593518 +Node: Functions Summary593646 +Node: Library Functions596345 +Ref: Library Functions-Footnote-1599963 +Ref: Library Functions-Footnote-2600106 +Node: Library Names600277 +Ref: Library Names-Footnote-1603737 +Ref: Library Names-Footnote-2603957 +Node: General Functions604043 +Node: Strtonum Function605146 +Node: Assert Function608166 +Node: Round Function611490 +Node: Cliff Random Function613031 +Node: Ordinal Functions614047 +Ref: Ordinal Functions-Footnote-1617112 +Ref: Ordinal Functions-Footnote-2617364 +Node: Join Function617575 +Ref: Join Function-Footnote-1619346 +Node: Getlocaltime Function619546 +Node: Readfile Function623287 +Node: Shell Quoting625257 +Node: Data File Management626658 +Node: Filetrans Function627290 +Node: Rewind Function631349 +Node: File Checking632734 +Ref: File Checking-Footnote-1634062 +Node: Empty Files634263 +Node: Ignoring Assigns636242 +Node: Getopt Function637793 +Ref: Getopt Function-Footnote-1649253 +Node: Passwd Functions649456 +Ref: Passwd Functions-Footnote-1658307 +Node: Group Functions658395 +Ref: Group Functions-Footnote-1666298 +Node: Walking Arrays666511 +Node: Library Functions Summary668114 +Node: Library Exercises669515 +Node: Sample Programs670795 +Node: Running Examples671565 +Node: Clones672293 +Node: Cut Program673517 +Node: Egrep Program683247 +Ref: Egrep Program-Footnote-1690751 +Node: Id Program690861 +Node: Split Program694505 +Ref: Split Program-Footnote-1697951 +Node: Tee Program698079 +Node: Uniq Program700866 +Node: Wc Program708287 +Ref: Wc Program-Footnote-1712535 +Node: Miscellaneous Programs712627 +Node: Dupword Program713840 +Node: Alarm Program715871 +Node: Translate Program720675 +Ref: Translate Program-Footnote-1725239 +Node: Labels Program725509 +Ref: Labels Program-Footnote-1728858 +Node: Word Sorting728942 +Node: History Sorting733012 +Node: Extract Program734848 +Node: Simple Sed742380 +Node: Igawk Program745442 +Ref: Igawk Program-Footnote-1759768 +Ref: Igawk Program-Footnote-2759969 +Ref: Igawk Program-Footnote-3760091 +Node: Anagram Program760206 +Node: Signature Program763268 +Node: Programs Summary764515 +Node: Programs Exercises765708 +Ref: Programs Exercises-Footnote-1769839 +Node: Advanced Features769930 +Node: Nondecimal Data771878 +Node: Array Sorting773468 +Node: Controlling Array Traversal774165 +Ref: Controlling Array Traversal-Footnote-1782496 +Node: Array Sorting Functions782614 +Ref: Array Sorting Functions-Footnote-1786506 +Node: Two-way I/O786700 +Ref: Two-way I/O-Footnote-1791644 +Ref: Two-way I/O-Footnote-2791830 +Node: TCP/IP Networking791912 +Node: Profiling794784 +Node: Advanced Features Summary802328 +Node: Internationalization804261 +Node: I18N and L10N805741 +Node: Explaining gettext806427 +Ref: Explaining gettext-Footnote-1811456 +Ref: Explaining gettext-Footnote-2811640 +Node: Programmer i18n811805 +Ref: Programmer i18n-Footnote-1816671 +Node: Translator i18n816720 +Node: String Extraction817514 +Ref: String Extraction-Footnote-1818645 +Node: Printf Ordering818731 +Ref: Printf Ordering-Footnote-1821517 +Node: I18N Portability821581 +Ref: I18N Portability-Footnote-1824030 +Node: I18N Example824093 +Ref: I18N Example-Footnote-1826893 +Node: Gawk I18N826965 +Node: I18N Summary827603 +Node: Debugger828942 +Node: Debugging829964 +Node: Debugging Concepts830405 +Node: Debugging Terms832262 +Node: Awk Debugging834837 +Node: Sample Debugging Session835729 +Node: Debugger Invocation836249 +Node: Finding The Bug837633 +Node: List of Debugger Commands844108 +Node: Breakpoint Control845440 +Node: Debugger Execution Control849132 +Node: Viewing And Changing Data852496 +Node: Execution Stack855861 +Node: Debugger Info857499 +Node: Miscellaneous Debugger Commands861516 +Node: Readline Support866708 +Node: Limitations867600 +Node: Debugging Summary869697 +Node: Arbitrary Precision Arithmetic870865 +Node: Computer Arithmetic872281 +Ref: table-numeric-ranges875882 +Ref: Computer Arithmetic-Footnote-1876741 +Node: Math Definitions876798 +Ref: table-ieee-formats880085 +Ref: Math Definitions-Footnote-1880689 +Node: MPFR features880794 +Node: FP Math Caution882465 +Ref: FP Math Caution-Footnote-1883515 +Node: Inexactness of computations883884 +Node: Inexact representation884832 +Node: Comparing FP Values886187 +Node: Errors accumulate887260 +Node: Getting Accuracy888693 +Node: Try To Round891352 +Node: Setting precision892251 +Ref: table-predefined-precision-strings892935 +Node: Setting the rounding mode894729 +Ref: table-gawk-rounding-modes895093 +Ref: Setting the rounding mode-Footnote-1898547 +Node: Arbitrary Precision Integers898726 +Ref: Arbitrary Precision Integers-Footnote-1901717 +Node: POSIX Floating Point Problems901866 +Ref: POSIX Floating Point Problems-Footnote-1905742 +Node: Floating point summary905780 +Node: Dynamic Extensions907972 +Node: Extension Intro909524 +Node: Plugin License910790 +Node: Extension Mechanism Outline911587 +Ref: figure-load-extension912015 +Ref: figure-register-new-function913495 +Ref: figure-call-new-function914499 +Node: Extension API Description916485 +Node: Extension API Functions Introduction917935 +Node: General Data Types922771 +Ref: General Data Types-Footnote-1928458 +Node: Memory Allocation Functions928757 +Ref: Memory Allocation Functions-Footnote-1931587 +Node: Constructor Functions931683 +Node: Registration Functions933417 +Node: Extension Functions934102 +Node: Exit Callback Functions936398 +Node: Extension Version String937646 +Node: Input Parsers938296 +Node: Output Wrappers948111 +Node: Two-way processors952627 +Node: Printing Messages954831 +Ref: Printing Messages-Footnote-1955908 +Node: Updating `ERRNO'956060 +Node: Requesting Values956800 +Ref: table-value-types-returned957528 +Node: Accessing Parameters958486 +Node: Symbol Table Access959717 +Node: Symbol table by name960231 +Node: Symbol table by cookie962211 +Ref: Symbol table by cookie-Footnote-1966350 +Node: Cached values966413 +Ref: Cached values-Footnote-1969917 +Node: Array Manipulation970008 +Ref: Array Manipulation-Footnote-1971106 +Node: Array Data Types971145 +Ref: Array Data Types-Footnote-1973802 +Node: Array Functions973894 +Node: Flattening Arrays977748 +Node: Creating Arrays984635 +Node: Extension API Variables989402 +Node: Extension Versioning990038 +Node: Extension API Informational Variables991939 +Node: Extension API Boilerplate993027 +Node: Finding Extensions996843 +Node: Extension Example997403 +Node: Internal File Description998175 +Node: Internal File Ops1002242 +Ref: Internal File Ops-Footnote-11013900 +Node: Using Internal File Ops1014040 +Ref: Using Internal File Ops-Footnote-11016423 +Node: Extension Samples1016696 +Node: Extension Sample File Functions1018220 +Node: Extension Sample Fnmatch1025822 +Node: Extension Sample Fork1027304 +Node: Extension Sample Inplace1028517 +Node: Extension Sample Ord1030192 +Node: Extension Sample Readdir1031028 +Ref: table-readdir-file-types1031884 +Node: Extension Sample Revout1032695 +Node: Extension Sample Rev2way1033286 +Node: Extension Sample Read write array1034027 +Node: Extension Sample Readfile1035966 +Node: Extension Sample Time1037061 +Node: Extension Sample API Tests1038410 +Node: gawkextlib1038901 +Node: Extension summary1041551 +Node: Extension Exercises1045233 +Node: Language History1045955 +Node: V7/SVR3.11047612 +Node: SVR41049793 +Node: POSIX1051238 +Node: BTL1052627 +Node: POSIX/GNU1053361 +Node: Feature History1058930 +Node: Common Extensions1072021 +Node: Ranges and Locales1073345 +Ref: Ranges and Locales-Footnote-11077984 +Ref: Ranges and Locales-Footnote-21078011 +Ref: Ranges and Locales-Footnote-31078245 +Node: Contributors1078466 +Node: History summary1084006 +Node: Installation1085375 +Node: Gawk Distribution1086331 +Node: Getting1086815 +Node: Extracting1087639 +Node: Distribution contents1089281 +Node: Unix Installation1094998 +Node: Quick Installation1095615 +Node: Additional Configuration Options1098046 +Node: Configuration Philosophy1099786 +Node: Non-Unix Installation1102137 +Node: PC Installation1102595 +Node: PC Binary Installation1103921 +Node: PC Compiling1105769 +Ref: PC Compiling-Footnote-11108790 +Node: PC Testing1108895 +Node: PC Using1110071 +Node: Cygwin1114186 +Node: MSYS1115009 +Node: VMS Installation1115507 +Node: VMS Compilation1116299 +Ref: VMS Compilation-Footnote-11117521 +Node: VMS Dynamic Extensions1117579 +Node: VMS Installation Details1119263 +Node: VMS Running1121515 +Node: VMS GNV1124356 +Node: VMS Old Gawk1125090 +Node: Bugs1125560 +Node: Other Versions1129530 +Node: Installation summary1135743 +Node: Notes1136799 +Node: Compatibility Mode1137664 +Node: Additions1138446 +Node: Accessing The Source1139371 +Node: Adding Code1140807 +Node: New Ports1146979 +Node: Derived Files1151461 +Ref: Derived Files-Footnote-11156936 +Ref: Derived Files-Footnote-21156970 +Ref: Derived Files-Footnote-31157566 +Node: Future Extensions1157680 +Node: Implementation Limitations1158286 +Node: Extension Design1159534 +Node: Old Extension Problems1160688 +Ref: Old Extension Problems-Footnote-11162205 +Node: Extension New Mechanism Goals1162262 +Ref: Extension New Mechanism Goals-Footnote-11165622 +Node: Extension Other Design Decisions1165811 +Node: Extension Future Growth1167919 +Node: Old Extension Mechanism1168755 +Node: Notes summary1170517 +Node: Basic Concepts1171703 +Node: Basic High Level1172384 +Ref: figure-general-flow1172656 +Ref: figure-process-flow1173255 +Ref: Basic High Level-Footnote-11176484 +Node: Basic Data Typing1176669 +Node: Glossary1179997 +Node: Copying1205155 +Node: GNU Free Documentation License1242711 +Node: Index1267847 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index d8ebb0b1..40b7bfa3 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -2108,8 +2108,16 @@ 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. +@ifset FOR_PRINT +@cindex Oram, Andy +Thanks to Andy Oram, of O'Reilly Media, for initiating +the fourth edition and for his support during the work. +@end ifset + Thanks to Michael Brennan for the Foreword. +@cindex Duman, Patrice +@cindex Berry, Karl 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. @@ -2796,7 +2804,7 @@ awk -F"" '@var{program}' @var{files} # wrong! @end example @noindent -In the second case, @command{awk} will attempt to use the text of the program +In the second case, @command{awk} attempts to use the text of the program as the value of @code{FS}, and the first @value{FN} as the text of the program! This results in syntax errors at best, and confusing behavior at worst. @end itemize @@ -5976,7 +5984,7 @@ are allowed. Traditional Unix @command{awk} regexps are matched. The GNU operators are not special, and interval expressions are not available. The POSIX character classes (@samp{[[:alnum:]]}, etc.) are supported, -as BWK @command{awk} does support them. +as BWK @command{awk} supports them. Characters described by octal and hexadecimal escape sequences are treated literally, even if they represent regexp metacharacters. @@ -6692,7 +6700,7 @@ implementations may behave differently.) As mentioned in @ref{Fields}, @command{awk} stores the current record's number of fields in the built-in -variable @code{NF} (also @pxref{Built-in Variables}). The expression +variable @code{NF} (also @pxref{Built-in Variables}). Thus, the expression @code{$NF} is not a special feature---it is the direct consequence of evaluating @code{NF} and using its value as a field number. @@ -11036,7 +11044,7 @@ $ @kbd{echo 4,321 | LC_ALL=en_DK.utf-8 gawk '@{ print $1 + 1 @}'} The @code{en_DK.utf-8} locale is for English in Denmark, where the comma acts as the decimal point separator. In the normal @code{"C"} locale, @command{gawk} treats @samp{4,321} as 4, while in the Danish locale, it's treated -as the full number, 4.321. +as the full number including the fractional part, 4.321. Some earlier versions of @command{gawk} fully complied with this aspect of the standard. However, many users in non-English locales complained @@ -15390,7 +15398,7 @@ as a variable) in the same @command{awk} program. Arrays in @command{awk} superficially resemble arrays in other programming languages, but there are fundamental differences. In @command{awk}, it isn't necessary to specify the size of an array before starting to use it. -Additionally, any number or string in @command{awk}, not just consecutive integers, +Additionally, any number or string, not just consecutive integers, may be used as an array index. In most other languages, arrays must be @dfn{declared} before use, @@ -17167,7 +17175,7 @@ If @var{find} is not found, @code{index()} returns zero. With BWK @command{awk} and @command{gawk}, it is a fatal error to use a regexp constant for @var{find}. Other implementations allow it, simply treating the regexp -constant as an expression meaning @samp{$0 ~ /regexp/}. +constant as an expression meaning @samp{$0 ~ /regexp/}. @value{DARKCORNER}. @item @code{length(}[@var{string}]@code{)} @cindexawkfunc{length} @@ -25720,7 +25728,7 @@ While @command{sed} is a complicated program in its own right, its most common use is to perform global substitutions in the middle of a pipeline: @example -command1 < orig.data | sed 's/old/new/g' | command2 > result +@var{command1} < orig.data | sed 's/old/new/g' | @var{command2} > result @end example Here, @samp{s/old/new/g} tells @command{sed} to look for the regexp @@ -35004,7 +35012,7 @@ certain tasks. @item One of these tasks is to ``register'' the name and implementation of -a new @command{awk}-level function with @command{gawk}. The implementation +new @command{awk}-level functions with @command{gawk}. The implementation takes the form of a C function pointer with a defined signature. By convention, implementation functions are named @code{do_@var{XXXX}()} for some @command{awk}-level function @code{@var{XXXX}()}. @@ -35055,7 +35063,7 @@ getting the count of elements in an array; creating a new array; clearing an array; and -flattening an array for easy C style looping over all its indices and elements +flattening an array for easy C style looping over all its indices and elements. @end itemize @item @@ -38010,8 +38018,8 @@ See @w{@uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.} The normal build procedure for @command{gawk} produces a program that is suitable for use with GNV. -The @file{vms/gawk_build_steps.txt} in the distribution documents the procedure -for building a VMS PCSI kit that is compatible with GNV. +The file @file{vms/gawk_build_steps.txt} in the distribution documents +the procedure for building a VMS PCSI kit that is compatible with GNV. @ignore @c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 8d25e63a..fb4ca905 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -2075,8 +2075,16 @@ 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. +@ifset FOR_PRINT +@cindex Oram, Andy +Thanks to Andy Oram, of O'Reilly Media, for initiating +the fourth edition and for his support during the work. +@end ifset + Thanks to Michael Brennan for the Foreword. +@cindex Duman, Patrice +@cindex Berry, Karl 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. @@ -2707,7 +2715,7 @@ awk -F"" '@var{program}' @var{files} # wrong! @end example @noindent -In the second case, @command{awk} will attempt to use the text of the program +In the second case, @command{awk} attempts to use the text of the program as the value of @code{FS}, and the first @value{FN} as the text of the program! This results in syntax errors at best, and confusing behavior at worst. @end itemize @@ -5760,7 +5768,7 @@ are allowed. Traditional Unix @command{awk} regexps are matched. The GNU operators are not special, and interval expressions are not available. The POSIX character classes (@samp{[[:alnum:]]}, etc.) are supported, -as BWK @command{awk} does support them. +as BWK @command{awk} supports them. Characters described by octal and hexadecimal escape sequences are treated literally, even if they represent regexp metacharacters. @@ -6419,7 +6427,7 @@ implementations may behave differently.) As mentioned in @ref{Fields}, @command{awk} stores the current record's number of fields in the built-in -variable @code{NF} (also @pxref{Built-in Variables}). The expression +variable @code{NF} (also @pxref{Built-in Variables}). Thus, the expression @code{$NF} is not a special feature---it is the direct consequence of evaluating @code{NF} and using its value as a field number. @@ -10476,7 +10484,7 @@ $ @kbd{echo 4,321 | LC_ALL=en_DK.utf-8 gawk '@{ print $1 + 1 @}'} The @code{en_DK.utf-8} locale is for English in Denmark, where the comma acts as the decimal point separator. In the normal @code{"C"} locale, @command{gawk} treats @samp{4,321} as 4, while in the Danish locale, it's treated -as the full number, 4.321. +as the full number including the fractional part, 4.321. Some earlier versions of @command{gawk} fully complied with this aspect of the standard. However, many users in non-English locales complained @@ -14674,7 +14682,7 @@ as a variable) in the same @command{awk} program. Arrays in @command{awk} superficially resemble arrays in other programming languages, but there are fundamental differences. In @command{awk}, it isn't necessary to specify the size of an array before starting to use it. -Additionally, any number or string in @command{awk}, not just consecutive integers, +Additionally, any number or string, not just consecutive integers, may be used as an array index. In most other languages, arrays must be @dfn{declared} before use, @@ -16451,7 +16459,7 @@ If @var{find} is not found, @code{index()} returns zero. With BWK @command{awk} and @command{gawk}, it is a fatal error to use a regexp constant for @var{find}. Other implementations allow it, simply treating the regexp -constant as an expression meaning @samp{$0 ~ /regexp/}. +constant as an expression meaning @samp{$0 ~ /regexp/}. @value{DARKCORNER}. @item @code{length(}[@var{string}]@code{)} @cindexawkfunc{length} @@ -24814,7 +24822,7 @@ While @command{sed} is a complicated program in its own right, its most common use is to perform global substitutions in the middle of a pipeline: @example -command1 < orig.data | sed 's/old/new/g' | command2 > result +@var{command1} < orig.data | sed 's/old/new/g' | @var{command2} > result @end example Here, @samp{s/old/new/g} tells @command{sed} to look for the regexp @@ -34098,7 +34106,7 @@ certain tasks. @item One of these tasks is to ``register'' the name and implementation of -a new @command{awk}-level function with @command{gawk}. The implementation +new @command{awk}-level functions with @command{gawk}. The implementation takes the form of a C function pointer with a defined signature. By convention, implementation functions are named @code{do_@var{XXXX}()} for some @command{awk}-level function @code{@var{XXXX}()}. @@ -34149,7 +34157,7 @@ getting the count of elements in an array; creating a new array; clearing an array; and -flattening an array for easy C style looping over all its indices and elements +flattening an array for easy C style looping over all its indices and elements. @end itemize @item @@ -37104,8 +37112,8 @@ See @w{@uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.} The normal build procedure for @command{gawk} produces a program that is suitable for use with GNV. -The @file{vms/gawk_build_steps.txt} in the distribution documents the procedure -for building a VMS PCSI kit that is compatible with GNV. +The file @file{vms/gawk_build_steps.txt} in the distribution documents +the procedure for building a VMS PCSI kit that is compatible with GNV. @ignore @c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct |