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 5ab2e85..77a3c18 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -8127,7 +8127,7 @@
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 f3d7d0f..0c4be7b 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -514,3 +514,17 @@
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 eabf6fb..23b0168 100644
--- a/src/version.c
+++ b/src/version.c
@@ -767,6 +767,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1600,
+/**/
1599,
/**/
1598,