- UniCharCount chars = text.length();
- UniChar* ubuf = NULL;
-
-#if SIZEOF_WCHAR_T == 4
- wxMBConvUTF16 converter;
-#if wxUSE_UNICODE
- size_t unicharlen = converter.WC2MB( NULL , text.wc_str() , 0 );
- ubuf = (UniChar*) malloc( unicharlen + 2 );
- converter.WC2MB( (char*) ubuf , text.wc_str(), unicharlen + 2 );
-#else
- const wxWCharBuffer wchar = text.wc_str( wxConvLocal );
- size_t unicharlen = converter.WC2MB( NULL , wchar.data() , 0 );
- ubuf = (UniChar*) malloc( unicharlen + 2 );
- converter.WC2MB( (char*) ubuf , wchar.data() , unicharlen + 2 );
-#endif
- chars = unicharlen / 2;
-#else
-#if wxUSE_UNICODE
- ubuf = (UniChar*) text.wc_str();
-#else
- wxWCharBuffer wchar = text.wc_str( wxConvLocal );
- chars = wxWcslen( wchar.data() );
- ubuf = (UniChar*) wchar.data();
-#endif
-#endif