mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.0690: setline() and setbufline() do not clear text properties
Problem: setline() and setbufline() do not clear text properties. Solution: Clear text properties when setting the text.
This commit is contained in:
parent
7f1664e392
commit
21b5038e02
@ -1357,8 +1357,10 @@ set_buffer_lines(
|
||||
|
||||
if (!append && lnum <= curbuf->b_ml.ml_line_count)
|
||||
{
|
||||
/* existing line, replace it */
|
||||
if (u_savesub(lnum) == OK && ml_replace(lnum, line, TRUE) == OK)
|
||||
// Existing line, replace it.
|
||||
// Removes any existing text properties.
|
||||
if (u_savesub(lnum) == OK && ml_replace_len(
|
||||
lnum, line, (colnr_T)STRLEN(line) + 1, TRUE, TRUE) == OK)
|
||||
{
|
||||
changed_bytes(lnum, 0);
|
||||
if (is_curbuf && lnum == curwin->w_cursor.lnum)
|
||||
|
@ -261,6 +261,35 @@ func Test_prop_clear_buf()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_prop_setline()
|
||||
new
|
||||
call AddPropTypes()
|
||||
call SetupPropsInFirstLine()
|
||||
call assert_equal(s:expected_props, prop_list(1))
|
||||
|
||||
call setline(1, 'foobar')
|
||||
call assert_equal([], prop_list(1))
|
||||
|
||||
call DeletePropTypes()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_prop_setbufline()
|
||||
new
|
||||
call AddPropTypes()
|
||||
call SetupPropsInFirstLine()
|
||||
let bufnr = bufnr('')
|
||||
wincmd w
|
||||
call assert_equal(s:expected_props, prop_list(1, {'bufnr': bufnr}))
|
||||
|
||||
call setbufline(bufnr, 1, 'foobar')
|
||||
call assert_equal([], prop_list(1, {'bufnr': bufnr}))
|
||||
|
||||
wincmd w
|
||||
call DeletePropTypes()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" Setup a three line prop in lines 2 - 4.
|
||||
" Add short props in line 1 and 5.
|
||||
func Setup_three_line_prop()
|
||||
|
@ -799,6 +799,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
690,
|
||||
/**/
|
||||
689,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user