From 45311b5274a6ac6e44235dfd4588c6b1bf0d4850 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 13 Aug 2019 22:27:32 +0200 Subject: patch 8.1.1844: buffer no longer unloaded when adding text properties Problem: Buffer no longer unloaded when adding text properties to it. Solution: Do not create the memfile. (closes #4808) --- src/testdir/test_textprop.vim | 22 ++++++++++++++++++++++ src/textprop.c | 5 ++++- src/version.c | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index d7e77f985f..3d3cce8158 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -823,3 +823,25 @@ func Test_textprop_remove_from_buf() bwipe! x close endfunc + +func Test_textprop_in_unloaded_buf() + edit Xaaa + call setline(1, 'aaa') + write + edit Xbbb + call setline(1, 'bbb') + write + let bnr = bufnr('') + edit Xaaa + + call prop_type_add('ErrorMsg', #{highlight:'ErrorMsg'}) + call assert_fails("call prop_add(1, 1, #{end_lnum: 1, endcol: 2, type: 'ErrorMsg', bufnr: bnr})", 'E275:') + exe 'buf ' .. bnr + call assert_equal('bbb', getline(1)) + call assert_equal(0, prop_list(1)->len()) + + bwipe! Xaaa + bwipe! Xbbb + cal delete('Xaaa') + cal delete('Xbbb') +endfunc diff --git a/src/textprop.c b/src/textprop.c index a976414290..309f3cb795 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -256,7 +256,10 @@ prop_add_common( } if (buf->b_ml.ml_mfp == NULL) - ml_open(buf); + { + emsg(_("E275: Cannot add text property to unloaded buffer")); + return; + } for (lnum = start_lnum; lnum <= end_lnum; ++lnum) { diff --git a/src/version.c b/src/version.c index 5741d5fdaa..f998c52586 100644 --- a/src/version.c +++ b/src/version.c @@ -769,6 +769,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1844, /**/ 1843, /**/ -- cgit v1.2.3