Restore ridiculous hack to set cursor position on :Gdiff

This time with :setlocal.

Closes #471.  References #475.
This commit is contained in:
Tim Pope 2014-04-14 13:33:12 -04:00
parent 07c58226df
commit c99f0ff06b

View File

@ -1513,6 +1513,9 @@ function! s:Diff(bang,...) abort
let spec = s:repo().translate(file)
let commit = matchstr(spec,'\C[^:/]//\zs\x\+')
let restore = s:diff_restore()
if exists('+cursorbind')
setlocal cursorbind
endif
let w:fugitive_diff_restore = restore
if s:buffer().compare_age(commit) < 0
execute 'rightbelow '.vert.'diffsplit '.s:fnameescape(spec)
@ -1520,6 +1523,11 @@ function! s:Diff(bang,...) abort
execute 'leftabove '.vert.'diffsplit '.s:fnameescape(spec)
endif
let w:fugitive_diff_restore = restore
let winnr = winnr()
if getwinvar('#', '&diff')
wincmd p
call feedkeys("\<C-W>p", 'n')
endif
return ''
catch /^fugitive:/
return 'echoerr v:errmsg'