diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2018-11-26 22:02:21 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2018-11-26 22:02:21 +0200 |
commit | dc9c45a6258d9ab495bcd6dc97992532d5a2b862 (patch) | |
tree | 06081563ac8cbd14d5fcb8d4a98413801f8bcd65 | |
parent | 1e6c88c44319694bfb2e9c0ca11db01ec670f0ad (diff) | |
parent | 4d481023b2ff756dc8c77c66e6a4864f9c072007 (diff) | |
download | egawk-dc9c45a6258d9ab495bcd6dc97992532d5a2b862.tar.gz egawk-dc9c45a6258d9ab495bcd6dc97992532d5a2b862.tar.bz2 egawk-dc9c45a6258d9ab495bcd6dc97992532d5a2b862.zip |
Merge branch 'master' into feature/fix-comments
-rwxr-xr-x | ChangeLog | 5 | ||||
-rw-r--r-- | doc/ChangeLog | 14 | ||||
-rw-r--r-- | doc/gawk.1 | 10 | ||||
-rw-r--r-- | doc/gawk.info | 853 | ||||
-rw-r--r-- | doc/gawk.texi | 26 | ||||
-rw-r--r-- | doc/gawktexi.in | 26 | ||||
-rw-r--r-- | main.c | 7 |
7 files changed, 491 insertions, 450 deletions
@@ -1,5 +1,10 @@ 2018-11-26 Arnold D. Robbins <arnold@skeeve.com> + * main.c (platform_name): Add os390. Treat Cygwin and Mac OS X + as POSIX, per discussion with the dev team. + + Unrelated: + * profile.c (print_comment): Indent for chained comment. * awkgram.y (load_library): Return early if just pretty printing. (yylex): Fix handling of ?: and allow_newline etc. diff --git a/doc/ChangeLog b/doc/ChangeLog index 724a982c..3d025732 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,17 @@ +2018-11-26 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in (Auto-set) : Update values of PROCINFO["platform"]. + (PC Using): Add to BINMODE discussion to always set it and + not worry about checking platforms. Per discussion with the dev team. + +2018-11-26 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Document that split() third arg is like FS, if it's + a single character, that character is used, even if it's a + regexp metacharacter. + * gawk.1: Ditto. + Thanks to R <0xef967c36@gmail.com> for the report. + 2018-11-25 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Document PROCINFO["platform"]. @@ -13,7 +13,7 @@ . if \w'\(rq' .ds rq "\(rq . \} .\} -.TH GAWK 1 "Apr 08 2018" "Free Software Foundation" "Utility Commands" +.TH GAWK 1 "Nov 26 2018" "Free Software Foundation" "Utility Commands" .SH NAME gawk \- pattern scanning and processing language .SH SYNOPSIS @@ -3053,7 +3053,7 @@ is the possibly null separator that appeared after The value of .B seps[0] is the possibly null leading separator. -\&\fRIf +If .I r is omitted, .B FPAT @@ -3093,7 +3093,7 @@ between .BI a[ i ] and .BI a[ i +1]\fR. -\&\fRIf +If .I r is a single space, then leading whitespace in .I s @@ -3106,6 +3106,10 @@ where is the return value of .BI split( s ", " a ", " r ", " seps )\fR. Splitting behaves identically to field splitting, described above. +In particular, if +.I r +is a single-character string, that string acts as the separator, +even if it happens to be a regular expression metacharacter. .TP .BI sprintf( fmt , " expr-list" ) Print diff --git a/doc/gawk.info b/doc/gawk.info index 2c7bf82b..cd8b677c 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -11050,20 +11050,19 @@ they are not special: '"vms"' OpenVMS or Vax/VMS. - '"macosx"' - Mac OS X. - - '"cygwin"' '"djgpp"' '"mingw"' - Microsoft Windows, using either Cygwin, DJGPP, or MinGW, + Microsoft Windows, using either DJGPP or MinGW, respectively. '"os2"' OS/2. + '"os390"' + OS/390. + '"posix"' - GNU/Linux and legacy Unix systems. + GNU/Linux, Cygwin, Mac OS X, and legacy Unix systems. 'PROCINFO["pgrpid"]' The process group ID of the current process. @@ -12978,8 +12977,8 @@ Options::): into 'SEPS[N]', where N is the return value of 'split()' (i.e., the number of elements in ARRAY). - The 'split()' function splits strings into pieces in a manner - similar to the way input lines are split into fields. For example: + The 'split()' function splits strings into pieces in the same way + that input lines are split into fields. For example: split("cul-de-sac", a, "-", seps) @@ -13003,7 +13002,9 @@ Options::): separated by runs of whitespace. Also, as with input field splitting, if FIELDSEP is the null string, each individual character in the string is split into its own array element. - (c.e.) + (c.e.) Additionally, if FIELDSEP is a single-character string, + that string acts as the separator, even if its value is a regular + expression metacharacter. Note, however, that 'RS' has no effect on the way 'split()' works. Even though 'RS = ""' causes the newline character to also be an @@ -29370,6 +29371,12 @@ accomplished by using an appropriate '-v BINMODE=N' option on the command line. 'BINMODE' is set at the time a file or pipe is opened and cannot be changed midstream. + On POSIX-compatible systems, this variable's value has no effect. +Thus, if you think your program will run on multiple different systems +and that you may need to use 'BINMODE', you should simply set it (in the +program or on the command line) unconditionally, and not worry about the +operating system on which your program is running. + The name 'BINMODE' was chosen to match 'mawk' (*note Other Versions::). 'mawk' and 'gawk' handle 'BINMODE' similarly; however, 'mawk' adds a '-W BINMODE=N' option and an environment variable that can @@ -33041,7 +33048,7 @@ Index * * (asterisk), * operator, as regexp operator: Regexp Operators. (line 89) * * (asterisk), * operator, null strings, matching: String Functions. - (line 540) + (line 542) * * (asterisk), ** operator: Arithmetic Ops. (line 81) * * (asterisk), ** operator <1>: Precedence. (line 48) * * (asterisk), **= operator: Assignment Ops. (line 129) @@ -33438,7 +33445,7 @@ Index * asterisk (*), * operator, as regexp operator: Regexp Operators. (line 89) * asterisk (*), * operator, null strings, matching: String Functions. - (line 540) + (line 542) * asterisk (*), ** operator: Arithmetic Ops. (line 81) * asterisk (*), ** operator <1>: Precedence. (line 48) * asterisk (*), **= operator: Assignment Ops. (line 129) @@ -33661,7 +33668,7 @@ Index * Brian Kernighan's awk <8>: Continue Statement. (line 44) * Brian Kernighan's awk <9>: Nextfile Statement. (line 47) * Brian Kernighan's awk <10>: Delete. (line 51) -* Brian Kernighan's awk <11>: String Functions. (line 496) +* Brian Kernighan's awk <11>: String Functions. (line 498) * Brian Kernighan's awk <12>: Gory Details. (line 19) * Brian Kernighan's awk <13>: I/O Functions. (line 43) * Brian Kernighan's awk, extensions: BTL. (line 6) @@ -33704,7 +33711,7 @@ Index * case sensitivity, and regexps: User-modified. (line 79) * case sensitivity, and string comparisons: User-modified. (line 79) * case sensitivity, array indices and: Array Intro. (line 100) -* case sensitivity, converting case: String Functions. (line 526) +* case sensitivity, converting case: String Functions. (line 528) * case sensitivity, example programs: Library Functions. (line 53) * case sensitivity, gawk: Case-sensitivity. (line 26) * case sensitivity, regexps and: Case-sensitivity. (line 6) @@ -33836,9 +33843,9 @@ Index * control statements: Statements. (line 6) * controlling array scanning order: Controlling Scanning. (line 14) -* convert string to lower case: String Functions. (line 527) -* convert string to number: String Functions. (line 394) -* convert string to upper case: String Functions. (line 533) +* convert string to lower case: String Functions. (line 529) +* convert string to number: String Functions. (line 396) +* convert string to upper case: String Functions. (line 535) * converting integer array subscripts: Numeric Array Subscripts. (line 31) * converting, dates to timestamps: Time Functions. (line 78) @@ -33898,7 +33905,7 @@ Index * dark corner, field separators: Full Line Fields. (line 22) * dark corner, FILENAME variable: Getline Notes. (line 19) * dark corner, FILENAME variable <1>: Auto-set. (line 108) -* dark corner, FNR/NR variables: Auto-set. (line 411) +* dark corner, FNR/NR variables: Auto-set. (line 410) * dark corner, format-control characters: Control Letters. (line 33) * dark corner, format-control characters <1>: Control Letters. (line 108) @@ -33921,7 +33928,7 @@ Index (line 149) * dark corner, regexp constants, as arguments to user-defined functions: Standard Regexp Constants. (line 43) -* dark corner, split() function: String Functions. (line 364) +* dark corner, split() function: String Functions. (line 366) * dark corner, string continuation: Scalar Constants. (line 53) * dark corner, strings, storing: gawk split records. (line 82) * dark corner, value of ARGV[0]: Auto-set. (line 39) @@ -34134,7 +34141,7 @@ Index (line 6) * differences in awk and gawk, RS/RT variables: gawk split records. (line 58) -* differences in awk and gawk, RT variable: Auto-set. (line 349) +* differences in awk and gawk, RT variable: Auto-set. (line 348) * differences in awk and gawk, single-character fields: Single Character Fields. (line 6) * differences in awk and gawk, split() function: String Functions. @@ -34143,7 +34150,7 @@ Index * differences in awk and gawk, strings <1>: Scalar Constants. (line 53) * differences in awk and gawk, strings, storing: gawk split records. (line 76) -* differences in awk and gawk, SYMTAB variable: Auto-set. (line 353) +* differences in awk and gawk, SYMTAB variable: Auto-set. (line 352) * differences in awk and gawk, TEXTDOMAIN variable: User-modified. (line 155) * differences in awk and gawk, trunc-mod operation: Arithmetic Ops. @@ -34307,7 +34314,7 @@ Index (line 6) * extension API version: Extension Versioning. (line 6) -* extension API, version number: Auto-set. (line 288) +* extension API, version number: Auto-set. (line 287) * extension example: Extension Example. (line 6) * extension registration: Registration Functions. (line 6) @@ -34466,7 +34473,7 @@ Index (line 12) * FNR variable: Records. (line 6) * FNR variable <1>: Auto-set. (line 118) -* FNR variable, changing: Auto-set. (line 411) +* FNR variable, changing: Auto-set. (line 410) * for statement: For Statement. (line 6) * for statement, looping over arrays: Scanning an Array. (line 20) * fork() extension function: Extension Sample Fork. @@ -34480,7 +34487,7 @@ Index * format time string: Time Functions. (line 50) * formats, numeric output: OFMT. (line 6) * formatting output: Printf. (line 6) -* formatting strings: String Functions. (line 387) +* formatting strings: String Functions. (line 389) * forward slash (/) to enclose regular expressions: Regexp. (line 10) * forward slash (/), / operator: Precedence. (line 54) * forward slash (/), /= operator: Assignment Ops. (line 129) @@ -34570,7 +34577,7 @@ Index * G., Daniel Richard <1>: Maintainers. (line 14) * Garfinkle, Scott: Contributors. (line 35) * gawk program, dynamic profiling: Profiling. (line 179) -* gawk version: Auto-set. (line 263) +* gawk version: Auto-set. (line 262) * gawk, ARGIND variable in: Other Arguments. (line 15) * gawk, awk and: Preface. (line 21) * gawk, awk and <1>: This Manual. (line 14) @@ -34646,13 +34653,13 @@ Index * gawk, regular expressions, precedence: Regexp Operators. (line 161) * gawk, RT variable in: awk split records. (line 131) * gawk, RT variable in <1>: Multiple Line. (line 130) -* gawk, RT variable in <2>: Auto-set. (line 349) +* gawk, RT variable in <2>: Auto-set. (line 348) * gawk, See Also awk: Preface. (line 34) * gawk, source code, obtaining: Getting. (line 6) * gawk, splitting fields and: Testing field creation. (line 6) * gawk, string-translation functions: I18N Functions. (line 6) -* gawk, SYMTAB array in: Auto-set. (line 353) +* gawk, SYMTAB array in: Auto-set. (line 352) * gawk, TEXTDOMAIN variable in: User-modified. (line 155) * gawk, timestamps: Time Functions. (line 6) * gawk, uses for: Preface. (line 34) @@ -34754,7 +34761,7 @@ Index * gsub: Standard Regexp Constants. (line 43) * gsub <1>: String Functions. (line 140) -* gsub() function, arguments of: String Functions. (line 466) +* gsub() function, arguments of: String Functions. (line 468) * gsub() function, escape processing: Gory Details. (line 6) * Guerrero, Juan Manuel: Acknowledgments. (line 60) * Guerrero, Juan Manuel <1>: Contributors. (line 150) @@ -35044,13 +35051,13 @@ Index * matching, expressions, See comparison expressions: Typing and Comparison. (line 9) * matching, leftmost longest: Multiple Line. (line 26) -* matching, null strings: String Functions. (line 540) +* matching, null strings: String Functions. (line 542) * mawk utility: Escape Sequences. (line 121) * mawk utility <1>: Getline/Pipe. (line 62) * mawk utility <2>: Concatenation. (line 36) * mawk utility <3>: Nextfile Statement. (line 47) * mawk utility <4>: Other Versions. (line 39) -* maximum precision supported by MPFR library: Auto-set. (line 277) +* maximum precision supported by MPFR library: Auto-set. (line 276) * McIlroy, Doug: Glossary. (line 255) * McPhee, Patrick: Contributors. (line 103) * message object files: Explaining gettext. (line 42) @@ -35063,7 +35070,7 @@ Index * messages from extensions: Printing Messages. (line 6) * metacharacters in regular expressions: Regexp Operators. (line 6) * metacharacters, escape sequences for: Escape Sequences. (line 140) -* minimum precision required by MPFR library: Auto-set. (line 280) +* minimum precision required by MPFR library: Auto-set. (line 279) * mktime: Time Functions. (line 25) * modifiers, in format specifiers: Format Modifiers. (line 6) * monetary information, localization: Explaining gettext. (line 104) @@ -35122,7 +35129,7 @@ Index * not Boolean-logic operator: Boolean Ops. (line 6) * NR variable: Records. (line 6) * NR variable <1>: Auto-set. (line 143) -* NR variable, changing: Auto-set. (line 411) +* NR variable, changing: Auto-set. (line 410) * null strings: awk split records. (line 121) * null strings <1>: Regexp Field Splitting. (line 43) @@ -35134,7 +35141,7 @@ Index (line 43) * null strings, converting numbers to strings: Strings And Numbers. (line 21) -* null strings, matching: String Functions. (line 540) +* null strings, matching: String Functions. (line 542) * number as string of bits: Bitwise Functions. (line 109) * number of array elements: String Functions. (line 201) * number sign (#), #! (executable scripts): Executable Scripts. @@ -35242,7 +35249,7 @@ Index * p debugger command (alias for print): Viewing And Changing Data. (line 35) * Papadopoulos, Panos: Contributors. (line 131) -* parent process ID of gawk process: Auto-set. (line 252) +* parent process ID of gawk process: Auto-set. (line 251) * parentheses (), in a profile: Profiling. (line 146) * parentheses (), regexp operator: Regexp Operators. (line 81) * password file: Passwd Functions. (line 16) @@ -35313,7 +35320,7 @@ Index * portability, operators: Increment Ops. (line 60) * portability, operators, not in POSIX awk: Precedence. (line 97) * portability, POSIXLY_CORRECT environment variable: Options. (line 376) -* portability, substr() function: String Functions. (line 516) +* portability, substr() function: String Functions. (line 518) * portable object files: Explaining gettext. (line 37) * portable object files <1>: Translator i18n. (line 6) * portable object files, converting to message object files: I18N Example. @@ -35412,8 +35419,8 @@ Index * printing, unduplicated lines of text: Uniq Program. (line 6) * printing, user information: Id Program. (line 6) * private variables: Library Names. (line 11) -* process group ID of gawk process: Auto-set. (line 246) -* process ID of gawk process: Auto-set. (line 249) +* process group ID of gawk process: Auto-set. (line 245) +* process ID of gawk process: Auto-set. (line 248) * processes, two-way communications with: Two-way I/O. (line 6) * processing data: Basic High Level. (line 6) * PROCINFO array: Auto-set. (line 148) @@ -35565,7 +35572,7 @@ Index * regular expressions, searching for: Egrep Program. (line 6) * relational operators, See comparison operators: Typing and Comparison. (line 9) -* replace in string: String Functions. (line 412) +* replace in string: String Functions. (line 414) * retrying input: Retrying Input. (line 6) * return debugger command: Debugger Execution Control. (line 54) @@ -35590,7 +35597,7 @@ Index * right shift: Bitwise Functions. (line 54) * right shift, bitwise: Bitwise Functions. (line 32) * Ritchie, Dennis: Basic Data Typing. (line 54) -* RLENGTH variable: Auto-set. (line 336) +* RLENGTH variable: Auto-set. (line 335) * RLENGTH variable, match() function and: String Functions. (line 228) * Robbins, Arnold: Command Line Field Separator. (line 71) @@ -35618,11 +35625,11 @@ Index * RS variable <1>: User-modified. (line 136) * RS variable, multiline records and: Multiple Line. (line 17) * rshift: Bitwise Functions. (line 54) -* RSTART variable: Auto-set. (line 342) +* RSTART variable: Auto-set. (line 341) * RSTART variable, match() function and: String Functions. (line 228) * RT variable: awk split records. (line 131) * RT variable <1>: Multiple Line. (line 130) -* RT variable <2>: Auto-set. (line 349) +* RT variable <2>: Auto-set. (line 348) * Rubin, Paul: History. (line 30) * Rubin, Paul <1>: Contributors. (line 16) * rule, definition of: Getting Started. (line 21) @@ -35640,7 +35647,7 @@ Index * scanning arrays: Scanning an Array. (line 6) * scanning multidimensional arrays: Multiscanning. (line 11) * Schorr, Andrew: Acknowledgments. (line 60) -* Schorr, Andrew <1>: Auto-set. (line 381) +* Schorr, Andrew <1>: Auto-set. (line 380) * Schorr, Andrew <2>: Contributors. (line 136) * Schreiber, Bert: Acknowledgments. (line 38) * Schreiber, Rita: Acknowledgments. (line 38) @@ -35726,7 +35733,7 @@ Index * sidebar, Beware The Smoke and Mirrors!: Bitwise Functions. (line 127) * sidebar, Changing FS Does Not Affect the Fields: Full Line Fields. (line 14) -* sidebar, Changing NR and FNR: Auto-set. (line 409) +* sidebar, Changing NR and FNR: Auto-set. (line 408) * sidebar, Controlling Output Buffering with system(): I/O Functions. (line 166) * sidebar, Escape Sequences for Metacharacters: Escape Sequences. @@ -35735,7 +35742,7 @@ Index (line 37) * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions. (line 74) -* sidebar, Matching the Null String: String Functions. (line 538) +* sidebar, Matching the Null String: String Functions. (line 540) * sidebar, Operator Evaluation Order: Increment Ops. (line 58) * sidebar, Piping into sh: Redirection. (line 134) * sidebar, Pre-POSIX awk Used OFMT for String Conversion: Strings And Numbers. @@ -35813,7 +35820,7 @@ Index * split() function, array elements, deleting: Delete. (line 61) * split.awk program: Split Program. (line 30) * sprintf: OFMT. (line 15) -* sprintf <1>: String Functions. (line 387) +* sprintf <1>: String Functions. (line 389) * sprintf() function, OFMT variable and: User-modified. (line 116) * sprintf() function, print/printf statements and: Round Function. (line 6) @@ -35859,7 +35866,7 @@ Index * strings, continuation across lines: Scalar Constants. (line 53) * strings, converting: Strings And Numbers. (line 6) * strings, converting <1>: Bitwise Functions. (line 109) -* strings, converting letter case: String Functions. (line 526) +* strings, converting letter case: String Functions. (line 528) * strings, converting, numbers to: User-modified. (line 30) * strings, converting, numbers to <1>: User-modified. (line 107) * strings, empty, See null strings: awk split records. (line 121) @@ -35870,13 +35877,13 @@ Index * strings, null: Regexp Field Splitting. (line 43) * strings, numeric: Variable Typing. (line 67) -* strtonum: String Functions. (line 394) +* strtonum: String Functions. (line 396) * strtonum() function (gawk), --non-decimal-data option and: Nondecimal Data. (line 35) * sub: Standard Regexp Constants. (line 43) -* sub <1>: String Functions. (line 412) -* sub() function, arguments of: String Functions. (line 466) +* sub <1>: String Functions. (line 414) +* sub() function, arguments of: String Functions. (line 468) * sub() function, escape processing: Gory Details. (line 6) * subscript separators: User-modified. (line 149) * subscripts in arrays, multidimensional: Multidimensional. (line 10) @@ -35890,12 +35897,12 @@ Index * SUBSEP variable, and multidimensional arrays: Multidimensional. (line 16) * substitute in string: String Functions. (line 89) -* substr: String Functions. (line 485) -* substring: String Functions. (line 485) +* substr: String Functions. (line 487) +* substring: String Functions. (line 487) * Sumner, Andrew: Other Versions. (line 64) -* supplementary groups of gawk process: Auto-set. (line 293) +* supplementary groups of gawk process: Auto-set. (line 292) * switch statement: Switch Statement. (line 6) -* SYMTAB array: Auto-set. (line 353) +* SYMTAB array: Auto-set. (line 352) * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops. (line 149) * system: I/O Functions. (line 106) @@ -35951,8 +35958,8 @@ Index * timestamps, converting dates to: Time Functions. (line 78) * timestamps, formatted: Getlocaltime Function. (line 6) -* tolower: String Functions. (line 527) -* toupper: String Functions. (line 533) +* tolower: String Functions. (line 529) +* toupper: String Functions. (line 535) * tr utility: Translate Program. (line 6) * trace debugger command: Miscellaneous Debugger Commands. (line 108) @@ -35978,7 +35985,7 @@ Index * troubleshooting, gawk, fatal errors, function arguments: Calling Built-in. (line 16) * troubleshooting, getline function: File Checking. (line 25) -* troubleshooting, gsub()/sub() functions: String Functions. (line 476) +* troubleshooting, gsub()/sub() functions: String Functions. (line 478) * troubleshooting, match() function: String Functions. (line 292) * troubleshooting, print statement, omitting commas: Print Examples. (line 30) @@ -35988,7 +35995,7 @@ Index * troubleshooting, regexp constants vs. string constants: Computed Regexps. (line 40) * troubleshooting, string concatenation: Concatenation. (line 27) -* troubleshooting, substr() function: String Functions. (line 503) +* troubleshooting, substr() function: String Functions. (line 505) * troubleshooting, system() function: I/O Functions. (line 128) * troubleshooting, typographical errors, global variables: Options. (line 99) @@ -36077,10 +36084,10 @@ Index * variables, uninitialized, as array subscripts: Uninitialized Subscripts. (line 6) * variables, user-defined: Variables. (line 6) -* version of gawk: Auto-set. (line 263) -* version of gawk extension API: Auto-set. (line 288) -* version of GNU MP library: Auto-set. (line 271) -* version of GNU MPFR library: Auto-set. (line 273) +* version of gawk: Auto-set. (line 262) +* version of gawk extension API: Auto-set. (line 287) +* version of GNU MP library: Auto-set. (line 270) +* version of GNU MPFR library: Auto-set. (line 272) * vertical bar (|): Regexp Operators. (line 70) * vertical bar (|), | operator (I/O): Getline/Pipe. (line 10) * vertical bar (|), | operator (I/O) <1>: Precedence. (line 64) @@ -36359,368 +36366,368 @@ Node: Exit Statement454653 Node: Built-in Variables457056 Node: User-modified458189 Node: Auto-set465956 -Ref: Auto-set-Footnote-1482806 -Ref: Auto-set-Footnote-2483012 -Node: ARGC and ARGV483068 -Node: Pattern Action Summary487281 -Node: Arrays489711 -Node: Array Basics491040 -Node: Array Intro491884 -Ref: figure-array-elements493859 -Ref: Array Intro-Footnote-1496563 -Node: Reference to Elements496691 -Node: Assigning Elements499155 -Node: Array Example499646 -Node: Scanning an Array501405 -Node: Controlling Scanning504427 -Ref: Controlling Scanning-Footnote-1509826 -Node: Numeric Array Subscripts510142 -Node: Uninitialized Subscripts512326 -Node: Delete513945 -Ref: Delete-Footnote-1516697 -Node: Multidimensional516754 -Node: Multiscanning519849 -Node: Arrays of Arrays521440 -Node: Arrays Summary526208 -Node: Functions528301 -Node: Built-in529339 -Node: Calling Built-in530420 -Node: Numeric Functions532416 -Ref: Numeric Functions-Footnote-1536444 -Ref: Numeric Functions-Footnote-2536801 -Ref: Numeric Functions-Footnote-3536849 -Node: String Functions537121 -Ref: String Functions-Footnote-1560830 -Ref: String Functions-Footnote-2560958 -Ref: String Functions-Footnote-3561206 -Node: Gory Details561293 -Ref: table-sub-escapes563084 -Ref: table-sub-proposed564603 -Ref: table-posix-sub565966 -Ref: table-gensub-escapes567507 -Ref: Gory Details-Footnote-1568330 -Node: I/O Functions568484 -Ref: table-system-return-values574952 -Ref: I/O Functions-Footnote-1577032 -Ref: I/O Functions-Footnote-2577180 -Node: Time Functions577300 -Ref: Time Functions-Footnote-1587971 -Ref: Time Functions-Footnote-2588039 -Ref: Time Functions-Footnote-3588197 -Ref: Time Functions-Footnote-4588308 -Ref: Time Functions-Footnote-5588420 -Ref: Time Functions-Footnote-6588647 -Node: Bitwise Functions588913 -Ref: table-bitwise-ops589507 -Ref: Bitwise Functions-Footnote-1595570 -Ref: Bitwise Functions-Footnote-2595743 -Node: Type Functions595934 -Node: I18N Functions598685 -Node: User-defined600336 -Node: Definition Syntax601141 -Ref: Definition Syntax-Footnote-1606828 -Node: Function Example606899 -Ref: Function Example-Footnote-1609821 -Node: Function Caveats609843 -Node: Calling A Function610361 -Node: Variable Scope611319 -Node: Pass By Value/Reference614313 -Node: Return Statement617812 -Node: Dynamic Typing620791 -Node: Indirect Calls621721 -Ref: Indirect Calls-Footnote-1631973 -Node: Functions Summary632101 -Node: Library Functions634806 -Ref: Library Functions-Footnote-1638413 -Ref: Library Functions-Footnote-2638556 -Node: Library Names638727 -Ref: Library Names-Footnote-1642187 -Ref: Library Names-Footnote-2642410 -Node: General Functions642496 -Node: Strtonum Function643599 -Node: Assert Function646621 -Node: Round Function649947 -Node: Cliff Random Function651487 -Node: Ordinal Functions652503 -Ref: Ordinal Functions-Footnote-1655566 -Ref: Ordinal Functions-Footnote-2655818 -Node: Join Function656028 -Ref: Join Function-Footnote-1657798 -Node: Getlocaltime Function657998 -Node: Readfile Function661740 -Node: Shell Quoting663717 -Node: Data File Management665118 -Node: Filetrans Function665750 -Node: Rewind Function669846 -Node: File Checking671756 -Ref: File Checking-Footnote-1673090 -Node: Empty Files673291 -Node: Ignoring Assigns675270 -Node: Getopt Function676820 -Ref: Getopt Function-Footnote-1688289 -Node: Passwd Functions688489 -Ref: Passwd Functions-Footnote-1697328 -Node: Group Functions697416 -Ref: Group Functions-Footnote-1705314 -Node: Walking Arrays705521 -Node: Library Functions Summary708529 -Node: Library Exercises709935 -Node: Sample Programs710400 -Node: Running Examples711170 -Node: Clones711898 -Node: Cut Program713122 -Node: Egrep Program723051 -Ref: Egrep Program-Footnote-1730563 -Node: Id Program730673 -Node: Split Program734353 -Ref: Split Program-Footnote-1737811 -Node: Tee Program737940 -Node: Uniq Program740730 -Node: Wc Program748156 -Ref: Wc Program-Footnote-1752411 -Node: Miscellaneous Programs752505 -Node: Dupword Program753718 -Node: Alarm Program755748 -Node: Translate Program760603 -Ref: Translate Program-Footnote-1765168 -Node: Labels Program765438 -Ref: Labels Program-Footnote-1768789 -Node: Word Sorting768873 -Node: History Sorting772945 -Node: Extract Program774780 -Node: Simple Sed782834 -Node: Igawk Program785908 -Ref: Igawk Program-Footnote-1800239 -Ref: Igawk Program-Footnote-2800441 -Ref: Igawk Program-Footnote-3800563 -Node: Anagram Program800678 -Node: Signature Program803740 -Node: Programs Summary804987 -Node: Programs Exercises806201 -Ref: Programs Exercises-Footnote-1810330 -Node: Advanced Features810421 -Node: Nondecimal Data812411 -Node: Array Sorting814002 -Node: Controlling Array Traversal814702 -Ref: Controlling Array Traversal-Footnote-1823070 -Node: Array Sorting Functions823188 -Ref: Array Sorting Functions-Footnote-1828279 -Node: Two-way I/O828475 -Ref: Two-way I/O-Footnote-1836195 -Ref: Two-way I/O-Footnote-2836382 -Node: TCP/IP Networking836464 -Node: Profiling839582 -Node: Advanced Features Summary848587 -Node: Internationalization850431 -Node: I18N and L10N851911 -Node: Explaining gettext852598 -Ref: Explaining gettext-Footnote-1858490 -Ref: Explaining gettext-Footnote-2858675 -Node: Programmer i18n858840 -Ref: Programmer i18n-Footnote-1863789 -Node: Translator i18n863838 -Node: String Extraction864632 -Ref: String Extraction-Footnote-1865764 -Node: Printf Ordering865850 -Ref: Printf Ordering-Footnote-1868636 -Node: I18N Portability868700 -Ref: I18N Portability-Footnote-1871156 -Node: I18N Example871219 -Ref: I18N Example-Footnote-1874025 -Node: Gawk I18N874098 -Node: I18N Summary874743 -Node: Debugger876084 -Node: Debugging877107 -Node: Debugging Concepts877548 -Node: Debugging Terms879357 -Node: Awk Debugging881932 -Node: Sample Debugging Session882838 -Node: Debugger Invocation883372 -Node: Finding The Bug884758 -Node: List of Debugger Commands891236 -Node: Breakpoint Control892569 -Node: Debugger Execution Control896263 -Node: Viewing And Changing Data899625 -Node: Execution Stack902999 -Node: Debugger Info904636 -Node: Miscellaneous Debugger Commands908707 -Node: Readline Support913769 -Node: Limitations914665 -Node: Debugging Summary916774 -Node: Arbitrary Precision Arithmetic918053 -Node: Computer Arithmetic919538 -Ref: table-numeric-ranges923304 -Ref: table-floating-point-ranges923797 -Ref: Computer Arithmetic-Footnote-1924455 -Node: Math Definitions924512 -Ref: table-ieee-formats927828 -Ref: Math Definitions-Footnote-1928431 -Node: MPFR features928536 -Node: FP Math Caution930254 -Ref: FP Math Caution-Footnote-1931326 -Node: Inexactness of computations931695 -Node: Inexact representation932655 -Node: Comparing FP Values934015 -Node: Errors accumulate935256 -Node: Getting Accuracy936689 -Node: Try To Round939399 -Node: Setting precision940298 -Ref: table-predefined-precision-strings940995 -Node: Setting the rounding mode942825 -Ref: table-gawk-rounding-modes943199 -Ref: Setting the rounding mode-Footnote-1947130 -Node: Arbitrary Precision Integers947309 -Ref: Arbitrary Precision Integers-Footnote-1950484 -Node: Checking for MPFR950633 -Node: POSIX Floating Point Problems952107 -Ref: POSIX Floating Point Problems-Footnote-1956392 -Node: Floating point summary956430 -Node: Dynamic Extensions958620 -Node: Extension Intro960173 -Node: Plugin License961439 -Node: Extension Mechanism Outline962236 -Ref: figure-load-extension962675 -Ref: figure-register-new-function964240 -Ref: figure-call-new-function965332 -Node: Extension API Description967394 -Node: Extension API Functions Introduction969036 -Node: General Data Types974576 -Ref: General Data Types-Footnote-1982937 -Node: Memory Allocation Functions983236 -Ref: Memory Allocation Functions-Footnote-1987446 -Node: Constructor Functions987545 -Node: Registration Functions991131 -Node: Extension Functions991816 -Node: Exit Callback Functions997031 -Node: Extension Version String998281 -Node: Input Parsers998944 -Node: Output Wrappers1011665 -Node: Two-way processors1016177 -Node: Printing Messages1018442 -Ref: Printing Messages-Footnote-11019613 -Node: Updating ERRNO1019766 -Node: Requesting Values1020505 -Ref: table-value-types-returned1021242 -Node: Accessing Parameters1022178 -Node: Symbol Table Access1023413 -Node: Symbol table by name1023925 -Node: Symbol table by cookie1025714 -Ref: Symbol table by cookie-Footnote-11029899 -Node: Cached values1029963 -Ref: Cached values-Footnote-11033499 -Node: Array Manipulation1033652 -Ref: Array Manipulation-Footnote-11034743 -Node: Array Data Types1034780 -Ref: Array Data Types-Footnote-11037438 -Node: Array Functions1037530 -Node: Flattening Arrays1042028 -Node: Creating Arrays1049004 -Node: Redirection API1053771 -Node: Extension API Variables1056604 -Node: Extension Versioning1057315 -Ref: gawk-api-version1057744 -Node: Extension GMP/MPFR Versioning1059475 -Node: Extension API Informational Variables1061103 -Node: Extension API Boilerplate1062176 -Node: Changes from API V11066150 -Node: Finding Extensions1067722 -Node: Extension Example1068281 -Node: Internal File Description1069079 -Node: Internal File Ops1073159 -Ref: Internal File Ops-Footnote-11084509 -Node: Using Internal File Ops1084649 -Ref: Using Internal File Ops-Footnote-11087032 -Node: Extension Samples1087306 -Node: Extension Sample File Functions1088835 -Node: Extension Sample Fnmatch1096484 -Node: Extension Sample Fork1097971 -Node: Extension Sample Inplace1099189 -Node: Extension Sample Ord1102406 -Node: Extension Sample Readdir1103242 -Ref: table-readdir-file-types1104131 -Node: Extension Sample Revout1104936 -Node: Extension Sample Rev2way1105525 -Node: Extension Sample Read write array1106265 -Node: Extension Sample Readfile1108207 -Node: Extension Sample Time1109302 -Node: Extension Sample API Tests1110650 -Node: gawkextlib1111142 -Node: Extension summary1114060 -Node: Extension Exercises1117762 -Node: Language History1119260 -Node: V7/SVR3.11120916 -Node: SVR41123068 -Node: POSIX1124502 -Node: BTL1125882 -Node: POSIX/GNU1126611 -Node: Feature History1132389 -Node: Common Extensions1148435 -Node: Ranges and Locales1149718 -Ref: Ranges and Locales-Footnote-11154334 -Ref: Ranges and Locales-Footnote-21154361 -Ref: Ranges and Locales-Footnote-31154596 -Node: Contributors1154817 -Node: History summary1160762 -Node: Installation1162142 -Node: Gawk Distribution1163086 -Node: Getting1163570 -Node: Extracting1164533 -Node: Distribution contents1166171 -Node: Unix Installation1172651 -Node: Quick Installation1173333 -Node: Shell Startup Files1175747 -Node: Additional Configuration Options1176836 -Node: Configuration Philosophy1179001 -Node: Non-Unix Installation1181370 -Node: PC Installation1181830 -Node: PC Binary Installation1182668 -Node: PC Compiling1183103 -Node: PC Using1184220 -Node: Cygwin1187435 -Node: MSYS1188534 -Node: VMS Installation1189035 -Node: VMS Compilation1189826 -Ref: VMS Compilation-Footnote-11191055 -Node: VMS Dynamic Extensions1191113 -Node: VMS Installation Details1192798 -Node: VMS Running1195051 -Node: VMS GNV1199330 -Node: VMS Old Gawk1200065 -Node: Bugs1200536 -Node: Bug address1201199 -Node: Usenet1204181 -Node: Maintainers1205185 -Node: Other Versions1206446 -Node: Installation summary1213004 -Node: Notes1214206 -Node: Compatibility Mode1215000 -Node: Additions1215782 -Node: Accessing The Source1216707 -Node: Adding Code1218144 -Node: New Ports1224363 -Node: Derived Files1228851 -Ref: Derived Files-Footnote-11234497 -Ref: Derived Files-Footnote-21234532 -Ref: Derived Files-Footnote-31235130 -Node: Future Extensions1235244 -Node: Implementation Limitations1235902 -Node: Extension Design1237085 -Node: Old Extension Problems1238229 -Ref: Old Extension Problems-Footnote-11239747 -Node: Extension New Mechanism Goals1239804 -Ref: Extension New Mechanism Goals-Footnote-11243168 -Node: Extension Other Design Decisions1243357 -Node: Extension Future Growth1245470 -Node: Notes summary1246306 -Node: Basic Concepts1247481 -Node: Basic High Level1248162 -Ref: figure-general-flow1248444 -Ref: figure-process-flow1249129 -Ref: Basic High Level-Footnote-11252430 -Node: Basic Data Typing1252615 -Node: Glossary1255943 -Node: Copying1287781 -Node: GNU Free Documentation License1325324 -Node: Index1350444 +Ref: Auto-set-Footnote-1482792 +Ref: Auto-set-Footnote-2482998 +Node: ARGC and ARGV483054 +Node: Pattern Action Summary487267 +Node: Arrays489697 +Node: Array Basics491026 +Node: Array Intro491870 +Ref: figure-array-elements493845 +Ref: Array Intro-Footnote-1496549 +Node: Reference to Elements496677 +Node: Assigning Elements499141 +Node: Array Example499632 +Node: Scanning an Array501391 +Node: Controlling Scanning504413 +Ref: Controlling Scanning-Footnote-1509812 +Node: Numeric Array Subscripts510128 +Node: Uninitialized Subscripts512312 +Node: Delete513931 +Ref: Delete-Footnote-1516683 +Node: Multidimensional516740 +Node: Multiscanning519835 +Node: Arrays of Arrays521426 +Node: Arrays Summary526194 +Node: Functions528287 +Node: Built-in529325 +Node: Calling Built-in530406 +Node: Numeric Functions532402 +Ref: Numeric Functions-Footnote-1536430 +Ref: Numeric Functions-Footnote-2536787 +Ref: Numeric Functions-Footnote-3536835 +Node: String Functions537107 +Ref: String Functions-Footnote-1560965 +Ref: String Functions-Footnote-2561093 +Ref: String Functions-Footnote-3561341 +Node: Gory Details561428 +Ref: table-sub-escapes563219 +Ref: table-sub-proposed564738 +Ref: table-posix-sub566101 +Ref: table-gensub-escapes567642 +Ref: Gory Details-Footnote-1568465 +Node: I/O Functions568619 +Ref: table-system-return-values575087 +Ref: I/O Functions-Footnote-1577167 +Ref: I/O Functions-Footnote-2577315 +Node: Time Functions577435 +Ref: Time Functions-Footnote-1588106 +Ref: Time Functions-Footnote-2588174 +Ref: Time Functions-Footnote-3588332 +Ref: Time Functions-Footnote-4588443 +Ref: Time Functions-Footnote-5588555 +Ref: Time Functions-Footnote-6588782 +Node: Bitwise Functions589048 +Ref: table-bitwise-ops589642 +Ref: Bitwise Functions-Footnote-1595705 +Ref: Bitwise Functions-Footnote-2595878 +Node: Type Functions596069 +Node: I18N Functions598820 +Node: User-defined600471 +Node: Definition Syntax601276 +Ref: Definition Syntax-Footnote-1606963 +Node: Function Example607034 +Ref: Function Example-Footnote-1609956 +Node: Function Caveats609978 +Node: Calling A Function610496 +Node: Variable Scope611454 +Node: Pass By Value/Reference614448 +Node: Return Statement617947 +Node: Dynamic Typing620926 +Node: Indirect Calls621856 +Ref: Indirect Calls-Footnote-1632108 +Node: Functions Summary632236 +Node: Library Functions634941 +Ref: Library Functions-Footnote-1638548 +Ref: Library Functions-Footnote-2638691 +Node: Library Names638862 +Ref: Library Names-Footnote-1642322 +Ref: Library Names-Footnote-2642545 +Node: General Functions642631 +Node: Strtonum Function643734 +Node: Assert Function646756 +Node: Round Function650082 +Node: Cliff Random Function651622 +Node: Ordinal Functions652638 +Ref: Ordinal Functions-Footnote-1655701 +Ref: Ordinal Functions-Footnote-2655953 +Node: Join Function656163 +Ref: Join Function-Footnote-1657933 +Node: Getlocaltime Function658133 +Node: Readfile Function661875 +Node: Shell Quoting663852 +Node: Data File Management665253 +Node: Filetrans Function665885 +Node: Rewind Function669981 +Node: File Checking671891 +Ref: File Checking-Footnote-1673225 +Node: Empty Files673426 +Node: Ignoring Assigns675405 +Node: Getopt Function676955 +Ref: Getopt Function-Footnote-1688424 +Node: Passwd Functions688624 +Ref: Passwd Functions-Footnote-1697463 +Node: Group Functions697551 +Ref: Group Functions-Footnote-1705449 +Node: Walking Arrays705656 +Node: Library Functions Summary708664 +Node: Library Exercises710070 +Node: Sample Programs710535 +Node: Running Examples711305 +Node: Clones712033 +Node: Cut Program713257 +Node: Egrep Program723186 +Ref: Egrep Program-Footnote-1730698 +Node: Id Program730808 +Node: Split Program734488 +Ref: Split Program-Footnote-1737946 +Node: Tee Program738075 +Node: Uniq Program740865 +Node: Wc Program748291 +Ref: Wc Program-Footnote-1752546 +Node: Miscellaneous Programs752640 +Node: Dupword Program753853 +Node: Alarm Program755883 +Node: Translate Program760738 +Ref: Translate Program-Footnote-1765303 +Node: Labels Program765573 +Ref: Labels Program-Footnote-1768924 +Node: Word Sorting769008 +Node: History Sorting773080 +Node: Extract Program774915 +Node: Simple Sed782969 +Node: Igawk Program786043 +Ref: Igawk Program-Footnote-1800374 +Ref: Igawk Program-Footnote-2800576 +Ref: Igawk Program-Footnote-3800698 +Node: Anagram Program800813 +Node: Signature Program803875 +Node: Programs Summary805122 +Node: Programs Exercises806336 +Ref: Programs Exercises-Footnote-1810465 +Node: Advanced Features810556 +Node: Nondecimal Data812546 +Node: Array Sorting814137 +Node: Controlling Array Traversal814837 +Ref: Controlling Array Traversal-Footnote-1823205 +Node: Array Sorting Functions823323 +Ref: Array Sorting Functions-Footnote-1828414 +Node: Two-way I/O828610 +Ref: Two-way I/O-Footnote-1836330 +Ref: Two-way I/O-Footnote-2836517 +Node: TCP/IP Networking836599 +Node: Profiling839717 +Node: Advanced Features Summary848722 +Node: Internationalization850566 +Node: I18N and L10N852046 +Node: Explaining gettext852733 +Ref: Explaining gettext-Footnote-1858625 +Ref: Explaining gettext-Footnote-2858810 +Node: Programmer i18n858975 +Ref: Programmer i18n-Footnote-1863924 +Node: Translator i18n863973 +Node: String Extraction864767 +Ref: String Extraction-Footnote-1865899 +Node: Printf Ordering865985 +Ref: Printf Ordering-Footnote-1868771 +Node: I18N Portability868835 +Ref: I18N Portability-Footnote-1871291 +Node: I18N Example871354 +Ref: I18N Example-Footnote-1874160 +Node: Gawk I18N874233 +Node: I18N Summary874878 +Node: Debugger876219 +Node: Debugging877242 +Node: Debugging Concepts877683 +Node: Debugging Terms879492 +Node: Awk Debugging882067 +Node: Sample Debugging Session882973 +Node: Debugger Invocation883507 +Node: Finding The Bug884893 +Node: List of Debugger Commands891371 +Node: Breakpoint Control892704 +Node: Debugger Execution Control896398 +Node: Viewing And Changing Data899760 +Node: Execution Stack903134 +Node: Debugger Info904771 +Node: Miscellaneous Debugger Commands908842 +Node: Readline Support913904 +Node: Limitations914800 +Node: Debugging Summary916909 +Node: Arbitrary Precision Arithmetic918188 +Node: Computer Arithmetic919673 +Ref: table-numeric-ranges923439 +Ref: table-floating-point-ranges923932 +Ref: Computer Arithmetic-Footnote-1924590 +Node: Math Definitions924647 +Ref: table-ieee-formats927963 +Ref: Math Definitions-Footnote-1928566 +Node: MPFR features928671 +Node: FP Math Caution930389 +Ref: FP Math Caution-Footnote-1931461 +Node: Inexactness of computations931830 +Node: Inexact representation932790 +Node: Comparing FP Values934150 +Node: Errors accumulate935391 +Node: Getting Accuracy936824 +Node: Try To Round939534 +Node: Setting precision940433 +Ref: table-predefined-precision-strings941130 +Node: Setting the rounding mode942960 +Ref: table-gawk-rounding-modes943334 +Ref: Setting the rounding mode-Footnote-1947265 +Node: Arbitrary Precision Integers947444 +Ref: Arbitrary Precision Integers-Footnote-1950619 +Node: Checking for MPFR950768 +Node: POSIX Floating Point Problems952242 +Ref: POSIX Floating Point Problems-Footnote-1956527 +Node: Floating point summary956565 +Node: Dynamic Extensions958755 +Node: Extension Intro960308 +Node: Plugin License961574 +Node: Extension Mechanism Outline962371 +Ref: figure-load-extension962810 +Ref: figure-register-new-function964375 +Ref: figure-call-new-function965467 +Node: Extension API Description967529 +Node: Extension API Functions Introduction969171 +Node: General Data Types974711 +Ref: General Data Types-Footnote-1983072 +Node: Memory Allocation Functions983371 +Ref: Memory Allocation Functions-Footnote-1987581 +Node: Constructor Functions987680 +Node: Registration Functions991266 +Node: Extension Functions991951 +Node: Exit Callback Functions997166 +Node: Extension Version String998416 +Node: Input Parsers999079 +Node: Output Wrappers1011800 +Node: Two-way processors1016312 +Node: Printing Messages1018577 +Ref: Printing Messages-Footnote-11019748 +Node: Updating ERRNO1019901 +Node: Requesting Values1020640 +Ref: table-value-types-returned1021377 +Node: Accessing Parameters1022313 +Node: Symbol Table Access1023548 +Node: Symbol table by name1024060 +Node: Symbol table by cookie1025849 +Ref: Symbol table by cookie-Footnote-11030034 +Node: Cached values1030098 +Ref: Cached values-Footnote-11033634 +Node: Array Manipulation1033787 +Ref: Array Manipulation-Footnote-11034878 +Node: Array Data Types1034915 +Ref: Array Data Types-Footnote-11037573 +Node: Array Functions1037665 +Node: Flattening Arrays1042163 +Node: Creating Arrays1049139 +Node: Redirection API1053906 +Node: Extension API Variables1056739 +Node: Extension Versioning1057450 +Ref: gawk-api-version1057879 +Node: Extension GMP/MPFR Versioning1059610 +Node: Extension API Informational Variables1061238 +Node: Extension API Boilerplate1062311 +Node: Changes from API V11066285 +Node: Finding Extensions1067857 +Node: Extension Example1068416 +Node: Internal File Description1069214 +Node: Internal File Ops1073294 +Ref: Internal File Ops-Footnote-11084644 +Node: Using Internal File Ops1084784 +Ref: Using Internal File Ops-Footnote-11087167 +Node: Extension Samples1087441 +Node: Extension Sample File Functions1088970 +Node: Extension Sample Fnmatch1096619 +Node: Extension Sample Fork1098106 +Node: Extension Sample Inplace1099324 +Node: Extension Sample Ord1102541 +Node: Extension Sample Readdir1103377 +Ref: table-readdir-file-types1104266 +Node: Extension Sample Revout1105071 +Node: Extension Sample Rev2way1105660 +Node: Extension Sample Read write array1106400 +Node: Extension Sample Readfile1108342 +Node: Extension Sample Time1109437 +Node: Extension Sample API Tests1110785 +Node: gawkextlib1111277 +Node: Extension summary1114195 +Node: Extension Exercises1117897 +Node: Language History1119395 +Node: V7/SVR3.11121051 +Node: SVR41123203 +Node: POSIX1124637 +Node: BTL1126017 +Node: POSIX/GNU1126746 +Node: Feature History1132524 +Node: Common Extensions1148570 +Node: Ranges and Locales1149853 +Ref: Ranges and Locales-Footnote-11154469 +Ref: Ranges and Locales-Footnote-21154496 +Ref: Ranges and Locales-Footnote-31154731 +Node: Contributors1154952 +Node: History summary1160897 +Node: Installation1162277 +Node: Gawk Distribution1163221 +Node: Getting1163705 +Node: Extracting1164668 +Node: Distribution contents1166306 +Node: Unix Installation1172786 +Node: Quick Installation1173468 +Node: Shell Startup Files1175882 +Node: Additional Configuration Options1176971 +Node: Configuration Philosophy1179136 +Node: Non-Unix Installation1181505 +Node: PC Installation1181965 +Node: PC Binary Installation1182803 +Node: PC Compiling1183238 +Node: PC Using1184355 +Node: Cygwin1187908 +Node: MSYS1189007 +Node: VMS Installation1189508 +Node: VMS Compilation1190299 +Ref: VMS Compilation-Footnote-11191528 +Node: VMS Dynamic Extensions1191586 +Node: VMS Installation Details1193271 +Node: VMS Running1195524 +Node: VMS GNV1199803 +Node: VMS Old Gawk1200538 +Node: Bugs1201009 +Node: Bug address1201672 +Node: Usenet1204654 +Node: Maintainers1205658 +Node: Other Versions1206919 +Node: Installation summary1213477 +Node: Notes1214679 +Node: Compatibility Mode1215473 +Node: Additions1216255 +Node: Accessing The Source1217180 +Node: Adding Code1218617 +Node: New Ports1224836 +Node: Derived Files1229324 +Ref: Derived Files-Footnote-11234970 +Ref: Derived Files-Footnote-21235005 +Ref: Derived Files-Footnote-31235603 +Node: Future Extensions1235717 +Node: Implementation Limitations1236375 +Node: Extension Design1237558 +Node: Old Extension Problems1238702 +Ref: Old Extension Problems-Footnote-11240220 +Node: Extension New Mechanism Goals1240277 +Ref: Extension New Mechanism Goals-Footnote-11243641 +Node: Extension Other Design Decisions1243830 +Node: Extension Future Growth1245943 +Node: Notes summary1246779 +Node: Basic Concepts1247954 +Node: Basic High Level1248635 +Ref: figure-general-flow1248917 +Ref: figure-process-flow1249602 +Ref: Basic High Level-Footnote-11252903 +Node: Basic Data Typing1253088 +Node: Glossary1256416 +Node: Copying1288254 +Node: GNU Free Documentation License1325797 +Node: Index1350917 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 6f5f4f81..d9f6bc9c 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -8105,7 +8105,6 @@ FPAT = "([^,]*)|(\"[^\"]+\")" Finally, the @code{patsplit()} function makes the same functionality available for splitting regular strings (@pxref{String Functions}). - @node Testing field creation @section Checking How @command{gawk} Is Splitting Records @@ -15762,19 +15761,18 @@ This element gives a string indicating the platform for which @item "vms" OpenVMS or Vax/VMS. -@item "macosx" -Mac OS X. - -@item "cygwin" -@itemx "djgpp" +@item "djgpp" @itemx "mingw" -Microsoft Windows, using either Cygwin, DJGPP, or MinGW, respectively. +Microsoft Windows, using either DJGPP or MinGW, respectively. @item "os2" OS/2. +@item "os390" +OS/390. + @item "posix" -GNU/Linux and legacy Unix systems. +GNU/Linux, Cygwin, Mac OS X, and legacy Unix systems. @end table @item PROCINFO["pgrpid"] @@ -18431,8 +18429,8 @@ whitespace goes into @code{@var{seps}[@var{n}]}, where @var{n} is the return value of @code{split()} (i.e., the number of elements in @var{array}). -The @code{split()} function splits strings into pieces in a -manner similar to the way input lines are split into fields. For example: +The @code{split()} function splits strings into pieces in the same way +that input lines are split into fields. For example: @example split("cul-de-sac", a, "-", seps) @@ -18468,6 +18466,8 @@ are separated by runs of whitespace. Also, as with input field splitting, if @var{fieldsep} is the null string, each individual character in the string is split into its own array element. @value{COMMONEXT} +Additionally, if @var{fieldsep} is a single-character string, that string acts +as the separator, even if its value is a regular expression metacharacter. Note, however, that @code{RS} has no effect on the way @code{split()} works. Even though @samp{RS = ""} causes the newline character to also be an input @@ -40049,6 +40049,12 @@ appropriate @samp{-v BINMODE=@var{N}} option on the command line. @code{BINMODE} is set at the time a file or pipe is opened and cannot be changed midstream. +On POSIX-compatible systems, this variable's value has no effect. +Thus, if you think your program will run on multiple different systems +and that you may need to use @code{BINMODE}, you should simply set it +(in the program or on the command line) unconditionally, and not worry +about the operating system on which your program is running. + The name @code{BINMODE} was chosen to match @command{mawk} (@pxref{Other Versions}). @command{mawk} and @command{gawk} handle @code{BINMODE} similarly; however, diff --git a/doc/gawktexi.in b/doc/gawktexi.in index a8434568..e7bb7022 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -7704,7 +7704,6 @@ FPAT = "([^,]*)|(\"[^\"]+\")" Finally, the @code{patsplit()} function makes the same functionality available for splitting regular strings (@pxref{String Functions}). - @node Testing field creation @section Checking How @command{gawk} Is Splitting Records @@ -15080,19 +15079,18 @@ This element gives a string indicating the platform for which @item "vms" OpenVMS or Vax/VMS. -@item "macosx" -Mac OS X. - -@item "cygwin" -@itemx "djgpp" +@item "djgpp" @itemx "mingw" -Microsoft Windows, using either Cygwin, DJGPP, or MinGW, respectively. +Microsoft Windows, using either DJGPP or MinGW, respectively. @item "os2" OS/2. +@item "os390" +OS/390. + @item "posix" -GNU/Linux and legacy Unix systems. +GNU/Linux, Cygwin, Mac OS X, and legacy Unix systems. @end table @item PROCINFO["pgrpid"] @@ -17703,8 +17701,8 @@ whitespace goes into @code{@var{seps}[@var{n}]}, where @var{n} is the return value of @code{split()} (i.e., the number of elements in @var{array}). -The @code{split()} function splits strings into pieces in a -manner similar to the way input lines are split into fields. For example: +The @code{split()} function splits strings into pieces in the same way +that input lines are split into fields. For example: @example split("cul-de-sac", a, "-", seps) @@ -17740,6 +17738,8 @@ are separated by runs of whitespace. Also, as with input field splitting, if @var{fieldsep} is the null string, each individual character in the string is split into its own array element. @value{COMMONEXT} +Additionally, if @var{fieldsep} is a single-character string, that string acts +as the separator, even if its value is a regular expression metacharacter. Note, however, that @code{RS} has no effect on the way @code{split()} works. Even though @samp{RS = ""} causes the newline character to also be an input @@ -39023,6 +39023,12 @@ appropriate @samp{-v BINMODE=@var{N}} option on the command line. @code{BINMODE} is set at the time a file or pipe is opened and cannot be changed midstream. +On POSIX-compatible systems, this variable's value has no effect. +Thus, if you think your program will run on multiple different systems +and that you may need to use @code{BINMODE}, you should simply set it +(in the program or on the command line) unconditionally, and not worry +about the operating system on which your program is running. + The name @code{BINMODE} was chosen to match @command{mawk} (@pxref{Other Versions}). @command{mawk} and @command{gawk} handle @code{BINMODE} similarly; however, @@ -1777,18 +1777,17 @@ set_locale_stuff(void) static const char * platform_name() { + // Cygwin and Mac OS X count as POSIX #if defined(__VMS) return "vms"; -#elif defined(__APPLE__) - return "macosx"; #elif defined(__MINGW32__) return "mingw"; #elif defined(__DJGPP__) return "djgpp"; -#elif defined(__CYGWIN__) - return "cygwin"; #elif defined(__EMX__) return "os2"; +#elif defined(USE_EBCDIC) + return "os390"; #else return "posix"; #endif |