Switch to shlex to make filenames shellsafe

shlex also takes care of any other POSIX-shell specific stuff, such as ".
Also cleans up the vector extension a bit.
main
MultisampledNight 2 years ago
parent 83edde8103
commit 148e9e450f
No known key found for this signature in database
GPG Key ID: C81EF9B053977241

1
Cargo.lock generated

@ -1367,6 +1367,7 @@ dependencies = [
"rmpv",
"serde",
"serde_json",
"shlex",
"skia-safe",
"swash",
"tokio",

@ -39,6 +39,7 @@ rand = "0.8.5"
rmpv = "1.0.0"
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0.79"
shlex = "1.1.0"
swash = "0.1.4"
tokio = { version = "1.17.0", features = ["full"] }
tokio-util = { version = "0.7.1", features = ["compat"] }

@ -172,11 +172,10 @@ pub fn handle_command_line_arguments(args: Vec<String>) -> Result<(), String> {
if cfg!(target_os = "macos") {
// escape filepath which contain spaces
neovim_args.extend::<Vec<String>>(
neovim_args.extend(
files_to_open
.iter()
.map(|file| file.replace(" ", "\\ "))
.collect(),
.map(|file| shlex::quote(file).into_owned()),
);
} else {
neovim_args.extend::<Vec<String>>(files_to_open);

Loading…
Cancel
Save