]> granicus.if.org Git - vim/commitdiff
patch 8.2.0237: crash when setting 'wincolor' on finished terminal window v8.2.0237
authorBram Moolenaar <Bram@vim.org>
Mon, 10 Feb 2020 19:34:04 +0000 (20:34 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 10 Feb 2020 19:34:04 +0000 (20:34 +0100)
Problem:    Crash when setting 'wincolor' on finished terminal window.
            (Bakudankun)
Solution:   Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
            #5607, closes #5610)

src/terminal.c
src/testdir/test_terminal.vim
src/version.c

index cbf8fe0799159ee7194590a47b59c54b41f564ed..10bfae8424041f815fb92f093e64b7b50213b09d 100644 (file)
@@ -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),
index 0963405e83c952f317afb42bfc997aedbaf55da3..8c1d3572a63cd9a4b0de3e7241f56844baf5176c 100644 (file)
@@ -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
index 7ca6baacf1bad0c603352fc263a621726aba4593..7c48e0bdc8e9c41ee447d9cf6d95e35d564a78b1 100644 (file)
@@ -742,6 +742,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    237,
 /**/
     236,
 /**/