diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-02-10 20:34:04 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-02-10 20:34:04 +0100 |
commit | 7ba3b91e0385c848c773e2f2d803db01730e7786 (patch) | |
tree | ba8120ac6c9dbbbc973d5206de5d47df9b43044f /src | |
parent | 57ea2924e5dd14aac716a1ee349bdb61f6429f59 (diff) | |
download | vim-git-7ba3b91e0385c848c773e2f2d803db01730e7786.tar.gz |
patch 8.2.0237: crash when setting 'wincolor' on finished terminal windowv8.2.0237
Problem: Crash when setting 'wincolor' on finished terminal window.
(Bakudankun)
Solution: Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
#5607, closes #5610)
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal.c | 2 | ||||
-rw-r--r-- | src/testdir/test_terminal.vim | 15 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/terminal.c b/src/terminal.c index cbf8fe079..10bfae842 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -4276,6 +4276,8 @@ term_update_colors(void) { term_T *term = curwin->w_buffer->b_term; + if (term->tl_vterm == NULL) + return; init_default_colors(term, curwin); vterm_state_set_default_colors( vterm_obtain_state(term->tl_vterm), diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim index 0963405e8..8c1d3572a 100644 --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -2370,3 +2370,18 @@ func Test_terminal_in_popup() call StopVimInTerminal(buf) call delete('XtermPopup') endfunc + +func Test_issue_5607() + let wincount = winnr('$') + exe 'terminal' &shell &shellcmdflag 'exit' + let job = term_getjob(bufnr()) + call WaitForAssert({-> assert_equal("dead", job_status(job))}) + + let old_wincolor = &wincolor + try + set wincolor= + finally + let &wincolor = old_wincolor + bw! + endtry +endfunc diff --git a/src/version.c b/src/version.c index 7ca6baacf..7c48e0bdc 100644 --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 237, +/**/ 236, /**/ 235, |