From e17117e027cf8f0aa077c861b707651e040800a0 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Fri, 17 Apr 2026 01:10:07 +0800 Subject: Fix Windows UTF-16 argument handling in PowerShell completion --- mingling_core/src/program.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'mingling_core/src/program.rs') diff --git a/mingling_core/src/program.rs b/mingling_core/src/program.rs index bee9772..7ea3a38 100644 --- a/mingling_core/src/program.rs +++ b/mingling_core/src/program.rs @@ -8,7 +8,7 @@ use crate::{ AnyOutput, ChainProcess, RenderResult, asset::dispatcher::Dispatcher, error::ProgramExecuteError, }; -use std::{env, fmt::Display, pin::Pin, sync::OnceLock}; +use std::{fmt::Display, pin::Pin, sync::OnceLock}; #[doc(hidden)] pub mod exec; @@ -74,7 +74,19 @@ where Program { collect: std::marker::PhantomData, group: std::marker::PhantomData, + #[cfg(not(windows))] args: env::args().collect(), + #[cfg(windows)] + args: { + std::env::args_os() + .map(|arg| { + use std::os::windows::ffi::OsStrExt; + + let wide: Vec = arg.encode_wide().collect(); + String::from_utf16_lossy(&wide) + }) + .collect() + }, dispatcher: Vec::new(), stdout_setting: Default::default(), user_context: Default::default(), -- cgit