@@ -840,38 +840,29 @@ mod unix {
840
840
mod win {
841
841
use super :: Error ;
842
842
843
- use std:: { convert:: TryFrom , io, mem:: size_of, ptr} ;
844
-
845
- use winapi:: {
846
- shared:: minwindef:: { DWORD , FALSE } ,
847
- um:: {
848
- consoleapi:: { GetConsoleMode , SetConsoleMode } ,
849
- handleapi:: INVALID_HANDLE_VALUE ,
850
- lmapibuf:: { NetApiBufferAllocate , NetApiBufferFree } ,
851
- lmserver:: { NetServerGetInfo , MAJOR_VERSION_MASK , SERVER_INFO_101 , SV_PLATFORM_ID_NT } ,
852
- lmwksta:: { NetWkstaGetInfo , WKSTA_INFO_100 } ,
853
- processenv:: GetStdHandle ,
854
- winbase:: { VerifyVersionInfoW , STD_OUTPUT_HANDLE } ,
855
- wincon:: {
856
- ENABLE_ECHO_INPUT , ENABLE_LINE_INPUT , ENABLE_PROCESSED_INPUT ,
857
- ENABLE_VIRTUAL_TERMINAL_PROCESSING ,
858
- } ,
859
- winnt:: {
860
- VerSetConditionMask , HANDLE , OSVERSIONINFOEXW , POSVERSIONINFOEXW , ULONGLONG ,
861
- VER_GREATER_EQUAL , VER_MAJORVERSION , VER_MINORVERSION , VER_SERVICEPACKMAJOR ,
862
- } ,
863
- } ,
843
+ use std:: { io, mem:: size_of, ptr} ;
844
+
845
+ use windows_sys:: Win32 :: Foundation :: { FALSE , HANDLE , INVALID_HANDLE_VALUE } ;
846
+ use windows_sys:: Win32 :: NetworkManagement :: NetManagement :: {
847
+ NetApiBufferAllocate , NetApiBufferFree , NetServerGetInfo , NetWkstaGetInfo ,
848
+ MAJOR_VERSION_MASK , SERVER_INFO_101 , SV_PLATFORM_ID_NT , WKSTA_INFO_100 ,
849
+ } ;
850
+ use windows_sys:: Win32 :: System :: Console :: {
851
+ GetConsoleMode , GetStdHandle , SetConsoleMode , CONSOLE_MODE , ENABLE_ECHO_INPUT ,
852
+ ENABLE_LINE_INPUT , ENABLE_PROCESSED_INPUT , ENABLE_VIRTUAL_TERMINAL_PROCESSING ,
853
+ STD_OUTPUT_HANDLE ,
864
854
} ;
855
+ use windows_sys:: Win32 :: System :: SystemInformation :: {
856
+ VerSetConditionMask , VerifyVersionInfoW , OSVERSIONINFOEXW , VER_MAJORVERSION ,
857
+ VER_MINORVERSION , VER_SERVICEPACKMAJOR ,
858
+ } ;
859
+ use windows_sys:: Win32 :: System :: SystemServices :: VER_GREATER_EQUAL ;
865
860
866
861
#[ cfg( feature = "windows-console" ) ]
867
- use winapi:: um:: {
868
- wincon:: {
869
- FillConsoleOutputAttribute , FillConsoleOutputCharacterW , GetConsoleScreenBufferInfo ,
870
- ScrollConsoleScreenBufferW , SetConsoleCursorPosition , CONSOLE_SCREEN_BUFFER_INFO ,
871
- PCONSOLE_SCREEN_BUFFER_INFO ,
872
- } ,
873
- wincontypes:: { CHAR_INFO_Char , CHAR_INFO , COORD , SMALL_RECT } ,
874
- winnt:: SHORT ,
862
+ use windows_sys:: Win32 :: System :: Console :: {
863
+ FillConsoleOutputAttribute , FillConsoleOutputCharacterW , GetConsoleScreenBufferInfo ,
864
+ ScrollConsoleScreenBufferW , SetConsoleCursorPosition , CHAR_INFO , CHAR_INFO_0 ,
865
+ CONSOLE_SCREEN_BUFFER_INFO , COORD , SMALL_RECT ,
875
866
} ;
876
867
877
868
fn console_handle ( ) -> Result < HANDLE , Error > {
@@ -883,7 +874,7 @@ mod win {
883
874
884
875
#[ cfg( feature = "windows-console" ) ]
885
876
fn buffer_info ( console : HANDLE ) -> Result < CONSOLE_SCREEN_BUFFER_INFO , Error > {
886
- let csbi: PCONSOLE_SCREEN_BUFFER_INFO = ptr:: null_mut ( ) ;
877
+ let csbi: * mut CONSOLE_SCREEN_BUFFER_INFO = ptr:: null_mut ( ) ;
887
878
if unsafe { GetConsoleScreenBufferInfo ( console, csbi) } == FALSE {
888
879
return Err ( io:: Error :: last_os_error ( ) . into ( ) ) ;
889
880
}
@@ -928,12 +919,13 @@ mod win {
928
919
// Scroll it upwards off the top of the buffer with a magnitude of the entire height.
929
920
let target = COORD {
930
921
X : 0 ,
931
- Y : ( 0 - csbi. dwSize . Y ) as SHORT ,
922
+ Y : ( 0 - csbi. dwSize . Y ) as i16 ,
932
923
} ;
933
924
934
925
// Fill with empty spaces with the buffer’s default text attribute.
935
- let mut space = CHAR_INFO_Char :: default ( ) ;
936
- unsafe { * space. AsciiChar_mut ( ) = b' ' as i8 } ;
926
+ let space = CHAR_INFO_0 {
927
+ AsciiChar : b' ' as i8 ,
928
+ } ;
937
929
938
930
let fill = CHAR_INFO {
939
931
Char : space,
@@ -1006,7 +998,7 @@ mod win {
1006
998
Ok ( ( ) )
1007
999
}
1008
1000
1009
- const ENABLE_COOKED_MODE : DWORD =
1001
+ const ENABLE_COOKED_MODE : CONSOLE_MODE =
1010
1002
ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT ;
1011
1003
1012
1004
pub ( crate ) fn cooked ( ) -> Result < ( ) , Error > {
@@ -1031,28 +1023,35 @@ mod win {
1031
1023
// proper way, requires manifesting
1032
1024
#[ inline]
1033
1025
fn um_verify_version ( ) -> bool {
1034
- let condition_mask: ULONGLONG = unsafe {
1026
+ let condition_mask: u64 = unsafe {
1035
1027
VerSetConditionMask (
1036
1028
VerSetConditionMask (
1037
- VerSetConditionMask ( 0 , VER_MAJORVERSION , VER_GREATER_EQUAL ) ,
1029
+ VerSetConditionMask ( 0 , VER_MAJORVERSION , VER_GREATER_EQUAL as u8 ) ,
1038
1030
VER_MINORVERSION ,
1039
- VER_GREATER_EQUAL ,
1031
+ VER_GREATER_EQUAL as u8 ,
1040
1032
) ,
1041
1033
VER_SERVICEPACKMAJOR ,
1042
- VER_GREATER_EQUAL ,
1034
+ VER_GREATER_EQUAL as u8 ,
1043
1035
)
1044
1036
} ;
1045
1037
1046
1038
let mut osvi = OSVERSIONINFOEXW {
1047
1039
dwMinorVersion : ABRACADABRA_THRESHOLD . 1 as _ ,
1048
1040
dwMajorVersion : ABRACADABRA_THRESHOLD . 0 as _ ,
1049
1041
wServicePackMajor : 0 ,
1050
- ..OSVERSIONINFOEXW :: default ( )
1042
+ dwOSVersionInfoSize : size_of :: < OSVERSIONINFOEXW > ( ) as u32 ,
1043
+ dwBuildNumber : 0 ,
1044
+ dwPlatformId : 0 ,
1045
+ szCSDVersion : [ 0 ; 128 ] ,
1046
+ wServicePackMinor : 0 ,
1047
+ wSuiteMask : 0 ,
1048
+ wProductType : 0 ,
1049
+ wReserved : 0 ,
1051
1050
} ;
1052
1051
1053
1052
let ret = unsafe {
1054
1053
VerifyVersionInfoW (
1055
- & mut osvi as POSVERSIONINFOEXW ,
1054
+ & mut osvi,
1056
1055
VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR ,
1057
1056
condition_mask,
1058
1057
)
@@ -1249,14 +1248,14 @@ impl<'a, T: AsRef<&'a [u8]>> From<T> for ResetScrollback<'a> {
1249
1248
}
1250
1249
}
1251
1250
1252
- impl < ' a > AsRef < [ u8 ] > for ResetScrollback < ' a > {
1251
+ impl AsRef < [ u8 ] > for ResetScrollback < ' _ > {
1253
1252
#[ inline]
1254
1253
fn as_ref ( & self ) -> & [ u8 ] {
1255
1254
& self . 0
1256
1255
}
1257
1256
}
1258
1257
1259
- impl < ' a > ResetScrollback < ' a > {
1258
+ impl ResetScrollback < ' _ > {
1260
1259
#[ inline]
1261
1260
fn expand ( & self ) -> Expansion < Self > {
1262
1261
#[ allow( dead_code) ]
0 commit comments