diff options
-rwxr-xr-x | ChangeLog | 5 | ||||
-rw-r--r-- | doc/ChangeLog | 6 | ||||
-rw-r--r-- | doc/gawk.info | 795 | ||||
-rw-r--r-- | doc/gawk.texi | 19 | ||||
-rw-r--r-- | doc/gawktexi.in | 19 | ||||
-rw-r--r-- | main.c | 7 |
6 files changed, 438 insertions, 413 deletions
@@ -1,3 +1,8 @@ +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. + 2018-11-25 Arnold D. Robbins <arnold@skeeve.com> * main.c (platform_name): New function returning platform name. diff --git a/doc/ChangeLog b/doc/ChangeLog index 26d310d7..0112f021 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,11 @@ 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. diff --git a/doc/gawk.info b/doc/gawk.info index 17fee5c1..dacbee12 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. @@ -29375,6 +29374,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 @@ -33903,7 +33908,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) @@ -34139,7 +34144,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. @@ -34148,7 +34153,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. @@ -34312,7 +34317,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) @@ -34471,7 +34476,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. @@ -34575,7 +34580,7 @@ Index * G., Daniel Richard <1>: Maintainers. (line 14) * Garfinkle, Scott: Contributors. (line 35) * gawk program, dynamic profiling: Profiling. (line 177) -* 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) @@ -34651,13 +34656,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) @@ -35055,7 +35060,7 @@ Index * 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) @@ -35068,7 +35073,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) @@ -35127,7 +35132,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) @@ -35247,7 +35252,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) @@ -35417,8 +35422,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) @@ -35595,7 +35600,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) @@ -35623,11 +35628,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) @@ -35645,7 +35650,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) @@ -35731,7 +35736,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. @@ -35898,9 +35903,9 @@ Index * 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) @@ -36082,10 +36087,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) @@ -36364,369 +36369,369 @@ 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-1560979 -Ref: String Functions-Footnote-2561107 -Ref: String Functions-Footnote-3561355 -Node: Gory Details561442 -Ref: table-sub-escapes563233 -Ref: table-sub-proposed564752 -Ref: table-posix-sub566115 -Ref: table-gensub-escapes567656 -Ref: Gory Details-Footnote-1568479 -Node: I/O Functions568633 -Ref: table-system-return-values575101 -Ref: I/O Functions-Footnote-1577181 -Ref: I/O Functions-Footnote-2577329 -Node: Time Functions577449 -Ref: Time Functions-Footnote-1588120 -Ref: Time Functions-Footnote-2588188 -Ref: Time Functions-Footnote-3588346 -Ref: Time Functions-Footnote-4588457 -Ref: Time Functions-Footnote-5588569 -Ref: Time Functions-Footnote-6588796 -Node: Bitwise Functions589062 -Ref: table-bitwise-ops589656 -Ref: Bitwise Functions-Footnote-1595719 -Ref: Bitwise Functions-Footnote-2595892 -Node: Type Functions596083 -Node: I18N Functions598834 -Node: User-defined600485 -Node: Definition Syntax601290 -Ref: Definition Syntax-Footnote-1606977 -Node: Function Example607048 -Ref: Function Example-Footnote-1609970 -Node: Function Caveats609992 -Node: Calling A Function610510 -Node: Variable Scope611468 -Node: Pass By Value/Reference614462 -Node: Return Statement617961 -Node: Dynamic Typing620940 -Node: Indirect Calls621870 -Ref: Indirect Calls-Footnote-1632122 -Node: Functions Summary632250 -Node: Library Functions634955 -Ref: Library Functions-Footnote-1638562 -Ref: Library Functions-Footnote-2638705 -Node: Library Names638876 -Ref: Library Names-Footnote-1642336 -Ref: Library Names-Footnote-2642559 -Node: General Functions642645 -Node: Strtonum Function643748 -Node: Assert Function646770 -Node: Round Function650096 -Node: Cliff Random Function651636 -Node: Ordinal Functions652652 -Ref: Ordinal Functions-Footnote-1655715 -Ref: Ordinal Functions-Footnote-2655967 -Node: Join Function656177 -Ref: Join Function-Footnote-1657947 -Node: Getlocaltime Function658147 -Node: Readfile Function661889 -Node: Shell Quoting663866 -Node: Data File Management665267 -Node: Filetrans Function665899 -Node: Rewind Function669995 -Node: File Checking671905 -Ref: File Checking-Footnote-1673239 -Node: Empty Files673440 -Node: Ignoring Assigns675419 -Node: Getopt Function676969 -Ref: Getopt Function-Footnote-1688438 -Node: Passwd Functions688638 -Ref: Passwd Functions-Footnote-1697477 -Node: Group Functions697565 -Ref: Group Functions-Footnote-1705463 -Node: Walking Arrays705670 -Node: Library Functions Summary708678 -Node: Library Exercises710084 -Node: Sample Programs710549 -Node: Running Examples711319 -Node: Clones712047 -Node: Cut Program713271 -Node: Egrep Program723200 -Ref: Egrep Program-Footnote-1730712 -Node: Id Program730822 -Node: Split Program734502 -Ref: Split Program-Footnote-1737960 -Node: Tee Program738089 -Node: Uniq Program740879 -Node: Wc Program748305 -Ref: Wc Program-Footnote-1752560 -Node: Miscellaneous Programs752654 -Node: Dupword Program753867 -Node: Alarm Program755897 -Node: Translate Program760752 -Ref: Translate Program-Footnote-1765317 -Node: Labels Program765587 -Ref: Labels Program-Footnote-1768938 -Node: Word Sorting769022 -Node: History Sorting773094 -Node: Extract Program774929 -Node: Simple Sed782983 -Node: Igawk Program786057 -Ref: Igawk Program-Footnote-1800388 -Ref: Igawk Program-Footnote-2800590 -Ref: Igawk Program-Footnote-3800712 -Node: Anagram Program800827 -Node: Signature Program803889 -Node: Programs Summary805136 -Node: Programs Exercises806350 -Ref: Programs Exercises-Footnote-1810479 -Node: Advanced Features810570 -Node: Nondecimal Data812560 -Node: Array Sorting814151 -Node: Controlling Array Traversal814851 -Ref: Controlling Array Traversal-Footnote-1823219 -Node: Array Sorting Functions823337 -Ref: Array Sorting Functions-Footnote-1828428 -Node: Two-way I/O828624 -Ref: Two-way I/O-Footnote-1836344 -Ref: Two-way I/O-Footnote-2836531 -Node: TCP/IP Networking836613 -Node: Profiling839731 -Ref: Profiling-Footnote-1848403 -Node: Advanced Features Summary848726 -Node: Internationalization850570 -Node: I18N and L10N852050 -Node: Explaining gettext852737 -Ref: Explaining gettext-Footnote-1858629 -Ref: Explaining gettext-Footnote-2858814 -Node: Programmer i18n858979 -Ref: Programmer i18n-Footnote-1863928 -Node: Translator i18n863977 -Node: String Extraction864771 -Ref: String Extraction-Footnote-1865903 -Node: Printf Ordering865989 -Ref: Printf Ordering-Footnote-1868775 -Node: I18N Portability868839 -Ref: I18N Portability-Footnote-1871295 -Node: I18N Example871358 -Ref: I18N Example-Footnote-1874164 -Node: Gawk I18N874237 -Node: I18N Summary874882 -Node: Debugger876223 -Node: Debugging877246 -Node: Debugging Concepts877687 -Node: Debugging Terms879496 -Node: Awk Debugging882071 -Node: Sample Debugging Session882977 -Node: Debugger Invocation883511 -Node: Finding The Bug884897 -Node: List of Debugger Commands891375 -Node: Breakpoint Control892708 -Node: Debugger Execution Control896402 -Node: Viewing And Changing Data899764 -Node: Execution Stack903138 -Node: Debugger Info904775 -Node: Miscellaneous Debugger Commands908846 -Node: Readline Support913908 -Node: Limitations914804 -Node: Debugging Summary916913 -Node: Arbitrary Precision Arithmetic918192 -Node: Computer Arithmetic919677 -Ref: table-numeric-ranges923443 -Ref: table-floating-point-ranges923936 -Ref: Computer Arithmetic-Footnote-1924594 -Node: Math Definitions924651 -Ref: table-ieee-formats927967 -Ref: Math Definitions-Footnote-1928570 -Node: MPFR features928675 -Node: FP Math Caution930393 -Ref: FP Math Caution-Footnote-1931465 -Node: Inexactness of computations931834 -Node: Inexact representation932794 -Node: Comparing FP Values934154 -Node: Errors accumulate935395 -Node: Getting Accuracy936828 -Node: Try To Round939538 -Node: Setting precision940437 -Ref: table-predefined-precision-strings941134 -Node: Setting the rounding mode942964 -Ref: table-gawk-rounding-modes943338 -Ref: Setting the rounding mode-Footnote-1947269 -Node: Arbitrary Precision Integers947448 -Ref: Arbitrary Precision Integers-Footnote-1950623 -Node: Checking for MPFR950772 -Node: POSIX Floating Point Problems952246 -Ref: POSIX Floating Point Problems-Footnote-1956531 -Node: Floating point summary956569 -Node: Dynamic Extensions958759 -Node: Extension Intro960312 -Node: Plugin License961578 -Node: Extension Mechanism Outline962375 -Ref: figure-load-extension962814 -Ref: figure-register-new-function964379 -Ref: figure-call-new-function965471 -Node: Extension API Description967533 -Node: Extension API Functions Introduction969175 -Node: General Data Types974715 -Ref: General Data Types-Footnote-1983076 -Node: Memory Allocation Functions983375 -Ref: Memory Allocation Functions-Footnote-1987585 -Node: Constructor Functions987684 -Node: Registration Functions991270 -Node: Extension Functions991955 -Node: Exit Callback Functions997170 -Node: Extension Version String998420 -Node: Input Parsers999083 -Node: Output Wrappers1011804 -Node: Two-way processors1016316 -Node: Printing Messages1018581 -Ref: Printing Messages-Footnote-11019752 -Node: Updating ERRNO1019905 -Node: Requesting Values1020644 -Ref: table-value-types-returned1021381 -Node: Accessing Parameters1022317 -Node: Symbol Table Access1023552 -Node: Symbol table by name1024064 -Node: Symbol table by cookie1025853 -Ref: Symbol table by cookie-Footnote-11030038 -Node: Cached values1030102 -Ref: Cached values-Footnote-11033638 -Node: Array Manipulation1033791 -Ref: Array Manipulation-Footnote-11034882 -Node: Array Data Types1034919 -Ref: Array Data Types-Footnote-11037577 -Node: Array Functions1037669 -Node: Flattening Arrays1042167 -Node: Creating Arrays1049143 -Node: Redirection API1053910 -Node: Extension API Variables1056743 -Node: Extension Versioning1057454 -Ref: gawk-api-version1057883 -Node: Extension GMP/MPFR Versioning1059614 -Node: Extension API Informational Variables1061242 -Node: Extension API Boilerplate1062315 -Node: Changes from API V11066289 -Node: Finding Extensions1067861 -Node: Extension Example1068420 -Node: Internal File Description1069218 -Node: Internal File Ops1073298 -Ref: Internal File Ops-Footnote-11084648 -Node: Using Internal File Ops1084788 -Ref: Using Internal File Ops-Footnote-11087171 -Node: Extension Samples1087445 -Node: Extension Sample File Functions1088974 -Node: Extension Sample Fnmatch1096623 -Node: Extension Sample Fork1098110 -Node: Extension Sample Inplace1099328 -Node: Extension Sample Ord1102545 -Node: Extension Sample Readdir1103381 -Ref: table-readdir-file-types1104270 -Node: Extension Sample Revout1105075 -Node: Extension Sample Rev2way1105664 -Node: Extension Sample Read write array1106404 -Node: Extension Sample Readfile1108346 -Node: Extension Sample Time1109441 -Node: Extension Sample API Tests1110789 -Node: gawkextlib1111281 -Node: Extension summary1114199 -Node: Extension Exercises1117901 -Node: Language History1119399 -Node: V7/SVR3.11121055 -Node: SVR41123207 -Node: POSIX1124641 -Node: BTL1126021 -Node: POSIX/GNU1126750 -Node: Feature History1132528 -Node: Common Extensions1148574 -Node: Ranges and Locales1149857 -Ref: Ranges and Locales-Footnote-11154473 -Ref: Ranges and Locales-Footnote-21154500 -Ref: Ranges and Locales-Footnote-31154735 -Node: Contributors1154956 -Node: History summary1160901 -Node: Installation1162281 -Node: Gawk Distribution1163225 -Node: Getting1163709 -Node: Extracting1164672 -Node: Distribution contents1166310 -Node: Unix Installation1172790 -Node: Quick Installation1173472 -Node: Shell Startup Files1175886 -Node: Additional Configuration Options1176975 -Node: Configuration Philosophy1179140 -Node: Non-Unix Installation1181509 -Node: PC Installation1181969 -Node: PC Binary Installation1182807 -Node: PC Compiling1183242 -Node: PC Using1184359 -Node: Cygwin1187574 -Node: MSYS1188673 -Node: VMS Installation1189174 -Node: VMS Compilation1189965 -Ref: VMS Compilation-Footnote-11191194 -Node: VMS Dynamic Extensions1191252 -Node: VMS Installation Details1192937 -Node: VMS Running1195190 -Node: VMS GNV1199469 -Node: VMS Old Gawk1200204 -Node: Bugs1200675 -Node: Bug address1201338 -Node: Usenet1204320 -Node: Maintainers1205324 -Node: Other Versions1206585 -Node: Installation summary1213143 -Node: Notes1214345 -Node: Compatibility Mode1215139 -Node: Additions1215921 -Node: Accessing The Source1216846 -Node: Adding Code1218283 -Node: New Ports1224502 -Node: Derived Files1228990 -Ref: Derived Files-Footnote-11234636 -Ref: Derived Files-Footnote-21234671 -Ref: Derived Files-Footnote-31235269 -Node: Future Extensions1235383 -Node: Implementation Limitations1236041 -Node: Extension Design1237224 -Node: Old Extension Problems1238368 -Ref: Old Extension Problems-Footnote-11239886 -Node: Extension New Mechanism Goals1239943 -Ref: Extension New Mechanism Goals-Footnote-11243307 -Node: Extension Other Design Decisions1243496 -Node: Extension Future Growth1245609 -Node: Notes summary1246445 -Node: Basic Concepts1247620 -Node: Basic High Level1248301 -Ref: figure-general-flow1248583 -Ref: figure-process-flow1249268 -Ref: Basic High Level-Footnote-11252569 -Node: Basic Data Typing1252754 -Node: Glossary1256082 -Node: Copying1287920 -Node: GNU Free Documentation License1325463 -Node: Index1350583 +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 +Ref: Profiling-Footnote-1848389 +Node: Advanced Features Summary848712 +Node: Internationalization850556 +Node: I18N and L10N852036 +Node: Explaining gettext852723 +Ref: Explaining gettext-Footnote-1858615 +Ref: Explaining gettext-Footnote-2858800 +Node: Programmer i18n858965 +Ref: Programmer i18n-Footnote-1863914 +Node: Translator i18n863963 +Node: String Extraction864757 +Ref: String Extraction-Footnote-1865889 +Node: Printf Ordering865975 +Ref: Printf Ordering-Footnote-1868761 +Node: I18N Portability868825 +Ref: I18N Portability-Footnote-1871281 +Node: I18N Example871344 +Ref: I18N Example-Footnote-1874150 +Node: Gawk I18N874223 +Node: I18N Summary874868 +Node: Debugger876209 +Node: Debugging877232 +Node: Debugging Concepts877673 +Node: Debugging Terms879482 +Node: Awk Debugging882057 +Node: Sample Debugging Session882963 +Node: Debugger Invocation883497 +Node: Finding The Bug884883 +Node: List of Debugger Commands891361 +Node: Breakpoint Control892694 +Node: Debugger Execution Control896388 +Node: Viewing And Changing Data899750 +Node: Execution Stack903124 +Node: Debugger Info904761 +Node: Miscellaneous Debugger Commands908832 +Node: Readline Support913894 +Node: Limitations914790 +Node: Debugging Summary916899 +Node: Arbitrary Precision Arithmetic918178 +Node: Computer Arithmetic919663 +Ref: table-numeric-ranges923429 +Ref: table-floating-point-ranges923922 +Ref: Computer Arithmetic-Footnote-1924580 +Node: Math Definitions924637 +Ref: table-ieee-formats927953 +Ref: Math Definitions-Footnote-1928556 +Node: MPFR features928661 +Node: FP Math Caution930379 +Ref: FP Math Caution-Footnote-1931451 +Node: Inexactness of computations931820 +Node: Inexact representation932780 +Node: Comparing FP Values934140 +Node: Errors accumulate935381 +Node: Getting Accuracy936814 +Node: Try To Round939524 +Node: Setting precision940423 +Ref: table-predefined-precision-strings941120 +Node: Setting the rounding mode942950 +Ref: table-gawk-rounding-modes943324 +Ref: Setting the rounding mode-Footnote-1947255 +Node: Arbitrary Precision Integers947434 +Ref: Arbitrary Precision Integers-Footnote-1950609 +Node: Checking for MPFR950758 +Node: POSIX Floating Point Problems952232 +Ref: POSIX Floating Point Problems-Footnote-1956517 +Node: Floating point summary956555 +Node: Dynamic Extensions958745 +Node: Extension Intro960298 +Node: Plugin License961564 +Node: Extension Mechanism Outline962361 +Ref: figure-load-extension962800 +Ref: figure-register-new-function964365 +Ref: figure-call-new-function965457 +Node: Extension API Description967519 +Node: Extension API Functions Introduction969161 +Node: General Data Types974701 +Ref: General Data Types-Footnote-1983062 +Node: Memory Allocation Functions983361 +Ref: Memory Allocation Functions-Footnote-1987571 +Node: Constructor Functions987670 +Node: Registration Functions991256 +Node: Extension Functions991941 +Node: Exit Callback Functions997156 +Node: Extension Version String998406 +Node: Input Parsers999069 +Node: Output Wrappers1011790 +Node: Two-way processors1016302 +Node: Printing Messages1018567 +Ref: Printing Messages-Footnote-11019738 +Node: Updating ERRNO1019891 +Node: Requesting Values1020630 +Ref: table-value-types-returned1021367 +Node: Accessing Parameters1022303 +Node: Symbol Table Access1023538 +Node: Symbol table by name1024050 +Node: Symbol table by cookie1025839 +Ref: Symbol table by cookie-Footnote-11030024 +Node: Cached values1030088 +Ref: Cached values-Footnote-11033624 +Node: Array Manipulation1033777 +Ref: Array Manipulation-Footnote-11034868 +Node: Array Data Types1034905 +Ref: Array Data Types-Footnote-11037563 +Node: Array Functions1037655 +Node: Flattening Arrays1042153 +Node: Creating Arrays1049129 +Node: Redirection API1053896 +Node: Extension API Variables1056729 +Node: Extension Versioning1057440 +Ref: gawk-api-version1057869 +Node: Extension GMP/MPFR Versioning1059600 +Node: Extension API Informational Variables1061228 +Node: Extension API Boilerplate1062301 +Node: Changes from API V11066275 +Node: Finding Extensions1067847 +Node: Extension Example1068406 +Node: Internal File Description1069204 +Node: Internal File Ops1073284 +Ref: Internal File Ops-Footnote-11084634 +Node: Using Internal File Ops1084774 +Ref: Using Internal File Ops-Footnote-11087157 +Node: Extension Samples1087431 +Node: Extension Sample File Functions1088960 +Node: Extension Sample Fnmatch1096609 +Node: Extension Sample Fork1098096 +Node: Extension Sample Inplace1099314 +Node: Extension Sample Ord1102531 +Node: Extension Sample Readdir1103367 +Ref: table-readdir-file-types1104256 +Node: Extension Sample Revout1105061 +Node: Extension Sample Rev2way1105650 +Node: Extension Sample Read write array1106390 +Node: Extension Sample Readfile1108332 +Node: Extension Sample Time1109427 +Node: Extension Sample API Tests1110775 +Node: gawkextlib1111267 +Node: Extension summary1114185 +Node: Extension Exercises1117887 +Node: Language History1119385 +Node: V7/SVR3.11121041 +Node: SVR41123193 +Node: POSIX1124627 +Node: BTL1126007 +Node: POSIX/GNU1126736 +Node: Feature History1132514 +Node: Common Extensions1148560 +Node: Ranges and Locales1149843 +Ref: Ranges and Locales-Footnote-11154459 +Ref: Ranges and Locales-Footnote-21154486 +Ref: Ranges and Locales-Footnote-31154721 +Node: Contributors1154942 +Node: History summary1160887 +Node: Installation1162267 +Node: Gawk Distribution1163211 +Node: Getting1163695 +Node: Extracting1164658 +Node: Distribution contents1166296 +Node: Unix Installation1172776 +Node: Quick Installation1173458 +Node: Shell Startup Files1175872 +Node: Additional Configuration Options1176961 +Node: Configuration Philosophy1179126 +Node: Non-Unix Installation1181495 +Node: PC Installation1181955 +Node: PC Binary Installation1182793 +Node: PC Compiling1183228 +Node: PC Using1184345 +Node: Cygwin1187898 +Node: MSYS1188997 +Node: VMS Installation1189498 +Node: VMS Compilation1190289 +Ref: VMS Compilation-Footnote-11191518 +Node: VMS Dynamic Extensions1191576 +Node: VMS Installation Details1193261 +Node: VMS Running1195514 +Node: VMS GNV1199793 +Node: VMS Old Gawk1200528 +Node: Bugs1200999 +Node: Bug address1201662 +Node: Usenet1204644 +Node: Maintainers1205648 +Node: Other Versions1206909 +Node: Installation summary1213467 +Node: Notes1214669 +Node: Compatibility Mode1215463 +Node: Additions1216245 +Node: Accessing The Source1217170 +Node: Adding Code1218607 +Node: New Ports1224826 +Node: Derived Files1229314 +Ref: Derived Files-Footnote-11234960 +Ref: Derived Files-Footnote-21234995 +Ref: Derived Files-Footnote-31235593 +Node: Future Extensions1235707 +Node: Implementation Limitations1236365 +Node: Extension Design1237548 +Node: Old Extension Problems1238692 +Ref: Old Extension Problems-Footnote-11240210 +Node: Extension New Mechanism Goals1240267 +Ref: Extension New Mechanism Goals-Footnote-11243631 +Node: Extension Other Design Decisions1243820 +Node: Extension Future Growth1245933 +Node: Notes summary1246769 +Node: Basic Concepts1247944 +Node: Basic High Level1248625 +Ref: figure-general-flow1248907 +Ref: figure-process-flow1249592 +Ref: Basic High Level-Footnote-11252893 +Node: Basic Data Typing1253078 +Node: Glossary1256406 +Node: Copying1288244 +Node: GNU Free Documentation License1325787 +Node: Index1350907 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 8a608ed8..831a9f1b 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -15761,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"] @@ -40049,6 +40048,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 2fffdc73..307d04d0 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -15079,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"] @@ -39023,6 +39022,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 |