diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2022-11-13 21:12:25 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2022-11-13 21:12:25 +0200 |
commit | e56990c4cb97de58281b5e6e67f71547ffc57719 (patch) | |
tree | c7a73d39352534ef0cf9f02c0cac36140a80ea58 | |
parent | 86b1c221bdc50ede37a7b5c3ce6f7afa76d2cb2c (diff) | |
download | gawk-e56990c4cb97de58281b5e6e67f71547ffc57719.tar.gz |
New PROCINFO elements, "mb_cur_max" and "utf8".
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | doc/ChangeLog | 1 | ||||
-rw-r--r-- | doc/gawk.info | 862 | ||||
-rw-r--r-- | doc/gawk.texi | 21 | ||||
-rw-r--r-- | doc/gawktexi.in | 21 | ||||
-rw-r--r-- | main.c | 4 |
6 files changed, 489 insertions, 423 deletions
@@ -12,6 +12,9 @@ Changes from 5.2.1 to 5.3.0 that of the "One True AWK", when FS = "," is applied. See the manual for details. +2. PROCINFO gained two new elements: PROCINFO["mb_cur_max"] and + PROCINFO["utf8"]. See the manual for details. + Changes from 5.2.0 to 5.2.1 --------------------------- diff --git a/doc/ChangeLog b/doc/ChangeLog index 3121897a..0684a843 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,6 +1,7 @@ 2022-11-13 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in (Other Versions): Add info on awkcc. + * gawktexi.in: Document "mb_cur_max" and "utf8" elemens in PROCINFO. 2022-11-12 Arnold D. Robbins <arnold@skeeve.com> diff --git a/doc/gawk.info b/doc/gawk.info index eea83768..a78cb42d 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -11508,6 +11508,10 @@ they are not special: after it has finished parsing the program; they are _not_ updated while the program runs. + 'PROCINFO["mb_cur_max"]' + The maximum number of bytes that can be used to encode a + single character in the current character set. + 'PROCINFO["platform"]' This element gives a string indicating the platform for which 'gawk' was compiled. The value will be one of the following: @@ -11541,6 +11545,10 @@ they are not special: 'PROCINFO["uid"]' The value of the 'getuid()' system call. + 'PROCINFO["utf8"]' + This will be '"true"' if the current character set encoding is + UTF-8, '"false"' otherwise. + 'PROCINFO["version"]' The version of 'gawk'. @@ -30704,6 +30712,14 @@ unfortunately. It added the following features: allowing the use of persistent data on certain systems (*note Persistent Memory::). + Version 5.3 added the following features: + + * Comma separated value (CSV) field splitting (*note Comma Separated + Fields::). + + * The '"mb_cur_max"' and '"utf8"' elements in the 'PROCINFO' array + (*note Auto-set::). + File: gawk.info, Node: Common Extensions, Next: Ranges and Locales, Prev: Feature History, Up: Language History @@ -36720,7 +36736,7 @@ Index * dark corner, exit statement: Exit Statement. (line 30) * dark corner, value of ARGV[0]: Auto-set. (line 39) * dark corner, FILENAME variable <1>: Auto-set. (line 108) -* dark corner, FNR/NR variables: Auto-set. (line 404) +* dark corner, FNR/NR variables: Auto-set. (line 412) * dark corner, array subscripts: Uninitialized Subscripts. (line 43) * dark corner, regexp as second argument to index(): String Functions. @@ -36967,8 +36983,8 @@ Index * differences in awk and gawk, ERRNO variable: Auto-set. (line 87) * differences in awk and gawk, FUNCTAB variable: Auto-set. (line 134) * differences in awk and gawk, PROCINFO array: Auto-set. (line 148) -* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 343) -* differences in awk and gawk, SYMTAB variable: Auto-set. (line 347) +* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 351) +* differences in awk and gawk, SYMTAB variable: Auto-set. (line 355) * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV. (line 89) * differences in awk and gawk, array elements, deleting: Delete. @@ -37237,7 +37253,7 @@ Index * expressions, selecting: Conditional Exp. (line 6) * expressions, as patterns: Expression Patterns. (line 6) * Extended Regular Expressions (EREs): Bracket Expressions. (line 34) -* extension API, version number: Auto-set. (line 282) +* extension API, version number: Auto-set. (line 290) * extension API, interaction with namespaces: Namespace And Features. (line 22) * extension API: Extension API Description. @@ -37412,7 +37428,7 @@ Index (line 12) * FNR variable: Records. (line 6) * FNR variable <1>: Auto-set. (line 118) -* FNR variable, changing: Auto-set. (line 404) +* FNR variable, changing: Auto-set. (line 412) * for statement: For Statement. (line 6) * for statement, looping over arrays: Scanning an Array. (line 20) * fork() extension function: Extension Sample Fork. @@ -37576,9 +37592,9 @@ Index * gawk, ERRNO variable in <3>: Auto-set. (line 87) * gawk, FUNCTAB array in: Auto-set. (line 134) * gawk, PROCINFO array in <1>: Auto-set. (line 148) -* gawk, version of: Auto-set. (line 257) -* gawk, RT variable in <3>: Auto-set. (line 343) -* gawk, SYMTAB array in: Auto-set. (line 347) +* gawk, version of: Auto-set. (line 265) +* gawk, RT variable in <3>: Auto-set. (line 351) +* gawk, SYMTAB array in: Auto-set. (line 355) * gawk, IGNORECASE variable in <2>: Array Intro. (line 100) * gawk, function arguments and: Calling Built-in. (line 16) * gawk, IGNORECASE variable in <3>: String Functions. (line 57) @@ -38049,7 +38065,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 271) +* maximum precision supported by MPFR library: Auto-set. (line 279) * McIlroy, Doug: Glossary. (line 255) * McPhee, Patrick T.J.: Contributors. (line 103) * memory, allocating for extensions: Memory Allocation Functions. @@ -38064,7 +38080,7 @@ Index * messages from extensions: Printing Messages. (line 6) * metacharacters, escape sequences for: Escape Sequences. (line 139) * metacharacters, in regular expressions: Regexp Operators. (line 6) -* minimum precision required by MPFR library: Auto-set. (line 274) +* minimum precision required by MPFR library: Auto-set. (line 282) * Minshall, Greg: Getopt Function. (line 105) * mkbool: Boolean Functions. (line 10) * mktime: Time Functions. (line 25) @@ -38161,7 +38177,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 404) +* NR variable, changing: Auto-set. (line 412) * null strings, in gawk arguments, quoting and: Quoting. (line 82) * null strings, in gawk arguments, quoting and <1>: Other Arguments. (line 73) @@ -38278,7 +38294,7 @@ Index (line 39) * package, definition of: Global Namespace. (line 18) * Papadopoulos, Panos: Contributors. (line 131) -* parent process ID of gawk process: Auto-set. (line 246) +* parent process ID of gawk process: Auto-set. (line 250) * parentheses (), regexp operator: Regexp Operator Details. (line 77) * parentheses (), in a profile: Profiling. (line 146) @@ -38318,7 +38334,7 @@ Index * pipe, output: Redirection. (line 57) * pipe, closing: Close Files And Pipes. (line 6) -* platform running on: Auto-set. (line 224) +* platform running on: Auto-set. (line 228) * Plauger, P.J.: Library Functions. (line 12) * plug-in: Extension Intro. (line 6) * plus sign (+), regexp operator: Regexp Operator Details. @@ -38488,12 +38504,12 @@ Index * printing, mailing labels: Labels Program. (line 6) * printing, messages from extensions: Printing Messages. (line 6) * private variables: Library Names. (line 11) -* process group ID of gawk process: Auto-set. (line 240) -* process ID of gawk process: Auto-set. (line 243) +* process group ID of gawk process: Auto-set. (line 244) +* process ID of gawk process: Auto-set. (line 247) * processes, two-way communications with: Two-way I/O. (line 6) * processing data: Basic High Level. (line 6) * PROCINFO array: Auto-set. (line 148) -* PROCINFO array, platform running on: Auto-set. (line 224) +* PROCINFO array, platform running on: Auto-set. (line 228) * PROCINFO array, values of sorted_in: Controlling Scanning. (line 26) * PROCINFO array <1>: Time Functions. (line 49) @@ -38682,7 +38698,7 @@ Index * right angle bracket (>), >> operator (I/O) <1>: Precedence. (line 64) * right shift, bitwise: Bitwise Functions. (line 33) * Ritchie, Dennis: Basic Data Typing. (line 54) -* RLENGTH variable: Auto-set. (line 330) +* RLENGTH variable: Auto-set. (line 338) * RLENGTH variable, match() function and: String Functions. (line 241) * Robbins, Miriam: Acknowledgments. (line 94) * Robbins, Jean: Acknowledgments. (line 94) @@ -38712,12 +38728,12 @@ Index * RS variable, multiline records and: Multiple Line. (line 17) * RS variable <1>: User-modified. (line 135) * rshift: Bitwise Functions. (line 55) -* RSTART variable: Auto-set. (line 336) +* RSTART variable: Auto-set. (line 344) * RSTART variable, match() function and: String Functions. (line 241) * RT variable: awk split records. (line 118) * RT variable <1>: gawk split records. (line 66) * RT variable <2>: Multiple Line. (line 138) -* RT variable <3>: Auto-set. (line 343) +* RT variable <3>: Auto-set. (line 351) * Rubin, Paul: History. (line 30) * Rubin, Paul <1>: Contributors. (line 16) * rule, definition of: Getting Started. (line 21) @@ -38735,7 +38751,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 374) +* Schorr, Andrew <1>: Auto-set. (line 382) * Schorr, Andrew <2>: Contributors. (line 136) * Schreiber, Bert: Acknowledgments. (line 38) * Schreiber, Rita: Acknowledgments. (line 38) @@ -38859,7 +38875,7 @@ Index * sidebar, Syntactic Ambiguities Between /= and Regular Expressions: Assignment Ops. (line 148) * sidebar, Operator Evaluation Order: Increment Ops. (line 58) -* sidebar, Changing NR and FNR: Auto-set. (line 402) +* sidebar, Changing NR and FNR: Auto-set. (line 410) * sidebar, Matching the Null String: String Functions. (line 565) * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions. (line 73) @@ -39021,9 +39037,9 @@ Index * substr: String Functions. (line 503) * substring: String Functions. (line 503) * Sumner, Andrew: Other Versions. (line 64) -* supplementary groups of gawk process: Auto-set. (line 287) +* supplementary groups of gawk process: Auto-set. (line 295) * switch statement: Switch Statement. (line 6) -* SYMTAB array: Auto-set. (line 347) +* SYMTAB array: Auto-set. (line 355) * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops. (line 150) * system: I/O Functions. (line 105) @@ -39245,10 +39261,10 @@ Index * variables, global, for library functions: Library Names. (line 11) * variables, private: Library Names. (line 11) * variables <1>: Basic Data Typing. (line 6) -* version of, gawk: Auto-set. (line 257) -* version of, GNU MP library: Auto-set. (line 265) -* version of, GNU MPFR library: Auto-set. (line 267) -* version of, gawk extension API: Auto-set. (line 282) +* version of, gawk: Auto-set. (line 265) +* version of, GNU MP library: Auto-set. (line 273) +* version of, GNU MPFR library: Auto-set. (line 275) +* version of, gawk extension API: Auto-set. (line 290) * vertical bar (|): Regexp Operator Details. (line 66) * vertical bar (|), | operator (I/O): Getline/Pipe. (line 10) @@ -39537,402 +39553,402 @@ Node: Exit Statement473172 Node: Built-in Variables475575 Node: User-modified476708 Node: Auto-set484475 -Ref: Auto-set-Footnote-1501184 -Ref: Auto-set-Footnote-2501390 -Node: ARGC and ARGV501446 -Node: Pattern Action Summary505659 -Node: Arrays508089 -Node: Array Basics509418 -Node: Array Intro510262 -Ref: figure-array-elements512237 -Ref: Array Intro-Footnote-1514942 -Node: Reference to Elements515070 -Node: Assigning Elements517534 -Node: Array Example518025 -Node: Scanning an Array519979 -Node: Controlling Scanning523001 -Ref: Controlling Scanning-Footnote-1529457 -Node: Numeric Array Subscripts529773 -Node: Uninitialized Subscripts531957 -Node: Delete533576 -Ref: Delete-Footnote-1536328 -Node: Multidimensional536385 -Node: Multiscanning539480 -Node: Arrays of Arrays541071 -Node: Arrays Summary545839 -Node: Functions547932 -Node: Built-in548970 -Node: Calling Built-in550123 -Node: Boolean Functions552119 -Node: Numeric Functions552673 -Ref: Numeric Functions-Footnote-1556700 -Ref: Numeric Functions-Footnote-2557348 -Ref: Numeric Functions-Footnote-3557396 -Node: String Functions557668 -Ref: String Functions-Footnote-1582808 -Ref: String Functions-Footnote-2582936 -Ref: String Functions-Footnote-3583184 -Node: Gory Details583271 -Ref: table-sub-escapes585062 -Ref: table-sub-proposed586582 -Ref: table-posix-sub587946 -Ref: table-gensub-escapes589488 -Ref: Gory Details-Footnote-1590312 -Node: I/O Functions590466 -Ref: table-system-return-values596920 -Ref: I/O Functions-Footnote-1599001 -Ref: I/O Functions-Footnote-2599149 -Node: Time Functions599269 -Ref: Time Functions-Footnote-1609940 -Ref: Time Functions-Footnote-2610008 -Ref: Time Functions-Footnote-3610166 -Ref: Time Functions-Footnote-4610277 -Ref: Time Functions-Footnote-5610389 -Ref: Time Functions-Footnote-6610616 -Node: Bitwise Functions610882 -Ref: table-bitwise-ops611476 -Ref: Bitwise Functions-Footnote-1617540 -Ref: Bitwise Functions-Footnote-2617713 -Node: Type Functions617904 -Node: I18N Functions621425 -Node: User-defined623076 -Node: Definition Syntax623888 -Ref: Definition Syntax-Footnote-1629582 -Node: Function Example629653 -Ref: Function Example-Footnote-1632575 -Node: Function Calling632597 -Node: Calling A Function633185 -Node: Variable Scope634143 -Node: Pass By Value/Reference637137 -Node: Function Caveats639781 -Ref: Function Caveats-Footnote-1641828 -Node: Return Statement641948 -Node: Dynamic Typing644927 -Node: Indirect Calls645857 -Node: Functions Summary656784 -Node: Library Functions659489 -Ref: Library Functions-Footnote-1662973 -Ref: Library Functions-Footnote-2663116 -Node: Library Names663287 -Ref: Library Names-Footnote-1666954 -Ref: Library Names-Footnote-2667177 -Node: General Functions667263 -Node: Strtonum Function668445 -Node: Assert Function671467 -Node: Round Function674793 -Node: Cliff Random Function676333 -Node: Ordinal Functions677349 -Ref: Ordinal Functions-Footnote-1680412 -Ref: Ordinal Functions-Footnote-2680664 -Node: Join Function680874 -Ref: Join Function-Footnote-1682644 -Node: Getlocaltime Function682844 -Node: Readfile Function686586 -Node: Shell Quoting688563 -Node: Isnumeric Function689991 -Node: Data File Management691379 -Node: Filetrans Function692011 -Node: Rewind Function696107 -Node: File Checking698016 -Ref: File Checking-Footnote-1699350 -Node: Empty Files699551 -Node: Ignoring Assigns701530 -Node: Getopt Function703080 -Ref: Getopt Function-Footnote-1718377 -Node: Passwd Functions718577 -Ref: Passwd Functions-Footnote-1727416 -Node: Group Functions727504 -Ref: Group Functions-Footnote-1735402 -Node: Walking Arrays735609 -Node: Library Functions Summary738617 -Node: Library Exercises740023 -Node: Sample Programs740488 -Node: Running Examples741258 -Node: Clones741986 -Node: Cut Program743210 -Node: Egrep Program753350 -Node: Id Program762351 -Node: Split Program772286 -Ref: Split Program-Footnote-1782179 -Node: Tee Program782352 -Node: Uniq Program785142 -Node: Wc Program792730 -Node: Bytes vs. Characters793117 -Node: Using extensions794665 -Node: wc program795419 -Node: Miscellaneous Programs800284 -Node: Dupword Program801497 -Node: Alarm Program803527 -Node: Translate Program808382 -Ref: Translate Program-Footnote-1812947 -Node: Labels Program813217 -Ref: Labels Program-Footnote-1816568 -Node: Word Sorting816652 -Node: History Sorting820724 -Node: Extract Program822949 -Node: Simple Sed830962 -Node: Igawk Program834036 -Ref: Igawk Program-Footnote-1848665 -Ref: Igawk Program-Footnote-2848867 -Ref: Igawk Program-Footnote-3848989 -Node: Anagram Program849104 -Node: Signature Program852166 -Node: Programs Summary853413 -Node: Programs Exercises854627 -Ref: Programs Exercises-Footnote-1858757 -Node: Advanced Features858843 -Node: Nondecimal Data861240 -Node: Boolean Typed Values862838 -Node: Array Sorting864719 -Node: Controlling Array Traversal865424 -Ref: Controlling Array Traversal-Footnote-1873792 -Node: Array Sorting Functions873910 -Ref: Array Sorting Functions-Footnote-1879821 -Node: Two-way I/O880017 -Ref: Two-way I/O-Footnote-1887743 -Ref: Two-way I/O-Footnote-2887930 -Node: TCP/IP Networking888012 -Node: Profiling891088 -Node: Persistent Memory900394 -Ref: Persistent Memory-Footnote-1908542 -Ref: Persistent Memory-Footnote-2908681 -Node: Extension Philosophy908808 -Node: Advanced Features Summary910295 -Node: Internationalization912467 -Node: I18N and L10N914141 -Node: Explaining gettext914828 -Ref: Explaining gettext-Footnote-1920720 -Ref: Explaining gettext-Footnote-2920905 -Node: Programmer i18n921070 -Ref: Programmer i18n-Footnote-1926019 -Node: Translator i18n926068 -Node: String Extraction926862 -Ref: String Extraction-Footnote-1927994 -Node: Printf Ordering928080 -Ref: Printf Ordering-Footnote-1930866 -Node: I18N Portability930930 -Ref: I18N Portability-Footnote-1933386 -Node: I18N Example933449 -Ref: I18N Example-Footnote-1936724 -Ref: I18N Example-Footnote-2936797 -Node: Gawk I18N936906 -Node: I18N Summary937528 -Node: Debugger938869 -Node: Debugging939869 -Node: Debugging Concepts940310 -Node: Debugging Terms942119 -Node: Awk Debugging944694 -Ref: Awk Debugging-Footnote-1945639 -Node: Sample Debugging Session945771 -Node: Debugger Invocation946305 -Node: Finding The Bug947691 -Node: List of Debugger Commands954165 -Node: Breakpoint Control955498 -Node: Debugger Execution Control959192 -Node: Viewing And Changing Data962554 -Node: Execution Stack966095 -Node: Debugger Info967732 -Node: Miscellaneous Debugger Commands971803 -Node: Readline Support976865 -Node: Limitations977761 -Node: Debugging Summary980315 -Node: Namespaces981594 -Node: Global Namespace982705 -Node: Qualified Names984103 -Node: Default Namespace985102 -Node: Changing The Namespace985843 -Node: Naming Rules987457 -Node: Internal Name Management989305 -Node: Namespace Example990347 -Node: Namespace And Features992909 -Node: Namespace Summary994344 -Node: Arbitrary Precision Arithmetic995821 -Node: Computer Arithmetic997308 -Ref: table-numeric-ranges1001074 -Ref: table-floating-point-ranges1001568 -Ref: Computer Arithmetic-Footnote-11002227 -Node: Math Definitions1002284 -Ref: table-ieee-formats1005260 -Node: MPFR features1005828 -Node: MPFR On Parole1006273 -Ref: MPFR On Parole-Footnote-11007102 -Node: MPFR Intro1007257 -Node: FP Math Caution1008908 -Ref: FP Math Caution-Footnote-11009980 -Node: Inexactness of computations1010349 -Node: Inexact representation1011380 -Node: Comparing FP Values1012740 -Node: Errors accumulate1013981 -Node: Strange values1015437 -Ref: Strange values-Footnote-11018025 -Node: Getting Accuracy1018130 -Node: Try To Round1020840 -Node: Setting precision1021739 -Ref: table-predefined-precision-strings1022436 -Node: Setting the rounding mode1024267 -Ref: table-gawk-rounding-modes1024641 -Ref: Setting the rounding mode-Footnote-11028573 -Node: Arbitrary Precision Integers1028752 -Ref: Arbitrary Precision Integers-Footnote-11031927 -Node: Checking for MPFR1032076 -Node: POSIX Floating Point Problems1033550 -Ref: POSIX Floating Point Problems-Footnote-11038203 -Node: Floating point summary1038241 -Node: Dynamic Extensions1040431 -Node: Extension Intro1041984 -Node: Plugin License1043250 -Node: Extension Mechanism Outline1044047 -Ref: figure-load-extension1044486 -Ref: figure-register-new-function1046052 -Ref: figure-call-new-function1047145 -Node: Extension API Description1049208 -Node: Extension API Functions Introduction1050921 -Ref: table-api-std-headers1052757 -Node: General Data Types1057007 -Ref: General Data Types-Footnote-11065713 -Node: Memory Allocation Functions1066012 -Ref: Memory Allocation Functions-Footnote-11070513 -Node: Constructor Functions1070612 -Node: API Ownership of MPFR and GMP Values1074265 -Node: Registration Functions1075798 -Node: Extension Functions1076498 -Node: Exit Callback Functions1081820 -Node: Extension Version String1083070 -Node: Input Parsers1083733 -Node: Output Wrappers1096454 -Node: Two-way processors1100966 -Node: Printing Messages1103231 -Ref: Printing Messages-Footnote-11104402 -Node: Updating ERRNO1104555 -Node: Requesting Values1105294 -Ref: table-value-types-returned1106031 -Node: Accessing Parameters1107140 -Node: Symbol Table Access1108377 -Node: Symbol table by name1108889 -Ref: Symbol table by name-Footnote-11111914 -Node: Symbol table by cookie1112042 -Ref: Symbol table by cookie-Footnote-11116227 -Node: Cached values1116291 -Ref: Cached values-Footnote-11119827 -Node: Array Manipulation1119980 -Ref: Array Manipulation-Footnote-11121071 -Node: Array Data Types1121108 -Ref: Array Data Types-Footnote-11123766 -Node: Array Functions1123858 -Node: Flattening Arrays1128643 -Node: Creating Arrays1135619 -Node: Redirection API1140386 -Node: Extension API Variables1143219 -Node: Extension Versioning1143930 -Ref: gawk-api-version1144359 -Node: Extension GMP/MPFR Versioning1146091 -Node: Extension API Informational Variables1147719 -Node: Extension API Boilerplate1148792 -Node: Changes from API V11152766 -Node: Finding Extensions1154338 -Node: Extension Example1154897 -Node: Internal File Description1155695 -Node: Internal File Ops1159775 -Ref: Internal File Ops-Footnote-11171125 -Node: Using Internal File Ops1171265 -Ref: Using Internal File Ops-Footnote-11173648 -Node: Extension Samples1173922 -Node: Extension Sample File Functions1175451 -Node: Extension Sample Fnmatch1183100 -Node: Extension Sample Fork1184587 -Node: Extension Sample Inplace1185805 -Node: Extension Sample Ord1189431 -Node: Extension Sample Readdir1190267 -Ref: table-readdir-file-types1191156 -Node: Extension Sample Revout1192224 -Node: Extension Sample Rev2way1192813 -Node: Extension Sample Read write array1193553 -Node: Extension Sample Readfile1196739 -Node: Extension Sample Time1197834 -Node: Extension Sample API Tests1199586 -Node: gawkextlib1200078 -Node: Extension summary1202996 -Node: Extension Exercises1206698 -Node: Language History1207940 -Node: V7/SVR3.11209596 -Node: SVR41211748 -Node: POSIX1213182 -Node: BTL1214563 -Node: POSIX/GNU1215292 -Node: Feature History1221209 -Node: Common Extensions1238948 -Node: Ranges and Locales1240231 -Ref: Ranges and Locales-Footnote-11244847 -Ref: Ranges and Locales-Footnote-21244874 -Ref: Ranges and Locales-Footnote-31245109 -Node: Contributors1245332 -Node: History summary1251329 -Node: Installation1252709 -Node: Gawk Distribution1253653 -Node: Getting1254137 -Node: Extracting1255100 -Node: Distribution contents1256738 -Node: Unix Installation1264236 -Node: Quick Installation1265040 -Node: Compiling with MPFR1267460 -Node: Shell Startup Files1268150 -Node: Additional Configuration Options1269239 -Node: Configuration Philosophy1271554 -Node: Compiling from Git1273950 -Node: Building the Documentation1274505 -Node: Non-Unix Installation1275889 -Node: PC Installation1276353 -Node: PC Binary Installation1277198 -Node: PC Compiling1278071 -Node: PC Using1279177 -Node: Cygwin1282673 -Node: MSYS1283897 -Node: OpenVMS Installation1284499 -Node: OpenVMS Compilation1285162 -Ref: OpenVMS Compilation-Footnote-11286585 -Node: OpenVMS Dynamic Extensions1286643 -Node: OpenVMS Installation Details1288255 -Node: OpenVMS Running1290550 -Node: OpenVMS GNV1294551 -Node: Bugs1295294 -Node: Bug definition1296206 -Node: Bug address1299708 -Node: Usenet1303227 -Node: Performance bugs1304416 -Node: Asking for help1307337 -Node: Maintainers1309304 -Node: Other Versions1310311 -Node: Installation summary1318891 -Node: Notes1320231 -Node: Compatibility Mode1321025 -Node: Additions1321807 -Node: Accessing The Source1322732 -Node: Adding Code1324169 -Node: New Ports1330984 -Node: Derived Files1335359 -Ref: Derived Files-Footnote-11341018 -Ref: Derived Files-Footnote-21341053 -Ref: Derived Files-Footnote-31341648 -Node: Future Extensions1341762 -Node: Implementation Limitations1342420 -Node: Extension Design1343630 -Node: Old Extension Problems1344774 -Ref: Old Extension Problems-Footnote-11346292 -Node: Extension New Mechanism Goals1346349 -Ref: Extension New Mechanism Goals-Footnote-11349713 -Node: Extension Other Design Decisions1349902 -Node: Extension Future Growth1352015 -Node: Notes summary1352621 -Node: Basic Concepts1353779 -Node: Basic High Level1354460 -Ref: figure-general-flow1354742 -Ref: figure-process-flow1355428 -Ref: Basic High Level-Footnote-11358730 -Node: Basic Data Typing1358915 -Node: Glossary1362243 -Node: Copying1394130 -Node: GNU Free Documentation License1431673 -Node: Index1456793 +Ref: Auto-set-Footnote-1501475 +Ref: Auto-set-Footnote-2501681 +Node: ARGC and ARGV501737 +Node: Pattern Action Summary505950 +Node: Arrays508380 +Node: Array Basics509709 +Node: Array Intro510553 +Ref: figure-array-elements512528 +Ref: Array Intro-Footnote-1515233 +Node: Reference to Elements515361 +Node: Assigning Elements517825 +Node: Array Example518316 +Node: Scanning an Array520270 +Node: Controlling Scanning523292 +Ref: Controlling Scanning-Footnote-1529748 +Node: Numeric Array Subscripts530064 +Node: Uninitialized Subscripts532248 +Node: Delete533867 +Ref: Delete-Footnote-1536619 +Node: Multidimensional536676 +Node: Multiscanning539771 +Node: Arrays of Arrays541362 +Node: Arrays Summary546130 +Node: Functions548223 +Node: Built-in549261 +Node: Calling Built-in550414 +Node: Boolean Functions552410 +Node: Numeric Functions552964 +Ref: Numeric Functions-Footnote-1556991 +Ref: Numeric Functions-Footnote-2557639 +Ref: Numeric Functions-Footnote-3557687 +Node: String Functions557959 +Ref: String Functions-Footnote-1583099 +Ref: String Functions-Footnote-2583227 +Ref: String Functions-Footnote-3583475 +Node: Gory Details583562 +Ref: table-sub-escapes585353 +Ref: table-sub-proposed586873 +Ref: table-posix-sub588237 +Ref: table-gensub-escapes589779 +Ref: Gory Details-Footnote-1590603 +Node: I/O Functions590757 +Ref: table-system-return-values597211 +Ref: I/O Functions-Footnote-1599292 +Ref: I/O Functions-Footnote-2599440 +Node: Time Functions599560 +Ref: Time Functions-Footnote-1610231 +Ref: Time Functions-Footnote-2610299 +Ref: Time Functions-Footnote-3610457 +Ref: Time Functions-Footnote-4610568 +Ref: Time Functions-Footnote-5610680 +Ref: Time Functions-Footnote-6610907 +Node: Bitwise Functions611173 +Ref: table-bitwise-ops611767 +Ref: Bitwise Functions-Footnote-1617831 +Ref: Bitwise Functions-Footnote-2618004 +Node: Type Functions618195 +Node: I18N Functions621716 +Node: User-defined623367 +Node: Definition Syntax624179 +Ref: Definition Syntax-Footnote-1629873 +Node: Function Example629944 +Ref: Function Example-Footnote-1632866 +Node: Function Calling632888 +Node: Calling A Function633476 +Node: Variable Scope634434 +Node: Pass By Value/Reference637428 +Node: Function Caveats640072 +Ref: Function Caveats-Footnote-1642119 +Node: Return Statement642239 +Node: Dynamic Typing645218 +Node: Indirect Calls646148 +Node: Functions Summary657075 +Node: Library Functions659780 +Ref: Library Functions-Footnote-1663264 +Ref: Library Functions-Footnote-2663407 +Node: Library Names663578 +Ref: Library Names-Footnote-1667245 +Ref: Library Names-Footnote-2667468 +Node: General Functions667554 +Node: Strtonum Function668736 +Node: Assert Function671758 +Node: Round Function675084 +Node: Cliff Random Function676624 +Node: Ordinal Functions677640 +Ref: Ordinal Functions-Footnote-1680703 +Ref: Ordinal Functions-Footnote-2680955 +Node: Join Function681165 +Ref: Join Function-Footnote-1682935 +Node: Getlocaltime Function683135 +Node: Readfile Function686877 +Node: Shell Quoting688854 +Node: Isnumeric Function690282 +Node: Data File Management691670 +Node: Filetrans Function692302 +Node: Rewind Function696398 +Node: File Checking698307 +Ref: File Checking-Footnote-1699641 +Node: Empty Files699842 +Node: Ignoring Assigns701821 +Node: Getopt Function703371 +Ref: Getopt Function-Footnote-1718668 +Node: Passwd Functions718868 +Ref: Passwd Functions-Footnote-1727707 +Node: Group Functions727795 +Ref: Group Functions-Footnote-1735693 +Node: Walking Arrays735900 +Node: Library Functions Summary738908 +Node: Library Exercises740314 +Node: Sample Programs740779 +Node: Running Examples741549 +Node: Clones742277 +Node: Cut Program743501 +Node: Egrep Program753641 +Node: Id Program762642 +Node: Split Program772577 +Ref: Split Program-Footnote-1782470 +Node: Tee Program782643 +Node: Uniq Program785433 +Node: Wc Program793021 +Node: Bytes vs. Characters793408 +Node: Using extensions794956 +Node: wc program795710 +Node: Miscellaneous Programs800575 +Node: Dupword Program801788 +Node: Alarm Program803818 +Node: Translate Program808673 +Ref: Translate Program-Footnote-1813238 +Node: Labels Program813508 +Ref: Labels Program-Footnote-1816859 +Node: Word Sorting816943 +Node: History Sorting821015 +Node: Extract Program823240 +Node: Simple Sed831253 +Node: Igawk Program834327 +Ref: Igawk Program-Footnote-1848956 +Ref: Igawk Program-Footnote-2849158 +Ref: Igawk Program-Footnote-3849280 +Node: Anagram Program849395 +Node: Signature Program852457 +Node: Programs Summary853704 +Node: Programs Exercises854918 +Ref: Programs Exercises-Footnote-1859048 +Node: Advanced Features859134 +Node: Nondecimal Data861531 +Node: Boolean Typed Values863129 +Node: Array Sorting865010 +Node: Controlling Array Traversal865715 +Ref: Controlling Array Traversal-Footnote-1874083 +Node: Array Sorting Functions874201 +Ref: Array Sorting Functions-Footnote-1880112 +Node: Two-way I/O880308 +Ref: Two-way I/O-Footnote-1888034 +Ref: Two-way I/O-Footnote-2888221 +Node: TCP/IP Networking888303 +Node: Profiling891379 +Node: Persistent Memory900685 +Ref: Persistent Memory-Footnote-1908833 +Ref: Persistent Memory-Footnote-2908972 +Node: Extension Philosophy909099 +Node: Advanced Features Summary910586 +Node: Internationalization912758 +Node: I18N and L10N914432 +Node: Explaining gettext915119 +Ref: Explaining gettext-Footnote-1921011 +Ref: Explaining gettext-Footnote-2921196 +Node: Programmer i18n921361 +Ref: Programmer i18n-Footnote-1926310 +Node: Translator i18n926359 +Node: String Extraction927153 +Ref: String Extraction-Footnote-1928285 +Node: Printf Ordering928371 +Ref: Printf Ordering-Footnote-1931157 +Node: I18N Portability931221 +Ref: I18N Portability-Footnote-1933677 +Node: I18N Example933740 +Ref: I18N Example-Footnote-1937015 +Ref: I18N Example-Footnote-2937088 +Node: Gawk I18N937197 +Node: I18N Summary937819 +Node: Debugger939160 +Node: Debugging940160 +Node: Debugging Concepts940601 +Node: Debugging Terms942410 +Node: Awk Debugging944985 +Ref: Awk Debugging-Footnote-1945930 +Node: Sample Debugging Session946062 +Node: Debugger Invocation946596 +Node: Finding The Bug947982 +Node: List of Debugger Commands954456 +Node: Breakpoint Control955789 +Node: Debugger Execution Control959483 +Node: Viewing And Changing Data962845 +Node: Execution Stack966386 +Node: Debugger Info968023 +Node: Miscellaneous Debugger Commands972094 +Node: Readline Support977156 +Node: Limitations978052 +Node: Debugging Summary980606 +Node: Namespaces981885 +Node: Global Namespace982996 +Node: Qualified Names984394 +Node: Default Namespace985393 +Node: Changing The Namespace986134 +Node: Naming Rules987748 +Node: Internal Name Management989596 +Node: Namespace Example990638 +Node: Namespace And Features993200 +Node: Namespace Summary994635 +Node: Arbitrary Precision Arithmetic996112 +Node: Computer Arithmetic997599 +Ref: table-numeric-ranges1001365 +Ref: table-floating-point-ranges1001859 +Ref: Computer Arithmetic-Footnote-11002518 +Node: Math Definitions1002575 +Ref: table-ieee-formats1005551 +Node: MPFR features1006119 +Node: MPFR On Parole1006564 +Ref: MPFR On Parole-Footnote-11007393 +Node: MPFR Intro1007548 +Node: FP Math Caution1009199 +Ref: FP Math Caution-Footnote-11010271 +Node: Inexactness of computations1010640 +Node: Inexact representation1011671 +Node: Comparing FP Values1013031 +Node: Errors accumulate1014272 +Node: Strange values1015728 +Ref: Strange values-Footnote-11018316 +Node: Getting Accuracy1018421 +Node: Try To Round1021131 +Node: Setting precision1022030 +Ref: table-predefined-precision-strings1022727 +Node: Setting the rounding mode1024558 +Ref: table-gawk-rounding-modes1024932 +Ref: Setting the rounding mode-Footnote-11028864 +Node: Arbitrary Precision Integers1029043 +Ref: Arbitrary Precision Integers-Footnote-11032218 +Node: Checking for MPFR1032367 +Node: POSIX Floating Point Problems1033841 +Ref: POSIX Floating Point Problems-Footnote-11038494 +Node: Floating point summary1038532 +Node: Dynamic Extensions1040722 +Node: Extension Intro1042275 +Node: Plugin License1043541 +Node: Extension Mechanism Outline1044338 +Ref: figure-load-extension1044777 +Ref: figure-register-new-function1046343 +Ref: figure-call-new-function1047436 +Node: Extension API Description1049499 +Node: Extension API Functions Introduction1051212 +Ref: table-api-std-headers1053048 +Node: General Data Types1057298 +Ref: General Data Types-Footnote-11066004 +Node: Memory Allocation Functions1066303 +Ref: Memory Allocation Functions-Footnote-11070804 +Node: Constructor Functions1070903 +Node: API Ownership of MPFR and GMP Values1074556 +Node: Registration Functions1076089 +Node: Extension Functions1076789 +Node: Exit Callback Functions1082111 +Node: Extension Version String1083361 +Node: Input Parsers1084024 +Node: Output Wrappers1096745 +Node: Two-way processors1101257 +Node: Printing Messages1103522 +Ref: Printing Messages-Footnote-11104693 +Node: Updating ERRNO1104846 +Node: Requesting Values1105585 +Ref: table-value-types-returned1106322 +Node: Accessing Parameters1107431 +Node: Symbol Table Access1108668 +Node: Symbol table by name1109180 +Ref: Symbol table by name-Footnote-11112205 +Node: Symbol table by cookie1112333 +Ref: Symbol table by cookie-Footnote-11116518 +Node: Cached values1116582 +Ref: Cached values-Footnote-11120118 +Node: Array Manipulation1120271 +Ref: Array Manipulation-Footnote-11121362 +Node: Array Data Types1121399 +Ref: Array Data Types-Footnote-11124057 +Node: Array Functions1124149 +Node: Flattening Arrays1128934 +Node: Creating Arrays1135910 +Node: Redirection API1140677 +Node: Extension API Variables1143510 +Node: Extension Versioning1144221 +Ref: gawk-api-version1144650 +Node: Extension GMP/MPFR Versioning1146382 +Node: Extension API Informational Variables1148010 +Node: Extension API Boilerplate1149083 +Node: Changes from API V11153057 +Node: Finding Extensions1154629 +Node: Extension Example1155188 +Node: Internal File Description1155986 +Node: Internal File Ops1160066 +Ref: Internal File Ops-Footnote-11171416 +Node: Using Internal File Ops1171556 +Ref: Using Internal File Ops-Footnote-11173939 +Node: Extension Samples1174213 +Node: Extension Sample File Functions1175742 +Node: Extension Sample Fnmatch1183391 +Node: Extension Sample Fork1184878 +Node: Extension Sample Inplace1186096 +Node: Extension Sample Ord1189722 +Node: Extension Sample Readdir1190558 +Ref: table-readdir-file-types1191447 +Node: Extension Sample Revout1192515 +Node: Extension Sample Rev2way1193104 +Node: Extension Sample Read write array1193844 +Node: Extension Sample Readfile1197030 +Node: Extension Sample Time1198125 +Node: Extension Sample API Tests1199877 +Node: gawkextlib1200369 +Node: Extension summary1203287 +Node: Extension Exercises1206989 +Node: Language History1208231 +Node: V7/SVR3.11209887 +Node: SVR41212039 +Node: POSIX1213473 +Node: BTL1214854 +Node: POSIX/GNU1215583 +Node: Feature History1221500 +Node: Common Extensions1239470 +Node: Ranges and Locales1240753 +Ref: Ranges and Locales-Footnote-11245369 +Ref: Ranges and Locales-Footnote-21245396 +Ref: Ranges and Locales-Footnote-31245631 +Node: Contributors1245854 +Node: History summary1251851 +Node: Installation1253231 +Node: Gawk Distribution1254175 +Node: Getting1254659 +Node: Extracting1255622 +Node: Distribution contents1257260 +Node: Unix Installation1264758 +Node: Quick Installation1265562 +Node: Compiling with MPFR1267982 +Node: Shell Startup Files1268672 +Node: Additional Configuration Options1269761 +Node: Configuration Philosophy1272076 +Node: Compiling from Git1274472 +Node: Building the Documentation1275027 +Node: Non-Unix Installation1276411 +Node: PC Installation1276875 +Node: PC Binary Installation1277720 +Node: PC Compiling1278593 +Node: PC Using1279699 +Node: Cygwin1283195 +Node: MSYS1284419 +Node: OpenVMS Installation1285021 +Node: OpenVMS Compilation1285684 +Ref: OpenVMS Compilation-Footnote-11287107 +Node: OpenVMS Dynamic Extensions1287165 +Node: OpenVMS Installation Details1288777 +Node: OpenVMS Running1291072 +Node: OpenVMS GNV1295073 +Node: Bugs1295816 +Node: Bug definition1296728 +Node: Bug address1300230 +Node: Usenet1303749 +Node: Performance bugs1304938 +Node: Asking for help1307859 +Node: Maintainers1309826 +Node: Other Versions1310833 +Node: Installation summary1319413 +Node: Notes1320753 +Node: Compatibility Mode1321547 +Node: Additions1322329 +Node: Accessing The Source1323254 +Node: Adding Code1324691 +Node: New Ports1331506 +Node: Derived Files1335881 +Ref: Derived Files-Footnote-11341540 +Ref: Derived Files-Footnote-21341575 +Ref: Derived Files-Footnote-31342170 +Node: Future Extensions1342284 +Node: Implementation Limitations1342942 +Node: Extension Design1344152 +Node: Old Extension Problems1345296 +Ref: Old Extension Problems-Footnote-11346814 +Node: Extension New Mechanism Goals1346871 +Ref: Extension New Mechanism Goals-Footnote-11350235 +Node: Extension Other Design Decisions1350424 +Node: Extension Future Growth1352537 +Node: Notes summary1353143 +Node: Basic Concepts1354301 +Node: Basic High Level1354982 +Ref: figure-general-flow1355264 +Ref: figure-process-flow1355950 +Ref: Basic High Level-Footnote-11359252 +Node: Basic Data Typing1359437 +Node: Glossary1362765 +Node: Copying1394652 +Node: GNU Free Documentation License1432195 +Node: Index1457315 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index e4cab32f..789fa13d 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -16550,6 +16550,10 @@ The values indicate what @command{gawk} knows about the identifiers after it has finished parsing the program; they are @emph{not} updated while the program runs. +@item PROCINFO["mb_cur_max"] +The maximum number of bytes that can be used to encode a single +character in the current character set. + @item PROCINFO["platform"] @cindex platform running on @cindex @code{PROCINFO} array @subentry platform running on @@ -16591,6 +16595,10 @@ Assigning a new value to this element changes the default. @item PROCINFO["uid"] The value of the @code{getuid()} system call. +@item PROCINFO["utf8"] +This will be @code{"true"} if the current character set encoding +is UTF-8, @code{"false"} otherwise. + @item PROCINFO["version"] @cindex version of @subentry @command{gawk} @cindex @command{gawk} @subentry version of @@ -42136,6 +42144,19 @@ added, allowing the use of persistent data on certain systems @end itemize +Version 5.3 added the following features: + +@itemize +@item +Comma separated value (CSV) field splitting +(@pxref{Comma Separated Fields}). + +@item +The @code{"mb_cur_max"} and @code{"utf8"} elements in the +@code{PROCINFO} array (@pxref{Auto-set}). + +@end itemize + @c XXX ADD MORE STUFF HERE @end ifclear diff --git a/doc/gawktexi.in b/doc/gawktexi.in index d38f83a7..2e5cda34 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -15737,6 +15737,10 @@ The values indicate what @command{gawk} knows about the identifiers after it has finished parsing the program; they are @emph{not} updated while the program runs. +@item PROCINFO["mb_cur_max"] +The maximum number of bytes that can be used to encode a single +character in the current character set. + @item PROCINFO["platform"] @cindex platform running on @cindex @code{PROCINFO} array @subentry platform running on @@ -15778,6 +15782,10 @@ Assigning a new value to this element changes the default. @item PROCINFO["uid"] The value of the @code{getuid()} system call. +@item PROCINFO["utf8"] +This will be @code{"true"} if the current character set encoding +is UTF-8, @code{"false"} otherwise. + @item PROCINFO["version"] @cindex version of @subentry @command{gawk} @cindex @command{gawk} @subentry version of @@ -40979,6 +40987,19 @@ added, allowing the use of persistent data on certain systems @end itemize +Version 5.3 added the following features: + +@itemize +@item +Comma separated value (CSV) field splitting +(@pxref{Comma Separated Fields}). + +@item +The @code{"mb_cur_max"} and @code{"utf8"} elements in the +@code{PROCINFO} array (@pxref{Auto-set}). + +@end itemize + @c XXX ADD MORE STUFF HERE @end ifclear @@ -1096,6 +1096,10 @@ load_procinfo() groupset = NULL; } #endif + + update_PROCINFO_num("mb_cur_max", gawk_mb_cur_max); + update_PROCINFO_str("utf8", using_utf8() ? "true" : "false"); + load_procinfo_argv(); return PROCINFO_node; } |