diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2021-05-02 08:25:28 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2021-05-02 08:25:28 +0300 |
commit | 6f2c655186b7de2a95cca0403eb899dd2ab27c75 (patch) | |
tree | 5298d116fca50998e8b57bb974fc2f85692c0a9d | |
parent | 200c22e0556cdaf381d758304e69807d1b0ceff7 (diff) | |
download | egawk-6f2c655186b7de2a95cca0403eb899dd2ab27c75.tar.gz egawk-6f2c655186b7de2a95cca0403eb899dd2ab27c75.tar.bz2 egawk-6f2c655186b7de2a95cca0403eb899dd2ab27c75.zip |
Renamed bool() to mkbool().
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | awk.h | 2 | ||||
-rw-r--r-- | awkgram.c | 2 | ||||
-rw-r--r-- | awkgram.y | 2 | ||||
-rw-r--r-- | builtin.c | 4 | ||||
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/awkcard.in | 2 | ||||
-rw-r--r-- | doc/gawk.1 | 4 | ||||
-rw-r--r-- | doc/gawk.info | 726 | ||||
-rw-r--r-- | doc/gawk.texi | 9 | ||||
-rw-r--r-- | doc/gawktexi.in | 9 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/asortbool.awk | 4 | ||||
-rw-r--r-- | test/functab5.ok | 2 | ||||
-rw-r--r-- | test/id.ok | 2 | ||||
-rw-r--r-- | test/rwarray.awk | 2 | ||||
-rw-r--r-- | test/symtab11.ok | 2 |
17 files changed, 400 insertions, 387 deletions
@@ -1,3 +1,9 @@ +2021-05-02 Arnold D. Robbins <arnold@skeeve.com> + + * awk.h (do_bool): Renamed do_mkbool. + * awkgram.y (tokentab): Rename bool to mkbool. + * builtin.c (do_bool): Renamed do_mkbool. + 2021-04-30 Arnold D. Robbins <arnold@skeeve.com> * awk.h (boolval): Remove check for BOOL flag. It was incorrect. @@ -1508,7 +1508,7 @@ extern int strncasecmpmbs(const unsigned char *, const unsigned char *, size_t); extern int sanitize_exit_status(int status); extern void check_symtab_functab(NODE *dest, const char *fname, const char *msg); -extern NODE *do_bool(int nargs); +extern NODE *do_mkbool(int nargs); /* debug.c */ extern void init_debug(void); extern int debug_prog(INSTRUCTION *pc); @@ -4779,7 +4779,6 @@ static const struct token tokentab[] = { {"asorti", Op_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2)|A(3), do_asorti, 0}, {"atan2", Op_builtin, LEX_BUILTIN, NOT_OLD|A(2), do_atan2, MPF(atan2)}, {"bindtextdomain", Op_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2), do_bindtextdomain, 0}, -{"bool", Op_builtin, LEX_BUILTIN, GAWKX|A(1), do_bool, 0}, {"break", Op_K_break, LEX_BREAK, 0, 0, 0}, {"case", Op_K_case, LEX_CASE, GAWKX, 0, 0}, {"close", Op_builtin, LEX_BUILTIN, NOT_OLD|A(1)|A(2), do_close, 0}, @@ -4816,6 +4815,7 @@ static const struct token tokentab[] = { {"log", Op_builtin, LEX_BUILTIN, A(1), do_log, MPF(log)}, {"lshift", Op_builtin, LEX_BUILTIN, GAWKX|A(2), do_lshift, MPF(lshift)}, {"match", Op_builtin, LEX_BUILTIN, NOT_OLD|A(2)|A(3), do_match, 0}, +{"mkbool", Op_builtin, LEX_BUILTIN, GAWKX|A(1), do_mkbool, 0}, {"mktime", Op_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2), do_mktime, 0}, {"namespace", Op_symbol, LEX_NAMESPACE, GAWKX, 0, 0}, {"next", Op_K_next, LEX_NEXT, 0, 0, 0}, @@ -2277,7 +2277,6 @@ static const struct token tokentab[] = { {"asorti", Op_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2)|A(3), do_asorti, 0}, {"atan2", Op_builtin, LEX_BUILTIN, NOT_OLD|A(2), do_atan2, MPF(atan2)}, {"bindtextdomain", Op_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2), do_bindtextdomain, 0}, -{"bool", Op_builtin, LEX_BUILTIN, GAWKX|A(1), do_bool, 0}, {"break", Op_K_break, LEX_BREAK, 0, 0, 0}, {"case", Op_K_case, LEX_CASE, GAWKX, 0, 0}, {"close", Op_builtin, LEX_BUILTIN, NOT_OLD|A(1)|A(2), do_close, 0}, @@ -2314,6 +2313,7 @@ static const struct token tokentab[] = { {"log", Op_builtin, LEX_BUILTIN, A(1), do_log, MPF(log)}, {"lshift", Op_builtin, LEX_BUILTIN, GAWKX|A(2), do_lshift, MPF(lshift)}, {"match", Op_builtin, LEX_BUILTIN, NOT_OLD|A(2)|A(3), do_match, 0}, +{"mkbool", Op_builtin, LEX_BUILTIN, GAWKX|A(1), do_mkbool, 0}, {"mktime", Op_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2), do_mktime, 0}, {"namespace", Op_symbol, LEX_NAMESPACE, GAWKX, 0, 0}, {"next", Op_K_next, LEX_NEXT, 0, 0, 0}, @@ -4329,10 +4329,10 @@ check_symtab_functab(NODE *dest, const char *fname, const char *msg) fatal(msg, fname, "FUNCTAB"); } -/* do_bool --- create boolean values */ +/* do_mkbool --- create boolean values */ NODE * -do_bool(int nargs) +do_mkbool(int nargs) { NODE *tmp; bool result; diff --git a/doc/ChangeLog b/doc/ChangeLog index 011a0bc0..151b03f0 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2021-05-02 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in, gawk.1, awkcard.in: Renamed bool to mkbool. + 2021-04-28 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Revise doc for bools; they're now just numbers diff --git a/doc/awkcard.in b/doc/awkcard.in index 0229e181..659a4a72 100644 --- a/doc/awkcard.in +++ b/doc/awkcard.in @@ -1921,7 +1921,7 @@ See the manual for details.\*(CB .fi .in +.2i .ti -.2i -\*(CD\*(FCbool(\*(FIexpression\*(FC)\*(FR +\*(CD\*(FCmkbool(\*(FIexpression\*(FC)\*(FR .br Return a Boolean-typed value based on the Boolean value of \*(FIexpression\fP. True values have a numeric value of one. @@ -13,7 +13,7 @@ . if \w'\(rq' .ds rq "\(rq . \} .\} -.TH GAWK 1 "Apr 28 2021" "Free Software Foundation" "Utility Commands" +.TH GAWK 1 "May 02 2021" "Free Software Foundation" "Utility Commands" .SH NAME gawk \- pattern scanning and processing language .SH SYNOPSIS @@ -3484,7 +3484,7 @@ if you want to use the current domain. You can create special Boolean-typed values; see the manual for how they work and why they exist. .TP -.BI bool( expression\^ ) +.BI mkbool( expression\^ ) Based on the boolean value of .I expression return either a true value or a false value. diff --git a/doc/gawk.info b/doc/gawk.info index b73b18ec..824d78e7 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -12850,7 +12850,7 @@ File: gawk.info, Node: Boolean Functions, Next: Numeric Functions, Prev: Call This function is specific to 'gawk'. It is not available in compatibility mode (*note Options::): -'bool(EXPRESSION)' +'bmkool(EXPRESSION)' Return a Boolean-typed value based on the regular Boolean value of EXPRESSION. Boolean "true" values have numeric value one. Boolean "false" values have numeric zero. This is discussed in more detail @@ -20970,8 +20970,8 @@ extension provided by the 'gawkextlib' project 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 'bool()'. It -takes one argument, which is any 'awk' expression, and it returns a + 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 @@ -20989,7 +20989,7 @@ desired. 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. +as much existing code. File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Boolean Typed Values, Up: Advanced Features @@ -35384,7 +35384,6 @@ Index * bitwise, XOR: Bitwise Functions. (line 57) * body, in actions: Statements. (line 10) * body, in loops: While Statement. (line 14) -* bool: Boolean Functions. (line 10) * Boolean expressions: Boolean Ops. (line 6) * Boolean expressions, as patterns: Expression Patterns. (line 39) * boolean function: Boolean Functions. (line 6) @@ -36976,6 +36975,7 @@ Index * metacharacters, escape sequences for: Escape Sequences. (line 140) * metacharacters, in regular expressions: Regexp Operators. (line 6) * minimum precision required by MPFR library: Auto-set. (line 279) +* mkbool: Boolean Functions. (line 10) * mktime: Time Functions. (line 25) * modifiers, in format specifiers: Format Modifiers. (line 6) * module, definition of: Global Namespace. (line 18) @@ -38436,364 +38436,364 @@ Node: Functions540711 Node: Built-in541749 Node: Calling Built-in542902 Node: Boolean Functions544898 -Node: Numeric Functions545450 -Ref: Numeric Functions-Footnote-1549477 -Ref: Numeric Functions-Footnote-2550125 -Ref: Numeric Functions-Footnote-3550173 -Node: String Functions550445 -Ref: String Functions-Footnote-1574586 -Ref: String Functions-Footnote-2574714 -Ref: String Functions-Footnote-3574962 -Node: Gory Details575049 -Ref: table-sub-escapes576840 -Ref: table-sub-proposed578359 -Ref: table-posix-sub579722 -Ref: table-gensub-escapes581263 -Ref: Gory Details-Footnote-1582086 -Node: I/O Functions582240 -Ref: table-system-return-values588694 -Ref: I/O Functions-Footnote-1590774 -Ref: I/O Functions-Footnote-2590922 -Node: Time Functions591042 -Ref: Time Functions-Footnote-1601713 -Ref: Time Functions-Footnote-2601781 -Ref: Time Functions-Footnote-3601939 -Ref: Time Functions-Footnote-4602050 -Ref: Time Functions-Footnote-5602162 -Ref: Time Functions-Footnote-6602389 -Node: Bitwise Functions602655 -Ref: table-bitwise-ops603249 -Ref: Bitwise Functions-Footnote-1609312 -Ref: Bitwise Functions-Footnote-2609485 -Node: Type Functions609676 -Node: I18N Functions612630 -Node: User-defined614281 -Node: Definition Syntax615093 -Ref: Definition Syntax-Footnote-1620787 -Node: Function Example620858 -Ref: Function Example-Footnote-1623780 -Node: Function Calling623802 -Node: Calling A Function624390 -Node: Variable Scope625348 -Node: Pass By Value/Reference628342 -Node: Function Caveats630986 -Ref: Function Caveats-Footnote-1633033 -Node: Return Statement633153 -Node: Dynamic Typing636132 -Node: Indirect Calls637062 -Ref: Indirect Calls-Footnote-1647317 -Node: Functions Summary647445 -Node: Library Functions650150 -Ref: Library Functions-Footnote-1653757 -Ref: Library Functions-Footnote-2653900 -Node: Library Names654071 -Ref: Library Names-Footnote-1657738 -Ref: Library Names-Footnote-2657961 -Node: General Functions658047 -Node: Strtonum Function659150 -Node: Assert Function662172 -Node: Round Function665498 -Node: Cliff Random Function667038 -Node: Ordinal Functions668054 -Ref: Ordinal Functions-Footnote-1671117 -Ref: Ordinal Functions-Footnote-2671369 -Node: Join Function671579 -Ref: Join Function-Footnote-1673349 -Node: Getlocaltime Function673549 -Node: Readfile Function677291 -Node: Shell Quoting679268 -Node: Data File Management680669 -Node: Filetrans Function681301 -Node: Rewind Function685397 -Node: File Checking687306 -Ref: File Checking-Footnote-1688640 -Node: Empty Files688841 -Node: Ignoring Assigns690820 -Node: Getopt Function692370 -Ref: Getopt Function-Footnote-1707581 -Node: Passwd Functions707781 -Ref: Passwd Functions-Footnote-1716620 -Node: Group Functions716708 -Ref: Group Functions-Footnote-1724606 -Node: Walking Arrays724813 -Node: Library Functions Summary727821 -Node: Library Exercises729227 -Node: Sample Programs729692 -Node: Running Examples730462 -Node: Clones731190 -Node: Cut Program732414 -Node: Egrep Program742554 -Node: Id Program751555 -Node: Split Program761502 -Ref: Split Program-Footnote-1771392 -Node: Tee Program771565 -Node: Uniq Program774355 -Node: Wc Program781943 -Node: Bytes vs. Characters782330 -Node: Using extensions783878 -Node: wc program784632 -Node: Miscellaneous Programs789497 -Node: Dupword Program790710 -Node: Alarm Program792740 -Node: Translate Program797595 -Ref: Translate Program-Footnote-1802160 -Node: Labels Program802430 -Ref: Labels Program-Footnote-1805781 -Node: Word Sorting805865 -Node: History Sorting809937 -Node: Extract Program812162 -Node: Simple Sed820216 -Node: Igawk Program823290 -Ref: Igawk Program-Footnote-1837621 -Ref: Igawk Program-Footnote-2837823 -Ref: Igawk Program-Footnote-3837945 -Node: Anagram Program838060 -Node: Signature Program841122 -Node: Programs Summary842369 -Node: Programs Exercises843583 -Ref: Programs Exercises-Footnote-1847713 -Node: Advanced Features847799 -Node: Nondecimal Data849930 -Node: Boolean Typed Values851528 -Node: Array Sorting853402 -Node: Controlling Array Traversal854107 -Ref: Controlling Array Traversal-Footnote-1862475 -Node: Array Sorting Functions862593 -Ref: Array Sorting Functions-Footnote-1867684 -Node: Two-way I/O867880 -Ref: Two-way I/O-Footnote-1875601 -Ref: Two-way I/O-Footnote-2875788 -Node: TCP/IP Networking875870 -Node: Profiling878988 -Node: Extension Philosophy888297 -Node: Advanced Features Summary889776 -Node: Internationalization891791 -Node: I18N and L10N893271 -Node: Explaining gettext893958 -Ref: Explaining gettext-Footnote-1899850 -Ref: Explaining gettext-Footnote-2900035 -Node: Programmer i18n900200 -Ref: Programmer i18n-Footnote-1905149 -Node: Translator i18n905198 -Node: String Extraction905992 -Ref: String Extraction-Footnote-1907124 -Node: Printf Ordering907210 -Ref: Printf Ordering-Footnote-1909996 -Node: I18N Portability910060 -Ref: I18N Portability-Footnote-1912516 -Node: I18N Example912579 -Ref: I18N Example-Footnote-1915854 -Ref: I18N Example-Footnote-2915927 -Node: Gawk I18N916036 -Node: I18N Summary916685 -Node: Debugger918026 -Node: Debugging919026 -Node: Debugging Concepts919467 -Node: Debugging Terms921276 -Node: Awk Debugging923851 -Ref: Awk Debugging-Footnote-1924796 -Node: Sample Debugging Session924928 -Node: Debugger Invocation925462 -Node: Finding The Bug926848 -Node: List of Debugger Commands933322 -Node: Breakpoint Control934655 -Node: Debugger Execution Control938349 -Node: Viewing And Changing Data941711 -Node: Execution Stack945252 -Node: Debugger Info946889 -Node: Miscellaneous Debugger Commands950960 -Node: Readline Support956022 -Node: Limitations956918 -Node: Debugging Summary959472 -Node: Namespaces960751 -Node: Global Namespace961862 -Node: Qualified Names963260 -Node: Default Namespace964259 -Node: Changing The Namespace965000 -Node: Naming Rules966614 -Node: Internal Name Management968462 -Node: Namespace Example969504 -Node: Namespace And Features972066 -Node: Namespace Summary973501 -Node: Arbitrary Precision Arithmetic974978 -Node: Computer Arithmetic976465 -Ref: table-numeric-ranges980231 -Ref: table-floating-point-ranges980724 -Ref: Computer Arithmetic-Footnote-1981382 -Node: Math Definitions981439 -Ref: table-ieee-formats984415 -Node: MPFR features984982 -Node: FP Math Caution986700 -Ref: FP Math Caution-Footnote-1987772 -Node: Inexactness of computations988141 -Node: Inexact representation989172 -Node: Comparing FP Values990532 -Node: Errors accumulate991773 -Node: Strange values993229 -Ref: Strange values-Footnote-1995817 -Node: Getting Accuracy995922 -Node: Try To Round998632 -Node: Setting precision999531 -Ref: table-predefined-precision-strings1000228 -Node: Setting the rounding mode1002058 -Ref: table-gawk-rounding-modes1002432 -Ref: Setting the rounding mode-Footnote-11006363 -Node: Arbitrary Precision Integers1006542 -Ref: Arbitrary Precision Integers-Footnote-11009717 -Node: Checking for MPFR1009866 -Node: POSIX Floating Point Problems1011340 -Ref: POSIX Floating Point Problems-Footnote-11015625 -Node: Floating point summary1015663 -Node: Dynamic Extensions1017853 -Node: Extension Intro1019406 -Node: Plugin License1020672 -Node: Extension Mechanism Outline1021469 -Ref: figure-load-extension1021908 -Ref: figure-register-new-function1023473 -Ref: figure-call-new-function1024565 -Node: Extension API Description1026627 -Node: Extension API Functions Introduction1028340 -Ref: table-api-std-headers1030176 -Node: General Data Types1034425 -Ref: General Data Types-Footnote-11043131 -Node: Memory Allocation Functions1043430 -Ref: Memory Allocation Functions-Footnote-11047931 -Node: Constructor Functions1048030 -Node: API Ownership of MPFR and GMP Values1051683 -Node: Registration Functions1052996 -Node: Extension Functions1053696 -Node: Exit Callback Functions1059018 -Node: Extension Version String1060268 -Node: Input Parsers1060931 -Node: Output Wrappers1073652 -Node: Two-way processors1078164 -Node: Printing Messages1080429 -Ref: Printing Messages-Footnote-11081600 -Node: Updating ERRNO1081753 -Node: Requesting Values1082492 -Ref: table-value-types-returned1083229 -Node: Accessing Parameters1084337 -Node: Symbol Table Access1085574 -Node: Symbol table by name1086086 -Ref: Symbol table by name-Footnote-11089110 -Node: Symbol table by cookie1089238 -Ref: Symbol table by cookie-Footnote-11093423 -Node: Cached values1093487 -Ref: Cached values-Footnote-11097023 -Node: Array Manipulation1097176 -Ref: Array Manipulation-Footnote-11098267 -Node: Array Data Types1098304 -Ref: Array Data Types-Footnote-11100962 -Node: Array Functions1101054 -Node: Flattening Arrays1105552 -Node: Creating Arrays1112528 -Node: Redirection API1117295 -Node: Extension API Variables1120128 -Node: Extension Versioning1120839 -Ref: gawk-api-version1121268 -Node: Extension GMP/MPFR Versioning1122999 -Node: Extension API Informational Variables1124627 -Node: Extension API Boilerplate1125700 -Node: Changes from API V11129674 -Node: Finding Extensions1131246 -Node: Extension Example1131805 -Node: Internal File Description1132603 -Node: Internal File Ops1136683 -Ref: Internal File Ops-Footnote-11148033 -Node: Using Internal File Ops1148173 -Ref: Using Internal File Ops-Footnote-11150556 -Node: Extension Samples1150830 -Node: Extension Sample File Functions1152359 -Node: Extension Sample Fnmatch1160008 -Node: Extension Sample Fork1161495 -Node: Extension Sample Inplace1162713 -Node: Extension Sample Ord1166339 -Node: Extension Sample Readdir1167175 -Ref: table-readdir-file-types1168064 -Node: Extension Sample Revout1169131 -Node: Extension Sample Rev2way1169720 -Node: Extension Sample Read write array1170460 -Node: Extension Sample Readfile1172402 -Node: Extension Sample Time1173497 -Node: Extension Sample API Tests1175249 -Node: gawkextlib1175741 -Node: Extension summary1178659 -Node: Extension Exercises1182361 -Node: Language History1183603 -Node: V7/SVR3.11185259 -Node: SVR41187411 -Node: POSIX1188845 -Node: BTL1190226 -Node: POSIX/GNU1190955 -Node: Feature History1196733 -Node: Common Extensions1213052 -Node: Ranges and Locales1214335 -Ref: Ranges and Locales-Footnote-11218951 -Ref: Ranges and Locales-Footnote-21218978 -Ref: Ranges and Locales-Footnote-31219213 -Node: Contributors1219436 -Node: History summary1225433 -Node: Installation1226813 -Node: Gawk Distribution1227757 -Node: Getting1228241 -Node: Extracting1229204 -Node: Distribution contents1230842 -Node: Unix Installation1237322 -Node: Quick Installation1238004 -Node: Shell Startup Files1240418 -Node: Additional Configuration Options1241507 -Node: Configuration Philosophy1243822 -Node: Non-Unix Installation1246191 -Node: PC Installation1246651 -Node: PC Binary Installation1247489 -Node: PC Compiling1247924 -Node: PC Using1249041 -Node: Cygwin1252594 -Node: MSYS1253818 -Node: VMS Installation1254420 -Node: VMS Compilation1255211 -Ref: VMS Compilation-Footnote-11256440 -Node: VMS Dynamic Extensions1256498 -Node: VMS Installation Details1258183 -Node: VMS Running1260436 -Node: VMS GNV1264715 -Node: VMS Old Gawk1265450 -Node: Bugs1265921 -Node: Bug address1266584 -Node: Usenet1269566 -Node: Maintainers1270570 -Node: Other Versions1271755 -Node: Installation summary1279620 -Node: Notes1280829 -Node: Compatibility Mode1281623 -Node: Additions1282405 -Node: Accessing The Source1283330 -Node: Adding Code1284767 -Node: New Ports1290986 -Node: Derived Files1295361 -Ref: Derived Files-Footnote-11301021 -Ref: Derived Files-Footnote-21301056 -Ref: Derived Files-Footnote-31301654 -Node: Future Extensions1301768 -Node: Implementation Limitations1302426 -Node: Extension Design1303636 -Node: Old Extension Problems1304780 -Ref: Old Extension Problems-Footnote-11306298 -Node: Extension New Mechanism Goals1306355 -Ref: Extension New Mechanism Goals-Footnote-11309719 -Node: Extension Other Design Decisions1309908 -Node: Extension Future Growth1312021 -Node: Notes summary1312627 -Node: Basic Concepts1313785 -Node: Basic High Level1314466 -Ref: figure-general-flow1314748 -Ref: figure-process-flow1315433 -Ref: Basic High Level-Footnote-11318734 -Node: Basic Data Typing1318919 -Node: Glossary1322247 -Node: Copying1354134 -Node: GNU Free Documentation License1391677 -Node: Index1416797 +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 Extensions1213059 +Node: Ranges and Locales1214342 +Ref: Ranges and Locales-Footnote-11218958 +Ref: Ranges and Locales-Footnote-21218985 +Ref: Ranges and Locales-Footnote-31219220 +Node: Contributors1219443 +Node: History summary1225440 +Node: Installation1226820 +Node: Gawk Distribution1227764 +Node: Getting1228248 +Node: Extracting1229211 +Node: Distribution contents1230849 +Node: Unix Installation1237329 +Node: Quick Installation1238011 +Node: Shell Startup Files1240425 +Node: Additional Configuration Options1241514 +Node: Configuration Philosophy1243829 +Node: Non-Unix Installation1246198 +Node: PC Installation1246658 +Node: PC Binary Installation1247496 +Node: PC Compiling1247931 +Node: PC Using1249048 +Node: Cygwin1252601 +Node: MSYS1253825 +Node: VMS Installation1254427 +Node: VMS Compilation1255218 +Ref: VMS Compilation-Footnote-11256447 +Node: VMS Dynamic Extensions1256505 +Node: VMS Installation Details1258190 +Node: VMS Running1260443 +Node: VMS GNV1264722 +Node: VMS Old Gawk1265457 +Node: Bugs1265928 +Node: Bug address1266591 +Node: Usenet1269573 +Node: Maintainers1270577 +Node: Other Versions1271762 +Node: Installation summary1279627 +Node: Notes1280836 +Node: Compatibility Mode1281630 +Node: Additions1282412 +Node: Accessing The Source1283337 +Node: Adding Code1284774 +Node: New Ports1290993 +Node: Derived Files1295368 +Ref: Derived Files-Footnote-11301028 +Ref: Derived Files-Footnote-21301063 +Ref: Derived Files-Footnote-31301661 +Node: Future Extensions1301775 +Node: Implementation Limitations1302433 +Node: Extension Design1303643 +Node: Old Extension Problems1304787 +Ref: Old Extension Problems-Footnote-11306305 +Node: Extension New Mechanism Goals1306362 +Ref: Extension New Mechanism Goals-Footnote-11309726 +Node: Extension Other Design Decisions1309915 +Node: Extension Future Growth1312028 +Node: Notes summary1312634 +Node: Basic Concepts1313792 +Node: Basic High Level1314473 +Ref: figure-general-flow1314755 +Ref: figure-process-flow1315440 +Ref: Basic High Level-Footnote-11318741 +Node: Basic Data Typing1318926 +Node: Glossary1322254 +Node: Copying1354141 +Node: GNU Free Documentation License1391684 +Node: Index1416804 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 06c3d908..89921663 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -18390,8 +18390,8 @@ available in compatibility mode (@pxref{Options}): @c @asis for docbook @table @asis -@item @code{bool(@var{expression})} -@cindexgawkfunc{bool} +@item @code{bmkool(@var{expression})} +@cindexgawkfunc{mkbool} Return a Boolean-typed value based on the regular Boolean value of @var{expression}. Boolean ``true'' values have numeric value one. Boolean ``false'' values have numeric @@ -29499,11 +29499,10 @@ 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{bool()}. +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. -@c HERE The returned values are normal @command{awk} numeric values, with values of either one or zero, depending upon the truth @@ -29520,7 +29519,7 @@ 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. +flexibility, without breaking as much existing code. @node Array Sorting @section Controlling Array Traversal and Array Sorting diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 57a87eba..75607b2b 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -17531,8 +17531,8 @@ available in compatibility mode (@pxref{Options}): @c @asis for docbook @table @asis -@item @code{bool(@var{expression})} -@cindexgawkfunc{bool} +@item @code{bmkool(@var{expression})} +@cindexgawkfunc{mkbool} Return a Boolean-typed value based on the regular Boolean value of @var{expression}. Boolean ``true'' values have numeric value one. Boolean ``false'' values have numeric @@ -28381,11 +28381,10 @@ 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{bool()}. +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. -@c HERE The returned values are normal @command{awk} numeric values, with values of either one or zero, depending upon the truth @@ -28402,7 +28401,7 @@ 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. +flexibility, without breaking as much existing code. @node Array Sorting @section Controlling Array Traversal and Array Sorting diff --git a/test/ChangeLog b/test/ChangeLog index 6ae679e5..7198c0fe 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2021-05-02 Arnold D. Robbins <arnold@skeeve.com> + + * asortbool.awk, functab5.ok, id.ok, rwarrray.awk, + symtab11.ok: Revise after code changes. + 2021-04-28 Arnold D. Robbins <arnold@skeeve.com> * asortbool.ok: Revise after code changes. diff --git a/test/asortbool.awk b/test/asortbool.awk index 7f5a94fb..3ee02cb2 100644 --- a/test/asortbool.awk +++ b/test/asortbool.awk @@ -3,8 +3,8 @@ BEGIN { a[2] = -45 a[3] = 45 a[4][1] = 47 - a[5] = bool(1) - a[6] = bool(0) + a[5] = mkbool(1) + a[6] = mkbool(0) asort(a, b, "@val_type_asc") diff --git a/test/functab5.ok b/test/functab5.ok index ef110989..d27f1393 100644 --- a/test/functab5.ok +++ b/test/functab5.ok @@ -3,7 +3,6 @@ asort' asorti' atan2' bindtextdomain' -bool' chdir' close' compl' @@ -22,6 +21,7 @@ length' log' lshift' match' +mkbool' mktime' or' patsplit' @@ -34,7 +34,6 @@ asort -> builtin asorti -> builtin atan2 -> builtin bindtextdomain -> builtin -bool -> builtin close -> builtin compl -> builtin cos -> builtin @@ -53,6 +52,7 @@ length -> builtin log -> builtin lshift -> builtin match -> builtin +mkbool -> builtin mktime -> builtin or -> builtin patsplit -> builtin diff --git a/test/rwarray.awk b/test/rwarray.awk index b868fa45..eae22304 100644 --- a/test/rwarray.awk +++ b/test/rwarray.awk @@ -12,7 +12,7 @@ BEGIN { dict[strnum_sub] = f[1] bool_sub = "bool-sub" - dict[bool_sub] = bool(1) + dict[bool_sub] = mkbool(1) n = asorti(dict, dictindices) for (i = 1; i <= n; i++) diff --git a/test/symtab11.ok b/test/symtab11.ok index da2cfcba..c46d3aed 100644 --- a/test/symtab11.ok +++ b/test/symtab11.ok @@ -37,7 +37,6 @@ BEGIN -- Functab is next [asorti] = asorti [atan2] = atan2 [bindtextdomain] = bindtextdomain -[bool] = bool [close] = close [compl] = compl [cos] = cos @@ -54,6 +53,7 @@ BEGIN -- Functab is next [log] = log [lshift] = lshift [match] = match +[mkbool] = mkbool [mktime] = mktime [or] = or [patsplit] = patsplit |