mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
patch 8.2.1058: multiline conceal causes display errors
Problem: Multiline conceal causes display errors. Solution: Do not allow conceal cross over EOL. (closes #6326, closes #4854, closes #6302)
This commit is contained in:
parent
1e4c7d0ed2
commit
fc838d6cb0
@ -1334,6 +1334,11 @@ win_line(
|
||||
&screen_search_hl, &has_match_conc,
|
||||
&match_conc, did_line_attr, lcs_eol_one);
|
||||
ptr = line + v; // "line" may have been changed
|
||||
|
||||
// Do not allow a conceal over EOL otherwise EOL will be missed
|
||||
// and bad things happen.
|
||||
if (*ptr == NUL)
|
||||
has_match_conc = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -254,4 +254,26 @@ func Test_conceal_cursor_pos()
|
||||
call delete('XTest_conceal_curpos')
|
||||
endfunc
|
||||
|
||||
func Test_conceal_eol()
|
||||
new!
|
||||
setlocal concealcursor=n conceallevel=1
|
||||
call setline(1, ["x", ""])
|
||||
call matchaddpos('Conceal', [[2, 1, 1]], 2, -1, {'conceal': 1})
|
||||
redraw!
|
||||
|
||||
call assert_notequal(screenchar(1, 1), screenchar(2, 2))
|
||||
call assert_equal(screenattr(1, 1), screenattr(1, 2))
|
||||
call assert_equal(screenattr(1, 2), screenattr(2, 2))
|
||||
call assert_equal(screenattr(2, 1), screenattr(2, 2))
|
||||
|
||||
set list
|
||||
redraw!
|
||||
|
||||
call assert_equal(screenattr(1, 1), screenattr(2, 2))
|
||||
call assert_notequal(screenattr(1, 1), screenattr(1, 2))
|
||||
call assert_notequal(screenattr(1, 2), screenattr(2, 1))
|
||||
|
||||
set nolist
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -1118,4 +1118,16 @@ func Test_diff_rnu()
|
||||
call delete('Xtest_diff_rnu')
|
||||
endfunc
|
||||
|
||||
func Test_diff_multilineconceal()
|
||||
new
|
||||
diffthis
|
||||
|
||||
new
|
||||
call matchadd('Conceal', 'a\nb', 9, -1, {'conceal': 'Y'})
|
||||
set cole=2 cocu=n
|
||||
call setline(1, ["a", "b"])
|
||||
diffthis
|
||||
redraw
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1058,
|
||||
/**/
|
||||
1057,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user