[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] gawk branch, master, updated. gawk-4.1.0-5152-gdce594e3

From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-5152-gdce594e3
Date: Fri, 24 Feb 2023 03:38:35 -0500 (EST)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  dce594e35127b9a74eafb197eb457ecc569e9de3 (commit)
       via  267725099deada5982cf99dc544b590c418732d1 (commit)
       via  a908e81a6b4a41116e3268a915449881c9982209 (commit)
       via  da883f8177a12293a395d77c31d7aeaa95c254aa (commit)
       via  90da4e0a6fea0499b891bb3801fde88b99346367 (commit)
       via  1c16328521f317b4f3df3d3010fc17e9811bd5e1 (commit)
       via  2480186827f4e5f9b4269426742d5f4985dcbe01 (commit)
      from  0a6ab36fe60438a4c98eb6f216efc3a6a9cf52d2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit dce594e35127b9a74eafb197eb457ecc569e9de3
Author: Arnold D. Robbins <>
Date:   Fri Feb 24 10:38:12 2023 +0200

    Fix memory leak in CSV parsing.

diff --git a/ChangeLog b/ChangeLog
index 585c0433..836fbf17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2023-02-24         Arnold D. Robbins     <>
+       * field.c (set_comma_field): Free the string node. Fixes a
+       memory leak. Thanks to Andrew Schorr for the report.
 2023-02-24         Arnold D. Robbins     <>
        * awk.h (boolval): Handle Node_var. Thanks to
diff --git a/field.c b/field.c
index 318090c1..a99201dc 100644
--- a/field.c
+++ b/field.c
@@ -168,6 +168,7 @@ set_comma_field(long num,
        n->stptr = val->stptr;
        n->stlen = val->stlen;
+       freenode(val);
 /* rebuild_record --- Someone assigned a value to $(something).

commit 267725099deada5982cf99dc544b590c418732d1
Merge: 0a6ab36f a908e81a
Author: Arnold D. Robbins <>
Date:   Fri Feb 24 10:36:30 2023 +0200

    Merge branch 'gawk-5.2-stable'

diff --cc ChangeLog
index f58946b7,488e7a49..585c0433
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,14 -1,25 +1,36 @@@
+ 2023-02-24         Arnold D. Robbins     <>
+       * awk.h (boolval): Handle Node_var. Thanks to
+       Daniel Pouzzner <> for the report, relayed
+       by Andrew Schorr.
+       * builtin.c (do_typeof): Handle Node_var, could come from a
+       converted Node_elem_new. Thanks to Andrew Schorr for the
+       report.
+ 2023-02-23         Arnold D. Robbins     <>
+       * io.c (find_input_parser): Improve check to see if iop is
+       already being handled by an input parser. Found by
+       code inspection.
+       Unrelated:
+       * awk.h (struct redirect): Change RED_NOBUF to RED_FLUSH.
+       * builtin.c (efwrite): Ditto
+       * io.c (redflags2str, check_duplicated_redirections,
+       redirect_string): Ditto.
 +2023-02-12         Arnold D. Robbins     <>
 +      * NEWS: Updated.
 +2023-02-10         Arnold D. Robbins     <>
 +      * io.c (avoid_flush): New function.
 +      (redirect_string): Use it when setting up an output pipeline.
 +      Thanks to Alexandre Ferrieux <>
 +      for pointing out the performance issue.
  2023-02-09         Arnold D. Robbins     <>
        * main.c (usage): Include URL for source code in the message.
diff --cc doc/ChangeLog
index 50fceabf,076f60f6..13af1d76
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@@ -1,18 -1,7 +1,21 @@@
+ 2023-02-24         Arnold D. Robbins     <>
+       * (Feature History): Add note about nonfatal I/O.
 +2023-02-15         Arnold D. Robbins     <>
 +      * (EDITION): Bump to 5.3. Thanks to Antonio
 +      Columbo for the suggestion.
 +2023-02-10         Arnold D. Robbins     <>
 +      * (Noflush): New section.
 +      Update modified date, version and patchlevel.
 +2023-02-09         Arnold D. Robbins     <>
 +      * (Feature History): Clean up the entry for
 +      version 5.3.
  2023-02-05         Arnold D. Robbins     <>
        * texinfo.tex: Update from GNULIB. Only change is to remove
diff --cc doc/
index cf431ede,2355ded3..52f7acd5
--- a/doc/
+++ b/doc/
@@@ -39419,621 -39290,618 +39421,621 @@@ Inde
  Tag Table:
  Node: Top1229
 -Node: Foreword346679
 -Node: Foreword451279
 -Node: Preface52828
 -Ref: Preface-Footnote-155820
 -Ref: Preface-Footnote-255929
 -Ref: Preface-Footnote-356163
 -Node: History56309
 -Node: Names58773
 -Ref: Names-Footnote-159936
 -Node: This Manual60099
 -Ref: This Manual-Footnote-167049
 -Node: Conventions67161
 -Node: Manual History69639
 -Ref: Manual History-Footnote-172676
 -Ref: Manual History-Footnote-272723
 -Node: How To Contribute72801
 -Node: Acknowledgments73751
 -Node: Getting Started78749
 -Node: Running gawk81276
 -Node: One-shot82494
 -Node: Read Terminal83797
 -Node: Long85857
 -Node: Executable Scripts87438
 -Ref: Executable Scripts-Footnote-190213
 -Node: Comments90320
 -Node: Quoting92858
 -Node: DOS Quoting98507
 -Node: Sample Data Files100593
 -Node: Very Simple103230
 -Node: Two Rules109509
 -Node: More Complex111463
 -Node: Statements/Lines113903
 -Ref: Statements/Lines-Footnote-1118783
 -Node: Other Features119072
 -Node: When120040
 -Ref: When-Footnote-1121846
 -Node: Intro Summary121911
 -Node: Invoking Gawk122867
 -Node: Command Line124437
 -Node: Options125288
 -Ref: Options-Footnote-1144437
 -Ref: Options-Footnote-2144672
 -Node: Other Arguments144697
 -Node: Naming Standard Input148874
 -Node: Environment Variables150144
 -Node: AWKPATH Variable150718
 -Ref: AWKPATH Variable-Footnote-1154308
 -Ref: AWKPATH Variable-Footnote-2154342
 -Node: AWKLIBPATH Variable154735
 -Ref: AWKLIBPATH Variable-Footnote-1156510
 -Node: Other Environment Variables156907
 -Node: Exit Status161403
 -Node: Include Files162118
 -Node: Loading Shared Libraries165989
 -Node: Obsolete167481
 -Node: Undocumented168117
 -Node: Invoking Summary168416
 -Node: Regexp171443
 -Node: Regexp Usage172937
 -Node: Escape Sequences175038
 -Node: Regexp Operators181569
 -Node: Regexp Operator Details182062
 -Ref: Regexp Operator Details-Footnote-1189928
 -Node: Interval Expressions190087
 -Ref: Interval Expressions-Footnote-1192356
 -Node: Bracket Expressions192456
 -Ref: table-char-classes195016
 -Node: Leftmost Longest198538
 -Node: Computed Regexps199898
 -Node: GNU Regexp Operators203421
 -Node: Case-sensitivity207444
 -Ref: Case-sensitivity-Footnote-1210401
 -Ref: Case-sensitivity-Footnote-2210646
 -Node: Regexp Summary210762
 -Node: Reading Files212286
 -Node: Records214603
 -Node: awk split records215714
 -Node: gawk split records220604
 -Ref: gawk split records-Footnote-1225898
 -Node: Fields225935
 -Node: Nonconstant Fields228822
 -Ref: Nonconstant Fields-Footnote-1231133
 -Node: Changing Fields231349
 -Node: Field Separators237657
 -Node: Default Field Splitting240473
 -Node: Regexp Field Splitting241616
 -Node: Single Character Fields245445
 -Node: Command Line Field Separator246540
 -Node: Full Line Fields249927
 -Ref: Full Line Fields-Footnote-1251507
 -Ref: Full Line Fields-Footnote-2251553
 -Node: Field Splitting Summary251661
 -Node: Constant Size253830
 -Node: Fixed width data254574
 -Node: Skipping intervening258093
 -Node: Allowing trailing data258895
 -Node: Fields with fixed data259960
 -Node: Splitting By Content261586
 -Ref: Splitting By Content-Footnote-1265525
 -Node: More CSV265688
 -Node: FS versus FPAT267341
 -Node: Testing field creation268550
 -Node: Multiple Line270243
 -Node: Getline276725
 -Node: Plain Getline279311
 -Node: Getline/Variable281961
 -Node: Getline/File283158
 -Node: Getline/Variable/File284606
 -Ref: Getline/Variable/File-Footnote-1286251
 -Node: Getline/Pipe286347
 -Node: Getline/Variable/Pipe289160
 -Node: Getline/Coprocess290343
 -Node: Getline/Variable/Coprocess291666
 -Node: Getline Notes292432
 -Node: Getline Summary295393
 -Ref: table-getline-variants295837
 -Node: Read Timeout296742
 -Ref: Read Timeout-Footnote-1300706
 -Node: Retrying Input300764
 -Node: Command-line directories302031
 -Node: Input Summary302969
 -Node: Input Exercises306349
 -Node: Printing306789
 -Node: Print308675
 -Node: Print Examples310181
 -Node: Output Separators313034
 -Node: OFMT315145
 -Node: Printf316568
 -Node: Basic Printf317373
 -Node: Control Letters319009
 -Node: Format Modifiers324478
 -Node: Printf Examples330764
 -Node: Redirection333309
 -Node: Special FD340383
 -Ref: Special FD-Footnote-1343673
 -Node: Special Files343759
 -Node: Other Inherited Files344388
 -Node: Special Network345453
 -Node: Special Caveats346341
 -Node: Close Files And Pipes347324
 -Ref: Close Files And Pipes-Footnote-1353461
 -Node: Close Return Value353617
 -Ref: table-close-pipe-return-values354892
 -Ref: Close Return Value-Footnote-1355726
 -Node: Nonfatal355882
 -Node: Output Summary358313
 -Node: Output Exercises359599
 -Node: Expressions360290
 -Node: Values361492
 -Node: Constants362170
 -Node: Scalar Constants362867
 -Ref: Scalar Constants-Footnote-1365442
 -Node: Nondecimal-numbers365692
 -Node: Regexp Constants368813
 -Node: Using Constant Regexps369359
 -Node: Standard Regexp Constants370005
 -Node: Strong Regexp Constants373305
 -Node: Variables377156
 -Node: Using Variables377821
 -Node: Assignment Options379801
 -Node: Conversion382363
 -Node: Strings And Numbers382895
 -Ref: Strings And Numbers-Footnote-1386114
 -Node: Locale influences conversions386223
 -Ref: table-locale-affects389073
 -Node: All Operators389716
 -Node: Arithmetic Ops390357
 -Node: Concatenation393187
 -Ref: Concatenation-Footnote-1396137
 -Node: Assignment Ops396260
 -Ref: table-assign-ops401399
 -Node: Increment Ops402781
 -Node: Truth Values and Conditions406380
 -Node: Truth Values407506
 -Node: Typing and Comparison408597
 -Node: Variable Typing409433
 -Ref: Variable Typing-Footnote-1416095
 -Ref: Variable Typing-Footnote-2416175
 -Node: Comparison Operators416258
 -Ref: table-relational-ops416685
 -Node: POSIX String Comparison420371
 -Ref: POSIX String Comparison-Footnote-1422130
 -Ref: POSIX String Comparison-Footnote-2422273
 -Node: Boolean Ops422357
 -Ref: Boolean Ops-Footnote-1427050
 -Node: Conditional Exp427146
 -Node: Function Calls428932
 -Node: Precedence432882
 -Node: Locales436759
 -Node: Expressions Summary438441
 -Node: Patterns and Actions441104
 -Node: Pattern Overview442246
 -Node: Regexp Patterns443972
 -Node: Expression Patterns444518
 -Node: Ranges448427
 -Node: BEGIN/END451605
 -Node: Using BEGIN/END452418
 -Ref: Using BEGIN/END-Footnote-1455328
 -Node: I/O And BEGIN/END455438
 -Node: Empty461360
 -Node: Using Shell Variables461677
 -Node: Action Overview464015
 -Node: Statements466450
 -Node: If Statement468348
 -Node: While Statement469917
 -Node: Do Statement472005
 -Node: For Statement473191
 -Node: Switch Statement476548
 -Node: Break Statement479099
 -Node: Continue Statement481291
 -Node: Next Statement483223
 -Node: Nextfile Statement485720
 -Node: Exit Statement488581
 -Node: Built-in Variables491114
 -Node: User-modified492293
 -Node: Auto-set500504
 -Ref: Auto-set-Footnote-1518357
 -Ref: Auto-set-Footnote-2518575
 -Node: ARGC and ARGV518631
 -Node: Pattern Action Summary523070
 -Node: Arrays525686
 -Node: Array Basics527063
 -Node: Array Intro527913
 -Ref: figure-array-elements529929
 -Ref: Array Intro-Footnote-1532793
 -Node: Reference to Elements532925
 -Node: Assigning Elements535447
 -Node: Array Example535942
 -Node: Scanning an Array537911
 -Node: Controlling Scanning541008
 -Ref: Controlling Scanning-Footnote-1547671
 -Node: Numeric Array Subscripts547995
 -Node: Uninitialized Subscripts550269
 -Node: Delete551948
 -Ref: Delete-Footnote-1554762
 -Node: Multidimensional554819
 -Node: Multiscanning558024
 -Node: Arrays of Arrays559696
 -Node: Arrays Summary564596
 -Node: Functions566785
 -Node: Built-in567845
 -Node: Calling Built-in569034
 -Node: Boolean Functions571081
 -Node: Numeric Functions571651
 -Ref: Numeric Functions-Footnote-1575844
 -Ref: Numeric Functions-Footnote-2576528
 -Ref: Numeric Functions-Footnote-3576580
 -Node: String Functions576856
 -Ref: String Functions-Footnote-1602686
 -Ref: String Functions-Footnote-2602820
 -Ref: String Functions-Footnote-3603080
 -Node: Gory Details603167
 -Ref: table-sub-escapes605074
 -Ref: table-sub-proposed606720
 -Ref: table-posix-sub608230
 -Ref: table-gensub-escapes609918
 -Ref: Gory Details-Footnote-1610852
 -Node: I/O Functions611006
 -Ref: table-system-return-values617693
 -Ref: I/O Functions-Footnote-1619864
 -Ref: I/O Functions-Footnote-2620012
 -Node: Time Functions620132
 -Ref: Time Functions-Footnote-1631288
 -Ref: Time Functions-Footnote-2631364
 -Ref: Time Functions-Footnote-3631526
 -Ref: Time Functions-Footnote-4631637
 -Ref: Time Functions-Footnote-5631755
 -Ref: Time Functions-Footnote-6631990
 -Node: Bitwise Functions632272
 -Ref: table-bitwise-ops632874
 -Ref: Bitwise Functions-Footnote-1639128
 -Ref: Bitwise Functions-Footnote-2639307
 -Node: Type Functions639504
 -Node: I18N Functions643097
 -Node: User-defined644840
 -Node: Definition Syntax645660
 -Ref: Definition Syntax-Footnote-1651488
 -Node: Function Example651565
 -Ref: Function Example-Footnote-1654544
 -Node: Function Calling654566
 -Node: Calling A Function655160
 -Node: Variable Scope656130
 -Node: Pass By Value/Reference659184
 -Node: Function Caveats661916
 -Ref: Function Caveats-Footnote-1664011
 -Node: Return Statement664135
 -Node: Dynamic Typing667190
 -Node: Indirect Calls668146
 -Node: Functions Summary679305
 -Node: Library Functions682082
 -Ref: Library Functions-Footnote-1685630
 -Ref: Library Functions-Footnote-2685773
 -Node: Library Names685948
 -Ref: Library Names-Footnote-1689742
 -Ref: Library Names-Footnote-2689969
 -Node: General Functions690065
 -Node: Strtonum Function691259
 -Node: Assert Function694341
 -Node: Round Function697793
 -Node: Cliff Random Function699371
 -Node: Ordinal Functions700404
 -Ref: Ordinal Functions-Footnote-1703513
 -Ref: Ordinal Functions-Footnote-2703765
 -Node: Join Function703979
 -Ref: Join Function-Footnote-1705782
 -Node: Getlocaltime Function705986
 -Node: Readfile Function709760
 -Node: Shell Quoting711789
 -Node: Isnumeric Function713245
 -Node: Data File Management714657
 -Node: Filetrans Function715289
 -Node: Rewind Function719583
 -Node: File Checking721562
 -Ref: File Checking-Footnote-1722934
 -Node: Empty Files723141
 -Node: Ignoring Assigns725208
 -Node: Getopt Function726782
 -Ref: Getopt Function-Footnote-1742616
 -Node: Passwd Functions742828
 -Ref: Passwd Functions-Footnote-1752010
 -Node: Group Functions752098
 -Ref: Group Functions-Footnote-1760236
 -Node: Walking Arrays760449
 -Node: Library Functions Summary763497
 -Node: Library Exercises764921
 -Node: Sample Programs765408
 -Node: Running Examples766190
 -Node: Clones766942
 -Node: Cut Program768214
 -Node: Egrep Program778655
 -Node: Id Program787972
 -Node: Split Program798086
 -Ref: Split Program-Footnote-1808321
 -Node: Tee Program808508
 -Node: Uniq Program811417
 -Node: Wc Program819282
 -Node: Bytes vs. Characters819677
 -Node: Using extensions821279
 -Node: wc program822059
 -Node: Miscellaneous Programs827065
 -Node: Dupword Program828294
 -Node: Alarm Program830357
 -Node: Translate Program835270
 -Ref: Translate Program-Footnote-1840011
 -Node: Labels Program840289
 -Ref: Labels Program-Footnote-1843730
 -Node: Word Sorting843822
 -Node: History Sorting848016
 -Node: Extract Program850291
 -Node: Simple Sed858560
 -Node: Igawk Program861776
 -Ref: Igawk Program-Footnote-1877023
 -Ref: Igawk Program-Footnote-2877229
 -Ref: Igawk Program-Footnote-3877359
 -Node: Anagram Program877486
 -Node: Signature Program880582
 -Node: Programs Summary881834
 -Node: Programs Exercises883092
 -Ref: Programs Exercises-Footnote-1887408
 -Node: Advanced Features887494
 -Node: Nondecimal Data889988
 -Node: Boolean Typed Values891618
 -Node: Array Sorting893593
 -Node: Controlling Array Traversal894322
 -Ref: Controlling Array Traversal-Footnote-1902829
 -Node: Array Sorting Functions902951
 -Ref: Array Sorting Functions-Footnote-1909070
 -Node: Two-way I/O909278
 -Ref: Two-way I/O-Footnote-1917273
 -Ref: Two-way I/O-Footnote-2917464
 -Node: TCP/IP Networking917546
 -Node: Profiling920726
 -Node: Persistent Memory930436
 -Ref: Persistent Memory-Footnote-1939394
 -Node: Extension Philosophy939525
 -Node: Advanced Features Summary941060
 -Node: Internationalization943330
 -Node: I18N and L10N945036
 -Node: Explaining gettext945731
 -Ref: Explaining gettext-Footnote-1951884
 -Ref: Explaining gettext-Footnote-2952079
 -Node: Programmer i18n952244
 -Ref: Programmer i18n-Footnote-1957357
 -Node: Translator i18n957406
 -Node: String Extraction958242
 -Ref: String Extraction-Footnote-1959420
 -Node: Printf Ordering959518
 -Ref: Printf Ordering-Footnote-1962380
 -Node: I18N Portability962448
 -Ref: I18N Portability-Footnote-1965022
 -Node: I18N Example965093
 -Ref: I18N Example-Footnote-1968493
 -Ref: I18N Example-Footnote-2968569
 -Node: Gawk I18N968686
 -Node: I18N Summary969342
 -Node: Debugger970743
 -Node: Debugging971767
 -Node: Debugging Concepts972216
 -Node: Debugging Terms974042
 -Node: Awk Debugging976655
 -Ref: Awk Debugging-Footnote-1977632
 -Node: Sample Debugging Session977772
 -Node: Debugger Invocation978324
 -Node: Finding The Bug979953
 -Node: List of Debugger Commands986639
 -Node: Breakpoint Control988016
 -Node: Debugger Execution Control991848
 -Node: Viewing And Changing Data995328
 -Node: Execution Stack999066
 -Node: Debugger Info1000747
 -Node: Miscellaneous Debugger Commands1005046
 -Node: Readline Support1010299
 -Node: Limitations1011245
 -Node: Debugging Summary1013889
 -Node: Namespaces1015192
 -Node: Global Namespace1016319
 -Node: Qualified Names1017764
 -Node: Default Namespace1018799
 -Node: Changing The Namespace1019574
 -Node: Naming Rules1021268
 -Node: Internal Name Management1023183
 -Node: Namespace Example1024253
 -Node: Namespace And Features1026836
 -Node: Namespace Summary1028293
 -Node: Arbitrary Precision Arithmetic1029806
 -Node: Computer Arithmetic1031325
 -Ref: table-numeric-ranges1035142
 -Ref: table-floating-point-ranges1035640
 -Ref: Computer Arithmetic-Footnote-11036299
 -Node: Math Definitions1036358
 -Ref: table-ieee-formats1039403
 -Node: MPFR features1039977
 -Node: MPFR On Parole1040430
 -Ref: MPFR On Parole-Footnote-11041274
 -Node: MPFR Intro1041433
 -Node: FP Math Caution1043123
 -Ref: FP Math Caution-Footnote-11044197
 -Node: Inexactness of computations1044574
 -Node: Inexact representation1045605
 -Node: Comparing FP Values1046988
 -Node: Errors accumulate1048246
 -Node: Strange values1049713
 -Ref: Strange values-Footnote-11052379
 -Node: Getting Accuracy1052484
 -Node: Try To Round1055221
 -Node: Setting precision1056128
 -Ref: table-predefined-precision-strings1056833
 -Node: Setting the rounding mode1058718
 -Ref: table-gawk-rounding-modes1059100
 -Ref: Setting the rounding mode-Footnote-11063158
 -Node: Arbitrary Precision Integers1063341
 -Ref: Arbitrary Precision Integers-Footnote-11066553
 -Node: Checking for MPFR1066709
 -Node: POSIX Floating Point Problems1068199
 -Ref: POSIX Floating Point Problems-Footnote-11073063
 -Node: Floating point summary1073101
 -Node: Dynamic Extensions1075365
 -Node: Extension Intro1076964
 -Node: Plugin License1078272
 -Node: Extension Mechanism Outline1079085
 -Ref: figure-load-extension1079536
 -Ref: figure-register-new-function1081116
 -Ref: figure-call-new-function1082221
 -Node: Extension API Description1084340
 -Node: Extension API Functions Introduction1086069
 -Ref: table-api-std-headers1087967
 -Node: General Data Types1092431
 -Ref: General Data Types-Footnote-11101599
 -Node: Memory Allocation Functions1101914
 -Ref: Memory Allocation Functions-Footnote-11106639
 -Node: Constructor Functions1106738
 -Node: API Ownership of MPFR and GMP Values1110643
 -Node: Registration Functions1112204
 -Node: Extension Functions1112908
 -Node: Exit Callback Functions1118484
 -Node: Extension Version String1119803
 -Node: Input Parsers1120498
 -Node: Output Wrappers1133872
 -Node: Two-way processors1138580
 -Node: Printing Messages1140941
 -Ref: Printing Messages-Footnote-11142155
 -Node: Updating ERRNO1142310
 -Node: Requesting Values1143109
 -Ref: table-value-types-returned1143862
 -Node: Accessing Parameters1144971
 -Node: Symbol Table Access1146255
 -Node: Symbol table by name1146771
 -Ref: Symbol table by name-Footnote-11149982
 -Node: Symbol table by cookie1150114
 -Ref: Symbol table by cookie-Footnote-11154395
 -Node: Cached values1154459
 -Ref: Cached values-Footnote-11158103
 -Node: Array Manipulation1158260
 -Ref: Array Manipulation-Footnote-11159363
 -Node: Array Data Types1159400
 -Ref: Array Data Types-Footnote-11162222
 -Node: Array Functions1162322
 -Node: Flattening Arrays1167351
 -Node: Creating Arrays1174403
 -Node: Redirection API1179253
 -Node: Extension API Variables1182274
 -Node: Extension Versioning1182999
 -Ref: gawk-api-version1183436
 -Node: Extension GMP/MPFR Versioning1185224
 -Node: Extension API Informational Variables1186930
 -Node: Extension API Boilerplate1188091
 -Node: Changes from API V11192227
 -Node: Finding Extensions1193861
 -Node: Extension Example1194436
 -Node: Internal File Description1195260
 -Node: Internal File Ops1199584
 -Ref: Internal File Ops-Footnote-11211142
 -Node: Using Internal File Ops1211290
 -Ref: Using Internal File Ops-Footnote-11213721
 -Node: Extension Samples1213999
 -Node: Extension Sample File Functions1215568
 -Node: Extension Sample Fnmatch1223706
 -Node: Extension Sample Fork1225301
 -Node: Extension Sample Inplace1226577
 -Node: Extension Sample Ord1230249
 -Node: Extension Sample Readdir1231125
 -Ref: table-readdir-file-types1232022
 -Node: Extension Sample Revout1233160
 -Node: Extension Sample Rev2way1233757
 -Node: Extension Sample Read write array1234509
 -Node: Extension Sample Readfile1237783
 -Node: Extension Sample Time1238914
 -Node: Extension Sample API Tests1241204
 -Node: gawkextlib1241712
 -Node: Extension summary1244748
 -Node: Extension Exercises1248606
 -Node: Language History1249884
 -Node: V7/SVR3.11251598
 -Node: SVR41253948
 -Node: POSIX1255480
 -Node: BTL1256905
 -Node: POSIX/GNU1257674
 -Node: Feature History1264205
 -Node: Common Extensions1283323
 -Node: Ranges and Locales1284692
 -Ref: Ranges and Locales-Footnote-11289493
 -Ref: Ranges and Locales-Footnote-21289520
 -Ref: Ranges and Locales-Footnote-31289759
 -Node: Contributors1289982
 -Node: History summary1296187
 -Node: Installation1297633
 -Node: Gawk Distribution1298597
 -Node: Getting1299089
 -Node: Extracting1300088
 -Node: Distribution contents1301800
 -Node: Unix Installation1309880
 -Node: Quick Installation1310702
 -Node: Compiling with MPFR1313248
 -Node: Shell Startup Files1313954
 -Node: Additional Configuration Options1315111
 -Node: Configuration Philosophy1317498
 -Node: Compiling from Git1320000
 -Node: Building the Documentation1320559
 -Node: Non-Unix Installation1321971
 -Node: PC Installation1322447
 -Node: PC Binary Installation1323320
 -Node: PC Compiling1324225
 -Node: PC Using1325403
 -Node: Cygwin1329131
 -Node: MSYS1330387
 -Node: OpenVMS Installation1331019
 -Node: OpenVMS Compilation1331700
 -Ref: OpenVMS Compilation-Footnote-11333183
 -Node: OpenVMS Dynamic Extensions1333245
 -Node: OpenVMS Installation Details1334881
 -Node: OpenVMS Running1337316
 -Node: OpenVMS GNV1341453
 -Node: Bugs1342208
 -Node: Bug definition1343132
 -Node: Bug address1346783
 -Node: Usenet1350374
 -Node: Performance bugs1351605
 -Node: Asking for help1354623
 -Node: Maintainers1356614
 -Node: Other Versions1357641
 -Node: Installation summary1366573
 -Node: Notes1367957
 -Node: Compatibility Mode1368767
 -Node: Additions1369589
 -Node: Accessing The Source1370534
 -Node: Adding Code1372069
 -Node: New Ports1379205
 -Node: Derived Files1383715
 -Ref: Derived Files-Footnote-11389562
 -Ref: Derived Files-Footnote-21389597
 -Ref: Derived Files-Footnote-31390214
 -Node: Future Extensions1390328
 -Node: Implementation Limitations1391000
 -Node: Extension Design1392242
 -Node: Old Extension Problems1393406
 -Ref: Old Extension Problems-Footnote-11394982
 -Node: Extension New Mechanism Goals1395043
 -Ref: Extension New Mechanism Goals-Footnote-11398539
 -Node: Extension Other Design Decisions1398740
 -Node: Extension Future Growth1400939
 -Node: Notes summary1401563
 -Node: Basic Concepts1402776
 -Node: Basic High Level1403461
 -Ref: figure-general-flow1403743
 -Ref: figure-process-flow1404445
 -Ref: Basic High Level-Footnote-11407841
 -Node: Basic Data Typing1408030
 -Node: Glossary1411448
 -Node: Copying1444570
 -Node: GNU Free Documentation License1482331
 -Node: Index1507654
 +Node: Foreword346808
 +Node: Foreword451408
 +Node: Preface52957
 +Ref: Preface-Footnote-155949
 +Ref: Preface-Footnote-256058
 +Ref: Preface-Footnote-356292
 +Node: History56438
 +Node: Names58902
 +Ref: Names-Footnote-160065
 +Node: This Manual60228
 +Ref: This Manual-Footnote-167178
 +Node: Conventions67290
 +Node: Manual History69768
 +Ref: Manual History-Footnote-172805
 +Ref: Manual History-Footnote-272852
 +Node: How To Contribute72930
 +Node: Acknowledgments73880
 +Node: Getting Started78878
 +Node: Running gawk81405
 +Node: One-shot82623
 +Node: Read Terminal83926
 +Node: Long85986
 +Node: Executable Scripts87567
 +Ref: Executable Scripts-Footnote-190342
 +Node: Comments90449
 +Node: Quoting92987
 +Node: DOS Quoting98636
 +Node: Sample Data Files100722
 +Node: Very Simple103359
 +Node: Two Rules109638
 +Node: More Complex111592
 +Node: Statements/Lines114032
 +Ref: Statements/Lines-Footnote-1118912
 +Node: Other Features119201
 +Node: When120169
 +Ref: When-Footnote-1121975
 +Node: Intro Summary122040
 +Node: Invoking Gawk122996
 +Node: Command Line124566
 +Node: Options125417
 +Ref: Options-Footnote-1144566
 +Ref: Options-Footnote-2144801
 +Node: Other Arguments144826
 +Node: Naming Standard Input149003
 +Node: Environment Variables150273
 +Node: AWKPATH Variable150847
 +Ref: AWKPATH Variable-Footnote-1154437
 +Ref: AWKPATH Variable-Footnote-2154471
 +Node: AWKLIBPATH Variable154864
 +Ref: AWKLIBPATH Variable-Footnote-1156639
 +Node: Other Environment Variables157036
 +Node: Exit Status161532
 +Node: Include Files162247
 +Node: Loading Shared Libraries166118
 +Node: Obsolete167610
 +Node: Undocumented168246
 +Node: Invoking Summary168545
 +Node: Regexp171572
 +Node: Regexp Usage173066
 +Node: Escape Sequences175167
 +Node: Regexp Operators181698
 +Node: Regexp Operator Details182191
 +Ref: Regexp Operator Details-Footnote-1190057
 +Node: Interval Expressions190216
 +Ref: Interval Expressions-Footnote-1192485
 +Node: Bracket Expressions192585
 +Ref: table-char-classes195145
 +Node: Leftmost Longest198667
 +Node: Computed Regexps200027
 +Node: GNU Regexp Operators203550
 +Node: Case-sensitivity207573
 +Ref: Case-sensitivity-Footnote-1210530
 +Ref: Case-sensitivity-Footnote-2210775
 +Node: Regexp Summary210891
 +Node: Reading Files212415
 +Node: Records214732
 +Node: awk split records215843
 +Node: gawk split records220733
 +Ref: gawk split records-Footnote-1226027
 +Node: Fields226064
 +Node: Nonconstant Fields228951
 +Ref: Nonconstant Fields-Footnote-1231262
 +Node: Changing Fields231478
 +Node: Field Separators237786
 +Node: Default Field Splitting240659
 +Node: Regexp Field Splitting241802
 +Node: Single Character Fields245631
 +Node: Comma Separated Fields246720
 +Ref: table-csv-examples248008
 +Node: Command Line Field Separator248960
 +Node: Full Line Fields252346
 +Ref: Full Line Fields-Footnote-1253926
 +Ref: Full Line Fields-Footnote-2253972
 +Node: Field Splitting Summary254080
 +Node: Constant Size256359
 +Node: Fixed width data257103
 +Node: Skipping intervening260622
 +Node: Allowing trailing data261424
 +Node: Fields with fixed data262489
 +Node: Splitting By Content264115
 +Ref: Splitting By Content-Footnote-1268300
 +Node: More CSV268463
 +Node: FS versus FPAT270116
 +Node: Testing field creation271325
 +Node: Multiple Line273018
 +Node: Getline279500
 +Node: Plain Getline282086
 +Node: Getline/Variable284736
 +Node: Getline/File285933
 +Node: Getline/Variable/File287381
 +Ref: Getline/Variable/File-Footnote-1289026
 +Node: Getline/Pipe289122
 +Node: Getline/Variable/Pipe291935
 +Node: Getline/Coprocess293118
 +Node: Getline/Variable/Coprocess294441
 +Node: Getline Notes295207
 +Node: Getline Summary298168
 +Ref: table-getline-variants298612
 +Node: Read Timeout299517
 +Ref: Read Timeout-Footnote-1303481
 +Node: Retrying Input303539
 +Node: Command-line directories304806
 +Node: Input Summary305744
 +Node: Input Exercises309124
 +Node: Printing309564
 +Node: Print311507
 +Node: Print Examples313013
 +Node: Output Separators315866
 +Node: OFMT317977
 +Node: Printf319400
 +Node: Basic Printf320205
 +Node: Control Letters321841
 +Node: Format Modifiers327310
 +Node: Printf Examples333596
 +Node: Redirection336141
 +Node: Special FD343215
 +Ref: Special FD-Footnote-1346505
 +Node: Special Files346591
 +Node: Other Inherited Files347220
 +Node: Special Network348285
 +Node: Special Caveats349173
 +Node: Close Files And Pipes350156
 +Ref: Close Files And Pipes-Footnote-1356292
 +Node: Close Return Value356448
 +Ref: table-close-pipe-return-values357723
 +Ref: Close Return Value-Footnote-1358557
 +Node: Noflush358713
 +Node: Nonfatal360185
 +Node: Output Summary362602
 +Node: Output Exercises363888
 +Node: Expressions364579
 +Node: Values365781
 +Node: Constants366459
 +Node: Scalar Constants367156
 +Ref: Scalar Constants-Footnote-1369731
 +Node: Nondecimal-numbers369981
 +Node: Regexp Constants373102
 +Node: Using Constant Regexps373648
 +Node: Standard Regexp Constants374294
 +Node: Strong Regexp Constants377594
 +Node: Variables381445
 +Node: Using Variables382110
 +Node: Assignment Options384090
 +Node: Conversion386652
 +Node: Strings And Numbers387184
 +Ref: Strings And Numbers-Footnote-1390403
 +Node: Locale influences conversions390512
 +Ref: table-locale-affects393362
 +Node: All Operators394005
 +Node: Arithmetic Ops394646
 +Node: Concatenation397476
 +Ref: Concatenation-Footnote-1400426
 +Node: Assignment Ops400549
 +Ref: table-assign-ops405688
 +Node: Increment Ops407070
 +Node: Truth Values and Conditions410669
 +Node: Truth Values411795
 +Node: Typing and Comparison412886
 +Node: Variable Typing413722
 +Ref: Variable Typing-Footnote-1420384
 +Ref: Variable Typing-Footnote-2420464
 +Node: Comparison Operators420547
 +Ref: table-relational-ops420974
 +Node: POSIX String Comparison424660
 +Ref: POSIX String Comparison-Footnote-1426419
 +Ref: POSIX String Comparison-Footnote-2426562
 +Node: Boolean Ops426646
 +Ref: Boolean Ops-Footnote-1431339
 +Node: Conditional Exp431435
 +Node: Function Calls433221
 +Node: Precedence437171
 +Node: Locales441048
 +Node: Expressions Summary442730
 +Node: Patterns and Actions445393
 +Node: Pattern Overview446535
 +Node: Regexp Patterns448261
 +Node: Expression Patterns448807
 +Node: Ranges452716
 +Node: BEGIN/END455894
 +Node: Using BEGIN/END456707
 +Ref: Using BEGIN/END-Footnote-1459617
 +Node: I/O And BEGIN/END459727
 +Node: Empty465649
 +Node: Using Shell Variables465966
 +Node: Action Overview468304
 +Node: Statements470739
 +Node: If Statement472637
 +Node: While Statement474206
 +Node: Do Statement476294
 +Node: For Statement477480
 +Node: Switch Statement480837
 +Node: Break Statement483388
 +Node: Continue Statement485580
 +Node: Next Statement487512
 +Node: Nextfile Statement490009
 +Node: Exit Statement492870
 +Node: Built-in Variables495403
 +Node: User-modified496582
 +Node: Auto-set504793
 +Ref: Auto-set-Footnote-1522892
 +Ref: Auto-set-Footnote-2523110
 +Node: ARGC and ARGV523166
 +Node: Pattern Action Summary527605
 +Node: Arrays530221
 +Node: Array Basics531598
 +Node: Array Intro532448
 +Ref: figure-array-elements534464
 +Ref: Array Intro-Footnote-1537328
 +Node: Reference to Elements537460
 +Node: Assigning Elements539982
 +Node: Array Example540477
 +Node: Scanning an Array542446
 +Node: Controlling Scanning545543
 +Ref: Controlling Scanning-Footnote-1552206
 +Node: Numeric Array Subscripts552530
 +Node: Uninitialized Subscripts554804
 +Node: Delete556483
 +Ref: Delete-Footnote-1559297
 +Node: Multidimensional559354
 +Node: Multiscanning562559
 +Node: Arrays of Arrays564231
 +Node: Arrays Summary569131
 +Node: Functions571320
 +Node: Built-in572380
 +Node: Calling Built-in573569
 +Node: Boolean Functions575616
 +Node: Numeric Functions576186
 +Ref: Numeric Functions-Footnote-1580379
 +Ref: Numeric Functions-Footnote-2581063
 +Ref: Numeric Functions-Footnote-3581115
 +Node: String Functions581391
 +Ref: String Functions-Footnote-1607527
 +Ref: String Functions-Footnote-2607661
 +Ref: String Functions-Footnote-3607921
 +Node: Gory Details608008
 +Ref: table-sub-escapes609915
 +Ref: table-sub-proposed611561
 +Ref: table-posix-sub613071
 +Ref: table-gensub-escapes614759
 +Ref: Gory Details-Footnote-1615693
 +Node: I/O Functions615847
 +Ref: table-system-return-values622534
 +Ref: I/O Functions-Footnote-1624705
 +Ref: I/O Functions-Footnote-2624853
 +Node: Time Functions624973
 +Ref: Time Functions-Footnote-1636129
 +Ref: Time Functions-Footnote-2636205
 +Ref: Time Functions-Footnote-3636367
 +Ref: Time Functions-Footnote-4636478
 +Ref: Time Functions-Footnote-5636596
 +Ref: Time Functions-Footnote-6636831
 +Node: Bitwise Functions637113
 +Ref: table-bitwise-ops637715
 +Ref: Bitwise Functions-Footnote-1643969
 +Ref: Bitwise Functions-Footnote-2644148
 +Node: Type Functions644345
 +Node: I18N Functions647938
 +Node: User-defined649681
 +Node: Definition Syntax650501
 +Ref: Definition Syntax-Footnote-1656329
 +Node: Function Example656406
 +Ref: Function Example-Footnote-1659385
 +Node: Function Calling659407
 +Node: Calling A Function660001
 +Node: Variable Scope660971
 +Node: Pass By Value/Reference664025
 +Node: Function Caveats666757
 +Ref: Function Caveats-Footnote-1668852
 +Node: Return Statement668976
 +Node: Dynamic Typing672031
 +Node: Indirect Calls672987
 +Node: Functions Summary684146
 +Node: Library Functions686923
 +Ref: Library Functions-Footnote-1690471
 +Ref: Library Functions-Footnote-2690614
 +Node: Library Names690789
 +Ref: Library Names-Footnote-1694583
 +Ref: Library Names-Footnote-2694810
 +Node: General Functions694906
 +Node: Strtonum Function696100
 +Node: Assert Function699182
 +Node: Round Function702634
 +Node: Cliff Random Function704212
 +Node: Ordinal Functions705245
 +Ref: Ordinal Functions-Footnote-1708354
 +Ref: Ordinal Functions-Footnote-2708606
 +Node: Join Function708820
 +Ref: Join Function-Footnote-1710623
 +Node: Getlocaltime Function710827
 +Node: Readfile Function714601
 +Node: Shell Quoting716630
 +Node: Isnumeric Function718086
 +Node: Data File Management719498
 +Node: Filetrans Function720130
 +Node: Rewind Function724424
 +Node: File Checking726403
 +Ref: File Checking-Footnote-1727775
 +Node: Empty Files727982
 +Node: Ignoring Assigns730049
 +Node: Getopt Function731623
 +Ref: Getopt Function-Footnote-1747457
 +Node: Passwd Functions747669
 +Ref: Passwd Functions-Footnote-1756851
 +Node: Group Functions756939
 +Ref: Group Functions-Footnote-1765077
 +Node: Walking Arrays765290
 +Node: Library Functions Summary768338
 +Node: Library Exercises769762
 +Node: Sample Programs770249
 +Node: Running Examples771031
 +Node: Clones771783
 +Node: Cut Program773055
 +Node: Egrep Program783496
 +Node: Id Program792813
 +Node: Split Program802927
 +Ref: Split Program-Footnote-1813162
 +Node: Tee Program813349
 +Node: Uniq Program816258
 +Node: Wc Program824123
 +Node: Bytes vs. Characters824518
 +Node: Using extensions826120
 +Node: wc program826900
 +Node: Miscellaneous Programs831906
 +Node: Dupword Program833135
 +Node: Alarm Program835198
 +Node: Translate Program840111
 +Ref: Translate Program-Footnote-1844852
 +Node: Labels Program845130
 +Ref: Labels Program-Footnote-1848571
 +Node: Word Sorting848663
 +Node: History Sorting852857
 +Node: Extract Program855132
 +Node: Simple Sed863401
 +Node: Igawk Program866617
 +Ref: Igawk Program-Footnote-1881864
 +Ref: Igawk Program-Footnote-2882070
 +Ref: Igawk Program-Footnote-3882200
 +Node: Anagram Program882327
 +Node: Signature Program885423
 +Node: Programs Summary886675
 +Node: Programs Exercises887933
 +Ref: Programs Exercises-Footnote-1892249
 +Node: Advanced Features892335
 +Node: Nondecimal Data894829
 +Node: Boolean Typed Values896459
 +Node: Array Sorting898434
 +Node: Controlling Array Traversal899163
 +Ref: Controlling Array Traversal-Footnote-1907670
 +Node: Array Sorting Functions907792
 +Ref: Array Sorting Functions-Footnote-1913911
 +Node: Two-way I/O914119
 +Ref: Two-way I/O-Footnote-1922114
 +Ref: Two-way I/O-Footnote-2922305
 +Node: TCP/IP Networking922387
 +Node: Profiling925567
 +Node: Persistent Memory935277
 +Ref: Persistent Memory-Footnote-1944235
 +Node: Extension Philosophy944366
 +Node: Advanced Features Summary945901
 +Node: Internationalization948171
 +Node: I18N and L10N949877
 +Node: Explaining gettext950572
 +Ref: Explaining gettext-Footnote-1956725
 +Ref: Explaining gettext-Footnote-2956920
 +Node: Programmer i18n957085
 +Ref: Programmer i18n-Footnote-1962198
 +Node: Translator i18n962247
 +Node: String Extraction963083
 +Ref: String Extraction-Footnote-1964261
 +Node: Printf Ordering964359
 +Ref: Printf Ordering-Footnote-1967221
 +Node: I18N Portability967289
 +Ref: I18N Portability-Footnote-1969863
 +Node: I18N Example969934
 +Ref: I18N Example-Footnote-1973334
 +Ref: I18N Example-Footnote-2973410
 +Node: Gawk I18N973527
 +Node: I18N Summary974183
 +Node: Debugger975584
 +Node: Debugging976608
 +Node: Debugging Concepts977057
 +Node: Debugging Terms978883
 +Node: Awk Debugging981496
 +Ref: Awk Debugging-Footnote-1982473
 +Node: Sample Debugging Session982613
 +Node: Debugger Invocation983165
 +Node: Finding The Bug984794
 +Node: List of Debugger Commands991480
 +Node: Breakpoint Control992857
 +Node: Debugger Execution Control996689
 +Node: Viewing And Changing Data1000169
 +Node: Execution Stack1003907
 +Node: Debugger Info1005588
 +Node: Miscellaneous Debugger Commands1009887
 +Node: Readline Support1015140
 +Node: Limitations1016086
 +Node: Debugging Summary1018730
 +Node: Namespaces1020033
 +Node: Global Namespace1021160
 +Node: Qualified Names1022605
 +Node: Default Namespace1023640
 +Node: Changing The Namespace1024415
 +Node: Naming Rules1026109
 +Node: Internal Name Management1028024
 +Node: Namespace Example1029094
 +Node: Namespace And Features1031677
 +Node: Namespace Summary1033134
 +Node: Arbitrary Precision Arithmetic1034647
 +Node: Computer Arithmetic1036166
 +Ref: table-numeric-ranges1039983
 +Ref: table-floating-point-ranges1040481
 +Ref: Computer Arithmetic-Footnote-11041140
 +Node: Math Definitions1041199
 +Ref: table-ieee-formats1044244
 +Node: MPFR features1044818
 +Node: MPFR On Parole1045271
 +Ref: MPFR On Parole-Footnote-11046115
 +Node: MPFR Intro1046274
 +Node: FP Math Caution1047964
 +Ref: FP Math Caution-Footnote-11049038
 +Node: Inexactness of computations1049415
 +Node: Inexact representation1050446
 +Node: Comparing FP Values1051829
 +Node: Errors accumulate1053087
 +Node: Strange values1054554
 +Ref: Strange values-Footnote-11057220
 +Node: Getting Accuracy1057325
 +Node: Try To Round1060062
 +Node: Setting precision1060969
 +Ref: table-predefined-precision-strings1061674
 +Node: Setting the rounding mode1063559
 +Ref: table-gawk-rounding-modes1063941
 +Ref: Setting the rounding mode-Footnote-11067999
 +Node: Arbitrary Precision Integers1068182
 +Ref: Arbitrary Precision Integers-Footnote-11071394
 +Node: Checking for MPFR1071550
 +Node: POSIX Floating Point Problems1073040
 +Ref: POSIX Floating Point Problems-Footnote-11077904
 +Node: Floating point summary1077942
 +Node: Dynamic Extensions1080206
 +Node: Extension Intro1081805
 +Node: Plugin License1083113
 +Node: Extension Mechanism Outline1083926
 +Ref: figure-load-extension1084377
 +Ref: figure-register-new-function1085957
 +Ref: figure-call-new-function1087062
 +Node: Extension API Description1089181
 +Node: Extension API Functions Introduction1090910
 +Ref: table-api-std-headers1092808
 +Node: General Data Types1097272
 +Ref: General Data Types-Footnote-11106440
 +Node: Memory Allocation Functions1106755
 +Ref: Memory Allocation Functions-Footnote-11111480
 +Node: Constructor Functions1111579
 +Node: API Ownership of MPFR and GMP Values1115484
 +Node: Registration Functions1117045
 +Node: Extension Functions1117749
 +Node: Exit Callback Functions1123325
 +Node: Extension Version String1124644
 +Node: Input Parsers1125339
 +Node: Output Wrappers1138713
 +Node: Two-way processors1143421
 +Node: Printing Messages1145782
 +Ref: Printing Messages-Footnote-11146996
 +Node: Updating ERRNO1147151
 +Node: Requesting Values1147950
 +Ref: table-value-types-returned1148703
 +Node: Accessing Parameters1149812
 +Node: Symbol Table Access1151096
 +Node: Symbol table by name1151612
 +Ref: Symbol table by name-Footnote-11154823
 +Node: Symbol table by cookie1154955
 +Ref: Symbol table by cookie-Footnote-11159236
 +Node: Cached values1159300
 +Ref: Cached values-Footnote-11162944
 +Node: Array Manipulation1163101
 +Ref: Array Manipulation-Footnote-11164204
 +Node: Array Data Types1164241
 +Ref: Array Data Types-Footnote-11167063
 +Node: Array Functions1167163
 +Node: Flattening Arrays1172192
 +Node: Creating Arrays1179244
 +Node: Redirection API1184094
 +Node: Extension API Variables1187115
 +Node: Extension Versioning1187840
 +Ref: gawk-api-version1188277
 +Node: Extension GMP/MPFR Versioning1190065
 +Node: Extension API Informational Variables1191771
 +Node: Extension API Boilerplate1192932
 +Node: Changes from API V11197068
 +Node: Finding Extensions1198702
 +Node: Extension Example1199277
 +Node: Internal File Description1200101
 +Node: Internal File Ops1204425
 +Ref: Internal File Ops-Footnote-11215983
 +Node: Using Internal File Ops1216131
 +Ref: Using Internal File Ops-Footnote-11218562
 +Node: Extension Samples1218840
 +Node: Extension Sample File Functions1220409
 +Node: Extension Sample Fnmatch1228547
 +Node: Extension Sample Fork1230142
 +Node: Extension Sample Inplace1231418
 +Node: Extension Sample Ord1235090
 +Node: Extension Sample Readdir1235966
 +Ref: table-readdir-file-types1236863
 +Node: Extension Sample Revout1238001
 +Node: Extension Sample Rev2way1238598
 +Node: Extension Sample Read write array1239350
 +Node: Extension Sample Readfile1242624
 +Node: Extension Sample Time1243755
 +Node: Extension Sample API Tests1246045
 +Node: gawkextlib1246553
 +Node: Extension summary1249589
 +Node: Extension Exercises1253447
 +Node: Language History1254725
 +Node: V7/SVR3.11256439
 +Node: SVR41258789
 +Node: POSIX1260321
 +Node: BTL1261746
 +Node: POSIX/GNU1262515
 +Node: Feature History1269046
- Node: Common Extensions1288495
- Node: Ranges and Locales1289864
- Ref: Ranges and Locales-Footnote-11294665
- Ref: Ranges and Locales-Footnote-21294692
- Ref: Ranges and Locales-Footnote-31294931
- Node: Contributors1295154
- Node: History summary1301359
- Node: Installation1302805
- Node: Gawk Distribution1303769
- Node: Getting1304261
- Node: Extracting1305260
- Node: Distribution contents1306972
- Node: Unix Installation1315052
- Node: Quick Installation1315874
- Node: Compiling with MPFR1318420
- Node: Shell Startup Files1319126
- Node: Additional Configuration Options1320283
- Node: Configuration Philosophy1322670
- Node: Compiling from Git1325172
- Node: Building the Documentation1325731
- Node: Non-Unix Installation1327143
- Node: PC Installation1327619
- Node: PC Binary Installation1328492
- Node: PC Compiling1329397
- Node: PC Using1330575
- Node: Cygwin1334303
- Node: MSYS1335559
- Node: OpenVMS Installation1336191
- Node: OpenVMS Compilation1336872
- Ref: OpenVMS Compilation-Footnote-11338355
- Node: OpenVMS Dynamic Extensions1338417
- Node: OpenVMS Installation Details1340053
- Node: OpenVMS Running1342488
- Node: OpenVMS GNV1346625
- Node: Bugs1347380
- Node: Bug definition1348304
- Node: Bug address1351955
- Node: Usenet1355546
- Node: Performance bugs1356777
- Node: Asking for help1359795
- Node: Maintainers1361786
- Node: Other Versions1362813
- Node: Installation summary1371745
- Node: Notes1373129
- Node: Compatibility Mode1373939
- Node: Additions1374761
- Node: Accessing The Source1375706
- Node: Adding Code1377241
- Node: New Ports1384377
- Node: Derived Files1388887
- Ref: Derived Files-Footnote-11394734
- Ref: Derived Files-Footnote-21394769
- Ref: Derived Files-Footnote-31395386
- Node: Future Extensions1395500
- Node: Implementation Limitations1396172
- Node: Extension Design1397414
- Node: Old Extension Problems1398578
- Ref: Old Extension Problems-Footnote-11400154
- Node: Extension New Mechanism Goals1400215
- Ref: Extension New Mechanism Goals-Footnote-11403711
- Node: Extension Other Design Decisions1403912
- Node: Extension Future Growth1406111
- Node: Notes summary1406735
- Node: Basic Concepts1407948
- Node: Basic High Level1408633
- Ref: figure-general-flow1408915
- Ref: figure-process-flow1409617
- Ref: Basic High Level-Footnote-11413013
- Node: Basic Data Typing1413202
- Node: Glossary1416620
- Node: Copying1449742
- Node: GNU Free Documentation License1487503
- Node: Index1512826
++Node: Common Extensions1288548
++Node: Ranges and Locales1289917
++Ref: Ranges and Locales-Footnote-11294718
++Ref: Ranges and Locales-Footnote-21294745
++Ref: Ranges and Locales-Footnote-31294984
++Node: Contributors1295207
++Node: History summary1301412
++Node: Installation1302858
++Node: Gawk Distribution1303822
++Node: Getting1304314
++Node: Extracting1305313
++Node: Distribution contents1307025
++Node: Unix Installation1315105
++Node: Quick Installation1315927
++Node: Compiling with MPFR1318473
++Node: Shell Startup Files1319179
++Node: Additional Configuration Options1320336
++Node: Configuration Philosophy1322723
++Node: Compiling from Git1325225
++Node: Building the Documentation1325784
++Node: Non-Unix Installation1327196
++Node: PC Installation1327672
++Node: PC Binary Installation1328545
++Node: PC Compiling1329450
++Node: PC Using1330628
++Node: Cygwin1334356
++Node: MSYS1335612
++Node: OpenVMS Installation1336244
++Node: OpenVMS Compilation1336925
++Ref: OpenVMS Compilation-Footnote-11338408
++Node: OpenVMS Dynamic Extensions1338470
++Node: OpenVMS Installation Details1340106
++Node: OpenVMS Running1342541
++Node: OpenVMS GNV1346678
++Node: Bugs1347433
++Node: Bug definition1348357
++Node: Bug address1352008
++Node: Usenet1355599
++Node: Performance bugs1356830
++Node: Asking for help1359848
++Node: Maintainers1361839
++Node: Other Versions1362866
++Node: Installation summary1371798
++Node: Notes1373182
++Node: Compatibility Mode1373992
++Node: Additions1374814
++Node: Accessing The Source1375759
++Node: Adding Code1377294
++Node: New Ports1384430
++Node: Derived Files1388940
++Ref: Derived Files-Footnote-11394787
++Ref: Derived Files-Footnote-21394822
++Ref: Derived Files-Footnote-31395439
++Node: Future Extensions1395553
++Node: Implementation Limitations1396225
++Node: Extension Design1397467
++Node: Old Extension Problems1398631
++Ref: Old Extension Problems-Footnote-11400207
++Node: Extension New Mechanism Goals1400268
++Ref: Extension New Mechanism Goals-Footnote-11403764
++Node: Extension Other Design Decisions1403965
++Node: Extension Future Growth1406164
++Node: Notes summary1406788
++Node: Basic Concepts1408001
++Node: Basic High Level1408686
++Ref: figure-general-flow1408968
++Ref: figure-process-flow1409670
++Ref: Basic High Level-Footnote-11413066
++Node: Basic Data Typing1413255
++Node: Glossary1416673
++Node: Copying1449795
++Node: GNU Free Documentation License1487556
++Node: Index1512879
  End Tag Table
diff --cc io.c
index 6641d3ca,979cad45..94d6a0df
--- a/io.c
+++ b/io.c
@@@ -952,11 -951,7 +952,11 @@@ redirect_string(const char *str, size_
                        /* set close-on-exec */
                        os_close_on_exec(fileno(rp->output.fp), str, "pipe", 
 -                      rp->flag |= RED_FLUSH;
 +                      // Allow the user to say they don't want pipe output
 +                      // to be flushed all the time.
 +                      if (! avoid_flush(str))
-                               rp->flag |= RED_NOBUF;
++                              rp->flag |= RED_FLUSH;
                case redirect_pipein:
                        if (extfd >= 0) {
diff --cc pc/Makefile.tst
index 84ec5d69,f9e9681b..316d778c
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@@ -190,10 -190,10 +190,10 @@@ GAWK_EXT_TESTS = 
        aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
        arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \
        binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
 -      clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
 +      clos1way5 clos1way6 colonwarn commas crlf csv1 dbugeval dbugeval2 \
        dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \
        devfd devfd1 devfd2 dfacheck1 dumpvars \
-       elemnew1 errno exit fieldwdth forcenum fpat1 fpat2 \
+       elemnew1 elemnew2 elemnew3 errno exit fieldwdth forcenum fpat1 fpat2 \
        fpat3 fpat4 fpat5 fpat6 fpat7 fpat8 fpat9 fpatnull fsfwfs functab1 \
        functab2 functab3 functab6 funlen fwtest fwtest2 fwtest3 fwtest4 \
        fwtest5 fwtest6 fwtest7 fwtest8 genpot gensub gensub2 gensub3 \
diff --cc test/
index 4c98b10f,b30d3d7a..6d000178
--- a/test/
+++ b/test/
@@@ -1502,10 -1503,10 +1506,10 @@@ GAWK_EXT_TESTS = 
        aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
        arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \
        binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
 -      clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
 +      clos1way5 clos1way6 colonwarn commas crlf csv1 dbugeval dbugeval2 \
        dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \
        devfd devfd1 devfd2 dfacheck1 dumpvars \
-       elemnew1 errno exit fieldwdth forcenum fpat1 fpat2 \
+       elemnew1 elemnew2 elemnew3 errno exit fieldwdth forcenum fpat1 fpat2 \
        fpat3 fpat4 fpat5 fpat6 fpat7 fpat8 fpat9 fpatnull fsfwfs functab1 \
        functab2 functab3 functab6 funlen fwtest fwtest2 fwtest3 fwtest4 \
        fwtest5 fwtest6 fwtest7 fwtest8 genpot gensub gensub2 gensub3 \
diff --cc test/
index bea9c6d3,ed835ab6..1cd775d1
--- a/test/
+++ b/test/
@@@ -1766,10 -1771,10 +1770,10 @@@ GAWK_EXT_TESTS = 
        aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
        arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \
        binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
 -      clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
 +      clos1way5 clos1way6 colonwarn commas crlf csv1 dbugeval dbugeval2 \
        dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \
        devfd devfd1 devfd2 dfacheck1 dumpvars \
-       elemnew1 errno exit fieldwdth forcenum fpat1 fpat2 \
+       elemnew1 elemnew2 elemnew3 errno exit fieldwdth forcenum fpat1 fpat2 \
        fpat3 fpat4 fpat5 fpat6 fpat7 fpat8 fpat9 fpatnull fsfwfs functab1 \
        functab2 functab3 functab6 funlen fwtest fwtest2 fwtest3 fwtest4 \
        fwtest5 fwtest6 fwtest7 fwtest8 genpot gensub gensub2 gensub3 \


Summary of changes:
 ChangeLog                        |  27 +++++++
 awk.h                            |   5 +-
 builtin.c                        |  25 ++++---
 doc/ChangeLog                    |   5 +-
 doc/                    | 150 ++++++++++++++++++++-------------------
 doc/gawk.texi                    |   4 ++
 doc/                  |   4 ++
 field.c                          |   1 +
 io.c                             |  14 ++--
 pc/ChangeLog                     |   4 ++
 pc/Makefile.tst                  |  12 +++-
 test/ChangeLog                   |   7 ++
 test/                 |   6 +-
 test/                 |  16 ++++-
 test/Maketests                   |  10 +++
 test/elemnew2.awk                |  15 ++++
 test/elemnew2.ok                 |   3 +
 test/elemnew3.awk                |   9 +++
 test/{stupid4.ok => elemnew3.ok} |   1 -
 19 files changed, 222 insertions(+), 96 deletions(-)
 create mode 100644 test/elemnew2.awk
 create mode 100644 test/elemnew2.ok
 create mode 100644 test/elemnew3.awk
 copy test/{stupid4.ok => elemnew3.ok} (57%)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]