diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-08-08 14:59:47 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-08 14:59:47 +0100 |
commit | cf85d97bafdcc7837a77ab79cc04da189fa3dd0c (patch) | |
tree | 61f1260f82e849c698d5b0e568a8faf68b7c0be8 | |
parent | 25463610dfc7a4984f70b030463fb98b09772ad9 (diff) |
patch 9.0.0169: insufficient testing for line2byte() with text propertiesv9.0.0169
Problem: Insufficient testing for line2byte() with text properties.
Solution: Add tests with a lot of text.
-rw-r--r-- | src/testdir/test_textprop.vim | 29 | ||||
-rw-r--r-- | src/textprop.c | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 31 insertions, 4 deletions
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index 5ff87b4f10..9fae8070ab 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -904,6 +904,30 @@ func Test_prop_multiline() call prop_type_delete('comment') endfunc +func Run_test_with_line2byte(add_props) + new + setlocal ff=unix + if a:add_props + call prop_type_add('textprop', #{highlight: 'Search'}) + endif + for nr in range(1, 1000) + call setline(nr, 'some longer text here') + if a:add_props && nr % 17 == 0 + call prop_add(nr, 13, #{type: 'textprop', length: 4}) + endif + endfor + call assert_equal(21935, line2byte(998)) + for nr in range(1, 1000, 7) + exe nr .. "s/longer/much more/" + endfor + call assert_equal(22364, line2byte(998)) + + if a:add_props + call prop_type_delete('textprop') + endif + bwipe! +endfunc + func Test_prop_line2byte() call prop_type_add('comment', {'highlight': 'Directory'}) new @@ -935,6 +959,11 @@ func Test_prop_line2byte() call assert_equal(1489, line2byte(400)) bwipe! + " Add many lines so that the data block is split. + " With and without props should give the same result. + call Run_test_with_line2byte(0) + call Run_test_with_line2byte(1) + call prop_type_delete('comment') endfunc diff --git a/src/textprop.c b/src/textprop.c index d67ec4c7e8..d5a53d6cbe 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -9,10 +9,6 @@ /* * Text properties implementation. See ":help text-properties". - * - * TODO: - * - Also test line2byte() with many lines, so that ml_updatechunk() is taken - * into account. */ #include "vim.h" diff --git a/src/version.c b/src/version.c index 2f34ffe2c2..3660eb7c4a 100644 --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 169, +/**/ 168, /**/ 167, |