summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-03-12 21:48:32 +0100
committerBram Moolenaar <Bram@vim.org>2018-03-12 21:48:32 +0100
commitf708ac592f47100a36f2bc12ec98ea6357fdfa27 (patch)
treed7344fd69b4d52c81288b2d2881a3f625e04e70b
parent3e4b84d0b55936ac017d20df6651ddd05e38f58f (diff)
patch 8.0.1600: crash when setting t_Co to zero when 'termguicolors' is setv8.0.1600
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)
-rw-r--r--src/screen.c2
-rw-r--r--src/testdir/test_highlight.vim14
-rw-r--r--src/version.c2
3 files changed, 17 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c
index 5ab2e85fc8..77a3c1895f 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 f3d7d0f2a0..0c4be7bf39 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 eabf6fb310..23b0168101 100644
--- 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,