Skip to content

Commit 1669145

Browse files
Copilotbenhillis
authored andcommitted
Migrate term and guid crates from winapi to windows, remove winapi dependencies
Co-authored-by: benhillis <17727402+benhillis@users.noreply.github.com>
1 parent 7a389f3 commit 1669145

File tree

5 files changed

+29
-44
lines changed

5 files changed

+29
-44
lines changed

Cargo.lock

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2694,7 +2694,6 @@ dependencies = [
26942694
"inspect",
26952695
"mesh_protobuf",
26962696
"thiserror 2.0.12",
2697-
"winapi",
26982697
"windows 0.59.0",
26992698
"windows-sys 0.59.0",
27002699
"zerocopy 0.8.24",
@@ -6805,7 +6804,7 @@ dependencies = [
68056804
"crossterm",
68066805
"libc",
68076806
"thiserror 2.0.12",
6808-
"winapi",
6807+
"windows 0.59.0",
68096808
]
68106809

68116810
[[package]]

support/guid/Cargo.toml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,5 @@ zerocopy.workspace = true
2121
windows-sys.workspace = true
2222
windows.workspace = true
2323

24-
[target.'cfg(windows)'.dependencies.winapi]
25-
workspace = true
26-
features = [
27-
"guiddef",
28-
]
29-
3024
[lints]
3125
workspace = true

support/guid/src/lib.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -266,24 +266,24 @@ mod windows {
266266
#![cfg(windows)]
267267
use super::Guid;
268268

269-
impl From<winapi::shared::guiddef::GUID> for Guid {
270-
fn from(guid: winapi::shared::guiddef::GUID) -> Self {
269+
impl From<windows::core::GUID> for Guid {
270+
fn from(guid: windows::core::GUID) -> Self {
271271
Self {
272-
data1: guid.Data1,
273-
data2: guid.Data2,
274-
data3: guid.Data3,
275-
data4: guid.Data4,
272+
data1: guid.data1,
273+
data2: guid.data2,
274+
data3: guid.data3,
275+
data4: guid.data4,
276276
}
277277
}
278278
}
279279

280-
impl From<Guid> for winapi::shared::guiddef::GUID {
280+
impl From<Guid> for windows::core::GUID {
281281
fn from(guid: Guid) -> Self {
282282
Self {
283-
Data1: guid.data1,
284-
Data2: guid.data2,
285-
Data3: guid.data3,
286-
Data4: guid.data4,
283+
data1: guid.data1,
284+
data2: guid.data2,
285+
data3: guid.data3,
286+
data4: guid.data4,
287287
}
288288
}
289289
}

support/term/Cargo.toml

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,12 @@ name = "term"
66
edition.workspace = true
77
rust-version.workspace = true
88

9-
[target.'cfg(windows)'.dependencies.winapi]
9+
[target.'cfg(windows)'.dependencies.windows]
10+
workspace = true
1011
features = [
11-
"consoleapi",
12-
"handleapi",
13-
"memoryapi",
14-
"namedpipeapi",
15-
"processenv",
16-
"realtimeapiset",
17-
"synchapi",
18-
"winbase",
19-
"wincon",
20-
"winnls",
21-
"winnt",
22-
"winsock2",
12+
"Win32_Foundation",
13+
"Win32_System_Console"
2314
]
24-
workspace = true
2515

2616
[target.'cfg(unix)'.dependencies]
2717
libc.workspace = true

support/term/src/lib.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,25 @@ pub enum Error {
1919
/// Enables VT and UTF-8 output.
2020
#[cfg(windows)]
2121
pub fn enable_vt_and_utf8() {
22-
use winapi::um::consoleapi;
23-
use winapi::um::processenv;
24-
use winapi::um::winbase;
25-
use winapi::um::wincon;
26-
use winapi::um::winnls;
22+
use windows::Win32::Foundation::GetStdHandle;
23+
use windows::Win32::Foundation::STD_OUTPUT_HANDLE;
24+
use windows::Win32::System::Console::GetConsoleMode;
25+
use windows::Win32::System::Console::SetConsoleMode;
26+
use windows::Win32::System::Console::SetConsoleOutputCP;
27+
use windows::Win32::System::Console::ENABLE_VIRTUAL_TERMINAL_PROCESSING;
28+
use windows::Win32::System::Console::CP_UTF8;
2729
// SAFETY: calling Windows APIs as documented.
2830
unsafe {
29-
let conout = processenv::GetStdHandle(winbase::STD_OUTPUT_HANDLE);
31+
let conout = GetStdHandle(STD_OUTPUT_HANDLE);
3032
let mut mode = 0;
31-
if consoleapi::GetConsoleMode(conout, &mut mode) != 0 {
32-
if mode & wincon::ENABLE_VIRTUAL_TERMINAL_PROCESSING == 0 {
33-
consoleapi::SetConsoleMode(
33+
if GetConsoleMode(conout, &mut mode) != 0 {
34+
if mode & ENABLE_VIRTUAL_TERMINAL_PROCESSING.0 == 0 {
35+
SetConsoleMode(
3436
conout,
35-
mode | wincon::ENABLE_VIRTUAL_TERMINAL_PROCESSING,
37+
mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING.0,
3638
);
3739
}
38-
wincon::SetConsoleOutputCP(winnls::CP_UTF8);
40+
SetConsoleOutputCP(CP_UTF8);
3941
}
4042
}
4143
}

0 commit comments

Comments
 (0)