Patch 8.1.1703
Problem: Breaking out of loop by checking window pointer is insufficient.
Solution: Check the window ID and the buffer number. (closes #4683)
Files: src/misc2.c
*** ../vim-8.1.1702/src/misc2.c 2019-07-07 14:05:18.097959237 +0200
--- src/misc2.c 2019-07-16 21:10:15.936319460 +0200
***************
*** 4442,4448 ****
void
parse_queued_messages(void)
{
! win_T *old_curwin = curwin;
int i;
int save_may_garbage_collect = may_garbage_collect;
--- 4442,4449 ----
void
parse_queued_messages(void)
{
! int old_curwin_id = curwin->w_id;
! int old_curbuf_fnum = curbuf->b_fnum;
int i;
int save_may_garbage_collect = may_garbage_collect;
***************
*** 4494,4502 ****
may_garbage_collect = save_may_garbage_collect;
! // If the current window changed we need to bail out of the waiting loop.
! // E.g. when a job exit callback closes the terminal window.
! if (curwin != old_curwin)
ins_char_typebuf(K_IGNORE);
}
#endif
--- 4495,4503 ----
may_garbage_collect = save_may_garbage_collect;
! // If the current window or buffer changed we need to bail out of the
! // waiting loop. E.g. when a job exit callback closes the terminal window.
! if (curwin->w_id != old_curwin_id || curbuf->b_fnum != old_curbuf_fnum)
ins_char_typebuf(K_IGNORE);
}
#endif
*** ../vim-8.1.1702/src/version.c 2019-07-16 20:12:41.461172432 +0200
--- src/version.c 2019-07-16 21:14:47.363400880 +0200
***************
*** 779,780 ****
--- 779,782 ----
{ /* Add new patch number below this line */
+ /**/
+ 1703,
/**/
--
Q: What kind of stuff do you do?
A: I collect hobbies.
/// 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 ///