summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-08-08 14:59:47 +0100
committerBram Moolenaar <Bram@vim.org>2022-08-08 14:59:47 +0100
commitcf85d97bafdcc7837a77ab79cc04da189fa3dd0c (patch)
tree61f1260f82e849c698d5b0e568a8faf68b7c0be8
parent25463610dfc7a4984f70b030463fb98b09772ad9 (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.vim29
-rw-r--r--src/textprop.c4
-rw-r--r--src/version.c2
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,