X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..f9007c324c9b4f6288156dcf0b865090ee0c0c38:/src/common/strconv.cpp?ds=inline diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index 59fdd4af98..bbd8ce8369 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -6,7 +6,7 @@ // Created: 29/01/98 // RCS-ID: $Id$ // Copyright: (c) 1999 Ove Kaaven, Robert Roebling, Vadim Zeitlin, Vaclav Slavik -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -58,7 +58,8 @@ WXDLLEXPORT_DATA(wxMBConv) wxConvLibc, wxConvFile, wxConvISO8859_1, - wxConvLocal; + wxConvLocal, + wxConvUTF8; #endif // wxUSE_WCHAR_T WXDLLEXPORT_DATA(wxMBConv *) wxConvCurrent = &wxConvLibc; @@ -456,7 +457,7 @@ size_t wxMBConvUTF8::WC2MB(char *buf, const wchar_t *psz, size_t n) const } if (buf && (len<n)) *buf = 0; - + return len; } @@ -678,7 +679,7 @@ size_t IC_CharSet::MB2WC(wchar_t *buf, const char *psz, size_t n) // convert to native endianness WC_BSWAP(buf /* _not_ bufPtr */, res) } - + // NB: iconv was given only strlen(psz) characters on input, and so // it couldn't convert the trailing zero. Let's do it ourselves // if there's some room left for it in the output buffer. @@ -739,7 +740,7 @@ size_t IC_CharSet::WC2MB(char *buf, const wchar_t *psz, size_t n) cres = iconv( w2m, ICONV_CHAR_CAST(&psz), &inbuf, &buf, &outbuf ); res = n-outbuf; - + // NB: iconv was given only wcslen(psz) characters on input, and so // it couldn't convert the trailing zero. Let's do it ourselves // if there's some room left for it in the output buffer. @@ -782,13 +783,7 @@ size_t IC_CharSet::WC2MB(char *buf, const wchar_t *psz, size_t n) // Win32 conversion classes // ============================================================================ -#if defined(__WIN32__) && !defined(__WXMICROWIN__) - -#ifdef __WXWINE__ - #define WINE_CAST (WCHAR *) -#else - #define WINE_CAST -#endif +#if defined(__WIN32__) && !defined(__WXMICROWIN__) && !defined(__WXUNIVERSAL__) extern long wxCharsetToCodepage(const wxChar *charset); // from utils.cpp @@ -809,7 +804,7 @@ public: 0, // flags (none) psz, // input string -1, // its length (NUL-terminated) - WINE_CAST buf, // output string + buf, // output string buf ? n : 0 // size of output buffer ); @@ -824,7 +819,7 @@ public: ( m_CodePage, // code page 0, // flags (none) - WINE_CAST psz, // input string + psz, // input string -1, // it is (wide) NUL-terminated buf, // output buffer buf ? n : 0, // and its size @@ -842,7 +837,7 @@ public: public: long m_CodePage; }; -#endif // __WIN32__ +#endif // defined(__WIN32__) && !defined(__WXMICROWIN__) && !defined(__WXUNIVERSAL__) // ============================================================================ // wxEncodingConverter based conversion classes @@ -942,14 +937,14 @@ static wxCharacterSet *wxGetCharacterSet(const wxChar *name) cset = NULL; } -#if defined(__WIN32__) && !defined(__WXMICROWIN__) +#if defined(__WIN32__) && !defined(__WXMICROWIN__) && !defined(__WXUNIVERSAL__) cset = new CP_CharSet(name); if ( cset->usable() ) return cset; delete cset; cset = NULL; -#endif // __WIN32__ +#endif // defined(__WIN32__) && !defined(__WXMICROWIN__) && !defined(__WXUNIVERSAL__) #if wxUSE_FONTMAP cset = new EC_CharSet(name); @@ -1018,8 +1013,11 @@ void wxCSConv::SetName(const wxChar *charset) void wxCSConv::LoadNow() { - if (m_deferred) + if ( m_deferred ) { + // it would probably be better to make GetSystemEncodingName() always + // available (i.e. even when wxUSE_INTL == 0)? +#if wxUSE_INTL if ( !m_name ) { wxString name = wxLocale::GetSystemEncodingName(); @@ -1028,6 +1026,7 @@ void wxCSConv::LoadNow() SetName(name); } } +#endif // wxUSE_INTL // wxGetCharacterSet() complains about NULL name m_cset = m_name ? wxGetCharacterSet(m_name) : NULL;