summaryrefslogtreecommitdiffstats
path: root/vimrc
diff options
context:
space:
mode:
authordoy <doy@tozt.net>2009-01-03 17:57:18 -0500
committerdoy <doy@tozt.net>2009-01-03 17:57:18 -0500
commit3ee2d34702f526af63bb776f502fe6e6ee2c6bbb (patch)
tree0673f9edc87cb5f644f1466e91e17a3bb23aa936 /vimrc
parent27dec6c23ea8a08055ee23d429836b11b56cdb4c (diff)
downloadconf-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--vimrc17
1 files changed, 9 insertions, 8 deletions
diff --git a/vimrc b/vimrc
index af6586f..722986e 100644
--- a/vimrc
+++ b/vimrc
@@ -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...