aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1171
-rw-r--r--doc/gawk.texi55
-rw-r--r--doc/gawktexi.in26
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