# HG changeset patch # User Christian Brabandt # Date 1520888406 -3600 # Node ID 9b09f6e470e05362469f8b981bd7a8c7c2608ab6 # Parent be0536e2f27fae7b1810fba8a4a9f2cc4993ed6e patch 8.0.1600: crash when setting t_Co to zero when 'termguicolors' is set commit https://github.com/vim/vim/commit/f708ac592f47100a36f2bc12ec98ea6357fdfa27 Author: Bram Moolenaar Date: Mon Mar 12 21:48:32 2018 +0100 patch 8.0.1600: crash when setting t_Co to zero when 'termguicolors' is set Problem: Crash when setting t_Co to zero when 'termguicolors' is set. Solution: Use IS_CTERM instead of checking the number of colors. (closes #2710) diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -8127,7 +8127,7 @@ screen_start_highlight(int attr) term_bg_color(aep->ae_u.cterm.bg_color - 1); } - if (t_colors <= 1) + if (!IS_CTERM) { if (aep->ae_u.term.start != NULL) out_str(aep->ae_u.term.start); diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim --- a/src/testdir/test_highlight.vim +++ b/src/testdir/test_highlight.vim @@ -514,3 +514,17 @@ func Test_highlight_eol_on_diff() bwipe! diffoff endfunc + +func Test_termguicolors() + if !exists('+termguicolors') + return + endif + + " Basic test that setting 'termguicolors' works with one color. + set termguicolors + redraw + set t_Co=1 + redraw + set t_Co=0 + redraw +endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -767,6 +767,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1600, +/**/ 1599, /**/ 1598,