Switch from strstream to sstream.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 7a7c17092f)
pull/8/head
Michele Calgaro 6 years ago
parent cbc6165918
commit f3e216f001
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -1,7 +1,7 @@
#include <qpro/common.h>
#include <iostream>
#include <strstream>
#include <sstream>
#include <string.h>
@ -474,30 +474,26 @@ void
QpFormula::floatFuncReal(const char*)
{
TQP_INT64 lFloat;
std::ostrstream lNum;
std::ostringstream lNum;
cFormula >> lFloat;
lNum << lFloat << ends;
cStack.push( lNum.str() );
lNum.rdbuf()->freeze(0);
cStack.push( lNum.str().c_str() );
}
void
QpFormula::intFuncReal(const char*)
{
TQP_INT16 lInt;
std::ostrstream lNum;
std::ostringstream lNum;
cFormula >> lInt;
lNum << lInt << ends;
cStack.push( lNum.str() );
lNum.rdbuf()->freeze(0);
cStack.push( lNum.str().c_str() );
}
void

@ -10,7 +10,7 @@
// -----------------------------------------------------------------------
#include <iomanip>
#include <strstream>
#include <sstream>
void
Charout(ostream& pOut, unsigned char pChar)
@ -32,7 +32,7 @@ Hexout(ostream& pOut, unsigned char pChar)
int
Hexout(char* pChar, int pLen)
{
std::ostrstream* lOStr = new std::ostrstream;
std::ostringstream* lOStr = new std::ostringstream;
while( pLen )
{
@ -57,7 +57,7 @@ Hexout(char* pChar, int pLen)
cerr << lOStr->rdbuf() << endl;
delete lOStr;
lOStr = new std::ostrstream;
lOStr = new std::ostringstream;
}
delete lOStr;
@ -200,7 +200,7 @@ QpRecCell::cellRef(char* pText, QpTableNames& pTable, TQP_INT16 /*pNoteBook*/, T
{
//??? cope with relative/absolute references
std::strstream lOut(pText, 20, ios::out); // ??? ard coded len
std::stringstream lOut(pText, ios::out);
int lPageRelative = pRow & 0x8000;
int lColRelative = pRow & 0x4000;
int lRowRelative = pRow & 0x2000;

@ -32,7 +32,7 @@ QpIStream::~QpIStream()
#else
#include <string>
#include <fstream>
#include <strstream>
#include <sstream>
// For IRIX
namespace std {}
@ -61,7 +61,7 @@ QpIStream::QpIStream(unsigned char* pBuffer, unsigned int pLen)
, cOffset(0L)
, cStreamBuf(0)
{
cStreamBuf = new std::strstreambuf (pBuffer, pLen);
cStreamBuf = new std::stringbuf ((char*)(pBuffer)); //cIn will read into char anyway....
cIn = new istream(cStreamBuf);
}

@ -30,45 +30,4 @@
# define random_access_iterator_parent(itemtype) std::random_access_iterator<itemtype, int>
#endif
//
// Which C++ standard is in use?
//
#if defined( _MSC_VER )
# if _MSC_VER <= 1200
// MSVC++ 6.0
# define PYCXX_ISO_CPP_LIB 0
# define STR_STREAM <strstream>
# define TEMPLATE_TYPENAME class
# else
# define PYCXX_ISO_CPP_LIB 1
# define STR_STREAM <sstream>
# define TEMPLATE_TYPENAME typename
# endif
#elif defined( __GNUC__ )
# if __GNUC__ >= 3
# define PYCXX_ISO_CPP_LIB 1
# define STR_STREAM <sstream>
# define TEMPLATE_TYPENAME typename
# else
# define PYCXX_ISO_CPP_LIB 0
# define STR_STREAM <strstream>
# define TEMPLATE_TYPENAME class
# endif
#endif
#if PYCXX_ISO_CPP_LIB
# define STR_STREAM <sstream>
# define OSTRSTREAM ostringstream
# define EXPLICIT_TYPENAME typename
# define EXPLICIT_CLASS class
# define TEMPLATE_TYPENAME typename
#else
# define STR_STREAM <strstream>
# define OSTRSTREAM ostrstream
# define EXPLICIT_TYPENAME
# define EXPLICIT_CLASS
# define TEMPLATE_TYPENAME class
#endif
#endif // __PyCXX_config_hh__

@ -158,7 +158,7 @@ namespace Py
extern "C" void do_not_dealloc( void * );
template<TEMPLATE_TYPENAME T>
template<typename T>
class ExtensionModule : public ExtensionModuleBase
{
public:
@ -213,7 +213,7 @@ namespace Py
// so that we get called back at the function in T.
//
method_map_t &mm = methods();
EXPLICIT_TYPENAME method_map_t::iterator i;
typename method_map_t::iterator i;
for( i=mm.begin(); i != mm.end(); ++i )
{
@ -434,7 +434,7 @@ namespace Py
static PyObject *method_call_handler( PyObject *self, PyObject *args );
};
template<TEMPLATE_TYPENAME T>
template<typename T>
class PythonExtension: public PythonExtensionBase
{
public:
@ -548,7 +548,7 @@ namespace Py
{
List methods;
for( EXPLICIT_TYPENAME method_map_t::iterator i = mm.begin(); i != mm.end(); ++i )
for( typename method_map_t::iterator i = mm.begin(); i != mm.end(); ++i )
methods.append( String( (*i).first ) );
return methods;
@ -701,7 +701,7 @@ namespace Py
//
// ExtensionObject<T> is an Object that will accept only T's.
//
template<TEMPLATE_TYPENAME T>
template<typename T>
class ExtensionObject: public Object
{
public:

@ -17,7 +17,7 @@
#include <iostream>
#include STR_STREAM
#include <sstream>
#include <string>
#include <iterator>
#include <utility>
@ -30,10 +30,10 @@ namespace Py
// Forward declarations
class Object;
class Type;
template<TEMPLATE_TYPENAME T> class SeqBase;
template<typename T> class SeqBase;
class String;
class List;
template<TEMPLATE_TYPENAME T> class MapBase;
template<typename T> class MapBase;
// new_reference_to also overloaded below on Object
inline PyObject* new_reference_to(PyObject* p)
@ -837,7 +837,7 @@ namespace Py
// Changing them to Object(x[i]) helps the compiler to understand that the
// conversion of a seqref to an Object is wanted.
template<TEMPLATE_TYPENAME T>
template<typename T>
class seqref
{
protected:
@ -1027,7 +1027,7 @@ namespace Py
// class SeqBase<T>
// ...the base class for all sequence types
template<TEMPLATE_TYPENAME T>
template<typename T>
class SeqBase: public Object
{
public:
@ -1289,7 +1289,7 @@ namespace Py
std::string diagnose() const
{
std::OSTRSTREAM oss;
std::ostringstream oss;
oss << "iterator diagnosis " << seq << ", " << count << std::ends;
return std::string(oss.str());
}
@ -1436,19 +1436,19 @@ namespace Py
// Here's an important typedef you might miss if reading too fast...
typedef SeqBase<Object> Sequence;
template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator< (const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator> (const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator<=(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator>=(const EXPLICIT_TYPENAME SeqBase<T>::iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::iterator& right);
template <typename T> bool operator==(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
template <typename T> bool operator!=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
template <typename T> bool operator< (const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
template <typename T> bool operator> (const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
template <typename T> bool operator<=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
template <typename T> bool operator>=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right);
template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right);
template <TEMPLATE_TYPENAME T> bool operator< (const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right);
template <TEMPLATE_TYPENAME T> bool operator> (const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right);
template <TEMPLATE_TYPENAME T> bool operator<=(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right);
template <TEMPLATE_TYPENAME T> bool operator>=(const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& left, const EXPLICIT_TYPENAME SeqBase<T>::const_iterator& right);
template <typename T> bool operator==(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
template <typename T> bool operator!=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
template <typename T> bool operator< (const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
template <typename T> bool operator> (const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
template <typename T> bool operator<=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
template <typename T> bool operator>=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
extern bool operator==(const Sequence::iterator& left, const Sequence::iterator& right);
@ -1916,7 +1916,7 @@ namespace Py
// Mappings
// ==================================================
template<TEMPLATE_TYPENAME T>
template<typename T>
class mapref
{
protected:
@ -2085,7 +2085,7 @@ namespace Py
return true; // not completed.
}
template<TEMPLATE_TYPENAME T>
template<typename T>
class MapBase: public Object
{
protected:
@ -2372,7 +2372,7 @@ namespace Py
std::string diagnose() const
{
std::OSTRSTREAM oss;
std::ostringstream oss;
oss << "iterator diagnosis " << map << ", " << pos << std::ends;
return std::string(oss.str());
}
@ -2477,10 +2477,10 @@ namespace Py
typedef MapBase<Object> Mapping;
template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME MapBase<T>::iterator& left, const EXPLICIT_TYPENAME MapBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME MapBase<T>::iterator& left, const EXPLICIT_TYPENAME MapBase<T>::iterator& right);
template <TEMPLATE_TYPENAME T> bool operator==(const EXPLICIT_TYPENAME MapBase<T>::const_iterator& left, const EXPLICIT_TYPENAME MapBase<T>::const_iterator& right);
template <TEMPLATE_TYPENAME T> bool operator!=(const EXPLICIT_TYPENAME MapBase<T>::const_iterator& left, const EXPLICIT_TYPENAME MapBase<T>::const_iterator& right);
template <typename T> bool operator==(const typename MapBase<T>::iterator& left, const typename MapBase<T>::iterator& right);
template <typename T> bool operator!=(const typename MapBase<T>::iterator& left, const typename MapBase<T>::iterator& right);
template <typename T> bool operator==(const typename MapBase<T>::const_iterator& left, const typename MapBase<T>::const_iterator& right);
template <typename T> bool operator!=(const typename MapBase<T>::const_iterator& left, const typename MapBase<T>::const_iterator& right);
extern bool operator==(const Mapping::iterator& left, const Mapping::iterator& right);
extern bool operator!=(const Mapping::iterator& left, const Mapping::iterator& right);
@ -2787,13 +2787,13 @@ namespace Py
template<TEMPLATE_TYPENAME T>
template<typename T>
String seqref<T>::str () const
{
return the_item.str();
}
template<TEMPLATE_TYPENAME T>
template<typename T>
String seqref<T>::repr () const
{
return the_item.repr();

Loading…
Cancel
Save