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() {
#if defined(_WIN32)
auto get_input_records = [&] {
auto get_input_records = [&] () -> std::vector<INPUT_RECORD> {
// Check if there is input in the console.
auto console = GetStdHandle(STD_INPUT_HANDLE);
DWORD number_of_events = 0;
if (!GetNumberOfConsoleInputEvents(console, &number_of_events)) {
return;
return std::vector<INPUT_RECORD>();
}
if (number_of_events <= 0) {
// No input, return.
return;
return std::vector<INPUT_RECORD>();
}
// Read the input events.
std::vector<INPUT_RECORD> records(number_of_events);
DWORD number_of_events_read = 0;
if (!ReadConsoleInput(console, records.data(), (DWORD)records.size(),
&number_of_events_read)) {
return;
return std::vector<INPUT_RECORD>();
}
records.resize(number_of_events_read);
return records;