diff --git a/src/menu.c b/src/menu.c index 15dd5e415d..98986e9b21 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1976,7 +1976,12 @@ gui_show_popupmenu(void) /* Only show a popup when it is defined and has entries */ if (menu != NULL && menu->children != NULL) + { + /* Update the menus now, in case the MenuPopup autocommand did + * anything. */ + gui_update_menus(0); gui_mch_show_popupmenu(menu); + } } #endif /* FEAT_GUI */ diff --git a/src/os_unix.c b/src/os_unix.c index 913a025fac..dafd88b7e0 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -1090,6 +1090,12 @@ deathtrap SIGDEFARG(sigarg) /* Remember how often we have been called. */ ++entered; +#ifdef FEAT_AUTOCMD + /* Executing autocommands is likely to use more stack space than we have + * available in the signal stack. */ + block_autocmds(); +#endif + #ifdef FEAT_EVAL /* Set the v:dying variable. */ set_vim_var_nr(VV_DYING, (long)entered); @@ -1171,6 +1177,8 @@ deathtrap SIGDEFARG(sigarg) * calling free(). */ preserve_exit(); + /* NOTREACHED */ + #ifdef NBDEBUG reset_signals(); may_core_dump(); diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim index d65e528b7b..9d68a14cce 100644 --- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -1335,6 +1335,20 @@ func Test_using_freed_memory() call test_garbagecollect_now() endfunc +func Test_collapse_buffers() + if !executable('cat') + return + endif + sp test_channel.vim + let g:linecount = line('$') + close + split testout + 1,$delete + call job_start('cat test_channel.vim', {'out_io': 'buffer', 'out_name': 'testout'}) + call s:waitFor('line("$") > g:linecount') + call assert_true(line('$') > g:linecount) + bwipe! +endfunc " Uncomment this to see what happens, output is in src/testdir/channellog. diff --git a/src/version.c b/src/version.c index 2a2c409d2f..509a8ecfc3 100644 --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,12 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1916, +/**/ + 1915, +/**/ + 1914, /**/ 1913, /**/