Mercurial > vim
changeset 16670:5733d8e33bce v8.1.1337
patch 8.1.1337: get empty text prop when splitting line just after text prop
commit https://github.com/vim/vim/commit/5c65e6a062dfc7d20931fa1f73d03b1714a4d5e1
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri May 17 11:08:56 2019 +0200
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 17 May 2019 11:15:06 +0200 |
parents | e4bdd8a2b0c2 |
children | 10cee1b8fcb3 |
files | src/testdir/test_textprop.vim src/textprop.c src/version.c |
diffstat | 3 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -316,16 +316,15 @@ func Test_prop_open_line() 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()
--- a/src/textprop.c +++ b/src/textprop.c @@ -1075,7 +1075,9 @@ adjust_props_for_split( ++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;