summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2023-09-11 17:53:36 -0700
committerArnold D. Robbins <arnold@skeeve.com>2023-09-11 17:53:36 -0700
commit37bf2e3da2a2b6d4bbccde4037719c46d210a2b9 (patch)
treefa103bd2f59822baf520fb72f4c876f7fca9366e
parentd91ddc8796af195de4537d609eb4fa3214a1b971 (diff)
parentc152e2d2d601f37b6a8dd354c27e2cb81e7ccca5 (diff)
downloadgawk-37bf2e3da2a2b6d4bbccde4037719c46d210a2b9.tar.gz
Merge branch 'master' into porting
-rw-r--r--ChangeLog4
-rw-r--r--doc/ChangeLog8
-rw-r--r--doc/awkcard.in2
-rw-r--r--doc/gawk.info1056
-rw-r--r--doc/gawk.texi8
-rw-r--r--doc/gawktexi.in8
-rw-r--r--field.c2
7 files changed, 544 insertions, 544 deletions
diff --git a/ChangeLog b/ChangeLog
index b484d17..17aa32f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2023-09-11 Arnold D. Robbins <arnold@skeeve.com>
+
+ * field.c (do_split): Fix some whitespace.
+
2023-09-01 Miguel Pineiro Jr <mpj@pineiro.cc>
Fix the handling of zero-length matches in multibyte locales.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index d66ca5b..42abba9 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,6 +1,12 @@
2023-09-11 Arnold D. Robbins <arnold@skeeve.com>
- * gawktexi.in (Feature History): Node the --csv option in
+ * gawktexi.in: Remove vestiges of doc from when FS == ","
+ did CSV parsing. Whew.
+ * awkcard.in: Ditto.
+
+2023-09-11 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Feature History): Note the --csv option in
what changed for 5.3.0.
2023-08-25 Arnold D. Robbins <arnold@skeeve.com>
diff --git a/doc/awkcard.in b/doc/awkcard.in
index 5f89bd5..fcbaa8c 100644
--- a/doc/awkcard.in
+++ b/doc/awkcard.in
@@ -1029,8 +1029,6 @@ is a single space, fields are separated
by runs of spaces and/or tabs
and/or newlines.
Leading and trailing whitespace are ignored.
-\*(CLIn the second special case that \*(FCFS\fP is a comma,
-then CSV-splitting is done.\*(CD
\*(CBThe value of \*(FCIGNORECASE\fP
also affects how fields are split when
\*(FCFS\fP is a regular expression.\*(CD
diff --git a/doc/gawk.info b/doc/gawk.info
index 73c134e..66fef53 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -5538,10 +5538,6 @@ value of ‘FS’ (‘==’ means “is equal to”):
Fields are separated by runs of whitespace. Leading and trailing
whitespace are ignored. This is the default.
-‘FS == ","’
- Fields are separated by commas, with quoting of fields and special
- rules involved.
-
‘FS == ANY OTHER SINGLE CHARACTER’
Fields are separated by each occurrence of the character. Multiple
successive occurrences delimit empty fields, as do leading and
@@ -5768,8 +5764,8 @@ File: gawk.info, Node: Splitting By Content, Next: Testing field creation, Pr
4.7 Defining Fields by Content
==============================
-*FIXME*: This whole section needs rewriting now that ‘gawk’ has built-in
-CSV parsing. Sigh.
+ NOTE: This whole section needs rewriting now that ‘gawk’ has
+ built-in CSV parsing. Sigh.
* Menu:
@@ -39245,7 +39241,7 @@ Index
* sidebar, Changing FS Does Not Affect the Fields: Full Line Fields.
(line 14)
* sidebar, FS and IGNORECASE: Field Splitting Summary.
- (line 45)
+ (line 41)
* sidebar, Piping into sh: Redirection. (line 134)
* sidebar, A Constant’s Base Does Not Affect Its Value: Nondecimal-numbers.
(line 63)
@@ -39813,529 +39809,529 @@ Node: Full Line Fields256553
Ref: Full Line Fields-Footnote-1258133
Ref: Full Line Fields-Footnote-2258179
Node: Field Splitting Summary258287
-Node: Constant Size260721
-Node: Fixed width data261465
-Node: Skipping intervening264984
-Node: Allowing trailing data265786
-Node: Fields with fixed data266851
-Node: Splitting By Content268477
-Ref: Splitting By Content-Footnote-1272746
-Node: More CSV272909
-Node: FS versus FPAT274562
-Node: Testing field creation275771
-Node: Multiple Line277549
-Node: Getline284031
-Node: Plain Getline286617
-Node: Getline/Variable289267
-Node: Getline/File290464
-Node: Getline/Variable/File291912
-Ref: Getline/Variable/File-Footnote-1293557
-Node: Getline/Pipe293653
-Node: Getline/Variable/Pipe296466
-Node: Getline/Coprocess297649
-Node: Getline/Variable/Coprocess298972
-Node: Getline Notes299738
-Node: Getline Summary302699
-Ref: table-getline-variants303143
-Node: Read Timeout304048
-Ref: Read Timeout-Footnote-1308012
-Node: Retrying Input308070
-Node: Command-line directories309337
-Node: Input Summary310275
-Node: Input Exercises313655
-Node: Printing314095
-Node: Print316038
-Node: Print Examples317544
-Node: Output Separators320397
-Node: OFMT322508
-Node: Printf324223
-Node: Basic Printf325028
-Node: Control Letters326664
-Node: Format Modifiers332133
-Node: Printf Examples338419
-Node: Redirection340964
-Node: Special FD348038
-Ref: Special FD-Footnote-1351328
-Node: Special Files351414
-Node: Other Inherited Files352043
-Node: Special Network353108
-Node: Special Caveats353996
-Node: Close Files And Pipes354979
-Ref: Close Files And Pipes-Footnote-1361115
-Node: Close Return Value361271
-Ref: table-close-pipe-return-values362546
-Ref: Close Return Value-Footnote-1363380
-Node: Noflush363536
-Node: Nonfatal365048
-Node: Output Summary367465
-Node: Output Exercises368751
-Node: Expressions369442
-Node: Values370644
-Node: Constants371322
-Node: Scalar Constants372019
-Ref: Scalar Constants-Footnote-1374597
-Ref: Scalar Constants-Footnote-2374847
-Node: Nondecimal-numbers374927
-Node: Regexp Constants378048
-Node: Using Constant Regexps378594
-Node: Standard Regexp Constants379240
-Node: Strong Regexp Constants382540
-Node: Variables386391
-Node: Using Variables387056
-Node: Assignment Options389036
-Node: Conversion391598
-Node: Strings And Numbers392130
-Ref: Strings And Numbers-Footnote-1395349
-Node: Locale influences conversions395458
-Ref: table-locale-affects398308
-Node: All Operators398951
-Node: Arithmetic Ops399592
-Node: Concatenation402422
-Ref: Concatenation-Footnote-1405372
-Node: Assignment Ops405495
-Ref: table-assign-ops410634
-Node: Increment Ops412016
-Node: Truth Values and Conditions415615
-Node: Truth Values416741
-Node: Typing and Comparison417832
-Node: Variable Typing418668
-Ref: Variable Typing-Footnote-1425330
-Ref: Variable Typing-Footnote-2425410
-Node: Comparison Operators425493
-Ref: table-relational-ops425920
-Node: POSIX String Comparison429606
-Ref: POSIX String Comparison-Footnote-1431365
-Ref: POSIX String Comparison-Footnote-2431508
-Node: Boolean Ops431592
-Ref: Boolean Ops-Footnote-1436285
-Node: Conditional Exp436381
-Node: Function Calls438167
-Node: Precedence442117
-Node: Locales445994
-Node: Expressions Summary447676
-Node: Patterns and Actions450339
-Node: Pattern Overview451481
-Node: Regexp Patterns453207
-Node: Expression Patterns453753
-Node: Ranges457662
-Node: BEGIN/END460840
-Node: Using BEGIN/END461653
-Ref: Using BEGIN/END-Footnote-1464563
-Node: I/O And BEGIN/END464673
-Node: BEGINFILE/ENDFILE467154
-Node: Empty470595
-Node: Using Shell Variables470912
-Node: Action Overview473250
-Node: Statements475685
-Node: If Statement477583
-Node: While Statement479152
-Node: Do Statement481240
-Node: For Statement482426
-Node: Switch Statement485783
-Node: Break Statement488334
-Node: Continue Statement490526
-Node: Next Statement492458
-Node: Nextfile Statement494955
-Node: Exit Statement497816
-Node: Built-in Variables500349
-Node: User-modified501528
-Node: Auto-set509739
-Ref: Auto-set-Footnote-1527838
-Ref: Auto-set-Footnote-2528056
-Node: ARGC and ARGV528112
-Node: Pattern Action Summary532551
-Node: Arrays535167
-Node: Array Basics536544
-Node: Array Intro537394
-Ref: figure-array-elements539410
-Ref: Array Intro-Footnote-1542279
-Node: Reference to Elements542411
-Node: Assigning Elements544933
-Node: Array Example545428
-Node: Scanning an Array547397
-Node: Controlling Scanning550494
-Ref: Controlling Scanning-Footnote-1557140
-Node: Numeric Array Subscripts557464
-Node: Uninitialized Subscripts559738
-Node: Delete561417
-Ref: Delete-Footnote-1564231
-Node: Multidimensional564288
-Node: Multiscanning567493
-Node: Arrays of Arrays569165
-Node: Arrays Summary574065
-Node: Functions576254
-Node: Built-in577314
-Node: Calling Built-in578503
-Node: Boolean Functions580550
-Node: Numeric Functions581120
-Ref: Numeric Functions-Footnote-1585313
-Ref: Numeric Functions-Footnote-2585997
-Ref: Numeric Functions-Footnote-3586049
-Node: String Functions586325
-Ref: String Functions-Footnote-1612801
-Ref: String Functions-Footnote-2612935
-Ref: String Functions-Footnote-3613195
-Node: Gory Details613282
-Ref: table-sub-escapes615189
-Ref: table-sub-proposed616835
-Ref: table-posix-sub618345
-Ref: table-gensub-escapes620033
-Ref: Gory Details-Footnote-1620967
-Node: I/O Functions621121
-Ref: table-system-return-values627808
-Ref: I/O Functions-Footnote-1629979
-Ref: I/O Functions-Footnote-2630127
-Node: Time Functions630247
-Ref: Time Functions-Footnote-1641403
-Ref: Time Functions-Footnote-2641479
-Ref: Time Functions-Footnote-3641641
-Ref: Time Functions-Footnote-4641752
-Ref: Time Functions-Footnote-5641870
-Ref: Time Functions-Footnote-6642105
-Node: Bitwise Functions642387
-Ref: table-bitwise-ops642989
-Ref: Bitwise Functions-Footnote-1649243
-Ref: Bitwise Functions-Footnote-2649422
-Node: Type Functions649619
-Node: I18N Functions653212
-Node: User-defined654955
-Node: Definition Syntax655775
-Ref: Definition Syntax-Footnote-1661603
-Node: Function Example661680
-Ref: Function Example-Footnote-1664659
-Node: Function Calling664681
-Node: Calling A Function665275
-Node: Variable Scope666245
-Node: Pass By Value/Reference669299
-Node: Function Caveats672031
-Ref: Function Caveats-Footnote-1674126
-Node: Return Statement674250
-Node: Dynamic Typing677305
-Node: Indirect Calls679697
-Node: Functions Summary690856
-Node: Library Functions693633
-Ref: Library Functions-Footnote-1697181
-Ref: Library Functions-Footnote-2697324
-Node: Library Names697499
-Ref: Library Names-Footnote-1701293
-Ref: Library Names-Footnote-2701520
-Node: General Functions701616
-Node: Strtonum Function702886
-Node: Assert Function705968
-Node: Round Function709420
-Node: Cliff Random Function710998
-Node: Ordinal Functions712031
-Ref: Ordinal Functions-Footnote-1715140
-Ref: Ordinal Functions-Footnote-2715392
-Node: Join Function715606
-Ref: Join Function-Footnote-1717409
-Node: Getlocaltime Function717613
-Node: Readfile Function721387
-Node: Shell Quoting723416
-Node: Isnumeric Function724872
-Node: To CSV Function726308
-Node: Data File Management728384
-Node: Filetrans Function729016
-Node: Rewind Function733310
-Node: File Checking735289
-Ref: File Checking-Footnote-1736661
-Node: Empty Files736868
-Node: Ignoring Assigns738935
-Node: Getopt Function740509
-Ref: Getopt Function-Footnote-1756343
-Node: Passwd Functions756555
-Ref: Passwd Functions-Footnote-1765737
-Node: Group Functions765825
-Ref: Group Functions-Footnote-1773963
-Node: Walking Arrays774176
-Node: Library Functions Summary777224
-Node: Library Exercises778648
-Node: Sample Programs779135
-Node: Running Examples779917
-Node: Clones780669
-Node: Cut Program781941
-Node: Egrep Program792382
-Node: Id Program801699
-Node: Split Program811813
-Ref: Split Program-Footnote-1822048
-Node: Tee Program822235
-Node: Uniq Program825144
-Node: Wc Program833009
-Node: Bytes vs. Characters833404
-Node: Using extensions835006
-Node: wc program835786
-Node: Miscellaneous Programs840792
-Node: Dupword Program842021
-Node: Alarm Program844084
-Node: Translate Program848997
-Ref: Translate Program-Footnote-1853738
-Node: Labels Program854016
-Ref: Labels Program-Footnote-1857457
-Node: Word Sorting857549
-Node: History Sorting861743
-Node: Extract Program864018
-Node: Simple Sed872287
-Node: Igawk Program875503
-Ref: Igawk Program-Footnote-1890750
-Ref: Igawk Program-Footnote-2890956
-Ref: Igawk Program-Footnote-3891086
-Node: Anagram Program891213
-Node: Signature Program894309
-Node: Programs Summary895561
-Node: Programs Exercises896819
-Ref: Programs Exercises-Footnote-1901135
-Node: Advanced Features901221
-Node: Nondecimal Data903715
-Node: Boolean Typed Values905345
-Node: Array Sorting907320
-Node: Controlling Array Traversal908049
-Ref: Controlling Array Traversal-Footnote-1916556
-Node: Array Sorting Functions916678
-Ref: Array Sorting Functions-Footnote-1922797
-Node: Two-way I/O923005
-Ref: Two-way I/O-Footnote-1931000
-Ref: Two-way I/O-Footnote-2931191
-Node: TCP/IP Networking931273
-Node: Profiling934453
-Node: Persistent Memory944163
-Ref: Persistent Memory-Footnote-1953773
-Node: Extension Philosophy953904
-Node: Advanced Features Summary955439
-Node: Internationalization957709
-Node: I18N and L10N959415
-Node: Explaining gettext960110
-Ref: Explaining gettext-Footnote-1966263
-Ref: Explaining gettext-Footnote-2966458
-Node: Programmer i18n966623
-Ref: Programmer i18n-Footnote-1971736
-Node: Translator i18n971785
-Node: String Extraction972621
-Ref: String Extraction-Footnote-1973799
-Node: Printf Ordering973897
-Ref: Printf Ordering-Footnote-1976759
-Node: I18N Portability976827
-Ref: I18N Portability-Footnote-1979401
-Node: I18N Example979472
-Ref: I18N Example-Footnote-1982872
-Ref: I18N Example-Footnote-2982948
-Node: Gawk I18N983065
-Node: I18N Summary983721
-Node: Debugger985122
-Node: Debugging986146
-Node: Debugging Concepts986595
-Node: Debugging Terms988421
-Node: Awk Debugging991034
-Ref: Awk Debugging-Footnote-1992011
-Node: Sample Debugging Session992151
-Node: Debugger Invocation992703
-Node: Finding The Bug994332
-Node: List of Debugger Commands1001018
-Node: Breakpoint Control1002395
-Node: Debugger Execution Control1006227
-Node: Viewing And Changing Data1009707
-Node: Execution Stack1013445
-Node: Debugger Info1015126
-Node: Miscellaneous Debugger Commands1019425
-Node: Readline Support1024678
-Node: Limitations1025624
-Node: Debugging Summary1028268
-Node: Namespaces1029567
-Node: Global Namespace1030694
-Node: Qualified Names1032139
-Node: Default Namespace1033174
-Node: Changing The Namespace1033949
-Node: Naming Rules1035643
-Node: Internal Name Management1037558
-Node: Namespace Example1038628
-Node: Namespace And Features1041211
-Node: Namespace Summary1042668
-Node: Arbitrary Precision Arithmetic1044181
-Node: Computer Arithmetic1045700
-Ref: table-numeric-ranges1049517
-Ref: table-floating-point-ranges1050015
-Ref: Computer Arithmetic-Footnote-11050674
-Node: Math Definitions1050733
-Ref: table-ieee-formats1053778
-Node: MPFR features1054352
-Node: MPFR On Parole1054805
-Ref: MPFR On Parole-Footnote-11055649
-Node: MPFR Intro1055808
-Node: FP Math Caution1057498
-Ref: FP Math Caution-Footnote-11058572
-Node: Inexactness of computations1058949
-Node: Inexact representation1059980
-Node: Comparing FP Values1061363
-Node: Errors accumulate1062621
-Node: Strange values1064088
-Ref: Strange values-Footnote-11066754
-Node: Getting Accuracy1066859
-Node: Try To Round1069596
-Node: Setting precision1070503
-Ref: table-predefined-precision-strings1071208
-Node: Setting the rounding mode1073093
-Ref: table-gawk-rounding-modes1073475
-Ref: Setting the rounding mode-Footnote-11077533
-Node: Arbitrary Precision Integers1077716
-Ref: Arbitrary Precision Integers-Footnote-11080928
-Node: Checking for MPFR1081084
-Node: POSIX Floating Point Problems1082574
-Ref: POSIX Floating Point Problems-Footnote-11087438
-Node: Floating point summary1087476
-Node: Dynamic Extensions1089740
-Node: Extension Intro1091339
-Node: Plugin License1092647
-Node: Extension Mechanism Outline1093460
-Ref: figure-load-extension1093911
-Ref: figure-register-new-function1095496
-Ref: figure-call-new-function1096606
-Node: Extension API Description1098730
-Node: Extension API Functions Introduction1100459
-Ref: table-api-std-headers1102357
-Node: General Data Types1106821
-Ref: General Data Types-Footnote-11115989
-Node: Memory Allocation Functions1116304
-Ref: Memory Allocation Functions-Footnote-11121029
-Node: Constructor Functions1121128
-Node: API Ownership of MPFR and GMP Values1125033
-Node: Registration Functions1126594
-Node: Extension Functions1127298
-Node: Exit Callback Functions1132874
-Node: Extension Version String1134193
-Node: Input Parsers1134888
-Node: Output Wrappers1149532
-Node: Two-way processors1154380
-Node: Printing Messages1156741
-Ref: Printing Messages-Footnote-11157955
-Node: Updating ERRNO1158110
-Node: Requesting Values1158909
-Ref: table-value-types-returned1159662
-Node: Accessing Parameters1160771
-Node: Symbol Table Access1162055
-Node: Symbol table by name1162571
-Ref: Symbol table by name-Footnote-11165782
-Node: Symbol table by cookie1165914
-Ref: Symbol table by cookie-Footnote-11170195
-Node: Cached values1170259
-Ref: Cached values-Footnote-11173903
-Node: Array Manipulation1174060
-Ref: Array Manipulation-Footnote-11175163
-Node: Array Data Types1175200
-Ref: Array Data Types-Footnote-11178022
-Node: Array Functions1178122
-Node: Flattening Arrays1183151
-Node: Creating Arrays1190203
-Node: Redirection API1195053
-Node: Extension API Variables1198074
-Node: Extension Versioning1198799
-Ref: gawk-api-version1199236
-Node: Extension GMP/MPFR Versioning1201024
-Node: Extension API Informational Variables1202730
-Node: Extension API Boilerplate1203891
-Node: Changes from API V11208027
-Node: Finding Extensions1209661
-Node: Extension Example1210236
-Node: Internal File Description1211060
-Node: Internal File Ops1215384
-Ref: Internal File Ops-Footnote-11226942
-Node: Using Internal File Ops1227090
-Ref: Using Internal File Ops-Footnote-11229521
-Node: Extension Samples1229799
-Node: Extension Sample File Functions1231368
-Node: Extension Sample Fnmatch1239506
-Node: Extension Sample Fork1241101
-Node: Extension Sample Inplace1242377
-Node: Extension Sample Ord1246049
-Node: Extension Sample Readdir1246925
-Ref: table-readdir-file-types1247714
-Node: Extension Sample Revout1249075
-Node: Extension Sample Rev2way1249672
-Node: Extension Sample Read write array1250424
-Node: Extension Sample Readfile1253698
-Node: Extension Sample Time1254829
-Node: Extension Sample API Tests1257119
-Node: gawkextlib1257627
-Node: Extension summary1260663
-Node: Extension Exercises1264521
-Node: Language History1265799
-Node: V7/SVR3.11267513
-Node: SVR41269863
-Node: POSIX1271395
-Node: BTL1272820
-Node: POSIX/GNU1273589
-Node: Feature History1280120
-Node: Common Extensions1299727
-Node: Ranges and Locales1301204
-Ref: Ranges and Locales-Footnote-11306005
-Ref: Ranges and Locales-Footnote-21306032
-Ref: Ranges and Locales-Footnote-31306271
-Node: Contributors1306494
-Node: History summary1312699
-Node: Installation1314145
-Node: Gawk Distribution1315109
-Node: Getting1315601
-Node: Extracting1316600
-Node: Distribution contents1318312
-Node: Unix Installation1326392
-Node: Quick Installation1327214
-Node: Compiling with MPFR1329760
-Node: Shell Startup Files1330466
-Node: Additional Configuration Options1331623
-Node: Configuration Philosophy1334010
-Node: Compiling from Git1336512
-Node: Building the Documentation1337071
-Node: Non-Unix Installation1338483
-Node: PC Installation1338959
-Node: PC Binary Installation1339832
-Node: PC Compiling1340737
-Node: PC Using1341915
-Node: Cygwin1345643
-Node: MSYS1346899
-Node: OpenVMS Installation1347531
-Node: OpenVMS Compilation1348212
-Ref: OpenVMS Compilation-Footnote-11349695
-Node: OpenVMS Dynamic Extensions1349757
-Node: OpenVMS Installation Details1351393
-Node: OpenVMS Running1353828
-Node: OpenVMS GNV1357965
-Node: Bugs1358720
-Node: Bug definition1359644
-Node: Bug address1363295
-Node: Usenet1366886
-Node: Performance bugs1368117
-Node: Asking for help1371135
-Node: Maintainers1373126
-Node: Other Versions1374153
-Node: Installation summary1383496
-Node: Notes1384880
-Node: Compatibility Mode1385690
-Node: Additions1386512
-Node: Accessing The Source1387457
-Node: Adding Code1388992
-Node: New Ports1396128
-Node: Derived Files1400638
-Ref: Derived Files-Footnote-11406485
-Ref: Derived Files-Footnote-21406520
-Ref: Derived Files-Footnote-31407137
-Node: Future Extensions1407251
-Node: Implementation Limitations1407923
-Node: Extension Design1409165
-Node: Old Extension Problems1410329
-Ref: Old Extension Problems-Footnote-11411905
-Node: Extension New Mechanism Goals1411966
-Ref: Extension New Mechanism Goals-Footnote-11415462
-Node: Extension Other Design Decisions1415663
-Node: Extension Future Growth1417862
-Node: Notes summary1418486
-Node: Basic Concepts1419699
-Node: Basic High Level1420384
-Ref: figure-general-flow1420666
-Ref: figure-process-flow1421373
-Ref: Basic High Level-Footnote-11424774
-Node: Basic Data Typing1424963
-Node: Glossary1428381
-Node: Copying1461503
-Node: GNU Free Documentation License1499264
-Node: Index1524587
+Node: Constant Size260611
+Node: Fixed width data261355
+Node: Skipping intervening264874
+Node: Allowing trailing data265676
+Node: Fields with fixed data266741
+Node: Splitting By Content268367
+Ref: Splitting By Content-Footnote-1272643
+Node: More CSV272806
+Node: FS versus FPAT274459
+Node: Testing field creation275668
+Node: Multiple Line277446
+Node: Getline283928
+Node: Plain Getline286514
+Node: Getline/Variable289164
+Node: Getline/File290361
+Node: Getline/Variable/File291809
+Ref: Getline/Variable/File-Footnote-1293454
+Node: Getline/Pipe293550
+Node: Getline/Variable/Pipe296363
+Node: Getline/Coprocess297546
+Node: Getline/Variable/Coprocess298869
+Node: Getline Notes299635
+Node: Getline Summary302596
+Ref: table-getline-variants303040
+Node: Read Timeout303945
+Ref: Read Timeout-Footnote-1307909
+Node: Retrying Input307967
+Node: Command-line directories309234
+Node: Input Summary310172
+Node: Input Exercises313552
+Node: Printing313992
+Node: Print315935
+Node: Print Examples317441
+Node: Output Separators320294
+Node: OFMT322405
+Node: Printf324120
+Node: Basic Printf324925
+Node: Control Letters326561
+Node: Format Modifiers332030
+Node: Printf Examples338316
+Node: Redirection340861
+Node: Special FD347935
+Ref: Special FD-Footnote-1351225
+Node: Special Files351311
+Node: Other Inherited Files351940
+Node: Special Network353005
+Node: Special Caveats353893
+Node: Close Files And Pipes354876
+Ref: Close Files And Pipes-Footnote-1361012
+Node: Close Return Value361168
+Ref: table-close-pipe-return-values362443
+Ref: Close Return Value-Footnote-1363277
+Node: Noflush363433
+Node: Nonfatal364945
+Node: Output Summary367362
+Node: Output Exercises368648
+Node: Expressions369339
+Node: Values370541
+Node: Constants371219
+Node: Scalar Constants371916
+Ref: Scalar Constants-Footnote-1374494
+Ref: Scalar Constants-Footnote-2374744
+Node: Nondecimal-numbers374824
+Node: Regexp Constants377945
+Node: Using Constant Regexps378491
+Node: Standard Regexp Constants379137
+Node: Strong Regexp Constants382437
+Node: Variables386288
+Node: Using Variables386953
+Node: Assignment Options388933
+Node: Conversion391495
+Node: Strings And Numbers392027
+Ref: Strings And Numbers-Footnote-1395246
+Node: Locale influences conversions395355
+Ref: table-locale-affects398205
+Node: All Operators398848
+Node: Arithmetic Ops399489
+Node: Concatenation402319
+Ref: Concatenation-Footnote-1405269
+Node: Assignment Ops405392
+Ref: table-assign-ops410531
+Node: Increment Ops411913
+Node: Truth Values and Conditions415512
+Node: Truth Values416638
+Node: Typing and Comparison417729
+Node: Variable Typing418565
+Ref: Variable Typing-Footnote-1425227
+Ref: Variable Typing-Footnote-2425307
+Node: Comparison Operators425390
+Ref: table-relational-ops425817
+Node: POSIX String Comparison429503
+Ref: POSIX String Comparison-Footnote-1431262
+Ref: POSIX String Comparison-Footnote-2431405
+Node: Boolean Ops431489
+Ref: Boolean Ops-Footnote-1436182
+Node: Conditional Exp436278
+Node: Function Calls438064
+Node: Precedence442014
+Node: Locales445891
+Node: Expressions Summary447573
+Node: Patterns and Actions450236
+Node: Pattern Overview451378
+Node: Regexp Patterns453104
+Node: Expression Patterns453650
+Node: Ranges457559
+Node: BEGIN/END460737
+Node: Using BEGIN/END461550
+Ref: Using BEGIN/END-Footnote-1464460
+Node: I/O And BEGIN/END464570
+Node: BEGINFILE/ENDFILE467051
+Node: Empty470492
+Node: Using Shell Variables470809
+Node: Action Overview473147
+Node: Statements475582
+Node: If Statement477480
+Node: While Statement479049
+Node: Do Statement481137
+Node: For Statement482323
+Node: Switch Statement485680
+Node: Break Statement488231
+Node: Continue Statement490423
+Node: Next Statement492355
+Node: Nextfile Statement494852
+Node: Exit Statement497713
+Node: Built-in Variables500246
+Node: User-modified501425
+Node: Auto-set509636
+Ref: Auto-set-Footnote-1527735
+Ref: Auto-set-Footnote-2527953
+Node: ARGC and ARGV528009
+Node: Pattern Action Summary532448
+Node: Arrays535064
+Node: Array Basics536441
+Node: Array Intro537291
+Ref: figure-array-elements539307
+Ref: Array Intro-Footnote-1542176
+Node: Reference to Elements542308
+Node: Assigning Elements544830
+Node: Array Example545325
+Node: Scanning an Array547294
+Node: Controlling Scanning550391
+Ref: Controlling Scanning-Footnote-1557037
+Node: Numeric Array Subscripts557361
+Node: Uninitialized Subscripts559635
+Node: Delete561314
+Ref: Delete-Footnote-1564128
+Node: Multidimensional564185
+Node: Multiscanning567390
+Node: Arrays of Arrays569062
+Node: Arrays Summary573962
+Node: Functions576151
+Node: Built-in577211
+Node: Calling Built-in578400
+Node: Boolean Functions580447
+Node: Numeric Functions581017
+Ref: Numeric Functions-Footnote-1585210
+Ref: Numeric Functions-Footnote-2585894
+Ref: Numeric Functions-Footnote-3585946
+Node: String Functions586222
+Ref: String Functions-Footnote-1612698
+Ref: String Functions-Footnote-2612832
+Ref: String Functions-Footnote-3613092
+Node: Gory Details613179
+Ref: table-sub-escapes615086
+Ref: table-sub-proposed616732
+Ref: table-posix-sub618242
+Ref: table-gensub-escapes619930
+Ref: Gory Details-Footnote-1620864
+Node: I/O Functions621018
+Ref: table-system-return-values627705
+Ref: I/O Functions-Footnote-1629876
+Ref: I/O Functions-Footnote-2630024
+Node: Time Functions630144
+Ref: Time Functions-Footnote-1641300
+Ref: Time Functions-Footnote-2641376
+Ref: Time Functions-Footnote-3641538
+Ref: Time Functions-Footnote-4641649
+Ref: Time Functions-Footnote-5641767
+Ref: Time Functions-Footnote-6642002
+Node: Bitwise Functions642284
+Ref: table-bitwise-ops642886
+Ref: Bitwise Functions-Footnote-1649140
+Ref: Bitwise Functions-Footnote-2649319
+Node: Type Functions649516
+Node: I18N Functions653109
+Node: User-defined654852
+Node: Definition Syntax655672
+Ref: Definition Syntax-Footnote-1661500
+Node: Function Example661577
+Ref: Function Example-Footnote-1664556
+Node: Function Calling664578
+Node: Calling A Function665172
+Node: Variable Scope666142
+Node: Pass By Value/Reference669196
+Node: Function Caveats671928
+Ref: Function Caveats-Footnote-1674023
+Node: Return Statement674147
+Node: Dynamic Typing677202
+Node: Indirect Calls679594
+Node: Functions Summary690753
+Node: Library Functions693530
+Ref: Library Functions-Footnote-1697078
+Ref: Library Functions-Footnote-2697221
+Node: Library Names697396
+Ref: Library Names-Footnote-1701190
+Ref: Library Names-Footnote-2701417
+Node: General Functions701513
+Node: Strtonum Function702783
+Node: Assert Function705865
+Node: Round Function709317
+Node: Cliff Random Function710895
+Node: Ordinal Functions711928
+Ref: Ordinal Functions-Footnote-1715037
+Ref: Ordinal Functions-Footnote-2715289
+Node: Join Function715503
+Ref: Join Function-Footnote-1717306
+Node: Getlocaltime Function717510
+Node: Readfile Function721284
+Node: Shell Quoting723313
+Node: Isnumeric Function724769
+Node: To CSV Function726205
+Node: Data File Management728281
+Node: Filetrans Function728913
+Node: Rewind Function733207
+Node: File Checking735186
+Ref: File Checking-Footnote-1736558
+Node: Empty Files736765
+Node: Ignoring Assigns738832
+Node: Getopt Function740406
+Ref: Getopt Function-Footnote-1756240
+Node: Passwd Functions756452
+Ref: Passwd Functions-Footnote-1765634
+Node: Group Functions765722
+Ref: Group Functions-Footnote-1773860
+Node: Walking Arrays774073
+Node: Library Functions Summary777121
+Node: Library Exercises778545
+Node: Sample Programs779032
+Node: Running Examples779814
+Node: Clones780566
+Node: Cut Program781838
+Node: Egrep Program792279
+Node: Id Program801596
+Node: Split Program811710
+Ref: Split Program-Footnote-1821945
+Node: Tee Program822132
+Node: Uniq Program825041
+Node: Wc Program832906
+Node: Bytes vs. Characters833301
+Node: Using extensions834903
+Node: wc program835683
+Node: Miscellaneous Programs840689
+Node: Dupword Program841918
+Node: Alarm Program843981
+Node: Translate Program848894
+Ref: Translate Program-Footnote-1853635
+Node: Labels Program853913
+Ref: Labels Program-Footnote-1857354
+Node: Word Sorting857446
+Node: History Sorting861640
+Node: Extract Program863915
+Node: Simple Sed872184
+Node: Igawk Program875400
+Ref: Igawk Program-Footnote-1890647
+Ref: Igawk Program-Footnote-2890853
+Ref: Igawk Program-Footnote-3890983
+Node: Anagram Program891110
+Node: Signature Program894206
+Node: Programs Summary895458
+Node: Programs Exercises896716
+Ref: Programs Exercises-Footnote-1901032
+Node: Advanced Features901118
+Node: Nondecimal Data903612
+Node: Boolean Typed Values905242
+Node: Array Sorting907217
+Node: Controlling Array Traversal907946
+Ref: Controlling Array Traversal-Footnote-1916453
+Node: Array Sorting Functions916575
+Ref: Array Sorting Functions-Footnote-1922694
+Node: Two-way I/O922902
+Ref: Two-way I/O-Footnote-1930897
+Ref: Two-way I/O-Footnote-2931088
+Node: TCP/IP Networking931170
+Node: Profiling934350
+Node: Persistent Memory944060
+Ref: Persistent Memory-Footnote-1953670
+Node: Extension Philosophy953801
+Node: Advanced Features Summary955336
+Node: Internationalization957606
+Node: I18N and L10N959312
+Node: Explaining gettext960007
+Ref: Explaining gettext-Footnote-1966160
+Ref: Explaining gettext-Footnote-2966355
+Node: Programmer i18n966520
+Ref: Programmer i18n-Footnote-1971633
+Node: Translator i18n971682
+Node: String Extraction972518
+Ref: String Extraction-Footnote-1973696
+Node: Printf Ordering973794
+Ref: Printf Ordering-Footnote-1976656
+Node: I18N Portability976724
+Ref: I18N Portability-Footnote-1979298
+Node: I18N Example979369
+Ref: I18N Example-Footnote-1982769
+Ref: I18N Example-Footnote-2982845
+Node: Gawk I18N982962
+Node: I18N Summary983618
+Node: Debugger985019
+Node: Debugging986043
+Node: Debugging Concepts986492
+Node: Debugging Terms988318
+Node: Awk Debugging990931
+Ref: Awk Debugging-Footnote-1991908
+Node: Sample Debugging Session992048
+Node: Debugger Invocation992600
+Node: Finding The Bug994229
+Node: List of Debugger Commands1000915
+Node: Breakpoint Control1002292
+Node: Debugger Execution Control1006124
+Node: Viewing And Changing Data1009604
+Node: Execution Stack1013342
+Node: Debugger Info1015023
+Node: Miscellaneous Debugger Commands1019322
+Node: Readline Support1024575
+Node: Limitations1025521
+Node: Debugging Summary1028165
+Node: Namespaces1029464
+Node: Global Namespace1030591
+Node: Qualified Names1032036
+Node: Default Namespace1033071
+Node: Changing The Namespace1033846
+Node: Naming Rules1035540
+Node: Internal Name Management1037455
+Node: Namespace Example1038525
+Node: Namespace And Features1041108
+Node: Namespace Summary1042565
+Node: Arbitrary Precision Arithmetic1044078
+Node: Computer Arithmetic1045597
+Ref: table-numeric-ranges1049414
+Ref: table-floating-point-ranges1049912
+Ref: Computer Arithmetic-Footnote-11050571
+Node: Math Definitions1050630
+Ref: table-ieee-formats1053675
+Node: MPFR features1054249
+Node: MPFR On Parole1054702
+Ref: MPFR On Parole-Footnote-11055546
+Node: MPFR Intro1055705
+Node: FP Math Caution1057395
+Ref: FP Math Caution-Footnote-11058469
+Node: Inexactness of computations1058846
+Node: Inexact representation1059877
+Node: Comparing FP Values1061260
+Node: Errors accumulate1062518
+Node: Strange values1063985
+Ref: Strange values-Footnote-11066651
+Node: Getting Accuracy1066756
+Node: Try To Round1069493
+Node: Setting precision1070400
+Ref: table-predefined-precision-strings1071105
+Node: Setting the rounding mode1072990
+Ref: table-gawk-rounding-modes1073372
+Ref: Setting the rounding mode-Footnote-11077430
+Node: Arbitrary Precision Integers1077613
+Ref: Arbitrary Precision Integers-Footnote-11080825
+Node: Checking for MPFR1080981
+Node: POSIX Floating Point Problems1082471
+Ref: POSIX Floating Point Problems-Footnote-11087335
+Node: Floating point summary1087373
+Node: Dynamic Extensions1089637
+Node: Extension Intro1091236
+Node: Plugin License1092544
+Node: Extension Mechanism Outline1093357
+Ref: figure-load-extension1093808
+Ref: figure-register-new-function1095393
+Ref: figure-call-new-function1096503
+Node: Extension API Description1098627
+Node: Extension API Functions Introduction1100356
+Ref: table-api-std-headers1102254
+Node: General Data Types1106718
+Ref: General Data Types-Footnote-11115886
+Node: Memory Allocation Functions1116201
+Ref: Memory Allocation Functions-Footnote-11120926
+Node: Constructor Functions1121025
+Node: API Ownership of MPFR and GMP Values1124930
+Node: Registration Functions1126491
+Node: Extension Functions1127195
+Node: Exit Callback Functions1132771
+Node: Extension Version String1134090
+Node: Input Parsers1134785
+Node: Output Wrappers1149429
+Node: Two-way processors1154277
+Node: Printing Messages1156638
+Ref: Printing Messages-Footnote-11157852
+Node: Updating ERRNO1158007
+Node: Requesting Values1158806
+Ref: table-value-types-returned1159559
+Node: Accessing Parameters1160668
+Node: Symbol Table Access1161952
+Node: Symbol table by name1162468
+Ref: Symbol table by name-Footnote-11165679
+Node: Symbol table by cookie1165811
+Ref: Symbol table by cookie-Footnote-11170092
+Node: Cached values1170156
+Ref: Cached values-Footnote-11173800
+Node: Array Manipulation1173957
+Ref: Array Manipulation-Footnote-11175060
+Node: Array Data Types1175097
+Ref: Array Data Types-Footnote-11177919
+Node: Array Functions1178019
+Node: Flattening Arrays1183048
+Node: Creating Arrays1190100
+Node: Redirection API1194950
+Node: Extension API Variables1197971
+Node: Extension Versioning1198696
+Ref: gawk-api-version1199133
+Node: Extension GMP/MPFR Versioning1200921
+Node: Extension API Informational Variables1202627
+Node: Extension API Boilerplate1203788
+Node: Changes from API V11207924
+Node: Finding Extensions1209558
+Node: Extension Example1210133
+Node: Internal File Description1210957
+Node: Internal File Ops1215281
+Ref: Internal File Ops-Footnote-11226839
+Node: Using Internal File Ops1226987
+Ref: Using Internal File Ops-Footnote-11229418
+Node: Extension Samples1229696
+Node: Extension Sample File Functions1231265
+Node: Extension Sample Fnmatch1239403
+Node: Extension Sample Fork1240998
+Node: Extension Sample Inplace1242274
+Node: Extension Sample Ord1245946
+Node: Extension Sample Readdir1246822
+Ref: table-readdir-file-types1247611
+Node: Extension Sample Revout1248972
+Node: Extension Sample Rev2way1249569
+Node: Extension Sample Read write array1250321
+Node: Extension Sample Readfile1253595
+Node: Extension Sample Time1254726
+Node: Extension Sample API Tests1257016
+Node: gawkextlib1257524
+Node: Extension summary1260560
+Node: Extension Exercises1264418
+Node: Language History1265696
+Node: V7/SVR3.11267410
+Node: SVR41269760
+Node: POSIX1271292
+Node: BTL1272717
+Node: POSIX/GNU1273486
+Node: Feature History1280017
+Node: Common Extensions1299624
+Node: Ranges and Locales1301101
+Ref: Ranges and Locales-Footnote-11305902
+Ref: Ranges and Locales-Footnote-21305929
+Ref: Ranges and Locales-Footnote-31306168
+Node: Contributors1306391
+Node: History summary1312596
+Node: Installation1314042
+Node: Gawk Distribution1315006
+Node: Getting1315498
+Node: Extracting1316497
+Node: Distribution contents1318209
+Node: Unix Installation1326289
+Node: Quick Installation1327111
+Node: Compiling with MPFR1329657
+Node: Shell Startup Files1330363
+Node: Additional Configuration Options1331520
+Node: Configuration Philosophy1333907
+Node: Compiling from Git1336409
+Node: Building the Documentation1336968
+Node: Non-Unix Installation1338380
+Node: PC Installation1338856
+Node: PC Binary Installation1339729
+Node: PC Compiling1340634
+Node: PC Using1341812
+Node: Cygwin1345540
+Node: MSYS1346796
+Node: OpenVMS Installation1347428
+Node: OpenVMS Compilation1348109
+Ref: OpenVMS Compilation-Footnote-11349592
+Node: OpenVMS Dynamic Extensions1349654
+Node: OpenVMS Installation Details1351290
+Node: OpenVMS Running1353725
+Node: OpenVMS GNV1357862
+Node: Bugs1358617
+Node: Bug definition1359541
+Node: Bug address1363192
+Node: Usenet1366783
+Node: Performance bugs1368014
+Node: Asking for help1371032
+Node: Maintainers1373023
+Node: Other Versions1374050
+Node: Installation summary1383393
+Node: Notes1384777
+Node: Compatibility Mode1385587
+Node: Additions1386409
+Node: Accessing The Source1387354
+Node: Adding Code1388889
+Node: New Ports1396025
+Node: Derived Files1400535
+Ref: Derived Files-Footnote-11406382
+Ref: Derived Files-Footnote-21406417
+Ref: Derived Files-Footnote-31407034
+Node: Future Extensions1407148
+Node: Implementation Limitations1407820
+Node: Extension Design1409062
+Node: Old Extension Problems1410226
+Ref: Old Extension Problems-Footnote-11411802
+Node: Extension New Mechanism Goals1411863
+Ref: Extension New Mechanism Goals-Footnote-11415359
+Node: Extension Other Design Decisions1415560
+Node: Extension Future Growth1417759
+Node: Notes summary1418383
+Node: Basic Concepts1419596
+Node: Basic High Level1420281
+Ref: figure-general-flow1420563
+Ref: figure-process-flow1421270
+Ref: Basic High Level-Footnote-11424671
+Node: Basic Data Typing1424860
+Node: Glossary1428278
+Node: Copying1461400
+Node: GNU Free Documentation License1499161
+Node: Index1524484

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 0ef30e2..547dadd 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -8514,10 +8514,6 @@ The value of @code{FS} is ignored.
Fields are separated by runs of whitespace. Leading and trailing
whitespace are ignored. This is the default.
-@item FS == ","
-Fields are separated by commas, with quoting of fields
-and special rules involved.
-
@item FS == @var{any other single character}
Fields are separated by each occurrence of the character. Multiple
successive occurrences delimit empty fields, as do leading and
@@ -8799,8 +8795,10 @@ four, and @code{$4} has the value @code{"ddd"}.
@node Splitting By Content
@section Defining Fields by Content
-@strong{FIXME}: This whole section needs rewriting now
+@quotation NOTE
+This whole section needs rewriting now
that @command{gawk} has built-in CSV parsing. Sigh.
+@end quotation
@menu
* More CSV:: More on CSV files.
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 56bbbf9..ea64d88 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -7983,10 +7983,6 @@ The value of @code{FS} is ignored.
Fields are separated by runs of whitespace. Leading and trailing
whitespace are ignored. This is the default.
-@item FS == ","
-Fields are separated by commas, with quoting of fields
-and special rules involved.
-
@item FS == @var{any other single character}
Fields are separated by each occurrence of the character. Multiple
successive occurrences delimit empty fields, as do leading and
@@ -8232,8 +8228,10 @@ four, and @code{$4} has the value @code{"ddd"}.
@node Splitting By Content
@section Defining Fields by Content
-@strong{FIXME}: This whole section needs rewriting now
+@quotation NOTE
+This whole section needs rewriting now
that @command{gawk} has built-in CSV parsing. Sigh.
+@end quotation
@menu
* More CSV:: More on CSV files.
diff --git a/field.c b/field.c
index d4e6b1f..8007dd9 100644
--- a/field.c
+++ b/field.c
@@ -1178,7 +1178,7 @@ do_split(int nargs)
if (do_csv && (sep->re_flags & FS_DFLT) != 0 && nargs == 3) {
fs = NULL;
parseit = comma_parse_field;
- } else if ( (sep->re_flags & FS_DFLT) != 0
+ } else if ((sep->re_flags & FS_DFLT) != 0
&& current_field_sep() == Using_FS
&& ! RS_is_null) {
parseit = parse_field;