changeset 18088:687d08fee911 v8.1.2039

patch 8.1.2039: character from 'showbreak' does not use 'wincolor' Commit: https://github.com/vim/vim/commit/8ae54375cad51c3c05b7bb5600305062a1ebad1c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 15 18:11:16 2019 +0200 patch 8.1.2039: character from 'showbreak' does not use 'wincolor' Problem: Character from 'showbreak' does not use 'wincolor'. (Nick Jensen) Solution: Mix with 'wincolor'. (closes https://github.com/vim/vim/issues/4938)
author Bram Moolenaar <Bram@vim.org>
date Sun, 15 Sep 2019 18:15:04 +0200
parents 4dd656f53e67
children 72312a8d592d
files src/screen.c src/testdir/dumps/Test_popupwin_showbreak.dump src/testdir/test_popupwin.vim src/version.c
diffstat 4 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -4153,6 +4153,9 @@ win_line(
 		     * required when 'linebreak' is also set. */
 		    if (tocol == vcol)
 			tocol += n_extra;
+		    // combine 'showbreak' with 'wincolor'
+		    if (win_attr != 0)
+			char_attr = hl_combine_attr(win_attr, char_attr);
 #  ifdef FEAT_SYN_HL
 		    // combine 'showbreak' with 'cursorline'
 		    if (cul_attr != 0)
--- a/src/testdir/dumps/Test_popupwin_showbreak.dump
+++ b/src/testdir/dumps/Test_popupwin_showbreak.dump
@@ -1,10 +1,10 @@
 >1+0&#ffffff0| @73
 |2| @73
-|3| @73
-|4| @25|╔+0#0000001#ffd7ff255|═@17|╗| +0#0000000#ffffff0@27
-|5| @25|║+0#0000001#ffd7ff255| |a| |l|o|n|g| |l|i|n|e| |h|e|r|e| |║| +0#0000000#ffffff0@27
-|6| @25|╚+0#0000001#ffd7ff255|═@17|╝| +0#0000000#ffffff0@27
-|7| @73
+|3| @27|╔+0#0000001#ffd7ff255|═@13|╗| +0#0000000#ffffff0@29
+|4| @27|║+0#0000001#ffd7ff255| |a| |l|o|n|g| |l|i|n|e| @1|║| +0#0000000#ffffff0@29
+|5| @27|║+0#0000001#ffd7ff255| |>+0#4040ff13&@1| |h+0#0000001&|e|r|e| |t|h|a|t| |║| +0#0000000#ffffff0@29
+|6| @27|║+0#0000001#ffd7ff255| |>+0#4040ff13&@1| | +0#0000001&|w|r|a|p|s| @3|║| +0#0000000#ffffff0@29
+|7| @27|╚+0#0000001#ffd7ff255|═@13|╝| +0#0000000#ffffff0@29
 |8| @73
 |9| @73
 @57|1|,|1| @10|T|o|p| 
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -797,8 +797,9 @@ func Test_popup_with_showbreak()
 	 set showbreak=>>\ 
 	 call setline(1, range(1, 20))
 	 let winid = popup_dialog(
-	   \ 'a long line here',
-	   \ #{filter: 'popup_filter_yesno'})
+	   \ 'a long line here that wraps',
+	   \ #{filter: 'popup_filter_yesno',
+	   \   maxwidth: 12})
   END
   call writefile(lines, 'XtestPopupShowbreak')
   let buf = RunVimInTerminal('-S XtestPopupShowbreak', #{rows: 10})
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2039,
+/**/
     2038,
 /**/
     2037,