// ---------------------------------------------------------------------------
#ifdef wxSTD_STRING_COMPATIBILITY
- const size_t wxString::npos = STRING_MAXLEN;
+ const size_t wxString::npos = wxSTRING_MAXLEN;
#endif // wxSTD_STRING_COMPATIBILITY
// ----------------------------------------------------------------------------
// function: for Unix this is done with configure, for Windows we test the
// compiler explicitly.
#ifdef __WXMSW__
- #ifdef _MSC_VER
+ #ifdef __VISUALC__
#define wxVsprintf _vsnprintf
#endif
#else // !Windows
// always available), but it's unsafe because it doesn't check for buffer
// size - so give a warning
#define wxVsprintf(buffer,len,format,argptr) vsprintf(buffer,format, argptr)
-#ifndef __SC__
+#if defined(__VISUALC__)
#pragma message("Using sprintf() because no snprintf()-like function defined")
-#endif
-#endif
+#elif defined(__GNUG__)
+ #warning "Using sprintf() because no snprintf()-like function defined"
+#elif defined(__MWERKS__)
+ #warning "Using sprintf() because no snprintf()-like function defined"
+#elif defined(__SUNCC__)
+ // nothing -- I don't know about "#warning" for Sun's CC
+#else
+ // change this to some analogue of '#warning' for your compiler
+ #error "Using sprintf() because no snprintf()-like function defined"
+#endif //compiler
+
+#endif // no vsnprintf
// ----------------------------------------------------------------------------
// global functions
// iostream ones.
//
// ATTN: you can _not_ use both of these in the same program!
-#if wxUSE_IOSTREAMH
-#include <iostream.h>
-#define NAMESPACE
-#else
-#include <iostream>
-# ifdef _MSC_VER
- using namespace std;
-# endif
-// for msvc (bcc50+ also) you don't need these NAMESPACE defines,
-// using namespace std; takes care of that.
-#define NAMESPACE std::
-#endif
-
-#ifdef __WXMSW__
- #ifdef _MSC_VER
- #define wxVsprintf _vsnprintf
- #endif
-#else
- #if defined ( HAVE_VSNPRINTF )
- #define wxVsprintf vsnprintf
- #endif
-#endif
-
-#ifndef wxVsprintf
- // vsprintf() is ANSI so we can always use it, but it's unsafe!
- #define wxVsprintf(buffer,len,format,argptr) vsprintf(buffer,format, argptr)
- #pragma message("Using sprintf() because no snprintf()-like function defined")
-#endif
-NAMESPACE istream& operator>>(NAMESPACE istream& is, wxString& WXUNUSED(str))
+istream& operator>>(istream& is, wxString& WXUNUSED(str))
{
#if 0
int w = is.width(0);
if ( is.ipfx(0) ) {
- NAMESPACE streambuf *sb = is.rdbuf();
+ streambuf *sb = is.rdbuf();
str.erase();
while ( true ) {
int ch = sb->sbumpc ();
if ( ch == EOF ) {
- is.setstate(NAMESPACE ios::eofbit);
+ is.setstate(ios::eofbit);
break;
}
else if ( isspace(ch) ) {
is.isfx();
if ( str.length() == 0 )
- is.setstate(NAMESPACE ios::failbit);
+ is.setstate(ios::failbit);
#endif
return is;
}
wxASSERT( nPos <= Strlen(psz) );
- if ( nLength == STRING_MAXLEN )
+ if ( nLength == wxSTRING_MAXLEN )
nLength = Strlen(psz + nPos);
STATISTICS_ADD(InitialLength, nLength);
wxStringData *pData = GetStringData();
size_t nLen = pData->nDataLength;
- // default value of nCount is STRING_MAXLEN and means "till the end"
- if ( nCount == STRING_MAXLEN )
+ // default value of nCount is wxSTRING_MAXLEN and means "till the end"
+ if ( nCount == wxSTRING_MAXLEN )
{
nCount = nLen - nFirst;
}
// convert to lower case, return the copy of the string
wxString wxString::Lower() const { wxString s(*this); return s.MakeLower(); }
+int wxString::sprintf(const char *pszFormat, ...)
+ {
+ va_list argptr;
+ va_start(argptr, pszFormat);
+ int iLen = PrintfV(pszFormat, argptr);
+ va_end(argptr);
+ return iLen;
+ }
+
// ---------------------------------------------------------------------------
// standard C++ library string functions
// ---------------------------------------------------------------------------
}
// VC++ 1.5 can't cope with the default argument in the header.
-#if ! (defined(_MSC_VER) && !defined(__WIN32__))
+#if !defined(__VISUALC__) || defined(__WIN32__)
size_t wxString::find(const char* sz, size_t nStart, size_t n) const
{
return find(wxString(sz, n == npos ? 0 : n), nStart);
}
-#endif
+#endif // VC++ 1.5
// Gives a duplicate symbol (presumably a case-insensitivity problem)
#if !defined(__BORLANDC__)
}
// VC++ 1.5 can't cope with the default argument in the header.
-#if ! (defined(_MSC_VER) && !defined(__WIN32__))
+#if !defined(__VISUALC__) || defined(__WIN32__)
size_t wxString::rfind(const char* sz, size_t nStart, size_t n) const
{
return rfind(wxString(sz, n == npos ? 0 : n), nStart);
return p == NULL ? npos : p - c_str();
}
-#endif
+#endif // VC++ 1.5
wxString wxString::substr(size_t nStart, size_t nLen) const
{