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,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 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 <CR>
let cpo_save = &cpo