0
0
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:
Bram Moolenaar
2019-05-24 20:41:55 +02:00
parent 18a4ba29ae
commit d79eef2eb1
3 changed files with 15 additions and 1 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1387,
/**/
1386,
/**/