wxChar dummy;
} g_strEmpty = { {-1, 0, 0}, wxT('\0') };
+#if defined(__VISAGECPP__) && __IBMCPP__ >= 400
+// must define this static for VA or else you get multiply defined symbols everywhere
+const unsigned int wxSTRING_MAXLEN = UINT_MAX - 100;
+
+#endif
+
// empty C style string: points to 'string data' byte of g_strEmpty
extern const wxChar WXDLLEXPORT *wxEmptyString = &g_strEmpty.dummy;
{
Init();
- wxASSERT( nPos <= wxStrlen(psz) );
-
if ( nLength == wxSTRING_MAXLEN )
nLength = wxStrlen(psz + nPos);
+ wxASSERT_MSG( nPos + nLength <= wxStrlen(psz), _T("index out of bounds") );
+
STATISTICS_ADD(InitialLength, nLength);
if ( nLength > 0 ) {
GetStringData()->Validate(TRUE);
}
+void wxString::UngetWriteBuf(size_t nLen)
+{
+ GetStringData()->nDataLength = nLen;
+ GetStringData()->Validate(TRUE);
+}
+
// ---------------------------------------------------------------------------
// data access
// ---------------------------------------------------------------------------
const wxChar *start = c_str() + nStart;
const wxChar *firstOf = wxStrpbrk(start, sz);
if ( firstOf )
- return firstOf - start;
+ return firstOf - c_str();
else
return npos;
}