Patch #775355 Unicode fix for STC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
fc7a2a602b
commit
d99859e492
@ -2478,13 +2478,14 @@ inline wxString stc2wx(const char* str) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
#if wxUSE_UNICODE
|
||||
return wxString(str, wxConvUTF8, len);
|
||||
wxString stc2wx(const char* str, size_t len);
|
||||
#else
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
return wxString(str, len);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
inline const wxWX2MBbuf wx2stc(const wxString& str) {
|
||||
|
@ -481,7 +481,7 @@ void SurfaceImpl::MeasureWidths(Font &font, const char *s, int len, int *positio
|
||||
// so figure it out and fix it!
|
||||
i = 0;
|
||||
size_t ui = 0;
|
||||
while (i < len) {
|
||||
while ((int)i < len) {
|
||||
unsigned char uch = (unsigned char)s[i];
|
||||
positions[i++] = tpos[ui];
|
||||
if (uch >= 0x80) {
|
||||
@ -1223,6 +1223,22 @@ double ElapsedTime::Duration(bool reset) {
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
wxString stc2wx(const char* str, size_t len)
|
||||
{
|
||||
char *buffer=new char[len+1];
|
||||
strncpy(buffer, str, len);
|
||||
buffer[len]=0;
|
||||
|
||||
wxString cstr(buffer, wxConvUTF8);
|
||||
|
||||
delete[] buffer;
|
||||
return cstr;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -463,13 +463,14 @@ inline wxString stc2wx(const char* str) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
#if wxUSE_UNICODE
|
||||
return wxString(str, wxConvUTF8, len);
|
||||
wxString stc2wx(const char* str, size_t len);
|
||||
#else
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
return wxString(str, len);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
inline const wxWX2MBbuf wx2stc(const wxString& str) {
|
||||
|
@ -2478,13 +2478,14 @@ inline wxString stc2wx(const char* str) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
#if wxUSE_UNICODE
|
||||
return wxString(str, wxConvUTF8, len);
|
||||
wxString stc2wx(const char* str, size_t len);
|
||||
#else
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
return wxString(str, len);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
inline const wxWX2MBbuf wx2stc(const wxString& str) {
|
||||
|
@ -481,7 +481,7 @@ void SurfaceImpl::MeasureWidths(Font &font, const char *s, int len, int *positio
|
||||
// so figure it out and fix it!
|
||||
i = 0;
|
||||
size_t ui = 0;
|
||||
while (i < len) {
|
||||
while ((int)i < len) {
|
||||
unsigned char uch = (unsigned char)s[i];
|
||||
positions[i++] = tpos[ui];
|
||||
if (uch >= 0x80) {
|
||||
@ -1223,6 +1223,22 @@ double ElapsedTime::Duration(bool reset) {
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
wxString stc2wx(const char* str, size_t len)
|
||||
{
|
||||
char *buffer=new char[len+1];
|
||||
strncpy(buffer, str, len);
|
||||
buffer[len]=0;
|
||||
|
||||
wxString cstr(buffer, wxConvUTF8);
|
||||
|
||||
delete[] buffer;
|
||||
return cstr;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -463,13 +463,14 @@ inline wxString stc2wx(const char* str) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
#if wxUSE_UNICODE
|
||||
return wxString(str, wxConvUTF8, len);
|
||||
wxString stc2wx(const char* str, size_t len);
|
||||
#else
|
||||
inline wxString stc2wx(const char* str, size_t len) {
|
||||
return wxString(str, len);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
inline const wxWX2MBbuf wx2stc(const wxString& str) {
|
||||
|
Loading…
Reference in New Issue
Block a user