]> granicus.if.org Git - vim/commitdiff
patch 9.0.0076: no test for what patch 8.1.1424 fixes v9.0.0076
authorzeertzjq <zeertzjq@outlook.com>
Tue, 26 Jul 2022 11:24:41 +0000 (12:24 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 26 Jul 2022 11:24:41 +0000 (12:24 +0100)
Problem:    No test for what patch 8.1.1424 fixes.
Solution:   Add a test. (closes #10789)

src/popupmenu.c
src/testdir/test_popup.vim
src/version.c

index c030cc9e8d727045df8399576557cbf988df1c18..37c4a6d255fed622e0fa0f67667affd89a2f8aaf 100644 (file)
@@ -1549,8 +1549,8 @@ pum_show_popupmenu(vimmenu_T *menu)
 
        c = vgetc();
 
-       // Bail out when typing Esc, CTRL-C or some callback closed the popup
-       // menu.
+       // Bail out when typing Esc, CTRL-C or some callback or <expr> mapping
+       // closed the popup menu.
        if (c == ESC || c == Ctrl_C || pum_array == NULL)
            break;
        else if (c == CAR || c == NL)
index 5fb7e82229cfab15b7115d84320325ab9e8bf63e..af14167d5749ad43a438d796fd90bce3d24d5421 100644 (file)
@@ -984,6 +984,25 @@ func Test_menu_only_exists_in_terminal()
   endtry
 endfunc
 
+" This used to crash before patch 8.1.1424
+func Test_popup_delete_when_shown()
+  CheckFeature menu
+  CheckNotGui
+
+  func Func()
+    popup Foo
+    return "\<Ignore>"
+  endfunc
+
+  nmenu Foo.Bar :
+  nnoremap <expr> <F2> Func()
+  call feedkeys("\<F2>\<F2>\<Esc>", 'xt')
+
+  delfunc Func
+  nunmenu Foo.Bar
+  nunmap <F2>
+endfunc
+
 func Test_popup_complete_info_01()
   new
   inoremap <buffer><F5> <C-R>=complete_info().mode<CR>
index 1909fd4b423f3c054453d43ef00174cf8a9c34e3..9081fecd11043ec6cb68d3821bfe2c1f27724f8e 100644 (file)
@@ -735,6 +735,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    76,
 /**/
     75,
 /**/