diff options
-rw-r--r-- | src/Document.cxx | 2 | ||||
-rw-r--r-- | src/UniConversion.cxx | 18 | ||||
-rw-r--r-- | src/UniConversion.h | 6 | ||||
-rw-r--r-- | win32/PlatWin.cxx | 2 | ||||
-rw-r--r-- | win32/ScintillaWin.cxx | 41 |
5 files changed, 35 insertions, 34 deletions
diff --git a/src/Document.cxx b/src/Document.cxx index 4b0bd79e2..22987edfb 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -2883,7 +2883,7 @@ Sci::Position Cxx11RegexFindText(Document *doc, Sci::Position minPos, Sci::Posit bool matched = false; if (SC_CP_UTF8 == doc->dbcsCodePage) { - unsigned int lenS = static_cast<unsigned int>(strlen(s)); + size_t lenS = strlen(s); std::vector<wchar_t> ws(lenS + 1); #if WCHAR_T_IS_16 size_t outLen = UTF16FromUTF8(s, lenS, &ws[0], lenS); diff --git a/src/UniConversion.cxx b/src/UniConversion.cxx index 9f0fa34e4..b02850a06 100644 --- a/src/UniConversion.cxx +++ b/src/UniConversion.cxx @@ -20,9 +20,9 @@ using namespace Scintilla; namespace Scintilla { #endif -unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen) { - unsigned int len = 0; - for (unsigned int i = 0; i < tlen && uptr[i];) { +size_t UTF8Length(const wchar_t *uptr, size_t tlen) { + size_t len = 0; + for (size_t i = 0; i < tlen && uptr[i];) { const unsigned int uch = uptr[i]; if (uch < 0x80) { len++; @@ -40,9 +40,9 @@ unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen) { return len; } -void UTF8FromUTF16(const wchar_t *uptr, unsigned int tlen, char *putf, unsigned int len) { - unsigned int k = 0; - for (unsigned int i = 0; i < tlen && uptr[i];) { +void UTF8FromUTF16(const wchar_t *uptr, size_t tlen, char *putf, size_t len) { + size_t k = 0; + for (size_t i = 0; i < tlen && uptr[i];) { const unsigned int uch = uptr[i]; if (uch < 0x80) { putf[k++] = static_cast<char>(uch); @@ -138,10 +138,10 @@ size_t UTF16FromUTF8(const char *s, size_t len, wchar_t *tbuf, size_t tlen) { return ui; } -unsigned int UTF32FromUTF8(const char *s, unsigned int len, unsigned int *tbuf, unsigned int tlen) { - unsigned int ui=0; +size_t UTF32FromUTF8(const char *s, size_t len, unsigned int *tbuf, size_t tlen) { + size_t ui=0; const unsigned char *us = reinterpret_cast<const unsigned char *>(s); - unsigned int i=0; + size_t i=0; while ((i<len) && (ui<tlen)) { unsigned char ch = us[i++]; unsigned int value = 0; diff --git a/src/UniConversion.h b/src/UniConversion.h index c5867a664..8011e05bb 100644 --- a/src/UniConversion.h +++ b/src/UniConversion.h @@ -16,12 +16,12 @@ const int UTF8MaxBytes = 4; const int unicodeReplacementChar = 0xFFFD; -unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen); -void UTF8FromUTF16(const wchar_t *uptr, unsigned int tlen, char *putf, unsigned int len); +size_t UTF8Length(const wchar_t *uptr, size_t tlen); +void UTF8FromUTF16(const wchar_t *uptr, size_t tlen, char *putf, size_t len); unsigned int UTF8CharLength(unsigned char ch); size_t UTF16Length(const char *s, size_t len); size_t UTF16FromUTF8(const char *s, size_t len, wchar_t *tbuf, size_t tlen); -unsigned int UTF32FromUTF8(const char *s, unsigned int len, unsigned int *tbuf, unsigned int tlen); +size_t UTF32FromUTF8(const char *s, size_t len, unsigned int *tbuf, size_t tlen); unsigned int UTF16FromUTF32Character(unsigned int val, wchar_t *tbuf); std::string FixInvalidUTF8(const std::string &text); diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index ee1d2d71c..631c38ab5 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -481,7 +481,7 @@ public: const int stackBufferLength = 1000; class TextWide : public VarBuffer<wchar_t, stackBufferLength> { public: - int tlen; + int tlen; // Using int instead of size_t as most Win32 APIs take int. TextWide(const char *s, int len, bool unicodeMode, int codePage=0) : VarBuffer<wchar_t, stackBufferLength>(len) { if (unicodeMode) { diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index cb762e54a..e296844b7 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -782,10 +782,10 @@ Sci::Position ScintillaWin::EncodedFromUTF8(char *utf8, char *encoded) const { void ScintillaWin::AddCharUTF16(wchar_t const *wcs, unsigned int wclen) { if (IsUnicodeMode()) { char utfval[maxLenInputIME * 3]; - unsigned int len = UTF8Length(wcs, wclen); + size_t len = UTF8Length(wcs, wclen); UTF8FromUTF16(wcs, wclen, utfval, len); utfval[len] = '\0'; - AddCharUTF(utfval, len); + AddCharUTF(utfval, static_cast<unsigned int>(len)); } else { UINT cpDest = CodePageOfDocument(); char inBufferCP[maxLenInputIME * 2]; @@ -1178,7 +1178,7 @@ sptr_t ScintillaWin::GetTextLength() { std::vector<char> docBytes(pdoc->Length(), '\0'); pdoc->GetCharRange(&docBytes[0], 0, pdoc->Length()); if (IsUnicodeMode()) { - return UTF16Length(&docBytes[0], static_cast<unsigned int>(docBytes.size())); + return UTF16Length(&docBytes[0], docBytes.size()); } else { return ::MultiByteToWideChar(CodePageOfDocument(), 0, &docBytes[0], static_cast<int>(docBytes.size()), NULL, 0); @@ -1200,7 +1200,7 @@ sptr_t ScintillaWin::GetText(uptr_t wParam, sptr_t lParam) { if (wParam == 0) return 0; size_t uLen = UTF16FromUTF8(&docBytes[0], docBytes.size(), - ptr, static_cast<int>(wParam) - 1); + ptr, wParam - 1); ptr[uLen] = L'\0'; return uLen; } else { @@ -2231,11 +2231,11 @@ void ScintillaWin::Paste() { if (memUSelection) { wchar_t *uptr = static_cast<wchar_t *>(memUSelection.ptr); if (uptr) { - unsigned int len; + size_t len; std::vector<char> putf; // Default Scintilla behaviour in Unicode mode if (IsUnicodeMode()) { - const unsigned int bytes = static_cast<unsigned int>(memUSelection.Size()); + const size_t bytes = memUSelection.Size(); len = UTF8Length(uptr, bytes / 2); putf.resize(len + 1); UTF8FromUTF16(uptr, bytes / 2, &putf[0], len); @@ -2247,10 +2247,10 @@ void ScintillaWin::Paste() { NULL, 0, NULL, NULL) - 1; // subtract 0 terminator putf.resize(len + 1); ::WideCharToMultiByte(cpDest, 0, uptr, -1, - &putf[0], len + 1, NULL, NULL); + &putf[0], static_cast<int>(len) + 1, NULL, NULL); } - InsertPasteShape(&putf[0], len, pasteShape); + InsertPasteShape(&putf[0], static_cast<int>(len), pasteShape); } memUSelection.Unlock(); } else { @@ -2259,27 +2259,28 @@ void ScintillaWin::Paste() { if (memSelection) { char *ptr = static_cast<char *>(memSelection.ptr); if (ptr) { - const unsigned int bytes = static_cast<unsigned int>(memSelection.Size()); - unsigned int len = bytes; - for (unsigned int i = 0; i < bytes; i++) { + const size_t bytes = memSelection.Size(); + size_t len = bytes; + for (size_t i = 0; i < bytes; i++) { if ((len == bytes) && (0 == ptr[i])) len = i; } + const int ilen = static_cast<int>(len); // In Unicode mode, convert clipboard text to UTF-8 if (IsUnicodeMode()) { std::vector<wchar_t> uptr(len+1); - const unsigned int ulen = ::MultiByteToWideChar(CP_ACP, 0, - ptr, len, &uptr[0], len+1); + const size_t ulen = ::MultiByteToWideChar(CP_ACP, 0, + ptr, ilen, &uptr[0], ilen +1); - unsigned int mlen = UTF8Length(&uptr[0], ulen); + const size_t mlen = UTF8Length(&uptr[0], ulen); std::vector<char> putf(mlen+1); UTF8FromUTF16(&uptr[0], ulen, &putf[0], mlen); - InsertPasteShape(&putf[0], mlen, pasteShape); + InsertPasteShape(&putf[0], static_cast<int>(mlen), pasteShape); } else { - InsertPasteShape(ptr, len, pasteShape); + InsertPasteShape(ptr, ilen, pasteShape); } } memSelection.Unlock(); @@ -2770,7 +2771,7 @@ void ScintillaWin::CopyToClipboard(const SelectionText &selectedText) { // Default Scintilla behaviour in Unicode mode if (IsUnicodeMode()) { size_t uchars = UTF16Length(selectedText.Data(), - static_cast<int>(selectedText.LengthWithTerminator())); + selectedText.LengthWithTerminator()); uniText.Allocate(2 * uchars); if (uniText) { UTF16FromUTF8(selectedText.Data(), selectedText.LengthWithTerminator(), @@ -3069,9 +3070,9 @@ STDMETHODIMP ScintillaWin::Drop(LPDATAOBJECT pIDataSource, DWORD grfKeyState, wchar_t *udata = static_cast<wchar_t *>(memUDrop.ptr); if (udata) { if (IsUnicodeMode()) { - const int tlen = static_cast<int>(memUDrop.Size()); + const size_t tlen = memUDrop.Size(); // Convert UTF-16 to UTF-8 - int dataLen = UTF8Length(udata, tlen/2); + const size_t dataLen = UTF8Length(udata, tlen/2); data.resize(dataLen+1); UTF8FromUTF16(udata, tlen/2, &data[0], dataLen); } else { @@ -3146,7 +3147,7 @@ STDMETHODIMP ScintillaWin::GetData(FORMATETC *pFEIn, STGMEDIUM *pSTM) { GlobalMemory text; if (pFEIn->cfFormat == CF_UNICODETEXT) { - size_t uchars = UTF16Length(drag.Data(), static_cast<int>(drag.LengthWithTerminator())); + size_t uchars = UTF16Length(drag.Data(), drag.LengthWithTerminator()); text.Allocate(2 * uchars); if (text) { UTF16FromUTF8(drag.Data(), drag.LengthWithTerminator(), |