diff src/ex_getln.c @ 28121:4765d97b4d8b v8.2.4585

patch 8.2.4585: cannot use keypad page-up/down for completion menu Commit: https://github.com/vim/vim/commit/155b0882088ff115dcfb6ce466fe7c8cc2bef349 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Thu Mar 17 13:03:09 2022 +0000 patch 8.2.4585: cannot use keypad page-up/down for completion menu Problem: Cannot use keypad page-up/down for completion menu. Solution: Recognize the keypad keys. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/9963)
author Bram Moolenaar <Bram@vim.org>
date Thu, 17 Mar 2022 14:15:04 +0100
parents 06535d568f74
children d1702731786c
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1606,6 +1606,7 @@ getcmdline_int(
     cmdline_info_T save_ccline;
     int		did_save_ccline = FALSE;
     int		cmdline_type;
+    int		wild_type;
 
     if (ccline.cmdbuff != NULL)
     {
@@ -1867,10 +1868,7 @@ getcmdline_int(
 	    // text.
 	    if (c == Ctrl_E || c == Ctrl_Y)
 	    {
-		int	wild_type;
-
 		wild_type = (c == Ctrl_E) ? WILD_CANCEL : WILD_APPLY;
-
 		if (nextwild(&xpc, wild_type, WILD_NO_BEEP,
 							firstc != '@') == FAIL)
 		    break;
@@ -2304,8 +2302,8 @@ getcmdline_int(
 	case Ctrl_P:	    // previous match
 		if (xpc.xp_numfiles > 0)
 		{
-		    if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT,
-						    0, firstc != '@') == FAIL)
+		    wild_type = (c == Ctrl_P) ? WILD_PREV : WILD_NEXT;
+		    if (nextwild(&xpc, wild_type, 0, firstc != '@') == FAIL)
 			break;
 		    goto cmdline_not_changed;
 		}
@@ -2325,9 +2323,10 @@ getcmdline_int(
 		{
 		    // If the popup menu is displayed, then PageUp and PageDown
 		    // are used to scroll the menu.
-		    if (nextwild(&xpc,
-				(c == K_PAGEUP) ? WILD_PAGEUP : WILD_PAGEDOWN,
-				0, firstc != '@') == FAIL)
+		    wild_type = WILD_PAGEUP;
+		    if (c == K_PAGEDOWN || c == K_KPAGEDOWN)
+			wild_type = WILD_PAGEDOWN;
+		    if (nextwild(&xpc, wild_type, 0, firstc != '@') == FAIL)
 			break;
 		    goto cmdline_not_changed;
 		}