From 296fea073e3ecb4a3cbd4c77f6d4f442ff1dd571 Mon Sep 17 00:00:00 2001 From: Yuguo Zhang Date: Mon, 5 Jun 2017 10:29:23 +0800 Subject: [PATCH] patch for windows ReadConsole bug --- src/c/file.d | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/c/file.d b/src/c/file.d index 4fb81c896..13cc03d20 100755 --- a/src/c/file.d +++ b/src/c/file.d @@ -3879,10 +3879,14 @@ wcon_stream_read_byte8(cl_object strm, unsigned char *c, cl_index n) HANDLE h = (HANDLE)IO_FILE_DESCRIPTOR(strm); DWORD nchars; unsigned char aux[4]; + WCHAR waux[1]; for (len = 0; len < n; ) { int i, ok; ecl_disable_interrupts_env(the_env); - ok = ReadConsole(h, &aux, 1, &nchars, NULL); + ok = ReadConsoleW(h, waux, 1, &nchars, NULL); + if (ok) { + nchars = WideCharToMultiByte(GetConsoleCP(), 0, waux, 1, aux, 4, NULL, NULL); + } ecl_enable_interrupts_env(the_env); unlikely_if (!ok) { FEwin32_error("Cannot read from console", 0);