Author: wyoung
Date: Fri Jun 22 22:01:57 2007
New Revision: 1593

URL: http://svn.gna.org/viewcvs/mysqlpp?rev=1593&view=rev
Log:
Fix to previous checkin for manip module: can't insert ColData instance
directly into stream because that results in an infinite loop due to
auto-quoting logic.  Have to use in.c_str() to break the cycle.

Modified:
    trunk/lib/manip.cpp

Modified: trunk/lib/manip.cpp
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/lib/manip.cpp?rev=1593&r1=1592&r2=1593&view=diff
==============================================================================
--- trunk/lib/manip.cpp (original)
+++ trunk/lib/manip.cpp Fri Jun 22 22:01:57 2007
@@ -75,7 +75,7 @@
        }
        else {
                in.processed = true;
-               return *p.qparms << in;
+               return *p.qparms << in.c_str();
        }
 }
 
@@ -130,10 +130,10 @@
                delete[] s;
        }
        else if (in.quote_q()) {
-               *o.ostr << '\'' << in << '\'';
-       }
-       else {
-               *o.ostr << in;
+               *o.ostr << '\'' << in.c_str() << '\'';
+       }
+       else {
+               *o.ostr << in.c_str();
        }
        return *o.ostr;
 }
@@ -177,7 +177,7 @@
 {
        if (dont_quote_auto || (o.rdbuf() == cout.rdbuf()) ||
                        (o.rdbuf() == cerr.rdbuf())) {
-               return o << in;
+               return o << in.c_str();
        }
 
        if (in.escape_q()) {
@@ -191,10 +191,10 @@
                delete[] s;
        }
        else if (in.quote_q()) {
-               o << '\'' << in << '\'';
-       }
-       else {
-               o << in;
+               o << '\'' << in.c_str() << '\'';
+       }
+       else {
+               o << in.c_str();
        }
        return o;
 }
@@ -211,7 +211,7 @@
 {
        if (dont_quote_auto || (o.rdbuf() == cout.rdbuf()) ||
                        (o.rdbuf() == cerr.rdbuf())) {
-               return o << in;
+               return o << in.c_str();
        }
 
        if (in.escape_q()) {
@@ -224,10 +224,10 @@
                delete[] s;
        }
        else if (in.quote_q()) {
-               o << '\'' << in << '\'';
-       }
-       else {
-               o << in;
+               o << '\'' << in.c_str() << '\'';
+       }
+       else {
+               o << in.c_str();
        }
        return o;
 }
@@ -242,7 +242,7 @@
 Query& operator <<(Query& o, const ColData_Tmpl<string>& in)
 {
        if (dont_quote_auto) {
-               o << in;
+               o << in.c_str();
                return o;
        }
        if (in.escape_q()) {
@@ -256,10 +256,10 @@
                delete[] s;
        }
        else if (in.quote_q()) {
-               static_cast<ostream&>(o) << '\'' << in << '\'';
-       }
-       else {
-               static_cast<ostream&>(o) << in;
+               static_cast<ostream&>(o) << '\'' << in.c_str() << '\'';
+       }
+       else {
+               static_cast<ostream&>(o) << in.c_str();
        }
        return o;
 }
@@ -274,7 +274,7 @@
 Query& operator <<(Query& o, const ColData_Tmpl<const_string>& in)
 {
        if (dont_quote_auto) {
-               o << in;
+               o << in.c_str();
                return o;
        }
        if (in.escape_q()) {
@@ -287,10 +287,10 @@
                delete[] s;
        }
        else if (in.quote_q()) {
-               static_cast<ostream&>(o) << '\'' << in << '\'';
-       }
-       else {
-               static_cast<ostream&>(o) << in;
+               static_cast<ostream&>(o) << '\'' << in.c_str() << '\'';
+       }
+       else {
+               static_cast<ostream&>(o) << in.c_str();
        }
        return o;
 }
@@ -313,7 +313,7 @@
        }
        else {
                in.processed = true;
-               return *p.qparms << in;
+               return *p.qparms << in.c_str();
        }
 }
 
@@ -327,10 +327,10 @@
 ostream& operator <<(quote_only_type1 o, const ColData_Tmpl<string>& in)
 {
        if (in.quote_q()) {
-               *o.ostr << '\'' << in << '\'';
-       }
-       else {
-               *o.ostr << in;
+               *o.ostr << '\'' << in.c_str() << '\'';
+       }
+       else {
+               *o.ostr << in.c_str();
        }
        return *o.ostr;
 }
@@ -346,10 +346,10 @@
                const ColData_Tmpl<const_string>& in)
 {
        if (in.quote_q()) {
-               *o.ostr << '\'' << in << '\'';
-       }
-       else {
-               *o.ostr << in;
+               *o.ostr << '\'' << in.c_str() << '\'';
+       }
+       else {
+               *o.ostr << in.c_str();
        }
        return *o.ostr;
 }
@@ -372,7 +372,7 @@
        }
        else {
                in.processed = true;
-               return *p.qparms << in;
+               return *p.qparms << in.c_str();
        }
 }
 
@@ -387,10 +387,10 @@
                const ColData_Tmpl<string>& in)
 {
        if (in.quote_q()) {
-               *o.ostr << '\'' << in << '\'';
-       }
-       else {
-               *o.ostr << in;
+               *o.ostr << '\'' << in.c_str() << '\'';
+       }
+       else {
+               *o.ostr << in.c_str();
        }
        return *o.ostr;
 }
@@ -407,10 +407,10 @@
                const ColData_Tmpl<const_string>& in)
 {
        if (in.quote_q()) {
-               *o.ostr << '\'' << in << '\'';
-       }
-       else {
-               *o.ostr << in;
+               *o.ostr << '\'' << in.c_str() << '\'';
+       }
+       else {
+               *o.ostr << in.c_str();
        }
        return *o.ostr;
 }
@@ -430,7 +430,7 @@
        }
        else {
                in.processed = true;
-               return *p.qparms << in;
+               return *p.qparms << in.c_str();
        }
 }
 
@@ -484,7 +484,7 @@
                delete[] s;
        }
        else {
-               *o.ostr << in;
+               *o.ostr << in.c_str();
        }
        return *o.ostr;
 }
@@ -523,7 +523,7 @@
 SQLQueryParms& operator <<(do_nothing_type2 p, SQLString& in)
 {
        in.processed = true;
-       return *p.qparms << in;
+       return *p.qparms << in.c_str();
 }
 
 
@@ -532,7 +532,7 @@
 
 SQLQueryParms& operator <<(ignore_type2 p, SQLString& in)
 {
-       return *p.qparms << in;
+       return *p.qparms << in.c_str();
 }
 
 } // end namespace mysqlpp


_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits

Reply via email to