From 0eae0fdb744540f95e5ca789205621d73318e405 Mon Sep 17 00:00:00 2001 From: Niyaz Nigmatullin Date: Thu, 20 Oct 2022 00:03:28 +0300 Subject: [PATCH] whoami: migrate `winapi` to `windows-sys` crate --- Cargo.lock | 2 +- src/uu/whoami/Cargo.toml | 2 +- src/uu/whoami/src/platform/windows.rs | 10 ++++------ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cfa6d4e7d..e483c2c2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3147,7 +3147,7 @@ dependencies = [ "clap 4.0.17", "libc", "uucore", - "winapi", + "windows-sys 0.42.0", ] [[package]] diff --git a/src/uu/whoami/Cargo.toml b/src/uu/whoami/Cargo.toml index 8f2266ff2..f3a277e89 100644 --- a/src/uu/whoami/Cargo.toml +++ b/src/uu/whoami/Cargo.toml @@ -19,7 +19,7 @@ clap = { version = "4.0", features = ["wrap_help", "cargo"] } uucore = { version=">=0.0.16", package="uucore", path="../../uucore", features=["entries"] } [target.'cfg(target_os = "windows")'.dependencies] -winapi = { version = "0.3", features = ["lmcons"] } +windows-sys = { version = "0.42.0", default-features = false, features = ["Win32_NetworkManagement_NetManagement", "Win32_System_WindowsProgramming", "Win32_Foundation"] } [target.'cfg(unix)'.dependencies] libc = "0.2.135" diff --git a/src/uu/whoami/src/platform/windows.rs b/src/uu/whoami/src/platform/windows.rs index a627bed8e..3bad1eb21 100644 --- a/src/uu/whoami/src/platform/windows.rs +++ b/src/uu/whoami/src/platform/windows.rs @@ -10,17 +10,15 @@ use std::ffi::OsString; use std::io; use std::os::windows::ffi::OsStringExt; - -use winapi::shared::lmcons; -use winapi::shared::minwindef::DWORD; -use winapi::um::winbase; +use windows_sys::Win32::NetworkManagement::NetManagement::UNLEN; +use windows_sys::Win32::System::WindowsProgramming::GetUserNameW; pub fn get_username() -> io::Result { - const BUF_LEN: DWORD = lmcons::UNLEN + 1; + const BUF_LEN: u32 = UNLEN + 1; let mut buffer = [0_u16; BUF_LEN as usize]; let mut len = BUF_LEN; // SAFETY: buffer.len() == len - if unsafe { winbase::GetUserNameW(buffer.as_mut_ptr(), &mut len) } == 0 { + if unsafe { GetUserNameW(buffer.as_mut_ptr(), &mut len) } == 0 { return Err(io::Error::last_os_error()); } Ok(OsString::from_wide(&buffer[..len as usize - 1]))