diff options
author | Sean Dewar <seandewar@users.noreply.github.com> | 2021-11-07 21:46:06 +0000 |
---|---|---|
committer | Sean Dewar <seandewar@users.noreply.github.com> | 2021-12-07 11:34:27 +0000 |
commit | a128b64e73322a41b175811dc88a7f7046278de3 (patch) | |
tree | 6ea669a516e82796d81337c596baac7dfb6df598 | |
parent | 38cd91de5f0f89daccdcbac16508af830d8001d7 (diff) | |
download | rneovim-a128b64e73322a41b175811dc88a7f7046278de3.tar.gz rneovim-a128b64e73322a41b175811dc88a7f7046278de3.tar.bz2 rneovim-a128b64e73322a41b175811dc88a7f7046278de3.zip |
vim-patch:8.2.1783: try-catch test fails
Problem: Try-catch test fails.
Solution: Don't call win_enter(), only call enterering_window().
https://github.com/vim/vim/commit/bdf931c25b4fe78877106ca529baee7899d0f6a4
v8.2.1781 caused Test_reload_in_try_catch() from v8.2.0004 to fail in Vim, but
it has not been ported yet.
-rw-r--r-- | src/nvim/autocmd.c | 7 | ||||
-rw-r--r-- | src/nvim/testdir/runtest.vim | 5 | ||||
-rw-r--r-- | src/nvim/window.c | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c index e274d00a77..9044657358 100644 --- a/src/nvim/autocmd.c +++ b/src/nvim/autocmd.c @@ -1208,15 +1208,18 @@ win_found: win_T *const save_curwin = win_find_by_handle(aco->save_curwin_handle); if (save_curwin != NULL) { - win_enter(save_curwin, true); + curwin = save_curwin; } else { // Hmm, original window disappeared. Just use the first one. curwin = firstwin; } + curbuf = curwin->w_buffer; + // May need to restore insert mode for a prompt buffer. + entering_window(curwin); + prevwin = win_find_by_handle(aco->save_prevwin_handle); vars_clear(&aucmd_win->w_vars->dv_hashtab); // free all w: variables hash_init(&aucmd_win->w_vars->dv_hashtab); // re-use the hashtab - curbuf = curwin->w_buffer; xfree(globaldir); globaldir = aco->globaldir; diff --git a/src/nvim/testdir/runtest.vim b/src/nvim/testdir/runtest.vim index 49993c03aa..ab047fd2a8 100644 --- a/src/nvim/testdir/runtest.vim +++ b/src/nvim/testdir/runtest.vim @@ -197,7 +197,12 @@ func RunTheTest(test) " Close any extra tab pages and windows and make the current one not modified. while tabpagenr('$') > 1 + let winid = win_getid() quit! + if winid == win_getid() + echoerr 'Could not quit window' + break + endif endwhile while 1 diff --git a/src/nvim/window.c b/src/nvim/window.c index ddf50b47a7..e0ba4b72f3 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -2256,7 +2256,7 @@ static void leaving_window(win_T *const win) } } -static void entering_window(win_T *const win) +void entering_window(win_T *const win) FUNC_ATTR_NONNULL_ALL { // Only matters for a prompt window. |