From: Bram Moolenaar Date: Thu, 14 Sep 2017 13:55:13 +0000 (+0200) Subject: patch 8.0.1106: terminal colors wrong on an MS-Windows console X-Git-Tag: v8.0.1106 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=69e8aa75112a0b12811a4f4d11061adceffbbabc;p=vim 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) --- diff --git a/src/terminal.c b/src/terminal.c index 4e8f370c8..1a112f48b 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -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); diff --git a/src/version.c b/src/version.c index f2e6b87be..5696f8855 100644 --- a/src/version.c +++ b/src/version.c @@ -769,6 +769,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1106, /**/ 1105, /**/