This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] cygwin: select: use UNICODE console functions
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 31 Jul 2017 21:00:03 -0000
- Subject: [newlib-cygwin] cygwin: select: use UNICODE console functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=e6c75c1de15f6be76987b63219ca4cca03761bec
commit e6c75c1de15f6be76987b63219ca4cca03761bec
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Mon Jul 31 22:57:06 2017 +0200
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>
Diff:
---
winsup/cygwin/select.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index 158de6a..f5a9938 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -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;