diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 492 |
1 files changed, 250 insertions, 242 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 1e3133a3..eb35cef3 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -19003,7 +19003,7 @@ back into a single line. That line is then printed to the output file: } if ($3 != curfile) { if (curfile != "") - close(curfile) + filelist[curfile]++ # save to close later curfile = $3 } @@ -19042,6 +19042,19 @@ source file (as has been done here!) without any hassle. The file is only closed when a new data file name is encountered or at the end of the input file. + When a new file name is encountered, instead of closing the file, the +program saves the name of the current file in 'filelist'. This makes it +possible to interleave the code for more than one file in the Texinfo +input file. (Previous versions of this program _did_ close the file. +But because of the '>' redirection, a file whose parts were not all one +after the other ended up getting clobbered.) An 'END' rule then closes +all the open files when processing is finished: + + END { + for (f in filelist) + close(filelist[f]) + } + Finally, the function 'unexpected_eof()' prints an appropriate error message and then exits. The 'END' rule handles the final cleanup, closing the open file: @@ -19053,11 +19066,6 @@ closing the open file: exit 1 } - END { - if (curfile) - close(curfile) - } - File: gawk.info, Node: Simple Sed, Next: Igawk Program, Prev: Extract Program, Up: Miscellaneous Programs @@ -36363,241 +36371,241 @@ Ref: Labels Program-Footnote-1764674 Node: Word Sorting764758 Node: History Sorting768830 Node: Extract Program770665 -Node: Simple Sed778195 -Node: Igawk Program781269 -Ref: Igawk Program-Footnote-1795600 -Ref: Igawk Program-Footnote-2795802 -Ref: Igawk Program-Footnote-3795924 -Node: Anagram Program796039 -Node: Signature Program799101 -Node: Programs Summary800348 -Node: Programs Exercises801562 -Ref: Programs Exercises-Footnote-1805691 -Node: Advanced Features805782 -Node: Nondecimal Data807772 -Node: Array Sorting809363 -Node: Controlling Array Traversal810063 -Ref: Controlling Array Traversal-Footnote-1818431 -Node: Array Sorting Functions818549 -Ref: Array Sorting Functions-Footnote-1823640 -Node: Two-way I/O823836 -Ref: Two-way I/O-Footnote-1830388 -Ref: Two-way I/O-Footnote-2830575 -Node: TCP/IP Networking830657 -Node: Profiling833775 -Ref: Profiling-Footnote-1842447 -Node: Advanced Features Summary842770 -Node: Internationalization844614 -Node: I18N and L10N846094 -Node: Explaining gettext846781 -Ref: Explaining gettext-Footnote-1852673 -Ref: Explaining gettext-Footnote-2852858 -Node: Programmer i18n853023 -Ref: Programmer i18n-Footnote-1857972 -Node: Translator i18n858021 -Node: String Extraction858815 -Ref: String Extraction-Footnote-1859947 -Node: Printf Ordering860033 -Ref: Printf Ordering-Footnote-1862819 -Node: I18N Portability862883 -Ref: I18N Portability-Footnote-1865339 -Node: I18N Example865402 -Ref: I18N Example-Footnote-1868208 -Node: Gawk I18N868281 -Node: I18N Summary868926 -Node: Debugger870267 -Node: Debugging871290 -Node: Debugging Concepts871731 -Node: Debugging Terms873540 -Node: Awk Debugging876115 -Node: Sample Debugging Session877021 -Node: Debugger Invocation877555 -Node: Finding The Bug878941 -Node: List of Debugger Commands885419 -Node: Breakpoint Control886752 -Node: Debugger Execution Control890446 -Node: Viewing And Changing Data893808 -Node: Execution Stack897182 -Node: Debugger Info898819 -Node: Miscellaneous Debugger Commands902890 -Node: Readline Support907952 -Node: Limitations908848 -Node: Debugging Summary910957 -Node: Arbitrary Precision Arithmetic912236 -Node: Computer Arithmetic913721 -Ref: table-numeric-ranges917487 -Ref: table-floating-point-ranges917980 -Ref: Computer Arithmetic-Footnote-1918638 -Node: Math Definitions918695 -Ref: table-ieee-formats922011 -Ref: Math Definitions-Footnote-1922614 -Node: MPFR features922719 -Node: FP Math Caution924437 -Ref: FP Math Caution-Footnote-1925509 -Node: Inexactness of computations925878 -Node: Inexact representation926838 -Node: Comparing FP Values928198 -Node: Errors accumulate929280 -Node: Getting Accuracy930713 -Node: Try To Round933423 -Node: Setting precision934322 -Ref: table-predefined-precision-strings935019 -Node: Setting the rounding mode936849 -Ref: table-gawk-rounding-modes937223 -Ref: Setting the rounding mode-Footnote-1941154 -Node: Arbitrary Precision Integers941333 -Ref: Arbitrary Precision Integers-Footnote-1944508 -Node: Checking for MPFR944657 -Node: POSIX Floating Point Problems946131 -Ref: POSIX Floating Point Problems-Footnote-1950002 -Node: Floating point summary950040 -Node: Dynamic Extensions952230 -Node: Extension Intro953783 -Node: Plugin License955049 -Node: Extension Mechanism Outline955846 -Ref: figure-load-extension956285 -Ref: figure-register-new-function957850 -Ref: figure-call-new-function958942 -Node: Extension API Description961004 -Node: Extension API Functions Introduction962646 -Node: General Data Types968186 -Ref: General Data Types-Footnote-1976547 -Node: Memory Allocation Functions976846 -Ref: Memory Allocation Functions-Footnote-1981056 -Node: Constructor Functions981155 -Node: Registration Functions984741 -Node: Extension Functions985426 -Node: Exit Callback Functions990641 -Node: Extension Version String991891 -Node: Input Parsers992554 -Node: Output Wrappers1005275 -Node: Two-way processors1009787 -Node: Printing Messages1012052 -Ref: Printing Messages-Footnote-11013223 -Node: Updating ERRNO1013376 -Node: Requesting Values1014115 -Ref: table-value-types-returned1014852 -Node: Accessing Parameters1015788 -Node: Symbol Table Access1017023 -Node: Symbol table by name1017535 -Node: Symbol table by cookie1019324 -Ref: Symbol table by cookie-Footnote-11023509 -Node: Cached values1023573 -Ref: Cached values-Footnote-11027109 -Node: Array Manipulation1027262 -Ref: Array Manipulation-Footnote-11028353 -Node: Array Data Types1028390 -Ref: Array Data Types-Footnote-11031048 -Node: Array Functions1031140 -Node: Flattening Arrays1035638 -Node: Creating Arrays1042614 -Node: Redirection API1047381 -Node: Extension API Variables1050214 -Node: Extension Versioning1050925 -Ref: gawk-api-version1051354 -Node: Extension GMP/MPFR Versioning1053085 -Node: Extension API Informational Variables1054713 -Node: Extension API Boilerplate1055786 -Node: Changes from API V11059760 -Node: Finding Extensions1061332 -Node: Extension Example1061891 -Node: Internal File Description1062689 -Node: Internal File Ops1066769 -Ref: Internal File Ops-Footnote-11078119 -Node: Using Internal File Ops1078259 -Ref: Using Internal File Ops-Footnote-11080642 -Node: Extension Samples1080916 -Node: Extension Sample File Functions1082445 -Node: Extension Sample Fnmatch1090094 -Node: Extension Sample Fork1091581 -Node: Extension Sample Inplace1092799 -Node: Extension Sample Ord1096016 -Node: Extension Sample Readdir1096852 -Ref: table-readdir-file-types1097741 -Node: Extension Sample Revout1098546 -Node: Extension Sample Rev2way1099135 -Node: Extension Sample Read write array1099875 -Node: Extension Sample Readfile1101817 -Node: Extension Sample Time1102912 -Node: Extension Sample API Tests1104260 -Node: gawkextlib1104752 -Node: Extension summary1107670 -Node: Extension Exercises1111372 -Node: Language History1112870 -Node: V7/SVR3.11114526 -Node: SVR41116678 -Node: POSIX1118112 -Node: BTL1119492 -Node: POSIX/GNU1120221 -Node: Feature History1125999 -Node: Common Extensions1141858 -Node: Ranges and Locales1143141 -Ref: Ranges and Locales-Footnote-11147757 -Ref: Ranges and Locales-Footnote-21147784 -Ref: Ranges and Locales-Footnote-31148019 -Node: Contributors1148240 -Node: History summary1154185 -Node: Installation1155565 -Node: Gawk Distribution1156509 -Node: Getting1156993 -Node: Extracting1157956 -Node: Distribution contents1159594 -Node: Unix Installation1166074 -Node: Quick Installation1166756 -Node: Shell Startup Files1169170 -Node: Additional Configuration Options1170259 -Node: Configuration Philosophy1172552 -Node: Non-Unix Installation1174921 -Node: PC Installation1175381 -Node: PC Binary Installation1176219 -Node: PC Compiling1176654 -Node: PC Using1177771 -Node: Cygwin1180986 -Node: MSYS1182085 -Node: VMS Installation1182586 -Node: VMS Compilation1183377 -Ref: VMS Compilation-Footnote-11184606 -Node: VMS Dynamic Extensions1184664 -Node: VMS Installation Details1186349 -Node: VMS Running1188602 -Node: VMS GNV1192881 -Node: VMS Old Gawk1193616 -Node: Bugs1194087 -Node: Bug address1194750 -Node: Usenet1197542 -Node: Maintainers1198319 -Node: Other Versions1199580 -Node: Installation summary1206342 -Node: Notes1207544 -Node: Compatibility Mode1208409 -Node: Additions1209191 -Node: Accessing The Source1210116 -Node: Adding Code1211553 -Node: New Ports1217772 -Node: Derived Files1222260 -Ref: Derived Files-Footnote-11227906 -Ref: Derived Files-Footnote-21227941 -Ref: Derived Files-Footnote-31228539 -Node: Future Extensions1228653 -Node: Implementation Limitations1229311 -Node: Extension Design1230494 -Node: Old Extension Problems1231648 -Ref: Old Extension Problems-Footnote-11233166 -Node: Extension New Mechanism Goals1233223 -Ref: Extension New Mechanism Goals-Footnote-11236587 -Node: Extension Other Design Decisions1236776 -Node: Extension Future Growth1238889 -Node: Old Extension Mechanism1239725 -Node: Notes summary1241488 -Node: Basic Concepts1242670 -Node: Basic High Level1243351 -Ref: figure-general-flow1243633 -Ref: figure-process-flow1244318 -Ref: Basic High Level-Footnote-11247619 -Node: Basic Data Typing1247804 -Node: Glossary1251132 -Node: Copying1282970 -Node: GNU Free Documentation License1320513 -Node: Index1345633 +Node: Simple Sed778716 +Node: Igawk Program781790 +Ref: Igawk Program-Footnote-1796121 +Ref: Igawk Program-Footnote-2796323 +Ref: Igawk Program-Footnote-3796445 +Node: Anagram Program796560 +Node: Signature Program799622 +Node: Programs Summary800869 +Node: Programs Exercises802083 +Ref: Programs Exercises-Footnote-1806212 +Node: Advanced Features806303 +Node: Nondecimal Data808293 +Node: Array Sorting809884 +Node: Controlling Array Traversal810584 +Ref: Controlling Array Traversal-Footnote-1818952 +Node: Array Sorting Functions819070 +Ref: Array Sorting Functions-Footnote-1824161 +Node: Two-way I/O824357 +Ref: Two-way I/O-Footnote-1830909 +Ref: Two-way I/O-Footnote-2831096 +Node: TCP/IP Networking831178 +Node: Profiling834296 +Ref: Profiling-Footnote-1842968 +Node: Advanced Features Summary843291 +Node: Internationalization845135 +Node: I18N and L10N846615 +Node: Explaining gettext847302 +Ref: Explaining gettext-Footnote-1853194 +Ref: Explaining gettext-Footnote-2853379 +Node: Programmer i18n853544 +Ref: Programmer i18n-Footnote-1858493 +Node: Translator i18n858542 +Node: String Extraction859336 +Ref: String Extraction-Footnote-1860468 +Node: Printf Ordering860554 +Ref: Printf Ordering-Footnote-1863340 +Node: I18N Portability863404 +Ref: I18N Portability-Footnote-1865860 +Node: I18N Example865923 +Ref: I18N Example-Footnote-1868729 +Node: Gawk I18N868802 +Node: I18N Summary869447 +Node: Debugger870788 +Node: Debugging871811 +Node: Debugging Concepts872252 +Node: Debugging Terms874061 +Node: Awk Debugging876636 +Node: Sample Debugging Session877542 +Node: Debugger Invocation878076 +Node: Finding The Bug879462 +Node: List of Debugger Commands885940 +Node: Breakpoint Control887273 +Node: Debugger Execution Control890967 +Node: Viewing And Changing Data894329 +Node: Execution Stack897703 +Node: Debugger Info899340 +Node: Miscellaneous Debugger Commands903411 +Node: Readline Support908473 +Node: Limitations909369 +Node: Debugging Summary911478 +Node: Arbitrary Precision Arithmetic912757 +Node: Computer Arithmetic914242 +Ref: table-numeric-ranges918008 +Ref: table-floating-point-ranges918501 +Ref: Computer Arithmetic-Footnote-1919159 +Node: Math Definitions919216 +Ref: table-ieee-formats922532 +Ref: Math Definitions-Footnote-1923135 +Node: MPFR features923240 +Node: FP Math Caution924958 +Ref: FP Math Caution-Footnote-1926030 +Node: Inexactness of computations926399 +Node: Inexact representation927359 +Node: Comparing FP Values928719 +Node: Errors accumulate929801 +Node: Getting Accuracy931234 +Node: Try To Round933944 +Node: Setting precision934843 +Ref: table-predefined-precision-strings935540 +Node: Setting the rounding mode937370 +Ref: table-gawk-rounding-modes937744 +Ref: Setting the rounding mode-Footnote-1941675 +Node: Arbitrary Precision Integers941854 +Ref: Arbitrary Precision Integers-Footnote-1945029 +Node: Checking for MPFR945178 +Node: POSIX Floating Point Problems946652 +Ref: POSIX Floating Point Problems-Footnote-1950523 +Node: Floating point summary950561 +Node: Dynamic Extensions952751 +Node: Extension Intro954304 +Node: Plugin License955570 +Node: Extension Mechanism Outline956367 +Ref: figure-load-extension956806 +Ref: figure-register-new-function958371 +Ref: figure-call-new-function959463 +Node: Extension API Description961525 +Node: Extension API Functions Introduction963167 +Node: General Data Types968707 +Ref: General Data Types-Footnote-1977068 +Node: Memory Allocation Functions977367 +Ref: Memory Allocation Functions-Footnote-1981577 +Node: Constructor Functions981676 +Node: Registration Functions985262 +Node: Extension Functions985947 +Node: Exit Callback Functions991162 +Node: Extension Version String992412 +Node: Input Parsers993075 +Node: Output Wrappers1005796 +Node: Two-way processors1010308 +Node: Printing Messages1012573 +Ref: Printing Messages-Footnote-11013744 +Node: Updating ERRNO1013897 +Node: Requesting Values1014636 +Ref: table-value-types-returned1015373 +Node: Accessing Parameters1016309 +Node: Symbol Table Access1017544 +Node: Symbol table by name1018056 +Node: Symbol table by cookie1019845 +Ref: Symbol table by cookie-Footnote-11024030 +Node: Cached values1024094 +Ref: Cached values-Footnote-11027630 +Node: Array Manipulation1027783 +Ref: Array Manipulation-Footnote-11028874 +Node: Array Data Types1028911 +Ref: Array Data Types-Footnote-11031569 +Node: Array Functions1031661 +Node: Flattening Arrays1036159 +Node: Creating Arrays1043135 +Node: Redirection API1047902 +Node: Extension API Variables1050735 +Node: Extension Versioning1051446 +Ref: gawk-api-version1051875 +Node: Extension GMP/MPFR Versioning1053606 +Node: Extension API Informational Variables1055234 +Node: Extension API Boilerplate1056307 +Node: Changes from API V11060281 +Node: Finding Extensions1061853 +Node: Extension Example1062412 +Node: Internal File Description1063210 +Node: Internal File Ops1067290 +Ref: Internal File Ops-Footnote-11078640 +Node: Using Internal File Ops1078780 +Ref: Using Internal File Ops-Footnote-11081163 +Node: Extension Samples1081437 +Node: Extension Sample File Functions1082966 +Node: Extension Sample Fnmatch1090615 +Node: Extension Sample Fork1092102 +Node: Extension Sample Inplace1093320 +Node: Extension Sample Ord1096537 +Node: Extension Sample Readdir1097373 +Ref: table-readdir-file-types1098262 +Node: Extension Sample Revout1099067 +Node: Extension Sample Rev2way1099656 +Node: Extension Sample Read write array1100396 +Node: Extension Sample Readfile1102338 +Node: Extension Sample Time1103433 +Node: Extension Sample API Tests1104781 +Node: gawkextlib1105273 +Node: Extension summary1108191 +Node: Extension Exercises1111893 +Node: Language History1113391 +Node: V7/SVR3.11115047 +Node: SVR41117199 +Node: POSIX1118633 +Node: BTL1120013 +Node: POSIX/GNU1120742 +Node: Feature History1126520 +Node: Common Extensions1142379 +Node: Ranges and Locales1143662 +Ref: Ranges and Locales-Footnote-11148278 +Ref: Ranges and Locales-Footnote-21148305 +Ref: Ranges and Locales-Footnote-31148540 +Node: Contributors1148761 +Node: History summary1154706 +Node: Installation1156086 +Node: Gawk Distribution1157030 +Node: Getting1157514 +Node: Extracting1158477 +Node: Distribution contents1160115 +Node: Unix Installation1166595 +Node: Quick Installation1167277 +Node: Shell Startup Files1169691 +Node: Additional Configuration Options1170780 +Node: Configuration Philosophy1173073 +Node: Non-Unix Installation1175442 +Node: PC Installation1175902 +Node: PC Binary Installation1176740 +Node: PC Compiling1177175 +Node: PC Using1178292 +Node: Cygwin1181507 +Node: MSYS1182606 +Node: VMS Installation1183107 +Node: VMS Compilation1183898 +Ref: VMS Compilation-Footnote-11185127 +Node: VMS Dynamic Extensions1185185 +Node: VMS Installation Details1186870 +Node: VMS Running1189123 +Node: VMS GNV1193402 +Node: VMS Old Gawk1194137 +Node: Bugs1194608 +Node: Bug address1195271 +Node: Usenet1198063 +Node: Maintainers1198840 +Node: Other Versions1200101 +Node: Installation summary1206863 +Node: Notes1208065 +Node: Compatibility Mode1208930 +Node: Additions1209712 +Node: Accessing The Source1210637 +Node: Adding Code1212074 +Node: New Ports1218293 +Node: Derived Files1222781 +Ref: Derived Files-Footnote-11228427 +Ref: Derived Files-Footnote-21228462 +Ref: Derived Files-Footnote-31229060 +Node: Future Extensions1229174 +Node: Implementation Limitations1229832 +Node: Extension Design1231015 +Node: Old Extension Problems1232169 +Ref: Old Extension Problems-Footnote-11233687 +Node: Extension New Mechanism Goals1233744 +Ref: Extension New Mechanism Goals-Footnote-11237108 +Node: Extension Other Design Decisions1237297 +Node: Extension Future Growth1239410 +Node: Old Extension Mechanism1240246 +Node: Notes summary1242009 +Node: Basic Concepts1243191 +Node: Basic High Level1243872 +Ref: figure-general-flow1244154 +Ref: figure-process-flow1244839 +Ref: Basic High Level-Footnote-11248140 +Node: Basic Data Typing1248325 +Node: Glossary1251653 +Node: Copying1283491 +Node: GNU Free Documentation License1321034 +Node: Index1346154 End Tag Table |