To: vim_dev@googlegroups.com Subject: Patch 8.1.1703 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@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 ///