mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-08 11:33:48 -05:00
Fix base_path() to handle filenames with colons
This bug was introduced when teaching gitgutter to handle file moves in #872. Fixes #877.
This commit is contained in:
@@ -252,7 +252,8 @@ function! gitgutter#utility#base_path(bufnr)
|
|||||||
" If we already know the original path at this diff base, return it.
|
" If we already know the original path at this diff base, return it.
|
||||||
let basepath = gitgutter#utility#getbufvar(a:bufnr, 'basepath', '')
|
let basepath = gitgutter#utility#getbufvar(a:bufnr, 'basepath', '')
|
||||||
if !empty(basepath)
|
if !empty(basepath)
|
||||||
let [base, bpath] = split(basepath, ':', 1)
|
let i = strridx(basepath, ':')
|
||||||
|
let [base, bpath] = [basepath[0:i-1], basepath[i+1:]]
|
||||||
if base == diffbase
|
if base == diffbase
|
||||||
return gitgutter#utility#shellescape(bpath)
|
return gitgutter#utility#shellescape(bpath)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -196,6 +196,20 @@ function Test_filename_with_equals()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function Test_filename_with_colon()
|
||||||
|
call system('touch fix:ture.txt && git add fix:ture.txt')
|
||||||
|
edit fix:ture.txt
|
||||||
|
normal ggo*
|
||||||
|
call s:trigger_gitgutter()
|
||||||
|
|
||||||
|
let expected = [
|
||||||
|
\ {'lnum': 1, 'name': 'GitGutterLineAdded'},
|
||||||
|
\ {'lnum': 2, 'name': 'GitGutterLineAdded'}
|
||||||
|
\ ]
|
||||||
|
call s:assert_signs(expected, 'fix:ture.txt')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function Test_filename_with_square_brackets()
|
function Test_filename_with_square_brackets()
|
||||||
call system('touch fix[tu]re.txt && git add fix[tu]re.txt')
|
call system('touch fix[tu]re.txt && git add fix[tu]re.txt')
|
||||||
edit fix[tu]re.txt
|
edit fix[tu]re.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user