# HG changeset patch # User Bram Moolenaar # Date 1539720906 -7200 # Node ID c085c4cd9bba3ce9f7ffdcb0c5f7262d2081518b # Parent fb7a915f839f49033eaad77b8b52cb9ee42e1ef9 patch 8.1.0481: when "Terminal" highlight is reverted cursor doesn't show commit https://github.com/vim/vim/commit/29e7fe55becd96ba812297de06cec06ea7e79892 Author: Bram Moolenaar Date: Tue Oct 16 22:13:00 2018 +0200 patch 8.1.0481: when "Terminal" highlight is reverted cursor doesn't show Problem: When "Terminal" highlight is reverted cursor doesn't show. Solution: Get the colors of the "Terminal" group. (closes https://github.com/vim/vim/issues/3546) diff --git a/src/terminal.c b/src/terminal.c --- a/src/terminal.c +++ b/src/terminal.c @@ -1953,6 +1953,8 @@ term_get_cursor_shape(guicolor_T *fg, gu { term_T *term = in_terminal_loop; static cursorentry_T entry; + int id; + guicolor_T term_fg, term_bg; vim_memset(&entry, 0, sizeof(entry)); entry.shape = entry.mshape = @@ -1966,9 +1968,24 @@ term_get_cursor_shape(guicolor_T *fg, gu entry.blinkon = 400; entry.blinkoff = 250; } - *fg = gui.back_pixel; + + /* The "Terminal" highlight group overrules the defaults. */ + id = syn_name2id((char_u *)"Terminal"); + if (id != 0) + { + syn_id2colors(id, &term_fg, &term_bg); + *fg = term_bg; + } + else + *fg = gui.back_pixel; + if (term->tl_cursor_color == NULL) - *bg = gui.norm_pixel; + { + if (id != 0) + *bg = term_fg; + else + *bg = gui.norm_pixel; + } else *bg = color_name2handle(term->tl_cursor_color); entry.name = "n"; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -793,6 +793,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 481, +/**/ 480, /**/ 479,