# HG changeset patch # User Bram Moolenaar # Date 1665504005 -7200 # Node ID 8f25424b4bfd608d43e9340cc3021979ae5b1759 # Parent f36add9905840d6a9f3eb4f7b7a9c091a0a77a0e patch 9.0.0723: extra empty line below virtual text when 'list' is set Commit: https://github.com/vim/vim/commit/a9a364872e41932990aba1787af65f67c7e14917 Author: Bram Moolenaar Date: Tue Oct 11 16:47:22 2022 +0100 patch 9.0.0723: extra empty line below virtual text when 'list' is set Problem: Extra empty line below virtual text when 'list' is set. Solution: Do not reset lcs_eol_one but set text_prop_follows. (closes https://github.com/vim/vim/issues/11339) diff --git a/src/drawline.c b/src/drawline.c --- a/src/drawline.c +++ b/src/drawline.c @@ -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 --- /dev/null +++ b/src/testdir/dumps/Test_long_text_with_padding_2.dump @@ -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| diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -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\") + call VerifyScreenDump(buf, 'Test_long_text_with_padding_2', {}) + call StopVimInTerminal(buf) endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -700,6 +700,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 723, +/**/ 722, /**/ 721,