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.2-stable, updated. gawk-4.1.0-299


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.2-stable, updated. gawk-4.1.0-2991-g1bc2871
Date: Wed, 25 Jul 2018 13:39:59 -0400 (EDT)

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.2-stable has been updated
       via  1bc2871bbe4ae6b99fd1862a412440672846bc05 (commit)
      from  8dba5f4c900239d01897e2197ddd79bcf5d9b034 (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=1bc2871bbe4ae6b99fd1862a412440672846bc05

commit 1bc2871bbe4ae6b99fd1862a412440672846bc05
Author: Arnold D. Robbins <address@hidden>
Date:   Wed Jul 25 20:39:39 2018 +0300

    Add example on buffering and ptys to the doc.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 3f05800..1c21510 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-25         Arnold D. Robbins     <address@hidden>
+
+       * gawktexi.in (Two-way I/O): Add a nice example on buffering
+       and ptys from Andrew Schorr.
+
 2018-07-10         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in (Control Letters): Add a note about output of NaN and
diff --git a/doc/gawk.info b/doc/gawk.info
index dc1aa07..807fe8a 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -20429,6 +20429,46 @@ driver and not passed through.
      deadlock; careful programming and knowledge of the behavior of the
      coprocess are required.
 
+   The following example, due to Andrew Schorr, demonstrates how using
+ptys can help deal with buffering deadlocks.
+
+   Suppose 'gawk' were unable to add numbers.  You could use a coprocess
+to do it.  Here's an exceedingly simple program written for that
+purpose:
+
+     $ cat add.c
+     #include <stdio.h>
+
+     int
+     main(void)
+     {
+         int x, y;
+         while (scanf("%d %d", & x, & y) == 2)
+             printf("%d\n", x + y);
+         return 0;
+     }
+     $ cc -O add.c -o add      Compile the program
+
+   You could then write an exceedingly simple 'gawk' program to add
+numbers by passing them to the coprocess:
+
+     $ echo 1 2 |
+     > gawk -v cmd=./add '{ print |& cmd; cmd |& getline x; print x }'
+
+   And it would deadlock, because 'add.c' fails to call
+'setlinebuf(stdout)'.  The 'add' program freezes.
+
+   Now try instead:
+
+     $ echo 1 2 |
+     > gawk -v cmd=add 'BEGIN { PROCINFO[cmd, "pty"] = 1 }
+     >                  { print |& cmd; cmd |& getline x; print x }'
+     -| 3
+
+   By using a pty, 'gawk' fools the standard I/O library into thinking
+it has an interactive session, so it defaults to line buffering.  And
+now, magically, it works!
+
    ---------- Footnotes ----------
 
    (1) Michael Brennan suggests the use of 'rand()' to generate unique
@@ -36419,223 +36459,223 @@ Ref: Controlling Array Traversal-Footnote-1820186
 Node: Array Sorting Functions820304
 Ref: Array Sorting Functions-Footnote-1825395
 Node: Two-way I/O825591
-Ref: Two-way I/O-Footnote-1832143
-Ref: Two-way I/O-Footnote-2832330
-Node: TCP/IP Networking832412
-Node: Profiling835530
-Ref: Profiling-Footnote-1844202
-Node: Advanced Features Summary844525
-Node: Internationalization846369
-Node: I18N and L10N847849
-Node: Explaining gettext848536
-Ref: Explaining gettext-Footnote-1854428
-Ref: Explaining gettext-Footnote-2854613
-Node: Programmer i18n854778
-Ref: Programmer i18n-Footnote-1859727
-Node: Translator i18n859776
-Node: String Extraction860570
-Ref: String Extraction-Footnote-1861702
-Node: Printf Ordering861788
-Ref: Printf Ordering-Footnote-1864574
-Node: I18N Portability864638
-Ref: I18N Portability-Footnote-1867094
-Node: I18N Example867157
-Ref: I18N Example-Footnote-1869963
-Node: Gawk I18N870036
-Node: I18N Summary870681
-Node: Debugger872022
-Node: Debugging873045
-Node: Debugging Concepts873486
-Node: Debugging Terms875295
-Node: Awk Debugging877870
-Node: Sample Debugging Session878776
-Node: Debugger Invocation879310
-Node: Finding The Bug880696
-Node: List of Debugger Commands887174
-Node: Breakpoint Control888507
-Node: Debugger Execution Control892201
-Node: Viewing And Changing Data895563
-Node: Execution Stack898937
-Node: Debugger Info900574
-Node: Miscellaneous Debugger Commands904645
-Node: Readline Support909707
-Node: Limitations910603
-Node: Debugging Summary912712
-Node: Arbitrary Precision Arithmetic913991
-Node: Computer Arithmetic915476
-Ref: table-numeric-ranges919242
-Ref: table-floating-point-ranges919735
-Ref: Computer Arithmetic-Footnote-1920393
-Node: Math Definitions920450
-Ref: table-ieee-formats923766
-Ref: Math Definitions-Footnote-1924369
-Node: MPFR features924474
-Node: FP Math Caution926192
-Ref: FP Math Caution-Footnote-1927264
-Node: Inexactness of computations927633
-Node: Inexact representation928593
-Node: Comparing FP Values929953
-Node: Errors accumulate931035
-Node: Getting Accuracy932468
-Node: Try To Round935178
-Node: Setting precision936077
-Ref: table-predefined-precision-strings936774
-Node: Setting the rounding mode938604
-Ref: table-gawk-rounding-modes938978
-Ref: Setting the rounding mode-Footnote-1942909
-Node: Arbitrary Precision Integers943088
-Ref: Arbitrary Precision Integers-Footnote-1946263
-Node: Checking for MPFR946412
-Node: POSIX Floating Point Problems947886
-Ref: POSIX Floating Point Problems-Footnote-1952171
-Node: Floating point summary952209
-Node: Dynamic Extensions954399
-Node: Extension Intro955952
-Node: Plugin License957218
-Node: Extension Mechanism Outline958015
-Ref: figure-load-extension958454
-Ref: figure-register-new-function960019
-Ref: figure-call-new-function961111
-Node: Extension API Description963173
-Node: Extension API Functions Introduction964815
-Node: General Data Types970355
-Ref: General Data Types-Footnote-1978716
-Node: Memory Allocation Functions979015
-Ref: Memory Allocation Functions-Footnote-1983225
-Node: Constructor Functions983324
-Node: Registration Functions986910
-Node: Extension Functions987595
-Node: Exit Callback Functions992810
-Node: Extension Version String994060
-Node: Input Parsers994723
-Node: Output Wrappers1007444
-Node: Two-way processors1011956
-Node: Printing Messages1014221
-Ref: Printing Messages-Footnote-11015392
-Node: Updating ERRNO1015545
-Node: Requesting Values1016284
-Ref: table-value-types-returned1017021
-Node: Accessing Parameters1017957
-Node: Symbol Table Access1019192
-Node: Symbol table by name1019704
-Node: Symbol table by cookie1021493
-Ref: Symbol table by cookie-Footnote-11025678
-Node: Cached values1025742
-Ref: Cached values-Footnote-11029278
-Node: Array Manipulation1029431
-Ref: Array Manipulation-Footnote-11030522
-Node: Array Data Types1030559
-Ref: Array Data Types-Footnote-11033217
-Node: Array Functions1033309
-Node: Flattening Arrays1037807
-Node: Creating Arrays1044783
-Node: Redirection API1049550
-Node: Extension API Variables1052383
-Node: Extension Versioning1053094
-Ref: gawk-api-version1053523
-Node: Extension GMP/MPFR Versioning1055254
-Node: Extension API Informational Variables1056882
-Node: Extension API Boilerplate1057955
-Node: Changes from API V11061929
-Node: Finding Extensions1063501
-Node: Extension Example1064060
-Node: Internal File Description1064858
-Node: Internal File Ops1068938
-Ref: Internal File Ops-Footnote-11080288
-Node: Using Internal File Ops1080428
-Ref: Using Internal File Ops-Footnote-11082811
-Node: Extension Samples1083085
-Node: Extension Sample File Functions1084614
-Node: Extension Sample Fnmatch1092263
-Node: Extension Sample Fork1093750
-Node: Extension Sample Inplace1094968
-Node: Extension Sample Ord1098185
-Node: Extension Sample Readdir1099021
-Ref: table-readdir-file-types1099910
-Node: Extension Sample Revout1100715
-Node: Extension Sample Rev2way1101304
-Node: Extension Sample Read write array1102044
-Node: Extension Sample Readfile1103986
-Node: Extension Sample Time1105081
-Node: Extension Sample API Tests1106429
-Node: gawkextlib1106921
-Node: Extension summary1109839
-Node: Extension Exercises1113541
-Node: Language History1115039
-Node: V7/SVR3.11116695
-Node: SVR41118847
-Node: POSIX1120281
-Node: BTL1121661
-Node: POSIX/GNU1122390
-Node: Feature History1128168
-Node: Common Extensions1144027
-Node: Ranges and Locales1145310
-Ref: Ranges and Locales-Footnote-11149926
-Ref: Ranges and Locales-Footnote-21149953
-Ref: Ranges and Locales-Footnote-31150188
-Node: Contributors1150409
-Node: History summary1156354
-Node: Installation1157734
-Node: Gawk Distribution1158678
-Node: Getting1159162
-Node: Extracting1160125
-Node: Distribution contents1161763
-Node: Unix Installation1168243
-Node: Quick Installation1168925
-Node: Shell Startup Files1171339
-Node: Additional Configuration Options1172428
-Node: Configuration Philosophy1174721
-Node: Non-Unix Installation1177090
-Node: PC Installation1177550
-Node: PC Binary Installation1178388
-Node: PC Compiling1178823
-Node: PC Using1179940
-Node: Cygwin1183155
-Node: MSYS1184254
-Node: VMS Installation1184755
-Node: VMS Compilation1185546
-Ref: VMS Compilation-Footnote-11186775
-Node: VMS Dynamic Extensions1186833
-Node: VMS Installation Details1188518
-Node: VMS Running1190771
-Node: VMS GNV1195050
-Node: VMS Old Gawk1195785
-Node: Bugs1196256
-Node: Bug address1196919
-Node: Usenet1199711
-Node: Maintainers1200488
-Node: Other Versions1201749
-Node: Installation summary1208511
-Node: Notes1209713
-Node: Compatibility Mode1210578
-Node: Additions1211360
-Node: Accessing The Source1212285
-Node: Adding Code1213722
-Node: New Ports1219941
-Node: Derived Files1224429
-Ref: Derived Files-Footnote-11230075
-Ref: Derived Files-Footnote-21230110
-Ref: Derived Files-Footnote-31230708
-Node: Future Extensions1230822
-Node: Implementation Limitations1231480
-Node: Extension Design1232663
-Node: Old Extension Problems1233817
-Ref: Old Extension Problems-Footnote-11235335
-Node: Extension New Mechanism Goals1235392
-Ref: Extension New Mechanism Goals-Footnote-11238756
-Node: Extension Other Design Decisions1238945
-Node: Extension Future Growth1241058
-Node: Old Extension Mechanism1241894
-Node: Notes summary1243657
-Node: Basic Concepts1244839
-Node: Basic High Level1245520
-Ref: figure-general-flow1245802
-Ref: figure-process-flow1246487
-Ref: Basic High Level-Footnote-11249788
-Node: Basic Data Typing1249973
-Node: Glossary1253301
-Node: Copying1285139
-Node: GNU Free Documentation License1322682
-Node: Index1347802
+Ref: Two-way I/O-Footnote-1833311
+Ref: Two-way I/O-Footnote-2833498
+Node: TCP/IP Networking833580
+Node: Profiling836698
+Ref: Profiling-Footnote-1845370
+Node: Advanced Features Summary845693
+Node: Internationalization847537
+Node: I18N and L10N849017
+Node: Explaining gettext849704
+Ref: Explaining gettext-Footnote-1855596
+Ref: Explaining gettext-Footnote-2855781
+Node: Programmer i18n855946
+Ref: Programmer i18n-Footnote-1860895
+Node: Translator i18n860944
+Node: String Extraction861738
+Ref: String Extraction-Footnote-1862870
+Node: Printf Ordering862956
+Ref: Printf Ordering-Footnote-1865742
+Node: I18N Portability865806
+Ref: I18N Portability-Footnote-1868262
+Node: I18N Example868325
+Ref: I18N Example-Footnote-1871131
+Node: Gawk I18N871204
+Node: I18N Summary871849
+Node: Debugger873190
+Node: Debugging874213
+Node: Debugging Concepts874654
+Node: Debugging Terms876463
+Node: Awk Debugging879038
+Node: Sample Debugging Session879944
+Node: Debugger Invocation880478
+Node: Finding The Bug881864
+Node: List of Debugger Commands888342
+Node: Breakpoint Control889675
+Node: Debugger Execution Control893369
+Node: Viewing And Changing Data896731
+Node: Execution Stack900105
+Node: Debugger Info901742
+Node: Miscellaneous Debugger Commands905813
+Node: Readline Support910875
+Node: Limitations911771
+Node: Debugging Summary913880
+Node: Arbitrary Precision Arithmetic915159
+Node: Computer Arithmetic916644
+Ref: table-numeric-ranges920410
+Ref: table-floating-point-ranges920903
+Ref: Computer Arithmetic-Footnote-1921561
+Node: Math Definitions921618
+Ref: table-ieee-formats924934
+Ref: Math Definitions-Footnote-1925537
+Node: MPFR features925642
+Node: FP Math Caution927360
+Ref: FP Math Caution-Footnote-1928432
+Node: Inexactness of computations928801
+Node: Inexact representation929761
+Node: Comparing FP Values931121
+Node: Errors accumulate932203
+Node: Getting Accuracy933636
+Node: Try To Round936346
+Node: Setting precision937245
+Ref: table-predefined-precision-strings937942
+Node: Setting the rounding mode939772
+Ref: table-gawk-rounding-modes940146
+Ref: Setting the rounding mode-Footnote-1944077
+Node: Arbitrary Precision Integers944256
+Ref: Arbitrary Precision Integers-Footnote-1947431
+Node: Checking for MPFR947580
+Node: POSIX Floating Point Problems949054
+Ref: POSIX Floating Point Problems-Footnote-1953339
+Node: Floating point summary953377
+Node: Dynamic Extensions955567
+Node: Extension Intro957120
+Node: Plugin License958386
+Node: Extension Mechanism Outline959183
+Ref: figure-load-extension959622
+Ref: figure-register-new-function961187
+Ref: figure-call-new-function962279
+Node: Extension API Description964341
+Node: Extension API Functions Introduction965983
+Node: General Data Types971523
+Ref: General Data Types-Footnote-1979884
+Node: Memory Allocation Functions980183
+Ref: Memory Allocation Functions-Footnote-1984393
+Node: Constructor Functions984492
+Node: Registration Functions988078
+Node: Extension Functions988763
+Node: Exit Callback Functions993978
+Node: Extension Version String995228
+Node: Input Parsers995891
+Node: Output Wrappers1008612
+Node: Two-way processors1013124
+Node: Printing Messages1015389
+Ref: Printing Messages-Footnote-11016560
+Node: Updating ERRNO1016713
+Node: Requesting Values1017452
+Ref: table-value-types-returned1018189
+Node: Accessing Parameters1019125
+Node: Symbol Table Access1020360
+Node: Symbol table by name1020872
+Node: Symbol table by cookie1022661
+Ref: Symbol table by cookie-Footnote-11026846
+Node: Cached values1026910
+Ref: Cached values-Footnote-11030446
+Node: Array Manipulation1030599
+Ref: Array Manipulation-Footnote-11031690
+Node: Array Data Types1031727
+Ref: Array Data Types-Footnote-11034385
+Node: Array Functions1034477
+Node: Flattening Arrays1038975
+Node: Creating Arrays1045951
+Node: Redirection API1050718
+Node: Extension API Variables1053551
+Node: Extension Versioning1054262
+Ref: gawk-api-version1054691
+Node: Extension GMP/MPFR Versioning1056422
+Node: Extension API Informational Variables1058050
+Node: Extension API Boilerplate1059123
+Node: Changes from API V11063097
+Node: Finding Extensions1064669
+Node: Extension Example1065228
+Node: Internal File Description1066026
+Node: Internal File Ops1070106
+Ref: Internal File Ops-Footnote-11081456
+Node: Using Internal File Ops1081596
+Ref: Using Internal File Ops-Footnote-11083979
+Node: Extension Samples1084253
+Node: Extension Sample File Functions1085782
+Node: Extension Sample Fnmatch1093431
+Node: Extension Sample Fork1094918
+Node: Extension Sample Inplace1096136
+Node: Extension Sample Ord1099353
+Node: Extension Sample Readdir1100189
+Ref: table-readdir-file-types1101078
+Node: Extension Sample Revout1101883
+Node: Extension Sample Rev2way1102472
+Node: Extension Sample Read write array1103212
+Node: Extension Sample Readfile1105154
+Node: Extension Sample Time1106249
+Node: Extension Sample API Tests1107597
+Node: gawkextlib1108089
+Node: Extension summary1111007
+Node: Extension Exercises1114709
+Node: Language History1116207
+Node: V7/SVR3.11117863
+Node: SVR41120015
+Node: POSIX1121449
+Node: BTL1122829
+Node: POSIX/GNU1123558
+Node: Feature History1129336
+Node: Common Extensions1145195
+Node: Ranges and Locales1146478
+Ref: Ranges and Locales-Footnote-11151094
+Ref: Ranges and Locales-Footnote-21151121
+Ref: Ranges and Locales-Footnote-31151356
+Node: Contributors1151577
+Node: History summary1157522
+Node: Installation1158902
+Node: Gawk Distribution1159846
+Node: Getting1160330
+Node: Extracting1161293
+Node: Distribution contents1162931
+Node: Unix Installation1169411
+Node: Quick Installation1170093
+Node: Shell Startup Files1172507
+Node: Additional Configuration Options1173596
+Node: Configuration Philosophy1175889
+Node: Non-Unix Installation1178258
+Node: PC Installation1178718
+Node: PC Binary Installation1179556
+Node: PC Compiling1179991
+Node: PC Using1181108
+Node: Cygwin1184323
+Node: MSYS1185422
+Node: VMS Installation1185923
+Node: VMS Compilation1186714
+Ref: VMS Compilation-Footnote-11187943
+Node: VMS Dynamic Extensions1188001
+Node: VMS Installation Details1189686
+Node: VMS Running1191939
+Node: VMS GNV1196218
+Node: VMS Old Gawk1196953
+Node: Bugs1197424
+Node: Bug address1198087
+Node: Usenet1200879
+Node: Maintainers1201656
+Node: Other Versions1202917
+Node: Installation summary1209679
+Node: Notes1210881
+Node: Compatibility Mode1211746
+Node: Additions1212528
+Node: Accessing The Source1213453
+Node: Adding Code1214890
+Node: New Ports1221109
+Node: Derived Files1225597
+Ref: Derived Files-Footnote-11231243
+Ref: Derived Files-Footnote-21231278
+Ref: Derived Files-Footnote-31231876
+Node: Future Extensions1231990
+Node: Implementation Limitations1232648
+Node: Extension Design1233831
+Node: Old Extension Problems1234985
+Ref: Old Extension Problems-Footnote-11236503
+Node: Extension New Mechanism Goals1236560
+Ref: Extension New Mechanism Goals-Footnote-11239924
+Node: Extension Other Design Decisions1240113
+Node: Extension Future Growth1242226
+Node: Old Extension Mechanism1243062
+Node: Notes summary1244825
+Node: Basic Concepts1246007
+Node: Basic High Level1246688
+Ref: figure-general-flow1246970
+Ref: figure-process-flow1247655
+Ref: Basic High Level-Footnote-11250956
+Node: Basic Data Typing1251141
+Node: Glossary1254469
+Node: Copying1286307
+Node: GNU Free Documentation License1323850
+Node: Index1348970
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 3b7c2bf..675985e 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -28652,6 +28652,53 @@ they've already written.  There is no workaround for 
deadlock; careful
 programming and knowledge of the behavior of the coprocess are required.
 @end quotation
 
address@hidden From email send January 4, 2018.
+The following example, due to Andrew Schorr, demonstrates how
+using ptys can help deal with buffering deadlocks.
+
+Suppose @command{gawk} were unable to add numbers.
+You could use a coprocess to do it. Here's an exceedingly
+simple program written for that purpose: 
+
address@hidden
+$ @kbd{cat add.c}
+#include <stdio.h> 
+
+int 
+main(void) 
address@hidden 
+    int x, y; 
+    while (scanf("%d %d", & x, & y) == 2) 
+        printf("%d\n", x + y); 
+    return 0; 
address@hidden 
+$ @kbd{cc -O add.c -o add}     @ii{Compile the program}
address@hidden example
+
+You could then write an exceedingly simple @command{gawk} program
+to add numbers by passing them to the coprocess:
+
address@hidden
+$ @kbd{echo 1 2 |}
+> @kbd{gawk -v cmd=./add '@{ print |& cmd; cmd |& getline x; print x @}'}
address@hidden example
+
+And it would deadlock, because @file{add.c} fails to call
address@hidden(stdout)}. The @command{add} program freezes. 
+
+Now try instead: 
+
address@hidden
+$ @kbd{echo 1 2 |}
+> @kbd{gawk -v cmd=add 'BEGIN @{ PROCINFO[cmd, "pty"] = 1 @}}
+> @kbd{                 @{ print |& cmd; cmd |& getline x; print x @}'}
address@hidden 3 
address@hidden example
+
+By using a pty, @command{gawk} fools the standard I/O library into
+thinking it has an interactive session, so it defaults to line buffering.
+And now, magically, it works!
+
 @node TCP/IP Networking
 @section Using @command{gawk} for Network Programming
 @cindex advanced features, network programming
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 8c4cb89..795c5c0 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -27665,6 +27665,53 @@ they've already written.  There is no workaround for 
deadlock; careful
 programming and knowledge of the behavior of the coprocess are required.
 @end quotation
 
address@hidden From email send January 4, 2018.
+The following example, due to Andrew Schorr, demonstrates how
+using ptys can help deal with buffering deadlocks.
+
+Suppose @command{gawk} were unable to add numbers.
+You could use a coprocess to do it. Here's an exceedingly
+simple program written for that purpose: 
+
address@hidden
+$ @kbd{cat add.c}
+#include <stdio.h> 
+
+int 
+main(void) 
address@hidden 
+    int x, y; 
+    while (scanf("%d %d", & x, & y) == 2) 
+        printf("%d\n", x + y); 
+    return 0; 
address@hidden 
+$ @kbd{cc -O add.c -o add}     @ii{Compile the program}
address@hidden example
+
+You could then write an exceedingly simple @command{gawk} program
+to add numbers by passing them to the coprocess:
+
address@hidden
+$ @kbd{echo 1 2 |}
+> @kbd{gawk -v cmd=./add '@{ print |& cmd; cmd |& getline x; print x @}'}
address@hidden example
+
+And it would deadlock, because @file{add.c} fails to call
address@hidden(stdout)}. The @command{add} program freezes. 
+
+Now try instead: 
+
address@hidden
+$ @kbd{echo 1 2 |}
+> @kbd{gawk -v cmd=add 'BEGIN @{ PROCINFO[cmd, "pty"] = 1 @}}
+> @kbd{                 @{ print |& cmd; cmd |& getline x; print x @}'}
address@hidden 3 
address@hidden example
+
+By using a pty, @command{gawk} fools the standard I/O library into
+thinking it has an interactive session, so it defaults to line buffering.
+And now, magically, it works!
+
 @node TCP/IP Networking
 @section Using @command{gawk} for Network Programming
 @cindex advanced features, network programming

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

Summary of changes:
 doc/ChangeLog   |   5 +
 doc/gawk.info   | 476 ++++++++++++++++++++++++++++++--------------------------
 doc/gawk.texi   |  47 ++++++
 doc/gawktexi.in |  47 ++++++
 4 files changed, 357 insertions(+), 218 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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