@@ -287,44 +287,44 @@ fn sys_getwindowsversion(vm: &VirtualMachine) -> PyResult<crate::builtins::tuple
287287 version. dwOSVersionInfoSize = std:: mem:: size_of :: < OSVERSIONINFOEXW > ( ) as u32 ;
288288 let result = unsafe {
289289 let osvi = & mut version as LPOSVERSIONINFOEXW as LPOSVERSIONINFOW ;
290- // SAFE : GetVersionExW accepts a pointer of OSVERSIONINFOW, but winapi crate's type currently doesn't allow to do so.
290+ // SAFETY : GetVersionExW accepts a pointer of OSVERSIONINFOW, but winapi crate's type currently doesn't allow to do so.
291291 // https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getversionexw#parameters
292292 GetVersionExW ( osvi)
293293 } ;
294294
295295 if result == 0 {
296- Err ( vm. new_os_error ( "failed to get windows version" . to_owned ( ) ) )
297- } else {
298- let service_pack = {
299- let ( last, _) = version
300- . szCSDVersion
301- . iter ( )
302- . take_while ( |& x| x != & 0 )
303- . enumerate ( )
304- . last ( )
305- . unwrap_or ( ( 0 , & 0 ) ) ;
306- let sp = OsString :: from_wide ( & version. szCSDVersion [ ..last] ) ;
307- sp. into_string ( )
308- . map_err ( |_| vm. new_os_error ( "service pack is not ASCII" . to_owned ( ) ) ) ?
309- } ;
310- WindowsVersion {
311- major : version. dwMajorVersion ,
312- minor : version. dwMinorVersion ,
313- build : version. dwBuildNumber ,
314- platform : version. dwPlatformId ,
315- service_pack,
316- service_pack_major : version. wServicePackMajor ,
317- service_pack_minor : version. wServicePackMinor ,
318- suite_mask : version. wSuiteMask ,
319- product_type : version. wProductType ,
320- platform_version : (
321- version. dwMajorVersion ,
322- version. dwMinorVersion ,
323- version. dwBuildNumber ,
324- ) , // TODO Provide accurate version, like CPython impl
325- }
326- . into_struct_sequence ( vm)
296+ return Err ( vm. new_os_error ( "failed to get windows version" . to_owned ( ) ) ) ;
297+ }
298+
299+ let service_pack = {
300+ let ( last, _) = version
301+ . szCSDVersion
302+ . iter ( )
303+ . take_while ( |& x| x != & 0 )
304+ . enumerate ( )
305+ . last ( )
306+ . unwrap_or ( ( 0 , & 0 ) ) ;
307+ let sp = OsString :: from_wide ( & version. szCSDVersion [ ..last] ) ;
308+ sp. into_string ( )
309+ . map_err ( |_| vm. new_os_error ( "service pack is not ASCII" . to_owned ( ) ) ) ?
310+ } ;
311+ WindowsVersion {
312+ major : version. dwMajorVersion ,
313+ minor : version. dwMinorVersion ,
314+ build : version. dwBuildNumber ,
315+ platform : version. dwPlatformId ,
316+ service_pack,
317+ service_pack_major : version. wServicePackMajor ,
318+ service_pack_minor : version. wServicePackMinor ,
319+ suite_mask : version. wSuiteMask ,
320+ product_type : version. wProductType ,
321+ platform_version : (
322+ version. dwMajorVersion ,
323+ version. dwMinorVersion ,
324+ version. dwBuildNumber ,
325+ ) , // TODO Provide accurate version, like CPython impl
327326 }
327+ . into_struct_sequence ( vm)
328328}
329329
330330pub fn get_stdin ( vm : & VirtualMachine ) -> PyResult {
@@ -704,7 +704,6 @@ settrace() -- set the global debug tracing function
704704 let getwindowsversion = WindowsVersion :: make_class ( ctx) ;
705705 extend_module ! ( vm, module, {
706706 "getwindowsversion" => named_function!( ctx, sys, getwindowsversion) ,
707- "_getwindowsversion_type" => getwindowsversion, // XXX: This is not a python spec but required by current RustPython implementation
708707 } )
709708 }
710709
0 commit comments