[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [bug] for l in io.lines( f, "*a" ) do … loops forever (was: Re: [proposal] close file on io.lines("filename", "*a")())
- From: Roberto Ierusalimschy <roberto@...>
- Date: Tue, 30 Jul 2019 14:20:43 -0300
> When experimenting with this, I actually noticed a bug:
>
> The manual says:
>
> >When the iterator function detects the end of file, it returns no
> >values (to finish the loop) and automatically closes the file.
> but actually
>
> for l in io.lines( "foo.txt", "*a" ) do print( l ) end
>
> [...]
>
> will loop forever (tested in 5.3 and 5.4(git)).
We should fix the manual, not the implementation. The manual is clear
that the iterator function works like file:read, and file:read never
fails (returns nil) with the "*a" format.
Thanks for the report.
-- Roberto