Don't override shell on Windows (#856)

Assume that the user set the shell options correctly
before running vim-plug so that the user can use bash or powershell
as their shell.

Close #815
This commit is contained in:
Jan Edmund Lazo 2019-07-15 20:06:27 -04:00 committed by Junegunn Choi
parent fddbcb8f1a
commit 226d6abeb2

View file

@ -794,9 +794,7 @@ endfunction
function! s:chsh(swap) function! s:chsh(swap)
let prev = [&shell, &shellcmdflag, &shellredir] let prev = [&shell, &shellcmdflag, &shellredir]
if s:is_win if !s:is_win && a:swap
set shell=cmd.exe shellcmdflag=/c shellredir=>%s\ 2>&1
elseif a:swap
set shell=sh shellredir=>%s\ 2>&1 set shell=sh shellredir=>%s\ 2>&1
endif endif
return prev return prev
@ -811,7 +809,7 @@ function! s:bang(cmd, ...)
if s:is_win if s:is_win
let batchfile = tempname().'.bat' let batchfile = tempname().'.bat'
call writefile(["@echo off\r", cmd . "\r"], batchfile) call writefile(["@echo off\r", cmd . "\r"], batchfile)
let cmd = s:shellesc(batchfile) let cmd = s:shellesc(expand(batchfile))
endif endif
let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%') let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%')
execute "normal! :execute g:_plug_bang\<cr>\<cr>" execute "normal! :execute g:_plug_bang\<cr>\<cr>"
@ -1210,7 +1208,7 @@ function! s:spawn(name, cmd, opts)
let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir) : a:cmd let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir) : a:cmd
if !empty(job.batchfile) if !empty(job.batchfile)
call writefile(["@echo off\r", cmd . "\r"], job.batchfile) call writefile(["@echo off\r", cmd . "\r"], job.batchfile)
let cmd = s:shellesc(job.batchfile) let cmd = s:shellesc(expand(job.batchfile))
endif endif
let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd) let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd)
@ -2037,7 +2035,7 @@ function! s:system(cmd, ...)
if s:is_win if s:is_win
let batchfile = tempname().'.bat' let batchfile = tempname().'.bat'
call writefile(["@echo off\r", cmd . "\r"], batchfile) call writefile(["@echo off\r", cmd . "\r"], batchfile)
let cmd = s:shellesc(batchfile) let cmd = s:shellesc(expand(batchfile))
endif endif
return system(cmd) return system(cmd)
finally finally
@ -2371,7 +2369,7 @@ function! s:preview_commit()
if s:is_win if s:is_win
let batchfile = tempname().'.bat' let batchfile = tempname().'.bat'
call writefile(["@echo off\r", cmd . "\r"], batchfile) call writefile(["@echo off\r", cmd . "\r"], batchfile)
let cmd = batchfile let cmd = expand(batchfile)
endif endif
execute 'silent %!' cmd execute 'silent %!' cmd
finally finally