From e24c5b3332b453175e5f73423884087a4aef1247 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 10 Dec 2019 22:11:53 +0100 Subject: patch 8.1.2416: loading menus sets v:errmsg Problem: Loading menus sets v:errmsg. Solution: Avoid setting v:errmsg and add a test for that. (Jason Franklin) --- runtime/delmenu.vim | 35 ++++++++++++++++++----------------- runtime/menu.vim | 10 +++++----- src/testdir/test_menu.vim | 6 ++++++ src/version.c | 2 ++ 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/runtime/delmenu.vim b/runtime/delmenu.vim index 137218264..040cc09aa 100644 --- a/runtime/delmenu.vim +++ b/runtime/delmenu.vim @@ -2,30 +2,31 @@ " Warning: This also deletes all menus defined by the user! " " Maintainer: Bram Moolenaar -" Last Change: 2019 Sep 11 +" Last Change: 2019 Dec 10 aunmenu * tlunmenu * -silent! unlet did_install_default_menus -silent! unlet did_install_syntax_menu -if exists("did_menu_trans") +unlet! g:did_install_default_menus +unlet! g:did_install_syntax_menu + +if exists('g:did_menu_trans') menutrans clear - unlet did_menu_trans + unlet g:did_menu_trans endif -silent! unlet find_help_dialog +unlet! g:find_help_dialog -silent! unlet menutrans_help_dialog -silent! unlet menutrans_path_dialog -silent! unlet menutrans_tags_dialog -silent! unlet menutrans_textwidth_dialog -silent! unlet menutrans_fileformat_dialog -silent! unlet menutrans_fileformat_choices -silent! unlet menutrans_no_file -silent! unlet menutrans_set_lang_to -silent! unlet menutrans_spell_change_ARG_to -silent! unlet menutrans_spell_add_ARG_to_word_list -silent! unlet menutrans_spell_ignore_ARG +unlet! g:menutrans_fileformat_choices +unlet! g:menutrans_fileformat_dialog +unlet! g:menutrans_help_dialog +unlet! g:menutrans_no_file +unlet! g:menutrans_path_dialog +unlet! g:menutrans_set_lang_to +unlet! g:menutrans_spell_add_ARG_to_word_list +unlet! g:menutrans_spell_change_ARG_to +unlet! g:menutrans_spell_ignore_ARG +unlet! g:menutrans_tags_dialog +unlet! g:menutrans_textwidth_dialog " vim: set sw=2 : diff --git a/runtime/menu.vim b/runtime/menu.vim index 8a98d49a1..f01ca7719 100644 --- a/runtime/menu.vim +++ b/runtime/menu.vim @@ -2,7 +2,7 @@ " You can also use this as a start for your own set of menus. " " Maintainer: Bram Moolenaar -" Last Change: 2019 Nov 10 +" Last Change: 2019 Dec 10 " Note that ":an" (short for ":anoremenu") is often used to make a menu work " in all modes and avoid side effects from mappings defined by the user. @@ -700,11 +700,11 @@ func! s:BMShow(...) let g:bmenu_priority = a:1 endif - " remove old menu, if exists; keep one entry to avoid a torn off menu to - " disappear. - silent! unmenu &Buffers + " Remove old menu, if exists; keep one entry to avoid a torn off menu to + " disappear. Use try/catch to avoid setting v:errmsg + try | unmenu &Buffers | catch | endtry exe 'noremenu ' . g:bmenu_priority . ".1 &Buffers.Dummy l" - silent! unmenu! &Buffers + try | unmenu! &Buffers | catch | endtry " create new menu; set 'cpo' to include the let cpo_save = &cpo diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim index efbb982b0..0d6b78ef7 100644 --- a/src/testdir/test_menu.vim +++ b/src/testdir/test_menu.vim @@ -10,7 +10,13 @@ func Test_load_menu() call assert_report('error while loading menus: ' . v:exception) endtry call assert_match('browse confirm w', execute(':menu File.Save')) + + let v:errmsg = '' + doautocmd LoadBufferMenu VimEnter + call assert_equal('', v:errmsg) + source $VIMRUNTIME/delmenu.vim + call assert_equal('', v:errmsg) endfunc func Test_translate_menu() diff --git a/src/version.c b/src/version.c index 645631ec0..18312866e 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2416, /**/ 2415, /**/ -- cgit v1.2.1