[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] gawk branch, feature/bool, updated. gawk-4.1.0-4284-g1453c73
From: |
Arnold Robbins |
Subject: |
[SCM] gawk branch, feature/bool, updated. gawk-4.1.0-4284-g1453c73 |
Date: |
Tue, 6 Apr 2021 08:25:42 -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, feature/bool has been updated
via 1453c73c5c71d92aad0e2412f8098cf667ff4200 (commit)
via 4ee6a6599fede9edeab525813d834a5f9d241391 (commit)
from 1f10523de0fc469f0604f5642562f92da608311d (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=1453c73c5c71d92aad0e2412f8098cf667ff4200
commit 1453c73c5c71d92aad0e2412f8098cf667ff4200
Author: Arnold D. Robbins <arnold@skeeve.com>
Date: Tue Apr 6 15:25:28 2021 +0300
Update man page for bool.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index d73a864..9cf4aa3 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,6 +1,7 @@
2021-04-06 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Finish documenting bool features.
+ * gawk.1: Add minimal documentation on bool.
2021-04-04 Arnold D. Robbins <arnold@skeeve.com>
diff --git a/doc/gawk.1 b/doc/gawk.1
index a8cf39f..86ddd7c 100644
--- a/doc/gawk.1
+++ b/doc/gawk.1
@@ -13,7 +13,7 @@
. if \w'\(rq' .ds rq "\(rq
. \}
.\}
-.TH GAWK 1 "Aug 31 2020" "Free Software Foundation" "Utility Commands"
+.TH GAWK 1 "Apr 6 2021" "Free Software Foundation" "Utility Commands"
.SH NAME
gawk \- pattern scanning and processing language
.SH SYNOPSIS
@@ -3480,6 +3480,16 @@ in \*(EP.
You must also supply a text domain. Use
.B TEXTDOMAIN
if you want to use the current domain.
+.SS Boolean Valued Functions
+You can create special Boolean-typed values; see the manual for how
+they work and why they exist.
+.TP
+.BI bool( expression\^ )
+Based on the boolean value of
+.I expression
+return either a true value or a false value.
+True values have numeric value one and string value \fB"TRUE"\fR.
+False values have numeric value zero and string value \fB"False"\fR.
.SH USER-DEFINED FUNCTIONS
Functions in \*(AK are defined as follows:
.PP
@@ -3700,7 +3710,7 @@ accommodate applications that depended upon the old
behavior.
(This feature was agreed upon by both the Bell Laboratories developers
and the \*(GN developers.)
.PP
-When processing arguments,
+When procesiing arguments,
.I gawk
uses the special option \*(lq\-\^\-\*(rq to signal the end of
arguments.
@@ -4265,7 +4275,7 @@ We thank him.
.SH COPYING PERMISSIONS
Copyright \(co 1989, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2007, 2009,
-2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
+2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=4ee6a6599fede9edeab525813d834a5f9d241391
commit 4ee6a6599fede9edeab525813d834a5f9d241391
Author: Arnold D. Robbins <arnold@skeeve.com>
Date: Tue Apr 6 15:16:47 2021 +0300
Finish documenting bool in the manual.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 4659f15..d73a864 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2021-04-06 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Finish documenting bool features.
+
2021-04-04 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Start documenting bool features.
diff --git a/doc/gawk.info b/doc/gawk.info
index 9f3abe0..008160c 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -12847,12 +12847,15 @@ File: gawk.info, Node: Boolean Functions, Next:
Numeric Functions, Prev: Call
9.1.2 Generating Boolean Values
-------------------------------
-This functions is specific to 'gawk'. It is not available in
+This function is specific to 'gawk'. It is not available in
compatibility mode (*note Options::):
'bool(EXPRESSION)'
-
- blah blah
+ Return a Boolean-typed value based on the regular Boolean value of
+ EXPRESSION. Boolean "true" values have numeric value one and
+ string value '"TRUE"'. Boolean "false" values have numeric zero
+ and string value '"FALSE"'. This is discussed in more detail in
+ *note Boolean Typed Values::.
File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev:
Boolean Functions, Up: Built-in
@@ -14428,6 +14431,9 @@ contexts.
'"array"'
X is an array.
+ '"bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"regexp"'
X is a strongly typed regexp (*note Strong Regexp
Constants::).
@@ -20948,19 +20954,18 @@ File: gawk.info, Node: Boolean Typed Values, Next:
Array Sorting, Prev: Nonde
12.2 Boolean Typed Values
=========================
-This minor node describes an advanced, 'gawk'-specific extension.
-
- Scalar values in 'awk' are either numbers or strings. 'gawk' also
-supports values of type 'regexp' (FIXME pxref).
+Scalar values in 'awk' are either numbers or strings. 'gawk' also
+supports values of type 'regexp' (*note Strong Regexp Constants::).
- As seen in FIXME @ref{} here, 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.
+ 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. (FIXME: xref to gawkextlib json
-extension)
+Boolean type in 'awk' is problematic. (See, for example, the 'json'
+extension provided by the 'gawkextlib' project
+(https://sourceforge.net/projects/gawkextlib).)
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;
@@ -20972,14 +20977,20 @@ value of Boolean type.
The returned values are different than normal 'awk' values. When
treated as numbers, they are either one or zero, depending upon the
-truth value of the expression passed in the call. When treated as
-strings, they are either '"TRUE"' or '"FALSE"', again depending upon the
-truth value of the expression passed in the call. The value for "false"
-is thus unusual; it is zero numerically, but not empty when treated as a
-string.
+truth value of the original expression passed in the call to 'bool()'.
+When treated as strings, they are either '"TRUE"' or '"FALSE"', again
+depending upon the truth value of the expression passed in the call to
+'bool()'. The value for "false" is thus unusual; it is zero
+numerically, but not empty when treated as a string.
+
+ The 'typeof()' function (*note Type Functions::) returns '"bool"' for
+these values.
- The 'typeof()' function (FIXME pxref here) returns '"bool"' for these
-values.
+ 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
+any existing code.
File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Boolean
Typed Values, Up: Advanced Features
@@ -38426,364 +38437,364 @@ Node: Functions540711
Node: Built-in541749
Node: Calling Built-in542902
Node: Boolean Functions544898
-Node: Numeric Functions545211
-Ref: Numeric Functions-Footnote-1549238
-Ref: Numeric Functions-Footnote-2549886
-Ref: Numeric Functions-Footnote-3549934
-Node: String Functions550206
-Ref: String Functions-Footnote-1574347
-Ref: String Functions-Footnote-2574475
-Ref: String Functions-Footnote-3574723
-Node: Gory Details574810
-Ref: table-sub-escapes576601
-Ref: table-sub-proposed578120
-Ref: table-posix-sub579483
-Ref: table-gensub-escapes581024
-Ref: Gory Details-Footnote-1581847
-Node: I/O Functions582001
-Ref: table-system-return-values588455
-Ref: I/O Functions-Footnote-1590535
-Ref: I/O Functions-Footnote-2590683
-Node: Time Functions590803
-Ref: Time Functions-Footnote-1601474
-Ref: Time Functions-Footnote-2601542
-Ref: Time Functions-Footnote-3601700
-Ref: Time Functions-Footnote-4601811
-Ref: Time Functions-Footnote-5601923
-Ref: Time Functions-Footnote-6602150
-Node: Bitwise Functions602416
-Ref: table-bitwise-ops603010
-Ref: Bitwise Functions-Footnote-1609073
-Ref: Bitwise Functions-Footnote-2609246
-Node: Type Functions609437
-Node: I18N Functions612300
-Node: User-defined613951
-Node: Definition Syntax614763
-Ref: Definition Syntax-Footnote-1620457
-Node: Function Example620528
-Ref: Function Example-Footnote-1623450
-Node: Function Calling623472
-Node: Calling A Function624060
-Node: Variable Scope625018
-Node: Pass By Value/Reference628012
-Node: Function Caveats630656
-Ref: Function Caveats-Footnote-1632703
-Node: Return Statement632823
-Node: Dynamic Typing635802
-Node: Indirect Calls636732
-Ref: Indirect Calls-Footnote-1646987
-Node: Functions Summary647115
-Node: Library Functions649820
-Ref: Library Functions-Footnote-1653427
-Ref: Library Functions-Footnote-2653570
-Node: Library Names653741
-Ref: Library Names-Footnote-1657408
-Ref: Library Names-Footnote-2657631
-Node: General Functions657717
-Node: Strtonum Function658820
-Node: Assert Function661842
-Node: Round Function665168
-Node: Cliff Random Function666708
-Node: Ordinal Functions667724
-Ref: Ordinal Functions-Footnote-1670787
-Ref: Ordinal Functions-Footnote-2671039
-Node: Join Function671249
-Ref: Join Function-Footnote-1673019
-Node: Getlocaltime Function673219
-Node: Readfile Function676961
-Node: Shell Quoting678938
-Node: Data File Management680339
-Node: Filetrans Function680971
-Node: Rewind Function685067
-Node: File Checking686976
-Ref: File Checking-Footnote-1688310
-Node: Empty Files688511
-Node: Ignoring Assigns690490
-Node: Getopt Function692040
-Ref: Getopt Function-Footnote-1707251
-Node: Passwd Functions707451
-Ref: Passwd Functions-Footnote-1716290
-Node: Group Functions716378
-Ref: Group Functions-Footnote-1724276
-Node: Walking Arrays724483
-Node: Library Functions Summary727491
-Node: Library Exercises728897
-Node: Sample Programs729362
-Node: Running Examples730132
-Node: Clones730860
-Node: Cut Program732084
-Node: Egrep Program742224
-Node: Id Program751225
-Node: Split Program761172
-Ref: Split Program-Footnote-1771062
-Node: Tee Program771235
-Node: Uniq Program774025
-Node: Wc Program781613
-Node: Bytes vs. Characters782000
-Node: Using extensions783548
-Node: wc program784302
-Node: Miscellaneous Programs789167
-Node: Dupword Program790380
-Node: Alarm Program792410
-Node: Translate Program797265
-Ref: Translate Program-Footnote-1801830
-Node: Labels Program802100
-Ref: Labels Program-Footnote-1805451
-Node: Word Sorting805535
-Node: History Sorting809607
-Node: Extract Program811832
-Node: Simple Sed819886
-Node: Igawk Program822960
-Ref: Igawk Program-Footnote-1837291
-Ref: Igawk Program-Footnote-2837493
-Ref: Igawk Program-Footnote-3837615
-Node: Anagram Program837730
-Node: Signature Program840792
-Node: Programs Summary842039
-Node: Programs Exercises843253
-Ref: Programs Exercises-Footnote-1847383
-Node: Advanced Features847469
-Node: Nondecimal Data849593
-Node: Boolean Typed Values851191
-Node: Array Sorting852815
-Node: Controlling Array Traversal853520
-Ref: Controlling Array Traversal-Footnote-1861888
-Node: Array Sorting Functions862006
-Ref: Array Sorting Functions-Footnote-1867097
-Node: Two-way I/O867293
-Ref: Two-way I/O-Footnote-1875014
-Ref: Two-way I/O-Footnote-2875201
-Node: TCP/IP Networking875283
-Node: Profiling878401
-Node: Extension Philosophy887710
-Node: Advanced Features Summary889189
-Node: Internationalization891204
-Node: I18N and L10N892684
-Node: Explaining gettext893371
-Ref: Explaining gettext-Footnote-1899263
-Ref: Explaining gettext-Footnote-2899448
-Node: Programmer i18n899613
-Ref: Programmer i18n-Footnote-1904562
-Node: Translator i18n904611
-Node: String Extraction905405
-Ref: String Extraction-Footnote-1906537
-Node: Printf Ordering906623
-Ref: Printf Ordering-Footnote-1909409
-Node: I18N Portability909473
-Ref: I18N Portability-Footnote-1911929
-Node: I18N Example911992
-Ref: I18N Example-Footnote-1915267
-Ref: I18N Example-Footnote-2915340
-Node: Gawk I18N915449
-Node: I18N Summary916098
-Node: Debugger917439
-Node: Debugging918439
-Node: Debugging Concepts918880
-Node: Debugging Terms920689
-Node: Awk Debugging923264
-Ref: Awk Debugging-Footnote-1924209
-Node: Sample Debugging Session924341
-Node: Debugger Invocation924875
-Node: Finding The Bug926261
-Node: List of Debugger Commands932735
-Node: Breakpoint Control934068
-Node: Debugger Execution Control937762
-Node: Viewing And Changing Data941124
-Node: Execution Stack944665
-Node: Debugger Info946302
-Node: Miscellaneous Debugger Commands950373
-Node: Readline Support955435
-Node: Limitations956331
-Node: Debugging Summary958885
-Node: Namespaces960164
-Node: Global Namespace961275
-Node: Qualified Names962673
-Node: Default Namespace963672
-Node: Changing The Namespace964413
-Node: Naming Rules966027
-Node: Internal Name Management967875
-Node: Namespace Example968917
-Node: Namespace And Features971479
-Node: Namespace Summary972914
-Node: Arbitrary Precision Arithmetic974391
-Node: Computer Arithmetic975878
-Ref: table-numeric-ranges979644
-Ref: table-floating-point-ranges980137
-Ref: Computer Arithmetic-Footnote-1980795
-Node: Math Definitions980852
-Ref: table-ieee-formats983828
-Node: MPFR features984395
-Node: FP Math Caution986113
-Ref: FP Math Caution-Footnote-1987185
-Node: Inexactness of computations987554
-Node: Inexact representation988585
-Node: Comparing FP Values989945
-Node: Errors accumulate991186
-Node: Strange values992642
-Ref: Strange values-Footnote-1995230
-Node: Getting Accuracy995335
-Node: Try To Round998045
-Node: Setting precision998944
-Ref: table-predefined-precision-strings999641
-Node: Setting the rounding mode1001471
-Ref: table-gawk-rounding-modes1001845
-Ref: Setting the rounding mode-Footnote-11005776
-Node: Arbitrary Precision Integers1005955
-Ref: Arbitrary Precision Integers-Footnote-11009130
-Node: Checking for MPFR1009279
-Node: POSIX Floating Point Problems1010753
-Ref: POSIX Floating Point Problems-Footnote-11015038
-Node: Floating point summary1015076
-Node: Dynamic Extensions1017266
-Node: Extension Intro1018819
-Node: Plugin License1020085
-Node: Extension Mechanism Outline1020882
-Ref: figure-load-extension1021321
-Ref: figure-register-new-function1022886
-Ref: figure-call-new-function1023978
-Node: Extension API Description1026040
-Node: Extension API Functions Introduction1027753
-Ref: table-api-std-headers1029589
-Node: General Data Types1033838
-Ref: General Data Types-Footnote-11042544
-Node: Memory Allocation Functions1042843
-Ref: Memory Allocation Functions-Footnote-11047344
-Node: Constructor Functions1047443
-Node: API Ownership of MPFR and GMP Values1051096
-Node: Registration Functions1052409
-Node: Extension Functions1053109
-Node: Exit Callback Functions1058431
-Node: Extension Version String1059681
-Node: Input Parsers1060344
-Node: Output Wrappers1073065
-Node: Two-way processors1077577
-Node: Printing Messages1079842
-Ref: Printing Messages-Footnote-11081013
-Node: Updating ERRNO1081166
-Node: Requesting Values1081905
-Ref: table-value-types-returned1082642
-Node: Accessing Parameters1083750
-Node: Symbol Table Access1084987
-Node: Symbol table by name1085499
-Ref: Symbol table by name-Footnote-11088523
-Node: Symbol table by cookie1088651
-Ref: Symbol table by cookie-Footnote-11092836
-Node: Cached values1092900
-Ref: Cached values-Footnote-11096436
-Node: Array Manipulation1096589
-Ref: Array Manipulation-Footnote-11097680
-Node: Array Data Types1097717
-Ref: Array Data Types-Footnote-11100375
-Node: Array Functions1100467
-Node: Flattening Arrays1104965
-Node: Creating Arrays1111941
-Node: Redirection API1116708
-Node: Extension API Variables1119541
-Node: Extension Versioning1120252
-Ref: gawk-api-version1120681
-Node: Extension GMP/MPFR Versioning1122412
-Node: Extension API Informational Variables1124040
-Node: Extension API Boilerplate1125113
-Node: Changes from API V11129087
-Node: Finding Extensions1130659
-Node: Extension Example1131218
-Node: Internal File Description1132016
-Node: Internal File Ops1136096
-Ref: Internal File Ops-Footnote-11147446
-Node: Using Internal File Ops1147586
-Ref: Using Internal File Ops-Footnote-11149969
-Node: Extension Samples1150243
-Node: Extension Sample File Functions1151772
-Node: Extension Sample Fnmatch1159421
-Node: Extension Sample Fork1160908
-Node: Extension Sample Inplace1162126
-Node: Extension Sample Ord1165752
-Node: Extension Sample Readdir1166588
-Ref: table-readdir-file-types1167477
-Node: Extension Sample Revout1168544
-Node: Extension Sample Rev2way1169133
-Node: Extension Sample Read write array1169873
-Node: Extension Sample Readfile1171815
-Node: Extension Sample Time1172910
-Node: Extension Sample API Tests1174662
-Node: gawkextlib1175154
-Node: Extension summary1178072
-Node: Extension Exercises1181774
-Node: Language History1183016
-Node: V7/SVR3.11184672
-Node: SVR41186824
-Node: POSIX1188258
-Node: BTL1189639
-Node: POSIX/GNU1190368
-Node: Feature History1196146
-Node: Common Extensions1212465
-Node: Ranges and Locales1213748
-Ref: Ranges and Locales-Footnote-11218364
-Ref: Ranges and Locales-Footnote-21218391
-Ref: Ranges and Locales-Footnote-31218626
-Node: Contributors1218849
-Node: History summary1224846
-Node: Installation1226226
-Node: Gawk Distribution1227170
-Node: Getting1227654
-Node: Extracting1228617
-Node: Distribution contents1230255
-Node: Unix Installation1236735
-Node: Quick Installation1237417
-Node: Shell Startup Files1239831
-Node: Additional Configuration Options1240920
-Node: Configuration Philosophy1243235
-Node: Non-Unix Installation1245604
-Node: PC Installation1246064
-Node: PC Binary Installation1246902
-Node: PC Compiling1247337
-Node: PC Using1248454
-Node: Cygwin1252007
-Node: MSYS1253231
-Node: VMS Installation1253833
-Node: VMS Compilation1254624
-Ref: VMS Compilation-Footnote-11255853
-Node: VMS Dynamic Extensions1255911
-Node: VMS Installation Details1257596
-Node: VMS Running1259849
-Node: VMS GNV1264128
-Node: VMS Old Gawk1264863
-Node: Bugs1265334
-Node: Bug address1265997
-Node: Usenet1268979
-Node: Maintainers1269983
-Node: Other Versions1271168
-Node: Installation summary1279033
-Node: Notes1280242
-Node: Compatibility Mode1281036
-Node: Additions1281818
-Node: Accessing The Source1282743
-Node: Adding Code1284180
-Node: New Ports1290399
-Node: Derived Files1294774
-Ref: Derived Files-Footnote-11300434
-Ref: Derived Files-Footnote-21300469
-Ref: Derived Files-Footnote-31301067
-Node: Future Extensions1301181
-Node: Implementation Limitations1301839
-Node: Extension Design1303049
-Node: Old Extension Problems1304193
-Ref: Old Extension Problems-Footnote-11305711
-Node: Extension New Mechanism Goals1305768
-Ref: Extension New Mechanism Goals-Footnote-11309132
-Node: Extension Other Design Decisions1309321
-Node: Extension Future Growth1311434
-Node: Notes summary1312040
-Node: Basic Concepts1313198
-Node: Basic High Level1313879
-Ref: figure-general-flow1314161
-Ref: figure-process-flow1314846
-Ref: Basic High Level-Footnote-11318147
-Node: Basic Data Typing1318332
-Node: Glossary1321660
-Node: Copying1353545
-Node: GNU Free Documentation License1391088
-Node: Index1416208
+Node: Numeric Functions545508
+Ref: Numeric Functions-Footnote-1549535
+Ref: Numeric Functions-Footnote-2550183
+Ref: Numeric Functions-Footnote-3550231
+Node: String Functions550503
+Ref: String Functions-Footnote-1574644
+Ref: String Functions-Footnote-2574772
+Ref: String Functions-Footnote-3575020
+Node: Gory Details575107
+Ref: table-sub-escapes576898
+Ref: table-sub-proposed578417
+Ref: table-posix-sub579780
+Ref: table-gensub-escapes581321
+Ref: Gory Details-Footnote-1582144
+Node: I/O Functions582298
+Ref: table-system-return-values588752
+Ref: I/O Functions-Footnote-1590832
+Ref: I/O Functions-Footnote-2590980
+Node: Time Functions591100
+Ref: Time Functions-Footnote-1601771
+Ref: Time Functions-Footnote-2601839
+Ref: Time Functions-Footnote-3601997
+Ref: Time Functions-Footnote-4602108
+Ref: Time Functions-Footnote-5602220
+Ref: Time Functions-Footnote-6602447
+Node: Bitwise Functions602713
+Ref: table-bitwise-ops603307
+Ref: Bitwise Functions-Footnote-1609370
+Ref: Bitwise Functions-Footnote-2609543
+Node: Type Functions609734
+Node: I18N Functions612681
+Node: User-defined614332
+Node: Definition Syntax615144
+Ref: Definition Syntax-Footnote-1620838
+Node: Function Example620909
+Ref: Function Example-Footnote-1623831
+Node: Function Calling623853
+Node: Calling A Function624441
+Node: Variable Scope625399
+Node: Pass By Value/Reference628393
+Node: Function Caveats631037
+Ref: Function Caveats-Footnote-1633084
+Node: Return Statement633204
+Node: Dynamic Typing636183
+Node: Indirect Calls637113
+Ref: Indirect Calls-Footnote-1647368
+Node: Functions Summary647496
+Node: Library Functions650201
+Ref: Library Functions-Footnote-1653808
+Ref: Library Functions-Footnote-2653951
+Node: Library Names654122
+Ref: Library Names-Footnote-1657789
+Ref: Library Names-Footnote-2658012
+Node: General Functions658098
+Node: Strtonum Function659201
+Node: Assert Function662223
+Node: Round Function665549
+Node: Cliff Random Function667089
+Node: Ordinal Functions668105
+Ref: Ordinal Functions-Footnote-1671168
+Ref: Ordinal Functions-Footnote-2671420
+Node: Join Function671630
+Ref: Join Function-Footnote-1673400
+Node: Getlocaltime Function673600
+Node: Readfile Function677342
+Node: Shell Quoting679319
+Node: Data File Management680720
+Node: Filetrans Function681352
+Node: Rewind Function685448
+Node: File Checking687357
+Ref: File Checking-Footnote-1688691
+Node: Empty Files688892
+Node: Ignoring Assigns690871
+Node: Getopt Function692421
+Ref: Getopt Function-Footnote-1707632
+Node: Passwd Functions707832
+Ref: Passwd Functions-Footnote-1716671
+Node: Group Functions716759
+Ref: Group Functions-Footnote-1724657
+Node: Walking Arrays724864
+Node: Library Functions Summary727872
+Node: Library Exercises729278
+Node: Sample Programs729743
+Node: Running Examples730513
+Node: Clones731241
+Node: Cut Program732465
+Node: Egrep Program742605
+Node: Id Program751606
+Node: Split Program761553
+Ref: Split Program-Footnote-1771443
+Node: Tee Program771616
+Node: Uniq Program774406
+Node: Wc Program781994
+Node: Bytes vs. Characters782381
+Node: Using extensions783929
+Node: wc program784683
+Node: Miscellaneous Programs789548
+Node: Dupword Program790761
+Node: Alarm Program792791
+Node: Translate Program797646
+Ref: Translate Program-Footnote-1802211
+Node: Labels Program802481
+Ref: Labels Program-Footnote-1805832
+Node: Word Sorting805916
+Node: History Sorting809988
+Node: Extract Program812213
+Node: Simple Sed820267
+Node: Igawk Program823341
+Ref: Igawk Program-Footnote-1837672
+Ref: Igawk Program-Footnote-2837874
+Ref: Igawk Program-Footnote-3837996
+Node: Anagram Program838111
+Node: Signature Program841173
+Node: Programs Summary842420
+Node: Programs Exercises843634
+Ref: Programs Exercises-Footnote-1847764
+Node: Advanced Features847850
+Node: Nondecimal Data849974
+Node: Boolean Typed Values851572
+Node: Array Sorting853580
+Node: Controlling Array Traversal854285
+Ref: Controlling Array Traversal-Footnote-1862653
+Node: Array Sorting Functions862771
+Ref: Array Sorting Functions-Footnote-1867862
+Node: Two-way I/O868058
+Ref: Two-way I/O-Footnote-1875779
+Ref: Two-way I/O-Footnote-2875966
+Node: TCP/IP Networking876048
+Node: Profiling879166
+Node: Extension Philosophy888475
+Node: Advanced Features Summary889954
+Node: Internationalization891969
+Node: I18N and L10N893449
+Node: Explaining gettext894136
+Ref: Explaining gettext-Footnote-1900028
+Ref: Explaining gettext-Footnote-2900213
+Node: Programmer i18n900378
+Ref: Programmer i18n-Footnote-1905327
+Node: Translator i18n905376
+Node: String Extraction906170
+Ref: String Extraction-Footnote-1907302
+Node: Printf Ordering907388
+Ref: Printf Ordering-Footnote-1910174
+Node: I18N Portability910238
+Ref: I18N Portability-Footnote-1912694
+Node: I18N Example912757
+Ref: I18N Example-Footnote-1916032
+Ref: I18N Example-Footnote-2916105
+Node: Gawk I18N916214
+Node: I18N Summary916863
+Node: Debugger918204
+Node: Debugging919204
+Node: Debugging Concepts919645
+Node: Debugging Terms921454
+Node: Awk Debugging924029
+Ref: Awk Debugging-Footnote-1924974
+Node: Sample Debugging Session925106
+Node: Debugger Invocation925640
+Node: Finding The Bug927026
+Node: List of Debugger Commands933500
+Node: Breakpoint Control934833
+Node: Debugger Execution Control938527
+Node: Viewing And Changing Data941889
+Node: Execution Stack945430
+Node: Debugger Info947067
+Node: Miscellaneous Debugger Commands951138
+Node: Readline Support956200
+Node: Limitations957096
+Node: Debugging Summary959650
+Node: Namespaces960929
+Node: Global Namespace962040
+Node: Qualified Names963438
+Node: Default Namespace964437
+Node: Changing The Namespace965178
+Node: Naming Rules966792
+Node: Internal Name Management968640
+Node: Namespace Example969682
+Node: Namespace And Features972244
+Node: Namespace Summary973679
+Node: Arbitrary Precision Arithmetic975156
+Node: Computer Arithmetic976643
+Ref: table-numeric-ranges980409
+Ref: table-floating-point-ranges980902
+Ref: Computer Arithmetic-Footnote-1981560
+Node: Math Definitions981617
+Ref: table-ieee-formats984593
+Node: MPFR features985160
+Node: FP Math Caution986878
+Ref: FP Math Caution-Footnote-1987950
+Node: Inexactness of computations988319
+Node: Inexact representation989350
+Node: Comparing FP Values990710
+Node: Errors accumulate991951
+Node: Strange values993407
+Ref: Strange values-Footnote-1995995
+Node: Getting Accuracy996100
+Node: Try To Round998810
+Node: Setting precision999709
+Ref: table-predefined-precision-strings1000406
+Node: Setting the rounding mode1002236
+Ref: table-gawk-rounding-modes1002610
+Ref: Setting the rounding mode-Footnote-11006541
+Node: Arbitrary Precision Integers1006720
+Ref: Arbitrary Precision Integers-Footnote-11009895
+Node: Checking for MPFR1010044
+Node: POSIX Floating Point Problems1011518
+Ref: POSIX Floating Point Problems-Footnote-11015803
+Node: Floating point summary1015841
+Node: Dynamic Extensions1018031
+Node: Extension Intro1019584
+Node: Plugin License1020850
+Node: Extension Mechanism Outline1021647
+Ref: figure-load-extension1022086
+Ref: figure-register-new-function1023651
+Ref: figure-call-new-function1024743
+Node: Extension API Description1026805
+Node: Extension API Functions Introduction1028518
+Ref: table-api-std-headers1030354
+Node: General Data Types1034603
+Ref: General Data Types-Footnote-11043309
+Node: Memory Allocation Functions1043608
+Ref: Memory Allocation Functions-Footnote-11048109
+Node: Constructor Functions1048208
+Node: API Ownership of MPFR and GMP Values1051861
+Node: Registration Functions1053174
+Node: Extension Functions1053874
+Node: Exit Callback Functions1059196
+Node: Extension Version String1060446
+Node: Input Parsers1061109
+Node: Output Wrappers1073830
+Node: Two-way processors1078342
+Node: Printing Messages1080607
+Ref: Printing Messages-Footnote-11081778
+Node: Updating ERRNO1081931
+Node: Requesting Values1082670
+Ref: table-value-types-returned1083407
+Node: Accessing Parameters1084515
+Node: Symbol Table Access1085752
+Node: Symbol table by name1086264
+Ref: Symbol table by name-Footnote-11089288
+Node: Symbol table by cookie1089416
+Ref: Symbol table by cookie-Footnote-11093601
+Node: Cached values1093665
+Ref: Cached values-Footnote-11097201
+Node: Array Manipulation1097354
+Ref: Array Manipulation-Footnote-11098445
+Node: Array Data Types1098482
+Ref: Array Data Types-Footnote-11101140
+Node: Array Functions1101232
+Node: Flattening Arrays1105730
+Node: Creating Arrays1112706
+Node: Redirection API1117473
+Node: Extension API Variables1120306
+Node: Extension Versioning1121017
+Ref: gawk-api-version1121446
+Node: Extension GMP/MPFR Versioning1123177
+Node: Extension API Informational Variables1124805
+Node: Extension API Boilerplate1125878
+Node: Changes from API V11129852
+Node: Finding Extensions1131424
+Node: Extension Example1131983
+Node: Internal File Description1132781
+Node: Internal File Ops1136861
+Ref: Internal File Ops-Footnote-11148211
+Node: Using Internal File Ops1148351
+Ref: Using Internal File Ops-Footnote-11150734
+Node: Extension Samples1151008
+Node: Extension Sample File Functions1152537
+Node: Extension Sample Fnmatch1160186
+Node: Extension Sample Fork1161673
+Node: Extension Sample Inplace1162891
+Node: Extension Sample Ord1166517
+Node: Extension Sample Readdir1167353
+Ref: table-readdir-file-types1168242
+Node: Extension Sample Revout1169309
+Node: Extension Sample Rev2way1169898
+Node: Extension Sample Read write array1170638
+Node: Extension Sample Readfile1172580
+Node: Extension Sample Time1173675
+Node: Extension Sample API Tests1175427
+Node: gawkextlib1175919
+Node: Extension summary1178837
+Node: Extension Exercises1182539
+Node: Language History1183781
+Node: V7/SVR3.11185437
+Node: SVR41187589
+Node: POSIX1189023
+Node: BTL1190404
+Node: POSIX/GNU1191133
+Node: Feature History1196911
+Node: Common Extensions1213230
+Node: Ranges and Locales1214513
+Ref: Ranges and Locales-Footnote-11219129
+Ref: Ranges and Locales-Footnote-21219156
+Ref: Ranges and Locales-Footnote-31219391
+Node: Contributors1219614
+Node: History summary1225611
+Node: Installation1226991
+Node: Gawk Distribution1227935
+Node: Getting1228419
+Node: Extracting1229382
+Node: Distribution contents1231020
+Node: Unix Installation1237500
+Node: Quick Installation1238182
+Node: Shell Startup Files1240596
+Node: Additional Configuration Options1241685
+Node: Configuration Philosophy1244000
+Node: Non-Unix Installation1246369
+Node: PC Installation1246829
+Node: PC Binary Installation1247667
+Node: PC Compiling1248102
+Node: PC Using1249219
+Node: Cygwin1252772
+Node: MSYS1253996
+Node: VMS Installation1254598
+Node: VMS Compilation1255389
+Ref: VMS Compilation-Footnote-11256618
+Node: VMS Dynamic Extensions1256676
+Node: VMS Installation Details1258361
+Node: VMS Running1260614
+Node: VMS GNV1264893
+Node: VMS Old Gawk1265628
+Node: Bugs1266099
+Node: Bug address1266762
+Node: Usenet1269744
+Node: Maintainers1270748
+Node: Other Versions1271933
+Node: Installation summary1279798
+Node: Notes1281007
+Node: Compatibility Mode1281801
+Node: Additions1282583
+Node: Accessing The Source1283508
+Node: Adding Code1284945
+Node: New Ports1291164
+Node: Derived Files1295539
+Ref: Derived Files-Footnote-11301199
+Ref: Derived Files-Footnote-21301234
+Ref: Derived Files-Footnote-31301832
+Node: Future Extensions1301946
+Node: Implementation Limitations1302604
+Node: Extension Design1303814
+Node: Old Extension Problems1304958
+Ref: Old Extension Problems-Footnote-11306476
+Node: Extension New Mechanism Goals1306533
+Ref: Extension New Mechanism Goals-Footnote-11309897
+Node: Extension Other Design Decisions1310086
+Node: Extension Future Growth1312199
+Node: Notes summary1312805
+Node: Basic Concepts1313963
+Node: Basic High Level1314644
+Ref: figure-general-flow1314926
+Ref: figure-process-flow1315611
+Ref: Basic High Level-Footnote-11318912
+Node: Basic Data Typing1319097
+Node: Glossary1322425
+Node: Copying1354310
+Node: GNU Free Documentation License1391853
+Node: Index1416973
End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 280b316..6a7feaa 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -18385,15 +18385,18 @@ two arguments 11 and 10.
@subsection Generating Boolean Values
@cindex boolean function
-This functions is specific to @command{gawk}. It is not
+This function is specific to @command{gawk}. It is not
available in compatibility mode (@pxref{Options}):
@c @asis for docbook
@table @asis
@item @code{bool(@var{expression})}
@cindexgawkfunc{bool}
-
-blah blah
+Return a Boolean-typed value based on the regular Boolean value
+of @var{expression}. Boolean ``true'' values have numeric value one
+and string value @code{"TRUE"}. Boolean ``false'' values have numeric
+zero and string value @code{"FALSE"}. This is discussed in more
+detail in @ref{Boolean Typed Values}.
@end table
@node Numeric Functions
@@ -20912,6 +20915,9 @@ Return one of the following strings, depending upon the
type of @var{x}:
@item "array"
@var{x} is an array.
+@item "bool"
+@var{x} is a Boolean typed value (@pxref{Boolean Typed Values}).
+
@item "regexp"
@var{x} is a strongly typed regexp (@pxref{Strong Regexp Constants}).
@@ -29475,19 +29481,19 @@ This option may disappear in a future version of
@command{gawk}.
@node Boolean Typed Values
@section Boolean Typed Values
-This @value{SECTION} describes an advanced, @command{gawk}-specific extension.
-
Scalar values in @command{awk} are either numbers or strings.
-@command{gawk} also supports values of type @code{regexp} (FIXME pxref).
+@command{gawk} also supports values of type @code{regexp}
+(@pxref{Strong Regexp Constants}).
-As seen in FIXME @@ref@{@} here, 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.
+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. (FIXME: xref to gawkextlib json
-extension)
+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;
@@ -29497,16 +29503,22 @@ To solve this problem, @command{gawk} provides a
function named @code{bool()}.
It takes one argument, which is any @command{awk} expression, and it
returns a value of Boolean type.
-The returned values are different than
-normal @command{awk} values. When treated as numbers, they are either
-one or zero, depending upon the truth value of the expression passed
-in the call. When treated as strings, they are either @code{"TRUE"}
-or @code{"FALSE"}, again depending upon the truth value of the expression
passed
-in the call. The value for ``false'' is thus unusual; it is zero numerically,
-but not empty when treated as a string.
-
-The @code{typeof()} function (FIXME pxref here) returns @code{"bool"}
-for these values.
+The returned values are different than normal @command{awk} values. When
+treated as numbers, they are either one or zero, depending upon the truth
+value of the original expression passed in the call to @code{bool()}. When
+treated as strings, they are either @code{"TRUE"} or @code{"FALSE"},
+again depending upon the truth value of the expression passed in the
+call to @code{bool()}. The value for ``false'' is thus unusual; it is
+zero numerically, but not empty when treated as a string.
+
+The @code{typeof()} function (@pxref{Type Functions}) returns
+@code{"bool"} for these values.
+
+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 any existing code.
@node Array Sorting
@section Controlling Array Traversal and Array Sorting
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 6937cec..ae46956 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -17526,15 +17526,18 @@ two arguments 11 and 10.
@subsection Generating Boolean Values
@cindex boolean function
-This functions is specific to @command{gawk}. It is not
+This function is specific to @command{gawk}. It is not
available in compatibility mode (@pxref{Options}):
@c @asis for docbook
@table @asis
@item @code{bool(@var{expression})}
@cindexgawkfunc{bool}
-
-blah blah
+Return a Boolean-typed value based on the regular Boolean value
+of @var{expression}. Boolean ``true'' values have numeric value one
+and string value @code{"TRUE"}. Boolean ``false'' values have numeric
+zero and string value @code{"FALSE"}. This is discussed in more
+detail in @ref{Boolean Typed Values}.
@end table
@node Numeric Functions
@@ -19824,6 +19827,9 @@ Return one of the following strings, depending upon the
type of @var{x}:
@item "array"
@var{x} is an array.
+@item "bool"
+@var{x} is a Boolean typed value (@pxref{Boolean Typed Values}).
+
@item "regexp"
@var{x} is a strongly typed regexp (@pxref{Strong Regexp Constants}).
@@ -28357,19 +28363,19 @@ This option may disappear in a future version of
@command{gawk}.
@node Boolean Typed Values
@section Boolean Typed Values
-This @value{SECTION} describes an advanced, @command{gawk}-specific extension.
-
Scalar values in @command{awk} are either numbers or strings.
-@command{gawk} also supports values of type @code{regexp} (FIXME pxref).
+@command{gawk} also supports values of type @code{regexp}
+(@pxref{Strong Regexp Constants}).
-As seen in FIXME @@ref@{@} here, 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.
+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. (FIXME: xref to gawkextlib json
-extension)
+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;
@@ -28379,16 +28385,22 @@ To solve this problem, @command{gawk} provides a
function named @code{bool()}.
It takes one argument, which is any @command{awk} expression, and it
returns a value of Boolean type.
-The returned values are different than
-normal @command{awk} values. When treated as numbers, they are either
-one or zero, depending upon the truth value of the expression passed
-in the call. When treated as strings, they are either @code{"TRUE"}
-or @code{"FALSE"}, again depending upon the truth value of the expression
passed
-in the call. The value for ``false'' is thus unusual; it is zero numerically,
-but not empty when treated as a string.
-
-The @code{typeof()} function (FIXME pxref here) returns @code{"bool"}
-for these values.
+The returned values are different than normal @command{awk} values. When
+treated as numbers, they are either one or zero, depending upon the truth
+value of the original expression passed in the call to @code{bool()}. When
+treated as strings, they are either @code{"TRUE"} or @code{"FALSE"},
+again depending upon the truth value of the expression passed in the
+call to @code{bool()}. The value for ``false'' is thus unusual; it is
+zero numerically, but not empty when treated as a string.
+
+The @code{typeof()} function (@pxref{Type Functions}) returns
+@code{"bool"} for these values.
+
+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 any existing code.
@node Array Sorting
@section Controlling Array Traversal and Array Sorting
-----------------------------------------------------------------------
Summary of changes:
doc/ChangeLog | 5 +
doc/gawk.1 | 16 +-
doc/gawk.info | 765 ++++++++++++++++++++++++++++----------------------------
doc/gawk.texi | 54 ++--
doc/gawktexi.in | 54 ++--
5 files changed, 472 insertions(+), 422 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] gawk branch, feature/bool, updated. gawk-4.1.0-4284-g1453c73,
Arnold Robbins <=