gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-790


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-790-g07795bb
Date: Mon, 18 Jan 2016 04:20:56 +0000

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, gawk-4.1-stable has been updated
       via  07795bbecb05b4d2d52bd8808c713b0c5ece7b3b (commit)
       via  dd53cb380cc913ea1c2fa1a7df74c903adb2ef1a (commit)
       via  7985a75ad0cd606794fac7ba662637372bd204a9 (commit)
      from  c5fbf475a8efa76f67c5e795d6adbb4bb0769ee8 (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 -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=07795bbecb05b4d2d52bd8808c713b0c5ece7b3b

commit 07795bbecb05b4d2d52bd8808c713b0c5ece7b3b
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Jan 18 06:20:39 2016 +0200

    Improve doc on coprocesses.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 5b2028a..9ce040b 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -2,6 +2,7 @@
 
        * gawktexi.in (Bracket Expressions): Document that '[', '.' and
        '*' are literal inside bracket expressions.
+       (Two-way I/O): Add stuff about stdbuf and deadlocks.
 
 2016-01-15         Arnold D. Robbins     <address@hidden>
 
diff --git a/doc/gawk.info b/doc/gawk.info
index 23312f4..0da0b07 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -19610,10 +19610,27 @@ Auto-set::), like so:
      print ... |& command           # start two-way pipe
      ...
 
-Using ptys usually avoids the buffer deadlock issues described earlier,
-at some loss in performance.  If your system does not have ptys, or if
-all the system's ptys are in use, 'gawk' automatically falls back to
-using regular pipes.
+If your system does not have ptys, or if all the system's ptys are in
+use, 'gawk' automatically falls back to using regular pipes.
+
+   Using ptys usually avoids the buffer deadlock issues described
+earlier, at some loss in performance.  This is because the tty driver
+buffers and sends data line-by-line.  On systems with the 'stdbuf' (part
+of the GNU Coreutils package
+(http://www.gnu.org/software/coreutils/coreutils.html)), you can use
+that program instead of ptys.
+
+   Note also that ptys are not fully transparent.  Certain binary
+control codes, such 'Ctrl-d' for end-of-file, are interpreted by the tty
+driver and not passed through.
+
+     CAUTION: Finally, coprocesses open up the possibility of "deadlock"
+     between 'gawk' and the program running in the coprocess.  This can
+     occur if you send "too much" data to the coprocess before reading
+     any back; each process is blocked writing data with noone available
+     to read what they've already written.  There is no workaround for
+     deadlock; careful programming and knowledge of the behavior of the
+     coprocess are required.
 
    ---------- Footnotes ----------
 
@@ -34881,214 +34898,214 @@ Ref: Controlling Array Traversal-Footnote-1787656
 Node: Array Sorting Functions787774
 Ref: Array Sorting Functions-Footnote-1792865
 Node: Two-way I/O793061
-Ref: Two-way I/O-Footnote-1798012
-Ref: Two-way I/O-Footnote-2798199
-Node: TCP/IP Networking798281
-Node: Profiling801399
-Node: Advanced Features Summary808938
-Node: Internationalization810874
-Node: I18N and L10N812354
-Node: Explaining gettext813041
-Ref: Explaining gettext-Footnote-1818064
-Ref: Explaining gettext-Footnote-2818249
-Node: Programmer i18n818414
-Ref: Programmer i18n-Footnote-1823270
-Node: Translator i18n823319
-Node: String Extraction824113
-Ref: String Extraction-Footnote-1825246
-Node: Printf Ordering825332
-Ref: Printf Ordering-Footnote-1828118
-Node: I18N Portability828182
-Ref: I18N Portability-Footnote-1830638
-Node: I18N Example830701
-Ref: I18N Example-Footnote-1833507
-Node: Gawk I18N833580
-Node: I18N Summary834225
-Node: Debugger835566
-Node: Debugging836588
-Node: Debugging Concepts837029
-Node: Debugging Terms838838
-Node: Awk Debugging841413
-Node: Sample Debugging Session842319
-Node: Debugger Invocation842853
-Node: Finding The Bug844239
-Node: List of Debugger Commands850717
-Node: Breakpoint Control852050
-Node: Debugger Execution Control855744
-Node: Viewing And Changing Data859106
-Node: Execution Stack862480
-Node: Debugger Info864117
-Node: Miscellaneous Debugger Commands868188
-Node: Readline Support873276
-Node: Limitations874172
-Node: Debugging Summary876281
-Node: Arbitrary Precision Arithmetic877454
-Node: Computer Arithmetic878870
-Ref: table-numeric-ranges882461
-Ref: Computer Arithmetic-Footnote-1883183
-Node: Math Definitions883240
-Ref: table-ieee-formats886554
-Ref: Math Definitions-Footnote-1887157
-Node: MPFR features887262
-Node: FP Math Caution888935
-Ref: FP Math Caution-Footnote-1890007
-Node: Inexactness of computations890376
-Node: Inexact representation891336
-Node: Comparing FP Values892696
-Node: Errors accumulate893778
-Node: Getting Accuracy895211
-Node: Try To Round897921
-Node: Setting precision898820
-Ref: table-predefined-precision-strings899517
-Node: Setting the rounding mode901347
-Ref: table-gawk-rounding-modes901721
-Ref: Setting the rounding mode-Footnote-1905129
-Node: Arbitrary Precision Integers905308
-Ref: Arbitrary Precision Integers-Footnote-1908292
-Node: POSIX Floating Point Problems908441
-Ref: POSIX Floating Point Problems-Footnote-1912323
-Node: Floating point summary912361
-Node: Dynamic Extensions914551
-Node: Extension Intro916104
-Node: Plugin License917370
-Node: Extension Mechanism Outline918167
-Ref: figure-load-extension918606
-Ref: figure-register-new-function920171
-Ref: figure-call-new-function921263
-Node: Extension API Description923326
-Node: Extension API Functions Introduction924774
-Node: General Data Types929586
-Ref: General Data Types-Footnote-1935541
-Node: Memory Allocation Functions935840
-Ref: Memory Allocation Functions-Footnote-1938685
-Node: Constructor Functions938784
-Node: Registration Functions940529
-Node: Extension Functions941214
-Node: Exit Callback Functions943513
-Node: Extension Version String944763
-Node: Input Parsers945426
-Node: Output Wrappers955311
-Node: Two-way processors959823
-Node: Printing Messages962087
-Ref: Printing Messages-Footnote-1963161
-Node: Updating ERRNO963314
-Node: Requesting Values964053
-Ref: table-value-types-returned964790
-Node: Accessing Parameters965673
-Node: Symbol Table Access966909
-Node: Symbol table by name967421
-Node: Symbol table by cookie969442
-Ref: Symbol table by cookie-Footnote-1973591
-Node: Cached values973655
-Ref: Cached values-Footnote-1977156
-Node: Array Manipulation977247
-Ref: Array Manipulation-Footnote-1978346
-Node: Array Data Types978383
-Ref: Array Data Types-Footnote-1981041
-Node: Array Functions981133
-Node: Flattening Arrays984992
-Node: Creating Arrays991900
-Node: Extension API Variables996672
-Node: Extension Versioning997308
-Node: Extension API Informational Variables999199
-Node: Extension API Boilerplate1000263
-Node: Finding Extensions1004077
-Node: Extension Example1004637
-Node: Internal File Description1005435
-Node: Internal File Ops1009515
-Ref: Internal File Ops-Footnote-11021277
-Node: Using Internal File Ops1021417
-Ref: Using Internal File Ops-Footnote-11023800
-Node: Extension Samples1024075
-Node: Extension Sample File Functions1025604
-Node: Extension Sample Fnmatch1033253
-Node: Extension Sample Fork1034740
-Node: Extension Sample Inplace1035958
-Node: Extension Sample Ord1039168
-Node: Extension Sample Readdir1040004
-Ref: table-readdir-file-types1040893
-Node: Extension Sample Revout1041698
-Node: Extension Sample Rev2way1042287
-Node: Extension Sample Read write array1043027
-Node: Extension Sample Readfile1044969
-Node: Extension Sample Time1046064
-Node: Extension Sample API Tests1047412
-Node: gawkextlib1047904
-Node: Extension summary1050328
-Node: Extension Exercises1054020
-Node: Language History1055517
-Node: V7/SVR3.11057173
-Node: SVR41059325
-Node: POSIX1060759
-Node: BTL1062139
-Node: POSIX/GNU1062869
-Node: Feature History1068390
-Node: Common Extensions1081719
-Node: Ranges and Locales1083002
-Ref: Ranges and Locales-Footnote-11087618
-Ref: Ranges and Locales-Footnote-21087645
-Ref: Ranges and Locales-Footnote-31087880
-Node: Contributors1088101
-Node: History summary1093670
-Node: Installation1095050
-Node: Gawk Distribution1095995
-Node: Getting1096479
-Node: Extracting1097440
-Node: Distribution contents1099078
-Node: Unix Installation1104831
-Node: Quick Installation1105447
-Node: Additional Configuration Options1107874
-Node: Configuration Philosophy1109678
-Node: Non-Unix Installation1112048
-Node: PC Installation1112506
-Node: PC Binary Installation1113826
-Node: PC Compiling1115678
-Ref: PC Compiling-Footnote-11118702
-Node: PC Testing1118811
-Node: PC Using1119991
-Node: Cygwin1124105
-Node: MSYS1124875
-Node: VMS Installation1125376
-Node: VMS Compilation1126167
-Ref: VMS Compilation-Footnote-11127397
-Node: VMS Dynamic Extensions1127455
-Node: VMS Installation Details1129140
-Node: VMS Running1131393
-Node: VMS GNV1134234
-Node: VMS Old Gawk1134969
-Node: Bugs1135440
-Node: Other Versions1139637
-Node: Installation summary1146223
-Node: Notes1147281
-Node: Compatibility Mode1148146
-Node: Additions1148928
-Node: Accessing The Source1149853
-Node: Adding Code1151289
-Node: New Ports1157508
-Node: Derived Files1161996
-Ref: Derived Files-Footnote-11167481
-Ref: Derived Files-Footnote-21167516
-Ref: Derived Files-Footnote-31168114
-Node: Future Extensions1168228
-Node: Implementation Limitations1168886
-Node: Extension Design1170069
-Node: Old Extension Problems1171223
-Ref: Old Extension Problems-Footnote-11172741
-Node: Extension New Mechanism Goals1172798
-Ref: Extension New Mechanism Goals-Footnote-11176162
-Node: Extension Other Design Decisions1176351
-Node: Extension Future Growth1178464
-Node: Old Extension Mechanism1179300
-Node: Notes summary1181063
-Node: Basic Concepts1182245
-Node: Basic High Level1182926
-Ref: figure-general-flow1183208
-Ref: figure-process-flow1183893
-Ref: Basic High Level-Footnote-11187194
-Node: Basic Data Typing1187379
-Node: Glossary1190707
-Node: Copying1222653
-Node: GNU Free Documentation License1260192
-Node: Index1285310
+Ref: Two-way I/O-Footnote-1798881
+Ref: Two-way I/O-Footnote-2799068
+Node: TCP/IP Networking799150
+Node: Profiling802268
+Node: Advanced Features Summary809807
+Node: Internationalization811743
+Node: I18N and L10N813223
+Node: Explaining gettext813910
+Ref: Explaining gettext-Footnote-1818933
+Ref: Explaining gettext-Footnote-2819118
+Node: Programmer i18n819283
+Ref: Programmer i18n-Footnote-1824139
+Node: Translator i18n824188
+Node: String Extraction824982
+Ref: String Extraction-Footnote-1826115
+Node: Printf Ordering826201
+Ref: Printf Ordering-Footnote-1828987
+Node: I18N Portability829051
+Ref: I18N Portability-Footnote-1831507
+Node: I18N Example831570
+Ref: I18N Example-Footnote-1834376
+Node: Gawk I18N834449
+Node: I18N Summary835094
+Node: Debugger836435
+Node: Debugging837457
+Node: Debugging Concepts837898
+Node: Debugging Terms839707
+Node: Awk Debugging842282
+Node: Sample Debugging Session843188
+Node: Debugger Invocation843722
+Node: Finding The Bug845108
+Node: List of Debugger Commands851586
+Node: Breakpoint Control852919
+Node: Debugger Execution Control856613
+Node: Viewing And Changing Data859975
+Node: Execution Stack863349
+Node: Debugger Info864986
+Node: Miscellaneous Debugger Commands869057
+Node: Readline Support874145
+Node: Limitations875041
+Node: Debugging Summary877150
+Node: Arbitrary Precision Arithmetic878323
+Node: Computer Arithmetic879739
+Ref: table-numeric-ranges883330
+Ref: Computer Arithmetic-Footnote-1884052
+Node: Math Definitions884109
+Ref: table-ieee-formats887423
+Ref: Math Definitions-Footnote-1888026
+Node: MPFR features888131
+Node: FP Math Caution889804
+Ref: FP Math Caution-Footnote-1890876
+Node: Inexactness of computations891245
+Node: Inexact representation892205
+Node: Comparing FP Values893565
+Node: Errors accumulate894647
+Node: Getting Accuracy896080
+Node: Try To Round898790
+Node: Setting precision899689
+Ref: table-predefined-precision-strings900386
+Node: Setting the rounding mode902216
+Ref: table-gawk-rounding-modes902590
+Ref: Setting the rounding mode-Footnote-1905998
+Node: Arbitrary Precision Integers906177
+Ref: Arbitrary Precision Integers-Footnote-1909161
+Node: POSIX Floating Point Problems909310
+Ref: POSIX Floating Point Problems-Footnote-1913192
+Node: Floating point summary913230
+Node: Dynamic Extensions915420
+Node: Extension Intro916973
+Node: Plugin License918239
+Node: Extension Mechanism Outline919036
+Ref: figure-load-extension919475
+Ref: figure-register-new-function921040
+Ref: figure-call-new-function922132
+Node: Extension API Description924195
+Node: Extension API Functions Introduction925643
+Node: General Data Types930455
+Ref: General Data Types-Footnote-1936410
+Node: Memory Allocation Functions936709
+Ref: Memory Allocation Functions-Footnote-1939554
+Node: Constructor Functions939653
+Node: Registration Functions941398
+Node: Extension Functions942083
+Node: Exit Callback Functions944382
+Node: Extension Version String945632
+Node: Input Parsers946295
+Node: Output Wrappers956180
+Node: Two-way processors960692
+Node: Printing Messages962956
+Ref: Printing Messages-Footnote-1964030
+Node: Updating ERRNO964183
+Node: Requesting Values964922
+Ref: table-value-types-returned965659
+Node: Accessing Parameters966542
+Node: Symbol Table Access967778
+Node: Symbol table by name968290
+Node: Symbol table by cookie970311
+Ref: Symbol table by cookie-Footnote-1974460
+Node: Cached values974524
+Ref: Cached values-Footnote-1978025
+Node: Array Manipulation978116
+Ref: Array Manipulation-Footnote-1979215
+Node: Array Data Types979252
+Ref: Array Data Types-Footnote-1981910
+Node: Array Functions982002
+Node: Flattening Arrays985861
+Node: Creating Arrays992769
+Node: Extension API Variables997541
+Node: Extension Versioning998177
+Node: Extension API Informational Variables1000068
+Node: Extension API Boilerplate1001132
+Node: Finding Extensions1004946
+Node: Extension Example1005506
+Node: Internal File Description1006304
+Node: Internal File Ops1010384
+Ref: Internal File Ops-Footnote-11022146
+Node: Using Internal File Ops1022286
+Ref: Using Internal File Ops-Footnote-11024669
+Node: Extension Samples1024944
+Node: Extension Sample File Functions1026473
+Node: Extension Sample Fnmatch1034122
+Node: Extension Sample Fork1035609
+Node: Extension Sample Inplace1036827
+Node: Extension Sample Ord1040037
+Node: Extension Sample Readdir1040873
+Ref: table-readdir-file-types1041762
+Node: Extension Sample Revout1042567
+Node: Extension Sample Rev2way1043156
+Node: Extension Sample Read write array1043896
+Node: Extension Sample Readfile1045838
+Node: Extension Sample Time1046933
+Node: Extension Sample API Tests1048281
+Node: gawkextlib1048773
+Node: Extension summary1051197
+Node: Extension Exercises1054889
+Node: Language History1056386
+Node: V7/SVR3.11058042
+Node: SVR41060194
+Node: POSIX1061628
+Node: BTL1063008
+Node: POSIX/GNU1063738
+Node: Feature History1069259
+Node: Common Extensions1082588
+Node: Ranges and Locales1083871
+Ref: Ranges and Locales-Footnote-11088487
+Ref: Ranges and Locales-Footnote-21088514
+Ref: Ranges and Locales-Footnote-31088749
+Node: Contributors1088970
+Node: History summary1094539
+Node: Installation1095919
+Node: Gawk Distribution1096864
+Node: Getting1097348
+Node: Extracting1098309
+Node: Distribution contents1099947
+Node: Unix Installation1105700
+Node: Quick Installation1106316
+Node: Additional Configuration Options1108743
+Node: Configuration Philosophy1110547
+Node: Non-Unix Installation1112917
+Node: PC Installation1113375
+Node: PC Binary Installation1114695
+Node: PC Compiling1116547
+Ref: PC Compiling-Footnote-11119571
+Node: PC Testing1119680
+Node: PC Using1120860
+Node: Cygwin1124974
+Node: MSYS1125744
+Node: VMS Installation1126245
+Node: VMS Compilation1127036
+Ref: VMS Compilation-Footnote-11128266
+Node: VMS Dynamic Extensions1128324
+Node: VMS Installation Details1130009
+Node: VMS Running1132262
+Node: VMS GNV1135103
+Node: VMS Old Gawk1135838
+Node: Bugs1136309
+Node: Other Versions1140506
+Node: Installation summary1147092
+Node: Notes1148150
+Node: Compatibility Mode1149015
+Node: Additions1149797
+Node: Accessing The Source1150722
+Node: Adding Code1152158
+Node: New Ports1158377
+Node: Derived Files1162865
+Ref: Derived Files-Footnote-11168350
+Ref: Derived Files-Footnote-21168385
+Ref: Derived Files-Footnote-31168983
+Node: Future Extensions1169097
+Node: Implementation Limitations1169755
+Node: Extension Design1170938
+Node: Old Extension Problems1172092
+Ref: Old Extension Problems-Footnote-11173610
+Node: Extension New Mechanism Goals1173667
+Ref: Extension New Mechanism Goals-Footnote-11177031
+Node: Extension Other Design Decisions1177220
+Node: Extension Future Growth1179333
+Node: Old Extension Mechanism1180169
+Node: Notes summary1181932
+Node: Basic Concepts1183114
+Node: Basic High Level1183795
+Ref: figure-general-flow1184077
+Ref: figure-process-flow1184762
+Ref: Basic High Level-Footnote-11188063
+Node: Basic Data Typing1188248
+Node: Glossary1191576
+Node: Copying1223522
+Node: GNU Free Documentation License1261061
+Node: Index1286179
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index f38eff4..f8c3a85 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -27477,10 +27477,27 @@ print @dots{} |& command           # start two-way 
pipe
 @end example
 
 @noindent
-Using ptys usually avoids the buffer deadlock issues described earlier, at some
-loss in performance.  If your system does not have ptys, or if all the
-system's ptys are in use, @command{gawk} automatically falls back to
-using regular pipes.
+If your system does not have ptys, or if all the system's ptys are in use,
address@hidden automatically falls back to using regular pipes.
+
+Using ptys usually avoids the buffer deadlock issues described earlier,
+at some loss in performance. This is because the tty driver buffers
+and sends data line-by-line.  On systems with the @command{stdbuf}
+(part of the @uref{http://www.gnu.org/software/coreutils/coreutils.html,
+GNU Coreutils package}), you can use that program instead of ptys.
+
+Note also that ptys are not fully transparent. Certain binary control
+codes, such @kbd{Ctrl-d} for end-of-file, are interpreted by the tty
+driver and not passed through.
+
address@hidden CAUTION
+Finally, coprocesses open up the possibility of @dfn{deadlock} between
address@hidden and the program running in the coprocess. This can occur
+if you send ``too much'' data to the coprocess before reading any back;
+each process is blocked writing data with noone available to read what
+they've already written.  There is no workaround for deadlock; careful
+programming and knowledge of the behavior of the coprocess are required.
address@hidden quotation
 
 @node TCP/IP Networking
 @section Using @command{gawk} for Network Programming
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index ec71534..8d721c2 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -26568,10 +26568,27 @@ print @dots{} |& command           # start two-way 
pipe
 @end example
 
 @noindent
-Using ptys usually avoids the buffer deadlock issues described earlier, at some
-loss in performance.  If your system does not have ptys, or if all the
-system's ptys are in use, @command{gawk} automatically falls back to
-using regular pipes.
+If your system does not have ptys, or if all the system's ptys are in use,
address@hidden automatically falls back to using regular pipes.
+
+Using ptys usually avoids the buffer deadlock issues described earlier,
+at some loss in performance. This is because the tty driver buffers
+and sends data line-by-line.  On systems with the @command{stdbuf}
+(part of the @uref{http://www.gnu.org/software/coreutils/coreutils.html,
+GNU Coreutils package}), you can use that program instead of ptys.
+
+Note also that ptys are not fully transparent. Certain binary control
+codes, such @kbd{Ctrl-d} for end-of-file, are interpreted by the tty
+driver and not passed through.
+
address@hidden CAUTION
+Finally, coprocesses open up the possibility of @dfn{deadlock} between
address@hidden and the program running in the coprocess. This can occur
+if you send ``too much'' data to the coprocess before reading any back;
+each process is blocked writing data with noone available to read what
+they've already written.  There is no workaround for deadlock; careful
+programming and knowledge of the behavior of the coprocess are required.
address@hidden quotation
 
 @node TCP/IP Networking
 @section Using @command{gawk} for Network Programming

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=dd53cb380cc913ea1c2fa1a7df74c903adb2ef1a

commit dd53cb380cc913ea1c2fa1a7df74c903adb2ef1a
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Jan 18 06:08:48 2016 +0200

    Minor improvement to doc on bracket expressions.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7cb7f3e..5b2028a 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-18         Arnold D. Robbins     <address@hidden>
+
+       * gawktexi.in (Bracket Expressions): Document that '[', '.' and
+       '*' are literal inside bracket expressions.
+
 2016-01-15         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in (Array Sorting Functions): Clean up the code some,
diff --git a/doc/gawk.info b/doc/gawk.info
index a29ba20..23312f4 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -3806,6 +3806,10 @@ Equivalence classes
      classes; they do not recognize collating symbols or equivalence
      classes.
 
+   Inside a bracket expression, an opening bracket ('[') that does not
+start a character class, collating element or equivalence class is taken
+literally.  This is also true of '.' and '*'.
+
 
 File: gawk.info,  Node: Leftmost Longest,  Next: Computed Regexps,  Prev: 
Bracket Expressions,  Up: Regexp
 
@@ -34596,495 +34600,495 @@ Ref: Regexp Operators-Footnote-1170610
 Ref: Regexp Operators-Footnote-2170757
 Node: Bracket Expressions170855
 Ref: table-char-classes172878
-Node: Leftmost Longest175824
-Node: Computed Regexps177127
-Node: GNU Regexp Operators180554
-Node: Case-sensitivity184233
-Ref: Case-sensitivity-Footnote-1187120
-Ref: Case-sensitivity-Footnote-2187355
-Node: Regexp Summary187463
-Node: Reading Files188929
-Node: Records191023
-Node: awk split records191756
-Node: gawk split records196688
-Ref: gawk split records-Footnote-1201232
-Node: Fields201269
-Ref: Fields-Footnote-1204049
-Node: Nonconstant Fields204135
-Ref: Nonconstant Fields-Footnote-1206371
-Node: Changing Fields206575
-Node: Field Separators212505
-Node: Default Field Splitting215203
-Node: Regexp Field Splitting216321
-Node: Single Character Fields219674
-Node: Command Line Field Separator220734
-Node: Full Line Fields223952
-Ref: Full Line Fields-Footnote-1225474
-Ref: Full Line Fields-Footnote-2225520
-Node: Field Splitting Summary225621
-Node: Constant Size227695
-Node: Splitting By Content232274
-Ref: Splitting By Content-Footnote-1236245
-Node: Multiple Line236408
-Ref: Multiple Line-Footnote-1242291
-Node: Getline242470
-Node: Plain Getline244674
-Node: Getline/Variable247313
-Node: Getline/File248462
-Node: Getline/Variable/File249848
-Ref: Getline/Variable/File-Footnote-1251452
-Node: Getline/Pipe251540
-Node: Getline/Variable/Pipe254245
-Node: Getline/Coprocess255378
-Node: Getline/Variable/Coprocess256643
-Node: Getline Notes257383
-Node: Getline Summary260178
-Ref: table-getline-variants260600
-Node: Read Timeout261348
-Ref: Read Timeout-Footnote-1265189
-Node: Command-line directories265247
-Node: Input Summary266152
-Node: Input Exercises269324
-Node: Printing270052
-Node: Print271829
-Node: Print Examples273286
-Node: Output Separators276066
-Node: OFMT278083
-Node: Printf279439
-Node: Basic Printf280224
-Node: Control Letters281798
-Node: Format Modifiers285786
-Node: Printf Examples291801
-Node: Redirection294287
-Node: Special FD301130
-Ref: Special FD-Footnote-1304298
-Node: Special Files304372
-Node: Other Inherited Files304989
-Node: Special Network305990
-Node: Special Caveats306850
-Node: Close Files And Pipes307799
-Ref: Close Files And Pipes-Footnote-1314992
-Ref: Close Files And Pipes-Footnote-2315140
-Node: Output Summary315291
-Node: Output Exercises316289
-Node: Expressions316968
-Node: Values318156
-Node: Constants318834
-Node: Scalar Constants319525
-Ref: Scalar Constants-Footnote-1320389
-Node: Nondecimal-numbers320639
-Node: Regexp Constants323653
-Node: Using Constant Regexps324179
-Node: Variables327342
-Node: Using Variables327999
-Node: Assignment Options329910
-Node: Conversion331784
-Node: Strings And Numbers332308
-Ref: Strings And Numbers-Footnote-1335372
-Node: Locale influences conversions335481
-Ref: table-locale-affects338239
-Node: All Operators338857
-Node: Arithmetic Ops339486
-Node: Concatenation341992
-Ref: Concatenation-Footnote-1344839
-Node: Assignment Ops344946
-Ref: table-assign-ops349938
-Node: Increment Ops351251
-Node: Truth Values and Conditions354711
-Node: Truth Values355785
-Node: Typing and Comparison356833
-Node: Variable Typing357653
-Node: Comparison Operators361277
-Ref: table-relational-ops361696
-Node: POSIX String Comparison365191
-Ref: POSIX String Comparison-Footnote-1366265
-Node: Boolean Ops366404
-Ref: Boolean Ops-Footnote-1370886
-Node: Conditional Exp370978
-Node: Function Calls372714
-Node: Precedence376594
-Node: Locales380253
-Node: Expressions Summary381885
-Node: Patterns and Actions384458
-Node: Pattern Overview385578
-Node: Regexp Patterns387255
-Node: Expression Patterns387797
-Node: Ranges391578
-Node: BEGIN/END394686
-Node: Using BEGIN/END395447
-Ref: Using BEGIN/END-Footnote-1398184
-Node: I/O And BEGIN/END398290
-Node: BEGINFILE/ENDFILE400606
-Node: Empty403513
-Node: Using Shell Variables403830
-Node: Action Overview406104
-Node: Statements408429
-Node: If Statement410277
-Node: While Statement411772
-Node: Do Statement413800
-Node: For Statement414948
-Node: Switch Statement418107
-Node: Break Statement420493
-Node: Continue Statement422585
-Node: Next Statement424412
-Node: Nextfile Statement426795
-Node: Exit Statement429447
-Node: Built-in Variables431852
-Node: User-modified432985
-Ref: User-modified-Footnote-1440612
-Node: Auto-set440674
-Ref: Auto-set-Footnote-1453768
-Ref: Auto-set-Footnote-2453974
-Node: ARGC and ARGV454030
-Node: Pattern Action Summary458249
-Node: Arrays460679
-Node: Array Basics462008
-Node: Array Intro462852
-Ref: figure-array-elements464827
-Ref: Array Intro-Footnote-1467531
-Node: Reference to Elements467659
-Node: Assigning Elements470123
-Node: Array Example470614
-Node: Scanning an Array472373
-Node: Controlling Scanning475397
-Ref: Controlling Scanning-Footnote-1480796
-Node: Numeric Array Subscripts481112
-Node: Uninitialized Subscripts483296
-Node: Delete484915
-Ref: Delete-Footnote-1487667
-Node: Multidimensional487724
-Node: Multiscanning490819
-Node: Arrays of Arrays492410
-Node: Arrays Summary497178
-Node: Functions499271
-Node: Built-in500309
-Node: Calling Built-in501387
-Node: Numeric Functions503383
-Ref: Numeric Functions-Footnote-1507411
-Ref: Numeric Functions-Footnote-2507768
-Ref: Numeric Functions-Footnote-3507816
-Node: String Functions508088
-Ref: String Functions-Footnote-1531596
-Ref: String Functions-Footnote-2531725
-Ref: String Functions-Footnote-3531973
-Node: Gory Details532060
-Ref: table-sub-escapes533851
-Ref: table-sub-proposed535370
-Ref: table-posix-sub536733
-Ref: table-gensub-escapes538274
-Ref: Gory Details-Footnote-1539097
-Node: I/O Functions539248
-Ref: I/O Functions-Footnote-1546469
-Node: Time Functions546617
-Ref: Time Functions-Footnote-1557122
-Ref: Time Functions-Footnote-2557190
-Ref: Time Functions-Footnote-3557348
-Ref: Time Functions-Footnote-4557459
-Ref: Time Functions-Footnote-5557571
-Ref: Time Functions-Footnote-6557798
-Node: Bitwise Functions558064
-Ref: table-bitwise-ops558658
-Ref: Bitwise Functions-Footnote-1562996
-Node: Type Functions563169
-Node: I18N Functions564325
-Node: User-defined565976
-Node: Definition Syntax566781
-Ref: Definition Syntax-Footnote-1572468
-Node: Function Example572539
-Ref: Function Example-Footnote-1575461
-Node: Function Caveats575483
-Node: Calling A Function576001
-Node: Variable Scope576959
-Node: Pass By Value/Reference579953
-Node: Return Statement583452
-Node: Dynamic Typing586431
-Node: Indirect Calls587361
-Ref: Indirect Calls-Footnote-1597612
-Node: Functions Summary597740
-Node: Library Functions600445
-Ref: Library Functions-Footnote-1604054
-Ref: Library Functions-Footnote-2604197
-Node: Library Names604368
-Ref: Library Names-Footnote-1607829
-Ref: Library Names-Footnote-2608052
-Node: General Functions608138
-Node: Strtonum Function609241
-Node: Assert Function612263
-Node: Round Function615589
-Node: Cliff Random Function617130
-Node: Ordinal Functions618146
-Ref: Ordinal Functions-Footnote-1621209
-Ref: Ordinal Functions-Footnote-2621461
-Node: Join Function621671
-Ref: Join Function-Footnote-1623441
-Node: Getlocaltime Function623641
-Node: Readfile Function627385
-Node: Shell Quoting629359
-Node: Data File Management630760
-Node: Filetrans Function631392
-Node: Rewind Function635489
-Node: File Checking636875
-Ref: File Checking-Footnote-1638209
-Node: Empty Files638410
-Node: Ignoring Assigns640389
-Node: Getopt Function641939
-Ref: Getopt Function-Footnote-1653409
-Node: Passwd Functions653609
-Ref: Passwd Functions-Footnote-1662450
-Node: Group Functions662538
-Ref: Group Functions-Footnote-1670437
-Node: Walking Arrays670644
-Node: Library Functions Summary673654
-Node: Library Exercises675060
-Node: Sample Programs675525
-Node: Running Examples676295
-Node: Clones677023
-Node: Cut Program678247
-Node: Egrep Program687968
-Ref: Egrep Program-Footnote-1695480
-Node: Id Program695590
-Node: Split Program699270
-Ref: Split Program-Footnote-1702729
-Node: Tee Program702858
-Node: Uniq Program705648
-Node: Wc Program713074
-Ref: Wc Program-Footnote-1717329
-Node: Miscellaneous Programs717423
-Node: Dupword Program718636
-Node: Alarm Program720666
-Node: Translate Program725521
-Ref: Translate Program-Footnote-1730086
-Node: Labels Program730356
-Ref: Labels Program-Footnote-1733707
-Node: Word Sorting733791
-Node: History Sorting737863
-Node: Extract Program739698
-Node: Simple Sed747227
-Node: Igawk Program750301
-Ref: Igawk Program-Footnote-1764632
-Ref: Igawk Program-Footnote-2764834
-Ref: Igawk Program-Footnote-3764956
-Node: Anagram Program765071
-Node: Signature Program768133
-Node: Programs Summary769380
-Node: Programs Exercises770595
-Ref: Programs Exercises-Footnote-1774724
-Node: Advanced Features774815
-Node: Nondecimal Data776805
-Node: Array Sorting778396
-Node: Controlling Array Traversal779096
-Ref: Controlling Array Traversal-Footnote-1787465
-Node: Array Sorting Functions787583
-Ref: Array Sorting Functions-Footnote-1792674
-Node: Two-way I/O792870
-Ref: Two-way I/O-Footnote-1797821
-Ref: Two-way I/O-Footnote-2798008
-Node: TCP/IP Networking798090
-Node: Profiling801208
-Node: Advanced Features Summary808747
-Node: Internationalization810683
-Node: I18N and L10N812163
-Node: Explaining gettext812850
-Ref: Explaining gettext-Footnote-1817873
-Ref: Explaining gettext-Footnote-2818058
-Node: Programmer i18n818223
-Ref: Programmer i18n-Footnote-1823079
-Node: Translator i18n823128
-Node: String Extraction823922
-Ref: String Extraction-Footnote-1825055
-Node: Printf Ordering825141
-Ref: Printf Ordering-Footnote-1827927
-Node: I18N Portability827991
-Ref: I18N Portability-Footnote-1830447
-Node: I18N Example830510
-Ref: I18N Example-Footnote-1833316
-Node: Gawk I18N833389
-Node: I18N Summary834034
-Node: Debugger835375
-Node: Debugging836397
-Node: Debugging Concepts836838
-Node: Debugging Terms838647
-Node: Awk Debugging841222
-Node: Sample Debugging Session842128
-Node: Debugger Invocation842662
-Node: Finding The Bug844048
-Node: List of Debugger Commands850526
-Node: Breakpoint Control851859
-Node: Debugger Execution Control855553
-Node: Viewing And Changing Data858915
-Node: Execution Stack862289
-Node: Debugger Info863926
-Node: Miscellaneous Debugger Commands867997
-Node: Readline Support873085
-Node: Limitations873981
-Node: Debugging Summary876090
-Node: Arbitrary Precision Arithmetic877263
-Node: Computer Arithmetic878679
-Ref: table-numeric-ranges882270
-Ref: Computer Arithmetic-Footnote-1882992
-Node: Math Definitions883049
-Ref: table-ieee-formats886363
-Ref: Math Definitions-Footnote-1886966
-Node: MPFR features887071
-Node: FP Math Caution888744
-Ref: FP Math Caution-Footnote-1889816
-Node: Inexactness of computations890185
-Node: Inexact representation891145
-Node: Comparing FP Values892505
-Node: Errors accumulate893587
-Node: Getting Accuracy895020
-Node: Try To Round897730
-Node: Setting precision898629
-Ref: table-predefined-precision-strings899326
-Node: Setting the rounding mode901156
-Ref: table-gawk-rounding-modes901530
-Ref: Setting the rounding mode-Footnote-1904938
-Node: Arbitrary Precision Integers905117
-Ref: Arbitrary Precision Integers-Footnote-1908101
-Node: POSIX Floating Point Problems908250
-Ref: POSIX Floating Point Problems-Footnote-1912132
-Node: Floating point summary912170
-Node: Dynamic Extensions914360
-Node: Extension Intro915913
-Node: Plugin License917179
-Node: Extension Mechanism Outline917976
-Ref: figure-load-extension918415
-Ref: figure-register-new-function919980
-Ref: figure-call-new-function921072
-Node: Extension API Description923135
-Node: Extension API Functions Introduction924583
-Node: General Data Types929395
-Ref: General Data Types-Footnote-1935350
-Node: Memory Allocation Functions935649
-Ref: Memory Allocation Functions-Footnote-1938494
-Node: Constructor Functions938593
-Node: Registration Functions940338
-Node: Extension Functions941023
-Node: Exit Callback Functions943322
-Node: Extension Version String944572
-Node: Input Parsers945235
-Node: Output Wrappers955120
-Node: Two-way processors959632
-Node: Printing Messages961896
-Ref: Printing Messages-Footnote-1962970
-Node: Updating ERRNO963123
-Node: Requesting Values963862
-Ref: table-value-types-returned964599
-Node: Accessing Parameters965482
-Node: Symbol Table Access966718
-Node: Symbol table by name967230
-Node: Symbol table by cookie969251
-Ref: Symbol table by cookie-Footnote-1973400
-Node: Cached values973464
-Ref: Cached values-Footnote-1976965
-Node: Array Manipulation977056
-Ref: Array Manipulation-Footnote-1978155
-Node: Array Data Types978192
-Ref: Array Data Types-Footnote-1980850
-Node: Array Functions980942
-Node: Flattening Arrays984801
-Node: Creating Arrays991709
-Node: Extension API Variables996481
-Node: Extension Versioning997117
-Node: Extension API Informational Variables999008
-Node: Extension API Boilerplate1000072
-Node: Finding Extensions1003886
-Node: Extension Example1004446
-Node: Internal File Description1005244
-Node: Internal File Ops1009324
-Ref: Internal File Ops-Footnote-11021086
-Node: Using Internal File Ops1021226
-Ref: Using Internal File Ops-Footnote-11023609
-Node: Extension Samples1023884
-Node: Extension Sample File Functions1025413
-Node: Extension Sample Fnmatch1033062
-Node: Extension Sample Fork1034549
-Node: Extension Sample Inplace1035767
-Node: Extension Sample Ord1038977
-Node: Extension Sample Readdir1039813
-Ref: table-readdir-file-types1040702
-Node: Extension Sample Revout1041507
-Node: Extension Sample Rev2way1042096
-Node: Extension Sample Read write array1042836
-Node: Extension Sample Readfile1044778
-Node: Extension Sample Time1045873
-Node: Extension Sample API Tests1047221
-Node: gawkextlib1047713
-Node: Extension summary1050137
-Node: Extension Exercises1053829
-Node: Language History1055326
-Node: V7/SVR3.11056982
-Node: SVR41059134
-Node: POSIX1060568
-Node: BTL1061948
-Node: POSIX/GNU1062678
-Node: Feature History1068199
-Node: Common Extensions1081528
-Node: Ranges and Locales1082811
-Ref: Ranges and Locales-Footnote-11087427
-Ref: Ranges and Locales-Footnote-21087454
-Ref: Ranges and Locales-Footnote-31087689
-Node: Contributors1087910
-Node: History summary1093479
-Node: Installation1094859
-Node: Gawk Distribution1095804
-Node: Getting1096288
-Node: Extracting1097249
-Node: Distribution contents1098887
-Node: Unix Installation1104640
-Node: Quick Installation1105256
-Node: Additional Configuration Options1107683
-Node: Configuration Philosophy1109487
-Node: Non-Unix Installation1111857
-Node: PC Installation1112315
-Node: PC Binary Installation1113635
-Node: PC Compiling1115487
-Ref: PC Compiling-Footnote-11118511
-Node: PC Testing1118620
-Node: PC Using1119800
-Node: Cygwin1123914
-Node: MSYS1124684
-Node: VMS Installation1125185
-Node: VMS Compilation1125976
-Ref: VMS Compilation-Footnote-11127206
-Node: VMS Dynamic Extensions1127264
-Node: VMS Installation Details1128949
-Node: VMS Running1131202
-Node: VMS GNV1134043
-Node: VMS Old Gawk1134778
-Node: Bugs1135249
-Node: Other Versions1139446
-Node: Installation summary1146032
-Node: Notes1147090
-Node: Compatibility Mode1147955
-Node: Additions1148737
-Node: Accessing The Source1149662
-Node: Adding Code1151098
-Node: New Ports1157317
-Node: Derived Files1161805
-Ref: Derived Files-Footnote-11167290
-Ref: Derived Files-Footnote-21167325
-Ref: Derived Files-Footnote-31167923
-Node: Future Extensions1168037
-Node: Implementation Limitations1168695
-Node: Extension Design1169878
-Node: Old Extension Problems1171032
-Ref: Old Extension Problems-Footnote-11172550
-Node: Extension New Mechanism Goals1172607
-Ref: Extension New Mechanism Goals-Footnote-11175971
-Node: Extension Other Design Decisions1176160
-Node: Extension Future Growth1178273
-Node: Old Extension Mechanism1179109
-Node: Notes summary1180872
-Node: Basic Concepts1182054
-Node: Basic High Level1182735
-Ref: figure-general-flow1183017
-Ref: figure-process-flow1183702
-Ref: Basic High Level-Footnote-11187003
-Node: Basic Data Typing1187188
-Node: Glossary1190516
-Node: Copying1222462
-Node: GNU Free Documentation License1260001
-Node: Index1285119
+Node: Leftmost Longest176015
+Node: Computed Regexps177318
+Node: GNU Regexp Operators180745
+Node: Case-sensitivity184424
+Ref: Case-sensitivity-Footnote-1187311
+Ref: Case-sensitivity-Footnote-2187546
+Node: Regexp Summary187654
+Node: Reading Files189120
+Node: Records191214
+Node: awk split records191947
+Node: gawk split records196879
+Ref: gawk split records-Footnote-1201423
+Node: Fields201460
+Ref: Fields-Footnote-1204240
+Node: Nonconstant Fields204326
+Ref: Nonconstant Fields-Footnote-1206562
+Node: Changing Fields206766
+Node: Field Separators212696
+Node: Default Field Splitting215394
+Node: Regexp Field Splitting216512
+Node: Single Character Fields219865
+Node: Command Line Field Separator220925
+Node: Full Line Fields224143
+Ref: Full Line Fields-Footnote-1225665
+Ref: Full Line Fields-Footnote-2225711
+Node: Field Splitting Summary225812
+Node: Constant Size227886
+Node: Splitting By Content232465
+Ref: Splitting By Content-Footnote-1236436
+Node: Multiple Line236599
+Ref: Multiple Line-Footnote-1242482
+Node: Getline242661
+Node: Plain Getline244865
+Node: Getline/Variable247504
+Node: Getline/File248653
+Node: Getline/Variable/File250039
+Ref: Getline/Variable/File-Footnote-1251643
+Node: Getline/Pipe251731
+Node: Getline/Variable/Pipe254436
+Node: Getline/Coprocess255569
+Node: Getline/Variable/Coprocess256834
+Node: Getline Notes257574
+Node: Getline Summary260369
+Ref: table-getline-variants260791
+Node: Read Timeout261539
+Ref: Read Timeout-Footnote-1265380
+Node: Command-line directories265438
+Node: Input Summary266343
+Node: Input Exercises269515
+Node: Printing270243
+Node: Print272020
+Node: Print Examples273477
+Node: Output Separators276257
+Node: OFMT278274
+Node: Printf279630
+Node: Basic Printf280415
+Node: Control Letters281989
+Node: Format Modifiers285977
+Node: Printf Examples291992
+Node: Redirection294478
+Node: Special FD301321
+Ref: Special FD-Footnote-1304489
+Node: Special Files304563
+Node: Other Inherited Files305180
+Node: Special Network306181
+Node: Special Caveats307041
+Node: Close Files And Pipes307990
+Ref: Close Files And Pipes-Footnote-1315183
+Ref: Close Files And Pipes-Footnote-2315331
+Node: Output Summary315482
+Node: Output Exercises316480
+Node: Expressions317159
+Node: Values318347
+Node: Constants319025
+Node: Scalar Constants319716
+Ref: Scalar Constants-Footnote-1320580
+Node: Nondecimal-numbers320830
+Node: Regexp Constants323844
+Node: Using Constant Regexps324370
+Node: Variables327533
+Node: Using Variables328190
+Node: Assignment Options330101
+Node: Conversion331975
+Node: Strings And Numbers332499
+Ref: Strings And Numbers-Footnote-1335563
+Node: Locale influences conversions335672
+Ref: table-locale-affects338430
+Node: All Operators339048
+Node: Arithmetic Ops339677
+Node: Concatenation342183
+Ref: Concatenation-Footnote-1345030
+Node: Assignment Ops345137
+Ref: table-assign-ops350129
+Node: Increment Ops351442
+Node: Truth Values and Conditions354902
+Node: Truth Values355976
+Node: Typing and Comparison357024
+Node: Variable Typing357844
+Node: Comparison Operators361468
+Ref: table-relational-ops361887
+Node: POSIX String Comparison365382
+Ref: POSIX String Comparison-Footnote-1366456
+Node: Boolean Ops366595
+Ref: Boolean Ops-Footnote-1371077
+Node: Conditional Exp371169
+Node: Function Calls372905
+Node: Precedence376785
+Node: Locales380444
+Node: Expressions Summary382076
+Node: Patterns and Actions384649
+Node: Pattern Overview385769
+Node: Regexp Patterns387446
+Node: Expression Patterns387988
+Node: Ranges391769
+Node: BEGIN/END394877
+Node: Using BEGIN/END395638
+Ref: Using BEGIN/END-Footnote-1398375
+Node: I/O And BEGIN/END398481
+Node: BEGINFILE/ENDFILE400797
+Node: Empty403704
+Node: Using Shell Variables404021
+Node: Action Overview406295
+Node: Statements408620
+Node: If Statement410468
+Node: While Statement411963
+Node: Do Statement413991
+Node: For Statement415139
+Node: Switch Statement418298
+Node: Break Statement420684
+Node: Continue Statement422776
+Node: Next Statement424603
+Node: Nextfile Statement426986
+Node: Exit Statement429638
+Node: Built-in Variables432043
+Node: User-modified433176
+Ref: User-modified-Footnote-1440803
+Node: Auto-set440865
+Ref: Auto-set-Footnote-1453959
+Ref: Auto-set-Footnote-2454165
+Node: ARGC and ARGV454221
+Node: Pattern Action Summary458440
+Node: Arrays460870
+Node: Array Basics462199
+Node: Array Intro463043
+Ref: figure-array-elements465018
+Ref: Array Intro-Footnote-1467722
+Node: Reference to Elements467850
+Node: Assigning Elements470314
+Node: Array Example470805
+Node: Scanning an Array472564
+Node: Controlling Scanning475588
+Ref: Controlling Scanning-Footnote-1480987
+Node: Numeric Array Subscripts481303
+Node: Uninitialized Subscripts483487
+Node: Delete485106
+Ref: Delete-Footnote-1487858
+Node: Multidimensional487915
+Node: Multiscanning491010
+Node: Arrays of Arrays492601
+Node: Arrays Summary497369
+Node: Functions499462
+Node: Built-in500500
+Node: Calling Built-in501578
+Node: Numeric Functions503574
+Ref: Numeric Functions-Footnote-1507602
+Ref: Numeric Functions-Footnote-2507959
+Ref: Numeric Functions-Footnote-3508007
+Node: String Functions508279
+Ref: String Functions-Footnote-1531787
+Ref: String Functions-Footnote-2531916
+Ref: String Functions-Footnote-3532164
+Node: Gory Details532251
+Ref: table-sub-escapes534042
+Ref: table-sub-proposed535561
+Ref: table-posix-sub536924
+Ref: table-gensub-escapes538465
+Ref: Gory Details-Footnote-1539288
+Node: I/O Functions539439
+Ref: I/O Functions-Footnote-1546660
+Node: Time Functions546808
+Ref: Time Functions-Footnote-1557313
+Ref: Time Functions-Footnote-2557381
+Ref: Time Functions-Footnote-3557539
+Ref: Time Functions-Footnote-4557650
+Ref: Time Functions-Footnote-5557762
+Ref: Time Functions-Footnote-6557989
+Node: Bitwise Functions558255
+Ref: table-bitwise-ops558849
+Ref: Bitwise Functions-Footnote-1563187
+Node: Type Functions563360
+Node: I18N Functions564516
+Node: User-defined566167
+Node: Definition Syntax566972
+Ref: Definition Syntax-Footnote-1572659
+Node: Function Example572730
+Ref: Function Example-Footnote-1575652
+Node: Function Caveats575674
+Node: Calling A Function576192
+Node: Variable Scope577150
+Node: Pass By Value/Reference580144
+Node: Return Statement583643
+Node: Dynamic Typing586622
+Node: Indirect Calls587552
+Ref: Indirect Calls-Footnote-1597803
+Node: Functions Summary597931
+Node: Library Functions600636
+Ref: Library Functions-Footnote-1604245
+Ref: Library Functions-Footnote-2604388
+Node: Library Names604559
+Ref: Library Names-Footnote-1608020
+Ref: Library Names-Footnote-2608243
+Node: General Functions608329
+Node: Strtonum Function609432
+Node: Assert Function612454
+Node: Round Function615780
+Node: Cliff Random Function617321
+Node: Ordinal Functions618337
+Ref: Ordinal Functions-Footnote-1621400
+Ref: Ordinal Functions-Footnote-2621652
+Node: Join Function621862
+Ref: Join Function-Footnote-1623632
+Node: Getlocaltime Function623832
+Node: Readfile Function627576
+Node: Shell Quoting629550
+Node: Data File Management630951
+Node: Filetrans Function631583
+Node: Rewind Function635680
+Node: File Checking637066
+Ref: File Checking-Footnote-1638400
+Node: Empty Files638601
+Node: Ignoring Assigns640580
+Node: Getopt Function642130
+Ref: Getopt Function-Footnote-1653600
+Node: Passwd Functions653800
+Ref: Passwd Functions-Footnote-1662641
+Node: Group Functions662729
+Ref: Group Functions-Footnote-1670628
+Node: Walking Arrays670835
+Node: Library Functions Summary673845
+Node: Library Exercises675251
+Node: Sample Programs675716
+Node: Running Examples676486
+Node: Clones677214
+Node: Cut Program678438
+Node: Egrep Program688159
+Ref: Egrep Program-Footnote-1695671
+Node: Id Program695781
+Node: Split Program699461
+Ref: Split Program-Footnote-1702920
+Node: Tee Program703049
+Node: Uniq Program705839
+Node: Wc Program713265
+Ref: Wc Program-Footnote-1717520
+Node: Miscellaneous Programs717614
+Node: Dupword Program718827
+Node: Alarm Program720857
+Node: Translate Program725712
+Ref: Translate Program-Footnote-1730277
+Node: Labels Program730547
+Ref: Labels Program-Footnote-1733898
+Node: Word Sorting733982
+Node: History Sorting738054
+Node: Extract Program739889
+Node: Simple Sed747418
+Node: Igawk Program750492
+Ref: Igawk Program-Footnote-1764823
+Ref: Igawk Program-Footnote-2765025
+Ref: Igawk Program-Footnote-3765147
+Node: Anagram Program765262
+Node: Signature Program768324
+Node: Programs Summary769571
+Node: Programs Exercises770786
+Ref: Programs Exercises-Footnote-1774915
+Node: Advanced Features775006
+Node: Nondecimal Data776996
+Node: Array Sorting778587
+Node: Controlling Array Traversal779287
+Ref: Controlling Array Traversal-Footnote-1787656
+Node: Array Sorting Functions787774
+Ref: Array Sorting Functions-Footnote-1792865
+Node: Two-way I/O793061
+Ref: Two-way I/O-Footnote-1798012
+Ref: Two-way I/O-Footnote-2798199
+Node: TCP/IP Networking798281
+Node: Profiling801399
+Node: Advanced Features Summary808938
+Node: Internationalization810874
+Node: I18N and L10N812354
+Node: Explaining gettext813041
+Ref: Explaining gettext-Footnote-1818064
+Ref: Explaining gettext-Footnote-2818249
+Node: Programmer i18n818414
+Ref: Programmer i18n-Footnote-1823270
+Node: Translator i18n823319
+Node: String Extraction824113
+Ref: String Extraction-Footnote-1825246
+Node: Printf Ordering825332
+Ref: Printf Ordering-Footnote-1828118
+Node: I18N Portability828182
+Ref: I18N Portability-Footnote-1830638
+Node: I18N Example830701
+Ref: I18N Example-Footnote-1833507
+Node: Gawk I18N833580
+Node: I18N Summary834225
+Node: Debugger835566
+Node: Debugging836588
+Node: Debugging Concepts837029
+Node: Debugging Terms838838
+Node: Awk Debugging841413
+Node: Sample Debugging Session842319
+Node: Debugger Invocation842853
+Node: Finding The Bug844239
+Node: List of Debugger Commands850717
+Node: Breakpoint Control852050
+Node: Debugger Execution Control855744
+Node: Viewing And Changing Data859106
+Node: Execution Stack862480
+Node: Debugger Info864117
+Node: Miscellaneous Debugger Commands868188
+Node: Readline Support873276
+Node: Limitations874172
+Node: Debugging Summary876281
+Node: Arbitrary Precision Arithmetic877454
+Node: Computer Arithmetic878870
+Ref: table-numeric-ranges882461
+Ref: Computer Arithmetic-Footnote-1883183
+Node: Math Definitions883240
+Ref: table-ieee-formats886554
+Ref: Math Definitions-Footnote-1887157
+Node: MPFR features887262
+Node: FP Math Caution888935
+Ref: FP Math Caution-Footnote-1890007
+Node: Inexactness of computations890376
+Node: Inexact representation891336
+Node: Comparing FP Values892696
+Node: Errors accumulate893778
+Node: Getting Accuracy895211
+Node: Try To Round897921
+Node: Setting precision898820
+Ref: table-predefined-precision-strings899517
+Node: Setting the rounding mode901347
+Ref: table-gawk-rounding-modes901721
+Ref: Setting the rounding mode-Footnote-1905129
+Node: Arbitrary Precision Integers905308
+Ref: Arbitrary Precision Integers-Footnote-1908292
+Node: POSIX Floating Point Problems908441
+Ref: POSIX Floating Point Problems-Footnote-1912323
+Node: Floating point summary912361
+Node: Dynamic Extensions914551
+Node: Extension Intro916104
+Node: Plugin License917370
+Node: Extension Mechanism Outline918167
+Ref: figure-load-extension918606
+Ref: figure-register-new-function920171
+Ref: figure-call-new-function921263
+Node: Extension API Description923326
+Node: Extension API Functions Introduction924774
+Node: General Data Types929586
+Ref: General Data Types-Footnote-1935541
+Node: Memory Allocation Functions935840
+Ref: Memory Allocation Functions-Footnote-1938685
+Node: Constructor Functions938784
+Node: Registration Functions940529
+Node: Extension Functions941214
+Node: Exit Callback Functions943513
+Node: Extension Version String944763
+Node: Input Parsers945426
+Node: Output Wrappers955311
+Node: Two-way processors959823
+Node: Printing Messages962087
+Ref: Printing Messages-Footnote-1963161
+Node: Updating ERRNO963314
+Node: Requesting Values964053
+Ref: table-value-types-returned964790
+Node: Accessing Parameters965673
+Node: Symbol Table Access966909
+Node: Symbol table by name967421
+Node: Symbol table by cookie969442
+Ref: Symbol table by cookie-Footnote-1973591
+Node: Cached values973655
+Ref: Cached values-Footnote-1977156
+Node: Array Manipulation977247
+Ref: Array Manipulation-Footnote-1978346
+Node: Array Data Types978383
+Ref: Array Data Types-Footnote-1981041
+Node: Array Functions981133
+Node: Flattening Arrays984992
+Node: Creating Arrays991900
+Node: Extension API Variables996672
+Node: Extension Versioning997308
+Node: Extension API Informational Variables999199
+Node: Extension API Boilerplate1000263
+Node: Finding Extensions1004077
+Node: Extension Example1004637
+Node: Internal File Description1005435
+Node: Internal File Ops1009515
+Ref: Internal File Ops-Footnote-11021277
+Node: Using Internal File Ops1021417
+Ref: Using Internal File Ops-Footnote-11023800
+Node: Extension Samples1024075
+Node: Extension Sample File Functions1025604
+Node: Extension Sample Fnmatch1033253
+Node: Extension Sample Fork1034740
+Node: Extension Sample Inplace1035958
+Node: Extension Sample Ord1039168
+Node: Extension Sample Readdir1040004
+Ref: table-readdir-file-types1040893
+Node: Extension Sample Revout1041698
+Node: Extension Sample Rev2way1042287
+Node: Extension Sample Read write array1043027
+Node: Extension Sample Readfile1044969
+Node: Extension Sample Time1046064
+Node: Extension Sample API Tests1047412
+Node: gawkextlib1047904
+Node: Extension summary1050328
+Node: Extension Exercises1054020
+Node: Language History1055517
+Node: V7/SVR3.11057173
+Node: SVR41059325
+Node: POSIX1060759
+Node: BTL1062139
+Node: POSIX/GNU1062869
+Node: Feature History1068390
+Node: Common Extensions1081719
+Node: Ranges and Locales1083002
+Ref: Ranges and Locales-Footnote-11087618
+Ref: Ranges and Locales-Footnote-21087645
+Ref: Ranges and Locales-Footnote-31087880
+Node: Contributors1088101
+Node: History summary1093670
+Node: Installation1095050
+Node: Gawk Distribution1095995
+Node: Getting1096479
+Node: Extracting1097440
+Node: Distribution contents1099078
+Node: Unix Installation1104831
+Node: Quick Installation1105447
+Node: Additional Configuration Options1107874
+Node: Configuration Philosophy1109678
+Node: Non-Unix Installation1112048
+Node: PC Installation1112506
+Node: PC Binary Installation1113826
+Node: PC Compiling1115678
+Ref: PC Compiling-Footnote-11118702
+Node: PC Testing1118811
+Node: PC Using1119991
+Node: Cygwin1124105
+Node: MSYS1124875
+Node: VMS Installation1125376
+Node: VMS Compilation1126167
+Ref: VMS Compilation-Footnote-11127397
+Node: VMS Dynamic Extensions1127455
+Node: VMS Installation Details1129140
+Node: VMS Running1131393
+Node: VMS GNV1134234
+Node: VMS Old Gawk1134969
+Node: Bugs1135440
+Node: Other Versions1139637
+Node: Installation summary1146223
+Node: Notes1147281
+Node: Compatibility Mode1148146
+Node: Additions1148928
+Node: Accessing The Source1149853
+Node: Adding Code1151289
+Node: New Ports1157508
+Node: Derived Files1161996
+Ref: Derived Files-Footnote-11167481
+Ref: Derived Files-Footnote-21167516
+Ref: Derived Files-Footnote-31168114
+Node: Future Extensions1168228
+Node: Implementation Limitations1168886
+Node: Extension Design1170069
+Node: Old Extension Problems1171223
+Ref: Old Extension Problems-Footnote-11172741
+Node: Extension New Mechanism Goals1172798
+Ref: Extension New Mechanism Goals-Footnote-11176162
+Node: Extension Other Design Decisions1176351
+Node: Extension Future Growth1178464
+Node: Old Extension Mechanism1179300
+Node: Notes summary1181063
+Node: Basic Concepts1182245
+Node: Basic High Level1182926
+Ref: figure-general-flow1183208
+Ref: figure-process-flow1183893
+Ref: Basic High Level-Footnote-11187194
+Node: Basic Data Typing1187379
+Node: Glossary1190707
+Node: Copying1222653
+Node: GNU Free Documentation License1260192
+Node: Index1285310
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 3260250..f38eff4 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -5774,6 +5774,10 @@ they do not recognize collating symbols or equivalence 
classes.
 @end quotation
 @c maybe one day ...
 
+Inside a bracket expression, an opening bracket (@samp{[}) that does
+not start a character class, collating element or equivalence class is
+taken literally. This is also true of @samp{.} and @samp{*}.
+
 @node Leftmost Longest
 @section How Much Text Matches?
 
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index deb212e..ec71534 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -5602,6 +5602,10 @@ they do not recognize collating symbols or equivalence 
classes.
 @end quotation
 @c maybe one day ...
 
+Inside a bracket expression, an opening bracket (@samp{[}) that does
+not start a character class, collating element or equivalence class is
+taken literally. This is also true of @samp{.} and @samp{*}.
+
 @node Leftmost Longest
 @section How Much Text Matches?
 

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=7985a75ad0cd606794fac7ba662637372bd204a9

commit 7985a75ad0cd606794fac7ba662637372bd204a9
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Jan 18 05:52:52 2016 +0200

    Minor bug fix and cleanup in regex routines, from GNULIB.

diff --git a/ChangeLog b/ChangeLog
index c406b13..09d5732 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2016-01-18         Paul Eggert  <address@hidden>
+
+       Diagnose ERE '()|\1'
+       Problem reported by Hanno Boeck in: http://bugs.gnu.org/21513
+
+       * lib/regcomp.c (parse_reg_exp): While parsing alternatives, keep
+       track of the set of previously-completed subexpressions available
+       before the first alternative, and restore this set just before
+       parsing each subsequent alternative.  This lets us diagnose the
+       invalid back-reference in the ERE '()|\1'.
+
+       Unrelated:  General minor cleanups (spelling, code) from Gnulib:
+
+       * regex.h, regex_internal.c, regex_internal.h, regexec.c: Minor
+       cleanups.
+
 2016-01-14         Arnold D. Robbins     <address@hidden>
 
        * eval.c (r_get_lhs): If original array was Node_var_new,
diff --git a/regcomp.c b/regcomp.c
index 80dcb0c..35a6c21 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -137,7 +137,7 @@ static reg_errcode_t mark_opt_subexp (void *extra, 
bin_tree_t *node);
    POSIX doesn't require that we do anything for REG_NOERROR,
    but why not be nice?  */
 
-const char __re_error_msgid[] attribute_hidden =
+static const char __re_error_msgid[] attribute_hidden =
   {
 #define REG_NOERROR_IDX        0
     gettext_noop ("Success")   /* REG_NOERROR */
@@ -191,7 +191,7 @@ const char __re_error_msgid[] attribute_hidden =
     gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
   };
 
-const size_t __re_error_msgid_idx[] attribute_hidden =
+static const size_t __re_error_msgid_idx[] attribute_hidden =
   {
     REG_NOERROR_IDX,
     REG_NOMATCH_IDX,
@@ -345,7 +345,8 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t 
*init_state,
 #ifdef RE_ENABLE_I18N
          if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
            {
-             unsigned char *buf = re_malloc (unsigned char, dfa->mb_cur_max), 
*p;
+             unsigned char buf[MB_LEN_MAX];
+             unsigned char *p;
              wchar_t wc;
              mbstate_t state;
 
@@ -361,7 +362,6 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t 
*init_state,
                  && (__wcrtomb ((char *) buf, towlower (wc), &state)
                      != (size_t) -1))
                re_set_fastmap (fastmap, 0, buf[0]);
-             re_free (buf);
            }
 #endif
        }
@@ -809,7 +809,7 @@ re_compile_internal (regex_t *preg, const char * pattern, 
size_t length,
   __libc_lock_init (dfa->lock);
 
   err = re_string_construct (&regexp, pattern, length, preg->translate,
-                            syntax & RE_ICASE, dfa);
+                            (syntax & RE_ICASE) != 0, dfa);
   if (BE (err != REG_NOERROR, 0))
     {
     re_compile_internal_free_return:
@@ -2206,6 +2206,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, 
re_token_t *token,
 {
   re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
   bin_tree_t *tree, *branch = NULL;
+  bitset_word_t initial_bkref_map = dfa->completed_bkref_map;
   tree = parse_branch (regexp, preg, token, syntax, nest, err);
   if (BE (*err != REG_NOERROR && tree == NULL, 0))
     return NULL;
@@ -2216,6 +2217,8 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, 
re_token_t *token,
       if (token->type != OP_ALT && token->type != END_OF_RE
          && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
        {
+         bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map;
+         dfa->completed_bkref_map = initial_bkref_map;
          branch = parse_branch (regexp, preg, token, syntax, nest, err);
          if (BE (*err != REG_NOERROR && branch == NULL, 0))
            {
@@ -2223,6 +2226,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, 
re_token_t *token,
                postorder (tree, free_tree, NULL);
              return NULL;
            }
+         dfa->completed_bkref_map |= accumulated_bkref_map;
        }
       else
        branch = NULL;
@@ -2753,7 +2757,7 @@ build_range_exp (reg_syntax_t syntax, bitset_t sbcset,
 #endif
     if (start_wc == WEOF || end_wc == WEOF)
       return REG_ECOLLATE;
-    else if ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc)
+    else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0))
       return REG_ERANGE;
 
     /* Got valid collation sequence values, add them as a new entry.
@@ -3521,7 +3525,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char 
*name)
        /* This isn't a valid character.  */
        return REG_ECOLLATE;
 
-      /* Build single byte matcing table for this equivalence class.  */
+      /* Build single byte matching table for this equivalence class.  */
       char_buf[1] = (unsigned char) '\0';
       len = weights[idx1 & 0xffffff];
       for (ch = 0; ch < SBC_MAX; ++ch)
diff --git a/regex.h b/regex.h
index cd470a0..0a183df 100644
--- a/regex.h
+++ b/regex.h
@@ -327,7 +327,7 @@ typedef enum
   /* POSIX regcomp return error codes.  (In the order listed in the
      standard.)  */
   REG_BADPAT,          /* Invalid pattern.  */
-  REG_ECOLLATE,                /* Inalid collating element.  */
+  REG_ECOLLATE,                /* Invalid collating element.  */
   REG_ECTYPE,          /* Invalid character class name.  */
   REG_EESCAPE,         /* Trailing backslash.  */
   REG_ESUBREG,         /* Invalid back reference.  */
diff --git a/regex_internal.c b/regex_internal.c
index fcfa4ad..2d17093 100644
--- a/regex_internal.c
+++ b/regex_internal.c
@@ -1632,7 +1632,7 @@ free_state (re_dfastate_t *state)
   re_free (state);
 }
 
-/* Create the new state which is independ of contexts.
+/* Create the new state which is independent of contexts.
    Return the new state if succeeded, otherwise return NULL.  */
 
 static re_dfastate_t *
diff --git a/regex_internal.h b/regex_internal.h
index 9e104d8..6cc84a7 100644
--- a/regex_internal.h
+++ b/regex_internal.h
@@ -159,9 +159,6 @@ is_blank (int c)
 # define __attribute_warn_unused_result__
 #endif
 
-extern const char __re_error_msgid[] attribute_hidden;
-extern const size_t __re_error_msgid_idx[] attribute_hidden;
-
 /* An integer used to represent a set of bits.  It must be unsigned,
    and must be at least as wide as unsigned int.  */
 typedef unsigned long int bitset_word_t;
@@ -774,7 +771,7 @@ bitset_mask (bitset_t dest, const bitset_t src)
 }
 
 #ifdef RE_ENABLE_I18N
-/* Inline functions for re_string.  */
+/* Functions for re_string.  */
 static int
 internal_function __attribute__ ((pure, unused))
 re_string_char_size_at (const re_string_t *pstr, int idx)
diff --git a/regexec.c b/regexec.c
index cff69bf..8fe016a 100644
--- a/regexec.c
+++ b/regexec.c
@@ -306,7 +306,7 @@ compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
    concerned.
 
    If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match
-   and all groups is stroed in REGS.  (For the "_2" variants, the offsets are
+   and all groups is stored in REGS.  (For the "_2" variants, the offsets are
    computed relative to the concatenation, not relative to the individual
    strings.)
 
@@ -627,7 +627,7 @@ re_exec (s)
 
 /* Searches for a compiled pattern PREG in the string STRING, whose
    length is LENGTH.  NMATCH, PMATCH, and EFLAGS have the same
-   mingings with regexec.  START, and RANGE have the same meanings
+   meaning as with regexec.  START, and RANGE have the same meanings
    with re_search.
    Return REG_NOERROR if we find a match, and REG_NOMATCH if not,
    otherwise return the error code.
@@ -695,7 +695,8 @@ re_search_internal (preg, string, length, start, range, 
stop, nmatch, pmatch,
   fl_longest_match = (nmatch != 0 || dfa->nbackref);
 
   err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
-                           preg->translate, preg->syntax & RE_ICASE, dfa);
+                           preg->translate, (preg->syntax & RE_ICASE) != 0,
+                           dfa);
   if (BE (err != REG_NOERROR, 0))
     goto free_return;
   mctx.input.stop = stop;
@@ -912,7 +913,7 @@ re_search_internal (preg, string, length, start, range, 
stop, nmatch, pmatch,
            goto free_return;
        }
 
-      /* At last, add the offset to the each registers, since we slided
+      /* At last, add the offset to each register, since we slid
         the buffers so that we could assume that the matching starts
         from 0.  */
       for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
@@ -963,8 +964,7 @@ re_search_internal (preg, string, length, start, range, 
stop, nmatch, pmatch,
 
 static reg_errcode_t
 __attribute_warn_unused_result__
-prune_impossible_nodes (mctx)
-     re_match_context_t *mctx;
+prune_impossible_nodes (re_match_context_t *mctx)
 {
   const re_dfa_t *const dfa = mctx->dfa;
   int halt_node, match_last;
@@ -2420,7 +2420,7 @@ merge_state_with_log (reg_errcode_t *err, 
re_match_context_t *mctx,
 /* Skip bytes in the input that correspond to part of a
    multi-byte match, then look in the log for a state
    from which to restart matching.  */
-re_dfastate_t *
+static re_dfastate_t *
 internal_function
 find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
 {
@@ -2449,7 +2449,7 @@ find_recover_state (reg_errcode_t *err, 
re_match_context_t *mctx)
 /* From the node set CUR_NODES, pick up the nodes whose types are
    OP_OPEN_SUBEXP and which have corresponding back references in the regular
    expression. And register them to use them later for evaluating the
-   correspoding back references.  */
+   corresponding back references.  */
 
 static reg_errcode_t
 internal_function

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog        |   16 +
 doc/ChangeLog    |    6 +
 doc/gawk.info    | 1009 ++++++++++++++++++++++++++++--------------------------
 doc/gawk.texi    |   29 ++-
 doc/gawktexi.in  |   29 ++-
 regcomp.c        |   18 +-
 regex.h          |    2 +-
 regex_internal.c |    2 +-
 regex_internal.h |    5 +-
 regexec.c        |   16 +-
 10 files changed, 609 insertions(+), 523 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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