diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Editor.cxx | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index b918f1be3..a47c9ce0d 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -5888,11 +5888,9 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) { case Message::GetText: { if (lParam == 0) - return pdoc->Length() + 1; - if (wParam == 0) - return 0; + return pdoc->Length(); char *ptr = CharPtrFromSPtr(lParam); - const Sci_Position len = std::min<Sci_Position>(wParam - 1, pdoc->Length()); + const Sci_Position len = std::min<Sci_Position>(wParam, pdoc->Length()); pdoc->GetCharRange(ptr, 0, len); ptr[len] = '\0'; return len; @@ -6033,20 +6031,16 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) { case Message::GetSelText: { SelectionText selectedText; CopySelectionRange(&selectedText); - if (lParam == 0) { - return selectedText.LengthWithTerminator(); - } else { + if (lParam) { char *ptr = CharPtrFromSPtr(lParam); size_t iChar = selectedText.Length(); if (iChar) { memcpy(ptr, selectedText.Data(), iChar); - ptr[iChar++] = '\0'; - } else { - ptr[0] = '\0'; } - return iChar; + ptr[iChar] = '\0'; } - } + return selectedText.Length(); + } case Message::LineFromPosition: if (PositionFromUPtr(wParam) < 0) @@ -6554,11 +6548,10 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) { const Sci::Position lineStart = pdoc->LineStart(lineCurrentPos); const Sci::Position lineEnd = pdoc->LineStart(lineCurrentPos + 1); if (lParam == 0) { - return 1 + lineEnd - lineStart; + return lineEnd - lineStart; } - PLATFORM_ASSERT(wParam > 0); char *ptr = CharPtrFromSPtr(lParam); - const Sci::Position len = std::min<uptr_t>(lineEnd - lineStart, wParam - 1); + const Sci::Position len = std::min<uptr_t>(lineEnd - lineStart, wParam); pdoc->GetCharRange(ptr, lineStart, len); ptr[len] = '\0'; return sel.MainCaret() - lineStart; |