diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1198 |
1 files changed, 620 insertions, 578 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index b57abbd3..b7b6b48c 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -536,6 +536,7 @@ in (a) below. A copy of the license is included in the section entitled * Setting the rounding mode:: How to set the rounding mode. * Arbitrary Precision Integers:: Arbitrary Precision Integer Arithmetic with 'gawk'. +* Checking for MPFR:: How to check if MPFR is available. * POSIX Floating Point Problems:: Standards Versus Existing Practice. * Floating point summary:: Summary of floating point discussion. * Extension Intro:: What is an extension. @@ -22468,6 +22469,7 @@ are not quite in agreement. * FP Math Caution:: Things to know. * Arbitrary Precision Integers:: Arbitrary Precision Integer Arithmetic with 'gawk'. +* Checking for MPFR:: How to check if MPFR is available. * POSIX Floating Point Problems:: Standards Versus Existing Practice. * Floating point summary:: Summary of floating point discussion. @@ -23107,7 +23109,7 @@ library in your system does not use the IEEE 754 even-rounding rule to round halfway cases for 'printf'. -File: gawk.info, Node: Arbitrary Precision Integers, Next: POSIX Floating Point Problems, Prev: FP Math Caution, Up: Arbitrary Precision Arithmetic +File: gawk.info, Node: Arbitrary Precision Integers, Next: Checking for MPFR, Prev: FP Math Caution, Up: Arbitrary Precision Arithmetic 15.5 Arbitrary-Precision Integer Arithmetic with 'gawk' ======================================================= @@ -23185,9 +23187,46 @@ Wolfram Web Resource (<http://mathworld.wolfram.com/SylvestersSequence.html>). -File: gawk.info, Node: POSIX Floating Point Problems, Next: Floating point summary, Prev: Arbitrary Precision Integers, Up: Arbitrary Precision Arithmetic +File: gawk.info, Node: Checking for MPFR, Next: POSIX Floating Point Problems, Prev: Arbitrary Precision Integers, Up: Arbitrary Precision Arithmetic -15.6 Standards Versus Existing Practice +15.6 How To Check If MPFR Is Available +====================================== + +Occasionally, you might like to be able to check if 'gawk' was invoked +with the '-M' option, enabling aribtrary-precision arithmetic. You can +do so with the following function, contributed by Andrew Schorr: + + # adequate_math_precision --- return true if we have enough bits + + function adequate_math_precision(n) + { + return (1 != (1+(1/(2^(n-1))))) + } + + Here is code that invokes the function in order to check if +arbitrary-precision arithmetic is available: + + BEGIN { + # How many bits of mantissa precision are required + # for this program to function properly? + fpbits = 123 + + # We hope that we were invoked with MPFR enabled. If so, the + # following statement should configure calculations to our desired + # precision. + PREC = fpbits + + if (! adequate_math_precision(fpbits)) { + print("Error: insufficient computation precision available.\n" \ + "Try again with the -M argument?") > "/dev/stderr" + exit 1 + } + } + + +File: gawk.info, Node: POSIX Floating Point Problems, Next: Floating point summary, Prev: Checking for MPFR, Up: Arbitrary Precision Arithmetic + +15.7 Standards Versus Existing Practice ======================================= Historically, 'awk' has converted any nonnumeric-looking string to the @@ -23274,7 +23313,7 @@ and infinity values. The solution implemented in 'gawk' is as follows: File: gawk.info, Node: Floating point summary, Prev: POSIX Floating Point Problems, Up: Arbitrary Precision Arithmetic -15.7 Summary +15.8 Summary ============ * Most computer arithmetic is done using either integers or @@ -33207,6 +33246,7 @@ Index * Chassell, Robert J.: Acknowledgments. (line 33) * chdir() extension function: Extension Sample File Functions. (line 12) +* checking for MPFR: Checking for MPFR. (line 6) * chem utility: Glossary. (line 206) * chr() extension function: Extension Sample Ord. (line 15) @@ -34533,6 +34573,7 @@ Index * modifiers, in format specifiers: Format Modifiers. (line 6) * monetary information, localization: Explaining gettext. (line 104) * Moore, Duncan: Getline Notes. (line 40) +* MPFR, checking availability of: Checking for MPFR. (line 6) * msgfmt utility: I18N Example. (line 66) * multiple precision: Arbitrary Precision Arithmetic. (line 6) @@ -35603,579 +35644,580 @@ Index Tag Table: Node: Top1200 -Node: Foreword343204 -Node: Foreword447646 -Node: Preface49178 -Ref: Preface-Footnote-152037 -Ref: Preface-Footnote-252144 -Ref: Preface-Footnote-352378 -Node: History52520 -Node: Names54872 -Ref: Names-Footnote-155966 -Node: This Manual56113 -Ref: This Manual-Footnote-162598 -Node: Conventions62698 -Node: Manual History65052 -Ref: Manual History-Footnote-168047 -Ref: Manual History-Footnote-268088 -Node: How To Contribute68162 -Node: Acknowledgments68813 -Node: Getting Started73699 -Node: Running gawk76138 -Node: One-shot77328 -Node: Read Terminal78591 -Node: Long80584 -Node: Executable Scripts82097 -Ref: Executable Scripts-Footnote-184892 -Node: Comments84995 -Node: Quoting87479 -Node: DOS Quoting92996 -Node: Sample Data Files95051 -Node: Very Simple97646 -Node: Two Rules102548 -Node: More Complex104433 -Node: Statements/Lines107299 -Ref: Statements/Lines-Footnote-1111758 -Node: Other Features112023 -Node: When112959 -Ref: When-Footnote-1114713 -Node: Intro Summary114778 -Node: Invoking Gawk115662 -Node: Command Line117176 -Node: Options117974 -Ref: Options-Footnote-1134593 -Ref: Options-Footnote-2134823 -Node: Other Arguments134848 -Node: Naming Standard Input137795 -Node: Environment Variables138888 -Node: AWKPATH Variable139446 -Ref: AWKPATH Variable-Footnote-1142857 -Ref: AWKPATH Variable-Footnote-2142891 -Node: AWKLIBPATH Variable143152 -Node: Other Environment Variables144409 -Node: Exit Status148230 -Node: Include Files148907 -Node: Loading Shared Libraries152502 -Node: Obsolete153930 -Node: Undocumented154622 -Node: Invoking Summary154919 -Node: Regexp156579 -Node: Regexp Usage158033 -Node: Escape Sequences160070 -Node: Regexp Operators166302 -Ref: Regexp Operators-Footnote-1173718 -Ref: Regexp Operators-Footnote-2173865 -Node: Bracket Expressions173963 -Ref: table-char-classes176439 -Node: Leftmost Longest179576 -Node: Computed Regexps180879 -Node: GNU Regexp Operators184306 -Node: Case-sensitivity187985 -Ref: Case-sensitivity-Footnote-1190872 -Ref: Case-sensitivity-Footnote-2191107 -Node: Regexp Summary191215 -Node: Reading Files192681 -Node: Records194950 -Node: awk split records195683 -Node: gawk split records200614 -Ref: gawk split records-Footnote-1205154 -Node: Fields205191 -Node: Nonconstant Fields207932 -Ref: Nonconstant Fields-Footnote-1210168 -Node: Changing Fields210372 -Node: Field Separators216300 -Node: Default Field Splitting218998 -Node: Regexp Field Splitting220116 -Node: Single Character Fields223469 -Node: Command Line Field Separator224529 -Node: Full Line Fields227747 -Ref: Full Line Fields-Footnote-1229269 -Ref: Full Line Fields-Footnote-2229315 -Node: Field Splitting Summary229416 -Node: Constant Size231490 -Node: Fixed width data232222 -Node: Skipping intervening235689 -Node: Allowing trailing data236487 -Node: Fields with fixed data237524 -Node: Splitting By Content239042 -Ref: Splitting By Content-Footnote-1242692 -Node: Testing field creation242855 -Node: Multiple Line244476 -Ref: Multiple Line-Footnote-1250360 -Node: Getline250539 -Node: Plain Getline253008 -Node: Getline/Variable255649 -Node: Getline/File256800 -Node: Getline/Variable/File258188 -Ref: Getline/Variable/File-Footnote-1259793 -Node: Getline/Pipe259881 -Node: Getline/Variable/Pipe262588 -Node: Getline/Coprocess263723 -Node: Getline/Variable/Coprocess264990 -Node: Getline Notes265732 -Node: Getline Summary268529 -Ref: table-getline-variants268953 -Node: Read Timeout269701 -Ref: Read Timeout-Footnote-1273607 -Node: Retrying Input273665 -Node: Command-line directories274864 -Node: Input Summary275770 -Node: Input Exercises278942 -Node: Printing279670 -Node: Print281504 -Node: Print Examples282961 -Node: Output Separators285741 -Node: OFMT287758 -Node: Printf289114 -Node: Basic Printf289899 -Node: Control Letters291473 -Node: Format Modifiers295461 -Node: Printf Examples301476 -Node: Redirection303962 -Node: Special FD310803 -Ref: Special FD-Footnote-1313971 -Node: Special Files314045 -Node: Other Inherited Files314662 -Node: Special Network315663 -Node: Special Caveats316523 -Node: Close Files And Pipes317472 -Ref: table-close-pipe-return-values324379 -Ref: Close Files And Pipes-Footnote-1325162 -Ref: Close Files And Pipes-Footnote-2325310 -Node: Nonfatal325462 -Node: Output Summary327787 -Node: Output Exercises329009 -Node: Expressions329688 -Node: Values330876 -Node: Constants331554 -Node: Scalar Constants332245 -Ref: Scalar Constants-Footnote-1333109 -Node: Nondecimal-numbers333359 -Node: Regexp Constants336360 -Node: Using Constant Regexps336886 -Node: Standard Regexp Constants337508 -Node: Strong Regexp Constants340696 -Node: Variables343654 -Node: Using Variables344311 -Node: Assignment Options346221 -Node: Conversion348094 -Node: Strings And Numbers348618 -Ref: Strings And Numbers-Footnote-1351681 -Node: Locale influences conversions351790 -Ref: table-locale-affects354548 -Node: All Operators355166 -Node: Arithmetic Ops355795 -Node: Concatenation358301 -Ref: Concatenation-Footnote-1361148 -Node: Assignment Ops361255 -Ref: table-assign-ops366246 -Node: Increment Ops367559 -Node: Truth Values and Conditions371019 -Node: Truth Values372093 -Node: Typing and Comparison373141 -Node: Variable Typing373961 -Ref: Variable Typing-Footnote-1380424 -Ref: Variable Typing-Footnote-2380496 -Node: Comparison Operators380573 -Ref: table-relational-ops380992 -Node: POSIX String Comparison384487 -Ref: POSIX String Comparison-Footnote-1386182 -Ref: POSIX String Comparison-Footnote-2386321 -Node: Boolean Ops386405 -Ref: Boolean Ops-Footnote-1390887 -Node: Conditional Exp390979 -Node: Function Calls392715 -Node: Precedence396592 -Node: Locales400251 -Node: Expressions Summary401883 -Node: Patterns and Actions404456 -Node: Pattern Overview405576 -Node: Regexp Patterns407253 -Node: Expression Patterns407795 -Node: Ranges411576 -Node: BEGIN/END414684 -Node: Using BEGIN/END415445 -Ref: Using BEGIN/END-Footnote-1418181 -Node: I/O And BEGIN/END418287 -Node: BEGINFILE/ENDFILE420601 -Node: Empty423508 -Node: Using Shell Variables423825 -Node: Action Overview426099 -Node: Statements428424 -Node: If Statement430272 -Node: While Statement431767 -Node: Do Statement433795 -Node: For Statement434943 -Node: Switch Statement438101 -Node: Break Statement440487 -Node: Continue Statement442579 -Node: Next Statement444406 -Node: Nextfile Statement446789 -Node: Exit Statement449441 -Node: Built-in Variables451844 -Node: User-modified452977 -Node: Auto-set460744 -Ref: Auto-set-Footnote-1475472 -Ref: Auto-set-Footnote-2475678 -Node: ARGC and ARGV475734 -Node: Pattern Action Summary479947 -Node: Arrays482377 -Node: Array Basics483706 -Node: Array Intro484550 -Ref: figure-array-elements486525 -Ref: Array Intro-Footnote-1489229 -Node: Reference to Elements489357 -Node: Assigning Elements491821 -Node: Array Example492312 -Node: Scanning an Array494071 -Node: Controlling Scanning497093 -Ref: Controlling Scanning-Footnote-1502492 -Node: Numeric Array Subscripts502808 -Node: Uninitialized Subscripts504992 -Node: Delete506611 -Ref: Delete-Footnote-1509363 -Node: Multidimensional509420 -Node: Multiscanning512515 -Node: Arrays of Arrays514106 -Node: Arrays Summary518873 -Node: Functions520966 -Node: Built-in522004 -Node: Calling Built-in523085 -Node: Numeric Functions525081 -Ref: Numeric Functions-Footnote-1529109 -Ref: Numeric Functions-Footnote-2529466 -Ref: Numeric Functions-Footnote-3529514 -Node: String Functions529786 -Ref: String Functions-Footnote-1553444 -Ref: String Functions-Footnote-2553572 -Ref: String Functions-Footnote-3553820 -Node: Gory Details553907 -Ref: table-sub-escapes555698 -Ref: table-sub-proposed557217 -Ref: table-posix-sub558580 -Ref: table-gensub-escapes560121 -Ref: Gory Details-Footnote-1560944 -Node: I/O Functions561098 -Ref: table-system-return-values567680 -Ref: I/O Functions-Footnote-1569660 -Ref: I/O Functions-Footnote-2569808 -Node: Time Functions569928 -Ref: Time Functions-Footnote-1580595 -Ref: Time Functions-Footnote-2580663 -Ref: Time Functions-Footnote-3580821 -Ref: Time Functions-Footnote-4580932 -Ref: Time Functions-Footnote-5581044 -Ref: Time Functions-Footnote-6581271 -Node: Bitwise Functions581537 -Ref: table-bitwise-ops582131 -Ref: Bitwise Functions-Footnote-1588164 -Ref: Bitwise Functions-Footnote-2588337 -Node: Type Functions588528 -Node: I18N Functions591203 -Node: User-defined592854 -Node: Definition Syntax593659 -Ref: Definition Syntax-Footnote-1599346 -Node: Function Example599417 -Ref: Function Example-Footnote-1602339 -Node: Function Caveats602361 -Node: Calling A Function602879 -Node: Variable Scope603837 -Node: Pass By Value/Reference606831 -Node: Return Statement610330 -Node: Dynamic Typing613309 -Node: Indirect Calls614239 -Ref: Indirect Calls-Footnote-1624490 -Node: Functions Summary624618 -Node: Library Functions627323 -Ref: Library Functions-Footnote-1630930 -Ref: Library Functions-Footnote-2631073 -Node: Library Names631244 -Ref: Library Names-Footnote-1634704 -Ref: Library Names-Footnote-2634927 -Node: General Functions635013 -Node: Strtonum Function636116 -Node: Assert Function639138 -Node: Round Function642464 -Node: Cliff Random Function644005 -Node: Ordinal Functions645021 -Ref: Ordinal Functions-Footnote-1648084 -Ref: Ordinal Functions-Footnote-2648336 -Node: Join Function648546 -Ref: Join Function-Footnote-1650316 -Node: Getlocaltime Function650516 -Node: Readfile Function654258 -Node: Shell Quoting656230 -Node: Data File Management657631 -Node: Filetrans Function658263 -Node: Rewind Function662359 -Node: File Checking664265 -Ref: File Checking-Footnote-1665599 -Node: Empty Files665800 -Node: Ignoring Assigns667779 -Node: Getopt Function669329 -Ref: Getopt Function-Footnote-1680798 -Node: Passwd Functions680998 -Ref: Passwd Functions-Footnote-1689837 -Node: Group Functions689925 -Ref: Group Functions-Footnote-1697823 -Node: Walking Arrays698030 -Node: Library Functions Summary701038 -Node: Library Exercises702444 -Node: Sample Programs702909 -Node: Running Examples703679 -Node: Clones704407 -Node: Cut Program705631 -Node: Egrep Program715560 -Ref: Egrep Program-Footnote-1723072 -Node: Id Program723182 -Node: Split Program726862 -Ref: Split Program-Footnote-1730321 -Node: Tee Program730450 -Node: Uniq Program733240 -Node: Wc Program740666 -Ref: Wc Program-Footnote-1744921 -Node: Miscellaneous Programs745015 -Node: Dupword Program746228 -Node: Alarm Program748258 -Node: Translate Program753113 -Ref: Translate Program-Footnote-1757678 -Node: Labels Program757948 -Ref: Labels Program-Footnote-1761299 -Node: Word Sorting761383 -Node: History Sorting765455 -Node: Extract Program767290 -Node: Simple Sed774819 -Node: Igawk Program777893 -Ref: Igawk Program-Footnote-1792224 -Ref: Igawk Program-Footnote-2792426 -Ref: Igawk Program-Footnote-3792548 -Node: Anagram Program792663 -Node: Signature Program795725 -Node: Programs Summary796972 -Node: Programs Exercises798186 -Ref: Programs Exercises-Footnote-1802315 -Node: Advanced Features802406 -Node: Nondecimal Data804396 -Node: Array Sorting805987 -Node: Controlling Array Traversal806687 -Ref: Controlling Array Traversal-Footnote-1815054 -Node: Array Sorting Functions815172 -Ref: Array Sorting Functions-Footnote-1820263 -Node: Two-way I/O820459 -Ref: Two-way I/O-Footnote-1827010 -Ref: Two-way I/O-Footnote-2827197 -Node: TCP/IP Networking827279 -Node: Profiling830397 -Ref: Profiling-Footnote-1839069 -Node: Advanced Features Summary839392 -Node: Internationalization841236 -Node: I18N and L10N842716 -Node: Explaining gettext843403 -Ref: Explaining gettext-Footnote-1849295 -Ref: Explaining gettext-Footnote-2849480 -Node: Programmer i18n849645 -Ref: Programmer i18n-Footnote-1854594 -Node: Translator i18n854643 -Node: String Extraction855437 -Ref: String Extraction-Footnote-1856569 -Node: Printf Ordering856655 -Ref: Printf Ordering-Footnote-1859441 -Node: I18N Portability859505 -Ref: I18N Portability-Footnote-1861961 -Node: I18N Example862024 -Ref: I18N Example-Footnote-1864830 -Node: Gawk I18N864903 -Node: I18N Summary865548 -Node: Debugger866889 -Node: Debugging867911 -Node: Debugging Concepts868352 -Node: Debugging Terms870161 -Node: Awk Debugging872736 -Node: Sample Debugging Session873642 -Node: Debugger Invocation874176 -Node: Finding The Bug875562 -Node: List of Debugger Commands882040 -Node: Breakpoint Control883373 -Node: Debugger Execution Control887067 -Node: Viewing And Changing Data890429 -Node: Execution Stack893803 -Node: Debugger Info895440 -Node: Miscellaneous Debugger Commands899511 -Node: Readline Support904599 -Node: Limitations905495 -Node: Debugging Summary907604 -Node: Arbitrary Precision Arithmetic908883 -Node: Computer Arithmetic910299 -Ref: table-numeric-ranges913890 -Ref: Computer Arithmetic-Footnote-1914612 -Node: Math Definitions914669 -Ref: table-ieee-formats917983 -Ref: Math Definitions-Footnote-1918586 -Node: MPFR features918691 -Node: FP Math Caution920408 -Ref: FP Math Caution-Footnote-1921480 -Node: Inexactness of computations921849 -Node: Inexact representation922809 -Node: Comparing FP Values924169 -Node: Errors accumulate925251 -Node: Getting Accuracy926684 -Node: Try To Round929394 -Node: Setting precision930293 -Ref: table-predefined-precision-strings930990 -Node: Setting the rounding mode932820 -Ref: table-gawk-rounding-modes933194 -Ref: Setting the rounding mode-Footnote-1936602 -Node: Arbitrary Precision Integers936781 -Ref: Arbitrary Precision Integers-Footnote-1939968 -Node: POSIX Floating Point Problems940117 -Ref: POSIX Floating Point Problems-Footnote-1943999 -Node: Floating point summary944037 -Node: Dynamic Extensions946227 -Node: Extension Intro947780 -Node: Plugin License949046 -Node: Extension Mechanism Outline949843 -Ref: figure-load-extension950282 -Ref: figure-register-new-function951847 -Ref: figure-call-new-function952939 -Node: Extension API Description955001 -Node: Extension API Functions Introduction956643 -Node: General Data Types961977 -Ref: General Data Types-Footnote-1969182 -Node: Memory Allocation Functions969481 -Ref: Memory Allocation Functions-Footnote-1972326 -Node: Constructor Functions972425 -Node: Registration Functions975424 -Node: Extension Functions976109 -Node: Exit Callback Functions981322 -Node: Extension Version String982572 -Node: Input Parsers983235 -Node: Output Wrappers995942 -Node: Two-way processors1000454 -Node: Printing Messages1002719 -Ref: Printing Messages-Footnote-11003890 -Node: Updating ERRNO1004043 -Node: Requesting Values1004782 -Ref: table-value-types-returned1005519 -Node: Accessing Parameters1006455 -Node: Symbol Table Access1007690 -Node: Symbol table by name1008202 -Node: Symbol table by cookie1009991 -Ref: Symbol table by cookie-Footnote-11014176 -Node: Cached values1014240 -Ref: Cached values-Footnote-11017776 -Node: Array Manipulation1017867 -Ref: Array Manipulation-Footnote-11018958 -Node: Array Data Types1018995 -Ref: Array Data Types-Footnote-11021653 -Node: Array Functions1021745 -Node: Flattening Arrays1026144 -Node: Creating Arrays1033085 -Node: Redirection API1037854 -Node: Extension API Variables1040696 -Node: Extension Versioning1041329 -Ref: gawk-api-version1041766 -Node: Extension API Informational Variables1043494 -Node: Extension API Boilerplate1044558 -Node: Changes from API V11048420 -Node: Finding Extensions1049080 -Node: Extension Example1049639 -Node: Internal File Description1050437 -Node: Internal File Ops1054517 -Ref: Internal File Ops-Footnote-11065917 -Node: Using Internal File Ops1066057 -Ref: Using Internal File Ops-Footnote-11068440 -Node: Extension Samples1068714 -Node: Extension Sample File Functions1070243 -Node: Extension Sample Fnmatch1077892 -Node: Extension Sample Fork1079379 -Node: Extension Sample Inplace1080597 -Node: Extension Sample Ord1083807 -Node: Extension Sample Readdir1084643 -Ref: table-readdir-file-types1085532 -Node: Extension Sample Revout1086337 -Node: Extension Sample Rev2way1086926 -Node: Extension Sample Read write array1087666 -Node: Extension Sample Readfile1089608 -Node: Extension Sample Time1090703 -Node: Extension Sample API Tests1092051 -Node: gawkextlib1092543 -Node: Extension summary1094990 -Node: Extension Exercises1098692 -Node: Language History1100190 -Node: V7/SVR3.11101846 -Node: SVR41103998 -Node: POSIX1105432 -Node: BTL1106811 -Node: POSIX/GNU1107540 -Node: Feature History1113318 -Node: Common Extensions1127629 -Node: Ranges and Locales1128912 -Ref: Ranges and Locales-Footnote-11133528 -Ref: Ranges and Locales-Footnote-21133555 -Ref: Ranges and Locales-Footnote-31133790 -Node: Contributors1134011 -Node: History summary1139571 -Node: Installation1140951 -Node: Gawk Distribution1141895 -Node: Getting1142379 -Node: Extracting1143340 -Node: Distribution contents1144978 -Node: Unix Installation1151320 -Node: Quick Installation1152002 -Node: Shell Startup Files1154416 -Node: Additional Configuration Options1155505 -Node: Configuration Philosophy1157494 -Node: Non-Unix Installation1159863 -Node: PC Installation1160323 -Node: PC Binary Installation1161161 -Node: PC Compiling1161596 -Node: PC Using1162713 -Node: Cygwin1165758 -Node: MSYS1166528 -Node: VMS Installation1167029 -Node: VMS Compilation1167820 -Ref: VMS Compilation-Footnote-11169049 -Node: VMS Dynamic Extensions1169107 -Node: VMS Installation Details1170792 -Node: VMS Running1173045 -Node: VMS GNV1177324 -Node: VMS Old Gawk1178059 -Node: Bugs1178530 -Node: Bug address1179193 -Node: Usenet1181590 -Node: Maintainers1182367 -Node: Other Versions1183743 -Node: Installation summary1190327 -Node: Notes1191362 -Node: Compatibility Mode1192227 -Node: Additions1193009 -Node: Accessing The Source1193934 -Node: Adding Code1195369 -Node: New Ports1201587 -Node: Derived Files1206075 -Ref: Derived Files-Footnote-11211560 -Ref: Derived Files-Footnote-21211595 -Ref: Derived Files-Footnote-31212193 -Node: Future Extensions1212307 -Node: Implementation Limitations1212965 -Node: Extension Design1214148 -Node: Old Extension Problems1215302 -Ref: Old Extension Problems-Footnote-11216820 -Node: Extension New Mechanism Goals1216877 -Ref: Extension New Mechanism Goals-Footnote-11220241 -Node: Extension Other Design Decisions1220430 -Node: Extension Future Growth1222543 -Node: Old Extension Mechanism1223379 -Node: Notes summary1225142 -Node: Basic Concepts1226324 -Node: Basic High Level1227005 -Ref: figure-general-flow1227287 -Ref: figure-process-flow1227972 -Ref: Basic High Level-Footnote-11231273 -Node: Basic Data Typing1231458 -Node: Glossary1234786 -Node: Copying1266733 -Node: GNU Free Documentation License1304272 -Node: Index1329390 +Node: Foreword343279 +Node: Foreword447721 +Node: Preface49253 +Ref: Preface-Footnote-152112 +Ref: Preface-Footnote-252219 +Ref: Preface-Footnote-352453 +Node: History52595 +Node: Names54947 +Ref: Names-Footnote-156041 +Node: This Manual56188 +Ref: This Manual-Footnote-162673 +Node: Conventions62773 +Node: Manual History65127 +Ref: Manual History-Footnote-168122 +Ref: Manual History-Footnote-268163 +Node: How To Contribute68237 +Node: Acknowledgments68888 +Node: Getting Started73774 +Node: Running gawk76213 +Node: One-shot77403 +Node: Read Terminal78666 +Node: Long80659 +Node: Executable Scripts82172 +Ref: Executable Scripts-Footnote-184967 +Node: Comments85070 +Node: Quoting87554 +Node: DOS Quoting93071 +Node: Sample Data Files95126 +Node: Very Simple97721 +Node: Two Rules102623 +Node: More Complex104508 +Node: Statements/Lines107374 +Ref: Statements/Lines-Footnote-1111833 +Node: Other Features112098 +Node: When113034 +Ref: When-Footnote-1114788 +Node: Intro Summary114853 +Node: Invoking Gawk115737 +Node: Command Line117251 +Node: Options118049 +Ref: Options-Footnote-1134668 +Ref: Options-Footnote-2134898 +Node: Other Arguments134923 +Node: Naming Standard Input137870 +Node: Environment Variables138963 +Node: AWKPATH Variable139521 +Ref: AWKPATH Variable-Footnote-1142932 +Ref: AWKPATH Variable-Footnote-2142966 +Node: AWKLIBPATH Variable143227 +Node: Other Environment Variables144484 +Node: Exit Status148305 +Node: Include Files148982 +Node: Loading Shared Libraries152577 +Node: Obsolete154005 +Node: Undocumented154697 +Node: Invoking Summary154994 +Node: Regexp156654 +Node: Regexp Usage158108 +Node: Escape Sequences160145 +Node: Regexp Operators166377 +Ref: Regexp Operators-Footnote-1173793 +Ref: Regexp Operators-Footnote-2173940 +Node: Bracket Expressions174038 +Ref: table-char-classes176514 +Node: Leftmost Longest179651 +Node: Computed Regexps180954 +Node: GNU Regexp Operators184381 +Node: Case-sensitivity188060 +Ref: Case-sensitivity-Footnote-1190947 +Ref: Case-sensitivity-Footnote-2191182 +Node: Regexp Summary191290 +Node: Reading Files192756 +Node: Records195025 +Node: awk split records195758 +Node: gawk split records200689 +Ref: gawk split records-Footnote-1205229 +Node: Fields205266 +Node: Nonconstant Fields208007 +Ref: Nonconstant Fields-Footnote-1210243 +Node: Changing Fields210447 +Node: Field Separators216375 +Node: Default Field Splitting219073 +Node: Regexp Field Splitting220191 +Node: Single Character Fields223544 +Node: Command Line Field Separator224604 +Node: Full Line Fields227822 +Ref: Full Line Fields-Footnote-1229344 +Ref: Full Line Fields-Footnote-2229390 +Node: Field Splitting Summary229491 +Node: Constant Size231565 +Node: Fixed width data232297 +Node: Skipping intervening235764 +Node: Allowing trailing data236562 +Node: Fields with fixed data237599 +Node: Splitting By Content239117 +Ref: Splitting By Content-Footnote-1242767 +Node: Testing field creation242930 +Node: Multiple Line244551 +Ref: Multiple Line-Footnote-1250435 +Node: Getline250614 +Node: Plain Getline253083 +Node: Getline/Variable255724 +Node: Getline/File256875 +Node: Getline/Variable/File258263 +Ref: Getline/Variable/File-Footnote-1259868 +Node: Getline/Pipe259956 +Node: Getline/Variable/Pipe262663 +Node: Getline/Coprocess263798 +Node: Getline/Variable/Coprocess265065 +Node: Getline Notes265807 +Node: Getline Summary268604 +Ref: table-getline-variants269028 +Node: Read Timeout269776 +Ref: Read Timeout-Footnote-1273682 +Node: Retrying Input273740 +Node: Command-line directories274939 +Node: Input Summary275845 +Node: Input Exercises279017 +Node: Printing279745 +Node: Print281579 +Node: Print Examples283036 +Node: Output Separators285816 +Node: OFMT287833 +Node: Printf289189 +Node: Basic Printf289974 +Node: Control Letters291548 +Node: Format Modifiers295536 +Node: Printf Examples301551 +Node: Redirection304037 +Node: Special FD310878 +Ref: Special FD-Footnote-1314046 +Node: Special Files314120 +Node: Other Inherited Files314737 +Node: Special Network315738 +Node: Special Caveats316598 +Node: Close Files And Pipes317547 +Ref: table-close-pipe-return-values324454 +Ref: Close Files And Pipes-Footnote-1325237 +Ref: Close Files And Pipes-Footnote-2325385 +Node: Nonfatal325537 +Node: Output Summary327862 +Node: Output Exercises329084 +Node: Expressions329763 +Node: Values330951 +Node: Constants331629 +Node: Scalar Constants332320 +Ref: Scalar Constants-Footnote-1333184 +Node: Nondecimal-numbers333434 +Node: Regexp Constants336435 +Node: Using Constant Regexps336961 +Node: Standard Regexp Constants337583 +Node: Strong Regexp Constants340771 +Node: Variables343729 +Node: Using Variables344386 +Node: Assignment Options346296 +Node: Conversion348169 +Node: Strings And Numbers348693 +Ref: Strings And Numbers-Footnote-1351756 +Node: Locale influences conversions351865 +Ref: table-locale-affects354623 +Node: All Operators355241 +Node: Arithmetic Ops355870 +Node: Concatenation358376 +Ref: Concatenation-Footnote-1361223 +Node: Assignment Ops361330 +Ref: table-assign-ops366321 +Node: Increment Ops367634 +Node: Truth Values and Conditions371094 +Node: Truth Values372168 +Node: Typing and Comparison373216 +Node: Variable Typing374036 +Ref: Variable Typing-Footnote-1380499 +Ref: Variable Typing-Footnote-2380571 +Node: Comparison Operators380648 +Ref: table-relational-ops381067 +Node: POSIX String Comparison384562 +Ref: POSIX String Comparison-Footnote-1386257 +Ref: POSIX String Comparison-Footnote-2386396 +Node: Boolean Ops386480 +Ref: Boolean Ops-Footnote-1390962 +Node: Conditional Exp391054 +Node: Function Calls392790 +Node: Precedence396667 +Node: Locales400326 +Node: Expressions Summary401958 +Node: Patterns and Actions404531 +Node: Pattern Overview405651 +Node: Regexp Patterns407328 +Node: Expression Patterns407870 +Node: Ranges411651 +Node: BEGIN/END414759 +Node: Using BEGIN/END415520 +Ref: Using BEGIN/END-Footnote-1418256 +Node: I/O And BEGIN/END418362 +Node: BEGINFILE/ENDFILE420676 +Node: Empty423583 +Node: Using Shell Variables423900 +Node: Action Overview426174 +Node: Statements428499 +Node: If Statement430347 +Node: While Statement431842 +Node: Do Statement433870 +Node: For Statement435018 +Node: Switch Statement438176 +Node: Break Statement440562 +Node: Continue Statement442654 +Node: Next Statement444481 +Node: Nextfile Statement446864 +Node: Exit Statement449516 +Node: Built-in Variables451919 +Node: User-modified453052 +Node: Auto-set460819 +Ref: Auto-set-Footnote-1475547 +Ref: Auto-set-Footnote-2475753 +Node: ARGC and ARGV475809 +Node: Pattern Action Summary480022 +Node: Arrays482452 +Node: Array Basics483781 +Node: Array Intro484625 +Ref: figure-array-elements486600 +Ref: Array Intro-Footnote-1489304 +Node: Reference to Elements489432 +Node: Assigning Elements491896 +Node: Array Example492387 +Node: Scanning an Array494146 +Node: Controlling Scanning497168 +Ref: Controlling Scanning-Footnote-1502567 +Node: Numeric Array Subscripts502883 +Node: Uninitialized Subscripts505067 +Node: Delete506686 +Ref: Delete-Footnote-1509438 +Node: Multidimensional509495 +Node: Multiscanning512590 +Node: Arrays of Arrays514181 +Node: Arrays Summary518948 +Node: Functions521041 +Node: Built-in522079 +Node: Calling Built-in523160 +Node: Numeric Functions525156 +Ref: Numeric Functions-Footnote-1529184 +Ref: Numeric Functions-Footnote-2529541 +Ref: Numeric Functions-Footnote-3529589 +Node: String Functions529861 +Ref: String Functions-Footnote-1553519 +Ref: String Functions-Footnote-2553647 +Ref: String Functions-Footnote-3553895 +Node: Gory Details553982 +Ref: table-sub-escapes555773 +Ref: table-sub-proposed557292 +Ref: table-posix-sub558655 +Ref: table-gensub-escapes560196 +Ref: Gory Details-Footnote-1561019 +Node: I/O Functions561173 +Ref: table-system-return-values567755 +Ref: I/O Functions-Footnote-1569735 +Ref: I/O Functions-Footnote-2569883 +Node: Time Functions570003 +Ref: Time Functions-Footnote-1580670 +Ref: Time Functions-Footnote-2580738 +Ref: Time Functions-Footnote-3580896 +Ref: Time Functions-Footnote-4581007 +Ref: Time Functions-Footnote-5581119 +Ref: Time Functions-Footnote-6581346 +Node: Bitwise Functions581612 +Ref: table-bitwise-ops582206 +Ref: Bitwise Functions-Footnote-1588239 +Ref: Bitwise Functions-Footnote-2588412 +Node: Type Functions588603 +Node: I18N Functions591278 +Node: User-defined592929 +Node: Definition Syntax593734 +Ref: Definition Syntax-Footnote-1599421 +Node: Function Example599492 +Ref: Function Example-Footnote-1602414 +Node: Function Caveats602436 +Node: Calling A Function602954 +Node: Variable Scope603912 +Node: Pass By Value/Reference606906 +Node: Return Statement610405 +Node: Dynamic Typing613384 +Node: Indirect Calls614314 +Ref: Indirect Calls-Footnote-1624565 +Node: Functions Summary624693 +Node: Library Functions627398 +Ref: Library Functions-Footnote-1631005 +Ref: Library Functions-Footnote-2631148 +Node: Library Names631319 +Ref: Library Names-Footnote-1634779 +Ref: Library Names-Footnote-2635002 +Node: General Functions635088 +Node: Strtonum Function636191 +Node: Assert Function639213 +Node: Round Function642539 +Node: Cliff Random Function644080 +Node: Ordinal Functions645096 +Ref: Ordinal Functions-Footnote-1648159 +Ref: Ordinal Functions-Footnote-2648411 +Node: Join Function648621 +Ref: Join Function-Footnote-1650391 +Node: Getlocaltime Function650591 +Node: Readfile Function654333 +Node: Shell Quoting656305 +Node: Data File Management657706 +Node: Filetrans Function658338 +Node: Rewind Function662434 +Node: File Checking664340 +Ref: File Checking-Footnote-1665674 +Node: Empty Files665875 +Node: Ignoring Assigns667854 +Node: Getopt Function669404 +Ref: Getopt Function-Footnote-1680873 +Node: Passwd Functions681073 +Ref: Passwd Functions-Footnote-1689912 +Node: Group Functions690000 +Ref: Group Functions-Footnote-1697898 +Node: Walking Arrays698105 +Node: Library Functions Summary701113 +Node: Library Exercises702519 +Node: Sample Programs702984 +Node: Running Examples703754 +Node: Clones704482 +Node: Cut Program705706 +Node: Egrep Program715635 +Ref: Egrep Program-Footnote-1723147 +Node: Id Program723257 +Node: Split Program726937 +Ref: Split Program-Footnote-1730396 +Node: Tee Program730525 +Node: Uniq Program733315 +Node: Wc Program740741 +Ref: Wc Program-Footnote-1744996 +Node: Miscellaneous Programs745090 +Node: Dupword Program746303 +Node: Alarm Program748333 +Node: Translate Program753188 +Ref: Translate Program-Footnote-1757753 +Node: Labels Program758023 +Ref: Labels Program-Footnote-1761374 +Node: Word Sorting761458 +Node: History Sorting765530 +Node: Extract Program767365 +Node: Simple Sed774894 +Node: Igawk Program777968 +Ref: Igawk Program-Footnote-1792299 +Ref: Igawk Program-Footnote-2792501 +Ref: Igawk Program-Footnote-3792623 +Node: Anagram Program792738 +Node: Signature Program795800 +Node: Programs Summary797047 +Node: Programs Exercises798261 +Ref: Programs Exercises-Footnote-1802390 +Node: Advanced Features802481 +Node: Nondecimal Data804471 +Node: Array Sorting806062 +Node: Controlling Array Traversal806762 +Ref: Controlling Array Traversal-Footnote-1815129 +Node: Array Sorting Functions815247 +Ref: Array Sorting Functions-Footnote-1820338 +Node: Two-way I/O820534 +Ref: Two-way I/O-Footnote-1827085 +Ref: Two-way I/O-Footnote-2827272 +Node: TCP/IP Networking827354 +Node: Profiling830472 +Ref: Profiling-Footnote-1839144 +Node: Advanced Features Summary839467 +Node: Internationalization841311 +Node: I18N and L10N842791 +Node: Explaining gettext843478 +Ref: Explaining gettext-Footnote-1849370 +Ref: Explaining gettext-Footnote-2849555 +Node: Programmer i18n849720 +Ref: Programmer i18n-Footnote-1854669 +Node: Translator i18n854718 +Node: String Extraction855512 +Ref: String Extraction-Footnote-1856644 +Node: Printf Ordering856730 +Ref: Printf Ordering-Footnote-1859516 +Node: I18N Portability859580 +Ref: I18N Portability-Footnote-1862036 +Node: I18N Example862099 +Ref: I18N Example-Footnote-1864905 +Node: Gawk I18N864978 +Node: I18N Summary865623 +Node: Debugger866964 +Node: Debugging867986 +Node: Debugging Concepts868427 +Node: Debugging Terms870236 +Node: Awk Debugging872811 +Node: Sample Debugging Session873717 +Node: Debugger Invocation874251 +Node: Finding The Bug875637 +Node: List of Debugger Commands882115 +Node: Breakpoint Control883448 +Node: Debugger Execution Control887142 +Node: Viewing And Changing Data890504 +Node: Execution Stack893878 +Node: Debugger Info895515 +Node: Miscellaneous Debugger Commands899586 +Node: Readline Support904674 +Node: Limitations905570 +Node: Debugging Summary907679 +Node: Arbitrary Precision Arithmetic908958 +Node: Computer Arithmetic910443 +Ref: table-numeric-ranges914034 +Ref: Computer Arithmetic-Footnote-1914756 +Node: Math Definitions914813 +Ref: table-ieee-formats918127 +Ref: Math Definitions-Footnote-1918730 +Node: MPFR features918835 +Node: FP Math Caution920552 +Ref: FP Math Caution-Footnote-1921624 +Node: Inexactness of computations921993 +Node: Inexact representation922953 +Node: Comparing FP Values924313 +Node: Errors accumulate925395 +Node: Getting Accuracy926828 +Node: Try To Round929538 +Node: Setting precision930437 +Ref: table-predefined-precision-strings931134 +Node: Setting the rounding mode932964 +Ref: table-gawk-rounding-modes933338 +Ref: Setting the rounding mode-Footnote-1936746 +Node: Arbitrary Precision Integers936925 +Ref: Arbitrary Precision Integers-Footnote-1940100 +Node: Checking for MPFR940249 +Node: POSIX Floating Point Problems941546 +Ref: POSIX Floating Point Problems-Footnote-1945417 +Node: Floating point summary945455 +Node: Dynamic Extensions947645 +Node: Extension Intro949198 +Node: Plugin License950464 +Node: Extension Mechanism Outline951261 +Ref: figure-load-extension951700 +Ref: figure-register-new-function953265 +Ref: figure-call-new-function954357 +Node: Extension API Description956419 +Node: Extension API Functions Introduction958061 +Node: General Data Types963395 +Ref: General Data Types-Footnote-1970600 +Node: Memory Allocation Functions970899 +Ref: Memory Allocation Functions-Footnote-1973744 +Node: Constructor Functions973843 +Node: Registration Functions976842 +Node: Extension Functions977527 +Node: Exit Callback Functions982740 +Node: Extension Version String983990 +Node: Input Parsers984653 +Node: Output Wrappers997360 +Node: Two-way processors1001872 +Node: Printing Messages1004137 +Ref: Printing Messages-Footnote-11005308 +Node: Updating ERRNO1005461 +Node: Requesting Values1006200 +Ref: table-value-types-returned1006937 +Node: Accessing Parameters1007873 +Node: Symbol Table Access1009108 +Node: Symbol table by name1009620 +Node: Symbol table by cookie1011409 +Ref: Symbol table by cookie-Footnote-11015594 +Node: Cached values1015658 +Ref: Cached values-Footnote-11019194 +Node: Array Manipulation1019285 +Ref: Array Manipulation-Footnote-11020376 +Node: Array Data Types1020413 +Ref: Array Data Types-Footnote-11023071 +Node: Array Functions1023163 +Node: Flattening Arrays1027562 +Node: Creating Arrays1034503 +Node: Redirection API1039272 +Node: Extension API Variables1042114 +Node: Extension Versioning1042747 +Ref: gawk-api-version1043184 +Node: Extension API Informational Variables1044912 +Node: Extension API Boilerplate1045976 +Node: Changes from API V11049838 +Node: Finding Extensions1050498 +Node: Extension Example1051057 +Node: Internal File Description1051855 +Node: Internal File Ops1055935 +Ref: Internal File Ops-Footnote-11067335 +Node: Using Internal File Ops1067475 +Ref: Using Internal File Ops-Footnote-11069858 +Node: Extension Samples1070132 +Node: Extension Sample File Functions1071661 +Node: Extension Sample Fnmatch1079310 +Node: Extension Sample Fork1080797 +Node: Extension Sample Inplace1082015 +Node: Extension Sample Ord1085225 +Node: Extension Sample Readdir1086061 +Ref: table-readdir-file-types1086950 +Node: Extension Sample Revout1087755 +Node: Extension Sample Rev2way1088344 +Node: Extension Sample Read write array1089084 +Node: Extension Sample Readfile1091026 +Node: Extension Sample Time1092121 +Node: Extension Sample API Tests1093469 +Node: gawkextlib1093961 +Node: Extension summary1096408 +Node: Extension Exercises1100110 +Node: Language History1101608 +Node: V7/SVR3.11103264 +Node: SVR41105416 +Node: POSIX1106850 +Node: BTL1108229 +Node: POSIX/GNU1108958 +Node: Feature History1114736 +Node: Common Extensions1129047 +Node: Ranges and Locales1130330 +Ref: Ranges and Locales-Footnote-11134946 +Ref: Ranges and Locales-Footnote-21134973 +Ref: Ranges and Locales-Footnote-31135208 +Node: Contributors1135429 +Node: History summary1140989 +Node: Installation1142369 +Node: Gawk Distribution1143313 +Node: Getting1143797 +Node: Extracting1144758 +Node: Distribution contents1146396 +Node: Unix Installation1152738 +Node: Quick Installation1153420 +Node: Shell Startup Files1155834 +Node: Additional Configuration Options1156923 +Node: Configuration Philosophy1158912 +Node: Non-Unix Installation1161281 +Node: PC Installation1161741 +Node: PC Binary Installation1162579 +Node: PC Compiling1163014 +Node: PC Using1164131 +Node: Cygwin1167176 +Node: MSYS1167946 +Node: VMS Installation1168447 +Node: VMS Compilation1169238 +Ref: VMS Compilation-Footnote-11170467 +Node: VMS Dynamic Extensions1170525 +Node: VMS Installation Details1172210 +Node: VMS Running1174463 +Node: VMS GNV1178742 +Node: VMS Old Gawk1179477 +Node: Bugs1179948 +Node: Bug address1180611 +Node: Usenet1183008 +Node: Maintainers1183785 +Node: Other Versions1185161 +Node: Installation summary1191745 +Node: Notes1192780 +Node: Compatibility Mode1193645 +Node: Additions1194427 +Node: Accessing The Source1195352 +Node: Adding Code1196787 +Node: New Ports1203005 +Node: Derived Files1207493 +Ref: Derived Files-Footnote-11212978 +Ref: Derived Files-Footnote-21213013 +Ref: Derived Files-Footnote-31213611 +Node: Future Extensions1213725 +Node: Implementation Limitations1214383 +Node: Extension Design1215566 +Node: Old Extension Problems1216720 +Ref: Old Extension Problems-Footnote-11218238 +Node: Extension New Mechanism Goals1218295 +Ref: Extension New Mechanism Goals-Footnote-11221659 +Node: Extension Other Design Decisions1221848 +Node: Extension Future Growth1223961 +Node: Old Extension Mechanism1224797 +Node: Notes summary1226560 +Node: Basic Concepts1227742 +Node: Basic High Level1228423 +Ref: figure-general-flow1228705 +Ref: figure-process-flow1229390 +Ref: Basic High Level-Footnote-11232691 +Node: Basic Data Typing1232876 +Node: Glossary1236204 +Node: Copying1268151 +Node: GNU Free Documentation License1305690 +Node: Index1330808 End Tag Table |