return SubstrBufFromMB("", 0);
// and then to UTF-8:
- SubstrBufFromMB buf(ConvertStr(wcBuf, wcLen, wxConvUTF8));
+ SubstrBufFromMB buf(ConvertStr(wcBuf, wcLen, wxMBConvUTF8()));
// widechar -> UTF-8 conversion isn't supposed to ever fail:
wxASSERT_MSG( buf.data, _T("conversion to UTF-8 failed") );
const wxWCharBuffer wxString::wc_str() const
{
- return wxConvUTF8.cMB2WC(m_impl.c_str(),
- m_impl.length() + 1 /* size, not length */,
- NULL);
+ return wxMBConvUTF8().cMB2WC(m_impl.c_str(),
+ m_impl.length() + 1 /* size, not length */,
+ NULL);
}
const wxCharBuffer wxString::mb_str(const wxMBConv& conv) const
size_t wcLen;
wxWCharBuffer wcBuf(
- wxConvUTF8.cMB2WC(m_impl.c_str(),
- m_impl.length() + 1 /* size, not length */,
- &wcLen));
+ wxMBConvUTF8().cMB2WC(m_impl.c_str(),
+ m_impl.length() + 1 /* size, not length */,
+ &wcLen));
if ( !wcLen )
return wxCharBuffer("");
// check that the string starts with prefix and return the rest of the string
// in the provided pointer if it is not NULL, otherwise return false
-bool wxString::StartsWith(const wxChar *prefix, wxString *rest) const
+bool wxString::StartsWith(const wxString& prefix, wxString *rest) const
{
- wxASSERT_MSG( prefix, _T("invalid parameter in wxString::StartsWith") );
-
- // first check if the beginning of the string matches the prefix: note
- // that we don't have to check that we don't run out of this string as
- // when we reach the terminating NUL, either prefix string ends too (and
- // then it's ok) or we break out of the loop because there is no match
- const wxChar *p = c_str();
- while ( *prefix )
- {
- if ( *prefix++ != *p++ )
- {
- // no match
- return false;
- }
- }
+ if ( compare(0, prefix.length(), prefix) != 0 )
+ return false;
if ( rest )
{
// put the rest of the string into provided pointer
- *rest = p;
+ rest->assign(*this, prefix.length(), npos);
}
return true;
// check that the string ends with suffix and return the rest of it in the
// provided pointer if it is not NULL, otherwise return false
-bool wxString::EndsWith(const wxChar *suffix, wxString *rest) const
+bool wxString::EndsWith(const wxString& suffix, wxString *rest) const
{
- wxASSERT_MSG( suffix, _T("invalid parameter in wxString::EndssWith") );
-
- int start = length() - wxStrlen(suffix);
+ int start = length() - suffix.length();
if ( start < 0 || compare(start, npos, suffix) != 0 )
return false;
int wxString::PrintfV(const wxString& format, va_list argptr)
{
- va_list argcopy;
- wxVaCopy(argcopy, argptr);
-
#if wxUSE_UNICODE_UTF8
#if wxUSE_STL_BASED_WXSTRING
typedef wxStringTypeBuffer<char> Utf8Buffer;
#endif
#if wxUSE_UTF8_LOCALE_ONLY
- return DoStringPrintfV<Utf8Buffer>(*this, format, argcopy);
+ return DoStringPrintfV<Utf8Buffer>(*this, format, argptr);
#else
#if wxUSE_UNICODE_UTF8
if ( wxLocaleIsUtf8 )
- return DoStringPrintfV<Utf8Buffer>(*this, format, argcopy);
+ return DoStringPrintfV<Utf8Buffer>(*this, format, argptr);
else
// wxChar* version
- return DoStringPrintfV<wxStringBuffer>(*this, format, argcopy);
+ return DoStringPrintfV<wxStringBuffer>(*this, format, argptr);
#else
- return DoStringPrintfV(*this, format, argcopy);
+ return DoStringPrintfV(*this, format, argptr);
#endif // UTF8/WCHAR
#endif
}