X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5f709e6725d845e91094cbde15362c44df355ede..ea804aadf91c963d97a56e152d8372c9e689affe:/src/common/string.cpp?ds=inline diff --git a/src/common/string.cpp b/src/common/string.cpp index 291d8f90eb..db8db9a004 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -274,6 +274,7 @@ wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength) #else +#if wxUSE_WCHAR_T // from wide string wxString::wxString(const wchar_t *pwz) { @@ -289,6 +290,7 @@ wxString::wxString(const wchar_t *pwz) Init(); } } +#endif #endif @@ -495,12 +497,14 @@ wxString& wxString::operator=(const unsigned char* psz) return *this; } +#if wxUSE_WCHAR_T wxString& wxString::operator=(const wchar_t *pwz) { wxString str(pwz); *this = str; return *this; } +#endif #endif @@ -1164,7 +1168,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, wxConv_libc, max_width); + wxString s(val, wxConvLibc, max_width); #else size_t len = wxSTRING_MAXLEN; if (val) { @@ -1801,14 +1805,18 @@ void wxArrayString::DoSort() // MBConv // ============================================================================ +WXDLLEXPORT_DATA(wxMBConv *) wxConvCurrent = &wxConvLibc; +#if !wxUSE_WCHAR_T +WXDLLEXPORT_DATA(wxMBConv) wxConvLibc, wxConvFile; +#endif + #if wxUSE_WCHAR_T -WXDLLEXPORT_DATA(wxMBConv *) wxConv_current = &wxConv_libc; // ---------------------------------------------------------------------------- // standard libc conversion // ---------------------------------------------------------------------------- -WXDLLEXPORT_DATA(wxMBConv) wxConv_libc; +WXDLLEXPORT_DATA(wxMBConv) wxConvLibc; size_t wxMBConv::MB2WC(wchar_t *buf, const char *psz, size_t n) const { @@ -1841,7 +1849,7 @@ size_t wxMBConvFile::WC2MB(char *buf, const wchar_t *psz, size_t n) const // standard gdk conversion // ---------------------------------------------------------------------------- -#if defined(__WXGTK__) && (GTK_MINOR_VERSION > 0) +#ifdef __WXGTK12__ WXDLLEXPORT_DATA(wxMBConvGdk) wxConvGdk; #include @@ -1888,12 +1896,16 @@ static char utf7_setB[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ" #endif // TODO: write actual implementations of UTF-7 here -size_t wxMBConvUTF7::MB2WC(wchar_t *buf, const char *psz, size_t n) const +size_t wxMBConvUTF7::MB2WC(wchar_t * WXUNUSED(buf), + const char * WXUNUSED(psz), + size_t WXUNUSED(n)) const { return 0; } -size_t wxMBConvUTF7::WC2MB(char *buf, const wchar_t *psz, size_t n) const +size_t wxMBConvUTF7::WC2MB(char * WXUNUSED(buf), + const wchar_t * WXUNUSED(psz), + size_t WXUNUSED(n)) const { return 0; } @@ -2186,3 +2198,27 @@ size_t wxCSConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const } #endif//wxUSE_WCHAR_T + +#if wxUSE_WCHAR_T +const wxWCharBuffer wxMBConv::cMB2WC(const char *psz) const + { + if (psz) { + size_t nLen = MB2WC((wchar_t *) NULL, psz, 0); + wxWCharBuffer buf(nLen); + MB2WC(WCSTRINGCAST buf, psz, nLen); + return buf; + } else return wxWCharBuffer((wchar_t *) NULL); + } + +const wxCharBuffer wxMBConv::cWC2MB(const wchar_t *psz) const + { + if (psz) { + size_t nLen = WC2MB((char *) NULL, psz, 0); + wxCharBuffer buf(nLen); + WC2MB(MBSTRINGCAST buf, psz, nLen); + return buf; + } else return wxCharBuffer((char *) NULL); + } + +#endif//wxUSE_WCHAR_T +