gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, master, updated. gawk-4.1.0-4392-gcf91322


From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-4392-gcf91322
Date: Thu, 17 Jun 2021 02:07:50 -0400 (EDT)

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  cf9132208075631697b1043273edddb76273c3f0 (commit)
       via  2088e95f3a6b41443b9951c2a4d7dfbe3df0ce27 (commit)
      from  5800b72683b87a43f5dd315bcef6613418a537bb (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 -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=cf9132208075631697b1043273edddb76273c3f0

commit cf9132208075631697b1043273edddb76273c3f0
Merge: 5800b72 2088e95
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Thu Jun 17 09:07:34 2021 +0300

    Merge branch 'gawk-5.1-stable'

diff --cc doc/gawk.info
index 33a8326,ecb3716..6b0919f
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@@ -490,7 -488,6 +490,7 @@@ in (a) below.  A copy of the license i
  * Programs Summary::                    Summary of programs.
  * Programs Exercises::                  Exercises.
  * Nondecimal Data::                     Allowing nondecimal input data.
- * Boolean Typed Values::                Values with 'bool' type.
++* Boolean Typed Values::                Values with 'number|bool' type.
  * Array Sorting::                       Facilities for controlling array
                                          traversal and sorting arrays.
  * Controlling Array Traversal::         How to use PROCINFO["sorted_in"].
@@@ -20948,53 -20922,9 +20948,53 @@@ request it
       This option may disappear in a future version of 'gawk'.
  
  
 -File: gawk.info,  Node: Array Sorting,  Next: Two-way I/O,  Prev: Nondecimal 
Data,  Up: Advanced Features
 +File: gawk.info,  Node: Boolean Typed Values,  Next: Array Sorting,  Prev: 
Nondecimal Data,  Up: Advanced Features
 +
 +12.2 Boolean Typed Values
 +=========================
 +
 +Scalar values in 'awk' are either numbers or strings.  'gawk' also
 +supports values of type 'regexp' (*note Strong Regexp Constants::).
 +
 +   As described in *note Truth Values::, Boolean values in 'awk' don't
 +have a separate type: a value counts as "true" if it is nonzero or
 +non-null, and as "false" otherwise.
 +
 +   When interchanging data with languages that do have a real Boolean
 +type, using a standard format such as JSON or XML, the lack of a true
 +Boolean type in 'awk' is problematic.  (See, for example, the 'json'
 +extension provided by the 'gawkextlib' project
 +(https://sourceforge.net/projects/gawkextlib).)
  
 -12.2 Controlling Array Traversal and Array Sorting
 +   It's easy to import Boolean data into 'awk', but then the fact that
 +it was originally Boolean is lost.  Exporting data is even harder;
 +there's no way to indicate that a value is really Boolean.
 +
 +   To solve this problem, 'gawk' provides a function named 'mkbool()'.
 +It takes one argument, which is any 'awk' expression, and it returns a
 +value of Boolean type.
 +
 +   The returned values are normal 'awk' numeric values, with values of
 +either one or zero, depending upon the truth value of the original
- expression passed in the call to 'bool()'.
++expression passed in the call to 'mkbool()'.
 +
 +   The 'typeof()' function (*note Type Functions::) returns
 +'"number|bool"' for these values.
 +
 +   Thus Boolean-typed values _are_ numbers as far as 'gawk' is
 +concerned, except that extension code can treat them as Booleans if
 +desired.
 +
 +   While it would have been possible to add two new built-in variables
 +of Boolean type named 'TRUE' and 'FALSE', doing so would undoubtedly
 +have broken many existing 'awk' programs.  Instead, having a "generator"
 +function that creates Boolean values gives flexibility, without breaking
 +as much existing code.
 +
 +
 +File: gawk.info,  Node: Array Sorting,  Next: Two-way I/O,  Prev: Boolean 
Typed Values,  Up: Advanced Features
 +
 +12.3 Controlling Array Traversal and Array Sorting
  ==================================================
  
  'gawk' lets you control the order in which a 'for (INDX in ARRAY)' loop
@@@ -38213,606 -38098,603 +38225,606 @@@ Inde
  
  Tag Table:
  Node: Top1200
- Node: Foreword345044
- Node: Foreword449486
- Node: Preface51018
- Ref: Preface-Footnote-153877
- Ref: Preface-Footnote-253986
- Ref: Preface-Footnote-354220
- Node: History54362
- Node: Names56714
- Ref: Names-Footnote-157818
- Node: This Manual57965
- Ref: This Manual-Footnote-164604
- Node: Conventions64704
- Node: Manual History67073
- Ref: Manual History-Footnote-170070
- Ref: Manual History-Footnote-270111
- Node: How To Contribute70185
- Node: Acknowledgments71111
- Node: Getting Started76048
- Node: Running gawk78487
- Node: One-shot79677
- Node: Read Terminal80940
- Node: Long82933
- Node: Executable Scripts84446
- Ref: Executable Scripts-Footnote-187079
- Node: Comments87182
- Node: Quoting89666
- Node: DOS Quoting95192
- Node: Sample Data Files97248
- Node: Very Simple99843
- Node: Two Rules105945
- Node: More Complex107830
- Node: Statements/Lines110162
- Ref: Statements/Lines-Footnote-1114646
- Node: Other Features114911
- Node: When115847
- Ref: When-Footnote-1117601
- Node: Intro Summary117666
- Node: Invoking Gawk118550
- Node: Command Line120064
- Node: Options120862
- Ref: Options-Footnote-1138776
- Ref: Options-Footnote-2139007
- Node: Other Arguments139032
- Node: Naming Standard Input143043
- Node: Environment Variables144253
- Node: AWKPATH Variable144811
- Ref: AWKPATH Variable-Footnote-1148223
- Ref: AWKPATH Variable-Footnote-2148257
- Node: AWKLIBPATH Variable148628
- Ref: AWKLIBPATH Variable-Footnote-1150325
- Node: Other Environment Variables150700
- Node: Exit Status154652
- Node: Include Files155329
- Node: Loading Shared Libraries159019
- Node: Obsolete160447
- Node: Undocumented161139
- Node: Invoking Summary161436
- Node: Regexp164277
- Node: Regexp Usage165731
- Node: Escape Sequences167768
- Node: Regexp Operators174009
- Node: Regexp Operator Details174494
- Ref: Regexp Operator Details-Footnote-1181858
- Node: Interval Expressions182005
- Ref: Interval Expressions-Footnote-1183426
- Node: Bracket Expressions183524
- Ref: table-char-classes186000
- Node: Leftmost Longest189326
- Node: Computed Regexps190629
- Node: GNU Regexp Operators194056
- Node: Case-sensitivity197793
- Ref: Case-sensitivity-Footnote-1200659
- Ref: Case-sensitivity-Footnote-2200894
- Node: Regexp Summary201002
- Node: Reading Files202468
- Node: Records204737
- Node: awk split records205812
- Node: gawk split records210512
- Ref: gawk split records-Footnote-1215586
- Node: Fields215623
- Node: Nonconstant Fields218364
- Ref: Nonconstant Fields-Footnote-1220600
- Node: Changing Fields220804
- Node: Field Separators226835
- Node: Default Field Splitting229533
- Node: Regexp Field Splitting230651
- Node: Single Character Fields234328
- Node: Command Line Field Separator235388
- Node: Full Line Fields238606
- Ref: Full Line Fields-Footnote-1240128
- Ref: Full Line Fields-Footnote-2240174
- Node: Field Splitting Summary240275
- Node: Constant Size242349
- Node: Fixed width data243081
- Node: Skipping intervening246548
- Node: Allowing trailing data247346
- Node: Fields with fixed data248383
- Node: Splitting By Content249901
- Ref: Splitting By Content-Footnote-1253684
- Node: More CSV253847
- Node: Testing field creation255439
- Node: Multiple Line257064
- Node: Getline263341
- Node: Plain Getline265810
- Node: Getline/Variable268383
- Node: Getline/File269534
- Node: Getline/Variable/File270922
- Ref: Getline/Variable/File-Footnote-1272527
- Node: Getline/Pipe272615
- Node: Getline/Variable/Pipe275319
- Node: Getline/Coprocess276454
- Node: Getline/Variable/Coprocess277721
- Node: Getline Notes278463
- Node: Getline Summary281260
- Ref: table-getline-variants281684
- Node: Read Timeout282432
- Ref: Read Timeout-Footnote-1286338
- Node: Retrying Input286396
- Node: Command-line directories287595
- Node: Input Summary288501
- Node: Input Exercises291673
- Node: Printing292107
- Node: Print293941
- Node: Print Examples295398
- Node: Output Separators298178
- Node: OFMT300195
- Node: Printf301551
- Node: Basic Printf302336
- Node: Control Letters303910
- Node: Format Modifiers309072
- Node: Printf Examples315087
- Node: Redirection317573
- Node: Special FD324414
- Ref: Special FD-Footnote-1327582
- Node: Special Files327656
- Node: Other Inherited Files328273
- Node: Special Network329274
- Node: Special Caveats330134
- Node: Close Files And Pipes331083
- Ref: table-close-pipe-return-values337990
- Ref: Close Files And Pipes-Footnote-1338803
- Ref: Close Files And Pipes-Footnote-2338951
- Node: Nonfatal339103
- Node: Output Summary341441
- Node: Output Exercises342663
- Node: Expressions343342
- Node: Values344530
- Node: Constants345208
- Node: Scalar Constants345899
- Ref: Scalar Constants-Footnote-1348409
- Node: Nondecimal-numbers348659
- Node: Regexp Constants351660
- Node: Using Constant Regexps352186
- Node: Standard Regexp Constants352808
- Node: Strong Regexp Constants355996
- Node: Variables359008
- Node: Using Variables359665
- Node: Assignment Options361575
- Node: Conversion364046
- Node: Strings And Numbers364570
- Ref: Strings And Numbers-Footnote-1367633
- Node: Locale influences conversions367742
- Ref: table-locale-affects370500
- Node: All Operators371118
- Node: Arithmetic Ops371747
- Node: Concatenation374463
- Ref: Concatenation-Footnote-1377310
- Node: Assignment Ops377417
- Ref: table-assign-ops382408
- Node: Increment Ops383721
- Node: Truth Values and Conditions387181
- Node: Truth Values388255
- Node: Typing and Comparison389303
- Node: Variable Typing390123
- Ref: Variable Typing-Footnote-1396586
- Ref: Variable Typing-Footnote-2396658
- Node: Comparison Operators396735
- Ref: table-relational-ops397154
- Node: POSIX String Comparison400649
- Ref: POSIX String Comparison-Footnote-1402344
- Ref: POSIX String Comparison-Footnote-2402483
- Node: Boolean Ops402567
- Ref: Boolean Ops-Footnote-1407049
- Node: Conditional Exp407141
- Node: Function Calls408877
- Node: Precedence412754
- Node: Locales416413
- Node: Expressions Summary418045
- Node: Patterns and Actions420618
- Node: Pattern Overview421738
- Node: Regexp Patterns423415
- Node: Expression Patterns423957
- Node: Ranges427738
- Node: BEGIN/END430846
- Node: Using BEGIN/END431607
- Ref: Using BEGIN/END-Footnote-1434361
- Node: I/O And BEGIN/END434467
- Node: BEGINFILE/ENDFILE436780
- Node: Empty440011
- Node: Using Shell Variables440328
- Node: Action Overview442602
- Node: Statements444927
- Node: If Statement446775
- Node: While Statement448270
- Node: Do Statement450298
- Node: For Statement451446
- Node: Switch Statement454617
- Node: Break Statement457058
- Node: Continue Statement459150
- Node: Next Statement460977
- Node: Nextfile Statement463360
- Node: Exit Statement466049
- Node: Built-in Variables468452
- Node: User-modified469585
- Node: Auto-set477352
- Ref: Auto-set-Footnote-1494159
- Ref: Auto-set-Footnote-2494365
- Node: ARGC and ARGV494421
- Node: Pattern Action Summary498634
- Node: Arrays501064
- Node: Array Basics502393
- Node: Array Intro503237
- Ref: figure-array-elements505212
- Ref: Array Intro-Footnote-1507916
- Node: Reference to Elements508044
- Node: Assigning Elements510508
- Node: Array Example510999
- Node: Scanning an Array512758
- Node: Controlling Scanning515780
- Ref: Controlling Scanning-Footnote-1522236
- Node: Numeric Array Subscripts522552
- Node: Uninitialized Subscripts524736
- Node: Delete526355
- Ref: Delete-Footnote-1529107
- Node: Multidimensional529164
- Node: Multiscanning532259
- Node: Arrays of Arrays533850
- Node: Arrays Summary538618
- Node: Functions540711
- Node: Built-in541749
- Node: Calling Built-in542902
- Node: Boolean Functions544898
- Node: Numeric Functions545452
- Ref: Numeric Functions-Footnote-1549479
- Ref: Numeric Functions-Footnote-2550127
- Ref: Numeric Functions-Footnote-3550175
- Node: String Functions550447
- Ref: String Functions-Footnote-1574588
- Ref: String Functions-Footnote-2574716
- Ref: String Functions-Footnote-3574964
- Node: Gory Details575051
- Ref: table-sub-escapes576842
- Ref: table-sub-proposed578361
- Ref: table-posix-sub579724
- Ref: table-gensub-escapes581265
- Ref: Gory Details-Footnote-1582088
- Node: I/O Functions582242
- Ref: table-system-return-values588696
- Ref: I/O Functions-Footnote-1590776
- Ref: I/O Functions-Footnote-2590924
- Node: Time Functions591044
- Ref: Time Functions-Footnote-1601715
- Ref: Time Functions-Footnote-2601783
- Ref: Time Functions-Footnote-3601941
- Ref: Time Functions-Footnote-4602052
- Ref: Time Functions-Footnote-5602164
- Ref: Time Functions-Footnote-6602391
- Node: Bitwise Functions602657
- Ref: table-bitwise-ops603251
- Ref: Bitwise Functions-Footnote-1609314
- Ref: Bitwise Functions-Footnote-2609487
- Node: Type Functions609678
- Node: I18N Functions612632
- Node: User-defined614283
- Node: Definition Syntax615095
- Ref: Definition Syntax-Footnote-1620789
- Node: Function Example620860
- Ref: Function Example-Footnote-1623782
- Node: Function Calling623804
- Node: Calling A Function624392
- Node: Variable Scope625350
- Node: Pass By Value/Reference628344
- Node: Function Caveats630988
- Ref: Function Caveats-Footnote-1633035
- Node: Return Statement633155
- Node: Dynamic Typing636134
- Node: Indirect Calls637064
- Ref: Indirect Calls-Footnote-1647319
- Node: Functions Summary647447
- Node: Library Functions650152
- Ref: Library Functions-Footnote-1653759
- Ref: Library Functions-Footnote-2653902
- Node: Library Names654073
- Ref: Library Names-Footnote-1657740
- Ref: Library Names-Footnote-2657963
- Node: General Functions658049
- Node: Strtonum Function659152
- Node: Assert Function662174
- Node: Round Function665500
- Node: Cliff Random Function667040
- Node: Ordinal Functions668056
- Ref: Ordinal Functions-Footnote-1671119
- Ref: Ordinal Functions-Footnote-2671371
- Node: Join Function671581
- Ref: Join Function-Footnote-1673351
- Node: Getlocaltime Function673551
- Node: Readfile Function677293
- Node: Shell Quoting679270
- Node: Data File Management680671
- Node: Filetrans Function681303
- Node: Rewind Function685399
- Node: File Checking687308
- Ref: File Checking-Footnote-1688642
- Node: Empty Files688843
- Node: Ignoring Assigns690822
- Node: Getopt Function692372
- Ref: Getopt Function-Footnote-1707583
- Node: Passwd Functions707783
- Ref: Passwd Functions-Footnote-1716622
- Node: Group Functions716710
- Ref: Group Functions-Footnote-1724608
- Node: Walking Arrays724815
- Node: Library Functions Summary727823
- Node: Library Exercises729229
- Node: Sample Programs729694
- Node: Running Examples730464
- Node: Clones731192
- Node: Cut Program732416
- Node: Egrep Program742556
- Node: Id Program751557
- Node: Split Program761504
- Ref: Split Program-Footnote-1771394
- Node: Tee Program771567
- Node: Uniq Program774357
- Node: Wc Program781945
- Node: Bytes vs. Characters782332
- Node: Using extensions783880
- Node: wc program784634
- Node: Miscellaneous Programs789499
- Node: Dupword Program790712
- Node: Alarm Program792742
- Node: Translate Program797597
- Ref: Translate Program-Footnote-1802162
- Node: Labels Program802432
- Ref: Labels Program-Footnote-1805783
- Node: Word Sorting805867
- Node: History Sorting809939
- Node: Extract Program812164
- Node: Simple Sed820218
- Node: Igawk Program823292
- Ref: Igawk Program-Footnote-1837623
- Ref: Igawk Program-Footnote-2837825
- Ref: Igawk Program-Footnote-3837947
- Node: Anagram Program838062
- Node: Signature Program841124
- Node: Programs Summary842371
- Node: Programs Exercises843585
- Ref: Programs Exercises-Footnote-1847715
- Node: Advanced Features847801
- Node: Nondecimal Data849932
- Node: Boolean Typed Values851530
- Node: Array Sorting853409
- Node: Controlling Array Traversal854114
- Ref: Controlling Array Traversal-Footnote-1862482
- Node: Array Sorting Functions862600
- Ref: Array Sorting Functions-Footnote-1867691
- Node: Two-way I/O867887
- Ref: Two-way I/O-Footnote-1875608
- Ref: Two-way I/O-Footnote-2875795
- Node: TCP/IP Networking875877
- Node: Profiling878995
- Node: Extension Philosophy888304
- Node: Advanced Features Summary889783
- Node: Internationalization891798
- Node: I18N and L10N893278
- Node: Explaining gettext893965
- Ref: Explaining gettext-Footnote-1899857
- Ref: Explaining gettext-Footnote-2900042
- Node: Programmer i18n900207
- Ref: Programmer i18n-Footnote-1905156
- Node: Translator i18n905205
- Node: String Extraction905999
- Ref: String Extraction-Footnote-1907131
- Node: Printf Ordering907217
- Ref: Printf Ordering-Footnote-1910003
- Node: I18N Portability910067
- Ref: I18N Portability-Footnote-1912523
- Node: I18N Example912586
- Ref: I18N Example-Footnote-1915861
- Ref: I18N Example-Footnote-2915934
- Node: Gawk I18N916043
- Node: I18N Summary916692
- Node: Debugger918033
- Node: Debugging919033
- Node: Debugging Concepts919474
- Node: Debugging Terms921283
- Node: Awk Debugging923858
- Ref: Awk Debugging-Footnote-1924803
- Node: Sample Debugging Session924935
- Node: Debugger Invocation925469
- Node: Finding The Bug926855
- Node: List of Debugger Commands933329
- Node: Breakpoint Control934662
- Node: Debugger Execution Control938356
- Node: Viewing And Changing Data941718
- Node: Execution Stack945259
- Node: Debugger Info946896
- Node: Miscellaneous Debugger Commands950967
- Node: Readline Support956029
- Node: Limitations956925
- Node: Debugging Summary959479
- Node: Namespaces960758
- Node: Global Namespace961869
- Node: Qualified Names963267
- Node: Default Namespace964266
- Node: Changing The Namespace965007
- Node: Naming Rules966621
- Node: Internal Name Management968469
- Node: Namespace Example969511
- Node: Namespace And Features972073
- Node: Namespace Summary973508
- Node: Arbitrary Precision Arithmetic974985
- Node: Computer Arithmetic976472
- Ref: table-numeric-ranges980238
- Ref: table-floating-point-ranges980731
- Ref: Computer Arithmetic-Footnote-1981389
- Node: Math Definitions981446
- Ref: table-ieee-formats984422
- Node: MPFR features984989
- Node: FP Math Caution986707
- Ref: FP Math Caution-Footnote-1987779
- Node: Inexactness of computations988148
- Node: Inexact representation989179
- Node: Comparing FP Values990539
- Node: Errors accumulate991780
- Node: Strange values993236
- Ref: Strange values-Footnote-1995824
- Node: Getting Accuracy995929
- Node: Try To Round998639
- Node: Setting precision999538
- Ref: table-predefined-precision-strings1000235
- Node: Setting the rounding mode1002065
- Ref: table-gawk-rounding-modes1002439
- Ref: Setting the rounding mode-Footnote-11006370
- Node: Arbitrary Precision Integers1006549
- Ref: Arbitrary Precision Integers-Footnote-11009724
- Node: Checking for MPFR1009873
- Node: POSIX Floating Point Problems1011347
- Ref: POSIX Floating Point Problems-Footnote-11015632
- Node: Floating point summary1015670
- Node: Dynamic Extensions1017860
- Node: Extension Intro1019413
- Node: Plugin License1020679
- Node: Extension Mechanism Outline1021476
- Ref: figure-load-extension1021915
- Ref: figure-register-new-function1023480
- Ref: figure-call-new-function1024572
- Node: Extension API Description1026634
- Node: Extension API Functions Introduction1028347
- Ref: table-api-std-headers1030183
- Node: General Data Types1034432
- Ref: General Data Types-Footnote-11043138
- Node: Memory Allocation Functions1043437
- Ref: Memory Allocation Functions-Footnote-11047938
- Node: Constructor Functions1048037
- Node: API Ownership of MPFR and GMP Values1051690
- Node: Registration Functions1053003
- Node: Extension Functions1053703
- Node: Exit Callback Functions1059025
- Node: Extension Version String1060275
- Node: Input Parsers1060938
- Node: Output Wrappers1073659
- Node: Two-way processors1078171
- Node: Printing Messages1080436
- Ref: Printing Messages-Footnote-11081607
- Node: Updating ERRNO1081760
- Node: Requesting Values1082499
- Ref: table-value-types-returned1083236
- Node: Accessing Parameters1084344
- Node: Symbol Table Access1085581
- Node: Symbol table by name1086093
- Ref: Symbol table by name-Footnote-11089117
- Node: Symbol table by cookie1089245
- Ref: Symbol table by cookie-Footnote-11093430
- Node: Cached values1093494
- Ref: Cached values-Footnote-11097030
- Node: Array Manipulation1097183
- Ref: Array Manipulation-Footnote-11098274
- Node: Array Data Types1098311
- Ref: Array Data Types-Footnote-11100969
- Node: Array Functions1101061
- Node: Flattening Arrays1105559
- Node: Creating Arrays1112535
- Node: Redirection API1117302
- Node: Extension API Variables1120135
- Node: Extension Versioning1120846
- Ref: gawk-api-version1121275
- Node: Extension GMP/MPFR Versioning1123006
- Node: Extension API Informational Variables1124634
- Node: Extension API Boilerplate1125707
- Node: Changes from API V11129681
- Node: Finding Extensions1131253
- Node: Extension Example1131812
- Node: Internal File Description1132610
- Node: Internal File Ops1136690
- Ref: Internal File Ops-Footnote-11148040
- Node: Using Internal File Ops1148180
- Ref: Using Internal File Ops-Footnote-11150563
- Node: Extension Samples1150837
- Node: Extension Sample File Functions1152366
- Node: Extension Sample Fnmatch1160015
- Node: Extension Sample Fork1161502
- Node: Extension Sample Inplace1162720
- Node: Extension Sample Ord1166346
- Node: Extension Sample Readdir1167182
- Ref: table-readdir-file-types1168071
- Node: Extension Sample Revout1169138
- Node: Extension Sample Rev2way1169727
- Node: Extension Sample Read write array1170467
- Node: Extension Sample Readfile1172409
- Node: Extension Sample Time1173504
- Node: Extension Sample API Tests1175256
- Node: gawkextlib1175748
- Node: Extension summary1178666
- Node: Extension Exercises1182368
- Node: Language History1183610
- Node: V7/SVR3.11185266
- Node: SVR41187418
- Node: POSIX1188852
- Node: BTL1190233
- Node: POSIX/GNU1190962
- Node: Feature History1196740
- Node: Common Extensions1213821
- Node: Ranges and Locales1215104
- Ref: Ranges and Locales-Footnote-11219720
- Ref: Ranges and Locales-Footnote-21219747
- Ref: Ranges and Locales-Footnote-31219982
- Node: Contributors1220205
- Node: History summary1226202
- Node: Installation1227582
- Node: Gawk Distribution1228526
- Node: Getting1229010
- Node: Extracting1229973
- Node: Distribution contents1231611
- Node: Unix Installation1238091
- Node: Quick Installation1238773
- Node: Shell Startup Files1241187
- Node: Additional Configuration Options1242276
- Node: Configuration Philosophy1244591
- Node: Non-Unix Installation1246960
- Node: PC Installation1247420
- Node: PC Binary Installation1248258
- Node: PC Compiling1248693
- Node: PC Using1249810
- Node: Cygwin1253363
- Node: MSYS1254587
- Node: VMS Installation1255189
- Node: VMS Compilation1255980
- Ref: VMS Compilation-Footnote-11257209
- Node: VMS Dynamic Extensions1257267
- Node: VMS Installation Details1258952
- Node: VMS Running1261205
- Node: VMS GNV1265484
- Node: VMS Old Gawk1266219
- Node: Bugs1266690
- Node: Bug address1267353
- Node: Usenet1270335
- Node: Maintainers1271339
- Node: Other Versions1272524
- Node: Installation summary1280389
- Node: Notes1281598
- Node: Compatibility Mode1282392
- Node: Additions1283174
- Node: Accessing The Source1284099
- Node: Adding Code1285536
- Node: New Ports1291755
- Node: Derived Files1296130
- Ref: Derived Files-Footnote-11301790
- Ref: Derived Files-Footnote-21301825
- Ref: Derived Files-Footnote-31302423
- Node: Future Extensions1302537
- Node: Implementation Limitations1303195
- Node: Extension Design1304405
- Node: Old Extension Problems1305549
- Ref: Old Extension Problems-Footnote-11307067
- Node: Extension New Mechanism Goals1307124
- Ref: Extension New Mechanism Goals-Footnote-11310488
- Node: Extension Other Design Decisions1310677
- Node: Extension Future Growth1312790
- Node: Notes summary1313396
- Node: Basic Concepts1314554
- Node: Basic High Level1315235
- Ref: figure-general-flow1315517
- Ref: figure-process-flow1316202
- Ref: Basic High Level-Footnote-11319503
- Node: Basic Data Typing1319688
- Node: Glossary1323016
- Node: Copying1354903
- Node: GNU Free Documentation License1392446
- Node: Index1417566
 -Node: Foreword344780
 -Node: Foreword449222
 -Node: Preface50754
 -Ref: Preface-Footnote-153613
 -Ref: Preface-Footnote-253722
 -Ref: Preface-Footnote-353956
 -Node: History54098
 -Node: Names56450
 -Ref: Names-Footnote-157554
 -Node: This Manual57701
 -Ref: This Manual-Footnote-164340
 -Node: Conventions64440
 -Node: Manual History66809
 -Ref: Manual History-Footnote-169806
 -Ref: Manual History-Footnote-269847
 -Node: How To Contribute69921
 -Node: Acknowledgments70847
 -Node: Getting Started75784
 -Node: Running gawk78223
 -Node: One-shot79413
 -Node: Read Terminal80676
 -Node: Long82669
 -Node: Executable Scripts84182
 -Ref: Executable Scripts-Footnote-186815
 -Node: Comments86918
 -Node: Quoting89402
 -Node: DOS Quoting94928
 -Node: Sample Data Files96984
 -Node: Very Simple99579
 -Node: Two Rules105681
 -Node: More Complex107566
 -Node: Statements/Lines109898
 -Ref: Statements/Lines-Footnote-1114382
 -Node: Other Features114647
 -Node: When115583
 -Ref: When-Footnote-1117337
 -Node: Intro Summary117402
 -Node: Invoking Gawk118286
 -Node: Command Line119800
 -Node: Options120598
 -Ref: Options-Footnote-1138512
 -Ref: Options-Footnote-2138743
 -Node: Other Arguments138768
 -Node: Naming Standard Input142779
 -Node: Environment Variables143989
 -Node: AWKPATH Variable144547
 -Ref: AWKPATH Variable-Footnote-1147959
 -Ref: AWKPATH Variable-Footnote-2147993
 -Node: AWKLIBPATH Variable148364
 -Ref: AWKLIBPATH Variable-Footnote-1150061
 -Node: Other Environment Variables150436
 -Node: Exit Status154257
 -Node: Include Files154934
 -Node: Loading Shared Libraries158624
 -Node: Obsolete160052
 -Node: Undocumented160744
 -Node: Invoking Summary161041
 -Node: Regexp163882
 -Node: Regexp Usage165336
 -Node: Escape Sequences167373
 -Node: Regexp Operators173614
 -Node: Regexp Operator Details174099
 -Ref: Regexp Operator Details-Footnote-1181463
 -Node: Interval Expressions181610
 -Ref: Interval Expressions-Footnote-1183031
 -Node: Bracket Expressions183129
 -Ref: table-char-classes185605
 -Node: Leftmost Longest188931
 -Node: Computed Regexps190234
 -Node: GNU Regexp Operators193661
 -Node: Case-sensitivity197398
 -Ref: Case-sensitivity-Footnote-1200264
 -Ref: Case-sensitivity-Footnote-2200499
 -Node: Regexp Summary200607
 -Node: Reading Files202073
 -Node: Records204342
 -Node: awk split records205417
 -Node: gawk split records210117
 -Ref: gawk split records-Footnote-1215191
 -Node: Fields215228
 -Node: Nonconstant Fields217969
 -Ref: Nonconstant Fields-Footnote-1220205
 -Node: Changing Fields220409
 -Node: Field Separators226440
 -Node: Default Field Splitting229138
 -Node: Regexp Field Splitting230256
 -Node: Single Character Fields233933
 -Node: Command Line Field Separator234993
 -Node: Full Line Fields238211
 -Ref: Full Line Fields-Footnote-1239733
 -Ref: Full Line Fields-Footnote-2239779
 -Node: Field Splitting Summary239880
 -Node: Constant Size241954
 -Node: Fixed width data242686
 -Node: Skipping intervening246153
 -Node: Allowing trailing data246951
 -Node: Fields with fixed data247988
 -Node: Splitting By Content249506
 -Ref: Splitting By Content-Footnote-1253289
 -Node: More CSV253452
 -Node: Testing field creation255044
 -Node: Multiple Line256669
 -Node: Getline262946
 -Node: Plain Getline265415
 -Node: Getline/Variable267988
 -Node: Getline/File269139
 -Node: Getline/Variable/File270527
 -Ref: Getline/Variable/File-Footnote-1272132
 -Node: Getline/Pipe272220
 -Node: Getline/Variable/Pipe274924
 -Node: Getline/Coprocess276059
 -Node: Getline/Variable/Coprocess277326
 -Node: Getline Notes278068
 -Node: Getline Summary280865
 -Ref: table-getline-variants281289
 -Node: Read Timeout282037
 -Ref: Read Timeout-Footnote-1285943
 -Node: Retrying Input286001
 -Node: Command-line directories287200
 -Node: Input Summary288106
 -Node: Input Exercises291278
 -Node: Printing291712
 -Node: Print293546
 -Node: Print Examples295003
 -Node: Output Separators297783
 -Node: OFMT299800
 -Node: Printf301156
 -Node: Basic Printf301941
 -Node: Control Letters303515
 -Node: Format Modifiers308679
 -Node: Printf Examples314694
 -Node: Redirection317180
 -Node: Special FD324021
 -Ref: Special FD-Footnote-1327189
 -Node: Special Files327263
 -Node: Other Inherited Files327880
 -Node: Special Network328881
 -Node: Special Caveats329741
 -Node: Close Files And Pipes330690
 -Ref: table-close-pipe-return-values337597
 -Ref: Close Files And Pipes-Footnote-1338410
 -Ref: Close Files And Pipes-Footnote-2338558
 -Node: Nonfatal338710
 -Node: Output Summary341048
 -Node: Output Exercises342270
 -Node: Expressions342949
 -Node: Values344137
 -Node: Constants344815
 -Node: Scalar Constants345506
 -Ref: Scalar Constants-Footnote-1348016
 -Node: Nondecimal-numbers348266
 -Node: Regexp Constants351267
 -Node: Using Constant Regexps351793
 -Node: Standard Regexp Constants352415
 -Node: Strong Regexp Constants355603
 -Node: Variables358615
 -Node: Using Variables359272
 -Node: Assignment Options361182
 -Node: Conversion363653
 -Node: Strings And Numbers364177
 -Ref: Strings And Numbers-Footnote-1367240
 -Node: Locale influences conversions367349
 -Ref: table-locale-affects370107
 -Node: All Operators370725
 -Node: Arithmetic Ops371354
 -Node: Concatenation374070
 -Ref: Concatenation-Footnote-1376917
 -Node: Assignment Ops377024
 -Ref: table-assign-ops382015
 -Node: Increment Ops383328
 -Node: Truth Values and Conditions386788
 -Node: Truth Values387862
 -Node: Typing and Comparison388910
 -Node: Variable Typing389730
 -Ref: Variable Typing-Footnote-1396193
 -Ref: Variable Typing-Footnote-2396265
 -Node: Comparison Operators396342
 -Ref: table-relational-ops396761
 -Node: POSIX String Comparison400256
 -Ref: POSIX String Comparison-Footnote-1401951
 -Ref: POSIX String Comparison-Footnote-2402090
 -Node: Boolean Ops402174
 -Ref: Boolean Ops-Footnote-1406656
 -Node: Conditional Exp406748
 -Node: Function Calls408484
 -Node: Precedence412361
 -Node: Locales416020
 -Node: Expressions Summary417652
 -Node: Patterns and Actions420225
 -Node: Pattern Overview421345
 -Node: Regexp Patterns423022
 -Node: Expression Patterns423564
 -Node: Ranges427345
 -Node: BEGIN/END430453
 -Node: Using BEGIN/END431214
 -Ref: Using BEGIN/END-Footnote-1433968
 -Node: I/O And BEGIN/END434074
 -Node: BEGINFILE/ENDFILE436387
 -Node: Empty439618
 -Node: Using Shell Variables439935
 -Node: Action Overview442209
 -Node: Statements444534
 -Node: If Statement446382
 -Node: While Statement447877
 -Node: Do Statement449905
 -Node: For Statement451053
 -Node: Switch Statement454224
 -Node: Break Statement456665
 -Node: Continue Statement458757
 -Node: Next Statement460584
 -Node: Nextfile Statement462967
 -Node: Exit Statement465656
 -Node: Built-in Variables468059
 -Node: User-modified469192
 -Node: Auto-set476959
 -Ref: Auto-set-Footnote-1493766
 -Ref: Auto-set-Footnote-2493972
 -Node: ARGC and ARGV494028
 -Node: Pattern Action Summary498241
 -Node: Arrays500671
 -Node: Array Basics502000
 -Node: Array Intro502844
 -Ref: figure-array-elements504819
 -Ref: Array Intro-Footnote-1507523
 -Node: Reference to Elements507651
 -Node: Assigning Elements510115
 -Node: Array Example510606
 -Node: Scanning an Array512365
 -Node: Controlling Scanning515387
 -Ref: Controlling Scanning-Footnote-1521843
 -Node: Numeric Array Subscripts522159
 -Node: Uninitialized Subscripts524343
 -Node: Delete525962
 -Ref: Delete-Footnote-1528714
 -Node: Multidimensional528771
 -Node: Multiscanning531866
 -Node: Arrays of Arrays533457
 -Node: Arrays Summary538225
 -Node: Functions540318
 -Node: Built-in541356
 -Node: Calling Built-in542437
 -Node: Numeric Functions544433
 -Ref: Numeric Functions-Footnote-1548461
 -Ref: Numeric Functions-Footnote-2549109
 -Ref: Numeric Functions-Footnote-3549157
 -Node: String Functions549429
 -Ref: String Functions-Footnote-1573570
 -Ref: String Functions-Footnote-2573698
 -Ref: String Functions-Footnote-3573946
 -Node: Gory Details574033
 -Ref: table-sub-escapes575824
 -Ref: table-sub-proposed577343
 -Ref: table-posix-sub578706
 -Ref: table-gensub-escapes580247
 -Ref: Gory Details-Footnote-1581070
 -Node: I/O Functions581224
 -Ref: table-system-return-values587678
 -Ref: I/O Functions-Footnote-1589758
 -Ref: I/O Functions-Footnote-2589906
 -Node: Time Functions590026
 -Ref: Time Functions-Footnote-1600697
 -Ref: Time Functions-Footnote-2600765
 -Ref: Time Functions-Footnote-3600923
 -Ref: Time Functions-Footnote-4601034
 -Ref: Time Functions-Footnote-5601146
 -Ref: Time Functions-Footnote-6601373
 -Node: Bitwise Functions601639
 -Ref: table-bitwise-ops602233
 -Ref: Bitwise Functions-Footnote-1608296
 -Ref: Bitwise Functions-Footnote-2608469
 -Node: Type Functions608660
 -Node: I18N Functions611523
 -Node: User-defined613174
 -Node: Definition Syntax613986
 -Ref: Definition Syntax-Footnote-1619680
 -Node: Function Example619751
 -Ref: Function Example-Footnote-1622673
 -Node: Function Calling622695
 -Node: Calling A Function623283
 -Node: Variable Scope624241
 -Node: Pass By Value/Reference627235
 -Node: Function Caveats629879
 -Ref: Function Caveats-Footnote-1631926
 -Node: Return Statement632046
 -Node: Dynamic Typing635025
 -Node: Indirect Calls635955
 -Ref: Indirect Calls-Footnote-1646207
 -Node: Functions Summary646335
 -Node: Library Functions649040
 -Ref: Library Functions-Footnote-1652647
 -Ref: Library Functions-Footnote-2652790
 -Node: Library Names652961
 -Ref: Library Names-Footnote-1656628
 -Ref: Library Names-Footnote-2656851
 -Node: General Functions656937
 -Node: Strtonum Function658040
 -Node: Assert Function661062
 -Node: Round Function664388
 -Node: Cliff Random Function665928
 -Node: Ordinal Functions666944
 -Ref: Ordinal Functions-Footnote-1670007
 -Ref: Ordinal Functions-Footnote-2670259
 -Node: Join Function670469
 -Ref: Join Function-Footnote-1672239
 -Node: Getlocaltime Function672439
 -Node: Readfile Function676181
 -Node: Shell Quoting678158
 -Node: Data File Management679559
 -Node: Filetrans Function680191
 -Node: Rewind Function684287
 -Node: File Checking686196
 -Ref: File Checking-Footnote-1687530
 -Node: Empty Files687731
 -Node: Ignoring Assigns689710
 -Node: Getopt Function691260
 -Ref: Getopt Function-Footnote-1706471
 -Node: Passwd Functions706671
 -Ref: Passwd Functions-Footnote-1715510
 -Node: Group Functions715598
 -Ref: Group Functions-Footnote-1723496
 -Node: Walking Arrays723703
 -Node: Library Functions Summary726711
 -Node: Library Exercises728117
 -Node: Sample Programs728582
 -Node: Running Examples729352
 -Node: Clones730080
 -Node: Cut Program731304
 -Node: Egrep Program741444
 -Node: Id Program750445
 -Node: Split Program760392
 -Ref: Split Program-Footnote-1770282
 -Node: Tee Program770455
 -Node: Uniq Program773245
 -Node: Wc Program780833
 -Node: Bytes vs. Characters781220
 -Node: Using extensions782768
 -Node: wc program783522
 -Node: Miscellaneous Programs788387
 -Node: Dupword Program789600
 -Node: Alarm Program791630
 -Node: Translate Program796485
 -Ref: Translate Program-Footnote-1801050
 -Node: Labels Program801320
 -Ref: Labels Program-Footnote-1804671
 -Node: Word Sorting804755
 -Node: History Sorting808827
 -Node: Extract Program811052
 -Node: Simple Sed819106
 -Node: Igawk Program822180
 -Ref: Igawk Program-Footnote-1836511
 -Ref: Igawk Program-Footnote-2836713
 -Ref: Igawk Program-Footnote-3836835
 -Node: Anagram Program836950
 -Node: Signature Program840012
 -Node: Programs Summary841259
 -Node: Programs Exercises842473
 -Ref: Programs Exercises-Footnote-1846603
 -Node: Advanced Features846689
 -Node: Nondecimal Data848756
 -Node: Array Sorting850347
 -Node: Controlling Array Traversal851047
 -Ref: Controlling Array Traversal-Footnote-1859415
 -Node: Array Sorting Functions859533
 -Ref: Array Sorting Functions-Footnote-1864624
 -Node: Two-way I/O864820
 -Ref: Two-way I/O-Footnote-1872541
 -Ref: Two-way I/O-Footnote-2872728
 -Node: TCP/IP Networking872810
 -Node: Profiling875928
 -Node: Extension Philosophy885237
 -Node: Advanced Features Summary886716
 -Node: Internationalization888731
 -Node: I18N and L10N890405
 -Node: Explaining gettext891092
 -Ref: Explaining gettext-Footnote-1896984
 -Ref: Explaining gettext-Footnote-2897169
 -Node: Programmer i18n897334
 -Ref: Programmer i18n-Footnote-1902283
 -Node: Translator i18n902332
 -Node: String Extraction903126
 -Ref: String Extraction-Footnote-1904258
 -Node: Printf Ordering904344
 -Ref: Printf Ordering-Footnote-1907130
 -Node: I18N Portability907194
 -Ref: I18N Portability-Footnote-1909650
 -Node: I18N Example909713
 -Ref: I18N Example-Footnote-1912988
 -Ref: I18N Example-Footnote-2913061
 -Node: Gawk I18N913170
 -Node: I18N Summary913819
 -Node: Debugger915160
 -Node: Debugging916160
 -Node: Debugging Concepts916601
 -Node: Debugging Terms918410
 -Node: Awk Debugging920985
 -Ref: Awk Debugging-Footnote-1921930
 -Node: Sample Debugging Session922062
 -Node: Debugger Invocation922596
 -Node: Finding The Bug923982
 -Node: List of Debugger Commands930456
 -Node: Breakpoint Control931789
 -Node: Debugger Execution Control935483
 -Node: Viewing And Changing Data938845
 -Node: Execution Stack942386
 -Node: Debugger Info944023
 -Node: Miscellaneous Debugger Commands948094
 -Node: Readline Support953156
 -Node: Limitations954052
 -Node: Debugging Summary956606
 -Node: Namespaces957885
 -Node: Global Namespace958996
 -Node: Qualified Names960394
 -Node: Default Namespace961393
 -Node: Changing The Namespace962134
 -Node: Naming Rules963748
 -Node: Internal Name Management965596
 -Node: Namespace Example966638
 -Node: Namespace And Features969200
 -Node: Namespace Summary970635
 -Node: Arbitrary Precision Arithmetic972112
 -Node: Computer Arithmetic973599
 -Ref: table-numeric-ranges977365
 -Ref: table-floating-point-ranges977858
 -Ref: Computer Arithmetic-Footnote-1978516
 -Node: Math Definitions978573
 -Ref: table-ieee-formats981889
 -Ref: Math Definitions-Footnote-1982492
 -Node: MPFR features982597
 -Node: FP Math Caution984315
 -Ref: FP Math Caution-Footnote-1985387
 -Node: Inexactness of computations985756
 -Node: Inexact representation986716
 -Node: Comparing FP Values988076
 -Node: Errors accumulate989317
 -Node: Getting Accuracy990750
 -Node: Try To Round993460
 -Node: Setting precision994359
 -Ref: table-predefined-precision-strings995056
 -Node: Setting the rounding mode996886
 -Ref: table-gawk-rounding-modes997260
 -Ref: Setting the rounding mode-Footnote-11001191
 -Node: Arbitrary Precision Integers1001370
 -Ref: Arbitrary Precision Integers-Footnote-11004545
 -Node: Checking for MPFR1004694
 -Node: POSIX Floating Point Problems1006168
 -Ref: POSIX Floating Point Problems-Footnote-11010453
 -Node: Floating point summary1010491
 -Node: Dynamic Extensions1012681
 -Node: Extension Intro1014234
 -Node: Plugin License1015500
 -Node: Extension Mechanism Outline1016297
 -Ref: figure-load-extension1016736
 -Ref: figure-register-new-function1018301
 -Ref: figure-call-new-function1019393
 -Node: Extension API Description1021455
 -Node: Extension API Functions Introduction1023168
 -Ref: table-api-std-headers1025004
 -Node: General Data Types1029253
 -Ref: General Data Types-Footnote-11037883
 -Node: Memory Allocation Functions1038182
 -Ref: Memory Allocation Functions-Footnote-11042683
 -Node: Constructor Functions1042782
 -Node: API Ownership of MPFR and GMP Values1046248
 -Node: Registration Functions1047561
 -Node: Extension Functions1048261
 -Node: Exit Callback Functions1053583
 -Node: Extension Version String1054833
 -Node: Input Parsers1055496
 -Node: Output Wrappers1068217
 -Node: Two-way processors1072729
 -Node: Printing Messages1074994
 -Ref: Printing Messages-Footnote-11076165
 -Node: Updating ERRNO1076318
 -Node: Requesting Values1077057
 -Ref: table-value-types-returned1077794
 -Node: Accessing Parameters1078730
 -Node: Symbol Table Access1079967
 -Node: Symbol table by name1080479
 -Ref: Symbol table by name-Footnote-11083503
 -Node: Symbol table by cookie1083631
 -Ref: Symbol table by cookie-Footnote-11087816
 -Node: Cached values1087880
 -Ref: Cached values-Footnote-11091416
 -Node: Array Manipulation1091569
 -Ref: Array Manipulation-Footnote-11092660
 -Node: Array Data Types1092697
 -Ref: Array Data Types-Footnote-11095355
 -Node: Array Functions1095447
 -Node: Flattening Arrays1099945
 -Node: Creating Arrays1106921
 -Node: Redirection API1111688
 -Node: Extension API Variables1114521
 -Node: Extension Versioning1115232
 -Ref: gawk-api-version1115661
 -Node: Extension GMP/MPFR Versioning1117392
 -Node: Extension API Informational Variables1119020
 -Node: Extension API Boilerplate1120093
 -Node: Changes from API V11124067
 -Node: Finding Extensions1125639
 -Node: Extension Example1126198
 -Node: Internal File Description1126996
 -Node: Internal File Ops1131076
 -Ref: Internal File Ops-Footnote-11142426
 -Node: Using Internal File Ops1142566
 -Ref: Using Internal File Ops-Footnote-11144949
 -Node: Extension Samples1145223
 -Node: Extension Sample File Functions1146752
 -Node: Extension Sample Fnmatch1154401
 -Node: Extension Sample Fork1155888
 -Node: Extension Sample Inplace1157106
 -Node: Extension Sample Ord1160732
 -Node: Extension Sample Readdir1161568
 -Ref: table-readdir-file-types1162457
 -Node: Extension Sample Revout1163524
 -Node: Extension Sample Rev2way1164113
 -Node: Extension Sample Read write array1164853
 -Node: Extension Sample Readfile1166795
 -Node: Extension Sample Time1167890
 -Node: Extension Sample API Tests1169642
 -Node: gawkextlib1170134
 -Node: Extension summary1173052
 -Node: Extension Exercises1176754
 -Node: Language History1177996
 -Node: V7/SVR3.11179652
 -Node: SVR41181804
 -Node: POSIX1183238
 -Node: BTL1184619
 -Node: POSIX/GNU1185348
 -Node: Feature History1191126
 -Node: Common Extensions1208301
 -Node: Ranges and Locales1209584
 -Ref: Ranges and Locales-Footnote-11214200
 -Ref: Ranges and Locales-Footnote-21214227
 -Ref: Ranges and Locales-Footnote-31214462
 -Node: Contributors1214685
 -Node: History summary1220682
 -Node: Installation1222062
 -Node: Gawk Distribution1223006
 -Node: Getting1223490
 -Node: Extracting1224453
 -Node: Distribution contents1226091
 -Node: Unix Installation1232571
 -Node: Quick Installation1233253
 -Node: Shell Startup Files1235667
 -Node: Additional Configuration Options1236756
 -Node: Configuration Philosophy1239071
 -Node: Non-Unix Installation1241440
 -Node: PC Installation1241900
 -Node: PC Binary Installation1242738
 -Node: PC Compiling1243173
 -Node: PC Using1244290
 -Node: Cygwin1247843
 -Node: MSYS1249067
 -Node: VMS Installation1249669
 -Node: VMS Compilation1250460
 -Ref: VMS Compilation-Footnote-11251689
 -Node: VMS Dynamic Extensions1251747
 -Node: VMS Installation Details1253432
 -Node: VMS Running1255685
 -Node: VMS GNV1259964
 -Node: VMS Old Gawk1260699
 -Node: Bugs1261170
 -Node: Bug address1261833
 -Node: Usenet1264815
 -Node: Maintainers1265819
 -Node: Other Versions1267004
 -Node: Installation summary1274869
 -Node: Notes1276078
 -Node: Compatibility Mode1276872
 -Node: Additions1277654
 -Node: Accessing The Source1278579
 -Node: Adding Code1280016
 -Node: New Ports1286235
 -Node: Derived Files1290610
 -Ref: Derived Files-Footnote-11296270
 -Ref: Derived Files-Footnote-21296305
 -Ref: Derived Files-Footnote-31296903
 -Node: Future Extensions1297017
 -Node: Implementation Limitations1297675
 -Node: Extension Design1298885
 -Node: Old Extension Problems1300029
 -Ref: Old Extension Problems-Footnote-11301547
 -Node: Extension New Mechanism Goals1301604
 -Ref: Extension New Mechanism Goals-Footnote-11304968
 -Node: Extension Other Design Decisions1305157
 -Node: Extension Future Growth1307270
 -Node: Notes summary1307876
 -Node: Basic Concepts1309034
 -Node: Basic High Level1309715
 -Ref: figure-general-flow1309997
 -Ref: figure-process-flow1310682
 -Ref: Basic High Level-Footnote-11313983
 -Node: Basic Data Typing1314168
 -Node: Glossary1317496
 -Node: Copying1349381
 -Node: GNU Free Documentation License1386924
 -Node: Index1412044
++Node: Foreword345051
++Node: Foreword449493
++Node: Preface51025
++Ref: Preface-Footnote-153884
++Ref: Preface-Footnote-253993
++Ref: Preface-Footnote-354227
++Node: History54369
++Node: Names56721
++Ref: Names-Footnote-157825
++Node: This Manual57972
++Ref: This Manual-Footnote-164611
++Node: Conventions64711
++Node: Manual History67080
++Ref: Manual History-Footnote-170077
++Ref: Manual History-Footnote-270118
++Node: How To Contribute70192
++Node: Acknowledgments71118
++Node: Getting Started76055
++Node: Running gawk78494
++Node: One-shot79684
++Node: Read Terminal80947
++Node: Long82940
++Node: Executable Scripts84453
++Ref: Executable Scripts-Footnote-187086
++Node: Comments87189
++Node: Quoting89673
++Node: DOS Quoting95199
++Node: Sample Data Files97255
++Node: Very Simple99850
++Node: Two Rules105952
++Node: More Complex107837
++Node: Statements/Lines110169
++Ref: Statements/Lines-Footnote-1114653
++Node: Other Features114918
++Node: When115854
++Ref: When-Footnote-1117608
++Node: Intro Summary117673
++Node: Invoking Gawk118557
++Node: Command Line120071
++Node: Options120869
++Ref: Options-Footnote-1138783
++Ref: Options-Footnote-2139014
++Node: Other Arguments139039
++Node: Naming Standard Input143050
++Node: Environment Variables144260
++Node: AWKPATH Variable144818
++Ref: AWKPATH Variable-Footnote-1148230
++Ref: AWKPATH Variable-Footnote-2148264
++Node: AWKLIBPATH Variable148635
++Ref: AWKLIBPATH Variable-Footnote-1150332
++Node: Other Environment Variables150707
++Node: Exit Status154659
++Node: Include Files155336
++Node: Loading Shared Libraries159026
++Node: Obsolete160454
++Node: Undocumented161146
++Node: Invoking Summary161443
++Node: Regexp164284
++Node: Regexp Usage165738
++Node: Escape Sequences167775
++Node: Regexp Operators174016
++Node: Regexp Operator Details174501
++Ref: Regexp Operator Details-Footnote-1181865
++Node: Interval Expressions182012
++Ref: Interval Expressions-Footnote-1183433
++Node: Bracket Expressions183531
++Ref: table-char-classes186007
++Node: Leftmost Longest189333
++Node: Computed Regexps190636
++Node: GNU Regexp Operators194063
++Node: Case-sensitivity197800
++Ref: Case-sensitivity-Footnote-1200666
++Ref: Case-sensitivity-Footnote-2200901
++Node: Regexp Summary201009
++Node: Reading Files202475
++Node: Records204744
++Node: awk split records205819
++Node: gawk split records210519
++Ref: gawk split records-Footnote-1215593
++Node: Fields215630
++Node: Nonconstant Fields218371
++Ref: Nonconstant Fields-Footnote-1220607
++Node: Changing Fields220811
++Node: Field Separators226842
++Node: Default Field Splitting229540
++Node: Regexp Field Splitting230658
++Node: Single Character Fields234335
++Node: Command Line Field Separator235395
++Node: Full Line Fields238613
++Ref: Full Line Fields-Footnote-1240135
++Ref: Full Line Fields-Footnote-2240181
++Node: Field Splitting Summary240282
++Node: Constant Size242356
++Node: Fixed width data243088
++Node: Skipping intervening246555
++Node: Allowing trailing data247353
++Node: Fields with fixed data248390
++Node: Splitting By Content249908
++Ref: Splitting By Content-Footnote-1253691
++Node: More CSV253854
++Node: Testing field creation255446
++Node: Multiple Line257071
++Node: Getline263348
++Node: Plain Getline265817
++Node: Getline/Variable268390
++Node: Getline/File269541
++Node: Getline/Variable/File270929
++Ref: Getline/Variable/File-Footnote-1272534
++Node: Getline/Pipe272622
++Node: Getline/Variable/Pipe275326
++Node: Getline/Coprocess276461
++Node: Getline/Variable/Coprocess277728
++Node: Getline Notes278470
++Node: Getline Summary281267
++Ref: table-getline-variants281691
++Node: Read Timeout282439
++Ref: Read Timeout-Footnote-1286345
++Node: Retrying Input286403
++Node: Command-line directories287602
++Node: Input Summary288508
++Node: Input Exercises291680
++Node: Printing292114
++Node: Print293948
++Node: Print Examples295405
++Node: Output Separators298185
++Node: OFMT300202
++Node: Printf301558
++Node: Basic Printf302343
++Node: Control Letters303917
++Node: Format Modifiers309079
++Node: Printf Examples315094
++Node: Redirection317580
++Node: Special FD324421
++Ref: Special FD-Footnote-1327589
++Node: Special Files327663
++Node: Other Inherited Files328280
++Node: Special Network329281
++Node: Special Caveats330141
++Node: Close Files And Pipes331090
++Ref: table-close-pipe-return-values337997
++Ref: Close Files And Pipes-Footnote-1338810
++Ref: Close Files And Pipes-Footnote-2338958
++Node: Nonfatal339110
++Node: Output Summary341448
++Node: Output Exercises342670
++Node: Expressions343349
++Node: Values344537
++Node: Constants345215
++Node: Scalar Constants345906
++Ref: Scalar Constants-Footnote-1348416
++Node: Nondecimal-numbers348666
++Node: Regexp Constants351667
++Node: Using Constant Regexps352193
++Node: Standard Regexp Constants352815
++Node: Strong Regexp Constants356003
++Node: Variables359015
++Node: Using Variables359672
++Node: Assignment Options361582
++Node: Conversion364053
++Node: Strings And Numbers364577
++Ref: Strings And Numbers-Footnote-1367640
++Node: Locale influences conversions367749
++Ref: table-locale-affects370507
++Node: All Operators371125
++Node: Arithmetic Ops371754
++Node: Concatenation374470
++Ref: Concatenation-Footnote-1377317
++Node: Assignment Ops377424
++Ref: table-assign-ops382415
++Node: Increment Ops383728
++Node: Truth Values and Conditions387188
++Node: Truth Values388262
++Node: Typing and Comparison389310
++Node: Variable Typing390130
++Ref: Variable Typing-Footnote-1396593
++Ref: Variable Typing-Footnote-2396665
++Node: Comparison Operators396742
++Ref: table-relational-ops397161
++Node: POSIX String Comparison400656
++Ref: POSIX String Comparison-Footnote-1402351
++Ref: POSIX String Comparison-Footnote-2402490
++Node: Boolean Ops402574
++Ref: Boolean Ops-Footnote-1407056
++Node: Conditional Exp407148
++Node: Function Calls408884
++Node: Precedence412761
++Node: Locales416420
++Node: Expressions Summary418052
++Node: Patterns and Actions420625
++Node: Pattern Overview421745
++Node: Regexp Patterns423422
++Node: Expression Patterns423964
++Node: Ranges427745
++Node: BEGIN/END430853
++Node: Using BEGIN/END431614
++Ref: Using BEGIN/END-Footnote-1434368
++Node: I/O And BEGIN/END434474
++Node: BEGINFILE/ENDFILE436787
++Node: Empty440018
++Node: Using Shell Variables440335
++Node: Action Overview442609
++Node: Statements444934
++Node: If Statement446782
++Node: While Statement448277
++Node: Do Statement450305
++Node: For Statement451453
++Node: Switch Statement454624
++Node: Break Statement457065
++Node: Continue Statement459157
++Node: Next Statement460984
++Node: Nextfile Statement463367
++Node: Exit Statement466056
++Node: Built-in Variables468459
++Node: User-modified469592
++Node: Auto-set477359
++Ref: Auto-set-Footnote-1494166
++Ref: Auto-set-Footnote-2494372
++Node: ARGC and ARGV494428
++Node: Pattern Action Summary498641
++Node: Arrays501071
++Node: Array Basics502400
++Node: Array Intro503244
++Ref: figure-array-elements505219
++Ref: Array Intro-Footnote-1507923
++Node: Reference to Elements508051
++Node: Assigning Elements510515
++Node: Array Example511006
++Node: Scanning an Array512765
++Node: Controlling Scanning515787
++Ref: Controlling Scanning-Footnote-1522243
++Node: Numeric Array Subscripts522559
++Node: Uninitialized Subscripts524743
++Node: Delete526362
++Ref: Delete-Footnote-1529114
++Node: Multidimensional529171
++Node: Multiscanning532266
++Node: Arrays of Arrays533857
++Node: Arrays Summary538625
++Node: Functions540718
++Node: Built-in541756
++Node: Calling Built-in542909
++Node: Boolean Functions544905
++Node: Numeric Functions545459
++Ref: Numeric Functions-Footnote-1549486
++Ref: Numeric Functions-Footnote-2550134
++Ref: Numeric Functions-Footnote-3550182
++Node: String Functions550454
++Ref: String Functions-Footnote-1574595
++Ref: String Functions-Footnote-2574723
++Ref: String Functions-Footnote-3574971
++Node: Gory Details575058
++Ref: table-sub-escapes576849
++Ref: table-sub-proposed578368
++Ref: table-posix-sub579731
++Ref: table-gensub-escapes581272
++Ref: Gory Details-Footnote-1582095
++Node: I/O Functions582249
++Ref: table-system-return-values588703
++Ref: I/O Functions-Footnote-1590783
++Ref: I/O Functions-Footnote-2590931
++Node: Time Functions591051
++Ref: Time Functions-Footnote-1601722
++Ref: Time Functions-Footnote-2601790
++Ref: Time Functions-Footnote-3601948
++Ref: Time Functions-Footnote-4602059
++Ref: Time Functions-Footnote-5602171
++Ref: Time Functions-Footnote-6602398
++Node: Bitwise Functions602664
++Ref: table-bitwise-ops603258
++Ref: Bitwise Functions-Footnote-1609321
++Ref: Bitwise Functions-Footnote-2609494
++Node: Type Functions609685
++Node: I18N Functions612639
++Node: User-defined614290
++Node: Definition Syntax615102
++Ref: Definition Syntax-Footnote-1620796
++Node: Function Example620867
++Ref: Function Example-Footnote-1623789
++Node: Function Calling623811
++Node: Calling A Function624399
++Node: Variable Scope625357
++Node: Pass By Value/Reference628351
++Node: Function Caveats630995
++Ref: Function Caveats-Footnote-1633042
++Node: Return Statement633162
++Node: Dynamic Typing636141
++Node: Indirect Calls637071
++Ref: Indirect Calls-Footnote-1647326
++Node: Functions Summary647454
++Node: Library Functions650159
++Ref: Library Functions-Footnote-1653766
++Ref: Library Functions-Footnote-2653909
++Node: Library Names654080
++Ref: Library Names-Footnote-1657747
++Ref: Library Names-Footnote-2657970
++Node: General Functions658056
++Node: Strtonum Function659159
++Node: Assert Function662181
++Node: Round Function665507
++Node: Cliff Random Function667047
++Node: Ordinal Functions668063
++Ref: Ordinal Functions-Footnote-1671126
++Ref: Ordinal Functions-Footnote-2671378
++Node: Join Function671588
++Ref: Join Function-Footnote-1673358
++Node: Getlocaltime Function673558
++Node: Readfile Function677300
++Node: Shell Quoting679277
++Node: Data File Management680678
++Node: Filetrans Function681310
++Node: Rewind Function685406
++Node: File Checking687315
++Ref: File Checking-Footnote-1688649
++Node: Empty Files688850
++Node: Ignoring Assigns690829
++Node: Getopt Function692379
++Ref: Getopt Function-Footnote-1707590
++Node: Passwd Functions707790
++Ref: Passwd Functions-Footnote-1716629
++Node: Group Functions716717
++Ref: Group Functions-Footnote-1724615
++Node: Walking Arrays724822
++Node: Library Functions Summary727830
++Node: Library Exercises729236
++Node: Sample Programs729701
++Node: Running Examples730471
++Node: Clones731199
++Node: Cut Program732423
++Node: Egrep Program742563
++Node: Id Program751564
++Node: Split Program761511
++Ref: Split Program-Footnote-1771401
++Node: Tee Program771574
++Node: Uniq Program774364
++Node: Wc Program781952
++Node: Bytes vs. Characters782339
++Node: Using extensions783887
++Node: wc program784641
++Node: Miscellaneous Programs789506
++Node: Dupword Program790719
++Node: Alarm Program792749
++Node: Translate Program797604
++Ref: Translate Program-Footnote-1802169
++Node: Labels Program802439
++Ref: Labels Program-Footnote-1805790
++Node: Word Sorting805874
++Node: History Sorting809946
++Node: Extract Program812171
++Node: Simple Sed820225
++Node: Igawk Program823299
++Ref: Igawk Program-Footnote-1837630
++Ref: Igawk Program-Footnote-2837832
++Ref: Igawk Program-Footnote-3837954
++Node: Anagram Program838069
++Node: Signature Program841131
++Node: Programs Summary842378
++Node: Programs Exercises843592
++Ref: Programs Exercises-Footnote-1847722
++Node: Advanced Features847808
++Node: Nondecimal Data849939
++Node: Boolean Typed Values851537
++Node: Array Sorting853418
++Node: Controlling Array Traversal854123
++Ref: Controlling Array Traversal-Footnote-1862491
++Node: Array Sorting Functions862609
++Ref: Array Sorting Functions-Footnote-1867700
++Node: Two-way I/O867896
++Ref: Two-way I/O-Footnote-1875617
++Ref: Two-way I/O-Footnote-2875804
++Node: TCP/IP Networking875886
++Node: Profiling879004
++Node: Extension Philosophy888313
++Node: Advanced Features Summary889792
++Node: Internationalization891807
++Node: I18N and L10N893481
++Node: Explaining gettext894168
++Ref: Explaining gettext-Footnote-1900060
++Ref: Explaining gettext-Footnote-2900245
++Node: Programmer i18n900410
++Ref: Programmer i18n-Footnote-1905359
++Node: Translator i18n905408
++Node: String Extraction906202
++Ref: String Extraction-Footnote-1907334
++Node: Printf Ordering907420
++Ref: Printf Ordering-Footnote-1910206
++Node: I18N Portability910270
++Ref: I18N Portability-Footnote-1912726
++Node: I18N Example912789
++Ref: I18N Example-Footnote-1916064
++Ref: I18N Example-Footnote-2916137
++Node: Gawk I18N916246
++Node: I18N Summary916895
++Node: Debugger918236
++Node: Debugging919236
++Node: Debugging Concepts919677
++Node: Debugging Terms921486
++Node: Awk Debugging924061
++Ref: Awk Debugging-Footnote-1925006
++Node: Sample Debugging Session925138
++Node: Debugger Invocation925672
++Node: Finding The Bug927058
++Node: List of Debugger Commands933532
++Node: Breakpoint Control934865
++Node: Debugger Execution Control938559
++Node: Viewing And Changing Data941921
++Node: Execution Stack945462
++Node: Debugger Info947099
++Node: Miscellaneous Debugger Commands951170
++Node: Readline Support956232
++Node: Limitations957128
++Node: Debugging Summary959682
++Node: Namespaces960961
++Node: Global Namespace962072
++Node: Qualified Names963470
++Node: Default Namespace964469
++Node: Changing The Namespace965210
++Node: Naming Rules966824
++Node: Internal Name Management968672
++Node: Namespace Example969714
++Node: Namespace And Features972276
++Node: Namespace Summary973711
++Node: Arbitrary Precision Arithmetic975188
++Node: Computer Arithmetic976675
++Ref: table-numeric-ranges980441
++Ref: table-floating-point-ranges980934
++Ref: Computer Arithmetic-Footnote-1981592
++Node: Math Definitions981649
++Ref: table-ieee-formats984625
++Node: MPFR features985192
++Node: FP Math Caution986910
++Ref: FP Math Caution-Footnote-1987982
++Node: Inexactness of computations988351
++Node: Inexact representation989382
++Node: Comparing FP Values990742
++Node: Errors accumulate991983
++Node: Strange values993439
++Ref: Strange values-Footnote-1996027
++Node: Getting Accuracy996132
++Node: Try To Round998842
++Node: Setting precision999741
++Ref: table-predefined-precision-strings1000438
++Node: Setting the rounding mode1002268
++Ref: table-gawk-rounding-modes1002642
++Ref: Setting the rounding mode-Footnote-11006573
++Node: Arbitrary Precision Integers1006752
++Ref: Arbitrary Precision Integers-Footnote-11009927
++Node: Checking for MPFR1010076
++Node: POSIX Floating Point Problems1011550
++Ref: POSIX Floating Point Problems-Footnote-11015835
++Node: Floating point summary1015873
++Node: Dynamic Extensions1018063
++Node: Extension Intro1019616
++Node: Plugin License1020882
++Node: Extension Mechanism Outline1021679
++Ref: figure-load-extension1022118
++Ref: figure-register-new-function1023683
++Ref: figure-call-new-function1024775
++Node: Extension API Description1026837
++Node: Extension API Functions Introduction1028550
++Ref: table-api-std-headers1030386
++Node: General Data Types1034635
++Ref: General Data Types-Footnote-11043341
++Node: Memory Allocation Functions1043640
++Ref: Memory Allocation Functions-Footnote-11048141
++Node: Constructor Functions1048240
++Node: API Ownership of MPFR and GMP Values1051893
++Node: Registration Functions1053206
++Node: Extension Functions1053906
++Node: Exit Callback Functions1059228
++Node: Extension Version String1060478
++Node: Input Parsers1061141
++Node: Output Wrappers1073862
++Node: Two-way processors1078374
++Node: Printing Messages1080639
++Ref: Printing Messages-Footnote-11081810
++Node: Updating ERRNO1081963
++Node: Requesting Values1082702
++Ref: table-value-types-returned1083439
++Node: Accessing Parameters1084547
++Node: Symbol Table Access1085784
++Node: Symbol table by name1086296
++Ref: Symbol table by name-Footnote-11089320
++Node: Symbol table by cookie1089448
++Ref: Symbol table by cookie-Footnote-11093633
++Node: Cached values1093697
++Ref: Cached values-Footnote-11097233
++Node: Array Manipulation1097386
++Ref: Array Manipulation-Footnote-11098477
++Node: Array Data Types1098514
++Ref: Array Data Types-Footnote-11101172
++Node: Array Functions1101264
++Node: Flattening Arrays1105762
++Node: Creating Arrays1112738
++Node: Redirection API1117505
++Node: Extension API Variables1120338
++Node: Extension Versioning1121049
++Ref: gawk-api-version1121478
++Node: Extension GMP/MPFR Versioning1123209
++Node: Extension API Informational Variables1124837
++Node: Extension API Boilerplate1125910
++Node: Changes from API V11129884
++Node: Finding Extensions1131456
++Node: Extension Example1132015
++Node: Internal File Description1132813
++Node: Internal File Ops1136893
++Ref: Internal File Ops-Footnote-11148243
++Node: Using Internal File Ops1148383
++Ref: Using Internal File Ops-Footnote-11150766
++Node: Extension Samples1151040
++Node: Extension Sample File Functions1152569
++Node: Extension Sample Fnmatch1160218
++Node: Extension Sample Fork1161705
++Node: Extension Sample Inplace1162923
++Node: Extension Sample Ord1166549
++Node: Extension Sample Readdir1167385
++Ref: table-readdir-file-types1168274
++Node: Extension Sample Revout1169341
++Node: Extension Sample Rev2way1169930
++Node: Extension Sample Read write array1170670
++Node: Extension Sample Readfile1172612
++Node: Extension Sample Time1173707
++Node: Extension Sample API Tests1175459
++Node: gawkextlib1175951
++Node: Extension summary1178869
++Node: Extension Exercises1182571
++Node: Language History1183813
++Node: V7/SVR3.11185469
++Node: SVR41187621
++Node: POSIX1189055
++Node: BTL1190436
++Node: POSIX/GNU1191165
++Node: Feature History1196943
++Node: Common Extensions1214118
++Node: Ranges and Locales1215401
++Ref: Ranges and Locales-Footnote-11220017
++Ref: Ranges and Locales-Footnote-21220044
++Ref: Ranges and Locales-Footnote-31220279
++Node: Contributors1220502
++Node: History summary1226499
++Node: Installation1227879
++Node: Gawk Distribution1228823
++Node: Getting1229307
++Node: Extracting1230270
++Node: Distribution contents1231908
++Node: Unix Installation1238388
++Node: Quick Installation1239070
++Node: Shell Startup Files1241484
++Node: Additional Configuration Options1242573
++Node: Configuration Philosophy1244888
++Node: Non-Unix Installation1247257
++Node: PC Installation1247717
++Node: PC Binary Installation1248555
++Node: PC Compiling1248990
++Node: PC Using1250107
++Node: Cygwin1253660
++Node: MSYS1254884
++Node: VMS Installation1255486
++Node: VMS Compilation1256277
++Ref: VMS Compilation-Footnote-11257506
++Node: VMS Dynamic Extensions1257564
++Node: VMS Installation Details1259249
++Node: VMS Running1261502
++Node: VMS GNV1265781
++Node: VMS Old Gawk1266516
++Node: Bugs1266987
++Node: Bug address1267650
++Node: Usenet1270632
++Node: Maintainers1271636
++Node: Other Versions1272821
++Node: Installation summary1280686
++Node: Notes1281895
++Node: Compatibility Mode1282689
++Node: Additions1283471
++Node: Accessing The Source1284396
++Node: Adding Code1285833
++Node: New Ports1292052
++Node: Derived Files1296427
++Ref: Derived Files-Footnote-11302087
++Ref: Derived Files-Footnote-21302122
++Ref: Derived Files-Footnote-31302720
++Node: Future Extensions1302834
++Node: Implementation Limitations1303492
++Node: Extension Design1304702
++Node: Old Extension Problems1305846
++Ref: Old Extension Problems-Footnote-11307364
++Node: Extension New Mechanism Goals1307421
++Ref: Extension New Mechanism Goals-Footnote-11310785
++Node: Extension Other Design Decisions1310974
++Node: Extension Future Growth1313087
++Node: Notes summary1313693
++Node: Basic Concepts1314851
++Node: Basic High Level1315532
++Ref: figure-general-flow1315814
++Ref: figure-process-flow1316499
++Ref: Basic High Level-Footnote-11319800
++Node: Basic Data Typing1319985
++Node: Glossary1323313
++Node: Copying1355200
++Node: GNU Free Documentation License1392743
++Node: Index1417863
  
  End Tag Table
  
diff --cc doc/gawk.texi
index bb891ea,ab8498f..9649d48
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@@ -863,7 -861,6 +863,7 @@@ particular records in a file and perfor
  * Programs Summary::                    Summary of programs.
  * Programs Exercises::                  Exercises.
  * Nondecimal Data::                     Allowing nondecimal input data.
- * Boolean Typed Values::                Values with @code{bool} type.
++* Boolean Typed Values::                Values with @code{number|bool} type.
  * Array Sorting::                       Facilities for controlling array
                                          traversal and sorting arrays.
  * Controlling Array Traversal::         How to use PROCINFO["sorted_in"].
@@@ -29478,49 -29446,6 +29478,49 @@@ leads to less surprising results
  This option may disappear in a future version of @command{gawk}.
  @end quotation
  
 +@node Boolean Typed Values
 +@section Boolean Typed Values
 +
 +Scalar values in @command{awk} are either numbers or strings.
 +@command{gawk} also supports values of type @code{regexp}
 +(@pxref{Strong Regexp Constants}).
 +
 +As described in @ref{Truth Values}, Boolean values in @command{awk}
 +don't have a separate type: a value counts as ``true'' if it is nonzero
 +or non-null, and as ``false'' otherwise.
 +
 +When interchanging data with languages that do have a real Boolean type,
 +using a standard format such as JSON or XML, the lack of a true Boolean
 +type in @command{awk} is problematic.
 +(See, for example, the @code{json} extension provided by
 +@uref{https://sourceforge.net/projects/gawkextlib, the @code{gawkextlib} 
project}.)
 +
 +It's easy to import Boolean data into @command{awk}, but then the fact
 +that it was originally Boolean is lost.  Exporting data is even harder;
 +there's no way to indicate that a value is really Boolean.
 +
 +To solve this problem, @command{gawk} provides a function named 
@code{mkbool()}.
 +It takes one argument, which is any @command{awk} expression, and it
 +returns a value of Boolean type.
 +
 +The returned values are normal @command{awk} numeric values, with
 +values of either one or zero,
 +depending upon the truth
- value of the original expression passed in the call to @code{bool()}.
++value of the original expression passed in the call to @code{mkbool()}.
 +
 +The @code{typeof()} function (@pxref{Type Functions}) returns
 +@code{"number|bool"} for these values.
 +
 +Thus Boolean-typed values @emph{are} numbers as far as @command{gawk}
 +is concerned, except that extension code can treat them as Booleans
 +if desired.
 +
 +While it would have been possible to add two new built-in variables
 +of Boolean type named @code{TRUE} and @code{FALSE}, doing so would
 +undoubtedly have broken many existing @command{awk} programs.  Instead,
 +having a ``generator'' function that creates Boolean values gives
 +flexibility, without breaking as much existing code.
 +
  @node Array Sorting
  @section Controlling Array Traversal and Array Sorting
  

-----------------------------------------------------------------------

Summary of changes:
 doc/ChangeLog   |    5 +
 doc/gawk.info   | 1232 ++++++++++++++++++++++++++++---------------------------
 doc/gawk.texi   |   24 +-
 doc/gawktexi.in |   20 +-
 4 files changed, 663 insertions(+), 618 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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