Patch 8.2.4382 (after 8.2.4346)
Problem:    A custom 'tabline' may cause Esc to work like Enter on the
            command line when the popup menu is displayed.
Solution:   Save and restore KeyTyped. (closes #9776)
Files:      src/drawscreen.c, src/screen.c, src/testdir/test_cmdline.vim,
            src/testdir/dumps/Test_wildmenu_pum_40.dump


*** ../vim-8.2.4381/src/drawscreen.c    2022-02-11 18:51:27.813814058 +0000
--- src/drawscreen.c    2022-02-14 19:13:57.996411723 +0000
***************
*** 571,577 ****
  {
      static int            entered = FALSE;
      int                   saved_did_emsg = did_emsg;
-     int                   saved_KeyTyped = KeyTyped;
  
      // When called recursively return.  This can happen when the statusline
      // contains an expression that triggers a redraw.
--- 571,576 ----
***************
*** 592,600 ****
      }
      did_emsg |= saved_did_emsg;
      entered = FALSE;
- 
-     // A user function may reset KeyTyped, restore it.
-     KeyTyped = saved_KeyTyped;
  }
  #endif
  
--- 591,596 ----
*** ../vim-8.2.4381/src/screen.c        2022-01-31 14:59:33.526943578 +0000
--- src/screen.c        2022-02-14 19:16:18.532229532 +0000
***************
*** 1235,1240 ****
--- 1235,1241 ----
      int               use_sandbox = FALSE;
      win_T     *ewp;
      int               p_crb_save;
+     int               save_KeyTyped = KeyTyped;
  
      // There is a tiny chance that this gets called recursively: When
      // redrawing a status line triggers redrawing the ruler or tabline.
***************
*** 1394,1399 ****
--- 1395,1403 ----
  
  theend:
      entered = FALSE;
+ 
+     // A user function may reset KeyTyped, restore it.
+     KeyTyped = save_KeyTyped;
  }
  
  #endif // FEAT_STL_OPT
*** ../vim-8.2.4381/src/testdir/test_cmdline.vim        2022-02-14 
11:10:54.365486323 +0000
--- src/testdir/test_cmdline.vim        2022-02-14 19:11:11.560630073 +0000
***************
*** 2107,2112 ****
--- 2107,2121 ----
        set statusline=%!MyStatusLine()
        set laststatus=2
      endfunc
+ 
+     func MyTabLine()
+       return 'my tab line'
+     endfunc
+     func SetupTabline()
+       set statusline=
+       set tabline=%!MyTabLine()
+       set showtabline=2
+     endfunc
    [CODE]
    call writefile(commands, 'Xtest')
  
***************
*** 2298,2303 ****
--- 2307,2318 ----
    call term_sendkeys(buf, "\<Esc>")
    call VerifyScreenDump(buf, 'Test_wildmenu_pum_39', {})
  
+   " Esc still works to abort the command when 'tabline' is set
+   call term_sendkeys(buf, ":call SetupTabline()\<CR>")
+   call term_sendkeys(buf, ":si\<Tab>")
+   call term_sendkeys(buf, "\<Esc>")
+   call VerifyScreenDump(buf, 'Test_wildmenu_pum_40', {})
+ 
    call term_sendkeys(buf, "\<C-U>\<CR>")
    call StopVimInTerminal(buf)
    call delete('Xtest')
*** ../vim-8.2.4381/src/testdir/dumps/Test_wildmenu_pum_40.dump 2022-02-14 
19:16:37.516205051 +0000
--- src/testdir/dumps/Test_wildmenu_pum_40.dump 2022-02-14 19:15:08.124320584 
+0000
***************
*** 0 ****
--- 1,10 ----
+ |m+1&#ffffff0|y| |t|a|b| |l|i|n|e| @63
+ > +0&&@74
+ |~+0#4040ff13&| @73
+ |~| @73
+ |~| @73
+ |~| @73
+ |~| @73
+ |~| @73
+ |b+3#0000000&|a|r| @71
+ | +0&&@74
*** ../vim-8.2.4381/src/version.c       2022-02-14 15:59:01.751062242 +0000
--- src/version.c       2022-02-14 19:13:39.352436018 +0000
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     4382,
  /**/

-- 
Never overestimate a man's ability to underestimate a woman.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20220214191845.CEC441C0DFF%40moolenaar.net.

Raspunde prin e-mail lui