runtime(vim9): Check cmd.exe on WSL is executable
Commit:
https://github.com/vim/vim/commit/4cbdef8e30cd5da5d3a0941ab88bf082b0b1e164
Author: Yasuhiro Matsumoto <
matt...@gmail.com>
Date: Wed May 6 18:24:51 2026 +0000
runtime(vim9): Check cmd.exe on WSL is executable
closes:
https://github.com/vim/vim/issues/20150
Signed-off-by: Yasuhiro Matsumoto <
matt...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/autoload/dist/vim9.vim b/runtime/autoload/dist/vim9.vim
index 4d8785d4a..cd4022aba 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: 2026 Apr 17
+# Last Change: 2026 May 06
export def IsSafeExecutable(filetype: string, executable: string): bool
if empty(exepath(executable))
@@ -51,7 +51,7 @@ if has('unix')
execute $'silent !cmd /c start "" /b {args} {Redir()}' | redraw!
enddef
endif
- elseif exists('$WSL_DISTRO_NAME') # use cmd.exe to start GUI apps in WSL
+ elseif exists('$WSL_DISTRO_NAME') && executable('cmd.exe') # use cmd.exe to start GUI apps in WSL
export def Launch(args: string)
const command = (args =~? ' <+\.(exe|com|bat|cmd)>')
? $'cmd.exe /c start /b {args} {Redir()}'