Mercurial > vim
changeset 22470:f7471450243c v8.2.1783
patch 8.2.1783: try-catch test fails
Commit: https://github.com/vim/vim/commit/bdf931c25b4fe78877106ca529baee7899d0f6a4
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Oct 1 22:37:40 2020 +0200
patch 8.2.1783: try-catch test fails
Problem: Try-catch test fails.
Solution: Don't call win_enter(), only call enterering_window().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 01 Oct 2020 22:45:05 +0200 |
parents | fd9b84013893 |
children | 6c851d7824aa |
files | src/autocmd.c src/proto/window.pro src/testdir/runtest.vim src/version.c src/window.c |
diffstat | 5 files changed, 16 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/autocmd.c +++ b/src/autocmd.c @@ -1533,18 +1533,22 @@ win_found: unblock_autocmds(); if (win_valid(aco->save_curwin)) - win_enter(aco->save_curwin, TRUE); + curwin = aco->save_curwin; else // Hmm, original window disappeared. Just use the first one. curwin = firstwin; + curbuf = curwin->w_buffer; +#ifdef FEAT_JOB_CHANNEL + // May need to restore insert mode for a prompt buffer. + entering_window(curwin); +#endif + if (win_valid(aco->save_prevwin)) prevwin = aco->save_prevwin; #ifdef FEAT_EVAL vars_clear(&aucmd_win->w_vars->dv_hashtab); // free all w: variables hash_init(&aucmd_win->w_vars->dv_hashtab); // re-use the hashtab #endif - curbuf = curwin->w_buffer; - vim_free(globaldir); globaldir = aco->globaldir;
--- a/src/proto/window.pro +++ b/src/proto/window.pro @@ -10,6 +10,7 @@ int win_count(void); int make_windows(int count, int vertical); void win_move_after(win_T *win1, win_T *win2); void win_equal(win_T *next_curwin, int current, int dir); +void entering_window(win_T *win); void close_windows(buf_T *buf, int keep_curwin); int one_window(void); int win_close(win_T *win, int free_buf);
--- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -227,7 +227,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