# HG changeset patch # User Bram Moolenaar # Date 1659804303 -7200 # Node ID 2f5610696bcda99b31751004ad82a8bb197df743 # Parent 0a8cb672c34c943ca47b160c4decca349bfcb110 patch 9.0.0155 Problem: No test for what patch 9.0.0155 fixes. Solution: Add a test. Fix typos. (closes #10822) Commit: https://github.com/vim/vim/commit/db9b96d84491131460e5876fe21b9bbc58c73ed7 Author: Bram Moolenaar Date: Sat Aug 6 17:38:53 2022 +0100 patch 9.0.0155 Problem: No test for what patch 9.0.0155 fixes. Solution: Add a test. Fix typos. (closes https://github.com/vim/vim/issues/10822) diff --git a/src/drawline.c b/src/drawline.c --- a/src/drawline.c +++ b/src/drawline.c @@ -293,16 +293,6 @@ text_prop_compare(const void *s1, const idx2 = *(int *)s2; tp1 = ¤t_text_props[idx1]; tp2 = ¤t_text_props[idx2]; - pt1 = text_prop_type_by_id(current_buf, tp1->tp_type); - pt2 = text_prop_type_by_id(current_buf, tp2->tp_type); - if (pt1 == pt2) - return 0; - if (pt1 == NULL) - return -1; - if (pt2 == NULL) - return 1; - if (pt1->pt_priority != pt2->pt_priority) - return pt1->pt_priority > pt2->pt_priority ? 1 : -1; col1 = tp1->tp_col; col2 = tp2->tp_col; if (col1 == MAXCOL && col2 == MAXCOL) @@ -322,6 +312,16 @@ text_prop_compare(const void *s1, const if (flags1 != flags2) return flags1 < flags2 ? 1 : -1; } + pt1 = text_prop_type_by_id(current_buf, tp1->tp_type); + pt2 = text_prop_type_by_id(current_buf, tp2->tp_type); + if (pt1 == pt2) + return 0; + if (pt1 == NULL) + return -1; + if (pt2 == NULL) + return 1; + if (pt1->pt_priority != pt2->pt_priority) + return pt1->pt_priority > pt2->pt_priority ? 1 : -1; return col1 == col2 ? 0 : col1 > col2 ? 1 : -1; } #endif @@ -1785,7 +1785,8 @@ win_line( // When 'wrap' is off then for "below" we need // to start a new line explictly. - if (!wp->w_p_wrap) + if (below && wlv.col > win_col_off(wp) + && !wp->w_p_wrap) { draw_screen_line(wp, &wlv); diff --git a/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump b/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump --- a/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump +++ b/src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump @@ -1,8 +1,10 @@ -|o+0&#ffffff0|n|e| @56 +|o+0&#ffffff0|n|e| +0&#ffd7ff255|A|f|t|e|r| |t|h|e| |t|e|x|t| +0&#ffffff0@31|r+0&#ffd7ff255|i|g|h|t| |h|e|r|e | +0#ffffff16#e000002|B|e|l|o|w| |t|h|e| |l|i|n|e| | +0#0000000#ffffff0@43 |t|w|o| @56 |a+0&#ffff4012|n|o|t|h|e|r| +0&#ffffff0@52 |O+0#ffffff16#e000002|n|e| |M|o|r|e| |H|e|r|e| +0#0000000#ffffff0@46 |t|h|r|e>e| @54 |~+0#4040ff13&| @58 +|~| @58 +|~| @58 | +0#0000000&@41|3|,|5| @10|A|l@1| diff --git a/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump b/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump --- a/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump +++ b/src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump @@ -1,8 +1,10 @@ -| +0#0000e05#a8a8a8255@4|o+0#0000000#ffffff0|n|e| @51 +| +0#0000e05#a8a8a8255@4|o+0#0000000#ffffff0|n|e| +0&#ffd7ff255|A|f|t|e|r| |t|h|e| |t|e|x|t| +0&#ffffff0@26|r+0&#ffd7ff255|i|g|h|t| |h|e|r|e | +0#0000e05#a8a8a8255@4| +0#ffffff16#e000002|B|e|l|o|w| |t|h|e| |l|i|n|e| | +0#0000000#ffffff0@38 | +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|w|o| @51 | +0#0000e05#a8a8a8255@4|a+0#0000000#ffff4012|n|o|t|h|e|r| +0&#ffffff0@47 | +0#0000e05#a8a8a8255@4|O+0#ffffff16#e000002|n|e| |M|o|r|e| |H|e|r|e| +0#0000000#ffffff0@41 | +0#0000e05#a8a8a8255@4|t+0#0000000#ffffff0|h|r|e>e| @49 |~+0#4040ff13&| @58 +|~| @58 +|~| @58 | +0#0000000&@41|3|,|5| @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 @@ -2434,13 +2434,16 @@ func Test_props_with_text_after_nowrap() call setline(1, ['one', 'two', 'three']) call prop_type_add('belowprop', #{highlight: 'ErrorMsg'}) call prop_type_add('anotherprop', #{highlight: 'Search'}) + call prop_type_add('someprop', #{highlight: 'DiffChange'}) call prop_add(1, 0, #{type: 'belowprop', text: ' Below the line ', text_align: 'below'}) call prop_add(2, 0, #{type: 'anotherprop', text: 'another', text_align: 'below'}) call prop_add(2, 0, #{type: 'belowprop', text: 'One More Here', text_align: 'below'}) + call prop_add(1, 0, #{type: 'someprop', text: 'right here', text_align: 'right'}) + call prop_add(1, 0, #{type: 'someprop', text: ' After the text', text_align: 'after'}) normal G$ END call writefile(lines, 'XscriptPropsAfterNowrap') - let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 8, cols: 60}) + let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 10, cols: 60}) call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_1', {}) call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3\") diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 155, +/**/ 154, /**/ 153,