libcvd-members
[Top][All Lists]
Advanced

[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, 28 May 2009 14:05:00 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    gvars3
Changes by:     Edward Rosten <edrosten>        09/05/28 14:05:00

Modified files:
        gvars3         : serialize.h 

Log message:
        Optional [] for serializing Vector or vector. Useful for vectors printed
        using cout in the normal way.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gvars3/gvars3/serialize.h?cvsroot=libcvd&r1=1.15&r2=1.16

Patches:
Index: serialize.h
===================================================================
RCS file: /cvsroot/libcvd/gvars3/gvars3/serialize.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- serialize.h 28 May 2009 13:18:36 -0000      1.15
+++ serialize.h 28 May 2009 14:05:00 -0000      1.16
@@ -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();
@@ -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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]