diff options
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1171 | ||||
-rw-r--r-- | doc/gawk.texi | 55 | ||||
-rw-r--r-- | doc/gawktexi.in | 26 |
4 files changed, 684 insertions, 572 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 00f83725..9ae94d1f 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2014-06-18 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Split 6.1.4 into subsections. Other minor fixes. + 2014-06-17 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Finish adding exerices. diff --git a/doc/gawk.info b/doc/gawk.info index d65c1276..f81c5f36 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -266,6 +266,9 @@ texts being (a) (see below), and with the Back-Cover Texts being (b) This is an advanced method of input. * Conversion:: The conversion of strings to numbers and vice versa. +* Strings And Numbers:: How `awk' Converts Between + Strings And Numbers. +* Locale influences conversions:: How the locale may affect conversions. * All Operators:: `gawk''s operators. * Arithmetic Ops:: Arithmetic operations (`+', `-', etc.) @@ -7461,6 +7464,22 @@ File: gawk.info, Node: Conversion, Prev: Variables, Up: Values 6.1.4 Conversion of Strings and Numbers --------------------------------------- +Number to string and string to number conversion are generally +straightforward. There can be subtleties to be aware of; this minor +node discusses this important facet of `awk'. + +* Menu: + +* Strings And Numbers:: How `awk' Converts Between Strings And + Numbers. +* Locale influences conversions:: How the locale may affect conversions. + + +File: gawk.info, Node: Strings And Numbers, Next: Locale influences conversions, Up: Conversion + +6.1.4.1 How `awk' Converts Between Strings And Numbers +...................................................... + Strings are converted to numbers and numbers are converted to strings, if the context of the `awk' program demands it. For example, if the value of either `foo' or `bar' in the expression `foo + bar' happens to @@ -7510,6 +7529,8 @@ value of `CONVFMT' may be. Given the following code fragment: `b' has the value `"12"', not `"12.00"'. (d.c.) + Pre-POSIX `awk' Used `OFMT' For String Conversion + Prior to the POSIX standard, `awk' used the value of `OFMT' for converting numbers to strings. `OFMT' specifies the output format to use when printing numbers with `print'. `CONVFMT' was introduced in @@ -7519,8 +7540,19 @@ printing. Both `CONVFMT' and `OFMT' have the same default value: change their behavior. *Note Print::, for more information on the `print' statement. - Where you are can matter when it comes to converting between numbers -and strings. The local character set and language--the "locale"--can + ---------- Footnotes ---------- + + (1) Pathological cases can require up to 752 digits (!), but we +doubt that you need to worry about this. + + +File: gawk.info, Node: Locale influences conversions, Prev: Strings And Numbers, Up: Conversion + +6.1.4.2 Locales Can Influence Conversion +........................................ + +Where you are can matter when it comes to converting between numbers and +strings. The local character set and language--the "locale"--can affect numeric formats. In particular, for `awk' programs, it affects the decimal point character and the thousands-separator character. The `"C"' locale, and most English-language locales, use the period @@ -7582,11 +7614,6 @@ representation can have an unusual but important effect on the way `gawk' converts some special string values to numbers. The details are presented in *note POSIX Floating Point Problems::. - ---------- Footnotes ---------- - - (1) Pathological cases can require up to 752 digits (!), but we -doubt that you need to worry about this. - File: gawk.info, Node: All Operators, Next: Truth Values and Conditions, Prev: Values, Up: Expressions @@ -8725,6 +8752,7 @@ File: gawk.info, Node: Expressions Summary, Prev: Locales, Up: Expressions * Numbers are automatically converted to strings, and strings to numbers, as needed by `awk'. Numeric values are converted as if they were formatted with `sprintf()' using the format in `CONVFMT'. + Locales can influence the conversions. * `awk' provides the usual arithmetic operators (addition, subtraction, multiplication, division, modulus), and unary plus @@ -21989,7 +22017,8 @@ integer arithmetic using GMP arbitrary precision integers. Any number that looks like an integer in a source or data file is stored as an arbitrary precision integer. The size of the integer is limited only by the available memory. For example, the following computes 5^4^3^2, -the result of which is beyond the limits of ordinary `gawk' numbers: +the result of which is beyond the limits of ordinary hardware +double-precision floating point values: $ gawk -M 'BEGIN { > x = 5^4^3^2 @@ -22077,8 +22106,8 @@ These features are: Number" (NaN), positive Infinity ("inf") and negative Infinity ("-inf"). In particular, the format for these values is as specified by the ISO 1999 C standard, which ignores case and can - allow machine-dependent additional characters after the `nan' and - allow either `inf' or `infinity'. + allow implementation-dependent additional characters after the + `nan' and allow either `inf' or `infinity'. The first problem is that both of these are clear changes to historical practice: @@ -31310,7 +31339,7 @@ Index * awk, implementations, limits: Getline Notes. (line 14) * awk, invoking: Command Line. (line 6) * awk, new vs. old: Names. (line 6) -* awk, new vs. old, OFMT variable: Conversion. (line 55) +* awk, new vs. old, OFMT variable: Strings And Numbers. (line 57) * awk, POSIX and: Preface. (line 23) * awk, POSIX and, See Also POSIX awk: Preface. (line 23) * awk, regexp constants and: Comparison Operators. @@ -31669,11 +31698,11 @@ Index (line 31) * converting, dates to timestamps: Time Functions. (line 76) * converting, numbers to strings <1>: Bitwise Functions. (line 109) -* converting, numbers to strings: Conversion. (line 6) +* converting, numbers to strings: Strings And Numbers. (line 6) * converting, strings to numbers <1>: Bitwise Functions. (line 109) -* converting, strings to numbers: Conversion. (line 6) +* converting, strings to numbers: Strings And Numbers. (line 6) * CONVFMT variable <1>: User-modified. (line 30) -* CONVFMT variable: Conversion. (line 29) +* CONVFMT variable: Strings And Numbers. (line 29) * CONVFMT variable, and array subscripts: Numeric Array Subscripts. (line 6) * cookie: Glossary. (line 149) @@ -31714,7 +31743,7 @@ Index (line 131) * dark corner, command-line arguments: Assignment Options. (line 43) * dark corner, continue statement: Continue Statement. (line 43) -* dark corner, CONVFMT variable: Conversion. (line 40) +* dark corner, CONVFMT variable: Strings And Numbers. (line 40) * dark corner, escape sequences: Other Arguments. (line 31) * dark corner, escape sequences, for metacharacters: Escape Sequences. (line 134) @@ -31730,7 +31759,8 @@ Index * dark corner, input files: awk split records. (line 110) * dark corner, invoking awk: Command Line. (line 16) * dark corner, length() function: String Functions. (line 183) -* dark corner, locale's decimal point character: Conversion. (line 75) +* dark corner, locale's decimal point character: Locale influences conversions. + (line 17) * dark corner, multiline records: Multiple Line. (line 35) * dark corner, NF variable, decrementing: Changing Fields. (line 107) * dark corner, OFMT variable: OFMT. (line 27) @@ -32906,7 +32936,8 @@ Index * null strings, and deleting array elements: Delete. (line 27) * null strings, as array subscripts: Uninitialized Subscripts. (line 43) -* null strings, converting numbers to strings: Conversion. (line 21) +* null strings, converting numbers to strings: Strings And Numbers. + (line 21) * null strings, matching: Gory Details. (line 164) * number as string of bits: Bitwise Functions. (line 109) * number of array elements: String Functions. (line 197) @@ -32919,7 +32950,7 @@ Index * numbers, Cliff random: Cliff Random Function. (line 6) * numbers, converting <1>: Bitwise Functions. (line 109) -* numbers, converting: Conversion. (line 6) +* numbers, converting: Strings And Numbers. (line 6) * numbers, converting, to strings: User-modified. (line 30) * numbers, hexadecimal: Nondecimal-numbers. (line 6) * numbers, octal: Nondecimal-numbers. (line 6) @@ -32934,7 +32965,7 @@ Index * octal numbers: Nondecimal-numbers. (line 6) * octal values, enabling interpretation of: Options. (line 211) * OFMT variable <1>: User-modified. (line 105) -* OFMT variable <2>: Conversion. (line 55) +* OFMT variable <2>: Strings And Numbers. (line 57) * OFMT variable: OFMT. (line 15) * OFMT variable, POSIX awk and: OFMT. (line 27) * OFS variable <1>: User-modified. (line 114) @@ -33071,7 +33102,7 @@ Index * portability, gettext library and: Explaining gettext. (line 11) * portability, internationalization and: I18N Portability. (line 6) * portability, length() function: String Functions. (line 176) -* portability, new awk vs. old awk: Conversion. (line 55) +* portability, new awk vs. old awk: Strings And Numbers. (line 57) * portability, next statement in user-defined functions: Pass By Value/Reference. (line 91) * portability, NF variable, decrementing: Changing Fields. (line 115) @@ -33119,7 +33150,7 @@ Index * POSIX awk, interval expressions in: Regexp Operators. (line 136) * POSIX awk, next/nextfile statements and: Next Statement. (line 45) * POSIX awk, numeric strings and: Variable Typing. (line 6) -* POSIX awk, OFMT variable and <1>: Conversion. (line 55) +* POSIX awk, OFMT variable and <1>: Strings And Numbers. (line 57) * POSIX awk, OFMT variable and: OFMT. (line 27) * POSIX awk, period (.), using: Regexp Operators. (line 51) * POSIX awk, printf format strings and: Format Modifiers. (line 159) @@ -33496,6 +33527,8 @@ Index * sidebar, Operator Evaluation Order: Increment Ops. (line 58) * sidebar, Piping into sh: Redirection. (line 140) * sidebar, Portability Issues with #!: Executable Scripts. (line 31) +* sidebar, Pre-POSIX awk Used OFMT For String Conversion: Strings And Numbers. + (line 55) * sidebar, Recipe For A Programming Language: History. (line 6) * sidebar, RS = "\0" Is Not Portable: gawk split records. (line 63) * sidebar, So Why Does gawk have BEGINFILE and ENDFILE?: Filetrans Function. @@ -33610,7 +33643,7 @@ Index * string-translation functions: I18N Functions. (line 6) * strings splitting, example: String Functions. (line 333) * strings, converting <1>: Bitwise Functions. (line 109) -* strings, converting: Conversion. (line 6) +* strings, converting: Strings And Numbers. (line 6) * strings, converting letter case: String Functions. (line 520) * strings, converting, numbers to: User-modified. (line 30) * strings, empty, See null strings: awk split records. (line 114) @@ -33746,7 +33779,7 @@ Index * Trueman, David: History. (line 30) * trunc-mod operation: Arithmetic Ops. (line 66) * truth values: Truth Values. (line 6) -* type conversion: Conversion. (line 21) +* type conversion: Strings And Numbers. (line 21) * u debugger command (alias for until): Debugger Execution Control. (line 83) * unassigned array elements: Reference to Elements. @@ -33914,550 +33947,552 @@ Index Tag Table: Node: Top1292 -Node: Foreword41827 -Node: Preface46172 -Ref: Preface-Footnote-149319 -Ref: Preface-Footnote-249426 -Node: History49658 -Node: Names52032 -Ref: Names-Footnote-153496 -Node: This Manual53569 -Ref: This Manual-Footnote-159348 -Node: Conventions59448 -Node: Manual History61604 -Ref: Manual History-Footnote-165043 -Ref: Manual History-Footnote-265084 -Node: How To Contribute65158 -Node: Acknowledgments66397 -Node: Getting Started70546 -Node: Running gawk72980 -Node: One-shot74170 -Node: Read Terminal75395 -Ref: Read Terminal-Footnote-177045 -Ref: Read Terminal-Footnote-277321 -Node: Long77492 -Node: Executable Scripts78868 -Ref: Executable Scripts-Footnote-180701 -Ref: Executable Scripts-Footnote-280803 -Node: Comments81350 -Node: Quoting83823 -Node: DOS Quoting89139 -Node: Sample Data Files89814 -Node: Very Simple92329 -Node: Two Rules96967 -Node: More Complex98861 -Ref: More Complex-Footnote-1101793 -Node: Statements/Lines101878 -Ref: Statements/Lines-Footnote-1106333 -Node: Other Features106598 -Node: When107526 -Node: Intro Summary109696 -Node: Invoking Gawk110462 -Node: Command Line111977 -Node: Options112768 -Ref: Options-Footnote-1128597 -Node: Other Arguments128622 -Node: Naming Standard Input131284 -Node: Environment Variables132378 -Node: AWKPATH Variable132936 -Ref: AWKPATH Variable-Footnote-1135808 -Ref: AWKPATH Variable-Footnote-2135853 -Node: AWKLIBPATH Variable136113 -Node: Other Environment Variables136872 -Node: Exit Status140527 -Node: Include Files141202 -Node: Loading Shared Libraries144780 -Node: Obsolete146164 -Node: Undocumented146861 -Node: Invoking Summary147128 -Node: Regexp148708 -Node: Regexp Usage150158 -Node: Escape Sequences152191 -Node: Regexp Operators157858 -Ref: Regexp Operators-Footnote-1165338 -Ref: Regexp Operators-Footnote-2165485 -Node: Bracket Expressions165583 -Ref: table-char-classes167473 -Node: GNU Regexp Operators169996 -Node: Case-sensitivity173719 -Ref: Case-sensitivity-Footnote-1176611 -Ref: Case-sensitivity-Footnote-2176846 -Node: Leftmost Longest176954 -Node: Computed Regexps178155 -Node: Regexp Summary181527 -Node: Reading Files182998 -Node: Records185090 -Node: awk split records185833 -Node: gawk split records190691 -Ref: gawk split records-Footnote-1195212 -Node: Fields195249 -Ref: Fields-Footnote-1198213 -Node: Nonconstant Fields198299 -Ref: Nonconstant Fields-Footnote-1200529 -Node: Changing Fields200731 -Node: Field Separators206685 -Node: Default Field Splitting209387 -Node: Regexp Field Splitting210504 -Node: Single Character Fields213845 -Node: Command Line Field Separator214904 -Node: Full Line Fields218246 -Ref: Full Line Fields-Footnote-1218754 -Node: Field Splitting Summary218800 -Ref: Field Splitting Summary-Footnote-1221899 -Node: Constant Size222000 -Node: Splitting By Content226607 -Ref: Splitting By Content-Footnote-1230357 -Node: Multiple Line230397 -Ref: Multiple Line-Footnote-1236253 -Node: Getline236432 -Node: Plain Getline238648 -Node: Getline/Variable240743 -Node: Getline/File241890 -Node: Getline/Variable/File243274 -Ref: Getline/Variable/File-Footnote-1244873 -Node: Getline/Pipe244960 -Node: Getline/Variable/Pipe247659 -Node: Getline/Coprocess248766 -Node: Getline/Variable/Coprocess250018 -Node: Getline Notes250755 -Node: Getline Summary253559 -Ref: table-getline-variants253967 -Node: Read Timeout254879 -Ref: Read Timeout-Footnote-1258706 -Node: Command line directories258764 -Node: Input Summary259668 -Node: Input Exercises262805 -Node: Printing263538 -Node: Print265260 -Node: Print Examples266601 -Node: Output Separators269380 -Node: OFMT271396 -Node: Printf272754 -Node: Basic Printf273660 -Node: Control Letters275199 -Node: Format Modifiers279051 -Node: Printf Examples285078 -Node: Redirection287542 -Node: Special Files294514 -Node: Special FD295045 -Ref: Special FD-Footnote-1298669 -Node: Special Network298743 -Node: Special Caveats299593 -Node: Close Files And Pipes300389 -Ref: Close Files And Pipes-Footnote-1307550 -Ref: Close Files And Pipes-Footnote-2307698 -Node: Output Summary307848 -Node: Output exercises308845 -Node: Expressions309525 -Node: Values310710 -Node: Constants311386 -Node: Scalar Constants312066 -Ref: Scalar Constants-Footnote-1312925 -Node: Nondecimal-numbers313175 -Node: Regexp Constants316175 -Node: Using Constant Regexps316650 -Node: Variables319720 -Node: Using Variables320375 -Node: Assignment Options322099 -Node: Conversion323974 -Ref: table-locale-affects329410 -Ref: Conversion-Footnote-1330034 -Node: All Operators330143 -Node: Arithmetic Ops330773 -Node: Concatenation333278 -Ref: Concatenation-Footnote-1336074 -Node: Assignment Ops336194 -Ref: table-assign-ops341177 -Node: Increment Ops342494 -Node: Truth Values and Conditions345932 -Node: Truth Values347015 -Node: Typing and Comparison348064 -Node: Variable Typing348857 -Ref: Variable Typing-Footnote-1352757 -Node: Comparison Operators352879 -Ref: table-relational-ops353289 -Node: POSIX String Comparison356839 -Ref: POSIX String Comparison-Footnote-1357923 -Node: Boolean Ops358061 -Ref: Boolean Ops-Footnote-1362131 -Node: Conditional Exp362222 -Node: Function Calls363949 -Node: Precedence367707 -Node: Locales371376 -Node: Expressions Summary373007 -Node: Patterns and Actions375504 -Node: Pattern Overview376620 -Node: Regexp Patterns378297 -Node: Expression Patterns378840 -Node: Ranges382621 -Node: BEGIN/END385727 -Node: Using BEGIN/END386489 -Ref: Using BEGIN/END-Footnote-1389225 -Node: I/O And BEGIN/END389331 -Node: BEGINFILE/ENDFILE391616 -Node: Empty394547 -Node: Using Shell Variables394864 -Node: Action Overview397147 -Node: Statements399474 -Node: If Statement401322 -Node: While Statement402820 -Node: Do Statement404864 -Node: For Statement406020 -Node: Switch Statement409172 -Node: Break Statement411275 -Node: Continue Statement413330 -Node: Next Statement415123 -Node: Nextfile Statement417513 -Node: Exit Statement420168 -Node: Built-in Variables422572 -Node: User-modified423699 -Ref: User-modified-Footnote-1431388 -Node: Auto-set431450 -Ref: Auto-set-Footnote-1444369 -Ref: Auto-set-Footnote-2444574 -Node: ARGC and ARGV444630 -Node: Pattern Action Summary448484 -Node: Arrays450707 -Node: Array Basics452256 -Node: Array Intro453082 -Ref: figure-array-elements455055 -Node: Reference to Elements457462 -Node: Assigning Elements459735 -Node: Array Example460226 -Node: Scanning an Array461958 -Node: Controlling Scanning464973 -Ref: Controlling Scanning-Footnote-1470146 -Node: Delete470462 -Ref: Delete-Footnote-1473227 -Node: Numeric Array Subscripts473284 -Node: Uninitialized Subscripts475467 -Node: Multidimensional477092 -Node: Multiscanning480185 -Node: Arrays of Arrays481774 -Node: Arrays Summary486437 -Node: Functions488542 -Node: Built-in489415 -Node: Calling Built-in490493 -Node: Numeric Functions492481 -Ref: Numeric Functions-Footnote-1496315 -Ref: Numeric Functions-Footnote-2496672 -Ref: Numeric Functions-Footnote-3496720 -Node: String Functions496989 -Ref: String Functions-Footnote-1520000 -Ref: String Functions-Footnote-2520129 -Ref: String Functions-Footnote-3520377 -Node: Gory Details520464 -Ref: table-sub-escapes522133 -Ref: table-sub-posix-92523487 -Ref: table-sub-proposed524838 -Ref: table-posix-sub526192 -Ref: table-gensub-escapes527737 -Ref: Gory Details-Footnote-1528913 -Ref: Gory Details-Footnote-2528964 -Node: I/O Functions529115 -Ref: I/O Functions-Footnote-1536238 -Node: Time Functions536385 -Ref: Time Functions-Footnote-1546849 -Ref: Time Functions-Footnote-2546917 -Ref: Time Functions-Footnote-3547075 -Ref: Time Functions-Footnote-4547186 -Ref: Time Functions-Footnote-5547298 -Ref: Time Functions-Footnote-6547525 -Node: Bitwise Functions547791 -Ref: table-bitwise-ops548353 -Ref: Bitwise Functions-Footnote-1552598 -Node: Type Functions552782 -Node: I18N Functions553924 -Node: User-defined555569 -Node: Definition Syntax556373 -Ref: Definition Syntax-Footnote-1561298 -Node: Function Example561367 -Ref: Function Example-Footnote-1564011 -Node: Function Caveats564033 -Node: Calling A Function564551 -Node: Variable Scope565506 -Node: Pass By Value/Reference568494 -Node: Return Statement572002 -Node: Dynamic Typing574986 -Node: Indirect Calls575915 -Node: Functions Summary585628 -Node: Library Functions588167 -Ref: Library Functions-Footnote-1591785 -Ref: Library Functions-Footnote-2591928 -Node: Library Names592099 -Ref: Library Names-Footnote-1595572 -Ref: Library Names-Footnote-2595792 -Node: General Functions595878 -Node: Strtonum Function596906 -Node: Assert Function599686 -Node: Round Function603012 -Node: Cliff Random Function604553 -Node: Ordinal Functions605569 -Ref: Ordinal Functions-Footnote-1608646 -Ref: Ordinal Functions-Footnote-2608898 -Node: Join Function609109 -Ref: Join Function-Footnote-1610880 -Node: Getlocaltime Function611080 -Node: Readfile Function614816 -Node: Data File Management616655 -Node: Filetrans Function617287 -Node: Rewind Function621356 -Node: File Checking622743 -Ref: File Checking-Footnote-1623875 -Node: Empty Files624076 -Node: Ignoring Assigns626055 -Node: Getopt Function627609 -Ref: Getopt Function-Footnote-1638912 -Node: Passwd Functions639115 -Ref: Passwd Functions-Footnote-1648094 -Node: Group Functions648182 -Ref: Group Functions-Footnote-1656123 -Node: Walking Arrays656336 -Node: Library Functions Summary657939 -Node: Library exercises659327 -Node: Sample Programs660607 -Node: Running Examples661377 -Node: Clones662105 -Node: Cut Program663329 -Node: Egrep Program673197 -Ref: Egrep Program-Footnote-1681168 -Node: Id Program681278 -Node: Split Program684942 -Ref: Split Program-Footnote-1688480 -Node: Tee Program688608 -Node: Uniq Program691415 -Node: Wc Program698845 -Ref: Wc Program-Footnote-1703110 -Node: Miscellaneous Programs703202 -Node: Dupword Program704415 -Node: Alarm Program706446 -Node: Translate Program711260 -Ref: Translate Program-Footnote-1715651 -Ref: Translate Program-Footnote-2715921 -Node: Labels Program716055 -Ref: Labels Program-Footnote-1719426 -Node: Word Sorting719510 -Node: History Sorting723553 -Node: Extract Program725389 -Node: Simple Sed732925 -Node: Igawk Program735987 -Ref: Igawk Program-Footnote-1750298 -Ref: Igawk Program-Footnote-2750499 -Node: Anagram Program750637 -Node: Signature Program753705 -Node: Programs Summary754952 -Node: Programs Exercises756167 -Node: Advanced Features759818 -Node: Nondecimal Data761766 -Node: Array Sorting763343 -Node: Controlling Array Traversal764040 -Node: Array Sorting Functions772320 -Ref: Array Sorting Functions-Footnote-1776227 -Node: Two-way I/O776421 -Ref: Two-way I/O-Footnote-1781937 -Node: TCP/IP Networking782019 -Node: Profiling784863 -Node: Advanced Features Summary792405 -Node: Internationalization794269 -Node: I18N and L10N795749 -Node: Explaining gettext796435 -Ref: Explaining gettext-Footnote-1801575 -Ref: Explaining gettext-Footnote-2801759 -Node: Programmer i18n801924 -Node: Translator i18n806149 -Node: String Extraction806943 -Ref: String Extraction-Footnote-1807904 -Node: Printf Ordering807990 -Ref: Printf Ordering-Footnote-1810772 -Node: I18N Portability810836 -Ref: I18N Portability-Footnote-1813285 -Node: I18N Example813348 -Ref: I18N Example-Footnote-1816070 -Node: Gawk I18N816142 -Node: I18N Summary816780 -Node: Debugger818119 -Node: Debugging819141 -Node: Debugging Concepts819582 -Node: Debugging Terms821438 -Node: Awk Debugging824035 -Node: Sample Debugging Session824927 -Node: Debugger Invocation825447 -Node: Finding The Bug826780 -Node: List of Debugger Commands833262 -Node: Breakpoint Control834594 -Node: Debugger Execution Control838258 -Node: Viewing And Changing Data841618 -Node: Execution Stack844976 -Node: Debugger Info846489 -Node: Miscellaneous Debugger Commands850483 -Node: Readline Support855667 -Node: Limitations856559 -Node: Debugging Summary858833 -Node: Arbitrary Precision Arithmetic859997 -Node: Computer Arithmetic861326 -Ref: Computer Arithmetic-Footnote-1865713 -Node: Math Definitions865770 -Ref: table-ieee-formats868654 -Node: MPFR features869158 -Node: FP Math Caution870800 -Ref: FP Math Caution-Footnote-1871841 -Node: Inexactness of computations872210 -Node: Inexact representation873158 -Node: Comparing FP Values874513 -Node: Errors accumulate875477 -Node: Getting Accuracy876910 -Node: Try To Round879569 -Node: Setting precision880468 -Ref: table-predefined-precision-strings881150 -Node: Setting the rounding mode882943 -Ref: table-gawk-rounding-modes883307 -Ref: Setting the rounding mode-Footnote-1886761 -Node: Arbitrary Precision Integers886940 -Ref: Arbitrary Precision Integers-Footnote-1889910 -Node: POSIX Floating Point Problems890059 -Ref: POSIX Floating Point Problems-Footnote-1893928 -Node: Floating point summary893966 -Node: Dynamic Extensions896183 -Node: Extension Intro897735 -Node: Plugin License899000 -Node: Extension Mechanism Outline899685 -Ref: figure-load-extension900109 -Ref: figure-load-new-function901594 -Ref: figure-call-new-function902596 -Node: Extension API Description904580 -Node: Extension API Functions Introduction906030 -Node: General Data Types910895 -Ref: General Data Types-Footnote-1916588 -Node: Requesting Values916887 -Ref: table-value-types-returned917624 -Node: Memory Allocation Functions918582 -Ref: Memory Allocation Functions-Footnote-1921329 -Node: Constructor Functions921425 -Node: Registration Functions923183 -Node: Extension Functions923868 -Node: Exit Callback Functions926170 -Node: Extension Version String927419 -Node: Input Parsers928069 -Node: Output Wrappers937872 -Node: Two-way processors942388 -Node: Printing Messages944592 -Ref: Printing Messages-Footnote-1945669 -Node: Updating `ERRNO'945821 -Node: Accessing Parameters946560 -Node: Symbol Table Access947790 -Node: Symbol table by name948304 -Node: Symbol table by cookie950280 -Ref: Symbol table by cookie-Footnote-1954413 -Node: Cached values954476 -Ref: Cached values-Footnote-1957980 -Node: Array Manipulation958071 -Ref: Array Manipulation-Footnote-1959169 -Node: Array Data Types959208 -Ref: Array Data Types-Footnote-1961911 -Node: Array Functions962003 -Node: Flattening Arrays965877 -Node: Creating Arrays972729 -Node: Extension API Variables977460 -Node: Extension Versioning978096 -Node: Extension API Informational Variables979997 -Node: Extension API Boilerplate981083 -Node: Finding Extensions984887 -Node: Extension Example985447 -Node: Internal File Description986177 -Node: Internal File Ops990268 -Ref: Internal File Ops-Footnote-11001700 -Node: Using Internal File Ops1001840 -Ref: Using Internal File Ops-Footnote-11004187 -Node: Extension Samples1004455 -Node: Extension Sample File Functions1005979 -Node: Extension Sample Fnmatch1013547 -Node: Extension Sample Fork1015028 -Node: Extension Sample Inplace1016241 -Node: Extension Sample Ord1017916 -Node: Extension Sample Readdir1018752 -Ref: table-readdir-file-types1019608 -Node: Extension Sample Revout1020407 -Node: Extension Sample Rev2way1020998 -Node: Extension Sample Read write array1021739 -Node: Extension Sample Readfile1023618 -Node: Extension Sample API Tests1024718 -Node: Extension Sample Time1025243 -Node: gawkextlib1026558 -Node: Extension summary1029371 -Node: Extension Exercises1033064 -Node: Language History1033786 -Node: V7/SVR3.11035429 -Node: SVR41037749 -Node: POSIX1039191 -Node: BTL1040577 -Node: POSIX/GNU1041311 -Node: Feature History1046910 -Node: Common Extensions1060040 -Node: Ranges and Locales1061352 -Ref: Ranges and Locales-Footnote-11065969 -Ref: Ranges and Locales-Footnote-21065996 -Ref: Ranges and Locales-Footnote-31066230 -Node: Contributors1066451 -Node: History summary1071913 -Node: Installation1073282 -Node: Gawk Distribution1074233 -Node: Getting1074717 -Node: Extracting1075541 -Node: Distribution contents1077183 -Node: Unix Installation1082900 -Node: Quick Installation1083517 -Node: Additional Configuration Options1085959 -Node: Configuration Philosophy1087697 -Node: Non-Unix Installation1090048 -Node: PC Installation1090506 -Node: PC Binary Installation1091817 -Node: PC Compiling1093665 -Ref: PC Compiling-Footnote-11096664 -Node: PC Testing1096769 -Node: PC Using1097945 -Node: Cygwin1102103 -Node: MSYS1102912 -Node: VMS Installation1103426 -Node: VMS Compilation1104222 -Ref: VMS Compilation-Footnote-11105444 -Node: VMS Dynamic Extensions1105502 -Node: VMS Installation Details1106875 -Node: VMS Running1109127 -Node: VMS GNV1111961 -Node: VMS Old Gawk1112684 -Node: Bugs1113154 -Node: Other Versions1117158 -Node: Installation summary1123413 -Node: Notes1124469 -Node: Compatibility Mode1125334 -Node: Additions1126116 -Node: Accessing The Source1127041 -Node: Adding Code1128477 -Node: New Ports1134655 -Node: Derived Files1139136 -Ref: Derived Files-Footnote-11144217 -Ref: Derived Files-Footnote-21144251 -Ref: Derived Files-Footnote-31144847 -Node: Future Extensions1144961 -Node: Implementation Limitations1145567 -Node: Extension Design1146815 -Node: Old Extension Problems1147969 -Ref: Old Extension Problems-Footnote-11149486 -Node: Extension New Mechanism Goals1149543 -Ref: Extension New Mechanism Goals-Footnote-11152903 -Node: Extension Other Design Decisions1153092 -Node: Extension Future Growth1155198 -Node: Old Extension Mechanism1156034 -Node: Notes summary1157796 -Node: Basic Concepts1158982 -Node: Basic High Level1159663 -Ref: figure-general-flow1159935 -Ref: figure-process-flow1160534 -Ref: Basic High Level-Footnote-11163763 -Node: Basic Data Typing1163948 -Node: Glossary1167276 -Node: Copying1192428 -Node: GNU Free Documentation License1229984 -Node: Index1255120 +Node: Foreword42034 +Node: Preface46379 +Ref: Preface-Footnote-149526 +Ref: Preface-Footnote-249633 +Node: History49865 +Node: Names52239 +Ref: Names-Footnote-153703 +Node: This Manual53776 +Ref: This Manual-Footnote-159555 +Node: Conventions59655 +Node: Manual History61811 +Ref: Manual History-Footnote-165250 +Ref: Manual History-Footnote-265291 +Node: How To Contribute65365 +Node: Acknowledgments66604 +Node: Getting Started70753 +Node: Running gawk73187 +Node: One-shot74377 +Node: Read Terminal75602 +Ref: Read Terminal-Footnote-177252 +Ref: Read Terminal-Footnote-277528 +Node: Long77699 +Node: Executable Scripts79075 +Ref: Executable Scripts-Footnote-180908 +Ref: Executable Scripts-Footnote-281010 +Node: Comments81557 +Node: Quoting84030 +Node: DOS Quoting89346 +Node: Sample Data Files90021 +Node: Very Simple92536 +Node: Two Rules97174 +Node: More Complex99068 +Ref: More Complex-Footnote-1102000 +Node: Statements/Lines102085 +Ref: Statements/Lines-Footnote-1106540 +Node: Other Features106805 +Node: When107733 +Node: Intro Summary109903 +Node: Invoking Gawk110669 +Node: Command Line112184 +Node: Options112975 +Ref: Options-Footnote-1128804 +Node: Other Arguments128829 +Node: Naming Standard Input131491 +Node: Environment Variables132585 +Node: AWKPATH Variable133143 +Ref: AWKPATH Variable-Footnote-1136015 +Ref: AWKPATH Variable-Footnote-2136060 +Node: AWKLIBPATH Variable136320 +Node: Other Environment Variables137079 +Node: Exit Status140734 +Node: Include Files141409 +Node: Loading Shared Libraries144987 +Node: Obsolete146371 +Node: Undocumented147068 +Node: Invoking Summary147335 +Node: Regexp148915 +Node: Regexp Usage150365 +Node: Escape Sequences152398 +Node: Regexp Operators158065 +Ref: Regexp Operators-Footnote-1165545 +Ref: Regexp Operators-Footnote-2165692 +Node: Bracket Expressions165790 +Ref: table-char-classes167680 +Node: GNU Regexp Operators170203 +Node: Case-sensitivity173926 +Ref: Case-sensitivity-Footnote-1176818 +Ref: Case-sensitivity-Footnote-2177053 +Node: Leftmost Longest177161 +Node: Computed Regexps178362 +Node: Regexp Summary181734 +Node: Reading Files183205 +Node: Records185297 +Node: awk split records186040 +Node: gawk split records190898 +Ref: gawk split records-Footnote-1195419 +Node: Fields195456 +Ref: Fields-Footnote-1198420 +Node: Nonconstant Fields198506 +Ref: Nonconstant Fields-Footnote-1200736 +Node: Changing Fields200938 +Node: Field Separators206892 +Node: Default Field Splitting209594 +Node: Regexp Field Splitting210711 +Node: Single Character Fields214052 +Node: Command Line Field Separator215111 +Node: Full Line Fields218453 +Ref: Full Line Fields-Footnote-1218961 +Node: Field Splitting Summary219007 +Ref: Field Splitting Summary-Footnote-1222106 +Node: Constant Size222207 +Node: Splitting By Content226814 +Ref: Splitting By Content-Footnote-1230564 +Node: Multiple Line230604 +Ref: Multiple Line-Footnote-1236460 +Node: Getline236639 +Node: Plain Getline238855 +Node: Getline/Variable240950 +Node: Getline/File242097 +Node: Getline/Variable/File243481 +Ref: Getline/Variable/File-Footnote-1245080 +Node: Getline/Pipe245167 +Node: Getline/Variable/Pipe247866 +Node: Getline/Coprocess248973 +Node: Getline/Variable/Coprocess250225 +Node: Getline Notes250962 +Node: Getline Summary253766 +Ref: table-getline-variants254174 +Node: Read Timeout255086 +Ref: Read Timeout-Footnote-1258913 +Node: Command line directories258971 +Node: Input Summary259875 +Node: Input Exercises263012 +Node: Printing263745 +Node: Print265467 +Node: Print Examples266808 +Node: Output Separators269587 +Node: OFMT271603 +Node: Printf272961 +Node: Basic Printf273867 +Node: Control Letters275406 +Node: Format Modifiers279258 +Node: Printf Examples285285 +Node: Redirection287749 +Node: Special Files294721 +Node: Special FD295252 +Ref: Special FD-Footnote-1298876 +Node: Special Network298950 +Node: Special Caveats299800 +Node: Close Files And Pipes300596 +Ref: Close Files And Pipes-Footnote-1307757 +Ref: Close Files And Pipes-Footnote-2307905 +Node: Output Summary308055 +Node: Output exercises309052 +Node: Expressions309732 +Node: Values310917 +Node: Constants311593 +Node: Scalar Constants312273 +Ref: Scalar Constants-Footnote-1313132 +Node: Nondecimal-numbers313382 +Node: Regexp Constants316382 +Node: Using Constant Regexps316857 +Node: Variables319927 +Node: Using Variables320582 +Node: Assignment Options322306 +Node: Conversion324181 +Node: Strings And Numbers324705 +Ref: Strings And Numbers-Footnote-1327767 +Node: Locale influences conversions327876 +Ref: table-locale-affects330593 +Node: All Operators331181 +Node: Arithmetic Ops331811 +Node: Concatenation334316 +Ref: Concatenation-Footnote-1337112 +Node: Assignment Ops337232 +Ref: table-assign-ops342215 +Node: Increment Ops343532 +Node: Truth Values and Conditions346970 +Node: Truth Values348053 +Node: Typing and Comparison349102 +Node: Variable Typing349895 +Ref: Variable Typing-Footnote-1353795 +Node: Comparison Operators353917 +Ref: table-relational-ops354327 +Node: POSIX String Comparison357877 +Ref: POSIX String Comparison-Footnote-1358961 +Node: Boolean Ops359099 +Ref: Boolean Ops-Footnote-1363169 +Node: Conditional Exp363260 +Node: Function Calls364987 +Node: Precedence368745 +Node: Locales372414 +Node: Expressions Summary374045 +Node: Patterns and Actions376586 +Node: Pattern Overview377702 +Node: Regexp Patterns379379 +Node: Expression Patterns379922 +Node: Ranges383703 +Node: BEGIN/END386809 +Node: Using BEGIN/END387571 +Ref: Using BEGIN/END-Footnote-1390307 +Node: I/O And BEGIN/END390413 +Node: BEGINFILE/ENDFILE392698 +Node: Empty395629 +Node: Using Shell Variables395946 +Node: Action Overview398229 +Node: Statements400556 +Node: If Statement402404 +Node: While Statement403902 +Node: Do Statement405946 +Node: For Statement407102 +Node: Switch Statement410254 +Node: Break Statement412357 +Node: Continue Statement414412 +Node: Next Statement416205 +Node: Nextfile Statement418595 +Node: Exit Statement421250 +Node: Built-in Variables423654 +Node: User-modified424781 +Ref: User-modified-Footnote-1432470 +Node: Auto-set432532 +Ref: Auto-set-Footnote-1445451 +Ref: Auto-set-Footnote-2445656 +Node: ARGC and ARGV445712 +Node: Pattern Action Summary449566 +Node: Arrays451789 +Node: Array Basics453338 +Node: Array Intro454164 +Ref: figure-array-elements456137 +Node: Reference to Elements458544 +Node: Assigning Elements460817 +Node: Array Example461308 +Node: Scanning an Array463040 +Node: Controlling Scanning466055 +Ref: Controlling Scanning-Footnote-1471228 +Node: Delete471544 +Ref: Delete-Footnote-1474309 +Node: Numeric Array Subscripts474366 +Node: Uninitialized Subscripts476549 +Node: Multidimensional478174 +Node: Multiscanning481267 +Node: Arrays of Arrays482856 +Node: Arrays Summary487519 +Node: Functions489624 +Node: Built-in490497 +Node: Calling Built-in491575 +Node: Numeric Functions493563 +Ref: Numeric Functions-Footnote-1497397 +Ref: Numeric Functions-Footnote-2497754 +Ref: Numeric Functions-Footnote-3497802 +Node: String Functions498071 +Ref: String Functions-Footnote-1521082 +Ref: String Functions-Footnote-2521211 +Ref: String Functions-Footnote-3521459 +Node: Gory Details521546 +Ref: table-sub-escapes523215 +Ref: table-sub-posix-92524569 +Ref: table-sub-proposed525920 +Ref: table-posix-sub527274 +Ref: table-gensub-escapes528819 +Ref: Gory Details-Footnote-1529995 +Ref: Gory Details-Footnote-2530046 +Node: I/O Functions530197 +Ref: I/O Functions-Footnote-1537320 +Node: Time Functions537467 +Ref: Time Functions-Footnote-1547931 +Ref: Time Functions-Footnote-2547999 +Ref: Time Functions-Footnote-3548157 +Ref: Time Functions-Footnote-4548268 +Ref: Time Functions-Footnote-5548380 +Ref: Time Functions-Footnote-6548607 +Node: Bitwise Functions548873 +Ref: table-bitwise-ops549435 +Ref: Bitwise Functions-Footnote-1553680 +Node: Type Functions553864 +Node: I18N Functions555006 +Node: User-defined556651 +Node: Definition Syntax557455 +Ref: Definition Syntax-Footnote-1562380 +Node: Function Example562449 +Ref: Function Example-Footnote-1565093 +Node: Function Caveats565115 +Node: Calling A Function565633 +Node: Variable Scope566588 +Node: Pass By Value/Reference569576 +Node: Return Statement573084 +Node: Dynamic Typing576068 +Node: Indirect Calls576997 +Node: Functions Summary586710 +Node: Library Functions589249 +Ref: Library Functions-Footnote-1592867 +Ref: Library Functions-Footnote-2593010 +Node: Library Names593181 +Ref: Library Names-Footnote-1596654 +Ref: Library Names-Footnote-2596874 +Node: General Functions596960 +Node: Strtonum Function597988 +Node: Assert Function600768 +Node: Round Function604094 +Node: Cliff Random Function605635 +Node: Ordinal Functions606651 +Ref: Ordinal Functions-Footnote-1609728 +Ref: Ordinal Functions-Footnote-2609980 +Node: Join Function610191 +Ref: Join Function-Footnote-1611962 +Node: Getlocaltime Function612162 +Node: Readfile Function615898 +Node: Data File Management617737 +Node: Filetrans Function618369 +Node: Rewind Function622438 +Node: File Checking623825 +Ref: File Checking-Footnote-1624957 +Node: Empty Files625158 +Node: Ignoring Assigns627137 +Node: Getopt Function628691 +Ref: Getopt Function-Footnote-1639994 +Node: Passwd Functions640197 +Ref: Passwd Functions-Footnote-1649176 +Node: Group Functions649264 +Ref: Group Functions-Footnote-1657205 +Node: Walking Arrays657418 +Node: Library Functions Summary659021 +Node: Library exercises660409 +Node: Sample Programs661689 +Node: Running Examples662459 +Node: Clones663187 +Node: Cut Program664411 +Node: Egrep Program674279 +Ref: Egrep Program-Footnote-1682250 +Node: Id Program682360 +Node: Split Program686024 +Ref: Split Program-Footnote-1689562 +Node: Tee Program689690 +Node: Uniq Program692497 +Node: Wc Program699927 +Ref: Wc Program-Footnote-1704192 +Node: Miscellaneous Programs704284 +Node: Dupword Program705497 +Node: Alarm Program707528 +Node: Translate Program712342 +Ref: Translate Program-Footnote-1716733 +Ref: Translate Program-Footnote-2717003 +Node: Labels Program717137 +Ref: Labels Program-Footnote-1720508 +Node: Word Sorting720592 +Node: History Sorting724635 +Node: Extract Program726471 +Node: Simple Sed734007 +Node: Igawk Program737069 +Ref: Igawk Program-Footnote-1751380 +Ref: Igawk Program-Footnote-2751581 +Node: Anagram Program751719 +Node: Signature Program754787 +Node: Programs Summary756034 +Node: Programs Exercises757249 +Node: Advanced Features760900 +Node: Nondecimal Data762848 +Node: Array Sorting764425 +Node: Controlling Array Traversal765122 +Node: Array Sorting Functions773402 +Ref: Array Sorting Functions-Footnote-1777309 +Node: Two-way I/O777503 +Ref: Two-way I/O-Footnote-1783019 +Node: TCP/IP Networking783101 +Node: Profiling785945 +Node: Advanced Features Summary793487 +Node: Internationalization795351 +Node: I18N and L10N796831 +Node: Explaining gettext797517 +Ref: Explaining gettext-Footnote-1802657 +Ref: Explaining gettext-Footnote-2802841 +Node: Programmer i18n803006 +Node: Translator i18n807231 +Node: String Extraction808025 +Ref: String Extraction-Footnote-1808986 +Node: Printf Ordering809072 +Ref: Printf Ordering-Footnote-1811854 +Node: I18N Portability811918 +Ref: I18N Portability-Footnote-1814367 +Node: I18N Example814430 +Ref: I18N Example-Footnote-1817152 +Node: Gawk I18N817224 +Node: I18N Summary817862 +Node: Debugger819201 +Node: Debugging820223 +Node: Debugging Concepts820664 +Node: Debugging Terms822520 +Node: Awk Debugging825117 +Node: Sample Debugging Session826009 +Node: Debugger Invocation826529 +Node: Finding The Bug827862 +Node: List of Debugger Commands834344 +Node: Breakpoint Control835676 +Node: Debugger Execution Control839340 +Node: Viewing And Changing Data842700 +Node: Execution Stack846058 +Node: Debugger Info847571 +Node: Miscellaneous Debugger Commands851565 +Node: Readline Support856749 +Node: Limitations857641 +Node: Debugging Summary859915 +Node: Arbitrary Precision Arithmetic861079 +Node: Computer Arithmetic862408 +Ref: Computer Arithmetic-Footnote-1866795 +Node: Math Definitions866852 +Ref: table-ieee-formats869736 +Node: MPFR features870240 +Node: FP Math Caution871882 +Ref: FP Math Caution-Footnote-1872923 +Node: Inexactness of computations873292 +Node: Inexact representation874240 +Node: Comparing FP Values875595 +Node: Errors accumulate876559 +Node: Getting Accuracy877992 +Node: Try To Round880651 +Node: Setting precision881550 +Ref: table-predefined-precision-strings882232 +Node: Setting the rounding mode884025 +Ref: table-gawk-rounding-modes884389 +Ref: Setting the rounding mode-Footnote-1887843 +Node: Arbitrary Precision Integers888022 +Ref: Arbitrary Precision Integers-Footnote-1891025 +Node: POSIX Floating Point Problems891174 +Ref: POSIX Floating Point Problems-Footnote-1895050 +Node: Floating point summary895088 +Node: Dynamic Extensions897305 +Node: Extension Intro898857 +Node: Plugin License900122 +Node: Extension Mechanism Outline900807 +Ref: figure-load-extension901231 +Ref: figure-load-new-function902716 +Ref: figure-call-new-function903718 +Node: Extension API Description905702 +Node: Extension API Functions Introduction907152 +Node: General Data Types912017 +Ref: General Data Types-Footnote-1917710 +Node: Requesting Values918009 +Ref: table-value-types-returned918746 +Node: Memory Allocation Functions919704 +Ref: Memory Allocation Functions-Footnote-1922451 +Node: Constructor Functions922547 +Node: Registration Functions924305 +Node: Extension Functions924990 +Node: Exit Callback Functions927292 +Node: Extension Version String928541 +Node: Input Parsers929191 +Node: Output Wrappers938994 +Node: Two-way processors943510 +Node: Printing Messages945714 +Ref: Printing Messages-Footnote-1946791 +Node: Updating `ERRNO'946943 +Node: Accessing Parameters947682 +Node: Symbol Table Access948912 +Node: Symbol table by name949426 +Node: Symbol table by cookie951402 +Ref: Symbol table by cookie-Footnote-1955535 +Node: Cached values955598 +Ref: Cached values-Footnote-1959102 +Node: Array Manipulation959193 +Ref: Array Manipulation-Footnote-1960291 +Node: Array Data Types960330 +Ref: Array Data Types-Footnote-1963033 +Node: Array Functions963125 +Node: Flattening Arrays966999 +Node: Creating Arrays973851 +Node: Extension API Variables978582 +Node: Extension Versioning979218 +Node: Extension API Informational Variables981119 +Node: Extension API Boilerplate982205 +Node: Finding Extensions986009 +Node: Extension Example986569 +Node: Internal File Description987299 +Node: Internal File Ops991390 +Ref: Internal File Ops-Footnote-11002822 +Node: Using Internal File Ops1002962 +Ref: Using Internal File Ops-Footnote-11005309 +Node: Extension Samples1005577 +Node: Extension Sample File Functions1007101 +Node: Extension Sample Fnmatch1014669 +Node: Extension Sample Fork1016150 +Node: Extension Sample Inplace1017363 +Node: Extension Sample Ord1019038 +Node: Extension Sample Readdir1019874 +Ref: table-readdir-file-types1020730 +Node: Extension Sample Revout1021529 +Node: Extension Sample Rev2way1022120 +Node: Extension Sample Read write array1022861 +Node: Extension Sample Readfile1024740 +Node: Extension Sample API Tests1025840 +Node: Extension Sample Time1026365 +Node: gawkextlib1027680 +Node: Extension summary1030493 +Node: Extension Exercises1034186 +Node: Language History1034908 +Node: V7/SVR3.11036551 +Node: SVR41038871 +Node: POSIX1040313 +Node: BTL1041699 +Node: POSIX/GNU1042433 +Node: Feature History1048032 +Node: Common Extensions1061162 +Node: Ranges and Locales1062474 +Ref: Ranges and Locales-Footnote-11067091 +Ref: Ranges and Locales-Footnote-21067118 +Ref: Ranges and Locales-Footnote-31067352 +Node: Contributors1067573 +Node: History summary1073035 +Node: Installation1074404 +Node: Gawk Distribution1075355 +Node: Getting1075839 +Node: Extracting1076663 +Node: Distribution contents1078305 +Node: Unix Installation1084022 +Node: Quick Installation1084639 +Node: Additional Configuration Options1087081 +Node: Configuration Philosophy1088819 +Node: Non-Unix Installation1091170 +Node: PC Installation1091628 +Node: PC Binary Installation1092939 +Node: PC Compiling1094787 +Ref: PC Compiling-Footnote-11097786 +Node: PC Testing1097891 +Node: PC Using1099067 +Node: Cygwin1103225 +Node: MSYS1104034 +Node: VMS Installation1104548 +Node: VMS Compilation1105344 +Ref: VMS Compilation-Footnote-11106566 +Node: VMS Dynamic Extensions1106624 +Node: VMS Installation Details1107997 +Node: VMS Running1110249 +Node: VMS GNV1113083 +Node: VMS Old Gawk1113806 +Node: Bugs1114276 +Node: Other Versions1118280 +Node: Installation summary1124535 +Node: Notes1125591 +Node: Compatibility Mode1126456 +Node: Additions1127238 +Node: Accessing The Source1128163 +Node: Adding Code1129599 +Node: New Ports1135777 +Node: Derived Files1140258 +Ref: Derived Files-Footnote-11145339 +Ref: Derived Files-Footnote-21145373 +Ref: Derived Files-Footnote-31145969 +Node: Future Extensions1146083 +Node: Implementation Limitations1146689 +Node: Extension Design1147937 +Node: Old Extension Problems1149091 +Ref: Old Extension Problems-Footnote-11150608 +Node: Extension New Mechanism Goals1150665 +Ref: Extension New Mechanism Goals-Footnote-11154025 +Node: Extension Other Design Decisions1154214 +Node: Extension Future Growth1156320 +Node: Old Extension Mechanism1157156 +Node: Notes summary1158918 +Node: Basic Concepts1160104 +Node: Basic High Level1160785 +Ref: figure-general-flow1161057 +Ref: figure-process-flow1161656 +Ref: Basic High Level-Footnote-11164885 +Node: Basic Data Typing1165070 +Node: Glossary1168398 +Node: Copying1193550 +Node: GNU Free Documentation License1231106 +Node: Index1256242 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 04dbca47..5f92dc1e 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -611,6 +611,9 @@ particular records in a file and perform operations upon them. This is an advanced method of input. * Conversion:: The conversion of strings to numbers and vice versa. +* Strings And Numbers:: How @command{awk} Converts Between + Strings And Numbers. +* Locale influences conversions:: How the locale may affect conversions. * All Operators:: @command{gawk}'s operators. * Arithmetic Ops:: Arithmetic operations (@samp{+}, @samp{-}, etc.) @@ -10663,6 +10666,19 @@ sequences @node Conversion @subsection Conversion of Strings and Numbers +Number to string and string to number conversion are generally +straightforward. There can be subtleties to be aware of; +this @value{SECTION} discusses this important facet of @command{awk}. + +@menu +* Strings And Numbers:: How @command{awk} Converts Between Strings And + Numbers. +* Locale influences conversions:: How the locale may affect conversions. +@end menu + +@node Strings And Numbers +@subsubsection How @command{awk} Converts Between Strings And Numbers + @cindex converting, strings to numbers @cindex strings, converting @cindex numbers, converting @@ -10732,6 +10748,35 @@ b = a "" @code{b} has the value @code{"12"}, not @code{"12.00"}. @value{DARKCORNER} +@cindex sidebar, Pre-POSIX @command{awk} Used @code{OFMT} For String Conversion +@ifdocbook +@docbook +<sidebar><title>Pre-POSIX @command{awk} Used @code{OFMT} For String Conversion</title> +@end docbook + +@cindex POSIX @command{awk}, @code{OFMT} variable and +@cindex @code{OFMT} variable +@cindex portability, new @command{awk} vs.@: old @command{awk} +@cindex @command{awk}, new vs.@: old, @code{OFMT} variable +Prior to the POSIX standard, @command{awk} used the value +of @code{OFMT} for converting numbers to strings. @code{OFMT} +specifies the output format to use when printing numbers with @code{print}. +@code{CONVFMT} was introduced in order to separate the semantics of +conversion from the semantics of printing. Both @code{CONVFMT} and +@code{OFMT} have the same default value: @code{"%.6g"}. In the vast majority +of cases, old @command{awk} programs do not change their behavior. +@xref{Print}, for more information on the @code{print} statement. + +@docbook +</sidebar> +@end docbook +@end ifdocbook + +@ifnotdocbook +@cartouche +@center @b{Pre-POSIX @command{awk} Used @code{OFMT} For String Conversion} + + @cindex POSIX @command{awk}, @code{OFMT} variable and @cindex @code{OFMT} variable @cindex portability, new @command{awk} vs.@: old @command{awk} @@ -10744,6 +10789,11 @@ conversion from the semantics of printing. Both @code{CONVFMT} and @code{OFMT} have the same default value: @code{"%.6g"}. In the vast majority of cases, old @command{awk} programs do not change their behavior. @xref{Print}, for more information on the @code{print} statement. +@end cartouche +@end ifnotdocbook + +@node Locale influences conversions +@subsubsection Locales Can Influence Conversion Where you are can matter when it comes to converting between numbers and strings. The local character set and language---the @dfn{locale}---can @@ -12632,6 +12682,7 @@ of others let you control how @command{awk} behaves. Numbers are automatically converted to strings, and strings to numbers, as needed by @command{awk}. Numeric values are converted as if they were formatted with @code{sprintf()} using the format in @code{CONVFMT}. +Locales can influence the conversions. @item @command{awk} provides the usual arithmetic operators (addition, @@ -30362,7 +30413,7 @@ the following computes 5<superscript>4<superscript>3<superscript>2</superscript></superscript></superscript>, @c @end docbook the result of which is beyond the -limits of ordinary @command{gawk} numbers: +limits of ordinary hardware double-precision floating point values: @example $ @kbd{gawk -M 'BEGIN @{} @@ -30470,7 +30521,7 @@ source code constants.) Support for the special IEEE 754 floating point values ``Not A Number'' (NaN), positive Infinity (``inf'') and negative Infinity (``@minus{}inf''). In particular, the format for these values is as specified by the ISO 1999 -C standard, which ignores case and can allow machine-dependent additional +C standard, which ignores case and can allow implementation-dependent additional characters after the @samp{nan} and allow either @samp{inf} or @samp{infinity}. @end itemize diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 0c32c9f5..6f9ebc5c 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -606,6 +606,9 @@ particular records in a file and perform operations upon them. This is an advanced method of input. * Conversion:: The conversion of strings to numbers and vice versa. +* Strings And Numbers:: How @command{awk} Converts Between + Strings And Numbers. +* Locale influences conversions:: How the locale may affect conversions. * All Operators:: @command{gawk}'s operators. * Arithmetic Ops:: Arithmetic operations (@samp{+}, @samp{-}, etc.) @@ -10153,6 +10156,19 @@ sequences @node Conversion @subsection Conversion of Strings and Numbers +Number to string and string to number conversion are generally +straightforward. There can be subtleties to be aware of; +this @value{SECTION} discusses this important facet of @command{awk}. + +@menu +* Strings And Numbers:: How @command{awk} Converts Between Strings And + Numbers. +* Locale influences conversions:: How the locale may affect conversions. +@end menu + +@node Strings And Numbers +@subsubsection How @command{awk} Converts Between Strings And Numbers + @cindex converting, strings to numbers @cindex strings, converting @cindex numbers, converting @@ -10222,6 +10238,7 @@ b = a "" @code{b} has the value @code{"12"}, not @code{"12.00"}. @value{DARKCORNER} +@sidebar Pre-POSIX @command{awk} Used @code{OFMT} For String Conversion @cindex POSIX @command{awk}, @code{OFMT} variable and @cindex @code{OFMT} variable @cindex portability, new @command{awk} vs.@: old @command{awk} @@ -10234,6 +10251,10 @@ conversion from the semantics of printing. Both @code{CONVFMT} and @code{OFMT} have the same default value: @code{"%.6g"}. In the vast majority of cases, old @command{awk} programs do not change their behavior. @xref{Print}, for more information on the @code{print} statement. +@end sidebar + +@node Locale influences conversions +@subsubsection Locales Can Influence Conversion Where you are can matter when it comes to converting between numbers and strings. The local character set and language---the @dfn{locale}---can @@ -12012,6 +12033,7 @@ of others let you control how @command{awk} behaves. Numbers are automatically converted to strings, and strings to numbers, as needed by @command{awk}. Numeric values are converted as if they were formatted with @code{sprintf()} using the format in @code{CONVFMT}. +Locales can influence the conversions. @item @command{awk} provides the usual arithmetic operators (addition, @@ -29506,7 +29528,7 @@ the following computes 5<superscript>4<superscript>3<superscript>2</superscript></superscript></superscript>, @c @end docbook the result of which is beyond the -limits of ordinary @command{gawk} numbers: +limits of ordinary hardware double-precision floating point values: @example $ @kbd{gawk -M 'BEGIN @{} @@ -29614,7 +29636,7 @@ source code constants.) Support for the special IEEE 754 floating point values ``Not A Number'' (NaN), positive Infinity (``inf'') and negative Infinity (``@minus{}inf''). In particular, the format for these values is as specified by the ISO 1999 -C standard, which ignores case and can allow machine-dependent additional +C standard, which ignores case and can allow implementation-dependent additional characters after the @samp{nan} and allow either @samp{inf} or @samp{infinity}. @end itemize |