diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index e0bf814dff..97fea60e6d 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -4410,4 +4410,19 @@ func Test_virtual_text_get() bwipe! endfunc +" This used to throw: E967 +func Test_textprop_notype_join() + new Xtextprop_no_type_join + call setline(1, range(1, 3)) + call cursor(1, 1) + let name = 'a' + call prop_type_add(name, {}) + call prop_add(line('.'), col('.'), { 'type': name }) + call prop_type_delete(name, {}) + join + call assert_equal(["1 2", "3"], getline(1, '$')) + + bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/textprop.c b/src/textprop.c index dde389013f..168b1808fb 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -630,7 +630,7 @@ get_text_props(buf_T *buf, linenr_T lnum, char_u **props, int will_change) size_t textlen; size_t proplen; - // Be quick when no text property types have been defined or the buffer, + // Be quick when no text property types have been defined for the buffer, // unless we are adding one. if ((!buf->b_has_textprop && !will_change) || buf->b_ml.ml_mfp == NULL) return 0; @@ -714,8 +714,7 @@ count_props(linenr_T lnum, int only_starting, int last_line) // previous line, or when not in the last line and it is virtual text // after the line. if ((only_starting && (prop.tp_flags & TP_FLAG_CONT_PREV)) - || (!last_line && prop.tp_col == MAXCOL) - || !text_prop_type_valid(curbuf, &prop)) + || (!last_line && prop.tp_col == MAXCOL)) --result; } return result; diff --git a/src/version.c b/src/version.c index f635e61639..5a7bd2b725 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2146, /**/ 2145, /**/