patch 8.1.1337: get empty text prop when splitting line just after text prop
Problem: Get empty text prop when splitting line just after text prop.
Solution: Do not create an empty text prop at the start of the line.
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 6cc38d5..237eda9 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -316,16 +316,15 @@
call assert_equal(expected, prop_list(2))
call DeletePropTypes()
- " split just after first prop, empty prop and second prop move to next line
+ " split just after first prop, second prop move to next line
let expected = SetupOneLine() " 'xonex xtwoxx'
exe "normal 0fea\<CR>\<Esc>"
call assert_equal('xone', getline(1))
call assert_equal('x xtwoxx', getline(2))
let exp_first = expected[0:0]
call assert_equal(exp_first, prop_list(1))
- let expected[0].col = 1
- let expected[0].length = 0
- let expected[1].col -= 4
+ let expected = expected[1:1]
+ let expected[0].col -= 4
call assert_equal(expected, prop_list(2))
call DeletePropTypes()
diff --git a/src/textprop.c b/src/textprop.c
index 8c1e46c..361ecb1 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1075,7 +1075,9 @@
++prevprop.ga_len;
}
- if (prop.tp_col + prop.tp_len >= skipped && ga_grow(&nextprop, 1) == OK)
+ // Only add the property to the next line if the length is bigger than
+ // zero.
+ if (prop.tp_col + prop.tp_len > skipped && ga_grow(&nextprop, 1) == OK)
{
p = ((textprop_T *)nextprop.ga_data) + nextprop.ga_len;
*p = prop;
diff --git a/src/version.c b/src/version.c
index 01c4394..c34eed0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1337,
+/**/
1336,
/**/
1335,