summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-10-10 13:46:15 +0100
committerBram Moolenaar <Bram@vim.org>2022-10-10 13:46:15 +0100
commitc601d988b6b1a672f71e3d61f4aaa4f7742a3a21 (patch)
tree21863b5e9bc335c7930aaa1990fa6c188bc582b1
parent79f234499b6692cc16970b7455bc9b002242632f (diff)
patch 9.0.0713: <amatch> of MenuPopup event is expanded like a file namev9.0.0713
Problem: <amatch> of MenuPopup event is expanded like a file name. Solution: Do not expand <amatch> for MenuPopup. (closes #11328)
-rw-r--r--src/autocmd.c1
-rw-r--r--src/testdir/test_menu.vim29
-rw-r--r--src/version.c2
3 files changed, 32 insertions, 0 deletions
diff --git a/src/autocmd.c b/src/autocmd.c
index 599db46c76..93da0bbbb1 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -2095,6 +2095,7 @@ apply_autocmds_group(
|| event == EVENT_DIRCHANGED
|| event == EVENT_DIRCHANGEDPRE
|| event == EVENT_MODECHANGED
+ || event == EVENT_MENUPOPUP
|| event == EVENT_USER
|| event == EVENT_WINCLOSED
|| event == EVENT_WINSCROLLED)
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
index 1602e93de6..95d2b01a5c 100644
--- a/src/testdir/test_menu.vim
+++ b/src/testdir/test_menu.vim
@@ -479,6 +479,35 @@ func Test_popup_menu()
unmenu PopUp
endfunc
+" Test for MenuPopup autocommand
+func Test_autocmd_MenuPopup()
+ CheckNotGui
+
+ set mouse=a
+ set mousemodel=popup
+ aunmenu *
+ autocmd MenuPopup * exe printf(
+ \ 'anoremenu PopUp.Foo <Cmd>let g:res = ["%s", "%s"]<CR>',
+ \ expand('<afile>'), expand('<amatch>'))
+
+ call feedkeys("\<RightMouse>\<Down>\<CR>", 'tnix')
+ call assert_equal(['n', 'n'], g:res)
+
+ call feedkeys("v\<RightMouse>\<Down>\<CR>\<Esc>", 'tnix')
+ call assert_equal(['v', 'v'], g:res)
+
+ call feedkeys("gh\<RightMouse>\<Down>\<CR>\<Esc>", 'tnix')
+ call assert_equal(['s', 's'], g:res)
+
+ call feedkeys("i\<RightMouse>\<Down>\<CR>\<Esc>", 'tnix')
+ call assert_equal(['i', 'i'], g:res)
+
+ autocmd! MenuPopup
+ aunmenu PopUp.Foo
+ unlet g:res
+ set mouse& mousemodel&
+endfunc
+
" Test for listing the menus using the :menu command
func Test_show_menus()
" In the GUI, tear-off menu items are present in the output below
diff --git a/src/version.c b/src/version.c
index eef7ff101b..2b57f7d1aa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 713,
+/**/
712,
/**/
711,