https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=7a720bfe087a5301e27a40ca8a3b687077541fa8

commit 7a720bfe087a5301e27a40ca8a3b687077541fa8
Author: Corinna Vinschen <[email protected]>
Date:   Fri Sep 7 13:48:35 2018 +0200

    Cygwin: console: store replacement char directly
    
    Rather than relying on an index variable, store the current
    replacement char and use that directly in WriteConsoleW.
    
    Signed-off-by: Corinna Vinschen <[email protected]>

Diff:
---
 winsup/cygwin/fhandler_console.cc | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/winsup/cygwin/fhandler_console.cc 
b/winsup/cygwin/fhandler_console.cc
index d53b53e..ce6de6f 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -1981,7 +1981,7 @@ static const wchar_t 
replacement_char[NUM_REPLACEMENT_CHARS] =
 };
 /* nFont member is always 0 so we have to use the facename. */
 static WCHAR cons_facename[LF_FACESIZE];
-static int rp_char_idx;
+static WCHAR rp_char;
 static NO_COPY HDC cdc;
 
 static int CALLBACK
@@ -2045,7 +2045,7 @@ check_font (HANDLE hdl)
              break;
          if (i == NUM_REPLACEMENT_CHARS)
            i = 0;
-         rp_char_idx = i;
+         rp_char = replacement_char[i];
          /* Note that we copy the original name returned by
             GetCurrentConsoleFontEx, even if it was broken.
             This allows an early return, rather than to store
@@ -2066,8 +2066,7 @@ fhandler_console::write_replacement_char ()
   check_font (get_output_handle ());
 
   DWORD done;
-  WriteConsoleW (get_output_handle (), &replacement_char[rp_char_idx], 1,
-                &done, 0);
+  WriteConsoleW (get_output_handle (), &rp_char, 1, &done, 0);
 }
 
 const unsigned char *

Reply via email to