]> granicus.if.org Git - vim/commitdiff
patch 8.2.2493: text property for text left of window shows up v8.2.2493
authorBram Moolenaar <Bram@vim.org>
Wed, 10 Feb 2021 16:20:28 +0000 (17:20 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 10 Feb 2021 16:20:28 +0000 (17:20 +0100)
Problem:    Text property for text left of window shows up.
Solution:   Check if the text property ends before the current column.
            (closes #7806)

src/drawline.c
src/testdir/dumps/Test_textprop_nowrap_01.dump [new file with mode: 0644]
src/testdir/dumps/Test_textprop_nowrap_02.dump [new file with mode: 0644]
src/testdir/test_textprop.vim
src/version.c

index 4dde0d074039d479af3af4bc8768a39a216702a3..077e7fcde37f8270af11c0c8f4111031093867cf 100644 (file)
@@ -1418,7 +1418,12 @@ win_line(
                // Add any text property that starts in this column.
                while (text_prop_next < text_prop_count
                           && bcol >= text_props[text_prop_next].tp_col - 1)
-                   text_prop_idxs[text_props_active++] = text_prop_next++;
+               {
+                   if (bcol <= text_props[text_prop_next].tp_col - 1
+                                          + text_props[text_prop_next].tp_len)
+                       text_prop_idxs[text_props_active++] = text_prop_next;
+                   ++text_prop_next;
+               }
 
                text_prop_attr = 0;
                text_prop_combine = FALSE;
diff --git a/src/testdir/dumps/Test_textprop_nowrap_01.dump b/src/testdir/dumps/Test_textprop_nowrap_01.dump
new file mode 100644 (file)
index 0000000..f0fe7db
--- /dev/null
@@ -0,0 +1,6 @@
+>a+0&#ffffff0|l@1|e|r| |t|h|a|n| |4+0#ffffff16#e000002|5|6|7|.+0#0000000#ffffff0|X@58
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|,|2|1| @9|A|l@1| 
diff --git a/src/testdir/dumps/Test_textprop_nowrap_02.dump b/src/testdir/dumps/Test_textprop_nowrap_02.dump
new file mode 100644 (file)
index 0000000..104c674
--- /dev/null
@@ -0,0 +1,6 @@
+|X+0&#ffffff0@36>X| @36
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|,|1@2| @8|A|l@1| 
index 245533567f3478a4b57a995855fcb855417fdba8..469d9f77ddccd38fb5682a8790e7075c9f55c39f 100644 (file)
@@ -1049,6 +1049,30 @@ func Test_textprop_after_tab()
   call delete('XtestPropTab')
 endfunc
 
+func Test_textprop_nowrap_scrolled()
+  CheckScreendump
+
+  let lines =<< trim END
+       vim9script
+       set nowrap
+       setline(1, 'The number 123 is smaller than 4567.' .. repeat('X', &columns))
+       prop_type_add('number', {'highlight': 'ErrorMsg'})
+       prop_add(1, 12, {'length': 3, 'type': 'number'})
+       prop_add(1, 32, {'length': 4, 'type': 'number'})
+       feedkeys('gg20zl', 'nxt')
+  END
+  call writefile(lines, 'XtestNowrap')
+  let buf = RunVimInTerminal('-S XtestNowrap', {'rows': 6})
+  call VerifyScreenDump(buf, 'Test_textprop_nowrap_01', {})
+
+  call term_sendkeys(buf, "$")
+  call VerifyScreenDump(buf, 'Test_textprop_nowrap_02', {})
+
+  " clean up
+  call StopVimInTerminal(buf)
+  call delete('XtestNowrap')
+endfunc
+
 func Test_textprop_with_syntax()
   CheckScreendump
 
index 0209fd2b86f1f9b3e41f567bc088c5aa3f575c8e..d787ca7b67453104c6ef48abf6e22fba5d3376fc 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2493,
 /**/
     2492,
 /**/