aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx23
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;