@@ -22,6 +22,8 @@ type WORD = u16;
2222type  DWORD  = u32 ; 
2323type  BOOL  = i32 ; 
2424type  HANDLE  = * mut  u8 ; 
25+ // https://docs.microsoft.com/en-us/windows/console/getstdhandle 
26+ const  STD_OUTPUT_HANDLE :  DWORD  = -11  as  _ ; 
2527
2628#[ allow( non_snake_case) ]  
2729#[ repr( C ) ]  
@@ -99,16 +101,13 @@ impl<T: Write + Send + 'static> WinConsole<T> {
99101        accum |= color_to_bits ( self . background )  << 4 ; 
100102
101103        unsafe  { 
102-             // Magic -11 means stdout, from 
103-             // https://docs.microsoft.com/en-us/windows/console/getstdhandle 
104-             // 
105104            // You may be wondering, "but what about stderr?", and the answer 
106105            // to that is that setting terminal attributes on the stdout 
107106            // handle also sets them for stderr, since they go to the same 
108107            // terminal! Admittedly, this is fragile, since stderr could be 
109108            // redirected to a different console. This is good enough for 
110109            // rustc though. See #13400. 
111-             let  out = GetStdHandle ( - 11i32   as   DWORD ) ; 
110+             let  out = GetStdHandle ( STD_OUTPUT_HANDLE ) ; 
112111            SetConsoleTextAttribute ( out,  accum) ; 
113112        } 
114113    } 
@@ -120,9 +119,8 @@ impl<T: Write + Send + 'static> WinConsole<T> {
120119        let  bg; 
121120        unsafe  { 
122121            let  mut  buffer_info = MaybeUninit :: < CONSOLE_SCREEN_BUFFER_INFO > :: uninit ( ) ; 
123-             if  GetConsoleScreenBufferInfo ( GetStdHandle ( -11i32  as  DWORD ) ,  buffer_info. as_mut_ptr ( ) ) 
124-                 != 0 
125-             { 
122+             let  handle = GetStdHandle ( STD_OUTPUT_HANDLE ) ; 
123+             if  GetConsoleScreenBufferInfo ( handle,  buffer_info. as_mut_ptr ( ) )  != 0  { 
126124                let  buffer_info = buffer_info. assume_init ( ) ; 
127125                fg = bits_to_color ( buffer_info. wAttributes ) ; 
128126                bg = bits_to_color ( buffer_info. wAttributes  >> 4 ) ; 
0 commit comments