diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-03-12 21:48:32 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-03-12 21:48:32 +0100 |
commit | f708ac592f47100a36f2bc12ec98ea6357fdfa27 (patch) | |
tree | d7344fd69b4d52c81288b2d2881a3f625e04e70b | |
parent | 3e4b84d0b55936ac017d20df6651ddd05e38f58f (diff) | |
download | vim-git-f708ac592f47100a36f2bc12ec98ea6357fdfa27.tar.gz |
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.c | 2 | ||||
-rw-r--r-- | src/testdir/test_highlight.vim | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 17 insertions, 1 deletions
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 @@ -767,6 +767,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1600, +/**/ 1599, /**/ 1598, |