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:
Robin Dunn 2003-07-22 01:00:16 +00:00
parent fc7a2a602b
commit d99859e492
6 changed files with 50 additions and 14 deletions

View File

@ -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) {

View File

@ -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

View File

@ -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) {

View File

@ -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) {

View File

@ -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

View File

@ -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) {