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 (;;)
|
for (;;)
|
||||||
if (fh->bg_check (SIGTTIN, true) <= bg_eof)
|
if (fh->bg_check (SIGTTIN, true) <= bg_eof)
|
||||||
return me->read_ready = true;
|
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;
|
break;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -918,7 +918,7 @@ peek_console (select_record *me, bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Read and discard the event */
|
/* Read and discard the event */
|
||||||
ReadConsoleInput (h, &irec, 1, &events_read);
|
ReadConsoleInputW (h, &irec, 1, &events_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
return me->write_ready;
|
return me->write_ready;
|
||||||
|
Loading…
Reference in New Issue
Block a user