xref: /illumos-gate/usr/src/test/util-tests/tests/awk/gnu/redfilnm.awk (revision f52943a93040563107b95bccb9db87d9971ef47d)
1#Date: Tue, 18 May 1999 12:48:07 -0500 (CDT)
2#From: Darrel Hankerson <hankedr@dms.auburn.edu>
3#To: arnold@gnu.org
4#Subject: [christopher.procter@bt.com: RE: Getline bug in Gawk 3.0.3]
5#
6#Here's a reply that came directly to me.  --darrel
7#
8#
9#From: christopher.procter@bt.com
10#To: hankedr@dms.auburn.edu
11#Subject: RE: Getline bug in Gawk 3.0.3
12#Date: Tue, 18 May 1999 18:42:28 +0100
13#
14#Sorry that was me getting carried away and cut and pasting the wrong thing
15#into my email
16#
17#The real problem seems to be that :
18#BEGIN {
19#for (i=1;i<10;i++){
20#	while((getline < "hello.txt")>0){
21# 		print $0
22#		}
23# 	close("hello.txt")
24#	}
25#}
26#works (printing the contents of hello.txt 9 times), where as:-
27#
28#END{
29#for (i=1;i<10;i++){
30#	while((getline < "hello.txt")>0){
31# 		print $0
32#		}
33# 	close("hello.txt")
34#	}
35#}
36#
37#doesn't, (it prints out hello.txt once followed by the iteration numbers
38#from 1 to 9).
39#The only difference is that one is in the BEGIN block and one in the END
40#block.
41#
42#Sorry about the first post, I'm not a bad awk programmer, just a tired one
43#:)
44#
45#chris
46#
47#> -----Original Message-----
48#> From:	Darrel Hankerson [SMTP:hankedr@dms.auburn.edu]
49#> Sent:	18 May 1999 18:28
50#> To:	christopher.procter@bt.com
51#> Subject:	Re: Getline bug in Gawk 3.0.3
52#>
53#> Could you clarify?  Your first script uses an apparently undefined
54#> variable f.
55#>
56#>
57#> christopher.procter@bt.com writes:
58#>
59#>    BEGIN {
60#>    for (i=1;i<10;i++){
61#>    while((getline < "hello.txt")>0){
62#>      print $0
63#>    }
64#>      close(f)
65#>    }
66#>    }
67#>
68#>    refuses to close the file and so prints the contents of hello.txt just
69#> once.
70#>    However:-
71#>
72#>    BEGIN {
73#>    f="hello.txt"
74#>    for (i=1;i<10;i++){
75#>    while((getline < f)>0){
76#>      print $0
77#>    }
78#>      close(f)
79#>    }
80#>    }
81#>
82#>    works as advertised (printing the contents of hello.txt 9 times)
83#>    It seems like a bug in the close statement.
84#>
85#> --
86#> --Darrel Hankerson hankedr@mail.auburn.edu
87#
88
89# srcdir is assigned on command line --- ADR
90END {
91	f = "redfilnm.in"
92	for (i = 1; i < 10; i++){
93		while((getline < f) > 0){
94 			print $0
95		}
96 		close(f)
97	}
98}
99