From: Bram Moolenaar Date: Mon, 12 Mar 2018 20:48:32 +0000 (+0100) Subject: patch 8.0.1600: crash when setting t_Co to zero when 'termguicolors' is set X-Git-Tag: v8.0.1600 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f708ac592f47100a36f2bc12ec98ea6357fdfa27;p=vim 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 index 5ab2e85fc..77a3c1895 100644 --- 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 index f3d7d0f2a..0c4be7bf3 100644 --- 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 index eabf6fb31..23b016810 100644 --- a/src/version.c +++ b/src/version.c @@ -766,6 +766,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1600, /**/ 1599, /**/