fix(shim): 优化配置解析、跨平台编码与 UAC 提权逻辑
- 使用 `OsString`/`PathBuf` 替代 `String`,实现跨平台无损编码与命令行参数透传 - 完善 `FromLua` 转换与边界校验,拦截空洞 (`nil`) 及非整数键 - 修复环境变量拼接时由于内置分隔符导致的 `join_paths` 报错 - 优化 Windows 下 UAC 提权执行逻辑,改用宽字符 API (`ShellExecuteExW`)
This commit is contained in:
4
build.rs
4
build.rs
@@ -20,7 +20,7 @@ fn main() {
|
||||
|
||||
// cargo:rerun-if-changed -> 当指定文件变化时,重新运行 xxx
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
println!("cargo:rerun-if-changed=shims.lua");
|
||||
println!("cargo:rerun-if-changed=rshim.lua");
|
||||
println!("cargo:rustc-env=OUTPUT_DIR={}", output_dir.display());
|
||||
|
||||
// 创建目录
|
||||
@@ -35,7 +35,7 @@ fn main() {
|
||||
|
||||
// 复制文件
|
||||
let source = PathBuf::from(&manifest_dir).join("shims.lua");
|
||||
let destination = output_dir.join("shims.lua");
|
||||
let destination = output_dir.join("rshim.lua");
|
||||
|
||||
if source.exists() {
|
||||
fs::copy(&source, &destination).expect("Failed to copy shims.lua");
|
||||
|
||||
Reference in New Issue
Block a user