X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bde4baaced626df90e0312a3d94d024e41d7ab80..c1ef87c33d21f834a55f106324d5a6de4b9600cb:/src/common/strconv.cpp diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index 1987800ac2..f13005cb37 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -111,7 +111,8 @@ static size_t encode_utf16(wxUint32 input, wxUint16 *output) { if (input<=0xffff) { - if (output) *output++ = (wxUint16) input; + if (output) + *output = (wxUint16) input; return 1; } else if (input>=0x110000) @@ -123,7 +124,7 @@ static size_t encode_utf16(wxUint32 input, wxUint16 *output) if (output) { *output++ = (wxUint16) ((input >> 10)+0xd7c0); - *output++ = (wxUint16) ((input&0x3ff)+0xdc00); + *output = (wxUint16) ((input&0x3ff)+0xdc00); } return 2; } @@ -293,7 +294,8 @@ size_t wxMBConvUTF8::MB2WC(wchar_t *buf, const char *psz, size_t n) const return (size_t)-1; } #ifdef WC_UTF16 - size_t pa = encode_utf16(res, buf); + // cast is ok because wchar_t == wxUuint16 if WC_UTF16 + size_t pa = encode_utf16(res, (wxUint16 *)buf); if (pa == (size_t)-1) return (size_t)-1; if (buf) @@ -320,7 +322,8 @@ size_t wxMBConvUTF8::WC2MB(char *buf, const wchar_t *psz, size_t n) const { wxUint32 cc; #ifdef WC_UTF16 - size_t pa = decode_utf16(psz, cc); + // cast is ok for WC_UTF16 + size_t pa = decode_utf16((const wxUint16 *)psz, cc); psz += (pa == (size_t)-1) ? 1 : pa; #else cc=(*psz++) & 0x7fffffff; @@ -495,7 +498,7 @@ size_t wxMBConvUTF16straight::WC2MB(char *buf, const wchar_t *psz, size_t n) con if (buf) { *(wxUint16*)buf = cc[0]; - buf += sizeof(wxUint16); + buf += sizeof(wxUint16); if (pa > 1) { *(wxUint16*)buf = cc[1]; @@ -631,7 +634,8 @@ size_t wxMBConvUTF32straight::WC2MB(char *buf, const wchar_t *psz, size_t n) con { wxUint32 cc; - size_t pa=decode_utf16(psz, cc); + // cast is ok for WC_UTF16 + size_t pa = decode_utf16((const wxUint16 *)psz, cc); if (pa == (size_t)-1) return pa; @@ -643,7 +647,9 @@ size_t wxMBConvUTF32straight::WC2MB(char *buf, const wchar_t *psz, size_t n) con len += sizeof(wxUint32); psz += pa; } - if (buf && len<=n-sizeof(wxUint32)) *(wxUint32*)buf=0; + + if (buf && len<=n-sizeof(wxUint32)) + *(wxUint32*)buf=0; return len; } @@ -677,7 +683,9 @@ size_t wxMBConvUTF32swap::MB2WC(wchar_t *buf, const char *psz, size_t n) const len += pa; psz += sizeof(wxUint32); } - if (buf && lenm_encoding = wxLocale::GetSystemEncoding(); + } +#endif // wxUSE_INTL + self->m_convReal = DoCreate(); self->m_deferred = false; } @@ -1496,7 +1496,7 @@ size_t wxCSConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const #ifdef __WINDOWS__ static wxMBConv_win32 wxConvLibcObj; #else - static wxMBConvSystem wxConvLibcObj; + static wxMBConvLibc wxConvLibcObj; #endif static wxCSConv wxConvLocalObj(wxFONTENCODING_SYSTEM);