aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/ChangeLog7
-rw-r--r--doc/gawk.info558
-rw-r--r--doc/gawk.texi13
-rw-r--r--doc/gawktexi.in13
4 files changed, 304 insertions, 287 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 3e692a17..dca86df1 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2017-10-10 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Readfile Function): Fix the code for the naive
+ function to be syntactically and semantically correct. Thanks to
+ Jaromir Obr <jaromir.obr@gmail.com> for the report.
+ (POSIX String Comparison): Add some URL references in @ignore.
+
2017-10-08 Andrew J. Schorr <aschorr@telemetry-investments.com>
* gawktexi.in: Fix discussion of AWKPATH in section on @include.
diff --git a/doc/gawk.info b/doc/gawk.info
index 2393096e..6b826cc2 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -15689,14 +15689,14 @@ Often, it is convenient to have the entire contents of a file available
in memory as a single string. A straightforward but naive way to do
that might be as follows:
- function readfile(file, tmp, contents)
+ function readfile1(file, tmp, contents)
{
if ((getline tmp < file) < 0)
return
- contents = tmp
- while (getline tmp < file) > 0)
- contents = contents RT tmp
+ contents = tmp RT
+ while ((getline tmp < file) > 0)
+ contents = contents tmp RT
close(file)
return contents
@@ -36187,280 +36187,280 @@ Node: Join Function650561
Ref: Join Function-Footnote-1652331
Node: Getlocaltime Function652531
Node: Readfile Function656273
-Node: Shell Quoting658245
-Node: Data File Management659646
-Node: Filetrans Function660278
-Node: Rewind Function664374
-Node: File Checking666284
-Ref: File Checking-Footnote-1667618
-Node: Empty Files667819
-Node: Ignoring Assigns669798
-Node: Getopt Function671348
-Ref: Getopt Function-Footnote-1682817
-Node: Passwd Functions683017
-Ref: Passwd Functions-Footnote-1691856
-Node: Group Functions691944
-Ref: Group Functions-Footnote-1699842
-Node: Walking Arrays700049
-Node: Library Functions Summary703057
-Node: Library Exercises704463
-Node: Sample Programs704928
-Node: Running Examples705698
-Node: Clones706426
-Node: Cut Program707650
-Node: Egrep Program717579
-Ref: Egrep Program-Footnote-1725091
-Node: Id Program725201
-Node: Split Program728881
-Ref: Split Program-Footnote-1732340
-Node: Tee Program732469
-Node: Uniq Program735259
-Node: Wc Program742685
-Ref: Wc Program-Footnote-1746940
-Node: Miscellaneous Programs747034
-Node: Dupword Program748247
-Node: Alarm Program750277
-Node: Translate Program755132
-Ref: Translate Program-Footnote-1759697
-Node: Labels Program759967
-Ref: Labels Program-Footnote-1763318
-Node: Word Sorting763402
-Node: History Sorting767474
-Node: Extract Program769309
-Node: Simple Sed776839
-Node: Igawk Program779913
-Ref: Igawk Program-Footnote-1794244
-Ref: Igawk Program-Footnote-2794446
-Ref: Igawk Program-Footnote-3794568
-Node: Anagram Program794683
-Node: Signature Program797745
-Node: Programs Summary798992
-Node: Programs Exercises800206
-Ref: Programs Exercises-Footnote-1804335
-Node: Advanced Features804426
-Node: Nondecimal Data806416
-Node: Array Sorting808007
-Node: Controlling Array Traversal808707
-Ref: Controlling Array Traversal-Footnote-1817074
-Node: Array Sorting Functions817192
-Ref: Array Sorting Functions-Footnote-1822283
-Node: Two-way I/O822479
-Ref: Two-way I/O-Footnote-1829031
-Ref: Two-way I/O-Footnote-2829218
-Node: TCP/IP Networking829300
-Node: Profiling832418
-Ref: Profiling-Footnote-1841090
-Node: Advanced Features Summary841413
-Node: Internationalization843257
-Node: I18N and L10N844737
-Node: Explaining gettext845424
-Ref: Explaining gettext-Footnote-1851316
-Ref: Explaining gettext-Footnote-2851501
-Node: Programmer i18n851666
-Ref: Programmer i18n-Footnote-1856615
-Node: Translator i18n856664
-Node: String Extraction857458
-Ref: String Extraction-Footnote-1858590
-Node: Printf Ordering858676
-Ref: Printf Ordering-Footnote-1861462
-Node: I18N Portability861526
-Ref: I18N Portability-Footnote-1863982
-Node: I18N Example864045
-Ref: I18N Example-Footnote-1866851
-Node: Gawk I18N866924
-Node: I18N Summary867569
-Node: Debugger868910
-Node: Debugging869933
-Node: Debugging Concepts870374
-Node: Debugging Terms872183
-Node: Awk Debugging874758
-Node: Sample Debugging Session875664
-Node: Debugger Invocation876198
-Node: Finding The Bug877584
-Node: List of Debugger Commands884062
-Node: Breakpoint Control885395
-Node: Debugger Execution Control889089
-Node: Viewing And Changing Data892451
-Node: Execution Stack895825
-Node: Debugger Info897462
-Node: Miscellaneous Debugger Commands901533
-Node: Readline Support906621
-Node: Limitations907517
-Node: Debugging Summary909626
-Node: Arbitrary Precision Arithmetic910905
-Node: Computer Arithmetic912390
-Ref: table-numeric-ranges915981
-Ref: Computer Arithmetic-Footnote-1916703
-Node: Math Definitions916760
-Ref: table-ieee-formats920076
-Ref: Math Definitions-Footnote-1920679
-Node: MPFR features920784
-Node: FP Math Caution922502
-Ref: FP Math Caution-Footnote-1923574
-Node: Inexactness of computations923943
-Node: Inexact representation924903
-Node: Comparing FP Values926263
-Node: Errors accumulate927345
-Node: Getting Accuracy928778
-Node: Try To Round931488
-Node: Setting precision932387
-Ref: table-predefined-precision-strings933084
-Node: Setting the rounding mode934914
-Ref: table-gawk-rounding-modes935288
-Ref: Setting the rounding mode-Footnote-1938696
-Node: Arbitrary Precision Integers938875
-Ref: Arbitrary Precision Integers-Footnote-1942050
-Node: Checking for MPFR942199
-Node: POSIX Floating Point Problems943496
-Ref: POSIX Floating Point Problems-Footnote-1947367
-Node: Floating point summary947405
-Node: Dynamic Extensions949595
-Node: Extension Intro951148
-Node: Plugin License952414
-Node: Extension Mechanism Outline953211
-Ref: figure-load-extension953650
-Ref: figure-register-new-function955215
-Ref: figure-call-new-function956307
-Node: Extension API Description958369
-Node: Extension API Functions Introduction960011
-Node: General Data Types965551
-Ref: General Data Types-Footnote-1973672
-Node: Memory Allocation Functions973971
-Ref: Memory Allocation Functions-Footnote-1978179
-Node: Constructor Functions978278
-Node: Registration Functions981864
-Node: Extension Functions982549
-Node: Exit Callback Functions987764
-Node: Extension Version String989014
-Node: Input Parsers989677
-Node: Output Wrappers1002398
-Node: Two-way processors1006910
-Node: Printing Messages1009175
-Ref: Printing Messages-Footnote-11010346
-Node: Updating ERRNO1010499
-Node: Requesting Values1011238
-Ref: table-value-types-returned1011975
-Node: Accessing Parameters1012911
-Node: Symbol Table Access1014146
-Node: Symbol table by name1014658
-Node: Symbol table by cookie1016447
-Ref: Symbol table by cookie-Footnote-11020632
-Node: Cached values1020696
-Ref: Cached values-Footnote-11024232
-Node: Array Manipulation1024385
-Ref: Array Manipulation-Footnote-11025476
-Node: Array Data Types1025513
-Ref: Array Data Types-Footnote-11028171
-Node: Array Functions1028263
-Node: Flattening Arrays1032761
-Node: Creating Arrays1039737
-Node: Redirection API1044506
-Node: Extension API Variables1047339
-Node: Extension Versioning1048050
-Ref: gawk-api-version1048479
-Node: Extension GMP/MPFR Versioning1050207
-Node: Extension API Informational Variables1051835
-Node: Extension API Boilerplate1052908
-Node: Changes from API V11056882
-Node: Finding Extensions1057542
-Node: Extension Example1058101
-Node: Internal File Description1058899
-Node: Internal File Ops1062979
-Ref: Internal File Ops-Footnote-11074379
-Node: Using Internal File Ops1074519
-Ref: Using Internal File Ops-Footnote-11076902
-Node: Extension Samples1077176
-Node: Extension Sample File Functions1078705
-Node: Extension Sample Fnmatch1086354
-Node: Extension Sample Fork1087841
-Node: Extension Sample Inplace1089059
-Node: Extension Sample Ord1092276
-Node: Extension Sample Readdir1093112
-Ref: table-readdir-file-types1094001
-Node: Extension Sample Revout1094806
-Node: Extension Sample Rev2way1095395
-Node: Extension Sample Read write array1096135
-Node: Extension Sample Readfile1098077
-Node: Extension Sample Time1099172
-Node: Extension Sample API Tests1100520
-Node: gawkextlib1101012
-Node: Extension summary1103468
-Node: Extension Exercises1107170
-Node: Language History1108668
-Node: V7/SVR3.11110324
-Node: SVR41112476
-Node: POSIX1113910
-Node: BTL1115290
-Node: POSIX/GNU1116019
-Node: Feature History1121797
-Node: Common Extensions1137656
-Node: Ranges and Locales1138939
-Ref: Ranges and Locales-Footnote-11143555
-Ref: Ranges and Locales-Footnote-21143582
-Ref: Ranges and Locales-Footnote-31143817
-Node: Contributors1144038
-Node: History summary1149983
-Node: Installation1151363
-Node: Gawk Distribution1152307
-Node: Getting1152791
-Node: Extracting1153754
-Node: Distribution contents1155392
-Node: Unix Installation1161872
-Node: Quick Installation1162554
-Node: Shell Startup Files1164968
-Node: Additional Configuration Options1166057
-Node: Configuration Philosophy1168046
-Node: Non-Unix Installation1170415
-Node: PC Installation1170875
-Node: PC Binary Installation1171713
-Node: PC Compiling1172148
-Node: PC Using1173265
-Node: Cygwin1176310
-Node: MSYS1177080
-Node: VMS Installation1177581
-Node: VMS Compilation1178372
-Ref: VMS Compilation-Footnote-11179601
-Node: VMS Dynamic Extensions1179659
-Node: VMS Installation Details1181344
-Node: VMS Running1183597
-Node: VMS GNV1187876
-Node: VMS Old Gawk1188611
-Node: Bugs1189082
-Node: Bug address1189745
-Node: Usenet1192537
-Node: Maintainers1193314
-Node: Other Versions1194575
-Node: Installation summary1201370
-Node: Notes1202572
-Node: Compatibility Mode1203437
-Node: Additions1204219
-Node: Accessing The Source1205144
-Node: Adding Code1206581
-Node: New Ports1212800
-Node: Derived Files1217288
-Ref: Derived Files-Footnote-11222934
-Ref: Derived Files-Footnote-21222969
-Ref: Derived Files-Footnote-31223567
-Node: Future Extensions1223681
-Node: Implementation Limitations1224339
-Node: Extension Design1225522
-Node: Old Extension Problems1226676
-Ref: Old Extension Problems-Footnote-11228194
-Node: Extension New Mechanism Goals1228251
-Ref: Extension New Mechanism Goals-Footnote-11231615
-Node: Extension Other Design Decisions1231804
-Node: Extension Future Growth1233917
-Node: Old Extension Mechanism1234753
-Node: Notes summary1236516
-Node: Basic Concepts1237698
-Node: Basic High Level1238379
-Ref: figure-general-flow1238661
-Ref: figure-process-flow1239346
-Ref: Basic High Level-Footnote-11242647
-Node: Basic Data Typing1242832
-Node: Glossary1246160
-Node: Copying1278110
-Node: GNU Free Documentation License1315649
-Node: Index1340767
+Node: Shell Quoting658250
+Node: Data File Management659651
+Node: Filetrans Function660283
+Node: Rewind Function664379
+Node: File Checking666289
+Ref: File Checking-Footnote-1667623
+Node: Empty Files667824
+Node: Ignoring Assigns669803
+Node: Getopt Function671353
+Ref: Getopt Function-Footnote-1682822
+Node: Passwd Functions683022
+Ref: Passwd Functions-Footnote-1691861
+Node: Group Functions691949
+Ref: Group Functions-Footnote-1699847
+Node: Walking Arrays700054
+Node: Library Functions Summary703062
+Node: Library Exercises704468
+Node: Sample Programs704933
+Node: Running Examples705703
+Node: Clones706431
+Node: Cut Program707655
+Node: Egrep Program717584
+Ref: Egrep Program-Footnote-1725096
+Node: Id Program725206
+Node: Split Program728886
+Ref: Split Program-Footnote-1732345
+Node: Tee Program732474
+Node: Uniq Program735264
+Node: Wc Program742690
+Ref: Wc Program-Footnote-1746945
+Node: Miscellaneous Programs747039
+Node: Dupword Program748252
+Node: Alarm Program750282
+Node: Translate Program755137
+Ref: Translate Program-Footnote-1759702
+Node: Labels Program759972
+Ref: Labels Program-Footnote-1763323
+Node: Word Sorting763407
+Node: History Sorting767479
+Node: Extract Program769314
+Node: Simple Sed776844
+Node: Igawk Program779918
+Ref: Igawk Program-Footnote-1794249
+Ref: Igawk Program-Footnote-2794451
+Ref: Igawk Program-Footnote-3794573
+Node: Anagram Program794688
+Node: Signature Program797750
+Node: Programs Summary798997
+Node: Programs Exercises800211
+Ref: Programs Exercises-Footnote-1804340
+Node: Advanced Features804431
+Node: Nondecimal Data806421
+Node: Array Sorting808012
+Node: Controlling Array Traversal808712
+Ref: Controlling Array Traversal-Footnote-1817079
+Node: Array Sorting Functions817197
+Ref: Array Sorting Functions-Footnote-1822288
+Node: Two-way I/O822484
+Ref: Two-way I/O-Footnote-1829036
+Ref: Two-way I/O-Footnote-2829223
+Node: TCP/IP Networking829305
+Node: Profiling832423
+Ref: Profiling-Footnote-1841095
+Node: Advanced Features Summary841418
+Node: Internationalization843262
+Node: I18N and L10N844742
+Node: Explaining gettext845429
+Ref: Explaining gettext-Footnote-1851321
+Ref: Explaining gettext-Footnote-2851506
+Node: Programmer i18n851671
+Ref: Programmer i18n-Footnote-1856620
+Node: Translator i18n856669
+Node: String Extraction857463
+Ref: String Extraction-Footnote-1858595
+Node: Printf Ordering858681
+Ref: Printf Ordering-Footnote-1861467
+Node: I18N Portability861531
+Ref: I18N Portability-Footnote-1863987
+Node: I18N Example864050
+Ref: I18N Example-Footnote-1866856
+Node: Gawk I18N866929
+Node: I18N Summary867574
+Node: Debugger868915
+Node: Debugging869938
+Node: Debugging Concepts870379
+Node: Debugging Terms872188
+Node: Awk Debugging874763
+Node: Sample Debugging Session875669
+Node: Debugger Invocation876203
+Node: Finding The Bug877589
+Node: List of Debugger Commands884067
+Node: Breakpoint Control885400
+Node: Debugger Execution Control889094
+Node: Viewing And Changing Data892456
+Node: Execution Stack895830
+Node: Debugger Info897467
+Node: Miscellaneous Debugger Commands901538
+Node: Readline Support906626
+Node: Limitations907522
+Node: Debugging Summary909631
+Node: Arbitrary Precision Arithmetic910910
+Node: Computer Arithmetic912395
+Ref: table-numeric-ranges915986
+Ref: Computer Arithmetic-Footnote-1916708
+Node: Math Definitions916765
+Ref: table-ieee-formats920081
+Ref: Math Definitions-Footnote-1920684
+Node: MPFR features920789
+Node: FP Math Caution922507
+Ref: FP Math Caution-Footnote-1923579
+Node: Inexactness of computations923948
+Node: Inexact representation924908
+Node: Comparing FP Values926268
+Node: Errors accumulate927350
+Node: Getting Accuracy928783
+Node: Try To Round931493
+Node: Setting precision932392
+Ref: table-predefined-precision-strings933089
+Node: Setting the rounding mode934919
+Ref: table-gawk-rounding-modes935293
+Ref: Setting the rounding mode-Footnote-1938701
+Node: Arbitrary Precision Integers938880
+Ref: Arbitrary Precision Integers-Footnote-1942055
+Node: Checking for MPFR942204
+Node: POSIX Floating Point Problems943501
+Ref: POSIX Floating Point Problems-Footnote-1947372
+Node: Floating point summary947410
+Node: Dynamic Extensions949600
+Node: Extension Intro951153
+Node: Plugin License952419
+Node: Extension Mechanism Outline953216
+Ref: figure-load-extension953655
+Ref: figure-register-new-function955220
+Ref: figure-call-new-function956312
+Node: Extension API Description958374
+Node: Extension API Functions Introduction960016
+Node: General Data Types965556
+Ref: General Data Types-Footnote-1973677
+Node: Memory Allocation Functions973976
+Ref: Memory Allocation Functions-Footnote-1978184
+Node: Constructor Functions978283
+Node: Registration Functions981869
+Node: Extension Functions982554
+Node: Exit Callback Functions987769
+Node: Extension Version String989019
+Node: Input Parsers989682
+Node: Output Wrappers1002403
+Node: Two-way processors1006915
+Node: Printing Messages1009180
+Ref: Printing Messages-Footnote-11010351
+Node: Updating ERRNO1010504
+Node: Requesting Values1011243
+Ref: table-value-types-returned1011980
+Node: Accessing Parameters1012916
+Node: Symbol Table Access1014151
+Node: Symbol table by name1014663
+Node: Symbol table by cookie1016452
+Ref: Symbol table by cookie-Footnote-11020637
+Node: Cached values1020701
+Ref: Cached values-Footnote-11024237
+Node: Array Manipulation1024390
+Ref: Array Manipulation-Footnote-11025481
+Node: Array Data Types1025518
+Ref: Array Data Types-Footnote-11028176
+Node: Array Functions1028268
+Node: Flattening Arrays1032766
+Node: Creating Arrays1039742
+Node: Redirection API1044511
+Node: Extension API Variables1047344
+Node: Extension Versioning1048055
+Ref: gawk-api-version1048484
+Node: Extension GMP/MPFR Versioning1050212
+Node: Extension API Informational Variables1051840
+Node: Extension API Boilerplate1052913
+Node: Changes from API V11056887
+Node: Finding Extensions1057547
+Node: Extension Example1058106
+Node: Internal File Description1058904
+Node: Internal File Ops1062984
+Ref: Internal File Ops-Footnote-11074384
+Node: Using Internal File Ops1074524
+Ref: Using Internal File Ops-Footnote-11076907
+Node: Extension Samples1077181
+Node: Extension Sample File Functions1078710
+Node: Extension Sample Fnmatch1086359
+Node: Extension Sample Fork1087846
+Node: Extension Sample Inplace1089064
+Node: Extension Sample Ord1092281
+Node: Extension Sample Readdir1093117
+Ref: table-readdir-file-types1094006
+Node: Extension Sample Revout1094811
+Node: Extension Sample Rev2way1095400
+Node: Extension Sample Read write array1096140
+Node: Extension Sample Readfile1098082
+Node: Extension Sample Time1099177
+Node: Extension Sample API Tests1100525
+Node: gawkextlib1101017
+Node: Extension summary1103473
+Node: Extension Exercises1107175
+Node: Language History1108673
+Node: V7/SVR3.11110329
+Node: SVR41112481
+Node: POSIX1113915
+Node: BTL1115295
+Node: POSIX/GNU1116024
+Node: Feature History1121802
+Node: Common Extensions1137661
+Node: Ranges and Locales1138944
+Ref: Ranges and Locales-Footnote-11143560
+Ref: Ranges and Locales-Footnote-21143587
+Ref: Ranges and Locales-Footnote-31143822
+Node: Contributors1144043
+Node: History summary1149988
+Node: Installation1151368
+Node: Gawk Distribution1152312
+Node: Getting1152796
+Node: Extracting1153759
+Node: Distribution contents1155397
+Node: Unix Installation1161877
+Node: Quick Installation1162559
+Node: Shell Startup Files1164973
+Node: Additional Configuration Options1166062
+Node: Configuration Philosophy1168051
+Node: Non-Unix Installation1170420
+Node: PC Installation1170880
+Node: PC Binary Installation1171718
+Node: PC Compiling1172153
+Node: PC Using1173270
+Node: Cygwin1176315
+Node: MSYS1177085
+Node: VMS Installation1177586
+Node: VMS Compilation1178377
+Ref: VMS Compilation-Footnote-11179606
+Node: VMS Dynamic Extensions1179664
+Node: VMS Installation Details1181349
+Node: VMS Running1183602
+Node: VMS GNV1187881
+Node: VMS Old Gawk1188616
+Node: Bugs1189087
+Node: Bug address1189750
+Node: Usenet1192542
+Node: Maintainers1193319
+Node: Other Versions1194580
+Node: Installation summary1201375
+Node: Notes1202577
+Node: Compatibility Mode1203442
+Node: Additions1204224
+Node: Accessing The Source1205149
+Node: Adding Code1206586
+Node: New Ports1212805
+Node: Derived Files1217293
+Ref: Derived Files-Footnote-11222939
+Ref: Derived Files-Footnote-21222974
+Ref: Derived Files-Footnote-31223572
+Node: Future Extensions1223686
+Node: Implementation Limitations1224344
+Node: Extension Design1225527
+Node: Old Extension Problems1226681
+Ref: Old Extension Problems-Footnote-11228199
+Node: Extension New Mechanism Goals1228256
+Ref: Extension New Mechanism Goals-Footnote-11231620
+Node: Extension Other Design Decisions1231809
+Node: Extension Future Growth1233922
+Node: Old Extension Mechanism1234758
+Node: Notes summary1236521
+Node: Basic Concepts1237703
+Node: Basic High Level1238384
+Ref: figure-general-flow1238666
+Ref: figure-process-flow1239351
+Ref: Basic High Level-Footnote-11242652
+Node: Basic Data Typing1242837
+Node: Glossary1246165
+Node: Copying1278115
+Node: GNU Free Documentation License1315654
+Node: Index1340772

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index e689cb66..e1eea073 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -12959,6 +12959,11 @@ As of @value{PVERSION} 4.2, @command{gawk} continues to use locale
collating order for @code{<}, @code{<=}, @code{>}, and @code{>=} only
in POSIX mode.
+@ignore
+References: http://austingroupbugs.net/view.php?id=963
+and http://austingroupbugs.net/view.php?id=1070.
+@end ignore
+
@node Boolean Ops
@subsection Boolean Expressions
@cindex and Boolean-logic operator
@@ -22175,14 +22180,14 @@ in memory as a single string. A straightforward but naive way to
do that might be as follows:
@example
-function readfile(file, tmp, contents)
+function readfile1(file, tmp, contents)
@{
if ((getline tmp < file) < 0)
return
- contents = tmp
- while (getline tmp < file) > 0)
- contents = contents RT tmp
+ contents = tmp RT
+ while ((getline tmp < file) > 0)
+ contents = contents tmp RT
close(file)
return contents
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 2d7bcd69..cbc28419 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -12278,6 +12278,11 @@ As of @value{PVERSION} 4.2, @command{gawk} continues to use locale
collating order for @code{<}, @code{<=}, @code{>}, and @code{>=} only
in POSIX mode.
+@ignore
+References: http://austingroupbugs.net/view.php?id=963
+and http://austingroupbugs.net/view.php?id=1070.
+@end ignore
+
@node Boolean Ops
@subsection Boolean Expressions
@cindex and Boolean-logic operator
@@ -21219,14 +21224,14 @@ in memory as a single string. A straightforward but naive way to
do that might be as follows:
@example
-function readfile(file, tmp, contents)
+function readfile1(file, tmp, contents)
@{
if ((getline tmp < file) < 0)
return
- contents = tmp
- while (getline tmp < file) > 0)
- contents = contents RT tmp
+ contents = tmp RT
+ while ((getline tmp < file) > 0)
+ contents = contents tmp RT
close(file)
return contents