[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: io.read("*n") doesn't read after number parsing error
- From: Dirk Laurie <dirk.laurie@...>
- Date: Sat, 28 Feb 2015 19:01:56 +0200
2015-02-28 18:37 GMT+02:00 Nagaev Boris <bnagaev@gmail.com>:
> if io.read("*n") returns nil (a string can't be converted into a
> number), then all subsequent calls to io.read("*n") return nil without
> reading the standard input.
>
> Example:
> $ lua5.2
> Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio
>> print(io.read('*n'))
> qwerty
> nil
>> print(io.read('*n'))
> nil
>>
>
> Is it a bug?
>
> Calling io.read() "repairs" io.read("*n"), i.e. the next call to
> io.read("*n") reads the standard input.
Since io.read("*n") is unsuccessful, the pointer in the buffer
has not advanced. Therefore the next io.read("*n") finds the
buffer in exactly the same state, and achieves the same
non-result.