mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-08 11:33:48 -05:00
@@ -374,8 +374,10 @@ endfunction
|
||||
function! s:write_buffer(bufnr, file)
|
||||
let bufcontents = getbufline(a:bufnr, 1, '$')
|
||||
|
||||
" Special case: empty buffer; do not write an empty line in this case.
|
||||
if len(bufcontents) > 1 || bufcontents != ['']
|
||||
if bufcontents == [''] && line2byte(1) == -1
|
||||
" Special case: empty buffer; do not write an empty line in this case.
|
||||
" A nearly empty buffer of only a newline has line2byte(1) == 1.
|
||||
else
|
||||
if getbufvar(a:bufnr, '&endofline')
|
||||
\ || (!getbufvar(a:bufnr, '&binary')
|
||||
\ && (!exists('+fixendofline') || getbufvar(a:bufnr, '&fixendofline')))
|
||||
|
||||
@@ -648,3 +648,33 @@ function Test_encoding()
|
||||
|
||||
call assert_equal([], s:signs('cp932.txt'))
|
||||
endfunction
|
||||
|
||||
|
||||
function Test_empty_file()
|
||||
" 0-byte file
|
||||
call system('touch empty.txt && git add empty.txt')
|
||||
edit empty.txt
|
||||
|
||||
call s:trigger_gitgutter()
|
||||
call assert_equal([], s:signs('empty.txt'))
|
||||
|
||||
|
||||
" File consisting only of a newline
|
||||
call system('echo "" > newline.txt && git add newline.txt')
|
||||
edit newline.txt
|
||||
|
||||
call s:trigger_gitgutter()
|
||||
call assert_equal([], s:signs('newline.txt'))
|
||||
|
||||
|
||||
" 1 line file without newline
|
||||
" Vim will force a newline unless we tell it not to.
|
||||
call system('echo -n "a" > oneline.txt && git add oneline.txt')
|
||||
set noeol nofixeol
|
||||
edit! oneline.txt
|
||||
|
||||
call s:trigger_gitgutter()
|
||||
call assert_equal([], s:signs('oneline.txt'))
|
||||
|
||||
set eol fixeol
|
||||
endfunction
|
||||
|
||||
Reference in New Issue
Block a user