@@ -17,22 +17,23 @@ use crate::Attr;
17
17
use crate :: Error ;
18
18
use crate :: Result ;
19
19
use crate :: Terminal ;
20
+
20
21
use std:: io;
21
22
use std:: io:: prelude:: * ;
22
23
use std:: ops:: Deref ;
23
24
use std:: ptr;
24
25
25
- use winapi:: shared:: minwindef:: { DWORD , WORD } ;
26
- use winapi:: um:: consoleapi:: { GetConsoleMode , SetConsoleMode } ;
27
- use winapi:: um:: fileapi:: { CreateFileA , OPEN_EXISTING } ;
28
- use winapi:: um:: handleapi:: { CloseHandle , INVALID_HANDLE_VALUE } ;
29
- use winapi:: um:: wincon:: FillConsoleOutputAttribute ;
30
- use winapi:: um:: wincon:: {
31
- FillConsoleOutputCharacterW , GetConsoleScreenBufferInfo , CONSOLE_SCREEN_BUFFER_INFO , COORD ,
26
+ use windows_sys:: core:: PCSTR ;
27
+ use windows_sys:: Win32 :: Foundation :: {
28
+ CloseHandle , GENERIC_READ , GENERIC_WRITE , HANDLE , INVALID_HANDLE_VALUE ,
29
+ } ;
30
+ use windows_sys:: Win32 :: Storage :: FileSystem :: { CreateFileA , FILE_SHARE_WRITE , OPEN_EXISTING } ;
31
+ use windows_sys:: Win32 :: System :: Console :: {
32
+ FillConsoleOutputAttribute , FillConsoleOutputCharacterW , GetConsoleMode ,
33
+ GetConsoleScreenBufferInfo , SetConsoleCursorPosition , SetConsoleMode , SetConsoleTextAttribute ,
34
+ BACKGROUND_INTENSITY , CONSOLE_CHARACTER_ATTRIBUTES , CONSOLE_MODE , CONSOLE_SCREEN_BUFFER_INFO ,
35
+ COORD , ENABLE_VIRTUAL_TERMINAL_PROCESSING ,
32
36
} ;
33
- use winapi:: um:: wincon:: { SetConsoleCursorPosition , SetConsoleTextAttribute } ;
34
- use winapi:: um:: wincon:: { BACKGROUND_INTENSITY , ENABLE_VIRTUAL_TERMINAL_PROCESSING } ;
35
- use winapi:: um:: winnt:: { FILE_SHARE_WRITE , GENERIC_READ , GENERIC_WRITE , HANDLE } ;
36
37
37
38
/// Console info which can be used by a Terminal implementation
38
39
/// which uses the Win32 Console API.
@@ -122,13 +123,13 @@ fn conout() -> io::Result<HandleWrapper> {
122
123
let name = b"CONOUT$\0 " ;
123
124
let handle = unsafe {
124
125
CreateFileA (
125
- name. as_ptr ( ) as * const i8 ,
126
+ name. as_ptr ( ) as PCSTR ,
126
127
GENERIC_READ | GENERIC_WRITE ,
127
128
FILE_SHARE_WRITE ,
128
129
ptr:: null_mut ( ) ,
129
130
OPEN_EXISTING ,
130
131
0 ,
131
- ptr :: null_mut ( ) ,
132
+ 0 ,
132
133
)
133
134
} ;
134
135
if handle == INVALID_HANDLE_VALUE {
@@ -138,8 +139,8 @@ fn conout() -> io::Result<HandleWrapper> {
138
139
}
139
140
}
140
141
141
- unsafe fn set_flag ( handle : HANDLE , flag : DWORD ) -> io:: Result < ( ) > {
142
- let mut curr_mode: DWORD = 0 ;
142
+ unsafe fn set_flag ( handle : HANDLE , flag : CONSOLE_MODE ) -> io:: Result < ( ) > {
143
+ let mut curr_mode: CONSOLE_MODE = 0 ;
143
144
if GetConsoleMode ( handle, & mut curr_mode) == 0 {
144
145
return Err ( io:: Error :: last_os_error ( ) ) ;
145
146
}
@@ -231,7 +232,7 @@ impl<T: Write + Send> WinConsole<T> {
231
232
fg = bg;
232
233
}
233
234
234
- let mut accum: WORD = 0 ;
235
+ let mut accum: CONSOLE_CHARACTER_ATTRIBUTES = 0 ;
235
236
236
237
accum |= color_to_bits ( fg) ;
237
238
accum |= color_to_bits ( bg) << 4 ;
@@ -382,7 +383,7 @@ impl<T: Write + Send> Terminal for WinConsole<T> {
382
383
let buffer_info = get_console_screen_buffer_info ( * handle) ?;
383
384
let pos = buffer_info. dwCursorPosition ;
384
385
let size = buffer_info. dwSize ;
385
- let num = ( size. X - pos. X ) as DWORD ;
386
+ let num = ( size. X - pos. X ) as u32 ;
386
387
let mut written = 0 ;
387
388
// 0x0020u16 is ' ' (space) in UTF-16 (same as ascii)
388
389
if FillConsoleOutputCharacterW ( * handle, 0x0020 , num, pos, & mut written) == 0 {
0 commit comments