To: vim_dev@googlegroups.com Subject: Patch 8.2.3833 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.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) Files: src/autocmd.c, src/testdir/test_terminal3.vim *** ../vim-8.2.3832/src/autocmd.c 2021-11-29 20:39:06.670101630 +0000 --- src/autocmd.c 2021-12-17 09:29:05.233379980 +0000 *************** *** 1891,1896 **** --- 1891,1897 ---- int did_save_redobuff = FALSE; save_redo_T save_redo; int save_KeyTyped = KeyTyped; + int save_did_emsg; ESTACK_CHECK_DECLARATION /* *************** *** 2171,2179 **** --- 2172,2184 ---- // 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(); *** ../vim-8.2.3832/src/testdir/test_terminal3.vim 2021-11-20 13:45:37.810729599 +0000 --- src/testdir/test_terminal3.vim 2021-12-17 09:29:05.233379980 +0000 *************** *** 901,905 **** --- 901,925 ---- only! endfunc + func Test_terminal_term_start_error() + func s:term_start_error() abort + try + return term_start([[]]) + catch + return v:exception + finally + " + endtry + endfunc + autocmd WinEnter * call type(0) + + " Must not crash in s:term_start_error, nor the exception thrown. + let result = s:term_start_error() + call assert_match('^Vim(return):E730:', result) + + autocmd! WinEnter + delfunc s:term_start_error + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.3832/src/version.c 2021-12-16 21:11:21.184286374 +0000 --- src/version.c 2021-12-17 09:31:44.580935034 +0000 *************** *** 751,752 **** --- 751,754 ---- { /* Add new patch number below this line */ + /**/ + 3833, /**/ -- CVS sux, men don't like commitment /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///