aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-09-06 23:49:58 +0200
committerChristian Clason <c.clason@uni-graz.at>2023-09-07 09:06:35 +0200
commit5d1c1da3c90adece96f491e7f12fd76c03a881c9 (patch)
tree70e8b814aa7c571a73e21245f848e0dcde0270e5 /runtime/autoload
parentd27214331815324ea5762b5aa22996b9019085c6 (diff)
downloadrneovim-5d1c1da3c90adece96f491e7f12fd76c03a881c9.tar.gz
rneovim-5d1c1da3c90adece96f491e7f12fd76c03a881c9.tar.bz2
rneovim-5d1c1da3c90adece96f491e7f12fd76c03a881c9.zip
vim-patch:67c951df4c95
runtime(ftplugin): allow to exec if curdir is in PATH In case the current directory is present as valid $PATH entry, it is OK to call the program from it, even if vim curdir is in that same directory. (Without that patch, for instance, you will not be able to open .zip files while your current directory is /bin) closes: vim/vim#13027 https://github.com/vim/vim/commit/67c951df4c95981c716eeedb1b102d9668549e65 Co-authored-by: Anton Sharonov <anton.sharonov@gmail.com>
Diffstat (limited to 'runtime/autoload')
-rw-r--r--runtime/autoload/gzip.vim5
-rw-r--r--runtime/autoload/zip.vim7
2 files changed, 10 insertions, 2 deletions
diff --git a/runtime/autoload/gzip.vim b/runtime/autoload/gzip.vim
index ac9e37bf85..6d0bb13401 100644
--- a/runtime/autoload/gzip.vim
+++ b/runtime/autoload/gzip.vim
@@ -11,7 +11,10 @@ fun s:check(cmd)
let name = substitute(a:cmd, '\(\S*\).*', '\1', '')
if !exists("s:have_" . name)
" safety check, don't execute anything from the current directory
- let f = fnamemodify(exepath(name), ":p:h") !=# getcwd()
+ let s:tmp_cwd = getcwd()
+ let f = (fnamemodify(exepath(name), ":p:h") !=# s:tmp_cwd
+ \ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
+ unlet s:tmp_cwd
if !f
echoerr "Warning: NOT executing " .. name .. " from current directory!"
endif
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index 0331a542ac..8b39c91c3a 100644
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -57,10 +57,15 @@ if !exists("g:zip_extractcmd")
let g:zip_extractcmd= g:zip_unzipcmd
endif
-if fnamemodify(exepath(g:zip_unzipcmd), ":p:h") ==# getcwd()
+let s:tmp_cwd = getcwd()
+if (fnamemodify(exepath(g:zip_unzipcmd), ":p:h") ==# getcwd()
+ \ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.'))
+ unlet s:tmp_cwd
echoerr "Warning: NOT executing " .. g:zip_unzipcmd .. " from current directory!"
finish
endif
+unlet s:tmp_cwd
+
" ----------------
" Functions: {{{1
" ----------------