changeset 16656:e8c081146788 v8.1.1330

patch 8.1.1330: using bold attribute in terminal changes the color commit https://github.com/vim/vim/commit/9e58787de737479fb210a3bfef7458d667406d17 Author: Bram Moolenaar <Bram@vim.org> Date: Mon May 13 20:27:23 2019 +0200 patch 8.1.1330: using bold attribute in terminal changes the color Problem: Using bold attribute in terminal changes the color. (Jason Franklin) Solution: Don't set the "bold-highbright" flag in vterm unless the terminal supports less than 16 colors.
author Bram Moolenaar <Bram@vim.org>
date Mon, 13 May 2019 20:30:06 +0200
parents 5986152269cf
children 5002df3f658b
files src/terminal.c src/testdir/dumps/Test_terminal_all_ansi_colors.dump src/testdir/test_terminal.vim src/version.c
diffstat 4 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -3976,7 +3976,9 @@ create_vterm(term_T *term, int rows, int
 	    &term->tl_default_color.fg,
 	    &term->tl_default_color.bg);
 
-    if (t_colors >= 16)
+    if (t_colors < 16)
+	// Less than 16 colors: assume that bold means using a bright color for
+	// the foreground color.
 	vterm_state_set_bold_highbright(vterm_obtain_state(vterm), 1);
 
     /* Required to initialize most things. */
--- a/src/testdir/dumps/Test_terminal_all_ansi_colors.dump
+++ b/src/testdir/dumps/Test_terminal_all_ansi_colors.dump
@@ -1,4 +1,4 @@
->A+0#0000001#8080809@1|B+0#e000002#ff404010@1|C+0#00e0003#40ff4011@1|D+0#e0e0004#ffff4012@1|E+0#0000e05#4040ff13@1|F+0#e000e06#ff40ff14@1|G+0#00e0e07#40ffff15@1|H+0#e0e0e08#ffffff16@1|I+0#8080809#0000001@1|J+0#ff404010#e000002@1|K+0#40ff4011#00e0003@1|L+0#ffff4012#e0e0004@1|M+0#4040ff13#0000e05@1|N+0#ff40ff14#e000e06@1|O+0#40ffff15#00e0e07@1|P+0#ffffff16#e0e0e08@1| +0#0000000#ffffff0@42
+>A+0#0000001#8080809@1|B+0#e000002#ff404010@1|C+0#00e0003#40ff4011@1|D+0#e0e0004#ffff4012@1|E+0#0000e05#4040ff13@1|F+0#e000e06#ff40ff14@1|G+0#00e0e07#40ffff15@1|H+0#e0e0e08#ffffff16@1|I+0#8080809#0000001@1|J+0#ff404010#e000002@1|K+0#40ff4011#00e0003@1|L+0#ffff4012#e0e0004@1|M+0#4040ff13#0000e05@1|N+0#ff40ff14#e000e06@1|O+0#40ffff15#00e0e07@1|P+0#ffffff16#e0e0e08@1| +0#0000000#ffffff0|X+2#e000002&@1|Y+2#40ff4011&@1|Z+2#ff40ff14#e000e06@1| +0#0000000#ffffff0@35
 @2| +0#4040ff13&@72
 |~| @73
 |~| @73
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -1491,7 +1491,7 @@ func Test_terminal_all_ansi_colors()
 
   " Use all the ANSI colors.
   call writefile([
-	\ 'call setline(1, "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP")',
+	\ 'call setline(1, "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP XXYYZZ")',
 	\ 'hi Tblack ctermfg=0 ctermbg=8',
 	\ 'hi Tdarkred ctermfg=1 ctermbg=9',
 	\ 'hi Tdarkgreen ctermfg=2 ctermbg=10',
@@ -1508,6 +1508,9 @@ func Test_terminal_all_ansi_colors()
 	\ 'hi Tmagenta ctermfg=13 ctermbg=5',
 	\ 'hi Tcyan ctermfg=14 ctermbg=6',
 	\ 'hi Twhite ctermfg=15 ctermbg=7',
+	\ 'hi TdarkredBold ctermfg=1 cterm=bold',
+	\ 'hi TgreenBold ctermfg=10 cterm=bold',
+	\ 'hi TmagentaBold ctermfg=13 cterm=bold ctermbg=5',
 	\ '',
 	\ 'call  matchadd("Tblack", "A")',
 	\ 'call  matchadd("Tdarkred", "B")',
@@ -1525,6 +1528,9 @@ func Test_terminal_all_ansi_colors()
 	\ 'call  matchadd("Tmagenta", "N")',
 	\ 'call  matchadd("Tcyan", "O")',
 	\ 'call  matchadd("Twhite", "P")',
+	\ 'call  matchadd("TdarkredBold", "X")',
+	\ 'call  matchadd("TgreenBold", "Y")',
+	\ 'call  matchadd("TmagentaBold", "Z")',
 	\ 'redraw',
 	\ ], 'Xcolorscript')
   let buf = RunVimInTerminal('-S Xcolorscript', {'rows': 10})
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1330,
+/**/
     1329,
 /**/
     1328,