From 3e7e5e769a88a825e58a875ab72c33c87516c0fc Mon Sep 17 00:00:00 2001 From: Reece Wilson Date: Fri, 17 Feb 2023 22:27:24 +0000 Subject: [PATCH] [*] Selection key spam crash bugfix --- Source/Console/ConsoleTTY/ConsoleTTY.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Source/Console/ConsoleTTY/ConsoleTTY.cpp b/Source/Console/ConsoleTTY/ConsoleTTY.cpp index 67058c02..7a767a90 100644 --- a/Source/Console/ConsoleTTY/ConsoleTTY.cpp +++ b/Source/Console/ConsoleTTY/ConsoleTTY.cpp @@ -75,8 +75,15 @@ namespace Aurora::Console::ConsoleTTY { if (this->highlightStartInBytes) { - auto sViewZero = this->inputField.substr(0, this->highlightStartInBytes.value()); - auto sViewOne = this->inputField.substr(this->highlightStartInBytes.value(), this->highlightEndInBytes.value() - this->highlightStartInBytes.value()); + auto sViewZero = this->highlightStartInBytes.value() >= this->inputField.size() ? + this->inputField : + this->inputField.substr(0, this->highlightStartInBytes.value()); + + auto sViewOne = this->highlightStartInBytes.value() >= this->inputField.size() ? "" : + this->highlightEndInBytes.value() > this->inputField.size() ? "" : + this->inputField.substr(this->highlightStartInBytes.value(), + this->highlightEndInBytes.value() - this->highlightStartInBytes.value()); + auto sViewTwo = this->highlightEndInBytes.value() < this->inputField.size() ? this->inputField.substr(this->highlightEndInBytes.value()) : ""; @@ -747,6 +754,8 @@ namespace Aurora::Console::ConsoleTTY this->inputField.noncanonicalCursorPosInBytes = (int)this->inputField.inputField.size(); NoncanonicalSetCursor(); } + + this->inputField.DoUnselectTick(); } void TTYConsole::NoncanonicalOnHistoryDown() @@ -791,6 +800,8 @@ namespace Aurora::Console::ConsoleTTY this->inputField.noncanonicalCursorPosInBytes = (int)this->inputField.inputField.size(); NoncanonicalSetCursor(); } + + this->inputField.DoUnselectTick(); } void TTYConsole::HistoryUpdateCursor()