mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Problem: Calling prop_add() in an empty buffer doesn't work. (Dominique Pelle) Solution: Open the memline before adding a text property. (closes #4412)
This commit is contained in:
@@ -752,3 +752,11 @@ func Test_textprop_screenshot_visual()
|
||||
" Same, but delete four columns
|
||||
call RunTestVisualBlock(4, '02')
|
||||
endfunc
|
||||
|
||||
" Adding a text property to a new buffer should not fail
|
||||
func Test_textprop_empty_buffer()
|
||||
call prop_type_add('comment', {'highlight': 'Search'})
|
||||
new
|
||||
call prop_add(1, 1, {'type': 'comment'})
|
||||
close
|
||||
endfunc
|
||||
|
@@ -12,6 +12,7 @@
|
||||
*
|
||||
* TODO:
|
||||
* - Adjust text property column and length when text is inserted/deleted.
|
||||
* -> :substitute with multiple matches, issue #4427
|
||||
* -> a :substitute with a multi-line match
|
||||
* -> search for changed_bytes() from misc1.c
|
||||
* -> search for mark_col_adjust()
|
||||
@@ -238,6 +239,9 @@ f_prop_add(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
return;
|
||||
}
|
||||
|
||||
if (buf->b_ml.ml_mfp == NULL)
|
||||
ml_open(buf);
|
||||
|
||||
for (lnum = start_lnum; lnum <= end_lnum; ++lnum)
|
||||
{
|
||||
colnr_T col; // start column
|
||||
@@ -327,7 +331,7 @@ get_text_props(buf_T *buf, linenr_T lnum, char_u **props, int will_change)
|
||||
|
||||
// Be quick when no text property types have been defined or the buffer,
|
||||
// unless we are adding one.
|
||||
if (!buf->b_has_textprop && !will_change)
|
||||
if ((!buf->b_has_textprop && !will_change) || buf->b_ml.ml_mfp == NULL)
|
||||
return 0;
|
||||
|
||||
// Fetch the line to get the ml_line_len field updated.
|
||||
|
@@ -767,6 +767,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1387,
|
||||
/**/
|
||||
1386,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user