diff options
author | ichizok <gclient.gaap@gmail.com> | 2021-12-17 09:44:33 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-12-17 09:44:33 +0000 |
commit | c3f91c0648f4b04a6a9ceb4ccec45ea767a63796 (patch) | |
tree | 79e2cead5ba42a7870c2cd903fd3146db2b81f1f /src/autocmd.c | |
parent | 994a0a298bfbdd03e2eaae64268739d617080644 (diff) |
patch 8.2.3833: error from term_start() not caught by try/catchv8.2.3833
Problem: Error from term_start() not caught by try/catch.
Solution: save and restore did_emsg when applying autocommands. (Ozaki
Kiichi, closes #9361)
Diffstat (limited to 'src/autocmd.c')
-rw-r--r-- | src/autocmd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/autocmd.c b/src/autocmd.c index 5ec911ab74..305679cf32 100644 --- a/src/autocmd.c +++ b/src/autocmd.c @@ -1891,6 +1891,7 @@ apply_autocmds_group( int did_save_redobuff = FALSE; save_redo_T save_redo; int save_KeyTyped = KeyTyped; + int save_did_emsg; ESTACK_CHECK_DECLARATION /* @@ -2171,9 +2172,13 @@ apply_autocmds_group( // make sure cursor and topline are valid check_lnums(TRUE); + save_did_emsg = did_emsg; + do_cmdline(NULL, getnextac, (void *)&patcmd, DOCMD_NOWAIT|DOCMD_VERBOSE|DOCMD_REPEAT); + did_emsg += save_did_emsg; + if (nesting == 1) // restore cursor and topline, unless they were changed reset_lnums(); |