Browse Source

vim-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)
e24c5b3332
pull/14337/head
Jan Edmund Lazo 4 weeks ago
parent
commit
4ff70cc58b
No known key found for this signature in database GPG Key ID: 64915E6E9F735B15
  1. 30
      runtime/delmenu.vim
  2. 10
      runtime/menu.vim
  3. 6
      src/nvim/testdir/test_menu.vim

30
runtime/delmenu.vim

@ -2,24 +2,30 @@
" Warning: This also deletes all menus defined by the user!
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2001 May 27
" Last Change: 2019 Dec 10
aunmenu *
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_no_file
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 :

10
runtime/menu.vim

@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Jan 27
" 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.
@ -690,11 +690,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 <CR>
let cpo_save = &cpo

6
src/nvim/testdir/test_menu.vim

@ -11,7 +11,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()

Loading…
Cancel
Save