Strip tilde/grave/space characters from console properly

If input only contains the '~', '`' or ' ' character, it gets stripped from the input buffer. e.g. '````````' or '~' gets stripped, but 'script_ui printl("test `````")' or 'script_client printl("~CEngineClient()")' does not.
This commit is contained in:
Kawe Mazidjatari 2022-06-24 14:23:12 +02:00
parent 2eda8235b7
commit 609af5e4b7

View File

@ -765,6 +765,20 @@ int CConsole::TextEditCallback(ImGuiInputTextCallbackData* iData)
}
case ImGuiInputTextFlags_CallbackEdit:
{
for (size_t i = 0, n = strlen(iData->Buf); i < n; i++)
{
if (iData->Buf[i] != '~'
&& iData->Buf[i] != '`'
&& iData->Buf[i] != ' ')
{
break;
}
else if (i == (n - 1))
{
iData->DeleteChars(0, n);
}
}
m_bCanAutoComplete = true;
BuildSummary(iData->Buf);
break;