summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-03-29 20:08:45 +0200
committerBram Moolenaar <Bram@vim.org>2020-03-29 20:08:45 +0200
commit5908fdf72fa1995735e38c46f254ddde81a87c1f (patch)
treef602cce0b434397d8eef3bfde2a9b50ef9e9ef51
parentc58164c5cff9845f3bf7cfcd75ace43208829388 (diff)
patch 8.2.0478: new buffers are not added to the Buffers menuv8.2.0478
Problem: New buffers are not added to the Buffers menu. Solution: Turn number into string. (Yee Cheng Chin, closes #5864)
-rw-r--r--runtime/menu.vim4
-rw-r--r--src/testdir/test_menu.vim14
-rw-r--r--src/version.c2
3 files changed, 16 insertions, 4 deletions
diff --git a/runtime/menu.vim b/runtime/menu.vim
index b17e8ea884..8400180aaa 100644
--- 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 <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
" 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("<afile>")
- let num = expand("<abuf>")
+ let num = expand("<abuf>") + 0 " add zero to convert to a number type
if s:BMCanAdd(name, num)
call <SID>BMFilename(name, num)
let s:bmenu_count += 1
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
index f8d8081190..85d54f0833 100644
--- 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')\<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"))
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
index 13a1c30fe2..402ed40538 100644
--- 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,