diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2019-06-05 21:40:51 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2019-06-05 21:40:51 +0300 |
commit | 18e5593d01c9a69f48d9fc78424c025f81cbe6a8 (patch) | |
tree | 07ef8b2ca75c289b068e319ced709934217db6cd /doc | |
parent | 4b31ecec7846e64148ce5868152232d5ba59aa25 (diff) | |
parent | c138c86811fd6dfa96e49cfca4f619294ae57f9c (diff) | |
download | egawk-18e5593d01c9a69f48d9fc78424c025f81cbe6a8.tar.gz egawk-18e5593d01c9a69f48d9fc78424c025f81cbe6a8.tar.bz2 egawk-18e5593d01c9a69f48d9fc78424c025f81cbe6a8.zip |
Merge branch 'gawk-5.0-stable'
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ChangeLog | 8 | ||||
-rw-r--r-- | doc/gawk.info | 665 | ||||
-rw-r--r-- | doc/gawk.texi | 19 | ||||
-rw-r--r-- | doc/gawktexi.in | 19 |
4 files changed, 363 insertions, 348 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 42c44fe3..57765d55 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,6 +1,12 @@ +2019-06-05 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in (Type Functions): Clarify isarray() and + typeof() behavior. Thanks to Mark Krauze <daburashka@ya.ru>, + for pointing out the issues. + 2019-05-22 Arnold D. Robbins <arnold@skeeve.com> - * gawk1, gawktexi.in: Document --lint=no-ext. + * gawk.1, gawktexi.in: Document --lint=no-ext. 2019-05-06 Arnold D. Robbins <arnold@skeeve.com> diff --git a/doc/gawk.info b/doc/gawk.info index cffc93db..1bbd3292 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -14211,16 +14211,19 @@ itself an array or not. The second is inside the body of a user-defined function (not discussed yet; *note User-defined::), to test if a parameter is an array or not. - NOTE: Using 'isarray()' at the global level to test variables makes - no sense. Because you are the one writing the program, you are - supposed to know if your variables are arrays or not. And in fact, - due to the way 'gawk' works, if you pass the name of a variable - that has not been previously used to 'isarray()', 'gawk' ends up - turning it into a scalar. + NOTE: While you can use 'isarray()' at the global level to test + variables, doing so makes no sense. Because _you_ are the one + writing the program, _you_ are supposed to know if your variables + are arrays or not. The 'typeof()' function is general; it allows you to determine if a -variable or function parameter is a scalar, an array, or a strongly -typed regexp. +variable or function parameter is a scalar (number, string, or strongly +typed regexp) or an array. + + Normally, passing a variable that has never been used to a built-in +function causes it to become a scalar variable (unassigned). However, +'isarray()' and 'typeof()' are different; they do not change their +arguments from untyped to unassigned. File: gawk.info, Node: I18N Functions, Prev: Type Functions, Up: Built-in @@ -37168,328 +37171,328 @@ Ref: table-bitwise-ops592996 Ref: Bitwise Functions-Footnote-1599059 Ref: Bitwise Functions-Footnote-2599232 Node: Type Functions599423 -Node: I18N Functions602174 -Node: User-defined603825 -Node: Definition Syntax604637 -Ref: Definition Syntax-Footnote-1610324 -Node: Function Example610395 -Ref: Function Example-Footnote-1613317 -Node: Function Calling613339 -Node: Calling A Function613927 -Node: Variable Scope614885 -Node: Pass By Value/Reference617879 -Node: Function Caveats620523 -Ref: Function Caveats-Footnote-1622570 -Node: Return Statement622690 -Node: Dynamic Typing625669 -Node: Indirect Calls626599 -Ref: Indirect Calls-Footnote-1636851 -Node: Functions Summary636979 -Node: Library Functions639684 -Ref: Library Functions-Footnote-1643291 -Ref: Library Functions-Footnote-2643434 -Node: Library Names643605 -Ref: Library Names-Footnote-1647272 -Ref: Library Names-Footnote-2647495 -Node: General Functions647581 -Node: Strtonum Function648684 -Node: Assert Function651706 -Node: Round Function655032 -Node: Cliff Random Function656572 -Node: Ordinal Functions657588 -Ref: Ordinal Functions-Footnote-1660651 -Ref: Ordinal Functions-Footnote-2660903 -Node: Join Function661113 -Ref: Join Function-Footnote-1662883 -Node: Getlocaltime Function663083 -Node: Readfile Function666825 -Node: Shell Quoting668802 -Node: Data File Management670203 -Node: Filetrans Function670835 -Node: Rewind Function674931 -Node: File Checking676840 -Ref: File Checking-Footnote-1678174 -Node: Empty Files678375 -Node: Ignoring Assigns680354 -Node: Getopt Function681904 -Ref: Getopt Function-Footnote-1693373 -Node: Passwd Functions693573 -Ref: Passwd Functions-Footnote-1702412 -Node: Group Functions702500 -Ref: Group Functions-Footnote-1710398 -Node: Walking Arrays710605 -Node: Library Functions Summary713613 -Node: Library Exercises715019 -Node: Sample Programs715484 -Node: Running Examples716254 -Node: Clones716982 -Node: Cut Program718206 -Node: Egrep Program728135 -Ref: Egrep Program-Footnote-1735647 -Node: Id Program735757 -Node: Split Program739437 -Ref: Split Program-Footnote-1742895 -Node: Tee Program743024 -Node: Uniq Program745814 -Node: Wc Program753435 -Ref: Wc Program-Footnote-1757690 -Node: Miscellaneous Programs757784 -Node: Dupword Program758997 -Node: Alarm Program761027 -Node: Translate Program765882 -Ref: Translate Program-Footnote-1770447 -Node: Labels Program770717 -Ref: Labels Program-Footnote-1774068 -Node: Word Sorting774152 -Node: History Sorting778224 -Node: Extract Program780059 -Node: Simple Sed788113 -Node: Igawk Program791187 -Ref: Igawk Program-Footnote-1805518 -Ref: Igawk Program-Footnote-2805720 -Ref: Igawk Program-Footnote-3805842 -Node: Anagram Program805957 -Node: Signature Program809019 -Node: Programs Summary810266 -Node: Programs Exercises811480 -Ref: Programs Exercises-Footnote-1815609 -Node: Advanced Features815700 -Node: Nondecimal Data817690 -Node: Array Sorting819281 -Node: Controlling Array Traversal819981 -Ref: Controlling Array Traversal-Footnote-1828349 -Node: Array Sorting Functions828467 -Ref: Array Sorting Functions-Footnote-1833558 -Node: Two-way I/O833754 -Ref: Two-way I/O-Footnote-1841475 -Ref: Two-way I/O-Footnote-2841662 -Node: TCP/IP Networking841744 -Node: Profiling844862 -Node: Advanced Features Summary853877 -Node: Internationalization855721 -Node: I18N and L10N857201 -Node: Explaining gettext857888 -Ref: Explaining gettext-Footnote-1863780 -Ref: Explaining gettext-Footnote-2863965 -Node: Programmer i18n864130 -Ref: Programmer i18n-Footnote-1869079 -Node: Translator i18n869128 -Node: String Extraction869922 -Ref: String Extraction-Footnote-1871054 -Node: Printf Ordering871140 -Ref: Printf Ordering-Footnote-1873926 -Node: I18N Portability873990 -Ref: I18N Portability-Footnote-1876446 -Node: I18N Example876509 -Ref: I18N Example-Footnote-1879784 -Ref: I18N Example-Footnote-2879857 -Node: Gawk I18N879966 -Node: I18N Summary880615 -Node: Debugger881956 -Node: Debugging882956 -Node: Debugging Concepts883397 -Node: Debugging Terms885206 -Node: Awk Debugging887781 -Ref: Awk Debugging-Footnote-1888726 -Node: Sample Debugging Session888858 -Node: Debugger Invocation889392 -Node: Finding The Bug890778 -Node: List of Debugger Commands897252 -Node: Breakpoint Control898585 -Node: Debugger Execution Control902279 -Node: Viewing And Changing Data905641 -Node: Execution Stack909182 -Node: Debugger Info910819 -Node: Miscellaneous Debugger Commands914890 -Node: Readline Support919952 -Node: Limitations920848 -Node: Debugging Summary923402 -Node: Namespaces924681 -Node: Global Namespace925760 -Node: Qualified Names927158 -Node: Default Namespace928157 -Node: Changing The Namespace928898 -Node: Naming Rules930512 -Node: Internal Name Management932360 -Node: Namespace Example933402 -Node: Namespace And Features935964 -Node: Namespace Summary937399 -Node: Arbitrary Precision Arithmetic938876 -Node: Computer Arithmetic940363 -Ref: table-numeric-ranges944129 -Ref: table-floating-point-ranges944622 -Ref: Computer Arithmetic-Footnote-1945280 -Node: Math Definitions945337 -Ref: table-ieee-formats948653 -Ref: Math Definitions-Footnote-1949256 -Node: MPFR features949361 -Node: FP Math Caution951079 -Ref: FP Math Caution-Footnote-1952151 -Node: Inexactness of computations952520 -Node: Inexact representation953480 -Node: Comparing FP Values954840 -Node: Errors accumulate956081 -Node: Getting Accuracy957514 -Node: Try To Round960224 -Node: Setting precision961123 -Ref: table-predefined-precision-strings961820 -Node: Setting the rounding mode963650 -Ref: table-gawk-rounding-modes964024 -Ref: Setting the rounding mode-Footnote-1967955 -Node: Arbitrary Precision Integers968134 -Ref: Arbitrary Precision Integers-Footnote-1971309 -Node: Checking for MPFR971458 -Node: POSIX Floating Point Problems972932 -Ref: POSIX Floating Point Problems-Footnote-1977217 -Node: Floating point summary977255 -Node: Dynamic Extensions979445 -Node: Extension Intro980998 -Node: Plugin License982264 -Node: Extension Mechanism Outline983061 -Ref: figure-load-extension983500 -Ref: figure-register-new-function985065 -Ref: figure-call-new-function986157 -Node: Extension API Description988219 -Node: Extension API Functions Introduction989861 -Ref: table-api-std-headers991697 -Node: General Data Types995562 -Ref: General Data Types-Footnote-11003923 -Node: Memory Allocation Functions1004222 -Ref: Memory Allocation Functions-Footnote-11008432 -Node: Constructor Functions1008531 -Node: Registration Functions1012117 -Node: Extension Functions1012802 -Node: Exit Callback Functions1018124 -Node: Extension Version String1019374 -Node: Input Parsers1020037 -Node: Output Wrappers1032758 -Node: Two-way processors1037270 -Node: Printing Messages1039535 -Ref: Printing Messages-Footnote-11040706 -Node: Updating ERRNO1040859 -Node: Requesting Values1041598 -Ref: table-value-types-returned1042335 -Node: Accessing Parameters1043271 -Node: Symbol Table Access1044506 -Node: Symbol table by name1045018 -Ref: Symbol table by name-Footnote-11048042 -Node: Symbol table by cookie1048170 -Ref: Symbol table by cookie-Footnote-11052355 -Node: Cached values1052419 -Ref: Cached values-Footnote-11055955 -Node: Array Manipulation1056108 -Ref: Array Manipulation-Footnote-11057199 -Node: Array Data Types1057236 -Ref: Array Data Types-Footnote-11059894 -Node: Array Functions1059986 -Node: Flattening Arrays1064484 -Node: Creating Arrays1071460 -Node: Redirection API1076227 -Node: Extension API Variables1079060 -Node: Extension Versioning1079771 -Ref: gawk-api-version1080200 -Node: Extension GMP/MPFR Versioning1081931 -Node: Extension API Informational Variables1083559 -Node: Extension API Boilerplate1084632 -Node: Changes from API V11088606 -Node: Finding Extensions1090178 -Node: Extension Example1090737 -Node: Internal File Description1091535 -Node: Internal File Ops1095615 -Ref: Internal File Ops-Footnote-11106965 -Node: Using Internal File Ops1107105 -Ref: Using Internal File Ops-Footnote-11109488 -Node: Extension Samples1109762 -Node: Extension Sample File Functions1111291 -Node: Extension Sample Fnmatch1118940 -Node: Extension Sample Fork1120427 -Node: Extension Sample Inplace1121645 -Node: Extension Sample Ord1124949 -Node: Extension Sample Readdir1125785 -Ref: table-readdir-file-types1126674 -Node: Extension Sample Revout1127479 -Node: Extension Sample Rev2way1128068 -Node: Extension Sample Read write array1128808 -Node: Extension Sample Readfile1130750 -Node: Extension Sample Time1131845 -Node: Extension Sample API Tests1133193 -Node: gawkextlib1133685 -Node: Extension summary1136603 -Node: Extension Exercises1140305 -Node: Language History1141547 -Node: V7/SVR3.11143203 -Node: SVR41145355 -Node: POSIX1146789 -Node: BTL1148169 -Node: POSIX/GNU1148898 -Node: Feature History1154676 -Node: Common Extensions1170722 -Node: Ranges and Locales1172005 -Ref: Ranges and Locales-Footnote-11176621 -Ref: Ranges and Locales-Footnote-21176648 -Ref: Ranges and Locales-Footnote-31176883 -Node: Contributors1177104 -Node: History summary1183057 -Node: Installation1184437 -Node: Gawk Distribution1185381 -Node: Getting1185865 -Node: Extracting1186828 -Node: Distribution contents1188466 -Node: Unix Installation1194946 -Node: Quick Installation1195628 -Node: Shell Startup Files1198042 -Node: Additional Configuration Options1199131 -Node: Configuration Philosophy1201446 -Node: Non-Unix Installation1203815 -Node: PC Installation1204275 -Node: PC Binary Installation1205113 -Node: PC Compiling1205548 -Node: PC Using1206665 -Node: Cygwin1210218 -Node: MSYS1211317 -Node: VMS Installation1211818 -Node: VMS Compilation1212609 -Ref: VMS Compilation-Footnote-11213838 -Node: VMS Dynamic Extensions1213896 -Node: VMS Installation Details1215581 -Node: VMS Running1217834 -Node: VMS GNV1222113 -Node: VMS Old Gawk1222848 -Node: Bugs1223319 -Node: Bug address1223982 -Node: Usenet1226964 -Node: Maintainers1227968 -Node: Other Versions1229229 -Node: Installation summary1236317 -Node: Notes1237519 -Node: Compatibility Mode1238313 -Node: Additions1239095 -Node: Accessing The Source1240020 -Node: Adding Code1241457 -Node: New Ports1247676 -Node: Derived Files1252051 -Ref: Derived Files-Footnote-11257711 -Ref: Derived Files-Footnote-21257746 -Ref: Derived Files-Footnote-31258344 -Node: Future Extensions1258458 -Node: Implementation Limitations1259116 -Node: Extension Design1260299 -Node: Old Extension Problems1261443 -Ref: Old Extension Problems-Footnote-11262961 -Node: Extension New Mechanism Goals1263018 -Ref: Extension New Mechanism Goals-Footnote-11266382 -Node: Extension Other Design Decisions1266571 -Node: Extension Future Growth1268684 -Node: Notes summary1269520 -Node: Basic Concepts1270678 -Node: Basic High Level1271359 -Ref: figure-general-flow1271641 -Ref: figure-process-flow1272326 -Ref: Basic High Level-Footnote-11275627 -Node: Basic Data Typing1275812 -Node: Glossary1279140 -Node: Copying1310978 -Node: GNU Free Documentation License1348521 -Node: Index1373641 +Node: I18N Functions602286 +Node: User-defined603937 +Node: Definition Syntax604749 +Ref: Definition Syntax-Footnote-1610436 +Node: Function Example610507 +Ref: Function Example-Footnote-1613429 +Node: Function Calling613451 +Node: Calling A Function614039 +Node: Variable Scope614997 +Node: Pass By Value/Reference617991 +Node: Function Caveats620635 +Ref: Function Caveats-Footnote-1622682 +Node: Return Statement622802 +Node: Dynamic Typing625781 +Node: Indirect Calls626711 +Ref: Indirect Calls-Footnote-1636963 +Node: Functions Summary637091 +Node: Library Functions639796 +Ref: Library Functions-Footnote-1643403 +Ref: Library Functions-Footnote-2643546 +Node: Library Names643717 +Ref: Library Names-Footnote-1647384 +Ref: Library Names-Footnote-2647607 +Node: General Functions647693 +Node: Strtonum Function648796 +Node: Assert Function651818 +Node: Round Function655144 +Node: Cliff Random Function656684 +Node: Ordinal Functions657700 +Ref: Ordinal Functions-Footnote-1660763 +Ref: Ordinal Functions-Footnote-2661015 +Node: Join Function661225 +Ref: Join Function-Footnote-1662995 +Node: Getlocaltime Function663195 +Node: Readfile Function666937 +Node: Shell Quoting668914 +Node: Data File Management670315 +Node: Filetrans Function670947 +Node: Rewind Function675043 +Node: File Checking676952 +Ref: File Checking-Footnote-1678286 +Node: Empty Files678487 +Node: Ignoring Assigns680466 +Node: Getopt Function682016 +Ref: Getopt Function-Footnote-1693485 +Node: Passwd Functions693685 +Ref: Passwd Functions-Footnote-1702524 +Node: Group Functions702612 +Ref: Group Functions-Footnote-1710510 +Node: Walking Arrays710717 +Node: Library Functions Summary713725 +Node: Library Exercises715131 +Node: Sample Programs715596 +Node: Running Examples716366 +Node: Clones717094 +Node: Cut Program718318 +Node: Egrep Program728247 +Ref: Egrep Program-Footnote-1735759 +Node: Id Program735869 +Node: Split Program739549 +Ref: Split Program-Footnote-1743007 +Node: Tee Program743136 +Node: Uniq Program745926 +Node: Wc Program753547 +Ref: Wc Program-Footnote-1757802 +Node: Miscellaneous Programs757896 +Node: Dupword Program759109 +Node: Alarm Program761139 +Node: Translate Program765994 +Ref: Translate Program-Footnote-1770559 +Node: Labels Program770829 +Ref: Labels Program-Footnote-1774180 +Node: Word Sorting774264 +Node: History Sorting778336 +Node: Extract Program780171 +Node: Simple Sed788225 +Node: Igawk Program791299 +Ref: Igawk Program-Footnote-1805630 +Ref: Igawk Program-Footnote-2805832 +Ref: Igawk Program-Footnote-3805954 +Node: Anagram Program806069 +Node: Signature Program809131 +Node: Programs Summary810378 +Node: Programs Exercises811592 +Ref: Programs Exercises-Footnote-1815721 +Node: Advanced Features815812 +Node: Nondecimal Data817802 +Node: Array Sorting819393 +Node: Controlling Array Traversal820093 +Ref: Controlling Array Traversal-Footnote-1828461 +Node: Array Sorting Functions828579 +Ref: Array Sorting Functions-Footnote-1833670 +Node: Two-way I/O833866 +Ref: Two-way I/O-Footnote-1841587 +Ref: Two-way I/O-Footnote-2841774 +Node: TCP/IP Networking841856 +Node: Profiling844974 +Node: Advanced Features Summary853989 +Node: Internationalization855833 +Node: I18N and L10N857313 +Node: Explaining gettext858000 +Ref: Explaining gettext-Footnote-1863892 +Ref: Explaining gettext-Footnote-2864077 +Node: Programmer i18n864242 +Ref: Programmer i18n-Footnote-1869191 +Node: Translator i18n869240 +Node: String Extraction870034 +Ref: String Extraction-Footnote-1871166 +Node: Printf Ordering871252 +Ref: Printf Ordering-Footnote-1874038 +Node: I18N Portability874102 +Ref: I18N Portability-Footnote-1876558 +Node: I18N Example876621 +Ref: I18N Example-Footnote-1879896 +Ref: I18N Example-Footnote-2879969 +Node: Gawk I18N880078 +Node: I18N Summary880727 +Node: Debugger882068 +Node: Debugging883068 +Node: Debugging Concepts883509 +Node: Debugging Terms885318 +Node: Awk Debugging887893 +Ref: Awk Debugging-Footnote-1888838 +Node: Sample Debugging Session888970 +Node: Debugger Invocation889504 +Node: Finding The Bug890890 +Node: List of Debugger Commands897364 +Node: Breakpoint Control898697 +Node: Debugger Execution Control902391 +Node: Viewing And Changing Data905753 +Node: Execution Stack909294 +Node: Debugger Info910931 +Node: Miscellaneous Debugger Commands915002 +Node: Readline Support920064 +Node: Limitations920960 +Node: Debugging Summary923514 +Node: Namespaces924793 +Node: Global Namespace925872 +Node: Qualified Names927270 +Node: Default Namespace928269 +Node: Changing The Namespace929010 +Node: Naming Rules930624 +Node: Internal Name Management932472 +Node: Namespace Example933514 +Node: Namespace And Features936076 +Node: Namespace Summary937511 +Node: Arbitrary Precision Arithmetic938988 +Node: Computer Arithmetic940475 +Ref: table-numeric-ranges944241 +Ref: table-floating-point-ranges944734 +Ref: Computer Arithmetic-Footnote-1945392 +Node: Math Definitions945449 +Ref: table-ieee-formats948765 +Ref: Math Definitions-Footnote-1949368 +Node: MPFR features949473 +Node: FP Math Caution951191 +Ref: FP Math Caution-Footnote-1952263 +Node: Inexactness of computations952632 +Node: Inexact representation953592 +Node: Comparing FP Values954952 +Node: Errors accumulate956193 +Node: Getting Accuracy957626 +Node: Try To Round960336 +Node: Setting precision961235 +Ref: table-predefined-precision-strings961932 +Node: Setting the rounding mode963762 +Ref: table-gawk-rounding-modes964136 +Ref: Setting the rounding mode-Footnote-1968067 +Node: Arbitrary Precision Integers968246 +Ref: Arbitrary Precision Integers-Footnote-1971421 +Node: Checking for MPFR971570 +Node: POSIX Floating Point Problems973044 +Ref: POSIX Floating Point Problems-Footnote-1977329 +Node: Floating point summary977367 +Node: Dynamic Extensions979557 +Node: Extension Intro981110 +Node: Plugin License982376 +Node: Extension Mechanism Outline983173 +Ref: figure-load-extension983612 +Ref: figure-register-new-function985177 +Ref: figure-call-new-function986269 +Node: Extension API Description988331 +Node: Extension API Functions Introduction989973 +Ref: table-api-std-headers991809 +Node: General Data Types995674 +Ref: General Data Types-Footnote-11004035 +Node: Memory Allocation Functions1004334 +Ref: Memory Allocation Functions-Footnote-11008544 +Node: Constructor Functions1008643 +Node: Registration Functions1012229 +Node: Extension Functions1012914 +Node: Exit Callback Functions1018236 +Node: Extension Version String1019486 +Node: Input Parsers1020149 +Node: Output Wrappers1032870 +Node: Two-way processors1037382 +Node: Printing Messages1039647 +Ref: Printing Messages-Footnote-11040818 +Node: Updating ERRNO1040971 +Node: Requesting Values1041710 +Ref: table-value-types-returned1042447 +Node: Accessing Parameters1043383 +Node: Symbol Table Access1044618 +Node: Symbol table by name1045130 +Ref: Symbol table by name-Footnote-11048154 +Node: Symbol table by cookie1048282 +Ref: Symbol table by cookie-Footnote-11052467 +Node: Cached values1052531 +Ref: Cached values-Footnote-11056067 +Node: Array Manipulation1056220 +Ref: Array Manipulation-Footnote-11057311 +Node: Array Data Types1057348 +Ref: Array Data Types-Footnote-11060006 +Node: Array Functions1060098 +Node: Flattening Arrays1064596 +Node: Creating Arrays1071572 +Node: Redirection API1076339 +Node: Extension API Variables1079172 +Node: Extension Versioning1079883 +Ref: gawk-api-version1080312 +Node: Extension GMP/MPFR Versioning1082043 +Node: Extension API Informational Variables1083671 +Node: Extension API Boilerplate1084744 +Node: Changes from API V11088718 +Node: Finding Extensions1090290 +Node: Extension Example1090849 +Node: Internal File Description1091647 +Node: Internal File Ops1095727 +Ref: Internal File Ops-Footnote-11107077 +Node: Using Internal File Ops1107217 +Ref: Using Internal File Ops-Footnote-11109600 +Node: Extension Samples1109874 +Node: Extension Sample File Functions1111403 +Node: Extension Sample Fnmatch1119052 +Node: Extension Sample Fork1120539 +Node: Extension Sample Inplace1121757 +Node: Extension Sample Ord1125061 +Node: Extension Sample Readdir1125897 +Ref: table-readdir-file-types1126786 +Node: Extension Sample Revout1127591 +Node: Extension Sample Rev2way1128180 +Node: Extension Sample Read write array1128920 +Node: Extension Sample Readfile1130862 +Node: Extension Sample Time1131957 +Node: Extension Sample API Tests1133305 +Node: gawkextlib1133797 +Node: Extension summary1136715 +Node: Extension Exercises1140417 +Node: Language History1141659 +Node: V7/SVR3.11143315 +Node: SVR41145467 +Node: POSIX1146901 +Node: BTL1148281 +Node: POSIX/GNU1149010 +Node: Feature History1154788 +Node: Common Extensions1170834 +Node: Ranges and Locales1172117 +Ref: Ranges and Locales-Footnote-11176733 +Ref: Ranges and Locales-Footnote-21176760 +Ref: Ranges and Locales-Footnote-31176995 +Node: Contributors1177216 +Node: History summary1183169 +Node: Installation1184549 +Node: Gawk Distribution1185493 +Node: Getting1185977 +Node: Extracting1186940 +Node: Distribution contents1188578 +Node: Unix Installation1195058 +Node: Quick Installation1195740 +Node: Shell Startup Files1198154 +Node: Additional Configuration Options1199243 +Node: Configuration Philosophy1201558 +Node: Non-Unix Installation1203927 +Node: PC Installation1204387 +Node: PC Binary Installation1205225 +Node: PC Compiling1205660 +Node: PC Using1206777 +Node: Cygwin1210330 +Node: MSYS1211429 +Node: VMS Installation1211930 +Node: VMS Compilation1212721 +Ref: VMS Compilation-Footnote-11213950 +Node: VMS Dynamic Extensions1214008 +Node: VMS Installation Details1215693 +Node: VMS Running1217946 +Node: VMS GNV1222225 +Node: VMS Old Gawk1222960 +Node: Bugs1223431 +Node: Bug address1224094 +Node: Usenet1227076 +Node: Maintainers1228080 +Node: Other Versions1229341 +Node: Installation summary1236429 +Node: Notes1237631 +Node: Compatibility Mode1238425 +Node: Additions1239207 +Node: Accessing The Source1240132 +Node: Adding Code1241569 +Node: New Ports1247788 +Node: Derived Files1252163 +Ref: Derived Files-Footnote-11257823 +Ref: Derived Files-Footnote-21257858 +Ref: Derived Files-Footnote-31258456 +Node: Future Extensions1258570 +Node: Implementation Limitations1259228 +Node: Extension Design1260411 +Node: Old Extension Problems1261555 +Ref: Old Extension Problems-Footnote-11263073 +Node: Extension New Mechanism Goals1263130 +Ref: Extension New Mechanism Goals-Footnote-11266494 +Node: Extension Other Design Decisions1266683 +Node: Extension Future Growth1268796 +Node: Notes summary1269632 +Node: Basic Concepts1270790 +Node: Basic High Level1271471 +Ref: figure-general-flow1271753 +Ref: figure-process-flow1272438 +Ref: Basic High Level-Footnote-11275739 +Node: Basic Data Typing1275924 +Node: Glossary1279252 +Node: Copying1311090 +Node: GNU Free Documentation License1348633 +Node: Index1373753 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 449fac49..1b248fc6 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -20488,17 +20488,20 @@ an array or not. The second is inside the body of a user-defined function array or not. @quotation NOTE -Using @code{isarray()} at the global level to test -variables makes no sense. Because you are the one writing the program, you -are supposed to know if your variables are arrays or not. And in fact, -due to the way @command{gawk} works, if you pass the name of a variable -that has not been previously used to @code{isarray()}, @command{gawk} -ends up turning it into a scalar. +While you can use @code{isarray()} at the global level to test variables, +doing so makes no sense. Because @emph{you} are the one writing the +program, @emph{you} are supposed to know if your variables are arrays +or not. @end quotation The @code{typeof()} function is general; it allows you to determine -if a variable or function parameter is a scalar, an array, or a strongly -typed regexp. +if a variable or function parameter is a scalar (number, string, +or strongly typed regexp) or an array. + +Normally, passing a variable that has never been used to a built-in +function causes it to become a scalar variable (unassigned). +However, @code{isarray()} and @code{typeof()} are different; they do +not change their arguments from untyped to unassigned. @node I18N Functions @subsection String-Translation Functions diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 850d4e18..38fa95e5 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -19530,17 +19530,20 @@ an array or not. The second is inside the body of a user-defined function array or not. @quotation NOTE -Using @code{isarray()} at the global level to test -variables makes no sense. Because you are the one writing the program, you -are supposed to know if your variables are arrays or not. And in fact, -due to the way @command{gawk} works, if you pass the name of a variable -that has not been previously used to @code{isarray()}, @command{gawk} -ends up turning it into a scalar. +While you can use @code{isarray()} at the global level to test variables, +doing so makes no sense. Because @emph{you} are the one writing the +program, @emph{you} are supposed to know if your variables are arrays +or not. @end quotation The @code{typeof()} function is general; it allows you to determine -if a variable or function parameter is a scalar, an array, or a strongly -typed regexp. +if a variable or function parameter is a scalar (number, string, +or strongly typed regexp) or an array. + +Normally, passing a variable that has never been used to a built-in +function causes it to become a scalar variable (unassigned). +However, @code{isarray()} and @code{typeof()} are different; they do +not change their arguments from untyped to unassigned. @node I18N Functions @subsection String-Translation Functions |