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)
|
if (!append && lnum <= curbuf->b_ml.ml_line_count)
|
||||||
{
|
{
|
||||||
/* existing line, replace it */
|
// Existing line, replace it.
|
||||||
if (u_savesub(lnum) == OK && ml_replace(lnum, line, TRUE) == OK)
|
// 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);
|
changed_bytes(lnum, 0);
|
||||||
if (is_curbuf && lnum == curwin->w_cursor.lnum)
|
if (is_curbuf && lnum == curwin->w_cursor.lnum)
|
||||||
|
@ -261,6 +261,35 @@ func Test_prop_clear_buf()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
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.
|
" Setup a three line prop in lines 2 - 4.
|
||||||
" Add short props in line 1 and 5.
|
" Add short props in line 1 and 5.
|
||||||
func Setup_three_line_prop()
|
func Setup_three_line_prop()
|
||||||
|
@ -799,6 +799,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
690,
|
||||||
/**/
|
/**/
|
||||||
689,
|
689,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user