diff options
author | doy <doy@tozt.net> | 2009-01-03 17:57:18 -0500 |
---|---|---|
committer | doy <doy@tozt.net> | 2009-01-03 17:57:18 -0500 |
commit | 3ee2d34702f526af63bb776f502fe6e6ee2c6bbb (patch) | |
tree | 0673f9edc87cb5f644f1466e91e17a3bb23aa936 /vimrc | |
parent | 27dec6c23ea8a08055ee23d429836b11b56cdb4c (diff) | |
download | conf-3ee2d34702f526af63bb776f502fe6e6ee2c6bbb.tar.gz conf-3ee2d34702f526af63bb776f502fe6e6ee2c6bbb.zip |
keep track of the window we open to display the diff in, so we can be sure to close the correct one on end
Diffstat (limited to 'vimrc')
-rw-r--r-- | vimrc | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -331,16 +331,16 @@ imap <F11> <C-o>:call <SID>spell()<CR> " diff between current file and its original state {{{ let s:foldmethod = &foldmethod let s:foldenable = &foldenable -let s:diffstarted = 0 +let s:diffwindow = 0 function s:diffstart(read_cmd) - if s:diffstarted + if s:diffwindow != 0 return endif let s:foldmethod = &foldmethod let s:foldenable = &foldenable - let s:diffstarted = 1 let filetype = &filetype vert new + let s:diffwindow = winnr() set bt=nofile try exe a:read_cmd @@ -359,17 +359,18 @@ function s:diffstart(read_cmd) normal zM endfunction function s:diffstop() - diffoff! - if winnr('$') != 1 - wincmd t - quit + if s:diffwindow == 0 + return endif + diffoff! + exe s:diffwindow . 'wincmd w' + quit let &foldmethod = s:foldmethod let &foldenable = s:foldenable if &foldenable normal zv endif - let s:diffstarted = 0 + let s:diffwindow = 0 endfunction function s:vcs_orig(file) " XXX: would be nice to use a:file rather than # here... |