vim-patch:8.2.1957: diff and cursorcolumn highlighting don't mix

Problem:    Diff and cursorcolumn highlighting don't mix.
Solution:   Fix condition for what attribute to use. (Christian Brabandt,
            closes vim/vim#7258, closes vim/vim#7260)
fabc3ca896
This commit is contained in:
Jan Edmund Lazo 2021-05-24 12:45:38 -04:00
parent 6d932ccb1c
commit db3136d2ea
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
2 changed files with 38 additions and 2 deletions

View File

@ -4139,8 +4139,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow,
// Also highlight the 'colorcolumn' if it is different than
// 'cursorcolumn'
vcol_save_attr = -1;
if (draw_state == WL_LINE && !lnum_in_visual_area
&& search_attr == 0 && area_attr == 0) {
if (draw_state == WL_LINE
&& !lnum_in_visual_area
&& search_attr == 0
&& area_attr == 0
&& filler_todo <= 0) {
if (wp->w_p_cuc && VCOL_HLC == (long)wp->w_virtcol
&& lnum != wp->w_cursor.lnum) {
vcol_save_attr = char_attr;

View File

@ -1148,5 +1148,38 @@ func Test_diff_and_scroll()
set ls&
endfunc
func Test_diff_filler_cursorcolumn()
CheckScreendump
let content =<< trim END
call setline(1, ['aa', 'bb', 'cc'])
vnew
call setline(1, ['aa', 'cc'])
windo diffthis
wincmd p
setlocal cursorcolumn foldcolumn=0
norm! gg0
redraw!
END
call writefile(content, 'Xtest_diff_cuc')
let buf = RunVimInTerminal('-S Xtest_diff_cuc', {})
call VerifyScreenDump(buf, 'Test_diff_cuc_01', {})
call term_sendkeys(buf, "l")
call term_sendkeys(buf, "\<C-l>")
call VerifyScreenDump(buf, 'Test_diff_cuc_02', {})
call term_sendkeys(buf, "0j")
call term_sendkeys(buf, "\<C-l>")
call VerifyScreenDump(buf, 'Test_diff_cuc_03', {})
call term_sendkeys(buf, "l")
call term_sendkeys(buf, "\<C-l>")
call VerifyScreenDump(buf, 'Test_diff_cuc_04', {})
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_diff_cuc')
endfunc
" vim: shiftwidth=2 sts=2 expandtab