aboutsummaryrefslogtreecommitdiff
path: root/runtime/ftplugin
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ftplugin')
-rw-r--r--runtime/ftplugin/perl.vim5
-rw-r--r--runtime/ftplugin/ruby.vim5
-rw-r--r--runtime/ftplugin/zig.vim5
3 files changed, 12 insertions, 3 deletions
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index edc7b960f1..4361097f32 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -55,7 +55,9 @@ endif
" Set this once, globally.
if !exists("perlpath")
" safety check: don't execute perl from current directory
- if executable("perl") && fnamemodify(exepath("perl"), ":p:h") != getcwd()
+ let s:tmp_cwd = getcwd()
+ if executable("perl") && (fnamemodify(exepath("perl"), ":p:h") != s:tmp_cwd
+ \ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
try
if &shellxquote != '"'
let perlpath = system('perl -e "print join(q/,/,@INC)"')
@@ -71,6 +73,7 @@ if !exists("perlpath")
" current directory and the directory of the current file.
let perlpath = ".,,"
endif
+ unlet s:tmp_cwd
endif
" Append perlpath to the existing path value, if it is set. Since we don't
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim
index daffe1e0dc..a424801cd1 100644
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -77,11 +77,14 @@ function! s:query_path(root) abort
let cwd = fnameescape(getcwd())
try
exe cd fnameescape(a:root)
- if fnamemodify(exepath('ruby'), ':p:h') ==# cwd
+ let s:tmp_cwd = getcwd()
+ if (fnamemodify(exepath('ruby'), ':p:h') ==# cwd
+ \ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.'))
let path = []
else
let path = split(system(path_check),',')
endif
+ unlet s:tmp_cwd
exe cd cwd
return path
finally
diff --git a/runtime/ftplugin/zig.vim b/runtime/ftplugin/zig.vim
index cd18bfe2bd..45ea582615 100644
--- a/runtime/ftplugin/zig.vim
+++ b/runtime/ftplugin/zig.vim
@@ -40,14 +40,17 @@ endif
let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
" Safety check: don't execute zip from current directory
+let s:tmp_cwd = getcwd()
if !exists('g:zig_std_dir') && exists('*json_decode') &&
- \ executable('zig') && fnamemodify(exepath("zig"), ":p:h") != getcwd()
+ \ executable('zig') && (fnamemodify(exepath("zig"), ":p:h") != s:tmp_cwd
+ \ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
silent let s:env = system('zig env')
if v:shell_error == 0
let g:zig_std_dir = json_decode(s:env)['std_dir']
endif
unlet! s:env
endif
+unlet s:tmp_cwd
if exists('g:zig_std_dir')
let &l:path = &l:path . ',' . g:zig_std_dir