Merge pull request #1343 from mefyl/develop
Set eofbit on exhausted input stream.
This commit is contained in:
commit
35829928da
3 changed files with 27 additions and 6 deletions
|
@ -60,8 +60,8 @@ class input_stream_adapter : public input_adapter_protocol
|
|||
~input_stream_adapter() override
|
||||
{
|
||||
// clear stream flags; we use underlying streambuf I/O, do not
|
||||
// maintain ifstream flags
|
||||
is.clear();
|
||||
// maintain ifstream flags, except eof
|
||||
is.clear(is.rdstate() & std::ios::eofbit);
|
||||
}
|
||||
|
||||
explicit input_stream_adapter(std::istream& i)
|
||||
|
@ -79,7 +79,11 @@ class input_stream_adapter : public input_adapter_protocol
|
|||
// end up as the same value, eg. 0xFFFFFFFF.
|
||||
std::char_traits<char>::int_type get_character() override
|
||||
{
|
||||
return sb.sbumpc();
|
||||
auto res = sb.sbumpc();
|
||||
// set eof manually, as we don't use the istream interface.
|
||||
if (res == EOF)
|
||||
is.clear(is.rdstate() | std::ios::eofbit);
|
||||
return res;
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue