From 6145bc38dc2133acb7703026e8f11d6bca785f5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E9=9B=85=20=C2=B7=20Misaki=20Masa?= Date: Wed, 17 Jan 2024 00:13:23 +0800 Subject: [PATCH] fix: can't open and reveal paths with spaces on Windows (#526) --- yazi-config/preset/yazi.toml | 10 +++++----- yazi-plugin/src/external/shell.rs | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/yazi-config/preset/yazi.toml b/yazi-config/preset/yazi.toml index 38b436d0..e7e5a973 100644 --- a/yazi-config/preset/yazi.toml +++ b/yazi-config/preset/yazi.toml @@ -26,13 +26,13 @@ edit = [ { exec = 'code "%*"', orphan = true, for = "windows" }, ] open = [ - { exec = 'xdg-open "$@"', desc = "Open", for = "linux" }, - { exec = 'open "$@"', desc = "Open", for = "macos" }, - { exec = 'start "%1"', orphan = true, desc = "Open", for = "windows" } + { exec = 'xdg-open "$@"', desc = "Open", for = "linux" }, + { exec = 'open "$@"', desc = "Open", for = "macos" }, + { exec = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" } ] reveal = [ - { exec = 'open -R "$1"', desc = "Reveal", for = "macos" }, - { exec = 'explorer /select,%1', orphan = true, desc = "Reveal", for = "windows" }, + { exec = 'open -R "$1"', desc = "Reveal", for = "macos" }, + { exec = 'explorer /select, "%1"', orphan = true, desc = "Reveal", for = "windows" }, { exec = '''exiftool "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show EXIF", for = "unix" }, ] extract = [ diff --git a/yazi-plugin/src/external/shell.rs b/yazi-plugin/src/external/shell.rs index fe9fc9c2..b0868f79 100644 --- a/yazi-plugin/src/external/shell.rs +++ b/yazi-plugin/src/external/shell.rs @@ -186,8 +186,8 @@ mod parser { let args = parse("echo 'abc xyz' '%1' %2", &["111", "222"]); assert_eq!(args, ["echo", "abc xyz", "111", "222"]); - let args = parse("echo 'abc \"\"xyz' '%1' %2", &["111", "222"]); - assert_eq!(args, ["echo", "abc \"\"xyz", "111", "222"]); + let args = parse(r#"echo 'abc ""xyz' '%1' %2"#, &["111", "222"]); + assert_eq!(args, ["echo", r#"abc ""xyz"#, "111", "222"]); } #[test]