diff options
author | Neil <nyamatongwe@gmail.com> | 2015-02-23 10:10:54 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2015-02-23 10:10:54 +1100 |
commit | c4c875b860d9a447967b625f67748e962b697652 (patch) | |
tree | 58c0712ac5b959bc7ad559a40c84e7eeb1155c64 /src/UniConversion.cxx | |
parent | ee3a66f0ebaea12c3fd4000a1acffdcc2b93176f (diff) | |
download | scintilla-mirror-c4c875b860d9a447967b625f67748e962b697652.tar.gz |
Fix non-BMP character entry through the inline IME.
Diffstat (limited to 'src/UniConversion.cxx')
-rw-r--r-- | src/UniConversion.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/UniConversion.cxx b/src/UniConversion.cxx index dea069843..0d69d9969 100644 --- a/src/UniConversion.cxx +++ b/src/UniConversion.cxx @@ -17,7 +17,6 @@ using namespace Scintilla; namespace Scintilla { #endif -enum { SURROGATE_LEAD_FIRST = 0xD800 }; enum { SURROGATE_TRAIL_FIRST = 0xDC00 }; enum { SURROGATE_TRAIL_LAST = 0xDFFF }; enum { SUPPLEMENTAL_PLANE_FIRST = 0x10000 }; @@ -43,7 +42,7 @@ unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen) { } void UTF8FromUTF16(const wchar_t *uptr, unsigned int tlen, char *putf, unsigned int len) { - int k = 0; + unsigned int k = 0; for (unsigned int i = 0; i < tlen && uptr[i];) { unsigned int uch = uptr[i]; if (uch < 0x80) { @@ -67,7 +66,8 @@ void UTF8FromUTF16(const wchar_t *uptr, unsigned int tlen, char *putf, unsigned } i++; } - putf[len] = '\0'; + if (k < len) + putf[k] = '\0'; } unsigned int UTF8CharLength(unsigned char ch) { |