[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] gawk branch, master, updated. gawk-4.1.0-5031-ge56990c4

From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-5031-ge56990c4
Date: Sun, 13 Nov 2022 14:13:00 -0500 (EST)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  e56990c4cb97de58281b5e6e67f71547ffc57719 (commit)
      from  86b1c221bdc50ede37a7b5c3ce6f7afa76d2cb2c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit e56990c4cb97de58281b5e6e67f71547ffc57719
Author: Arnold D. Robbins <>
Date:   Sun Nov 13 21:12:25 2022 +0200

    New PROCINFO elements, "mb_cur_max" and "utf8".

diff --git a/NEWS b/NEWS
index b2ab6d25..146d20a3 100644
--- a/NEWS
+++ b/NEWS
@@ -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     <>
        * (Other Versions): Add info on awkcc.
+       * Document "mb_cur_max" and "utf8" elemens in PROCINFO.
 2022-11-12         Arnold D. Robbins     <>
diff --git a/doc/ b/doc/
index eea83768..a78cb42d 100644
--- a/doc/
+++ b/doc/
@@ -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.
           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:
           The value of the 'getuid()' system call.
+     'PROCINFO["utf8"]'
+          This will be '"true"' if the current character set encoding is
+          UTF-8, '"false"' otherwise.
           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:,  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 
 @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 
 @end itemize
+Version 5.3 added the following features:
+Comma separated value (CSV) field splitting
+(@pxref{Comma Separated Fields}).
+The @code{"mb_cur_max"} and @code{"utf8"} elements in the
+@code{PROCINFO} array (@pxref{Auto-set}).
+@end itemize
 @end ifclear
diff --git a/doc/ b/doc/
index d38f83a7..2e5cda34 100644
--- a/doc/
+++ b/doc/
@@ -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 
 @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 
 @end itemize
+Version 5.3 added the following features:
+Comma separated value (CSV) field splitting
+(@pxref{Comma Separated Fields}).
+The @code{"mb_cur_max"} and @code{"utf8"} elements in the
+@code{PROCINFO} array (@pxref{Auto-set}).
+@end itemize
 @end ifclear
diff --git a/main.c b/main.c
index ef0ab023..78a6b708 100644
--- a/main.c
+++ b/main.c
@@ -1096,6 +1096,10 @@ load_procinfo()
                groupset = NULL;
+       update_PROCINFO_num("mb_cur_max", gawk_mb_cur_max);
+       update_PROCINFO_str("utf8", using_utf8() ? "true" : "false");
        return PROCINFO_node;


Summary of changes:
 NEWS            |   3 +
 doc/ChangeLog   |   1 +
 doc/   | 862 +++++++++++++++++++++++++++++---------------------------
 doc/gawk.texi   |  21 ++
 doc/ |  21 ++
 main.c          |   4 +
 6 files changed, 489 insertions(+), 423 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]