Commit preview should work with non-POSIX-compliant &shell

Close #572
This commit is contained in:
Junegunn Choi 2017-01-02 13:06:34 +09:00
parent d5e9f91c7b
commit 93ffcb36de
No known key found for this signature in database
GPG key ID: 254BC280FEF9C627
2 changed files with 27 additions and 1 deletions

View file

@ -2288,7 +2288,12 @@ function! s:preview_commit()
wincmd P
endif
setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable
execute 'silent %!cd' s:shellesc(g:plugs[name].dir) '&& git show --no-color --pretty=medium' sha
try
let [sh, shrd] = s:chsh(1)
execute 'silent %!cd' s:shellesc(g:plugs[name].dir) '&& git show --no-color --pretty=medium' sha
finally
let [&shell, &shellredir] = [sh, shrd]
endtry
setlocal nomodifiable
nnoremap <silent> <buffer> q :q<cr>
wincmd p

View file

@ -414,6 +414,27 @@ Execute (Test g:plug_pwindow):
normal q
unlet g:plug_pwindow
Execute (#572 - Commit preview should work with non-POSIX-compliant &shell):
" Invalid shell
let shell = &shell
set shell=shellfish
try
" Preview commit should still work
PlugDiff
execute "normal ]]jo"
wincmd P
Log getline(1, '$')
Assert getline(1) =~ 'commit', 'Preview window is empty'
AssertEqual 'shellfish', &shell
finally
" Restore &shell
let &shell = shell
unlet shell
pclose
q
endtry
Execute (Reuse Plug window in another tab):
let tabnr = tabpagenr()
PlugDiff