This commit is contained in:
Arthur Sonzogni
2025-08-16 13:38:05 +02:00
parent dc3a6044ee
commit f983f0a4f7

View File

@@ -1022,23 +1022,23 @@ void ScreenInteractive::Signal(int signal) {
void ScreenInteractive::FetchTerminalEvents() { void ScreenInteractive::FetchTerminalEvents() {
#if defined(_WIN32) #if defined(_WIN32)
auto get_input_records = [&] { auto get_input_records = [&] () -> std::vector<INPUT_RECORD> {
// Check if there is input in the console. // Check if there is input in the console.
auto console = GetStdHandle(STD_INPUT_HANDLE); auto console = GetStdHandle(STD_INPUT_HANDLE);
DWORD number_of_events = 0; DWORD number_of_events = 0;
if (!GetNumberOfConsoleInputEvents(console, &number_of_events)) { if (!GetNumberOfConsoleInputEvents(console, &number_of_events)) {
return; return std::vector<INPUT_RECORD>();
} }
if (number_of_events <= 0) { if (number_of_events <= 0) {
// No input, return. // No input, return.
return; return std::vector<INPUT_RECORD>();
} }
// Read the input events. // Read the input events.
std::vector<INPUT_RECORD> records(number_of_events); std::vector<INPUT_RECORD> records(number_of_events);
DWORD number_of_events_read = 0; DWORD number_of_events_read = 0;
if (!ReadConsoleInput(console, records.data(), (DWORD)records.size(), if (!ReadConsoleInput(console, records.data(), (DWORD)records.size(),
&number_of_events_read)) { &number_of_events_read)) {
return; return std::vector<INPUT_RECORD>();
} }
records.resize(number_of_events_read); records.resize(number_of_events_read);
return records; return records;