summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-09-14 15:55:13 +0200
committerBram Moolenaar <Bram@vim.org>2017-09-14 15:55:13 +0200
commit69e8aa75112a0b12811a4f4d11061adceffbbabc (patch)
treece2ed38aee2bc47d8fbf3e2c8e2363478ebb599c
parent1190cf68e27a123cf9f6fb57897782a3b9f7b810 (diff)
patch 8.0.1106: terminal colors wrong on an MS-Windows consolev8.0.1106
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)
-rw-r--r--src/terminal.c25
-rw-r--r--src/version.c2
2 files changed, 26 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 4e8f370c8f..1a112f48b4 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 f2e6b87bec..5696f88553 100644
--- 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,