]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.0905: virtual text after the line wraps when 'wrap' is off v9.0.0905
authorBram Moolenaar <Bram@vim.org>
Fri, 18 Nov 2022 23:13:47 +0000 (23:13 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 18 Nov 2022 23:13:47 +0000 (23:13 +0000)
Problem:    Virtual text after the line wraps when 'wrap' is off.
Solution:   Only set text_prop_follows when wrapping. (closes #11463)

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

index 137b888654d2cfbfd1f1a6454b648c59b9f45dd9..c1ff24c73eef316e169368f33f66979386a45adc 100644 (file)
@@ -2043,7 +2043,9 @@ win_line(
                                    p_extra_free2 = wlv.p_extra;
                                }
 
-                               if (lcs_eol_one < 0 && wlv.col
+                               if (lcs_eol_one < 0
+                                       && wp->w_p_wrap
+                                       && wlv.col
                                               + wlv.n_extra - 2 > wp->w_width)
                                    // don't bail out at end of line
                                    text_prop_follows = TRUE;
diff --git a/src/testdir/dumps/Test_text_after_nowrap_list_1.dump b/src/testdir/dumps/Test_text_after_nowrap_list_1.dump
new file mode 100644 (file)
index 0000000..bbbbe28
--- /dev/null
@@ -0,0 +1,6 @@
+|s+0&#ffffff0|o|m|e| |t|e|x|t| |h|e|r|e|$+0#4040ff13&| +0#0000000&@1|T+0&#ffd7ff255|h|e| |q|u|i|c|k| |b|r|o|w|n| |f|o|x| |j|u|m|p|s|.| +0&#ffffff0@1|■+0&#ffd7ff255| |T|h|e| |f|o|x| |j|u|m|p|>+0#4040ff13#ffffff0
+|$| +0#0000000&@58
+|l|a|s|t| |l|i|n>e|$+0#4040ff13&| +0#0000000&@49
+|~+0#4040ff13&| @58
+|~| @58
+| +0#0000000&@41|3|,|9| @10|A|l@1| 
index c03c5b3fb71362f132949e1c57d453abadffd4e0..c2ee233e3211cf08618ec1dc1efa0da89ebe4733 100644 (file)
@@ -3393,6 +3393,42 @@ func Test_text_after_nowrap()
   call StopVimInTerminal(buf)
 endfunc
 
+func Test_text_after_nowrap_list()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+      vim9script
+
+      set nowrap
+      set listchars+=extends:>
+      set list
+      setline(1, ['some text here', '', 'last line'])
+
+      prop_type_add('test', {highlight: 'DiffChange'})
+      prop_add(1, 0, {
+          type: 'test',
+          text: 'The quick brown fox jumps.',
+          text_padding_left: 2,
+      })
+      prop_add(1, 0, {
+          type: 'test',
+          text: '■ The fox jumps over the lazy dog.',
+          text_padding_left: 2,
+      })
+      prop_add(1, 0, {
+          type: 'test',
+          text: '■ The lazy dog.',
+          text_padding_left: 2,
+      })
+      normal 3G$
+  END
+  call writefile(lines, 'XTextAfterNowrapList', 'D')
+  let buf = RunVimInTerminal('-S XTextAfterNowrapList', #{rows: 6, cols: 60})
+  call VerifyScreenDump(buf, 'Test_text_after_nowrap_list_1', {})
+
+  call StopVimInTerminal(buf)
+endfunc
+
 func Test_text_below_nowrap()
   CheckRunVimInTerminal
 
index fbb68419dc10187bc03885817c2e5beaa5d48c7b..d91a417f4977b8bd3475dc27d42d1ce0b8809bee 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    905,
 /**/
     904,
 /**/