mirror of
https://github.com/neovim/neovim.git
synced 2026-08-27 01:21:48 +00:00
vim-patch:8.2.1004: line numbers below filler lines not always updated
Problem: Line numbers below filler lines not always updated.
Solution: Don't break out of the win_line() loop too early. (Christian
Brabandt, closes vim/vim#6294, closes vim/vim#6138)
511feec6f0
This commit is contained in:
@@ -3068,10 +3068,12 @@ win_line (
|
||||
}
|
||||
|
||||
// When still displaying '$' of change command, stop at cursor
|
||||
if ((dollar_vcol >= 0 && wp == curwin
|
||||
&& lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
|
||||
&& filler_todo <= 0)
|
||||
|| (number_only && draw_state > WL_NR)) {
|
||||
if (((dollar_vcol >= 0
|
||||
&& wp == curwin
|
||||
&& lnum == wp->w_cursor.lnum
|
||||
&& vcol >= (long)wp->w_virtcol)
|
||||
|| (number_only && draw_state > WL_NR))
|
||||
&& filler_todo <= 0) {
|
||||
grid_put_linebuf(grid, row, 0, col, -grid->Columns, wp->w_p_rl, wp,
|
||||
wp->w_hl_attr_normal, false);
|
||||
// Pretend we have finished updating the window. Except when
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Tests for diff mode
|
||||
source shared.vim
|
||||
source screendump.vim
|
||||
source check.vim
|
||||
|
||||
func Test_diff_fold_sync()
|
||||
enew!
|
||||
@@ -801,6 +802,34 @@ func Test_diff_closeoff()
|
||||
enew!
|
||||
endfunc
|
||||
|
||||
func Test_diff_rnu()
|
||||
CheckScreendump
|
||||
|
||||
let content =<< trim END
|
||||
call setline(1, ['a', 'a', 'a', 'y', 'b', 'b', 'b', 'b', 'b'])
|
||||
vnew
|
||||
call setline(1, ['a', 'a', 'a', 'x', 'x', 'x', 'b', 'b', 'b', 'b', 'b'])
|
||||
call setline(1, ['a', 'a', 'a', 'y', 'b', 'b', 'b', 'b', 'b'])
|
||||
vnew
|
||||
call setline(1, ['a', 'a', 'a', 'x', 'x', 'x', 'b', 'b', 'b', 'b', 'b'])
|
||||
windo diffthis
|
||||
setlocal number rnu foldcolumn=0
|
||||
END
|
||||
call writefile(content, 'Xtest_diff_rnu')
|
||||
let buf = RunVimInTerminal('-S Xtest_diff_rnu', {})
|
||||
|
||||
call VerifyScreenDump(buf, 'Test_diff_rnu_01', {})
|
||||
|
||||
call term_sendkeys(buf, "j")
|
||||
call VerifyScreenDump(buf, 'Test_diff_rnu_02', {})
|
||||
call term_sendkeys(buf, "j")
|
||||
call VerifyScreenDump(buf, 'Test_diff_rnu_03', {})
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xtest_diff_rnu')
|
||||
endfunc
|
||||
|
||||
func Test_diff_and_scroll()
|
||||
" this was causing an ml_get error
|
||||
set ls=2
|
||||
|
||||
Reference in New Issue
Block a user