[PPL-devel] [GIT] ppl/ppl(master): Fixed stream state on checked input.

Abramo Bagnara abramo.bagnara at gmail.com
Thu Feb 10 16:47:26 CET 2011


Module: ppl/ppl
Branch: master
Commit: d0f6bd037c90676130e9547e5ed909cf6ba8eee9
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=d0f6bd037c90676130e9547e5ed909cf6ba8eee9

Author: Abramo Bagnara <abramo.bagnara at gmail.com>
Date:   Thu Feb 10 16:47:22 2011 +0100

Fixed stream state on checked input.

---

 src/checked.cc |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/checked.cc b/src/checked.cc
index 34c84c2..e428109 100644
--- a/src/checked.cc
+++ b/src/checked.cc
@@ -337,6 +337,11 @@ input_mpq(mpq_class& to, std::istream& is) {
   number_struct num_struct;
   number_struct den_struct;
   Result r = parse_number(is, num_struct, den_struct);
+  if (r == V_CVT_STR_UNK) {
+    is.setstate(is.failbit);
+    return r;
+  }
+  is.clear(is.rdstate() & ~is.failbit);
   if (r != V_EQ)
     return r;
   if (den_struct.base && den_struct.mantissa.empty())




More information about the PPL-devel mailing list