From 69e8aa75112a0b12811a4f4d11061adceffbbabc Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 14 Sep 2017 15:55:13 +0200 Subject: [PATCH] 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) --- src/terminal.c | 25 ++++++++++++++++++++++++- src/version.c | 2 ++ 2 files changed, 26 insertions(+), 1 deletion(-) 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, /**/ -- 2.50.1