[newlib-cygwin] cygwin: select: use UNICODE console functions

Corinna Vinschen corinna@sourceware.org
Mon Jul 31 21:00:00 GMT 2017


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;



More information about the Cygwin-cvs mailing list