]> www.ginac.de Git - cln.git/blobdiff - src/integer/input/cl_I_read_stream.cc
Avoid input stream fail state when reading number at EOF.
[cln.git] / src / integer / input / cl_I_read_stream.cc
index 227d845be9e70ff3961079fee504fc67fc033be6..b242ae7210a450221edcb11323b932fcba121b61 100644 (file)
@@ -82,13 +82,10 @@ const cl_I read_integer (std::istream& stream, const cl_read_flags& flags)
                goto syntax1;
        loop {
                buffer.push(c);
-               c = stream.get();
-               if (stream.eof() || stream.fail())
-                       break;
-               if (!number_char_p(c)) {
-                       stream.putback(c);
+               c = stream.peek();  // Avoid fail state on EOF.
+               if (stream.eof() || stream.fail() || !number_char_p(c))
                        break;
-               }
+               c = stream.get();
        }
        // Parse the number.
        return read_integer(flags,