changeset 29629:2f5610696bcd v9.0.0155

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 <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Sat, 06 Aug 2022 18:45:03 +0200
parents 0a8cb672c34c
children 2f9626fcda23
files src/drawline.c src/testdir/dumps/Test_prop_with_text_after_nowrap_1.dump src/testdir/dumps/Test_prop_with_text_after_nowrap_2.dump src/testdir/test_textprop.vim src/version.c
diffstat 5 files changed, 24 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -293,16 +293,6 @@ text_prop_compare(const void *s1, const 
     idx2 = *(int *)s2;
     tp1 = &current_text_props[idx1];
     tp2 = &current_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);
 
--- 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| 
--- 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| 
--- 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\<CR>")
--- 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,