Mercurial > vim
changeset 19358:734ca70c1f12 v8.2.0237
patch 8.2.0237: crash when setting 'wincolor' on finished terminal window
Commit: https://github.com/vim/vim/commit/7ba3b91e0385c848c773e2f2d803db01730e7786
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Feb 10 20:34:04 2020 +0100
patch 8.2.0237: crash when setting 'wincolor' on finished terminal window
Problem: Crash when setting 'wincolor' on finished terminal window.
(Bakudankun)
Solution: Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
#5607, closes #5610)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 10 Feb 2020 20:45:05 +0100 |
parents | 3e040669b87f |
children | 46d8c023834e |
files | src/terminal.c src/testdir/test_terminal.vim src/version.c |
diffstat | 3 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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),
--- 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