From 96172669053bbba7263a370f109f70615049a0c6 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Mon, 14 May 2012 21:37:36 -0600 Subject: Improved detection of iostream's eof() condition --- src/token.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/token.cc') diff --git a/src/token.cc b/src/token.cc index afe48b08..1392c29f 100644 --- a/src/token.cc +++ b/src/token.cc @@ -148,7 +148,7 @@ void expr_t::token_t::next(std::istream& in, const parse_flags_t& pflags) char c = peek_next_nonws(in); - if (in.eof()) { + if (in.eof() || c == -1) { kind = TOK_EOF; return; } @@ -426,6 +426,8 @@ void expr_t::token_t::next(std::istream& in, const parse_flags_t& pflags) expected('\0', c); parse_ident(in); + } else { + throw_(parse_error, _("Unexpected EOF")); } if (! value.is_string() || value.as_string().empty()) { -- cgit v1.2.3