vim-patch:8.2.0478: new buffers are not added to the Buffers menu

Problem:    New buffers are not added to the Buffers menu.
Solution:   Turn number into string. (Yee Cheng Chin, closes vim/vim#5864)
5908fdf72f
This commit is contained in:
zeertzjq 2022-08-05 07:54:14 +08:00
parent d985323c55
commit 57fbcc6929
2 changed files with 14 additions and 4 deletions

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: 2020 Mar 19 " Last Change: 2020 Mar 29
" 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.
@ -672,7 +672,7 @@ func s:BMAdd()
call s:BMShow() call s:BMShow()
else else
let name = expand("<afile>") let name = expand("<afile>")
let num = expand("<abuf>") let num = expand("<abuf>") + 0 " add zero to convert to a number type
if s:BMCanAdd(name, num) if s:BMCanAdd(name, num)
call <SID>BMFilename(name, num) call <SID>BMFilename(name, num)
let s:bmenu_count += 1 let s:bmenu_count += 1

View File

@ -33,10 +33,17 @@ func Test_buffer_menu_special_buffers()
let orig_buffer_menus = execute("nmenu Buffers") let orig_buffer_menus = execute("nmenu Buffers")
" Test that regular new buffer results in a new buffer menu item.
new
let new_buffer_menus = execute('nmenu Buffers')
call assert_equal(len(split(orig_buffer_menus, "\n")) + 2, len(split(new_buffer_menus, "\n")))
bwipe!
call assert_equal(orig_buffer_menus, execute("nmenu Buffers"))
" Make a new command-line window, test that it does not create a new buffer " Make a new command-line window, test that it does not create a new buffer
" menu. " menu.
call feedkeys("q::let cmdline_buffer_menus=execute('nmenu Buffers')\<CR>:q\<CR>", 'ntx') call feedkeys("q::let cmdline_buffer_menus=execute('nmenu Buffers')\<CR>:q\<CR>", 'ntx')
call assert_equal(len(split(orig_buffer_menus, "\n")), len(split(cmdline_buffer_menus, "\n"))) call assert_equal(len(split(orig_buffer_menus, "\n")) + 2, len(split(cmdline_buffer_menus, "\n")))
call assert_equal(orig_buffer_menus, execute("nmenu Buffers")) call assert_equal(orig_buffer_menus, execute("nmenu Buffers"))
if has('terminal') if has('terminal')
@ -44,7 +51,7 @@ func Test_buffer_menu_special_buffers()
" item. " item.
terminal terminal
let term_buffer_menus = execute('nmenu Buffers') let term_buffer_menus = execute('nmenu Buffers')
call assert_equal(len(split(orig_buffer_menus, "\n")), len(split(term_buffer_menus, "\n"))) call assert_equal(len(split(orig_buffer_menus, "\n")) + 2, len(split(term_buffer_menus, "\n")))
bwipe! bwipe!
call assert_equal(orig_buffer_menus, execute("nmenu Buffers")) call assert_equal(orig_buffer_menus, execute("nmenu Buffers"))
endif endif
@ -155,6 +162,9 @@ endfunc
" Test for menu item completion in command line " Test for menu item completion in command line
func Test_menu_expand() func Test_menu_expand()
" Make sure we don't have stale menu items like Buffers menu.
source $VIMRUNTIME/delmenu.vim
" Create the menu itmes for test " Create the menu itmes for test
menu Dummy.Nothing lll menu Dummy.Nothing lll
for i in range(1, 4) for i in range(1, 4)