]> granicus.if.org Git - vim/commitdiff
patch 8.0.1106: terminal colors wrong on an MS-Windows console v8.0.1106
authorBram Moolenaar <Bram@vim.org>
Thu, 14 Sep 2017 13:55:13 +0000 (15:55 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 14 Sep 2017 13:55:13 +0000 (15:55 +0200)
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)

src/terminal.c
src/version.c

index 4e8f370c8f0fe52c95477026c25cbb9fab52375f..1a112f48b4a9ea54705faaa2a0d97a42a5247cf0 100644 (file)
@@ -2497,7 +2497,8 @@ create_vterm(term_T *term, int rows, int cols)
 # 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 cols)
        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);
 
index f2e6b87bec564acc180b69af8a82e313cb203c1f..5696f885536d268969bd1af7eca5de23ee5b8234 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1106,
 /**/
     1105,
 /**/