diff options
-rw-r--r-- | src/Document.cxx | 2 | ||||
-rw-r--r-- | win32/ScintillaWin.cxx | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/Document.cxx b/src/Document.cxx index b8ff5a4f9..da566c7af 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -857,7 +857,7 @@ char *Document::TransformLineEnds(int *pLenOut, const char *s, size_t len, int e char *dest = new char[2 * len + 1]; const char *sptr = s; char *dptr = dest; - for (size_t i = 0; i < len; i++) { + for (size_t i = 0; (i < len) && (*sptr != '\0'); i++) { if (*sptr == '\n' || *sptr == '\r') { if (eolMode == SC_EOL_CR) { *dptr++ = '\r'; diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index a14b8d01b..75957d073 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -1567,10 +1567,10 @@ void ScintillaWin::Paste() { // CF_UNICODETEXT available, but not in Unicode mode // Convert from Unicode to current Scintilla code page UINT cpDest = CodePageOfDocument(); - len = ::WideCharToMultiByte(cpDest, 0, uptr, memUSelection.Size() / 2, + len = ::WideCharToMultiByte(cpDest, 0, uptr, -1, NULL, 0, NULL, NULL) - 1; // subtract 0 terminator putf = new char[len + 1]; - ::WideCharToMultiByte(cpDest, 0, uptr, memUSelection.Size() / 2, + ::WideCharToMultiByte(cpDest, 0, uptr, -1, putf, len + 1, NULL, NULL); } |