diff options
author | Neil <nyamatongwe@gmail.com> | 2021-12-12 11:29:38 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-12-12 11:29:38 +1100 |
commit | a6744e59c9560f499c6dc856ab244ba7753532ce (patch) | |
tree | e499e6342c6563ced318adda440e599c7627e75e /qt/ScintillaEditBase/ScintillaEditBase.cpp | |
parent | 426e511d60212c869ca40a3e4d053de636192f1d (diff) | |
download | scintilla-mirror-a6744e59c9560f499c6dc856ab244ba7753532ce.tar.gz |
Fix potential Qt bug with position truncation for ImSurroundingText on huge
documents.
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaEditBase.cpp')
-rw-r--r-- | qt/ScintillaEditBase/ScintillaEditBase.cpp | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp index 553be2dbb..7e3065812 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.cpp +++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp @@ -669,20 +669,8 @@ QVariant ScintillaEditBase::inputMethodQuery(Qt::InputMethodQuery query) const { const Scintilla::Position paraStart = sqt->pdoc->ParaUp(pos); const Scintilla::Position paraEnd = sqt->pdoc->ParaDown(pos); - QVarLengthArray<char,1024> buffer(paraEnd - paraStart + 1); - - // This is limited to first 2GB of a document on Windows - Sci_CharacterRange charRange{}; - charRange.cpMin = paraStart; - charRange.cpMax = paraEnd; - - Sci_TextRange textRange{}; - textRange.chrg = charRange; - textRange.lpstrText = buffer.data(); - - send(SCI_GETTEXTRANGE, 0, reinterpret_cast<sptr_t>(&textRange)); - - return sqt->StringFromDocument(buffer.constData()); + const std::string buffer = sqt->RangeText(paraStart, paraEnd); + return sqt->StringFromDocument(buffer.c_str()); } case Qt::ImCurrentSelection: |