[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libcvd-members] gvars3/gvars3 serialize.h
From: |
Edward Rosten |
Subject: |
[libcvd-members] gvars3/gvars3 serialize.h |
Date: |
Thu, 04 Jun 2009 17:16:05 +0000 |
CVSROOT: /cvsroot/libcvd
Module name: gvars3
Changes by: Edward Rosten <edrosten> 09/06/04 17:16:04
Modified files:
gvars3 : serialize.h
Log message:
Fixes for deserialization.
Optional [] for vector (and therefore Vector).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gvars3/gvars3/serialize.h?cvsroot=libcvd&r1=1.14&r2=1.15
Patches:
Index: serialize.h
===================================================================
RCS file: /cvsroot/libcvd/gvars3/gvars3/serialize.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- serialize.h 27 May 2009 14:44:57 -0000 1.14
+++ serialize.h 4 Jun 2009 17:16:04 -0000 1.15
@@ -77,19 +77,24 @@
if((c = in.get()) == EOF)
return v;
+ bool bracket=1;
+
if(c != '[')
{
- in.setstate(ios::failbit);
- return v;
+ bracket = 0;
+ in.unget();
}
for(;;)
{
in >> ws;
+ if(in.eof())
+ return v;
+
c = in.get();
- if(c == EOF || c == ']')
+ if(c == EOF || (bracket && c == ']'))
return v;
in.unget();
@@ -126,7 +131,7 @@
int c;
if((c = in.get()) == EOF)
- return in;
+ return v;
if(c != '[')
{
@@ -207,6 +212,7 @@
if(i.fail() || i.bad() || (N != -1 &&
(int)v.size() != N) || v.size() == 0)
{
i.setstate(std::ios::failbit);
+ i.setstate(std::ios::badbit);
return
DefaultValue<TooN::Vector<N> >::val();
}
else
@@ -251,7 +257,7 @@
return FromStream<T>::from(i);
}
- template<class T> int from_string(std::string& s, T& t)
+ template<class T> int from_string(const std::string& s, T& t)
{
std::istringstream is(s);
t = from_stream<T>(is);
- [libcvd-members] gvars3/gvars3 serialize.h,
Edward Rosten <=