X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2bb67b808b1c375b8ebea4688d44bcbe2d4976d3..d9a56bdeaf27254ad19694a0c0c277385f0613c0:/src/common/string.cpp diff --git a/src/common/string.cpp b/src/common/string.cpp index fd1959bdce..3a74e24991 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -35,6 +35,9 @@ #include "wx/defs.h" #include "wx/string.h" #include "wx/intl.h" +#if wxUSE_THREADS + #include +#endif #endif #include @@ -250,7 +253,7 @@ wxString::wxString(const void *pStart, const void *pEnd) #if wxUSE_UNICODE // from multibyte string -wxString::wxString(const char *psz, wxMBConvv& conv, size_t nLength) +wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength) { // first get necessary size @@ -291,26 +294,6 @@ wxString::wxString(const wchar_t *pwz) #endif -// --------------------------------------------------------------------------- -// multibyte<->Unicode conversion -// --------------------------------------------------------------------------- - -#if wxUSE_UNICODE -const wxCharBuffer& mb_str(wxMBConv& conv) const -{ - size_t nLen = conv.WC2MB((char *) NULL, m_pchData, 0); - wxCharBuffer buf(nLen); - conv.WC2MB(buf, m_pchData, nLen); -} -#else -const wxWCharBuffer& wc_str(wxMBConv& conv) const -{ - size_t nLen = conv.MB2WC((wchar_t *) NULL, m_pchData, 0); - wxCharBuffer buf(nLen); - conv.MB2WC(buf, m_pchData, nLen); -} -#endif - // --------------------------------------------------------------------------- // memory allocation // --------------------------------------------------------------------------- @@ -1183,7 +1166,7 @@ int wxString::PrintfV(const wxChar* pszFormat, va_list argptr) char *val = va_arg(argptr, char *); #if wxUSE_UNICODE // ASCII->Unicode constructor handles max_width right - wxString s(val, max_width); + wxString s(val, wxConv_libc, max_width); #else size_t len = wxSTRING_MAXLEN; if (val) { @@ -1684,7 +1667,7 @@ void wxArrayString::Insert(const wxString& str, size_t nIndex) { wxASSERT( str.GetStringData()->IsValid() ); - wxCHECK_RET( nIndex <= m_nCount, ("bad index in wxArrayString::Insert") ); + wxCHECK_RET( nIndex <= m_nCount, _("bad index in wxArrayString::Insert") ); Grow(); @@ -1728,8 +1711,6 @@ void wxArrayString::Remove(const wxChar *sz) // we can only sort one array at a time with the quick-sort based // implementation #if wxUSE_THREADS - #include - // need a critical section to protect access to gs_compareFunction and // gs_sortAscending variables static wxCriticalSection *gs_critsectStringSort = NULL; @@ -1813,12 +1794,12 @@ WXDLLEXPORT_DATA(wxMBConv) wxConv_libc; // standard libc conversion // ---------------------------------------------------------------------------- -size_t wxMBConv::MB2WC(wchar_t *buf, const char *psz, size_t n) +size_t wxMBConv::MB2WC(wchar_t *buf, const char *psz, size_t n) const { return wxMB2WC(buf, psz, n); } -size_t wxMBConv::WC2MB(char *buf, const wchar_t *psz, size_t n) +size_t wxMBConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const { return wxWC2MB(buf, psz, n); } @@ -1829,19 +1810,21 @@ size_t wxMBConv::WC2MB(char *buf, const wchar_t *psz, size_t n) class wxMBConv_UTF7 { - virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n); - virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n); -} +public: + virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const; + virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const; +}; -WXDLLEXPORT_DATA(wxMBConv_UTF7) wxConv_UTF7; +// WXDLLEXPORT_DATA(wxMBConv_UTF7) wxConv_UTF7; +WXDLLEXPORT_DATA(wxMBConv) wxConv_UTF7; // TODO: write actual implementations of UTF-7 here -size_t wxMBConv_UTF7::MB2WC(wchar_t *buf, const char *psz, size_t n) +size_t wxMBConv_UTF7::MB2WC(wchar_t *buf, const char *psz, size_t n) const { return 0; } -size_t wxMBConv_UTF7::WC2MB(char *buf, const wchar_t *psz, size_t n) +size_t wxMBConv_UTF7::WC2MB(char *buf, const wchar_t *psz, size_t n) const { return 0; } @@ -1852,19 +1835,21 @@ size_t wxMBConv_UTF7::WC2MB(char *buf, const wchar_t *psz, size_t n) class wxMBConv_UTF8 { - virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n); - virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n); -} +public: + virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const; + virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const; +}; -WXDLLEXPORT_DATA(wxMBConv_UTF8) wxConv_UTF8; +// WXDLLEXPORT_DATA(wxMBConv_UTF8) wxConv_UTF8; +WXDLLEXPORT_DATA(wxMBConv) wxConv_UTF8; // TODO: write actual implementations of UTF-8 here -size_t wxMBConv_UTF8::MB2WC(wchar_t *buf, const char *psz, size_t n) +size_t wxMBConv_UTF8::MB2WC(wchar_t *buf, const char *psz, size_t n) const { return wxMB2WC(buf, psz, n); } -size_t wxMBConv_UTF8::WC2MB(char *buf, const wchar_t *psz, size_t n) +size_t wxMBConv_UTF8::WC2MB(char *buf, const wchar_t *psz, size_t n) const { return wxWC2MB(buf, psz, n); } @@ -1879,7 +1864,7 @@ wxCSConv::wxCSConv(const wxChar *charset) data = (wxChar *) NULL; } -size_t wxCSConv::MB2WC(wchar_t *buf, const char *psz, size_t n) +size_t wxCSConv::MB2WC(wchar_t *buf, const char *psz, size_t n) const { if (buf && !data) { // latin-1 (direct) @@ -1889,7 +1874,7 @@ size_t wxCSConv::MB2WC(wchar_t *buf, const char *psz, size_t n) return n; } -size_t wxCSConv::WC2MB(char *buf, const wchar_t *psz, size_t n) +size_t wxCSConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const { if (buf && !data) { // latin-1 (direct)