From 475450c76ceef43a7f5b2c68ed5848baee96b6dc Mon Sep 17 00:00:00 2001 From: Neil Date: Tue, 17 May 2022 08:52:34 +1000 Subject: Duplicate APIs to support 64-bit document positions on Win32: SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL. --- call/ScintillaCall.cxx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'call') diff --git a/call/ScintillaCall.cxx b/call/ScintillaCall.cxx index cb0d09365..20fb452da 100644 --- a/call/ScintillaCall.cxx +++ b/call/ScintillaCall.cxx @@ -16,6 +16,7 @@ #include "ScintillaTypes.h" #include "ScintillaMessages.h" #include "ScintillaCall.h" +#include "ScintillaStructures.h" namespace Scintilla { @@ -110,6 +111,17 @@ std::string ScintillaCall::StringOfSpan(Span span) { } } +std::string ScintillaCall::StringOfRange(Span span) { + if (span.Length() == 0) { + return std::string(); + } else { + std::string text(span.Length(), '\0'); + TextRangeFull tr{ {span.start, span.end}, text.data() }; + GetTextRangeFull(&tr); + return text; + } +} + Position ScintillaCall::ReplaceTarget(std::string_view text) { return ScintillaCall::CallString(Message::ReplaceTarget, text.length(), text.data()); } @@ -1127,10 +1139,18 @@ Position ScintillaCall::FindText(Scintilla::FindOption searchFlags, void *ft) { return CallPointer(Message::FindText, static_cast(searchFlags), ft); } +Position ScintillaCall::FindTextFull(Scintilla::FindOption searchFlags, void *ft) { + return CallPointer(Message::FindTextFull, static_cast(searchFlags), ft); +} + Position ScintillaCall::FormatRange(bool draw, void *fr) { return CallPointer(Message::FormatRange, draw, fr); } +Position ScintillaCall::FormatRangeFull(bool draw, void *fr) { + return CallPointer(Message::FormatRangeFull, draw, fr); +} + Line ScintillaCall::FirstVisibleLine() { return Call(Message::GetFirstVisibleLine); } @@ -1187,6 +1207,10 @@ Position ScintillaCall::GetTextRange(void *tr) { return CallPointer(Message::GetTextRange, 0, tr); } +Position ScintillaCall::GetTextRangeFull(void *tr) { + return CallPointer(Message::GetTextRangeFull, 0, tr); +} + void ScintillaCall::HideSelection(bool hide) { Call(Message::HideSelection, hide); } -- cgit v1.2.3