summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-11-19 17:33:21 +0200
committerArnold D. Robbins <arnold@skeeve.com>2014-11-19 17:37:42 +0200
commitf862e8fe648ed66662417bc37b20980fe7780eec (patch)
treef1f49b6e5e7c949ddafc245cba1cece64e6d34dc
parent46fb38d70fe250f318fb95a6083beaceaaf5155d (diff)
downloadgawk-f862e8fe648ed66662417bc37b20980fe7780eec.tar.gz
Document that RFC 4180 describes CSV data.
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info937
-rw-r--r--doc/gawk.texi10
-rw-r--r--doc/gawktexi.in10
4 files changed, 485 insertions, 476 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7288fb77..1e53c5b7 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-19 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Update that RFC 4180 documents CSV data.
+
2014-11-17 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Copyedits applied.
diff --git a/doc/gawk.info b/doc/gawk.info
index a318498b..6026b543 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -5179,9 +5179,8 @@ what they are, and not by what they are not.
data into text files, where each record is terminated with a newline,
and fields are separated by commas. If only commas separated the data,
there wouldn't be an issue. The problem comes when one of the fields
-contains an _embedded_ comma. Although there is no formal standard
-specification for CSV data,(1) in such cases, most programs embed the
-field in double quotes. So we might have data like this:
+contains an _embedded_ comma. In such cases, most programs embed the
+field in double quotes.(1) So we might have data like this:
Robbins,Arnold,"1234 A Pretty Street, NE",MyTown,MyState,12345-6789,USA
@@ -5264,7 +5263,9 @@ based on which of the three variables--`FS', `FIELDWIDTHS', and
---------- Footnotes ----------
- (1) At least, we don't know of one.
+ (1) The CSV format lacked a formal standard definition for many
+years. RFC 4180 (http://www.ietf.org/rfc/rfc4180.txt) standardizes the
+most common practices.

File: gawk.info, Node: Multiple Line, Next: Getline, Prev: Splitting By Content, Up: Reading Files
@@ -32657,7 +32658,7 @@ Index
* forward slash (/), patterns and: Expression Patterns. (line 24)
* FPAT variable <1>: User-modified. (line 43)
* FPAT variable: Splitting By Content.
- (line 26)
+ (line 25)
* frame debugger command: Execution Stack. (line 27)
* Free Documentation License (FDL): GNU Free Documentation License.
(line 7)
@@ -32767,7 +32768,7 @@ Index
* gawk, format-control characters: Control Letters. (line 18)
* gawk, FPAT variable in <1>: User-modified. (line 43)
* gawk, FPAT variable in: Splitting By Content.
- (line 26)
+ (line 25)
* gawk, FUNCTAB array in: Auto-set. (line 116)
* gawk, function arguments and: Calling Built-in. (line 16)
* gawk, hexadecimal numbers and: Nondecimal-numbers. (line 42)
@@ -34380,467 +34381,467 @@ Ref: Full Line Fields-Footnote-2224934
Node: Field Splitting Summary225035
Node: Constant Size227109
Node: Splitting By Content231698
-Ref: Splitting By Content-Footnote-1235753
-Node: Multiple Line235793
-Ref: Multiple Line-Footnote-1241679
-Node: Getline241858
-Node: Plain Getline244070
-Node: Getline/Variable246710
-Node: Getline/File247858
-Node: Getline/Variable/File249242
-Ref: Getline/Variable/File-Footnote-1250845
-Node: Getline/Pipe250932
-Node: Getline/Variable/Pipe253615
-Node: Getline/Coprocess254746
-Node: Getline/Variable/Coprocess255998
-Node: Getline Notes256737
-Node: Getline Summary259529
-Ref: table-getline-variants259941
-Node: Read Timeout260770
-Ref: Read Timeout-Footnote-1264589
-Node: Command-line directories264647
-Node: Input Summary265552
-Node: Input Exercises268805
-Node: Printing269533
-Node: Print271310
-Node: Print Examples272767
-Node: Output Separators275546
-Node: OFMT277564
-Node: Printf278918
-Node: Basic Printf279703
-Node: Control Letters281272
-Node: Format Modifiers285256
-Node: Printf Examples291257
-Node: Redirection293743
-Node: Special FD300584
-Ref: Special FD-Footnote-1303744
-Node: Special Files303818
-Node: Other Inherited Files304435
-Node: Special Network305435
-Node: Special Caveats306297
-Node: Close Files And Pipes307248
-Ref: Close Files And Pipes-Footnote-1314430
-Ref: Close Files And Pipes-Footnote-2314578
-Node: Output Summary314728
-Node: Output Exercises315726
-Node: Expressions316406
-Node: Values317591
-Node: Constants318269
-Node: Scalar Constants318960
-Ref: Scalar Constants-Footnote-1319819
-Node: Nondecimal-numbers320069
-Node: Regexp Constants323087
-Node: Using Constant Regexps323612
-Node: Variables326755
-Node: Using Variables327410
-Node: Assignment Options329321
-Node: Conversion331196
-Node: Strings And Numbers331720
-Ref: Strings And Numbers-Footnote-1334785
-Node: Locale influences conversions334894
-Ref: table-locale-affects337641
-Node: All Operators338229
-Node: Arithmetic Ops338859
-Node: Concatenation341364
-Ref: Concatenation-Footnote-1344183
-Node: Assignment Ops344289
-Ref: table-assign-ops349268
-Node: Increment Ops350540
-Node: Truth Values and Conditions353978
-Node: Truth Values355063
-Node: Typing and Comparison356112
-Node: Variable Typing356922
-Node: Comparison Operators360575
-Ref: table-relational-ops360985
-Node: POSIX String Comparison364480
-Ref: POSIX String Comparison-Footnote-1365552
-Node: Boolean Ops365690
-Ref: Boolean Ops-Footnote-1370169
-Node: Conditional Exp370260
-Node: Function Calls371987
-Node: Precedence375867
-Node: Locales379528
-Node: Expressions Summary381160
-Node: Patterns and Actions383720
-Node: Pattern Overview384840
-Node: Regexp Patterns386519
-Node: Expression Patterns387062
-Node: Ranges390843
-Node: BEGIN/END393949
-Node: Using BEGIN/END394710
-Ref: Using BEGIN/END-Footnote-1397444
-Node: I/O And BEGIN/END397550
-Node: BEGINFILE/ENDFILE399864
-Node: Empty402765
-Node: Using Shell Variables403082
-Node: Action Overview405355
-Node: Statements407681
-Node: If Statement409529
-Node: While Statement411024
-Node: Do Statement413053
-Node: For Statement414197
-Node: Switch Statement417354
-Node: Break Statement419736
-Node: Continue Statement421777
-Node: Next Statement423604
-Node: Nextfile Statement425985
-Node: Exit Statement428615
-Node: Built-in Variables431018
-Node: User-modified432151
-Ref: User-modified-Footnote-1439832
-Node: Auto-set439894
-Ref: Auto-set-Footnote-1452929
-Ref: Auto-set-Footnote-2453134
-Node: ARGC and ARGV453190
-Node: Pattern Action Summary457408
-Node: Arrays459835
-Node: Array Basics461164
-Node: Array Intro462008
-Ref: figure-array-elements463972
-Ref: Array Intro-Footnote-1466498
-Node: Reference to Elements466626
-Node: Assigning Elements469078
-Node: Array Example469569
-Node: Scanning an Array471327
-Node: Controlling Scanning474343
-Ref: Controlling Scanning-Footnote-1479539
-Node: Numeric Array Subscripts479855
-Node: Uninitialized Subscripts482040
-Node: Delete483657
-Ref: Delete-Footnote-1486400
-Node: Multidimensional486457
-Node: Multiscanning489554
-Node: Arrays of Arrays491143
-Node: Arrays Summary495902
-Node: Functions497994
-Node: Built-in498867
-Node: Calling Built-in499945
-Node: Numeric Functions501936
-Ref: Numeric Functions-Footnote-1505953
-Ref: Numeric Functions-Footnote-2506310
-Ref: Numeric Functions-Footnote-3506358
-Node: String Functions506630
-Ref: String Functions-Footnote-1530105
-Ref: String Functions-Footnote-2530234
-Ref: String Functions-Footnote-3530482
-Node: Gory Details530569
-Ref: table-sub-escapes532350
-Ref: table-sub-proposed533870
-Ref: table-posix-sub535234
-Ref: table-gensub-escapes536770
-Ref: Gory Details-Footnote-1537602
-Node: I/O Functions537753
-Ref: I/O Functions-Footnote-1544971
-Node: Time Functions545118
-Ref: Time Functions-Footnote-1555606
-Ref: Time Functions-Footnote-2555674
-Ref: Time Functions-Footnote-3555832
-Ref: Time Functions-Footnote-4555943
-Ref: Time Functions-Footnote-5556055
-Ref: Time Functions-Footnote-6556282
-Node: Bitwise Functions556548
-Ref: table-bitwise-ops557110
-Ref: Bitwise Functions-Footnote-1561419
-Node: Type Functions561588
-Node: I18N Functions562739
-Node: User-defined564384
-Node: Definition Syntax565189
-Ref: Definition Syntax-Footnote-1570596
-Node: Function Example570667
-Ref: Function Example-Footnote-1573586
-Node: Function Caveats573608
-Node: Calling A Function574126
-Node: Variable Scope575084
-Node: Pass By Value/Reference578072
-Node: Return Statement581567
-Node: Dynamic Typing584548
-Node: Indirect Calls585477
-Ref: Indirect Calls-Footnote-1596779
-Node: Functions Summary596907
-Node: Library Functions599609
-Ref: Library Functions-Footnote-1603218
-Ref: Library Functions-Footnote-2603361
-Node: Library Names603532
-Ref: Library Names-Footnote-1606986
-Ref: Library Names-Footnote-2607209
-Node: General Functions607295
-Node: Strtonum Function608398
-Node: Assert Function611420
-Node: Round Function614744
-Node: Cliff Random Function616285
-Node: Ordinal Functions617301
-Ref: Ordinal Functions-Footnote-1620364
-Ref: Ordinal Functions-Footnote-2620616
-Node: Join Function620827
-Ref: Join Function-Footnote-1622596
-Node: Getlocaltime Function622796
-Node: Readfile Function626540
-Node: Shell Quoting628510
-Node: Data File Management629911
-Node: Filetrans Function630543
-Node: Rewind Function634599
-Node: File Checking635986
-Ref: File Checking-Footnote-1637318
-Node: Empty Files637519
-Node: Ignoring Assigns639498
-Node: Getopt Function641049
-Ref: Getopt Function-Footnote-1652511
-Node: Passwd Functions652711
-Ref: Passwd Functions-Footnote-1661560
-Node: Group Functions661648
-Ref: Group Functions-Footnote-1669542
-Node: Walking Arrays669755
-Node: Library Functions Summary671358
-Node: Library Exercises672759
-Node: Sample Programs674039
-Node: Running Examples674809
-Node: Clones675537
-Node: Cut Program676761
-Node: Egrep Program686480
-Ref: Egrep Program-Footnote-1693978
-Node: Id Program694088
-Node: Split Program697733
-Ref: Split Program-Footnote-1701181
-Node: Tee Program701309
-Node: Uniq Program704098
-Node: Wc Program711517
-Ref: Wc Program-Footnote-1715767
-Node: Miscellaneous Programs715861
-Node: Dupword Program717074
-Node: Alarm Program719105
-Node: Translate Program723909
-Ref: Translate Program-Footnote-1728474
-Node: Labels Program728744
-Ref: Labels Program-Footnote-1732095
-Node: Word Sorting732179
-Node: History Sorting736250
-Node: Extract Program738086
-Node: Simple Sed745611
-Node: Igawk Program748679
-Ref: Igawk Program-Footnote-1763003
-Ref: Igawk Program-Footnote-2763204
-Ref: Igawk Program-Footnote-3763326
-Node: Anagram Program763441
-Node: Signature Program766498
-Node: Programs Summary767745
-Node: Programs Exercises768938
-Ref: Programs Exercises-Footnote-1773069
-Node: Advanced Features773160
-Node: Nondecimal Data775108
-Node: Array Sorting776698
-Node: Controlling Array Traversal777395
-Ref: Controlling Array Traversal-Footnote-1785728
-Node: Array Sorting Functions785846
-Ref: Array Sorting Functions-Footnote-1789735
-Node: Two-way I/O789931
-Ref: Two-way I/O-Footnote-1794872
-Ref: Two-way I/O-Footnote-2795058
-Node: TCP/IP Networking795140
-Node: Profiling798013
-Node: Advanced Features Summary805560
-Node: Internationalization807493
-Node: I18N and L10N808973
-Node: Explaining gettext809659
-Ref: Explaining gettext-Footnote-1814684
-Ref: Explaining gettext-Footnote-2814868
-Node: Programmer i18n815033
-Ref: Programmer i18n-Footnote-1819899
-Node: Translator i18n819948
-Node: String Extraction820742
-Ref: String Extraction-Footnote-1821873
-Node: Printf Ordering821959
-Ref: Printf Ordering-Footnote-1824745
-Node: I18N Portability824809
-Ref: I18N Portability-Footnote-1827264
-Node: I18N Example827327
-Ref: I18N Example-Footnote-1830130
-Node: Gawk I18N830202
-Node: I18N Summary830840
-Node: Debugger832179
-Node: Debugging833201
-Node: Debugging Concepts833642
-Node: Debugging Terms835495
-Node: Awk Debugging838067
-Node: Sample Debugging Session838961
-Node: Debugger Invocation839481
-Node: Finding The Bug840865
-Node: List of Debugger Commands847340
-Node: Breakpoint Control848673
-Node: Debugger Execution Control852369
-Node: Viewing And Changing Data855733
-Node: Execution Stack859111
-Node: Debugger Info860748
-Node: Miscellaneous Debugger Commands864765
-Node: Readline Support869794
-Node: Limitations870686
-Node: Debugging Summary872800
-Node: Arbitrary Precision Arithmetic873968
-Node: Computer Arithmetic875384
-Ref: table-numeric-ranges878982
-Ref: Computer Arithmetic-Footnote-1879841
-Node: Math Definitions879898
-Ref: table-ieee-formats883186
-Ref: Math Definitions-Footnote-1883790
-Node: MPFR features883895
-Node: FP Math Caution885566
-Ref: FP Math Caution-Footnote-1886616
-Node: Inexactness of computations886985
-Node: Inexact representation887944
-Node: Comparing FP Values889301
-Node: Errors accumulate890383
-Node: Getting Accuracy891816
-Node: Try To Round894478
-Node: Setting precision895377
-Ref: table-predefined-precision-strings896061
-Node: Setting the rounding mode897850
-Ref: table-gawk-rounding-modes898214
-Ref: Setting the rounding mode-Footnote-1901669
-Node: Arbitrary Precision Integers901848
-Ref: Arbitrary Precision Integers-Footnote-1904834
-Node: POSIX Floating Point Problems904983
-Ref: POSIX Floating Point Problems-Footnote-1908856
-Node: Floating point summary908894
-Node: Dynamic Extensions911088
-Node: Extension Intro912640
-Node: Plugin License913906
-Node: Extension Mechanism Outline914703
-Ref: figure-load-extension915131
-Ref: figure-register-new-function916611
-Ref: figure-call-new-function917615
-Node: Extension API Description919601
-Node: Extension API Functions Introduction921051
-Node: General Data Types925875
-Ref: General Data Types-Footnote-1931614
-Node: Memory Allocation Functions931913
-Ref: Memory Allocation Functions-Footnote-1934752
-Node: Constructor Functions934848
-Node: Registration Functions936582
-Node: Extension Functions937267
-Node: Exit Callback Functions939564
-Node: Extension Version String940812
-Node: Input Parsers941477
-Node: Output Wrappers951354
-Node: Two-way processors955869
-Node: Printing Messages958073
-Ref: Printing Messages-Footnote-1959149
-Node: Updating `ERRNO'959301
-Node: Requesting Values960041
-Ref: table-value-types-returned960769
-Node: Accessing Parameters961726
-Node: Symbol Table Access962957
-Node: Symbol table by name963471
-Node: Symbol table by cookie965452
-Ref: Symbol table by cookie-Footnote-1969596
-Node: Cached values969659
-Ref: Cached values-Footnote-1973158
-Node: Array Manipulation973249
-Ref: Array Manipulation-Footnote-1974347
-Node: Array Data Types974384
-Ref: Array Data Types-Footnote-1977039
-Node: Array Functions977131
-Node: Flattening Arrays980985
-Node: Creating Arrays987877
-Node: Extension API Variables992646
-Node: Extension Versioning993282
-Node: Extension API Informational Variables995183
-Node: Extension API Boilerplate996271
-Node: Finding Extensions1000080
-Node: Extension Example1000640
-Node: Internal File Description1001412
-Node: Internal File Ops1005479
-Ref: Internal File Ops-Footnote-11017149
-Node: Using Internal File Ops1017289
-Ref: Using Internal File Ops-Footnote-11019672
-Node: Extension Samples1019945
-Node: Extension Sample File Functions1021471
-Node: Extension Sample Fnmatch1029109
-Node: Extension Sample Fork1030600
-Node: Extension Sample Inplace1031815
-Node: Extension Sample Ord1033490
-Node: Extension Sample Readdir1034326
-Ref: table-readdir-file-types1035202
-Node: Extension Sample Revout1036013
-Node: Extension Sample Rev2way1036603
-Node: Extension Sample Read write array1037343
-Node: Extension Sample Readfile1039283
-Node: Extension Sample Time1040378
-Node: Extension Sample API Tests1041727
-Node: gawkextlib1042218
-Node: Extension summary1044855
-Node: Extension Exercises1048532
-Node: Language History1049254
-Node: V7/SVR3.11050910
-Node: SVR41053091
-Node: POSIX1054536
-Node: BTL1055925
-Node: POSIX/GNU1056659
-Node: Feature History1062223
-Node: Common Extensions1075321
-Node: Ranges and Locales1076645
-Ref: Ranges and Locales-Footnote-11081263
-Ref: Ranges and Locales-Footnote-21081290
-Ref: Ranges and Locales-Footnote-31081524
-Node: Contributors1081745
-Node: History summary1087286
-Node: Installation1088656
-Node: Gawk Distribution1089602
-Node: Getting1090086
-Node: Extracting1090909
-Node: Distribution contents1092544
-Node: Unix Installation1098261
-Node: Quick Installation1098878
-Node: Additional Configuration Options1101302
-Node: Configuration Philosophy1103040
-Node: Non-Unix Installation1105409
-Node: PC Installation1105867
-Node: PC Binary Installation1107186
-Node: PC Compiling1109034
-Ref: PC Compiling-Footnote-11112055
-Node: PC Testing1112164
-Node: PC Using1113340
-Node: Cygwin1117455
-Node: MSYS1118278
-Node: VMS Installation1118778
-Node: VMS Compilation1119570
-Ref: VMS Compilation-Footnote-11120792
-Node: VMS Dynamic Extensions1120850
-Node: VMS Installation Details1122534
-Node: VMS Running1124786
-Node: VMS GNV1127622
-Node: VMS Old Gawk1128356
-Node: Bugs1128826
-Node: Other Versions1132709
-Node: Installation summary1139131
-Node: Notes1140187
-Node: Compatibility Mode1141052
-Node: Additions1141834
-Node: Accessing The Source1142759
-Node: Adding Code1144195
-Node: New Ports1150360
-Node: Derived Files1154842
-Ref: Derived Files-Footnote-11160317
-Ref: Derived Files-Footnote-21160351
-Ref: Derived Files-Footnote-31160947
-Node: Future Extensions1161061
-Node: Implementation Limitations1161667
-Node: Extension Design1162915
-Node: Old Extension Problems1164069
-Ref: Old Extension Problems-Footnote-11165586
-Node: Extension New Mechanism Goals1165643
-Ref: Extension New Mechanism Goals-Footnote-11169003
-Node: Extension Other Design Decisions1169192
-Node: Extension Future Growth1171300
-Node: Old Extension Mechanism1172136
-Node: Notes summary1173898
-Node: Basic Concepts1175084
-Node: Basic High Level1175765
-Ref: figure-general-flow1176037
-Ref: figure-process-flow1176636
-Ref: Basic High Level-Footnote-11179865
-Node: Basic Data Typing1180050
-Node: Glossary1183378
-Node: Copying1208536
-Node: GNU Free Documentation License1246092
-Node: Index1271228
+Ref: Splitting By Content-Footnote-1235689
+Node: Multiple Line235852
+Ref: Multiple Line-Footnote-1241738
+Node: Getline241917
+Node: Plain Getline244129
+Node: Getline/Variable246769
+Node: Getline/File247917
+Node: Getline/Variable/File249301
+Ref: Getline/Variable/File-Footnote-1250904
+Node: Getline/Pipe250991
+Node: Getline/Variable/Pipe253674
+Node: Getline/Coprocess254805
+Node: Getline/Variable/Coprocess256057
+Node: Getline Notes256796
+Node: Getline Summary259588
+Ref: table-getline-variants260000
+Node: Read Timeout260829
+Ref: Read Timeout-Footnote-1264648
+Node: Command-line directories264706
+Node: Input Summary265611
+Node: Input Exercises268864
+Node: Printing269592
+Node: Print271369
+Node: Print Examples272826
+Node: Output Separators275605
+Node: OFMT277623
+Node: Printf278977
+Node: Basic Printf279762
+Node: Control Letters281331
+Node: Format Modifiers285315
+Node: Printf Examples291316
+Node: Redirection293802
+Node: Special FD300643
+Ref: Special FD-Footnote-1303803
+Node: Special Files303877
+Node: Other Inherited Files304494
+Node: Special Network305494
+Node: Special Caveats306356
+Node: Close Files And Pipes307307
+Ref: Close Files And Pipes-Footnote-1314489
+Ref: Close Files And Pipes-Footnote-2314637
+Node: Output Summary314787
+Node: Output Exercises315785
+Node: Expressions316465
+Node: Values317650
+Node: Constants318328
+Node: Scalar Constants319019
+Ref: Scalar Constants-Footnote-1319878
+Node: Nondecimal-numbers320128
+Node: Regexp Constants323146
+Node: Using Constant Regexps323671
+Node: Variables326814
+Node: Using Variables327469
+Node: Assignment Options329380
+Node: Conversion331255
+Node: Strings And Numbers331779
+Ref: Strings And Numbers-Footnote-1334844
+Node: Locale influences conversions334953
+Ref: table-locale-affects337700
+Node: All Operators338288
+Node: Arithmetic Ops338918
+Node: Concatenation341423
+Ref: Concatenation-Footnote-1344242
+Node: Assignment Ops344348
+Ref: table-assign-ops349327
+Node: Increment Ops350599
+Node: Truth Values and Conditions354037
+Node: Truth Values355122
+Node: Typing and Comparison356171
+Node: Variable Typing356981
+Node: Comparison Operators360634
+Ref: table-relational-ops361044
+Node: POSIX String Comparison364539
+Ref: POSIX String Comparison-Footnote-1365611
+Node: Boolean Ops365749
+Ref: Boolean Ops-Footnote-1370228
+Node: Conditional Exp370319
+Node: Function Calls372046
+Node: Precedence375926
+Node: Locales379587
+Node: Expressions Summary381219
+Node: Patterns and Actions383779
+Node: Pattern Overview384899
+Node: Regexp Patterns386578
+Node: Expression Patterns387121
+Node: Ranges390902
+Node: BEGIN/END394008
+Node: Using BEGIN/END394769
+Ref: Using BEGIN/END-Footnote-1397503
+Node: I/O And BEGIN/END397609
+Node: BEGINFILE/ENDFILE399923
+Node: Empty402824
+Node: Using Shell Variables403141
+Node: Action Overview405414
+Node: Statements407740
+Node: If Statement409588
+Node: While Statement411083
+Node: Do Statement413112
+Node: For Statement414256
+Node: Switch Statement417413
+Node: Break Statement419795
+Node: Continue Statement421836
+Node: Next Statement423663
+Node: Nextfile Statement426044
+Node: Exit Statement428674
+Node: Built-in Variables431077
+Node: User-modified432210
+Ref: User-modified-Footnote-1439891
+Node: Auto-set439953
+Ref: Auto-set-Footnote-1452988
+Ref: Auto-set-Footnote-2453193
+Node: ARGC and ARGV453249
+Node: Pattern Action Summary457467
+Node: Arrays459894
+Node: Array Basics461223
+Node: Array Intro462067
+Ref: figure-array-elements464031
+Ref: Array Intro-Footnote-1466557
+Node: Reference to Elements466685
+Node: Assigning Elements469137
+Node: Array Example469628
+Node: Scanning an Array471386
+Node: Controlling Scanning474402
+Ref: Controlling Scanning-Footnote-1479598
+Node: Numeric Array Subscripts479914
+Node: Uninitialized Subscripts482099
+Node: Delete483716
+Ref: Delete-Footnote-1486459
+Node: Multidimensional486516
+Node: Multiscanning489613
+Node: Arrays of Arrays491202
+Node: Arrays Summary495961
+Node: Functions498053
+Node: Built-in498926
+Node: Calling Built-in500004
+Node: Numeric Functions501995
+Ref: Numeric Functions-Footnote-1506012
+Ref: Numeric Functions-Footnote-2506369
+Ref: Numeric Functions-Footnote-3506417
+Node: String Functions506689
+Ref: String Functions-Footnote-1530164
+Ref: String Functions-Footnote-2530293
+Ref: String Functions-Footnote-3530541
+Node: Gory Details530628
+Ref: table-sub-escapes532409
+Ref: table-sub-proposed533929
+Ref: table-posix-sub535293
+Ref: table-gensub-escapes536829
+Ref: Gory Details-Footnote-1537661
+Node: I/O Functions537812
+Ref: I/O Functions-Footnote-1545030
+Node: Time Functions545177
+Ref: Time Functions-Footnote-1555665
+Ref: Time Functions-Footnote-2555733
+Ref: Time Functions-Footnote-3555891
+Ref: Time Functions-Footnote-4556002
+Ref: Time Functions-Footnote-5556114
+Ref: Time Functions-Footnote-6556341
+Node: Bitwise Functions556607
+Ref: table-bitwise-ops557169
+Ref: Bitwise Functions-Footnote-1561478
+Node: Type Functions561647
+Node: I18N Functions562798
+Node: User-defined564443
+Node: Definition Syntax565248
+Ref: Definition Syntax-Footnote-1570655
+Node: Function Example570726
+Ref: Function Example-Footnote-1573645
+Node: Function Caveats573667
+Node: Calling A Function574185
+Node: Variable Scope575143
+Node: Pass By Value/Reference578131
+Node: Return Statement581626
+Node: Dynamic Typing584607
+Node: Indirect Calls585536
+Ref: Indirect Calls-Footnote-1596838
+Node: Functions Summary596966
+Node: Library Functions599668
+Ref: Library Functions-Footnote-1603277
+Ref: Library Functions-Footnote-2603420
+Node: Library Names603591
+Ref: Library Names-Footnote-1607045
+Ref: Library Names-Footnote-2607268
+Node: General Functions607354
+Node: Strtonum Function608457
+Node: Assert Function611479
+Node: Round Function614803
+Node: Cliff Random Function616344
+Node: Ordinal Functions617360
+Ref: Ordinal Functions-Footnote-1620423
+Ref: Ordinal Functions-Footnote-2620675
+Node: Join Function620886
+Ref: Join Function-Footnote-1622655
+Node: Getlocaltime Function622855
+Node: Readfile Function626599
+Node: Shell Quoting628569
+Node: Data File Management629970
+Node: Filetrans Function630602
+Node: Rewind Function634658
+Node: File Checking636045
+Ref: File Checking-Footnote-1637377
+Node: Empty Files637578
+Node: Ignoring Assigns639557
+Node: Getopt Function641108
+Ref: Getopt Function-Footnote-1652570
+Node: Passwd Functions652770
+Ref: Passwd Functions-Footnote-1661619
+Node: Group Functions661707
+Ref: Group Functions-Footnote-1669601
+Node: Walking Arrays669814
+Node: Library Functions Summary671417
+Node: Library Exercises672818
+Node: Sample Programs674098
+Node: Running Examples674868
+Node: Clones675596
+Node: Cut Program676820
+Node: Egrep Program686539
+Ref: Egrep Program-Footnote-1694037
+Node: Id Program694147
+Node: Split Program697792
+Ref: Split Program-Footnote-1701240
+Node: Tee Program701368
+Node: Uniq Program704157
+Node: Wc Program711576
+Ref: Wc Program-Footnote-1715826
+Node: Miscellaneous Programs715920
+Node: Dupword Program717133
+Node: Alarm Program719164
+Node: Translate Program723968
+Ref: Translate Program-Footnote-1728533
+Node: Labels Program728803
+Ref: Labels Program-Footnote-1732154
+Node: Word Sorting732238
+Node: History Sorting736309
+Node: Extract Program738145
+Node: Simple Sed745670
+Node: Igawk Program748738
+Ref: Igawk Program-Footnote-1763062
+Ref: Igawk Program-Footnote-2763263
+Ref: Igawk Program-Footnote-3763385
+Node: Anagram Program763500
+Node: Signature Program766557
+Node: Programs Summary767804
+Node: Programs Exercises768997
+Ref: Programs Exercises-Footnote-1773128
+Node: Advanced Features773219
+Node: Nondecimal Data775167
+Node: Array Sorting776757
+Node: Controlling Array Traversal777454
+Ref: Controlling Array Traversal-Footnote-1785787
+Node: Array Sorting Functions785905
+Ref: Array Sorting Functions-Footnote-1789794
+Node: Two-way I/O789990
+Ref: Two-way I/O-Footnote-1794931
+Ref: Two-way I/O-Footnote-2795117
+Node: TCP/IP Networking795199
+Node: Profiling798072
+Node: Advanced Features Summary805619
+Node: Internationalization807552
+Node: I18N and L10N809032
+Node: Explaining gettext809718
+Ref: Explaining gettext-Footnote-1814743
+Ref: Explaining gettext-Footnote-2814927
+Node: Programmer i18n815092
+Ref: Programmer i18n-Footnote-1819958
+Node: Translator i18n820007
+Node: String Extraction820801
+Ref: String Extraction-Footnote-1821932
+Node: Printf Ordering822018
+Ref: Printf Ordering-Footnote-1824804
+Node: I18N Portability824868
+Ref: I18N Portability-Footnote-1827323
+Node: I18N Example827386
+Ref: I18N Example-Footnote-1830189
+Node: Gawk I18N830261
+Node: I18N Summary830899
+Node: Debugger832238
+Node: Debugging833260
+Node: Debugging Concepts833701
+Node: Debugging Terms835554
+Node: Awk Debugging838126
+Node: Sample Debugging Session839020
+Node: Debugger Invocation839540
+Node: Finding The Bug840924
+Node: List of Debugger Commands847399
+Node: Breakpoint Control848732
+Node: Debugger Execution Control852428
+Node: Viewing And Changing Data855792
+Node: Execution Stack859170
+Node: Debugger Info860807
+Node: Miscellaneous Debugger Commands864824
+Node: Readline Support869853
+Node: Limitations870745
+Node: Debugging Summary872859
+Node: Arbitrary Precision Arithmetic874027
+Node: Computer Arithmetic875443
+Ref: table-numeric-ranges879041
+Ref: Computer Arithmetic-Footnote-1879900
+Node: Math Definitions879957
+Ref: table-ieee-formats883245
+Ref: Math Definitions-Footnote-1883849
+Node: MPFR features883954
+Node: FP Math Caution885625
+Ref: FP Math Caution-Footnote-1886675
+Node: Inexactness of computations887044
+Node: Inexact representation888003
+Node: Comparing FP Values889360
+Node: Errors accumulate890442
+Node: Getting Accuracy891875
+Node: Try To Round894537
+Node: Setting precision895436
+Ref: table-predefined-precision-strings896120
+Node: Setting the rounding mode897909
+Ref: table-gawk-rounding-modes898273
+Ref: Setting the rounding mode-Footnote-1901728
+Node: Arbitrary Precision Integers901907
+Ref: Arbitrary Precision Integers-Footnote-1904893
+Node: POSIX Floating Point Problems905042
+Ref: POSIX Floating Point Problems-Footnote-1908915
+Node: Floating point summary908953
+Node: Dynamic Extensions911147
+Node: Extension Intro912699
+Node: Plugin License913965
+Node: Extension Mechanism Outline914762
+Ref: figure-load-extension915190
+Ref: figure-register-new-function916670
+Ref: figure-call-new-function917674
+Node: Extension API Description919660
+Node: Extension API Functions Introduction921110
+Node: General Data Types925934
+Ref: General Data Types-Footnote-1931673
+Node: Memory Allocation Functions931972
+Ref: Memory Allocation Functions-Footnote-1934811
+Node: Constructor Functions934907
+Node: Registration Functions936641
+Node: Extension Functions937326
+Node: Exit Callback Functions939623
+Node: Extension Version String940871
+Node: Input Parsers941536
+Node: Output Wrappers951413
+Node: Two-way processors955928
+Node: Printing Messages958132
+Ref: Printing Messages-Footnote-1959208
+Node: Updating `ERRNO'959360
+Node: Requesting Values960100
+Ref: table-value-types-returned960828
+Node: Accessing Parameters961785
+Node: Symbol Table Access963016
+Node: Symbol table by name963530
+Node: Symbol table by cookie965511
+Ref: Symbol table by cookie-Footnote-1969655
+Node: Cached values969718
+Ref: Cached values-Footnote-1973217
+Node: Array Manipulation973308
+Ref: Array Manipulation-Footnote-1974406
+Node: Array Data Types974443
+Ref: Array Data Types-Footnote-1977098
+Node: Array Functions977190
+Node: Flattening Arrays981044
+Node: Creating Arrays987936
+Node: Extension API Variables992705
+Node: Extension Versioning993341
+Node: Extension API Informational Variables995242
+Node: Extension API Boilerplate996330
+Node: Finding Extensions1000139
+Node: Extension Example1000699
+Node: Internal File Description1001471
+Node: Internal File Ops1005538
+Ref: Internal File Ops-Footnote-11017208
+Node: Using Internal File Ops1017348
+Ref: Using Internal File Ops-Footnote-11019731
+Node: Extension Samples1020004
+Node: Extension Sample File Functions1021530
+Node: Extension Sample Fnmatch1029168
+Node: Extension Sample Fork1030659
+Node: Extension Sample Inplace1031874
+Node: Extension Sample Ord1033549
+Node: Extension Sample Readdir1034385
+Ref: table-readdir-file-types1035261
+Node: Extension Sample Revout1036072
+Node: Extension Sample Rev2way1036662
+Node: Extension Sample Read write array1037402
+Node: Extension Sample Readfile1039342
+Node: Extension Sample Time1040437
+Node: Extension Sample API Tests1041786
+Node: gawkextlib1042277
+Node: Extension summary1044914
+Node: Extension Exercises1048591
+Node: Language History1049313
+Node: V7/SVR3.11050969
+Node: SVR41053150
+Node: POSIX1054595
+Node: BTL1055984
+Node: POSIX/GNU1056718
+Node: Feature History1062282
+Node: Common Extensions1075380
+Node: Ranges and Locales1076704
+Ref: Ranges and Locales-Footnote-11081322
+Ref: Ranges and Locales-Footnote-21081349
+Ref: Ranges and Locales-Footnote-31081583
+Node: Contributors1081804
+Node: History summary1087345
+Node: Installation1088715
+Node: Gawk Distribution1089661
+Node: Getting1090145
+Node: Extracting1090968
+Node: Distribution contents1092603
+Node: Unix Installation1098320
+Node: Quick Installation1098937
+Node: Additional Configuration Options1101361
+Node: Configuration Philosophy1103099
+Node: Non-Unix Installation1105468
+Node: PC Installation1105926
+Node: PC Binary Installation1107245
+Node: PC Compiling1109093
+Ref: PC Compiling-Footnote-11112114
+Node: PC Testing1112223
+Node: PC Using1113399
+Node: Cygwin1117514
+Node: MSYS1118337
+Node: VMS Installation1118837
+Node: VMS Compilation1119629
+Ref: VMS Compilation-Footnote-11120851
+Node: VMS Dynamic Extensions1120909
+Node: VMS Installation Details1122593
+Node: VMS Running1124845
+Node: VMS GNV1127681
+Node: VMS Old Gawk1128415
+Node: Bugs1128885
+Node: Other Versions1132768
+Node: Installation summary1139190
+Node: Notes1140246
+Node: Compatibility Mode1141111
+Node: Additions1141893
+Node: Accessing The Source1142818
+Node: Adding Code1144254
+Node: New Ports1150419
+Node: Derived Files1154901
+Ref: Derived Files-Footnote-11160376
+Ref: Derived Files-Footnote-21160410
+Ref: Derived Files-Footnote-31161006
+Node: Future Extensions1161120
+Node: Implementation Limitations1161726
+Node: Extension Design1162974
+Node: Old Extension Problems1164128
+Ref: Old Extension Problems-Footnote-11165645
+Node: Extension New Mechanism Goals1165702
+Ref: Extension New Mechanism Goals-Footnote-11169062
+Node: Extension Other Design Decisions1169251
+Node: Extension Future Growth1171359
+Node: Old Extension Mechanism1172195
+Node: Notes summary1173957
+Node: Basic Concepts1175143
+Node: Basic High Level1175824
+Ref: figure-general-flow1176096
+Ref: figure-process-flow1176695
+Ref: Basic High Level-Footnote-11179924
+Node: Basic Data Typing1180109
+Node: Glossary1183437
+Node: Copying1208595
+Node: GNU Free Documentation License1246151
+Node: Index1271287

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index a1781700..4da01e05 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -7801,10 +7801,12 @@ is so-called @dfn{comma-separated values} (CSV) data. Many spreadsheet programs,
for example, can export their data into text files, where each record is
terminated with a newline, and fields are separated by commas. If only
commas separated the data, there wouldn't be an issue. The problem comes when
-one of the fields contains an @emph{embedded} comma. Although there is no
-formal standard specification for CSV data,@footnote{At least, we don't know of one.}
-in such cases, most programs embed the field in double quotes. So we might
-have data like this:
+one of the fields contains an @emph{embedded} comma.
+In such cases, most programs embed the field in double quotes.@footnote{The
+CSV format lacked a formal standard definition for many years.
+@uref{http://www.ietf.org/rfc/rfc4180.txt, RFC 4180}
+standardizes the most common practices.}
+So we might have data like this:
@example
@c file eg/misc/addresses.csv
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 1ea028d4..7979b0ad 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -7402,10 +7402,12 @@ is so-called @dfn{comma-separated values} (CSV) data. Many spreadsheet programs,
for example, can export their data into text files, where each record is
terminated with a newline, and fields are separated by commas. If only
commas separated the data, there wouldn't be an issue. The problem comes when
-one of the fields contains an @emph{embedded} comma. Although there is no
-formal standard specification for CSV data,@footnote{At least, we don't know of one.}
-in such cases, most programs embed the field in double quotes. So we might
-have data like this:
+one of the fields contains an @emph{embedded} comma.
+In such cases, most programs embed the field in double quotes.@footnote{The
+CSV format lacked a formal standard definition for many years.
+@uref{http://www.ietf.org/rfc/rfc4180.txt, RFC 4180}
+standardizes the most common practices.}
+So we might have data like this:
@example
@c file eg/misc/addresses.csv