From 156123520b1b0f1e128837a4c51f4246017932d4 Mon Sep 17 00:00:00 2001 From: Michael Geddes Date: Fri, 3 Dec 2010 14:38:26 +0800 Subject: [PATCH] Handle win32 change in behaviour of fnamemodify in 7.3 Signed-off-by: Michael Geddes --- plugin/fugitive.vim | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index 56dc5d4..a23f26a 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -378,10 +378,25 @@ function! s:buffer_type(...) dict abort endif endfunction -function! s:buffer_spec() dict abort - let bufname = bufname(self['#']) - return s:shellslash(bufname == '' ? '' : fnamemodify(bufname,':p')) -endfunction +if has('win32') + + function! s:buffer_spec() dict abort + let bufname = bufname(self['#']) + let retval = '' + for i in split(bufname,'[^:]\zs\\') + let retval = fnamemodify((retval==''?'':retval.'\').i,':.') + endfor + return s:shellslash(fnamemodify(retval,':p')) + endfunction + +else + + function! s:buffer_spec() dict abort + let bufname = bufname(self['#']) + return s:shellslash(bufname == '' ? '' : fnamemodify(bufname,':p')) + endfunction + +endif function! s:buffer_name() dict abort return self.spec()