changeset 12453:5d228b1cda64 v8.0.1106

patch 8.0.1106: terminal colors wrong on an MS-Windows console commit https://github.com/vim/vim/commit/69e8aa75112a0b12811a4f4d11061adceffbbabc Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 14 15:55:13 2017 +0200 patch 8.0.1106: terminal colors wrong on an MS-Windows console Problem: Terminal colors on an MS-Windows console are not matching the normal colors. Solution: Use the normal colors for the terminal. (Yasuhiro Matsumoto, closes #2087)
author Christian Brabandt <cb@256bit.org>
date Thu, 14 Sep 2017 16:00:06 +0200
parents 687e401b4d7d
children c7bdd7c9f255
files src/terminal.c src/version.c
diffstat 2 files changed, 26 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -2497,7 +2497,8 @@ create_vterm(term_T *term, int rows, int
 # endif
        )
     {
-	guicolor_T	    fg_rgb, bg_rgb;
+	guicolor_T	fg_rgb = INVALCOLOR;
+	guicolor_T	bg_rgb = INVALCOLOR;
 
 	if (id != 0)
 	    syn_id2colors(id, &fg_rgb, &bg_rgb);
@@ -2551,6 +2552,28 @@ create_vterm(term_T *term, int rows, int
 	if (cterm_bg >= 0)
 	    cterm_color2rgb(cterm_bg, bg);
     }
+#if defined(WIN3264) && !defined(FEAT_GUI_W32)
+    else
+    {
+	int tmp;
+
+	/* In an MS-Windows console we know the normal colors. */
+	if (cterm_normal_fg_color > 0)
+	{
+	    cterm_color2rgb(cterm_normal_fg_color - 1, fg);
+	    tmp = fg->red;
+	    fg->red = fg->blue;
+	    fg->blue = tmp;
+	}
+	if (cterm_normal_bg_color > 0)
+	{
+	    cterm_color2rgb(cterm_normal_bg_color - 1, bg);
+	    tmp = bg->red;
+	    bg->red = bg->blue;
+	    bg->blue = tmp;
+	}
+    }
+#endif
 
     vterm_state_set_default_colors(vterm_obtain_state(vterm), fg, bg);
 
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1106,
+/**/
     1105,
 /**/
     1104,