# HG changeset patch # User Bram Moolenaar # Date 1585505704 -7200 # Node ID d53e8428a79a971f28d9ff1a601ef25a0adfe6e2 # Parent 00d850cecb84d36af4090c1d875f88f1c4765665 patch 8.2.0478: new buffers are not added to the Buffers menu Commit: https://github.com/vim/vim/commit/5908fdf72fa1995735e38c46f254ddde81a87c1f Author: Bram Moolenaar Date: Sun Mar 29 20:08:45 2020 +0200 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 https://github.com/vim/vim/issues/5864) diff --git a/runtime/menu.vim b/runtime/menu.vim --- 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: 2020 Mar 19 +" Last Change: 2020 Mar 29 " 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. @@ -672,7 +672,7 @@ func s:BMAdd() call s:BMShow() else let name = expand("") - let num = expand("") + let num = expand("") + 0 " add zero to convert to a number type if s:BMCanAdd(name, num) call BMFilename(name, num) let s:bmenu_count += 1 diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim --- a/src/testdir/test_menu.vim +++ b/src/testdir/test_menu.vim @@ -33,10 +33,17 @@ func Test_buffer_menu_special_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 " menu. call feedkeys("q::let cmdline_buffer_menus=execute('nmenu Buffers')\:q\", '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")) if has('terminal') @@ -44,7 +51,7 @@ func Test_buffer_menu_special_buffers() " item. terminal 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! call assert_equal(orig_buffer_menus, execute("nmenu Buffers")) endif @@ -155,6 +162,9 @@ endfunc " Test for menu item completion in command line 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 menu Dummy.Nothing lll for i in range(1, 4) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 478, +/**/ 477, /**/ 476,