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)
This commit is contained in:
Bram Moolenaar
2019-12-10 22:11:53 +01:00
parent 04357fbb87
commit e24c5b3332
4 changed files with 31 additions and 22 deletions

View File

@ -2,30 +2,31 @@
" Warning: This also deletes all menus defined by the user! " Warning: This also deletes all menus defined by the user!
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Sep 11 " Last Change: 2019 Dec 10
aunmenu * aunmenu *
tlunmenu * tlunmenu *
silent! unlet did_install_default_menus unlet! g:did_install_default_menus
silent! unlet did_install_syntax_menu unlet! g:did_install_syntax_menu
if exists("did_menu_trans")
if exists('g:did_menu_trans')
menutrans clear menutrans clear
unlet did_menu_trans unlet g:did_menu_trans
endif endif
silent! unlet find_help_dialog unlet! g:find_help_dialog
silent! unlet menutrans_help_dialog unlet! g:menutrans_fileformat_choices
silent! unlet menutrans_path_dialog unlet! g:menutrans_fileformat_dialog
silent! unlet menutrans_tags_dialog unlet! g:menutrans_help_dialog
silent! unlet menutrans_textwidth_dialog unlet! g:menutrans_no_file
silent! unlet menutrans_fileformat_dialog unlet! g:menutrans_path_dialog
silent! unlet menutrans_fileformat_choices unlet! g:menutrans_set_lang_to
silent! unlet menutrans_no_file unlet! g:menutrans_spell_add_ARG_to_word_list
silent! unlet menutrans_set_lang_to unlet! g:menutrans_spell_change_ARG_to
silent! unlet menutrans_spell_change_ARG_to unlet! g:menutrans_spell_ignore_ARG
silent! unlet menutrans_spell_add_ARG_to_word_list unlet! g:menutrans_tags_dialog
silent! unlet menutrans_spell_ignore_ARG unlet! g:menutrans_textwidth_dialog
" vim: set sw=2 : " vim: set sw=2 :

View File

@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus. " You can also use this as a start for your own set of menus.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Nov 10 " Last Change: 2019 Dec 10
" Note that ":an" (short for ":anoremenu") is often used to make a menu work " 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. " 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 let g:bmenu_priority = a:1
endif endif
" remove old menu, if exists; keep one entry to avoid a torn off menu to " Remove old menu, if exists; keep one entry to avoid a torn off menu to
" disappear. " disappear. Use try/catch to avoid setting v:errmsg
silent! unmenu &Buffers try | unmenu &Buffers | catch | endtry
exe 'noremenu ' . g:bmenu_priority . ".1 &Buffers.Dummy l" 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 <CR> " create new menu; set 'cpo' to include the <CR>
let cpo_save = &cpo let cpo_save = &cpo

View File

@ -10,7 +10,13 @@ func Test_load_menu()
call assert_report('error while loading menus: ' . v:exception) call assert_report('error while loading menus: ' . v:exception)
endtry endtry
call assert_match('browse confirm w', execute(':menu File.Save')) 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 source $VIMRUNTIME/delmenu.vim
call assert_equal('', v:errmsg)
endfunc endfunc
func Test_translate_menu() func Test_translate_menu()

View File

@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2416,
/**/ /**/
2415, 2415,
/**/ /**/