diff options
-rw-r--r-- | doc/ChangeLog | 6 | ||||
-rw-r--r-- | doc/gawk.info | 1121 | ||||
-rw-r--r-- | doc/gawk.texi | 18 | ||||
-rw-r--r-- | doc/gawktexi.in | 18 |
4 files changed, 602 insertions, 561 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index be3dead2..298ebbcf 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,9 @@ +2014-06-19 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Add thanks to Patrice Dumas and to Karl Berry. + Per request from Hermann Peifer, try to clarify how local variables + in functions are initialized. + 2014-06-18 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Split 6.1.4 into subsections. Other minor fixes. diff --git a/doc/gawk.info b/doc/gawk.info index cf5c6036..95d81e89 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -1306,6 +1306,10 @@ be a pleasure working with this team of fine people. Notable code and documentation contributions were made by a number of people. *Note Contributors::, for the full list. + Thanks to Patrice Dumas for the new `makeinfo' program. Thanks to +Karl Berry who continues to work to keep the Texinfo markup language +sane. + I would like to thank Brian Kernighan for invaluable assistance during the testing and debugging of `gawk', and for ongoing help and advice in clarifying numerous points about the language. We could not @@ -8546,8 +8550,9 @@ the number of which to take the square root: If those arguments are not supplied, the functions use a reasonable default value. *Note Built-in::, for full details. If arguments are omitted in calls to user-defined functions, then those arguments are -treated as local variables and initialized to the empty string (*note -User-defined::). +treated as local variables. Such local variables act like the empty +string if referenced where a string value is required, and like zero if +referenced where a numeric value is required (*note User-defined::). As an advanced feature, `gawk' provides indirect function calls, which is a way to choose the function to call at runtime, instead of @@ -13247,15 +13252,21 @@ function. PARAMETER-LIST is an optional list of the function's arguments and local variable names, separated by commas. When the function is called, the argument names are used to hold the argument values given in the -call. The local variables are initialized to the empty string. A -function cannot have two parameters with the same name, nor may it have -a parameter with the same name as the function itself. +call. - In addition, according to the POSIX standard, function parameters -cannot have the same name as one of the special built-in variables -(*note Built-in Variables::). Not all versions of `awk' enforce this + A function cannot have two parameters with the same name, nor may it +have a parameter with the same name as the function itself. In +addition, according to the POSIX standard, function parameters cannot +have the same name as one of the special built-in variables (*note +Built-in Variables::). Not all versions of `awk' enforce this restriction.) + Local variables act like the empty string if referenced where a +string value is required, and like zero if referenced where a numeric +value is required. This is the same as regular variables that have +never been assigned a value. (There is more to understand about local +variables; *note Dynamic Typing::.) + The BODY-OF-FUNCTION consists of `awk' statements. It is the most important part of the definition, because it says what the function should actually _do_. The argument names exist to give the body a way @@ -31632,7 +31643,7 @@ Index * common extensions, \x escape sequence: Escape Sequences. (line 61) * common extensions, BINMODE variable: PC Using. (line 33) * common extensions, delete to delete entire arrays: Delete. (line 39) -* common extensions, func keyword: Definition Syntax. (line 83) +* common extensions, func keyword: Definition Syntax. (line 89) * common extensions, length() applied to an array: String Functions. (line 197) * common extensions, RS as a regexp: gawk split records. (line 6) @@ -32151,7 +32162,7 @@ Index * extensions, common, BINMODE variable: PC Using. (line 33) * extensions, common, delete to delete entire arrays: Delete. (line 39) * extensions, common, fflush() function: I/O Functions. (line 43) -* extensions, common, func keyword: Definition Syntax. (line 83) +* extensions, common, func keyword: Definition Syntax. (line 89) * extensions, common, length() applied to an array: String Functions. (line 197) * extensions, common, RS as a regexp: gawk split records. (line 6) @@ -32366,7 +32377,7 @@ Index (line 6) * functions, names of <1>: Definition Syntax. (line 20) * functions, names of: Arrays. (line 18) -* functions, recursive: Definition Syntax. (line 73) +* functions, recursive: Definition Syntax. (line 79) * functions, string-translation: I18N Functions. (line 6) * functions, undefined: Pass By Value/Reference. (line 71) @@ -32378,7 +32389,7 @@ Index (line 47) * functions, user-defined, next/nextfile statements and: Next Statement. (line 45) -* G-d: Acknowledgments. (line 78) +* G-d: Acknowledgments. (line 82) * Garfinkle, Scott: Contributors. (line 34) * gawk program, dynamic profiling: Profiling. (line 179) * gawk version: Auto-set. (line 199) @@ -32704,7 +32715,7 @@ Index * Kernighan, Brian <6>: Library Functions. (line 12) * Kernighan, Brian <7>: Concatenation. (line 6) * Kernighan, Brian <8>: Getline/Pipe. (line 6) -* Kernighan, Brian <9>: Acknowledgments. (line 72) +* Kernighan, Brian <9>: Acknowledgments. (line 76) * Kernighan, Brian <10>: Conventions. (line 34) * Kernighan, Brian: History. (line 17) * kill command, dynamic profiling: Profiling. (line 188) @@ -33089,7 +33100,7 @@ Index (line 65) * portability, deleting array elements: Delete. (line 56) * portability, example programs: Library Functions. (line 42) -* portability, functions, defining: Definition Syntax. (line 99) +* portability, functions, defining: Definition Syntax. (line 105) * portability, gawk: New Ports. (line 6) * portability, gettext library and: Explaining gettext. (line 11) * portability, internationalization and: I18N Portability. (line 6) @@ -33135,7 +33146,7 @@ Index (line 40) * POSIX awk, field separators and: Fields. (line 6) * POSIX awk, FS variable and: User-modified. (line 60) -* POSIX awk, function keyword in: Definition Syntax. (line 83) +* POSIX awk, function keyword in: Definition Syntax. (line 89) * POSIX awk, functions and, gsub()/sub(): Gory Details. (line 54) * POSIX awk, functions and, length(): String Functions. (line 176) * POSIX awk, GNU long options and: Options. (line 15) @@ -33225,7 +33236,7 @@ Index * programming conventions, functions, calling: Calling Built-in. (line 10) * programming conventions, functions, writing: Definition Syntax. - (line 55) + (line 61) * programming conventions, gawk extensions: Internal File Ops. (line 45) * programming conventions, private variable names: Library Names. @@ -33295,7 +33306,7 @@ Index * records, splitting input into: Records. (line 6) * records, terminating: awk split records. (line 124) * records, treating files as: gawk split records. (line 92) -* recursive functions: Definition Syntax. (line 73) +* recursive functions: Definition Syntax. (line 79) * redirect gawk output, in debugger: Debugger Info. (line 72) * redirection of input: Getline/File. (line 6) * redirection of output: Redirection. (line 6) @@ -33385,11 +33396,11 @@ Index * Robbins, Arnold: Command Line Field Separator. (line 73) * Robbins, Bill: Getline/Pipe. (line 39) -* Robbins, Harry: Acknowledgments. (line 78) -* Robbins, Jean: Acknowledgments. (line 78) +* Robbins, Harry: Acknowledgments. (line 82) +* Robbins, Jean: Acknowledgments. (line 82) * Robbins, Miriam <1>: Passwd Functions. (line 90) * Robbins, Miriam <2>: Getline/Pipe. (line 39) -* Robbins, Miriam: Acknowledgments. (line 78) +* Robbins, Miriam: Acknowledgments. (line 82) * Rommel, Kai Uwe: Contributors. (line 42) * round to nearest integer: Numeric Functions. (line 23) * round() user-defined function: Round Function. (line 16) @@ -33465,7 +33476,7 @@ Index * set directory of message catalogs: I18N Functions. (line 12) * set watchpoint: Viewing And Changing Data. (line 67) -* shadowing of variable values: Definition Syntax. (line 61) +* shadowing of variable values: Definition Syntax. (line 67) * shell quoting, double quote: Read Terminal. (line 25) * shell quoting, rules for: Quoting. (line 6) * shells, piping commands into: Redirection. (line 142) @@ -33498,7 +33509,7 @@ Index * side effects, conditional expressions: Conditional Exp. (line 22) * side effects, decrement/increment operators: Increment Ops. (line 11) * side effects, FILENAME variable: Getline Notes. (line 19) -* side effects, function calls: Function Calls. (line 56) +* side effects, function calls: Function Calls. (line 57) * side effects, statements: Action Overview. (line 32) * sidebar, A Constant's Base Does Not Affect Its Value: Nondecimal-numbers. (line 64) @@ -33842,7 +33853,7 @@ Index * variables, names of: Arrays. (line 18) * variables, private: Library Names. (line 11) * variables, setting: Options. (line 32) -* variables, shadowing: Definition Syntax. (line 61) +* variables, shadowing: Definition Syntax. (line 67) * variables, types of: Assignment Ops. (line 40) * variables, types of, comparison expressions and: Typing and Comparison. (line 9) @@ -33954,537 +33965,537 @@ Ref: Manual History-Footnote-165250 Ref: Manual History-Footnote-265291 Node: How To Contribute65365 Node: Acknowledgments66604 -Node: Getting Started70753 -Node: Running gawk73187 -Node: One-shot74377 -Node: Read Terminal75602 -Ref: Read Terminal-Footnote-177252 -Ref: Read Terminal-Footnote-277528 -Node: Long77699 -Node: Executable Scripts79075 -Ref: Executable Scripts-Footnote-180908 -Ref: Executable Scripts-Footnote-281010 -Node: Comments81557 -Node: Quoting84030 -Node: DOS Quoting89346 -Node: Sample Data Files90021 -Node: Very Simple92536 -Node: Two Rules97174 -Node: More Complex99068 -Ref: More Complex-Footnote-1102000 -Node: Statements/Lines102085 -Ref: Statements/Lines-Footnote-1106540 -Node: Other Features106805 -Node: When107733 -Node: Intro Summary109903 -Node: Invoking Gawk110669 -Node: Command Line112184 -Node: Options112975 -Ref: Options-Footnote-1128804 -Node: Other Arguments128829 -Node: Naming Standard Input131491 -Node: Environment Variables132585 -Node: AWKPATH Variable133143 -Ref: AWKPATH Variable-Footnote-1136015 -Ref: AWKPATH Variable-Footnote-2136060 -Node: AWKLIBPATH Variable136320 -Node: Other Environment Variables137079 -Node: Exit Status140734 -Node: Include Files141409 -Node: Loading Shared Libraries144987 -Node: Obsolete146371 -Node: Undocumented147068 -Node: Invoking Summary147335 -Node: Regexp148915 -Node: Regexp Usage150365 -Node: Escape Sequences152398 -Node: Regexp Operators158065 -Ref: Regexp Operators-Footnote-1165545 -Ref: Regexp Operators-Footnote-2165692 -Node: Bracket Expressions165790 -Ref: table-char-classes167680 -Node: GNU Regexp Operators170203 -Node: Case-sensitivity173926 -Ref: Case-sensitivity-Footnote-1176818 -Ref: Case-sensitivity-Footnote-2177053 -Node: Leftmost Longest177161 -Node: Computed Regexps178362 -Node: Regexp Summary181734 -Node: Reading Files183205 -Node: Records185297 -Node: awk split records186040 -Node: gawk split records190898 -Ref: gawk split records-Footnote-1195419 -Node: Fields195456 -Ref: Fields-Footnote-1198420 -Node: Nonconstant Fields198506 -Ref: Nonconstant Fields-Footnote-1200736 -Node: Changing Fields200938 -Node: Field Separators206892 -Node: Default Field Splitting209594 -Node: Regexp Field Splitting210711 -Node: Single Character Fields214052 -Node: Command Line Field Separator215111 -Node: Full Line Fields218453 -Ref: Full Line Fields-Footnote-1218961 -Node: Field Splitting Summary219007 -Ref: Field Splitting Summary-Footnote-1222106 -Node: Constant Size222207 -Node: Splitting By Content226814 -Ref: Splitting By Content-Footnote-1230564 -Node: Multiple Line230604 -Ref: Multiple Line-Footnote-1236460 -Node: Getline236639 -Node: Plain Getline238855 -Node: Getline/Variable240950 -Node: Getline/File242097 -Node: Getline/Variable/File243481 -Ref: Getline/Variable/File-Footnote-1245080 -Node: Getline/Pipe245167 -Node: Getline/Variable/Pipe247866 -Node: Getline/Coprocess248973 -Node: Getline/Variable/Coprocess250225 -Node: Getline Notes250962 -Node: Getline Summary253766 -Ref: table-getline-variants254174 -Node: Read Timeout255086 -Ref: Read Timeout-Footnote-1258913 -Node: Command line directories258971 -Node: Input Summary259875 -Node: Input Exercises263012 -Node: Printing263745 -Node: Print265467 -Node: Print Examples266808 -Node: Output Separators269587 -Node: OFMT271603 -Node: Printf272961 -Node: Basic Printf273867 -Node: Control Letters275406 -Node: Format Modifiers279258 -Node: Printf Examples285285 -Node: Redirection287749 -Node: Special Files294721 -Node: Special FD295252 -Ref: Special FD-Footnote-1298876 -Node: Special Network298950 -Node: Special Caveats299800 -Node: Close Files And Pipes300596 -Ref: Close Files And Pipes-Footnote-1307757 -Ref: Close Files And Pipes-Footnote-2307905 -Node: Output Summary308055 -Node: Output exercises309052 -Node: Expressions309732 -Node: Values310917 -Node: Constants311593 -Node: Scalar Constants312273 -Ref: Scalar Constants-Footnote-1313132 -Node: Nondecimal-numbers313382 -Node: Regexp Constants316382 -Node: Using Constant Regexps316857 -Node: Variables319927 -Node: Using Variables320582 -Node: Assignment Options322306 -Node: Conversion324181 -Node: Strings And Numbers324705 -Ref: Strings And Numbers-Footnote-1327767 -Node: Locale influences conversions327876 -Ref: table-locale-affects330593 -Node: All Operators331181 -Node: Arithmetic Ops331811 -Node: Concatenation334316 -Ref: Concatenation-Footnote-1337112 -Node: Assignment Ops337232 -Ref: table-assign-ops342215 -Node: Increment Ops343532 -Node: Truth Values and Conditions346970 -Node: Truth Values348053 -Node: Typing and Comparison349102 -Node: Variable Typing349895 -Ref: Variable Typing-Footnote-1353795 -Node: Comparison Operators353917 -Ref: table-relational-ops354327 -Node: POSIX String Comparison357877 -Ref: POSIX String Comparison-Footnote-1358961 -Node: Boolean Ops359099 -Ref: Boolean Ops-Footnote-1363169 -Node: Conditional Exp363260 -Node: Function Calls364987 -Node: Precedence368745 -Node: Locales372414 -Node: Expressions Summary374045 -Node: Patterns and Actions376586 -Node: Pattern Overview377702 -Node: Regexp Patterns379379 -Node: Expression Patterns379922 -Node: Ranges383703 -Node: BEGIN/END386809 -Node: Using BEGIN/END387571 -Ref: Using BEGIN/END-Footnote-1390307 -Node: I/O And BEGIN/END390413 -Node: BEGINFILE/ENDFILE392698 -Node: Empty395629 -Node: Using Shell Variables395946 -Node: Action Overview398229 -Node: Statements400556 -Node: If Statement402404 -Node: While Statement403902 -Node: Do Statement405946 -Node: For Statement407102 -Node: Switch Statement410254 -Node: Break Statement412357 -Node: Continue Statement414412 -Node: Next Statement416205 -Node: Nextfile Statement418595 -Node: Exit Statement421250 -Node: Built-in Variables423654 -Node: User-modified424781 -Ref: User-modified-Footnote-1432470 -Node: Auto-set432532 -Ref: Auto-set-Footnote-1445114 -Ref: Auto-set-Footnote-2445319 -Node: ARGC and ARGV445375 -Node: Pattern Action Summary449229 -Node: Arrays451452 -Node: Array Basics453001 -Node: Array Intro453827 -Ref: figure-array-elements455800 -Node: Reference to Elements458207 -Node: Assigning Elements460480 -Node: Array Example460971 -Node: Scanning an Array462703 -Node: Controlling Scanning465718 -Ref: Controlling Scanning-Footnote-1470891 -Node: Delete471207 -Ref: Delete-Footnote-1473972 -Node: Numeric Array Subscripts474029 -Node: Uninitialized Subscripts476212 -Node: Multidimensional477837 -Node: Multiscanning480930 -Node: Arrays of Arrays482519 -Node: Arrays Summary487182 -Node: Functions489287 -Node: Built-in490160 -Node: Calling Built-in491238 -Node: Numeric Functions493226 -Ref: Numeric Functions-Footnote-1497060 -Ref: Numeric Functions-Footnote-2497417 -Ref: Numeric Functions-Footnote-3497465 -Node: String Functions497734 -Ref: String Functions-Footnote-1520745 -Ref: String Functions-Footnote-2520874 -Ref: String Functions-Footnote-3521122 -Node: Gory Details521209 -Ref: table-sub-escapes522878 -Ref: table-sub-posix-92524232 -Ref: table-sub-proposed525583 -Ref: table-posix-sub526937 -Ref: table-gensub-escapes528482 -Ref: Gory Details-Footnote-1529658 -Ref: Gory Details-Footnote-2529709 -Node: I/O Functions529860 -Ref: I/O Functions-Footnote-1536983 -Node: Time Functions537130 -Ref: Time Functions-Footnote-1547594 -Ref: Time Functions-Footnote-2547662 -Ref: Time Functions-Footnote-3547820 -Ref: Time Functions-Footnote-4547931 -Ref: Time Functions-Footnote-5548043 -Ref: Time Functions-Footnote-6548270 -Node: Bitwise Functions548536 -Ref: table-bitwise-ops549098 -Ref: Bitwise Functions-Footnote-1553343 -Node: Type Functions553527 -Node: I18N Functions554669 -Node: User-defined556314 -Node: Definition Syntax557118 -Ref: Definition Syntax-Footnote-1562043 -Node: Function Example562112 -Ref: Function Example-Footnote-1564756 -Node: Function Caveats564778 -Node: Calling A Function565296 -Node: Variable Scope566251 -Node: Pass By Value/Reference569239 -Node: Return Statement572747 -Node: Dynamic Typing575731 -Node: Indirect Calls576660 -Node: Functions Summary586373 -Node: Library Functions588912 -Ref: Library Functions-Footnote-1592530 -Ref: Library Functions-Footnote-2592673 -Node: Library Names592844 -Ref: Library Names-Footnote-1596317 -Ref: Library Names-Footnote-2596537 -Node: General Functions596623 -Node: Strtonum Function597651 -Node: Assert Function600431 -Node: Round Function603757 -Node: Cliff Random Function605298 -Node: Ordinal Functions606314 -Ref: Ordinal Functions-Footnote-1609391 -Ref: Ordinal Functions-Footnote-2609643 -Node: Join Function609854 -Ref: Join Function-Footnote-1611625 -Node: Getlocaltime Function611825 -Node: Readfile Function615561 -Node: Data File Management617400 -Node: Filetrans Function618032 -Node: Rewind Function622101 -Node: File Checking623488 -Ref: File Checking-Footnote-1624620 -Node: Empty Files624821 -Node: Ignoring Assigns626800 -Node: Getopt Function628354 -Ref: Getopt Function-Footnote-1639657 -Node: Passwd Functions639860 -Ref: Passwd Functions-Footnote-1648839 -Node: Group Functions648927 -Ref: Group Functions-Footnote-1656868 -Node: Walking Arrays657081 -Node: Library Functions Summary658684 -Node: Library exercises660072 -Node: Sample Programs661352 -Node: Running Examples662122 -Node: Clones662850 -Node: Cut Program664074 -Node: Egrep Program673942 -Ref: Egrep Program-Footnote-1681913 -Node: Id Program682023 -Node: Split Program685687 -Ref: Split Program-Footnote-1689225 -Node: Tee Program689353 -Node: Uniq Program692160 -Node: Wc Program699590 -Ref: Wc Program-Footnote-1703855 -Node: Miscellaneous Programs703947 -Node: Dupword Program705160 -Node: Alarm Program707191 -Node: Translate Program712005 -Ref: Translate Program-Footnote-1716396 -Ref: Translate Program-Footnote-2716666 -Node: Labels Program716800 -Ref: Labels Program-Footnote-1720171 -Node: Word Sorting720255 -Node: History Sorting724298 -Node: Extract Program726134 -Node: Simple Sed733670 -Node: Igawk Program736732 -Ref: Igawk Program-Footnote-1751043 -Ref: Igawk Program-Footnote-2751244 -Node: Anagram Program751382 -Node: Signature Program754450 -Node: Programs Summary755697 -Node: Programs Exercises756912 -Node: Advanced Features760563 -Node: Nondecimal Data762511 -Node: Array Sorting764088 -Node: Controlling Array Traversal764785 -Node: Array Sorting Functions773065 -Ref: Array Sorting Functions-Footnote-1776972 -Node: Two-way I/O777166 -Ref: Two-way I/O-Footnote-1782682 -Node: TCP/IP Networking782764 -Node: Profiling785608 -Node: Advanced Features Summary793150 -Node: Internationalization795014 -Node: I18N and L10N796494 -Node: Explaining gettext797180 -Ref: Explaining gettext-Footnote-1802320 -Ref: Explaining gettext-Footnote-2802504 -Node: Programmer i18n802669 -Node: Translator i18n806894 -Node: String Extraction807688 -Ref: String Extraction-Footnote-1808649 -Node: Printf Ordering808735 -Ref: Printf Ordering-Footnote-1811517 -Node: I18N Portability811581 -Ref: I18N Portability-Footnote-1814030 -Node: I18N Example814093 -Ref: I18N Example-Footnote-1816815 -Node: Gawk I18N816887 -Node: I18N Summary817525 -Node: Debugger818864 -Node: Debugging819886 -Node: Debugging Concepts820327 -Node: Debugging Terms822183 -Node: Awk Debugging824780 -Node: Sample Debugging Session825672 -Node: Debugger Invocation826192 -Node: Finding The Bug827525 -Node: List of Debugger Commands834007 -Node: Breakpoint Control835339 -Node: Debugger Execution Control839003 -Node: Viewing And Changing Data842363 -Node: Execution Stack845721 -Node: Debugger Info847234 -Node: Miscellaneous Debugger Commands851228 -Node: Readline Support856412 -Node: Limitations857304 -Node: Debugging Summary859578 -Node: Arbitrary Precision Arithmetic860742 -Node: Computer Arithmetic862071 -Ref: Computer Arithmetic-Footnote-1866458 -Node: Math Definitions866515 -Ref: table-ieee-formats869399 -Node: MPFR features869903 -Node: FP Math Caution871545 -Ref: FP Math Caution-Footnote-1872586 -Node: Inexactness of computations872955 -Node: Inexact representation873903 -Node: Comparing FP Values875258 -Node: Errors accumulate876222 -Node: Getting Accuracy877655 -Node: Try To Round880314 -Node: Setting precision881213 -Ref: table-predefined-precision-strings881895 -Node: Setting the rounding mode883688 -Ref: table-gawk-rounding-modes884052 -Ref: Setting the rounding mode-Footnote-1887506 -Node: Arbitrary Precision Integers887685 -Ref: Arbitrary Precision Integers-Footnote-1890688 -Node: POSIX Floating Point Problems890837 -Ref: POSIX Floating Point Problems-Footnote-1894713 -Node: Floating point summary894751 -Node: Dynamic Extensions896968 -Node: Extension Intro898520 -Node: Plugin License899785 -Node: Extension Mechanism Outline900470 -Ref: figure-load-extension900894 -Ref: figure-load-new-function902379 -Ref: figure-call-new-function903381 -Node: Extension API Description905365 -Node: Extension API Functions Introduction906815 -Node: General Data Types911680 -Ref: General Data Types-Footnote-1917373 -Node: Requesting Values917672 -Ref: table-value-types-returned918409 -Node: Memory Allocation Functions919367 -Ref: Memory Allocation Functions-Footnote-1922114 -Node: Constructor Functions922210 -Node: Registration Functions923968 -Node: Extension Functions924653 -Node: Exit Callback Functions926955 -Node: Extension Version String928204 -Node: Input Parsers928854 -Node: Output Wrappers938657 -Node: Two-way processors943173 -Node: Printing Messages945377 -Ref: Printing Messages-Footnote-1946454 -Node: Updating `ERRNO'946606 -Node: Accessing Parameters947345 -Node: Symbol Table Access948575 -Node: Symbol table by name949089 -Node: Symbol table by cookie951065 -Ref: Symbol table by cookie-Footnote-1955198 -Node: Cached values955261 -Ref: Cached values-Footnote-1958765 -Node: Array Manipulation958856 -Ref: Array Manipulation-Footnote-1959954 -Node: Array Data Types959993 -Ref: Array Data Types-Footnote-1962696 -Node: Array Functions962788 -Node: Flattening Arrays966662 -Node: Creating Arrays973514 -Node: Extension API Variables978245 -Node: Extension Versioning978881 -Node: Extension API Informational Variables980782 -Node: Extension API Boilerplate981868 -Node: Finding Extensions985672 -Node: Extension Example986232 -Node: Internal File Description986962 -Node: Internal File Ops991053 -Ref: Internal File Ops-Footnote-11002485 -Node: Using Internal File Ops1002625 -Ref: Using Internal File Ops-Footnote-11004972 -Node: Extension Samples1005240 -Node: Extension Sample File Functions1006764 -Node: Extension Sample Fnmatch1014332 -Node: Extension Sample Fork1015813 -Node: Extension Sample Inplace1017026 -Node: Extension Sample Ord1018701 -Node: Extension Sample Readdir1019537 -Ref: table-readdir-file-types1020393 -Node: Extension Sample Revout1021192 -Node: Extension Sample Rev2way1021783 -Node: Extension Sample Read write array1022524 -Node: Extension Sample Readfile1024403 -Node: Extension Sample API Tests1025503 -Node: Extension Sample Time1026028 -Node: gawkextlib1027343 -Node: Extension summary1030156 -Node: Extension Exercises1033849 -Node: Language History1034571 -Node: V7/SVR3.11036214 -Node: SVR41038534 -Node: POSIX1039976 -Node: BTL1041362 -Node: POSIX/GNU1042096 -Node: Feature History1047695 -Node: Common Extensions1060825 -Node: Ranges and Locales1062137 -Ref: Ranges and Locales-Footnote-11066754 -Ref: Ranges and Locales-Footnote-21066781 -Ref: Ranges and Locales-Footnote-31067015 -Node: Contributors1067236 -Node: History summary1072698 -Node: Installation1074067 -Node: Gawk Distribution1075018 -Node: Getting1075502 -Node: Extracting1076326 -Node: Distribution contents1077968 -Node: Unix Installation1083685 -Node: Quick Installation1084302 -Node: Additional Configuration Options1086744 -Node: Configuration Philosophy1088482 -Node: Non-Unix Installation1090833 -Node: PC Installation1091291 -Node: PC Binary Installation1092602 -Node: PC Compiling1094450 -Ref: PC Compiling-Footnote-11097449 -Node: PC Testing1097554 -Node: PC Using1098730 -Node: Cygwin1102888 -Node: MSYS1103697 -Node: VMS Installation1104211 -Node: VMS Compilation1105007 -Ref: VMS Compilation-Footnote-11106229 -Node: VMS Dynamic Extensions1106287 -Node: VMS Installation Details1107660 -Node: VMS Running1109912 -Node: VMS GNV1112746 -Node: VMS Old Gawk1113469 -Node: Bugs1113939 -Node: Other Versions1117943 -Node: Installation summary1124198 -Node: Notes1125254 -Node: Compatibility Mode1126119 -Node: Additions1126901 -Node: Accessing The Source1127826 -Node: Adding Code1129262 -Node: New Ports1135440 -Node: Derived Files1139921 -Ref: Derived Files-Footnote-11145002 -Ref: Derived Files-Footnote-21145036 -Ref: Derived Files-Footnote-31145632 -Node: Future Extensions1145746 -Node: Implementation Limitations1146352 -Node: Extension Design1147600 -Node: Old Extension Problems1148754 -Ref: Old Extension Problems-Footnote-11150271 -Node: Extension New Mechanism Goals1150328 -Ref: Extension New Mechanism Goals-Footnote-11153688 -Node: Extension Other Design Decisions1153877 -Node: Extension Future Growth1155983 -Node: Old Extension Mechanism1156819 -Node: Notes summary1158581 -Node: Basic Concepts1159767 -Node: Basic High Level1160448 -Ref: figure-general-flow1160720 -Ref: figure-process-flow1161319 -Ref: Basic High Level-Footnote-11164548 -Node: Basic Data Typing1164733 -Node: Glossary1168061 -Node: Copying1193213 -Node: GNU Free Documentation License1230769 -Node: Index1255905 +Node: Getting Started70900 +Node: Running gawk73334 +Node: One-shot74524 +Node: Read Terminal75749 +Ref: Read Terminal-Footnote-177399 +Ref: Read Terminal-Footnote-277675 +Node: Long77846 +Node: Executable Scripts79222 +Ref: Executable Scripts-Footnote-181055 +Ref: Executable Scripts-Footnote-281157 +Node: Comments81704 +Node: Quoting84177 +Node: DOS Quoting89493 +Node: Sample Data Files90168 +Node: Very Simple92683 +Node: Two Rules97321 +Node: More Complex99215 +Ref: More Complex-Footnote-1102147 +Node: Statements/Lines102232 +Ref: Statements/Lines-Footnote-1106687 +Node: Other Features106952 +Node: When107880 +Node: Intro Summary110050 +Node: Invoking Gawk110816 +Node: Command Line112331 +Node: Options113122 +Ref: Options-Footnote-1128951 +Node: Other Arguments128976 +Node: Naming Standard Input131638 +Node: Environment Variables132732 +Node: AWKPATH Variable133290 +Ref: AWKPATH Variable-Footnote-1136162 +Ref: AWKPATH Variable-Footnote-2136207 +Node: AWKLIBPATH Variable136467 +Node: Other Environment Variables137226 +Node: Exit Status140881 +Node: Include Files141556 +Node: Loading Shared Libraries145134 +Node: Obsolete146518 +Node: Undocumented147215 +Node: Invoking Summary147482 +Node: Regexp149062 +Node: Regexp Usage150512 +Node: Escape Sequences152545 +Node: Regexp Operators158212 +Ref: Regexp Operators-Footnote-1165692 +Ref: Regexp Operators-Footnote-2165839 +Node: Bracket Expressions165937 +Ref: table-char-classes167827 +Node: GNU Regexp Operators170350 +Node: Case-sensitivity174073 +Ref: Case-sensitivity-Footnote-1176965 +Ref: Case-sensitivity-Footnote-2177200 +Node: Leftmost Longest177308 +Node: Computed Regexps178509 +Node: Regexp Summary181881 +Node: Reading Files183352 +Node: Records185444 +Node: awk split records186187 +Node: gawk split records191045 +Ref: gawk split records-Footnote-1195566 +Node: Fields195603 +Ref: Fields-Footnote-1198567 +Node: Nonconstant Fields198653 +Ref: Nonconstant Fields-Footnote-1200883 +Node: Changing Fields201085 +Node: Field Separators207039 +Node: Default Field Splitting209741 +Node: Regexp Field Splitting210858 +Node: Single Character Fields214199 +Node: Command Line Field Separator215258 +Node: Full Line Fields218600 +Ref: Full Line Fields-Footnote-1219108 +Node: Field Splitting Summary219154 +Ref: Field Splitting Summary-Footnote-1222253 +Node: Constant Size222354 +Node: Splitting By Content226961 +Ref: Splitting By Content-Footnote-1230711 +Node: Multiple Line230751 +Ref: Multiple Line-Footnote-1236607 +Node: Getline236786 +Node: Plain Getline239002 +Node: Getline/Variable241097 +Node: Getline/File242244 +Node: Getline/Variable/File243628 +Ref: Getline/Variable/File-Footnote-1245227 +Node: Getline/Pipe245314 +Node: Getline/Variable/Pipe248013 +Node: Getline/Coprocess249120 +Node: Getline/Variable/Coprocess250372 +Node: Getline Notes251109 +Node: Getline Summary253913 +Ref: table-getline-variants254321 +Node: Read Timeout255233 +Ref: Read Timeout-Footnote-1259060 +Node: Command line directories259118 +Node: Input Summary260022 +Node: Input Exercises263159 +Node: Printing263892 +Node: Print265614 +Node: Print Examples266955 +Node: Output Separators269734 +Node: OFMT271750 +Node: Printf273108 +Node: Basic Printf274014 +Node: Control Letters275553 +Node: Format Modifiers279405 +Node: Printf Examples285432 +Node: Redirection287896 +Node: Special Files294868 +Node: Special FD295399 +Ref: Special FD-Footnote-1299023 +Node: Special Network299097 +Node: Special Caveats299947 +Node: Close Files And Pipes300743 +Ref: Close Files And Pipes-Footnote-1307904 +Ref: Close Files And Pipes-Footnote-2308052 +Node: Output Summary308202 +Node: Output exercises309199 +Node: Expressions309879 +Node: Values311064 +Node: Constants311740 +Node: Scalar Constants312420 +Ref: Scalar Constants-Footnote-1313279 +Node: Nondecimal-numbers313529 +Node: Regexp Constants316529 +Node: Using Constant Regexps317004 +Node: Variables320074 +Node: Using Variables320729 +Node: Assignment Options322453 +Node: Conversion324328 +Node: Strings And Numbers324852 +Ref: Strings And Numbers-Footnote-1327914 +Node: Locale influences conversions328023 +Ref: table-locale-affects330740 +Node: All Operators331328 +Node: Arithmetic Ops331958 +Node: Concatenation334463 +Ref: Concatenation-Footnote-1337259 +Node: Assignment Ops337379 +Ref: table-assign-ops342362 +Node: Increment Ops343679 +Node: Truth Values and Conditions347117 +Node: Truth Values348200 +Node: Typing and Comparison349249 +Node: Variable Typing350042 +Ref: Variable Typing-Footnote-1353942 +Node: Comparison Operators354064 +Ref: table-relational-ops354474 +Node: POSIX String Comparison358024 +Ref: POSIX String Comparison-Footnote-1359108 +Node: Boolean Ops359246 +Ref: Boolean Ops-Footnote-1363316 +Node: Conditional Exp363407 +Node: Function Calls365134 +Node: Precedence369014 +Node: Locales372683 +Node: Expressions Summary374314 +Node: Patterns and Actions376855 +Node: Pattern Overview377971 +Node: Regexp Patterns379648 +Node: Expression Patterns380191 +Node: Ranges383972 +Node: BEGIN/END387078 +Node: Using BEGIN/END387840 +Ref: Using BEGIN/END-Footnote-1390576 +Node: I/O And BEGIN/END390682 +Node: BEGINFILE/ENDFILE392967 +Node: Empty395898 +Node: Using Shell Variables396215 +Node: Action Overview398498 +Node: Statements400825 +Node: If Statement402673 +Node: While Statement404171 +Node: Do Statement406215 +Node: For Statement407371 +Node: Switch Statement410523 +Node: Break Statement412626 +Node: Continue Statement414681 +Node: Next Statement416474 +Node: Nextfile Statement418864 +Node: Exit Statement421519 +Node: Built-in Variables423923 +Node: User-modified425050 +Ref: User-modified-Footnote-1432739 +Node: Auto-set432801 +Ref: Auto-set-Footnote-1445383 +Ref: Auto-set-Footnote-2445588 +Node: ARGC and ARGV445644 +Node: Pattern Action Summary449498 +Node: Arrays451721 +Node: Array Basics453270 +Node: Array Intro454096 +Ref: figure-array-elements456069 +Node: Reference to Elements458476 +Node: Assigning Elements460749 +Node: Array Example461240 +Node: Scanning an Array462972 +Node: Controlling Scanning465987 +Ref: Controlling Scanning-Footnote-1471160 +Node: Delete471476 +Ref: Delete-Footnote-1474241 +Node: Numeric Array Subscripts474298 +Node: Uninitialized Subscripts476481 +Node: Multidimensional478106 +Node: Multiscanning481199 +Node: Arrays of Arrays482788 +Node: Arrays Summary487451 +Node: Functions489556 +Node: Built-in490429 +Node: Calling Built-in491507 +Node: Numeric Functions493495 +Ref: Numeric Functions-Footnote-1497329 +Ref: Numeric Functions-Footnote-2497686 +Ref: Numeric Functions-Footnote-3497734 +Node: String Functions498003 +Ref: String Functions-Footnote-1521014 +Ref: String Functions-Footnote-2521143 +Ref: String Functions-Footnote-3521391 +Node: Gory Details521478 +Ref: table-sub-escapes523147 +Ref: table-sub-posix-92524501 +Ref: table-sub-proposed525852 +Ref: table-posix-sub527206 +Ref: table-gensub-escapes528751 +Ref: Gory Details-Footnote-1529927 +Ref: Gory Details-Footnote-2529978 +Node: I/O Functions530129 +Ref: I/O Functions-Footnote-1537252 +Node: Time Functions537399 +Ref: Time Functions-Footnote-1547863 +Ref: Time Functions-Footnote-2547931 +Ref: Time Functions-Footnote-3548089 +Ref: Time Functions-Footnote-4548200 +Ref: Time Functions-Footnote-5548312 +Ref: Time Functions-Footnote-6548539 +Node: Bitwise Functions548805 +Ref: table-bitwise-ops549367 +Ref: Bitwise Functions-Footnote-1553612 +Node: Type Functions553796 +Node: I18N Functions554938 +Node: User-defined556583 +Node: Definition Syntax557387 +Ref: Definition Syntax-Footnote-1562566 +Node: Function Example562635 +Ref: Function Example-Footnote-1565279 +Node: Function Caveats565301 +Node: Calling A Function565819 +Node: Variable Scope566774 +Node: Pass By Value/Reference569762 +Node: Return Statement573270 +Node: Dynamic Typing576254 +Node: Indirect Calls577183 +Node: Functions Summary586896 +Node: Library Functions589435 +Ref: Library Functions-Footnote-1593053 +Ref: Library Functions-Footnote-2593196 +Node: Library Names593367 +Ref: Library Names-Footnote-1596840 +Ref: Library Names-Footnote-2597060 +Node: General Functions597146 +Node: Strtonum Function598174 +Node: Assert Function600954 +Node: Round Function604280 +Node: Cliff Random Function605821 +Node: Ordinal Functions606837 +Ref: Ordinal Functions-Footnote-1609914 +Ref: Ordinal Functions-Footnote-2610166 +Node: Join Function610377 +Ref: Join Function-Footnote-1612148 +Node: Getlocaltime Function612348 +Node: Readfile Function616084 +Node: Data File Management617923 +Node: Filetrans Function618555 +Node: Rewind Function622624 +Node: File Checking624011 +Ref: File Checking-Footnote-1625143 +Node: Empty Files625344 +Node: Ignoring Assigns627323 +Node: Getopt Function628877 +Ref: Getopt Function-Footnote-1640180 +Node: Passwd Functions640383 +Ref: Passwd Functions-Footnote-1649362 +Node: Group Functions649450 +Ref: Group Functions-Footnote-1657391 +Node: Walking Arrays657604 +Node: Library Functions Summary659207 +Node: Library exercises660595 +Node: Sample Programs661875 +Node: Running Examples662645 +Node: Clones663373 +Node: Cut Program664597 +Node: Egrep Program674465 +Ref: Egrep Program-Footnote-1682436 +Node: Id Program682546 +Node: Split Program686210 +Ref: Split Program-Footnote-1689748 +Node: Tee Program689876 +Node: Uniq Program692683 +Node: Wc Program700113 +Ref: Wc Program-Footnote-1704378 +Node: Miscellaneous Programs704470 +Node: Dupword Program705683 +Node: Alarm Program707714 +Node: Translate Program712528 +Ref: Translate Program-Footnote-1716919 +Ref: Translate Program-Footnote-2717189 +Node: Labels Program717323 +Ref: Labels Program-Footnote-1720694 +Node: Word Sorting720778 +Node: History Sorting724821 +Node: Extract Program726657 +Node: Simple Sed734193 +Node: Igawk Program737255 +Ref: Igawk Program-Footnote-1751566 +Ref: Igawk Program-Footnote-2751767 +Node: Anagram Program751905 +Node: Signature Program754973 +Node: Programs Summary756220 +Node: Programs Exercises757435 +Node: Advanced Features761086 +Node: Nondecimal Data763034 +Node: Array Sorting764611 +Node: Controlling Array Traversal765308 +Node: Array Sorting Functions773588 +Ref: Array Sorting Functions-Footnote-1777495 +Node: Two-way I/O777689 +Ref: Two-way I/O-Footnote-1783205 +Node: TCP/IP Networking783287 +Node: Profiling786131 +Node: Advanced Features Summary793673 +Node: Internationalization795537 +Node: I18N and L10N797017 +Node: Explaining gettext797703 +Ref: Explaining gettext-Footnote-1802843 +Ref: Explaining gettext-Footnote-2803027 +Node: Programmer i18n803192 +Node: Translator i18n807417 +Node: String Extraction808211 +Ref: String Extraction-Footnote-1809172 +Node: Printf Ordering809258 +Ref: Printf Ordering-Footnote-1812040 +Node: I18N Portability812104 +Ref: I18N Portability-Footnote-1814553 +Node: I18N Example814616 +Ref: I18N Example-Footnote-1817338 +Node: Gawk I18N817410 +Node: I18N Summary818048 +Node: Debugger819387 +Node: Debugging820409 +Node: Debugging Concepts820850 +Node: Debugging Terms822706 +Node: Awk Debugging825303 +Node: Sample Debugging Session826195 +Node: Debugger Invocation826715 +Node: Finding The Bug828048 +Node: List of Debugger Commands834530 +Node: Breakpoint Control835862 +Node: Debugger Execution Control839526 +Node: Viewing And Changing Data842886 +Node: Execution Stack846244 +Node: Debugger Info847757 +Node: Miscellaneous Debugger Commands851751 +Node: Readline Support856935 +Node: Limitations857827 +Node: Debugging Summary860101 +Node: Arbitrary Precision Arithmetic861265 +Node: Computer Arithmetic862594 +Ref: Computer Arithmetic-Footnote-1866981 +Node: Math Definitions867038 +Ref: table-ieee-formats869922 +Node: MPFR features870426 +Node: FP Math Caution872068 +Ref: FP Math Caution-Footnote-1873109 +Node: Inexactness of computations873478 +Node: Inexact representation874426 +Node: Comparing FP Values875781 +Node: Errors accumulate876745 +Node: Getting Accuracy878178 +Node: Try To Round880837 +Node: Setting precision881736 +Ref: table-predefined-precision-strings882418 +Node: Setting the rounding mode884211 +Ref: table-gawk-rounding-modes884575 +Ref: Setting the rounding mode-Footnote-1888029 +Node: Arbitrary Precision Integers888208 +Ref: Arbitrary Precision Integers-Footnote-1891211 +Node: POSIX Floating Point Problems891360 +Ref: POSIX Floating Point Problems-Footnote-1895236 +Node: Floating point summary895274 +Node: Dynamic Extensions897491 +Node: Extension Intro899043 +Node: Plugin License900308 +Node: Extension Mechanism Outline900993 +Ref: figure-load-extension901417 +Ref: figure-load-new-function902902 +Ref: figure-call-new-function903904 +Node: Extension API Description905888 +Node: Extension API Functions Introduction907338 +Node: General Data Types912203 +Ref: General Data Types-Footnote-1917896 +Node: Requesting Values918195 +Ref: table-value-types-returned918932 +Node: Memory Allocation Functions919890 +Ref: Memory Allocation Functions-Footnote-1922637 +Node: Constructor Functions922733 +Node: Registration Functions924491 +Node: Extension Functions925176 +Node: Exit Callback Functions927478 +Node: Extension Version String928727 +Node: Input Parsers929377 +Node: Output Wrappers939180 +Node: Two-way processors943696 +Node: Printing Messages945900 +Ref: Printing Messages-Footnote-1946977 +Node: Updating `ERRNO'947129 +Node: Accessing Parameters947868 +Node: Symbol Table Access949098 +Node: Symbol table by name949612 +Node: Symbol table by cookie951588 +Ref: Symbol table by cookie-Footnote-1955721 +Node: Cached values955784 +Ref: Cached values-Footnote-1959288 +Node: Array Manipulation959379 +Ref: Array Manipulation-Footnote-1960477 +Node: Array Data Types960516 +Ref: Array Data Types-Footnote-1963219 +Node: Array Functions963311 +Node: Flattening Arrays967185 +Node: Creating Arrays974037 +Node: Extension API Variables978768 +Node: Extension Versioning979404 +Node: Extension API Informational Variables981305 +Node: Extension API Boilerplate982391 +Node: Finding Extensions986195 +Node: Extension Example986755 +Node: Internal File Description987485 +Node: Internal File Ops991576 +Ref: Internal File Ops-Footnote-11003008 +Node: Using Internal File Ops1003148 +Ref: Using Internal File Ops-Footnote-11005495 +Node: Extension Samples1005763 +Node: Extension Sample File Functions1007287 +Node: Extension Sample Fnmatch1014855 +Node: Extension Sample Fork1016336 +Node: Extension Sample Inplace1017549 +Node: Extension Sample Ord1019224 +Node: Extension Sample Readdir1020060 +Ref: table-readdir-file-types1020916 +Node: Extension Sample Revout1021715 +Node: Extension Sample Rev2way1022306 +Node: Extension Sample Read write array1023047 +Node: Extension Sample Readfile1024926 +Node: Extension Sample API Tests1026026 +Node: Extension Sample Time1026551 +Node: gawkextlib1027866 +Node: Extension summary1030679 +Node: Extension Exercises1034372 +Node: Language History1035094 +Node: V7/SVR3.11036737 +Node: SVR41039057 +Node: POSIX1040499 +Node: BTL1041885 +Node: POSIX/GNU1042619 +Node: Feature History1048218 +Node: Common Extensions1061348 +Node: Ranges and Locales1062660 +Ref: Ranges and Locales-Footnote-11067277 +Ref: Ranges and Locales-Footnote-21067304 +Ref: Ranges and Locales-Footnote-31067538 +Node: Contributors1067759 +Node: History summary1073221 +Node: Installation1074590 +Node: Gawk Distribution1075541 +Node: Getting1076025 +Node: Extracting1076849 +Node: Distribution contents1078491 +Node: Unix Installation1084208 +Node: Quick Installation1084825 +Node: Additional Configuration Options1087267 +Node: Configuration Philosophy1089005 +Node: Non-Unix Installation1091356 +Node: PC Installation1091814 +Node: PC Binary Installation1093125 +Node: PC Compiling1094973 +Ref: PC Compiling-Footnote-11097972 +Node: PC Testing1098077 +Node: PC Using1099253 +Node: Cygwin1103411 +Node: MSYS1104220 +Node: VMS Installation1104734 +Node: VMS Compilation1105530 +Ref: VMS Compilation-Footnote-11106752 +Node: VMS Dynamic Extensions1106810 +Node: VMS Installation Details1108183 +Node: VMS Running1110435 +Node: VMS GNV1113269 +Node: VMS Old Gawk1113992 +Node: Bugs1114462 +Node: Other Versions1118466 +Node: Installation summary1124721 +Node: Notes1125777 +Node: Compatibility Mode1126642 +Node: Additions1127424 +Node: Accessing The Source1128349 +Node: Adding Code1129785 +Node: New Ports1135963 +Node: Derived Files1140444 +Ref: Derived Files-Footnote-11145525 +Ref: Derived Files-Footnote-21145559 +Ref: Derived Files-Footnote-31146155 +Node: Future Extensions1146269 +Node: Implementation Limitations1146875 +Node: Extension Design1148123 +Node: Old Extension Problems1149277 +Ref: Old Extension Problems-Footnote-11150794 +Node: Extension New Mechanism Goals1150851 +Ref: Extension New Mechanism Goals-Footnote-11154211 +Node: Extension Other Design Decisions1154400 +Node: Extension Future Growth1156506 +Node: Old Extension Mechanism1157342 +Node: Notes summary1159104 +Node: Basic Concepts1160290 +Node: Basic High Level1160971 +Ref: figure-general-flow1161243 +Ref: figure-process-flow1161842 +Ref: Basic High Level-Footnote-11165071 +Node: Basic Data Typing1165256 +Node: Glossary1168584 +Node: Copying1193736 +Node: GNU Free Documentation License1231292 +Node: Index1256428 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index b210da10..e12de779 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -2076,6 +2076,10 @@ people. Notable code and documentation contributions were made by a number of people. @xref{Contributors}, for the full list. +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. + @cindex Kernighan, Brian I would like to thank Brian Kernighan for invaluable assistance during the testing and debugging of @command{gawk}, and for ongoing @@ -12376,7 +12380,9 @@ If those arguments are not supplied, the functions use a reasonable default value. @xref{Built-in}, for full details. If arguments are omitted in calls to user-defined functions, then those arguments are -treated as local variables and initialized to the empty string +treated as local variables. Such local variables act like the +empty string if referenced where a string value is required, +and like zero if referenced where a numeric value is required (@pxref{User-defined}). As an advanced feature, @command{gawk} provides indirect function calls, @@ -19057,15 +19063,21 @@ used as a variable, array, or function. @var{parameter-list} is an optional list of the function's arguments and local variable names, separated by commas. When the function is called, the argument names are used to hold the argument values given in -the call. The local variables are initialized to the empty string. +the call. + A function cannot have two parameters with the same name, nor may it have a parameter with the same name as the function itself. - In addition, according to the POSIX standard, function parameters cannot have the same name as one of the special built-in variables (@pxref{Built-in Variables}). Not all versions of @command{awk} enforce this restriction.) +Local variables act like the empty string if referenced where a string +value is required, and like zero if referenced where a numeric value +is required. This is the same as regular variables that have never been +assigned a value. (There is more to understand about local variables; +@pxref{Dynamic Typing}.) + The @var{body-of-function} consists of @command{awk} statements. It is the most important part of the definition, because it says what the function should actually @emph{do}. The argument names exist to give the body a diff --git a/doc/gawktexi.in b/doc/gawktexi.in index fb7fa188..8167da72 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -2043,6 +2043,10 @@ people. Notable code and documentation contributions were made by a number of people. @xref{Contributors}, for the full list. +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. + @cindex Kernighan, Brian I would like to thank Brian Kernighan for invaluable assistance during the testing and debugging of @command{gawk}, and for ongoing @@ -11727,7 +11731,9 @@ If those arguments are not supplied, the functions use a reasonable default value. @xref{Built-in}, for full details. If arguments are omitted in calls to user-defined functions, then those arguments are -treated as local variables and initialized to the empty string +treated as local variables. Such local variables act like the +empty string if referenced where a string value is required, +and like zero if referenced where a numeric value is required (@pxref{User-defined}). As an advanced feature, @command{gawk} provides indirect function calls, @@ -18201,15 +18207,21 @@ used as a variable, array, or function. @var{parameter-list} is an optional list of the function's arguments and local variable names, separated by commas. When the function is called, the argument names are used to hold the argument values given in -the call. The local variables are initialized to the empty string. +the call. + A function cannot have two parameters with the same name, nor may it have a parameter with the same name as the function itself. - In addition, according to the POSIX standard, function parameters cannot have the same name as one of the special built-in variables (@pxref{Built-in Variables}). Not all versions of @command{awk} enforce this restriction.) +Local variables act like the empty string if referenced where a string +value is required, and like zero if referenced where a numeric value +is required. This is the same as regular variables that have never been +assigned a value. (There is more to understand about local variables; +@pxref{Dynamic Typing}.) + The @var{body-of-function} consists of @command{awk} statements. It is the most important part of the definition, because it says what the function should actually @emph{do}. The argument names exist to give the body a |