mirror of
https://github.com/zed-industries/zed.git
synced 2026-05-31 19:05:00 +07:00
extension_host: Replace backslashes with forward slashes for cwd on Windows (#38072)
Instead of passing CWD verbatim from the Windows host with backslashes and all, we now rewrite it into a more POSIX-happy format featuring forward slashes which means `std::path::Path` operations now work within WASI with Windows-style paths. Release Notes: - N/A
This commit is contained in:
parent
7377a898e8
commit
85f7bb6277
2 changed files with 9 additions and 3 deletions
|
|
@ -666,15 +666,17 @@ impl WasmHost {
|
|||
|
||||
let file_perms = wasi::FilePerms::all();
|
||||
let dir_perms = wasi::DirPerms::all();
|
||||
let path = SanitizedPath::new(&extension_work_dir);
|
||||
let path = SanitizedPath::new(&extension_work_dir).to_string();
|
||||
#[cfg(target_os = "windows")]
|
||||
let path = path.replace('\\', "/");
|
||||
|
||||
let mut ctx = wasi::WasiCtxBuilder::new();
|
||||
ctx.inherit_stdio()
|
||||
.env("PWD", path.to_string())
|
||||
.env("PWD", &path)
|
||||
.env("RUST_BACKTRACE", "full");
|
||||
|
||||
ctx.preopened_dir(&path, ".", dir_perms, file_perms)?;
|
||||
ctx.preopened_dir(&path, path.to_string(), dir_perms, file_perms)?;
|
||||
ctx.preopened_dir(&path, &path, dir_perms, file_perms)?;
|
||||
|
||||
Ok(ctx.build())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ impl TestExtension {
|
|||
|
||||
let current_dir = std::env::current_dir().unwrap();
|
||||
println!("current_dir: {}", current_dir.display());
|
||||
assert_eq!(
|
||||
current_dir.file_name().unwrap().to_str().unwrap(),
|
||||
"test-extension"
|
||||
);
|
||||
|
||||
fs::create_dir_all(current_dir.join("dir-created-with-abs-path")).unwrap();
|
||||
fs::create_dir_all("./dir-created-with-rel-path").unwrap();
|
||||
|
|
|
|||
Loading…
Reference in a new issue