mirror of
https://github.com/vim/vim.git
synced 2026-05-28 00:21:37 +02:00
runtime(vim9): remove extra escaping in Open
Before71fd19d7acthis function went through a `:!` command on all platforms, so it needed special escaping for `#` and others. After that commit it doesn't go through that path on unix platforms. Then with48581f2ba9this escaping was re-added on unix and it's needs since it goes through `sh -c`, but it should not have the extra escaping specific to `:!`. Specifically my original broken command is: ``` PATH=/usr/bin:/bin VIMRUNTIME=~/dev/vim/runtime ./src/vim -u NONE -c 'call dist#vim9#Open("https://github.com/keith/dotfiles/blob/7bce9f5c697df6a549cf97bf5606d8b639e5bf5a/vimrc#L19")' ``` Where the `#L19` ends up being opened as `%5C#L19`. But I verified this case still works as well: ``` PATH=/usr/bin:/bin VIMRUNTIME=~/dev/vim/runtime ./src/vim -u NONE -c 'call dist#vim9#Open("foo bar.txt")' ``` Which is what would otherwise break if we weren't doing any shell escaping on unix. closes: #19996 Signed-off-by: Keith Smiley <keithbsmiley@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
e666597622
commit
30d42855eb
Vendored
+6
-2
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2026 Apr 06
|
||||
# Last Change: 2026 Apr 17
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
if empty(exepath(executable))
|
||||
@@ -139,7 +139,11 @@ export def Open(file: string)
|
||||
setlocal shell&
|
||||
defer setbufvar('%', '&shell', shell)
|
||||
endif
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
if has('unix') && !has('win32unix') && !exists('$WSL_DISTRO_NAME')
|
||||
Launch($"{Viewer()} {shellescape(file)}")
|
||||
else
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
|
||||
Reference in New Issue
Block a user