diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2014-10-05 21:21:09 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2014-10-05 21:21:09 +0300 |
commit | 62988ea2ac1f845e30c3986bfc9bf4620693682a (patch) | |
tree | 129dc34ecfb1a78ddf6820c8fbf48b2f8e1366a4 | |
parent | 2f7402ec4b65a2546373403fa701a29d7482cf3f (diff) | |
parent | c86aa5e85c7ced14a81389c0bf96b6c75fe420c9 (diff) | |
download | egawk-62988ea2ac1f845e30c3986bfc9bf4620693682a.tar.gz egawk-62988ea2ac1f845e30c3986bfc9bf4620693682a.tar.bz2 egawk-62988ea2ac1f845e30c3986bfc9bf4620693682a.zip |
Merge branch 'gawk-4.1-stable'
-rw-r--r-- | ChangeLog | 4 | ||||
-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 | ||||
-rw-r--r-- | test/ChangeLog | 5 |
6 files changed, 596 insertions, 566 deletions
@@ -1,5 +1,9 @@ 2014-10-05 Arnold D. Robbins <arnold@skeeve.com> + * profile.c (pprint): Fix typo in header. Sheesh. + + Unrelated: + * awkgram.y (mk_program): Add a comment that we don't need to clear the comment* variables. diff --git a/doc/ChangeLog b/doc/ChangeLog index ef6a7843..11dcda57 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 9f70b428..30dfc583 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: @@ -3935,7 +3935,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. @@ -4458,9 +4458,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 ---------- @@ -7670,7 +7670,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 @@ -10766,8 +10766,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 @@ -12095,7 +12095,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, @@ -18310,7 +18310,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 @@ -25991,7 +25991,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()'. @@ -26027,7 +26027,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. @@ -28143,8 +28143,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 @@ -32368,6 +32368,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) @@ -34329,532 +34330,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-1129413 -Node: Other Arguments129438 -Node: Naming Standard Input132399 -Node: Environment Variables133492 -Node: AWKPATH Variable134050 -Ref: AWKPATH Variable-Footnote-1136902 -Ref: AWKPATH Variable-Footnote-2136947 -Node: AWKLIBPATH Variable137207 -Node: Other Environment Variables137966 -Node: Exit Status141439 -Node: Include Files142114 -Node: Loading Shared Libraries145692 -Node: Obsolete147119 -Node: Undocumented147816 -Node: Invoking Summary148083 -Node: Regexp149749 -Node: Regexp Usage151208 -Node: Escape Sequences153241 -Node: Regexp Operators159341 -Ref: Regexp Operators-Footnote-1166775 -Ref: Regexp Operators-Footnote-2166922 -Node: Bracket Expressions167020 -Ref: table-char-classes169037 -Node: Leftmost Longest171977 -Node: Computed Regexps173279 -Node: GNU Regexp Operators176676 -Node: Case-sensitivity180382 -Ref: Case-sensitivity-Footnote-1183272 -Ref: Case-sensitivity-Footnote-2183507 -Node: Regexp Summary183615 -Node: Reading Files185084 -Node: Records187178 -Node: awk split records187910 -Node: gawk split records192824 -Ref: gawk split records-Footnote-1197363 -Node: Fields197400 -Ref: Fields-Footnote-1200198 -Node: Nonconstant Fields200284 -Ref: Nonconstant Fields-Footnote-1202514 -Node: Changing Fields202716 -Node: Field Separators208648 -Node: Default Field Splitting211352 -Node: Regexp Field Splitting212469 -Node: Single Character Fields215819 -Node: Command Line Field Separator216878 -Node: Full Line Fields220090 -Ref: Full Line Fields-Footnote-1220598 -Node: Field Splitting Summary220644 -Ref: Field Splitting Summary-Footnote-1223775 -Node: Constant Size223876 -Node: Splitting By Content228482 -Ref: Splitting By Content-Footnote-1232555 -Node: Multiple Line232595 -Ref: Multiple Line-Footnote-1238484 -Node: Getline238663 -Node: Plain Getline240874 -Node: Getline/Variable243514 -Node: Getline/File244661 -Node: Getline/Variable/File246045 -Ref: Getline/Variable/File-Footnote-1247646 -Node: Getline/Pipe247733 -Node: Getline/Variable/Pipe250416 -Node: Getline/Coprocess251547 -Node: Getline/Variable/Coprocess252799 -Node: Getline Notes253538 -Node: Getline Summary256330 -Ref: table-getline-variants256742 -Node: Read Timeout257571 -Ref: Read Timeout-Footnote-1261385 -Node: Command-line directories261443 -Node: Input Summary262347 -Node: Input Exercises265599 -Node: Printing266327 -Node: Print268104 -Node: Print Examples269561 -Node: Output Separators272340 -Node: OFMT274358 -Node: Printf275712 -Node: Basic Printf276497 -Node: Control Letters278068 -Node: Format Modifiers282052 -Node: Printf Examples288059 -Node: Redirection290541 -Node: Special FD297380 -Ref: Special FD-Footnote-1300537 -Node: Special Files300611 -Node: Other Inherited Files301227 -Node: Special Network302227 -Node: Special Caveats303088 -Node: Close Files And Pipes304039 -Ref: Close Files And Pipes-Footnote-1311218 -Ref: Close Files And Pipes-Footnote-2311366 -Node: Output Summary311516 -Node: Output Exercises312512 -Node: Expressions313192 -Node: Values314377 -Node: Constants315053 -Node: Scalar Constants315733 -Ref: Scalar Constants-Footnote-1316592 -Node: Nondecimal-numbers316842 -Node: Regexp Constants319842 -Node: Using Constant Regexps320367 -Node: Variables323505 -Node: Using Variables324160 -Node: Assignment Options326070 -Node: Conversion327945 -Node: Strings And Numbers328469 -Ref: Strings And Numbers-Footnote-1331533 -Node: Locale influences conversions331642 -Ref: table-locale-affects334357 -Node: All Operators334945 -Node: Arithmetic Ops335575 -Node: Concatenation338080 -Ref: Concatenation-Footnote-1340899 -Node: Assignment Ops341005 -Ref: table-assign-ops345988 -Node: Increment Ops347266 -Node: Truth Values and Conditions350704 -Node: Truth Values351787 -Node: Typing and Comparison352836 -Node: Variable Typing353629 -Node: Comparison Operators357281 -Ref: table-relational-ops357691 -Node: POSIX String Comparison361206 -Ref: POSIX String Comparison-Footnote-1362278 -Node: Boolean Ops362416 -Ref: Boolean Ops-Footnote-1366895 -Node: Conditional Exp366986 -Node: Function Calls368713 -Node: Precedence372593 -Node: Locales376261 -Node: Expressions Summary377892 -Node: Patterns and Actions380466 -Node: Pattern Overview381586 -Node: Regexp Patterns383265 -Node: Expression Patterns383808 -Node: Ranges387588 -Node: BEGIN/END390694 -Node: Using BEGIN/END391456 -Ref: Using BEGIN/END-Footnote-1394193 -Node: I/O And BEGIN/END394299 -Node: BEGINFILE/ENDFILE396613 -Node: Empty399514 -Node: Using Shell Variables399831 -Node: Action Overview402107 -Node: Statements404434 -Node: If Statement406282 -Node: While Statement407780 -Node: Do Statement409808 -Node: For Statement410950 -Node: Switch Statement414105 -Node: Break Statement416493 -Node: Continue Statement418534 -Node: Next Statement420359 -Node: Nextfile Statement422739 -Node: Exit Statement425369 -Node: Built-in Variables427772 -Node: User-modified428905 -Ref: User-modified-Footnote-1436585 -Node: Auto-set436647 -Ref: Auto-set-Footnote-1449841 -Ref: Auto-set-Footnote-2450046 -Node: ARGC and ARGV450102 -Node: Pattern Action Summary454306 -Node: Arrays456733 -Node: Array Basics458062 -Node: Array Intro458906 -Ref: figure-array-elements460879 -Ref: Array Intro-Footnote-1463403 -Node: Reference to Elements463531 -Node: Assigning Elements465981 -Node: Array Example466472 -Node: Scanning an Array468230 -Node: Controlling Scanning471246 -Ref: Controlling Scanning-Footnote-1476435 -Node: Numeric Array Subscripts476751 -Node: Uninitialized Subscripts478936 -Node: Delete480553 -Ref: Delete-Footnote-1483297 -Node: Multidimensional483354 -Node: Multiscanning486449 -Node: Arrays of Arrays488038 -Node: Arrays Summary492799 -Node: Functions494904 -Node: Built-in495777 -Node: Calling Built-in496855 -Node: Numeric Functions498843 -Ref: Numeric Functions-Footnote-1503667 -Ref: Numeric Functions-Footnote-2504024 -Ref: Numeric Functions-Footnote-3504072 -Node: String Functions504341 -Ref: String Functions-Footnote-1527805 -Ref: String Functions-Footnote-2527934 -Ref: String Functions-Footnote-3528182 -Node: Gory Details528269 -Ref: table-sub-escapes530050 -Ref: table-sub-proposed531570 -Ref: table-posix-sub532934 -Ref: table-gensub-escapes534474 -Ref: Gory Details-Footnote-1535306 -Node: I/O Functions535457 -Ref: I/O Functions-Footnote-1542558 -Node: Time Functions542705 -Ref: Time Functions-Footnote-1553174 -Ref: Time Functions-Footnote-2553242 -Ref: Time Functions-Footnote-3553400 -Ref: Time Functions-Footnote-4553511 -Ref: Time Functions-Footnote-5553623 -Ref: Time Functions-Footnote-6553850 -Node: Bitwise Functions554116 -Ref: table-bitwise-ops554678 -Ref: Bitwise Functions-Footnote-1558986 -Node: Type Functions559155 -Node: I18N Functions560304 -Node: User-defined561949 -Node: Definition Syntax562753 -Ref: Definition Syntax-Footnote-1568159 -Node: Function Example568228 -Ref: Function Example-Footnote-1571145 -Node: Function Caveats571167 -Node: Calling A Function571685 -Node: Variable Scope572640 -Node: Pass By Value/Reference575628 -Node: Return Statement579138 -Node: Dynamic Typing582122 -Node: Indirect Calls583051 -Ref: Indirect Calls-Footnote-1594355 -Node: Functions Summary594483 -Node: Library Functions597182 -Ref: Library Functions-Footnote-1600800 -Ref: Library Functions-Footnote-2600943 -Node: Library Names601114 -Ref: Library Names-Footnote-1604574 -Ref: Library Names-Footnote-2604794 -Node: General Functions604880 -Node: Strtonum Function605983 -Node: Assert Function609003 -Node: Round Function612327 -Node: Cliff Random Function613868 -Node: Ordinal Functions614884 -Ref: Ordinal Functions-Footnote-1617949 -Ref: Ordinal Functions-Footnote-2618201 -Node: Join Function618412 -Ref: Join Function-Footnote-1620183 -Node: Getlocaltime Function620383 -Node: Readfile Function624124 -Node: Shell Quoting626094 -Node: Data File Management627495 -Node: Filetrans Function628127 -Node: Rewind Function632186 -Node: File Checking633571 -Ref: File Checking-Footnote-1634899 -Node: Empty Files635100 -Node: Ignoring Assigns637079 -Node: Getopt Function638630 -Ref: Getopt Function-Footnote-1650090 -Node: Passwd Functions650293 -Ref: Passwd Functions-Footnote-1659144 -Node: Group Functions659232 -Ref: Group Functions-Footnote-1667135 -Node: Walking Arrays667348 -Node: Library Functions Summary668951 -Node: Library Exercises670352 -Node: Sample Programs671632 -Node: Running Examples672402 -Node: Clones673130 -Node: Cut Program674354 -Node: Egrep Program684084 -Ref: Egrep Program-Footnote-1691588 -Node: Id Program691698 -Node: Split Program695342 -Ref: Split Program-Footnote-1698788 -Node: Tee Program698916 -Node: Uniq Program701703 -Node: Wc Program709124 -Ref: Wc Program-Footnote-1713372 -Node: Miscellaneous Programs713464 -Node: Dupword Program714677 -Node: Alarm Program716708 -Node: Translate Program721512 -Ref: Translate Program-Footnote-1726076 -Node: Labels Program726346 -Ref: Labels Program-Footnote-1729695 -Node: Word Sorting729779 -Node: History Sorting733849 -Node: Extract Program735685 -Node: Simple Sed743217 -Node: Igawk Program746279 -Ref: Igawk Program-Footnote-1760605 -Ref: Igawk Program-Footnote-2760806 -Ref: Igawk Program-Footnote-3760928 -Node: Anagram Program761043 -Node: Signature Program764105 -Node: Programs Summary765352 -Node: Programs Exercises766545 -Ref: Programs Exercises-Footnote-1770676 -Node: Advanced Features770767 -Node: Nondecimal Data772715 -Node: Array Sorting774305 -Node: Controlling Array Traversal775002 -Ref: Controlling Array Traversal-Footnote-1783333 -Node: Array Sorting Functions783451 -Ref: Array Sorting Functions-Footnote-1787343 -Node: Two-way I/O787537 -Ref: Two-way I/O-Footnote-1792481 -Ref: Two-way I/O-Footnote-2792667 -Node: TCP/IP Networking792749 -Node: Profiling795621 -Node: Advanced Features Summary803174 -Node: Internationalization805107 -Node: I18N and L10N806587 -Node: Explaining gettext807273 -Ref: Explaining gettext-Footnote-1812302 -Ref: Explaining gettext-Footnote-2812486 -Node: Programmer i18n812651 -Ref: Programmer i18n-Footnote-1817517 -Node: Translator i18n817566 -Node: String Extraction818360 -Ref: String Extraction-Footnote-1819491 -Node: Printf Ordering819577 -Ref: Printf Ordering-Footnote-1822363 -Node: I18N Portability822427 -Ref: I18N Portability-Footnote-1824876 -Node: I18N Example824939 -Ref: I18N Example-Footnote-1827739 -Node: Gawk I18N827811 -Node: I18N Summary828449 -Node: Debugger829788 -Node: Debugging830810 -Node: Debugging Concepts831251 -Node: Debugging Terms833108 -Node: Awk Debugging835683 -Node: Sample Debugging Session836575 -Node: Debugger Invocation837095 -Node: Finding The Bug838479 -Node: List of Debugger Commands844954 -Node: Breakpoint Control846286 -Node: Debugger Execution Control849978 -Node: Viewing And Changing Data853342 -Node: Execution Stack856707 -Node: Debugger Info858345 -Node: Miscellaneous Debugger Commands862362 -Node: Readline Support867554 -Node: Limitations868446 -Node: Debugging Summary870543 -Node: Arbitrary Precision Arithmetic871711 -Node: Computer Arithmetic873127 -Ref: table-numeric-ranges876728 -Ref: Computer Arithmetic-Footnote-1877587 -Node: Math Definitions877644 -Ref: table-ieee-formats880931 -Ref: Math Definitions-Footnote-1881535 -Node: MPFR features881640 -Node: FP Math Caution883311 -Ref: FP Math Caution-Footnote-1884361 -Node: Inexactness of computations884730 -Node: Inexact representation885678 -Node: Comparing FP Values887033 -Node: Errors accumulate888106 -Node: Getting Accuracy889539 -Node: Try To Round892198 -Node: Setting precision893097 -Ref: table-predefined-precision-strings893781 -Node: Setting the rounding mode895575 -Ref: table-gawk-rounding-modes895939 -Ref: Setting the rounding mode-Footnote-1899393 -Node: Arbitrary Precision Integers899572 -Ref: Arbitrary Precision Integers-Footnote-1904476 -Node: POSIX Floating Point Problems904625 -Ref: POSIX Floating Point Problems-Footnote-1908501 -Node: Floating point summary908539 -Node: Dynamic Extensions910731 -Node: Extension Intro912283 -Node: Plugin License913549 -Node: Extension Mechanism Outline914346 -Ref: figure-load-extension914774 -Ref: figure-register-new-function916254 -Ref: figure-call-new-function917258 -Node: Extension API Description919244 -Node: Extension API Functions Introduction920694 -Node: General Data Types925530 -Ref: General Data Types-Footnote-1931217 -Node: Memory Allocation Functions931516 -Ref: Memory Allocation Functions-Footnote-1934346 -Node: Constructor Functions934442 -Node: Registration Functions936176 -Node: Extension Functions936861 -Node: Exit Callback Functions939157 -Node: Extension Version String940405 -Node: Input Parsers941055 -Node: Output Wrappers950870 -Node: Two-way processors955386 -Node: Printing Messages957590 -Ref: Printing Messages-Footnote-1958667 -Node: Updating `ERRNO'958819 -Node: Requesting Values959559 -Ref: table-value-types-returned960287 -Node: Accessing Parameters961245 -Node: Symbol Table Access962476 -Node: Symbol table by name962990 -Node: Symbol table by cookie964970 -Ref: Symbol table by cookie-Footnote-1969109 -Node: Cached values969172 -Ref: Cached values-Footnote-1972676 -Node: Array Manipulation972767 -Ref: Array Manipulation-Footnote-1973865 -Node: Array Data Types973904 -Ref: Array Data Types-Footnote-1976561 -Node: Array Functions976653 -Node: Flattening Arrays980507 -Node: Creating Arrays987394 -Node: Extension API Variables992161 -Node: Extension Versioning992797 -Node: Extension API Informational Variables994698 -Node: Extension API Boilerplate995786 -Node: Finding Extensions999602 -Node: Extension Example1000162 -Node: Internal File Description1000934 -Node: Internal File Ops1005001 -Ref: Internal File Ops-Footnote-11016659 -Node: Using Internal File Ops1016799 -Ref: Using Internal File Ops-Footnote-11019182 -Node: Extension Samples1019455 -Node: Extension Sample File Functions1020979 -Node: Extension Sample Fnmatch1028581 -Node: Extension Sample Fork1030063 -Node: Extension Sample Inplace1031276 -Node: Extension Sample Ord1032951 -Node: Extension Sample Readdir1033787 -Ref: table-readdir-file-types1034643 -Node: Extension Sample Revout1035454 -Node: Extension Sample Rev2way1036045 -Node: Extension Sample Read write array1036786 -Node: Extension Sample Readfile1038725 -Node: Extension Sample Time1039820 -Node: Extension Sample API Tests1041169 -Node: gawkextlib1041660 -Node: Extension summary1044310 -Node: Extension Exercises1047992 -Node: Language History1048714 -Node: V7/SVR3.11050371 -Node: SVR41052552 -Node: POSIX1053997 -Node: BTL1055386 -Node: POSIX/GNU1056120 -Node: Feature History1061749 -Node: Common Extensions1074840 -Node: Ranges and Locales1076164 -Ref: Ranges and Locales-Footnote-11080803 -Ref: Ranges and Locales-Footnote-21080830 -Ref: Ranges and Locales-Footnote-31081064 -Node: Contributors1081285 -Node: History summary1086825 -Node: Installation1088194 -Node: Gawk Distribution1089150 -Node: Getting1089634 -Node: Extracting1090458 -Node: Distribution contents1092100 -Node: Unix Installation1097870 -Node: Quick Installation1098487 -Node: Additional Configuration Options1100918 -Node: Configuration Philosophy1102658 -Node: Non-Unix Installation1105009 -Node: PC Installation1105467 -Node: PC Binary Installation1106793 -Node: PC Compiling1108641 -Ref: PC Compiling-Footnote-11111662 -Node: PC Testing1111767 -Node: PC Using1112943 -Node: Cygwin1117058 -Node: MSYS1117881 -Node: VMS Installation1118379 -Node: VMS Compilation1119171 -Ref: VMS Compilation-Footnote-11120393 -Node: VMS Dynamic Extensions1120451 -Node: VMS Installation Details1122135 -Node: VMS Running1124387 -Node: VMS GNV1127228 -Node: VMS Old Gawk1127957 -Node: Bugs1128427 -Node: Other Versions1132397 -Node: Installation summary1138610 -Node: Notes1139666 -Node: Compatibility Mode1140531 -Node: Additions1141313 -Node: Accessing The Source1142238 -Node: Adding Code1143674 -Node: New Ports1149846 -Node: Derived Files1154328 -Ref: Derived Files-Footnote-11159803 -Ref: Derived Files-Footnote-21159837 -Ref: Derived Files-Footnote-31160433 -Node: Future Extensions1160547 -Node: Implementation Limitations1161153 -Node: Extension Design1162401 -Node: Old Extension Problems1163555 -Ref: Old Extension Problems-Footnote-11165072 -Node: Extension New Mechanism Goals1165129 -Ref: Extension New Mechanism Goals-Footnote-11168489 -Node: Extension Other Design Decisions1168678 -Node: Extension Future Growth1170786 -Node: Old Extension Mechanism1171622 -Node: Notes summary1173384 -Node: Basic Concepts1174570 -Node: Basic High Level1175251 -Ref: figure-general-flow1175523 -Ref: figure-process-flow1176122 -Ref: Basic High Level-Footnote-11179351 -Node: Basic Data Typing1179536 -Node: Glossary1182864 -Node: Copying1208022 -Node: GNU Free Documentation License1245578 -Node: Index1270714 +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-1129409 +Node: Other Arguments129434 +Node: Naming Standard Input132395 +Node: Environment Variables133488 +Node: AWKPATH Variable134046 +Ref: AWKPATH Variable-Footnote-1136898 +Ref: AWKPATH Variable-Footnote-2136943 +Node: AWKLIBPATH Variable137203 +Node: Other Environment Variables137962 +Node: Exit Status141435 +Node: Include Files142110 +Node: Loading Shared Libraries145688 +Node: Obsolete147115 +Node: Undocumented147812 +Node: Invoking Summary148079 +Node: Regexp149745 +Node: Regexp Usage151204 +Node: Escape Sequences153237 +Node: Regexp Operators159337 +Ref: Regexp Operators-Footnote-1166771 +Ref: Regexp Operators-Footnote-2166918 +Node: Bracket Expressions167016 +Ref: table-char-classes169033 +Node: Leftmost Longest171973 +Node: Computed Regexps173275 +Node: GNU Regexp Operators176672 +Node: Case-sensitivity180374 +Ref: Case-sensitivity-Footnote-1183264 +Ref: Case-sensitivity-Footnote-2183499 +Node: Regexp Summary183607 +Node: Reading Files185076 +Node: Records187170 +Node: awk split records187902 +Node: gawk split records192816 +Ref: gawk split records-Footnote-1197355 +Node: Fields197392 +Ref: Fields-Footnote-1200190 +Node: Nonconstant Fields200276 +Ref: Nonconstant Fields-Footnote-1202512 +Node: Changing Fields202714 +Node: Field Separators208646 +Node: Default Field Splitting211350 +Node: Regexp Field Splitting212467 +Node: Single Character Fields215817 +Node: Command Line Field Separator216876 +Node: Full Line Fields220088 +Ref: Full Line Fields-Footnote-1220596 +Node: Field Splitting Summary220642 +Ref: Field Splitting Summary-Footnote-1223773 +Node: Constant Size223874 +Node: Splitting By Content228480 +Ref: Splitting By Content-Footnote-1232553 +Node: Multiple Line232593 +Ref: Multiple Line-Footnote-1238482 +Node: Getline238661 +Node: Plain Getline240872 +Node: Getline/Variable243512 +Node: Getline/File244659 +Node: Getline/Variable/File246043 +Ref: Getline/Variable/File-Footnote-1247644 +Node: Getline/Pipe247731 +Node: Getline/Variable/Pipe250414 +Node: Getline/Coprocess251545 +Node: Getline/Variable/Coprocess252797 +Node: Getline Notes253536 +Node: Getline Summary256328 +Ref: table-getline-variants256740 +Node: Read Timeout257569 +Ref: Read Timeout-Footnote-1261383 +Node: Command-line directories261441 +Node: Input Summary262345 +Node: Input Exercises265597 +Node: Printing266325 +Node: Print268102 +Node: Print Examples269559 +Node: Output Separators272338 +Node: OFMT274356 +Node: Printf275710 +Node: Basic Printf276495 +Node: Control Letters278066 +Node: Format Modifiers282050 +Node: Printf Examples288057 +Node: Redirection290539 +Node: Special FD297378 +Ref: Special FD-Footnote-1300535 +Node: Special Files300609 +Node: Other Inherited Files301225 +Node: Special Network302225 +Node: Special Caveats303086 +Node: Close Files And Pipes304037 +Ref: Close Files And Pipes-Footnote-1311216 +Ref: Close Files And Pipes-Footnote-2311364 +Node: Output Summary311514 +Node: Output Exercises312510 +Node: Expressions313190 +Node: Values314375 +Node: Constants315051 +Node: Scalar Constants315731 +Ref: Scalar Constants-Footnote-1316590 +Node: Nondecimal-numbers316840 +Node: Regexp Constants319840 +Node: Using Constant Regexps320365 +Node: Variables323503 +Node: Using Variables324158 +Node: Assignment Options326068 +Node: Conversion327943 +Node: Strings And Numbers328467 +Ref: Strings And Numbers-Footnote-1331531 +Node: Locale influences conversions331640 +Ref: table-locale-affects334385 +Node: All Operators334973 +Node: Arithmetic Ops335603 +Node: Concatenation338108 +Ref: Concatenation-Footnote-1340927 +Node: Assignment Ops341033 +Ref: table-assign-ops346016 +Node: Increment Ops347294 +Node: Truth Values and Conditions350732 +Node: Truth Values351815 +Node: Typing and Comparison352864 +Node: Variable Typing353657 +Node: Comparison Operators357309 +Ref: table-relational-ops357719 +Node: POSIX String Comparison361234 +Ref: POSIX String Comparison-Footnote-1362306 +Node: Boolean Ops362444 +Ref: Boolean Ops-Footnote-1366923 +Node: Conditional Exp367014 +Node: Function Calls368741 +Node: Precedence372621 +Node: Locales376289 +Node: Expressions Summary377920 +Node: Patterns and Actions380494 +Node: Pattern Overview381614 +Node: Regexp Patterns383293 +Node: Expression Patterns383836 +Node: Ranges387616 +Node: BEGIN/END390722 +Node: Using BEGIN/END391484 +Ref: Using BEGIN/END-Footnote-1394221 +Node: I/O And BEGIN/END394327 +Node: BEGINFILE/ENDFILE396641 +Node: Empty399542 +Node: Using Shell Variables399859 +Node: Action Overview402135 +Node: Statements404462 +Node: If Statement406310 +Node: While Statement407808 +Node: Do Statement409836 +Node: For Statement410978 +Node: Switch Statement414133 +Node: Break Statement416521 +Node: Continue Statement418562 +Node: Next Statement420387 +Node: Nextfile Statement422767 +Node: Exit Statement425397 +Node: Built-in Variables427800 +Node: User-modified428933 +Ref: User-modified-Footnote-1436613 +Node: Auto-set436675 +Ref: Auto-set-Footnote-1449869 +Ref: Auto-set-Footnote-2450074 +Node: ARGC and ARGV450130 +Node: Pattern Action Summary454334 +Node: Arrays456761 +Node: Array Basics458090 +Node: Array Intro458934 +Ref: figure-array-elements460898 +Ref: Array Intro-Footnote-1463422 +Node: Reference to Elements463550 +Node: Assigning Elements466000 +Node: Array Example466491 +Node: Scanning an Array468249 +Node: Controlling Scanning471265 +Ref: Controlling Scanning-Footnote-1476454 +Node: Numeric Array Subscripts476770 +Node: Uninitialized Subscripts478955 +Node: Delete480572 +Ref: Delete-Footnote-1483316 +Node: Multidimensional483373 +Node: Multiscanning486468 +Node: Arrays of Arrays488057 +Node: Arrays Summary492818 +Node: Functions494923 +Node: Built-in495796 +Node: Calling Built-in496874 +Node: Numeric Functions498862 +Ref: Numeric Functions-Footnote-1503686 +Ref: Numeric Functions-Footnote-2504043 +Ref: Numeric Functions-Footnote-3504091 +Node: String Functions504360 +Ref: String Functions-Footnote-1527832 +Ref: String Functions-Footnote-2527961 +Ref: String Functions-Footnote-3528209 +Node: Gory Details528296 +Ref: table-sub-escapes530077 +Ref: table-sub-proposed531597 +Ref: table-posix-sub532961 +Ref: table-gensub-escapes534501 +Ref: Gory Details-Footnote-1535333 +Node: I/O Functions535484 +Ref: I/O Functions-Footnote-1542585 +Node: Time Functions542732 +Ref: Time Functions-Footnote-1553201 +Ref: Time Functions-Footnote-2553269 +Ref: Time Functions-Footnote-3553427 +Ref: Time Functions-Footnote-4553538 +Ref: Time Functions-Footnote-5553650 +Ref: Time Functions-Footnote-6553877 +Node: Bitwise Functions554143 +Ref: table-bitwise-ops554705 +Ref: Bitwise Functions-Footnote-1559013 +Node: Type Functions559182 +Node: I18N Functions560331 +Node: User-defined561976 +Node: Definition Syntax562780 +Ref: Definition Syntax-Footnote-1568186 +Node: Function Example568255 +Ref: Function Example-Footnote-1571172 +Node: Function Caveats571194 +Node: Calling A Function571712 +Node: Variable Scope572667 +Node: Pass By Value/Reference575655 +Node: Return Statement579165 +Node: Dynamic Typing582149 +Node: Indirect Calls583078 +Ref: Indirect Calls-Footnote-1594382 +Node: Functions Summary594510 +Node: Library Functions597209 +Ref: Library Functions-Footnote-1600827 +Ref: Library Functions-Footnote-2600970 +Node: Library Names601141 +Ref: Library Names-Footnote-1604601 +Ref: Library Names-Footnote-2604821 +Node: General Functions604907 +Node: Strtonum Function606010 +Node: Assert Function609030 +Node: Round Function612354 +Node: Cliff Random Function613895 +Node: Ordinal Functions614911 +Ref: Ordinal Functions-Footnote-1617976 +Ref: Ordinal Functions-Footnote-2618228 +Node: Join Function618439 +Ref: Join Function-Footnote-1620210 +Node: Getlocaltime Function620410 +Node: Readfile Function624151 +Node: Shell Quoting626121 +Node: Data File Management627522 +Node: Filetrans Function628154 +Node: Rewind Function632213 +Node: File Checking633598 +Ref: File Checking-Footnote-1634926 +Node: Empty Files635127 +Node: Ignoring Assigns637106 +Node: Getopt Function638657 +Ref: Getopt Function-Footnote-1650117 +Node: Passwd Functions650320 +Ref: Passwd Functions-Footnote-1659171 +Node: Group Functions659259 +Ref: Group Functions-Footnote-1667162 +Node: Walking Arrays667375 +Node: Library Functions Summary668978 +Node: Library Exercises670379 +Node: Sample Programs671659 +Node: Running Examples672429 +Node: Clones673157 +Node: Cut Program674381 +Node: Egrep Program684111 +Ref: Egrep Program-Footnote-1691615 +Node: Id Program691725 +Node: Split Program695369 +Ref: Split Program-Footnote-1698815 +Node: Tee Program698943 +Node: Uniq Program701730 +Node: Wc Program709151 +Ref: Wc Program-Footnote-1713399 +Node: Miscellaneous Programs713491 +Node: Dupword Program714704 +Node: Alarm Program716735 +Node: Translate Program721539 +Ref: Translate Program-Footnote-1726103 +Node: Labels Program726373 +Ref: Labels Program-Footnote-1729722 +Node: Word Sorting729806 +Node: History Sorting733876 +Node: Extract Program735712 +Node: Simple Sed743244 +Node: Igawk Program746306 +Ref: Igawk Program-Footnote-1760632 +Ref: Igawk Program-Footnote-2760833 +Ref: Igawk Program-Footnote-3760955 +Node: Anagram Program761070 +Node: Signature Program764132 +Node: Programs Summary765379 +Node: Programs Exercises766572 +Ref: Programs Exercises-Footnote-1770703 +Node: Advanced Features770794 +Node: Nondecimal Data772742 +Node: Array Sorting774332 +Node: Controlling Array Traversal775029 +Ref: Controlling Array Traversal-Footnote-1783360 +Node: Array Sorting Functions783478 +Ref: Array Sorting Functions-Footnote-1787370 +Node: Two-way I/O787564 +Ref: Two-way I/O-Footnote-1792508 +Ref: Two-way I/O-Footnote-2792694 +Node: TCP/IP Networking792776 +Node: Profiling795648 +Node: Advanced Features Summary803201 +Node: Internationalization805134 +Node: I18N and L10N806614 +Node: Explaining gettext807300 +Ref: Explaining gettext-Footnote-1812329 +Ref: Explaining gettext-Footnote-2812513 +Node: Programmer i18n812678 +Ref: Programmer i18n-Footnote-1817544 +Node: Translator i18n817593 +Node: String Extraction818387 +Ref: String Extraction-Footnote-1819518 +Node: Printf Ordering819604 +Ref: Printf Ordering-Footnote-1822390 +Node: I18N Portability822454 +Ref: I18N Portability-Footnote-1824903 +Node: I18N Example824966 +Ref: I18N Example-Footnote-1827766 +Node: Gawk I18N827838 +Node: I18N Summary828476 +Node: Debugger829815 +Node: Debugging830837 +Node: Debugging Concepts831278 +Node: Debugging Terms833135 +Node: Awk Debugging835710 +Node: Sample Debugging Session836602 +Node: Debugger Invocation837122 +Node: Finding The Bug838506 +Node: List of Debugger Commands844981 +Node: Breakpoint Control846313 +Node: Debugger Execution Control850005 +Node: Viewing And Changing Data853369 +Node: Execution Stack856734 +Node: Debugger Info858372 +Node: Miscellaneous Debugger Commands862389 +Node: Readline Support867581 +Node: Limitations868473 +Node: Debugging Summary870570 +Node: Arbitrary Precision Arithmetic871738 +Node: Computer Arithmetic873154 +Ref: table-numeric-ranges876755 +Ref: Computer Arithmetic-Footnote-1877614 +Node: Math Definitions877671 +Ref: table-ieee-formats880958 +Ref: Math Definitions-Footnote-1881562 +Node: MPFR features881667 +Node: FP Math Caution883338 +Ref: FP Math Caution-Footnote-1884388 +Node: Inexactness of computations884757 +Node: Inexact representation885705 +Node: Comparing FP Values887060 +Node: Errors accumulate888133 +Node: Getting Accuracy889566 +Node: Try To Round892225 +Node: Setting precision893124 +Ref: table-predefined-precision-strings893808 +Node: Setting the rounding mode895602 +Ref: table-gawk-rounding-modes895966 +Ref: Setting the rounding mode-Footnote-1899420 +Node: Arbitrary Precision Integers899599 +Ref: Arbitrary Precision Integers-Footnote-1904503 +Node: POSIX Floating Point Problems904652 +Ref: POSIX Floating Point Problems-Footnote-1908528 +Node: Floating point summary908566 +Node: Dynamic Extensions910758 +Node: Extension Intro912310 +Node: Plugin License913576 +Node: Extension Mechanism Outline914373 +Ref: figure-load-extension914801 +Ref: figure-register-new-function916281 +Ref: figure-call-new-function917285 +Node: Extension API Description919271 +Node: Extension API Functions Introduction920721 +Node: General Data Types925557 +Ref: General Data Types-Footnote-1931244 +Node: Memory Allocation Functions931543 +Ref: Memory Allocation Functions-Footnote-1934373 +Node: Constructor Functions934469 +Node: Registration Functions936203 +Node: Extension Functions936888 +Node: Exit Callback Functions939184 +Node: Extension Version String940432 +Node: Input Parsers941082 +Node: Output Wrappers950897 +Node: Two-way processors955413 +Node: Printing Messages957617 +Ref: Printing Messages-Footnote-1958694 +Node: Updating `ERRNO'958846 +Node: Requesting Values959586 +Ref: table-value-types-returned960314 +Node: Accessing Parameters961272 +Node: Symbol Table Access962503 +Node: Symbol table by name963017 +Node: Symbol table by cookie964997 +Ref: Symbol table by cookie-Footnote-1969136 +Node: Cached values969199 +Ref: Cached values-Footnote-1972703 +Node: Array Manipulation972794 +Ref: Array Manipulation-Footnote-1973892 +Node: Array Data Types973931 +Ref: Array Data Types-Footnote-1976588 +Node: Array Functions976680 +Node: Flattening Arrays980534 +Node: Creating Arrays987421 +Node: Extension API Variables992188 +Node: Extension Versioning992824 +Node: Extension API Informational Variables994725 +Node: Extension API Boilerplate995813 +Node: Finding Extensions999629 +Node: Extension Example1000189 +Node: Internal File Description1000961 +Node: Internal File Ops1005028 +Ref: Internal File Ops-Footnote-11016686 +Node: Using Internal File Ops1016826 +Ref: Using Internal File Ops-Footnote-11019209 +Node: Extension Samples1019482 +Node: Extension Sample File Functions1021006 +Node: Extension Sample Fnmatch1028608 +Node: Extension Sample Fork1030090 +Node: Extension Sample Inplace1031303 +Node: Extension Sample Ord1032978 +Node: Extension Sample Readdir1033814 +Ref: table-readdir-file-types1034670 +Node: Extension Sample Revout1035481 +Node: Extension Sample Rev2way1036072 +Node: Extension Sample Read write array1036813 +Node: Extension Sample Readfile1038752 +Node: Extension Sample Time1039847 +Node: Extension Sample API Tests1041196 +Node: gawkextlib1041687 +Node: Extension summary1044337 +Node: Extension Exercises1048019 +Node: Language History1048741 +Node: V7/SVR3.11050398 +Node: SVR41052579 +Node: POSIX1054024 +Node: BTL1055413 +Node: POSIX/GNU1056147 +Node: Feature History1061776 +Node: Common Extensions1074867 +Node: Ranges and Locales1076191 +Ref: Ranges and Locales-Footnote-11080830 +Ref: Ranges and Locales-Footnote-21080857 +Ref: Ranges and Locales-Footnote-31081091 +Node: Contributors1081312 +Node: History summary1086852 +Node: Installation1088221 +Node: Gawk Distribution1089177 +Node: Getting1089661 +Node: Extracting1090485 +Node: Distribution contents1092127 +Node: Unix Installation1097897 +Node: Quick Installation1098514 +Node: Additional Configuration Options1100945 +Node: Configuration Philosophy1102685 +Node: Non-Unix Installation1105036 +Node: PC Installation1105494 +Node: PC Binary Installation1106820 +Node: PC Compiling1108668 +Ref: PC Compiling-Footnote-11111689 +Node: PC Testing1111794 +Node: PC Using1112970 +Node: Cygwin1117085 +Node: MSYS1117908 +Node: VMS Installation1118406 +Node: VMS Compilation1119198 +Ref: VMS Compilation-Footnote-11120420 +Node: VMS Dynamic Extensions1120478 +Node: VMS Installation Details1122162 +Node: VMS Running1124414 +Node: VMS GNV1127255 +Node: VMS Old Gawk1127989 +Node: Bugs1128459 +Node: Other Versions1132429 +Node: Installation summary1138642 +Node: Notes1139698 +Node: Compatibility Mode1140563 +Node: Additions1141345 +Node: Accessing The Source1142270 +Node: Adding Code1143706 +Node: New Ports1149878 +Node: Derived Files1154360 +Ref: Derived Files-Footnote-11159835 +Ref: Derived Files-Footnote-21159869 +Ref: Derived Files-Footnote-31160465 +Node: Future Extensions1160579 +Node: Implementation Limitations1161185 +Node: Extension Design1162433 +Node: Old Extension Problems1163587 +Ref: Old Extension Problems-Footnote-11165104 +Node: Extension New Mechanism Goals1165161 +Ref: Extension New Mechanism Goals-Footnote-11168521 +Node: Extension Other Design Decisions1168710 +Node: Extension Future Growth1170818 +Node: Old Extension Mechanism1171654 +Node: Notes summary1173416 +Node: Basic Concepts1174602 +Node: Basic High Level1175283 +Ref: figure-general-flow1175555 +Ref: figure-process-flow1176154 +Ref: Basic High Level-Footnote-11179383 +Node: Basic Data Typing1179568 +Node: Glossary1182896 +Node: Copying1208054 +Node: GNU Free Documentation License1245610 +Node: Index1270746 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 5b8cea20..5b3fc927 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 @@ -5967,7 +5975,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. @@ -6683,7 +6691,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. @@ -11027,7 +11035,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 @@ -15389,7 +15397,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, @@ -17183,7 +17191,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} @@ -25736,7 +25744,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 @@ -35133,7 +35141,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}()}. @@ -35184,7 +35192,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 @@ -38143,8 +38151,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 0ff06880..86655116 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 @@ -5751,7 +5759,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. @@ -6410,7 +6418,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. @@ -10467,7 +10475,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 @@ -14673,7 +14681,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, @@ -16467,7 +16475,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} @@ -24830,7 +24838,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 @@ -34243,7 +34251,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}()}. @@ -34294,7 +34302,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 @@ -37253,8 +37261,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/test/ChangeLog b/test/ChangeLog index 96ba6ad2..3c4a386f 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2014-10-05 Arnold D. Robbins <arnold@skeeve.com> + + * profile2.ok, profile3.ok, profile4.ok, profile5.ok: + Adjusted after minor code change. Again. + 2014-10-04 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (genpot): New test. |