]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.0723: extra empty line below virtual text when 'list' is set v9.0.0723
authorBram Moolenaar <Bram@vim.org>
Tue, 11 Oct 2022 15:47:22 +0000 (16:47 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 11 Oct 2022 15:47:22 +0000 (16:47 +0100)
Problem:    Extra empty line below virtual text when 'list' is set.
Solution:   Do not reset lcs_eol_one but set text_prop_follows. (closes #11339)

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

index 2f28417acbd6afecb775d0205efc3ce1fd1d9a8e..3a4156bc2f6515347ce98b879ffee54ce77cb31e 100644 (file)
@@ -2017,7 +2017,7 @@ win_line(
                                if (lcs_eol_one < 0 && wlv.col
                                               + wlv.n_extra - 2 > wp->w_width)
                                    // don't bail out at end of line
-                                   lcs_eol_one = 0;
+                                   text_prop_follows = TRUE;
 
                                // When 'wrap' is off then for "below" we need
                                // to start a new line explictly.
@@ -2067,7 +2067,7 @@ win_line(
                        // If this is an "above" text prop and 'nowrap' the we
                        // must wrap anyway.
                        text_prop_above = above;
-                       text_prop_follows = other_tpi != -1
+                       text_prop_follows |= other_tpi != -1
                            && (wp->w_p_wrap
                                   || (text_props[other_tpi].tp_flags
                               & (TP_FLAG_ALIGN_BELOW | TP_FLAG_ALIGN_RIGHT)));
diff --git a/src/testdir/dumps/Test_long_text_with_padding_2.dump b/src/testdir/dumps/Test_long_text_with_padding_2.dump
new file mode 100644 (file)
index 0000000..981613f
--- /dev/null
@@ -0,0 +1,8 @@
+|f+0&#ffffff0|i|r|s|t| |l|i|n|e|$+0#4040ff13&| +0#0000000&@48
+@3|a+0&#ffd7ff255|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|t|e|r| |a|f|…
+| +0&#ffffff0@29|m+0&#ffd7ff255|o|r|e| |m|o|r|e| |m|o|r|e| |m|o|r|e| |m|o|r|e| |m|o|r|e|…
+|s+0&#ffffff0|e|c|o|n|d| >l|i|n|e|$+0#4040ff13&| +0#0000000&@47
+|~+0#4040ff13&| @58
+|~| @58
+|~| @58
+|:+0#0000000&|s|e|t| |l|i|s|t| @32|2|,|8| @10|A|l@1| 
index e4a5f2d655fc5c1c6ceea4ad402a342d9b21d033..41d1609434d831d8a3ea5ac6f9a7b06c03f845b0 100644 (file)
@@ -3256,6 +3256,9 @@ func Test_long_text_below_with_padding()
   let buf = RunVimInTerminal('-S XlongTextBelowWithPadding', #{rows: 8, cols: 60})
   call VerifyScreenDump(buf, 'Test_long_text_with_padding_1', {})
 
+  call term_sendkeys(buf, ":set list\<CR>")
+  call VerifyScreenDump(buf, 'Test_long_text_with_padding_2', {})
+
   call StopVimInTerminal(buf)
 endfunc
 
index 26768930f1a583921f44c543d98df55677fbf5f4..9130e787a50e9c8b3fc426a43c600a3b8f970f61 100644 (file)
@@ -699,6 +699,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    723,
 /**/
     722,
 /**/