Patch 8.2.0327

9 views
Skip to first unread message

Bram Moolenaar

unread,
Feb 28, 2020, 1:12:30 PM2/28/20
to vim...@googlegroups.com

Patch 8.2.0327
Problem: Crash when opening and closing two popup terminal windows.
Solution: Check that prevwin is valid. (closes #5707)
Files: src/popupwin.c, src/testdir/test_terminal.vim


*** ../vim-8.2.0326/src/popupwin.c 2020-02-20 20:11:50.358377694 +0100
--- src/popupwin.c 2020-02-28 19:08:45.782659906 +0100
***************
*** 2114,2122 ****
#ifdef FEAT_TERMINAL
if (wp == curwin && curbuf->b_term != NULL)
{
! // Closing popup window with a terminal: put focus back on the previous
! // window.
! win_enter(prevwin, FALSE);
}
#endif

--- 2114,2144 ----
#ifdef FEAT_TERMINAL
if (wp == curwin && curbuf->b_term != NULL)
{
! win_T *owp;
!
! // Closing popup window with a terminal: put focus back on the first
! // that works:
! // - another popup window with a terminal
! // - the previous window
! // - the first one.
! for (owp = first_popupwin; owp != NULL; owp = owp->w_next)
! if (owp != curwin && owp->w_buffer->b_term != NULL)
! break;
! if (owp != NULL)
! win_enter(owp, FALSE);
! else
! {
! for (owp = curtab->tp_first_popupwin; owp != NULL;
! owp = owp->w_next)
! if (owp != curwin && owp->w_buffer->b_term != NULL)
! break;
! if (owp != NULL)
! win_enter(owp, FALSE);
! else if (win_valid(prevwin))
! win_enter(prevwin, FALSE);
! else
! win_enter(firstwin, FALSE);
! }
}
#endif

*** ../vim-8.2.0326/src/testdir/test_terminal.vim 2020-02-24 21:37:50.950593397 +0100
--- src/testdir/test_terminal.vim 2020-02-28 18:49:40.254037568 +0100
***************
*** 2391,2396 ****
--- 2391,2407 ----
call delete('XtermPopup')
endfunc

+ func Test_double_popup_terminal()
+ let buf1 = term_start(&shell, #{hidden: 1})
+ let win1 = popup_create(buf1, {})
+ let buf2 = term_start(&shell, #{hidden: 1})
+ let win2 = popup_create(buf2, {})
+ call popup_close(win1)
+ call popup_close(win2)
+ exe buf1 .. 'bwipe!'
+ exe buf2 .. 'bwipe!'
+ endfunc
+
func Test_issue_5607()
let wincount = winnr('$')
exe 'terminal' &shell &shellcmdflag 'exit'
*** ../vim-8.2.0326/src/version.c 2020-02-27 21:48:46.634738617 +0100
--- src/version.c 2020-02-28 18:35:35.256846123 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 327,
/**/

--
hundred-and-one symptoms of being an internet addict:
129. You cancel your newspaper subscription.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages