Commit: runtime(vim9): Disable shellslash for shellescape() in Open()

1 view
Skip to first unread message

Christian Brabandt

unread,
Aug 16, 2025, 11:45:14 AM8/16/25
to vim...@googlegroups.com
runtime(vim9): Disable shellslash for shellescape() in Open()

Commit: https://github.com/vim/vim/commit/39f9298cb2944071b2b19a6b28edf0939aa4312d
Author: 毛逸宁 <mao.y...@outlook.com>
Date: Sat Aug 16 17:38:33 2025 +0200

runtime(vim9): Disable shellslash for shellescape() in Open()

fixes: https://github.com/vim/vim/issues/17995
closes: https://github.com/vim/vim/issues/18004

Signed-off-by: 毛逸宁 <mao.y...@outlook.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/autoload/dist/vim9.vim b/runtime/autoload/dist/vim9.vim
index 6d4079ea3..fa14bdaf0 100644
--- a/runtime/autoload/dist/vim9.vim
+++ b/runtime/autoload/dist/vim9.vim
@@ -3,7 +3,7 @@ vim9script
# Vim runtime support library
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
-# Last Change: 2025 Jan 29
+# Last Change: 2025 Aug 15

export def IsSafeExecutable(filetype: string, executable: string): bool
if empty(exepath(executable))
@@ -121,6 +121,11 @@ def Viewer(): string
enddef

export def Open(file: string)
+ # disable shellslash for shellescape, required on Windows #17995
+ if exists('+shellslash') && &shellslash
+ &shellslash = false
+ defer setbufvar('%', '&shellslash', true)
+ endif
Launch($"{Viewer()} {shellescape(file, 1)}")
enddef

Reply all
Reply to author
Forward
0 new messages