cygwin: select: use UNICODE console functions
For historical reasons peek_console was calling the functions PeekConsoleInputA and ReadConsoleInputA. However, these functions are not working correctly under at least codepage 65001 (UTF-8) on systems prior to Windows 10. Use PeekConsoleInputW and ReadConsoleInputW instead, which work correctly under all systems and all codepages. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
7b9bfb4136
commit
e6c75c1de1
|
@ -886,7 +886,7 @@ peek_console (select_record *me, bool)
|
|||
for (;;)
|
||||
if (fh->bg_check (SIGTTIN, true) <= bg_eof)
|
||||
return me->read_ready = true;
|
||||
else if (!PeekConsoleInput (h, &irec, 1, &events_read) || !events_read)
|
||||
else if (!PeekConsoleInputW (h, &irec, 1, &events_read) || !events_read)
|
||||
break;
|
||||
else
|
||||
{
|
||||
|
@ -918,7 +918,7 @@ peek_console (select_record *me, bool)
|
|||
}
|
||||
|
||||
/* Read and discard the event */
|
||||
ReadConsoleInput (h, &irec, 1, &events_read);
|
||||
ReadConsoleInputW (h, &irec, 1, &events_read);
|
||||
}
|
||||
|
||||
return me->write_ready;
|
||||
|
|
Loading…
Reference in New Issue