To: vim_dev@googlegroups.com Subject: Patch 8.2.4325 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4325 Problem: 'wildmenu' only shows few matches. Solution: Add the "pum" option: use a popup menu to show the matches. (Yegappan Lakshmanan et al., closes #9707) Files: runtime/doc/options.txt, src/vim.h, src/cmdexpand.c, src/drawscreen.c, src/evalfunc.c, src/ex_getln.c, src/option.h, src/optionstr.c, src/popupmenu.c, src/proto/cmdexpand.pro, src/testdir/test_cmdline.vim, src/testdir/dumps/Test_wildmenu_pum_01.dump, src/testdir/dumps/Test_wildmenu_pum_02.dump, src/testdir/dumps/Test_wildmenu_pum_03.dump, src/testdir/dumps/Test_wildmenu_pum_04.dump, src/testdir/dumps/Test_wildmenu_pum_05.dump, src/testdir/dumps/Test_wildmenu_pum_06.dump, src/testdir/dumps/Test_wildmenu_pum_07.dump, src/testdir/dumps/Test_wildmenu_pum_08.dump, src/testdir/dumps/Test_wildmenu_pum_09.dump, src/testdir/dumps/Test_wildmenu_pum_10.dump, src/testdir/dumps/Test_wildmenu_pum_11.dump, src/testdir/dumps/Test_wildmenu_pum_12.dump, src/testdir/dumps/Test_wildmenu_pum_13.dump, src/testdir/dumps/Test_wildmenu_pum_14.dump, src/testdir/dumps/Test_wildmenu_pum_15.dump, src/testdir/dumps/Test_wildmenu_pum_16.dump, src/testdir/dumps/Test_wildmenu_pum_17.dump, src/testdir/dumps/Test_wildmenu_pum_18.dump, src/testdir/dumps/Test_wildmenu_pum_19.dump, src/testdir/dumps/Test_wildmenu_pum_20.dump, src/testdir/dumps/Test_wildmenu_pum_21.dump, src/testdir/dumps/Test_wildmenu_pum_22.dump, src/testdir/dumps/Test_wildmenu_pum_23.dump, src/testdir/dumps/Test_wildmenu_pum_24.dump, src/testdir/dumps/Test_wildmenu_pum_25.dump, src/testdir/dumps/Test_wildmenu_pum_26.dump, src/testdir/dumps/Test_wildmenu_pum_27.dump, src/testdir/dumps/Test_wildmenu_pum_28.dump, src/testdir/dumps/Test_wildmenu_pum_29.dump *** ../vim-8.2.4324/runtime/doc/options.txt 2022-01-29 11:22:11.827641991 +0000 --- runtime/doc/options.txt 2022-02-08 11:23:16.591841984 +0000 *************** *** 8945,8951 **** mode. On pressing 'wildchar' (usually ) to invoke completion, the possible matches are shown just above the command line, with the first match highlighted (overwriting the status line, if there is ! one). Keys that show the previous/next match, such as or CTRL-P/CTRL-N, cause the highlight to move to the appropriate match. When 'wildmode' is used, "wildmenu" mode is used where "full" is specified. "longest" and "list" do not start "wildmenu" mode. --- 8974,8981 ---- mode. On pressing 'wildchar' (usually ) to invoke completion, the possible matches are shown just above the command line, with the first match highlighted (overwriting the status line, if there is ! one). This is the behavior without "pum" in 'wildoptions. ! Keys that show the previous/next match, such as or CTRL-P/CTRL-N, cause the highlight to move to the appropriate match. When 'wildmode' is used, "wildmenu" mode is used where "full" is specified. "longest" and "list" do not start "wildmenu" mode. *************** *** 8953,8962 **** If there are more matches than can fit in the line, a ">" is shown on the right and/or a "<" is shown on the left. The status line scrolls as needed. The "wildmenu" mode is abandoned when a key is hit that is not used for selecting a completion. ! While the "wildmenu" is active the following keys have special ! meanings: - select previous/next match (like CTRL-P/CTRL-N) - in filename/menu name completion: move into a --- 8983,8994 ---- If there are more matches than can fit in the line, a ">" is shown on the right and/or a "<" is shown on the left. The status line scrolls as needed. + When 'wildoptions' contains "pum", then the completion matches are + shown in a popup menu. The "wildmenu" mode is abandoned when a key is hit that is not used for selecting a completion. ! While the "wildmenu" is active, not using the popup menu, the ! following keys have special meanings: - select previous/next match (like CTRL-P/CTRL-N) - in filename/menu name completion: move into a *************** *** 8966,8971 **** --- 8998,9018 ---- - in filename/menu name completion: move up into parent directory or parent menu. + When using the popup menu for command line completion, the following + keys have special meanings: + - select next match (like CTRL-N) + - in filename/menu name completion: move up into + parent directory or parent menu. + - in filename/menu name completion: move into a + subdirectory or submenu. + - select previous match (like CTRL-P) + CTRL-E - end completion, go back to what was there before + selecting a match. + CTRL-N - go to the next entry + CTRL-P - go to the previous entry + CTRL-Y - accept the currently selected match and stop + completion. + This makes the menus accessible from the console |console-menus|. If you prefer the and keys to move the cursor instead *************** *** 9028,9041 **** global {not available when compiled without the |+wildignore| feature} ! A list of words that change how command line completion is done. ! Currently only one word is allowed: tagfile When using CTRL-D to list matching tags, the kind of tag and the file of the tag is listed. Only one match is displayed per line. Often used tag kinds are: d #define f function - Also see |cmdline-completion|. *'winaltkeys'* *'wak'* 'winaltkeys' 'wak' string (default "menu") --- 9075,9089 ---- global {not available when compiled without the |+wildignore| feature} ! A list of words that change how |cmdline-completion| is done. ! The following values are supported: ! pum Display the completion matches using the popupmenu ! in the same style as the |ins-completion-menu|. tagfile When using CTRL-D to list matching tags, the kind of tag and the file of the tag is listed. Only one match is displayed per line. Often used tag kinds are: d #define f function *'winaltkeys'* *'wak'* 'winaltkeys' 'wak' string (default "menu") *** ../vim-8.2.4324/src/vim.h 2022-02-07 10:45:12.803027327 +0000 --- src/vim.h 2022-02-08 11:13:54.924890127 +0000 *************** *** 809,814 **** --- 809,816 ---- #define WILD_ALL 6 #define WILD_LONGEST 7 #define WILD_ALL_KEEP 8 + #define WILD_CANCEL 9 + #define WILD_APPLY 10 #define WILD_LIST_NOTFOUND 0x01 #define WILD_HOME_REPLACE 0x02 *** ../vim-8.2.4324/src/cmdexpand.c 2022-02-03 13:32:59.262208218 +0000 --- src/cmdexpand.c 2022-02-08 12:03:36.363953394 +0000 *************** *** 27,32 **** --- 27,42 ---- static int ExpandUserList(expand_T *xp, int *num_file, char_u ***file); #endif + #ifdef FEAT_WILDMENU + // "compl_match_array" points the currently displayed list of entries in the + // popup menu. It is NULL when there is no popup menu. + static pumitem_T *compl_match_array = NULL; + static int compl_match_arraysize; + // First column in cmdline of the matched item for completion. + static int compl_startcol; + static int compl_selected; + #endif + static int sort_func_compare(const void *s1, const void *s2) { *************** *** 245,250 **** --- 255,296 ---- return OK; } + #if defined(FEAT_WILDMENU) || defined(PROTO) + /* + * Display the cmdline completion matches in a popup menu + */ + void cmdline_pum_display(void) + { + pum_display(compl_match_array, compl_match_arraysize, compl_selected); + } + + int cmdline_pum_active(void) + { + return p_wmnu && pum_visible() && compl_match_array != NULL; + } + + /* + * Remove the cmdline completion popup menu + */ + void cmdline_pum_remove(void) + { + pum_undisplay(); + VIM_CLEAR(compl_match_array); + update_screen(0); + } + + void cmdline_pum_cleanup(cmdline_info_T *cclp) + { + cmdline_pum_remove(); + wildmenu_cleanup(cclp); + } + + int cmdline_compl_startcol(void) + { + return compl_startcol; + } + #endif + /* * Do wildcard expansion on the string 'str'. * Chars that should not be expanded must be preceded with a backslash. *************** *** 327,333 **** findex = -1; } #ifdef FEAT_WILDMENU ! if (p_wmnu) win_redr_status_matches(xp, xp->xp_numfiles, xp->xp_files, findex, cmd_showtail); #endif --- 373,384 ---- findex = -1; } #ifdef FEAT_WILDMENU ! if (compl_match_array) ! { ! compl_selected = findex; ! cmdline_pum_display(); ! } ! else if (p_wmnu) win_redr_status_matches(xp, xp->xp_numfiles, xp->xp_files, findex, cmd_showtail); #endif *************** *** 339,344 **** --- 390,401 ---- return NULL; } + if (mode == WILD_CANCEL) + ss = vim_strsave(orig_save ? orig_save : (char_u *)""); + else if (mode == WILD_APPLY) + ss = vim_strsave(findex == -1 ? (orig_save ? + orig_save : (char_u *)"") : xp->xp_files[findex]); + // free old names if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST) { *************** *** 351,357 **** if (mode == WILD_FREE) // only release file name return NULL; ! if (xp->xp_numfiles == -1) { vim_free(orig_save); orig_save = orig; --- 408,414 ---- if (mode == WILD_FREE) // only release file name return NULL; ! if (xp->xp_numfiles == -1 && mode != WILD_APPLY && mode != WILD_CANCEL) { vim_free(orig_save); orig_save = orig; *************** *** 554,559 **** --- 611,645 ---- } #ifdef FEAT_WILDMENU + if (wildmenu && vim_strchr(p_wop, WOP_PUM) != NULL) + { + compl_match_arraysize = num_files; + compl_match_array = ALLOC_MULT(pumitem_T, compl_match_arraysize); + for (i = 0; i < num_files; i++) + { + compl_match_array[i].pum_text = L_SHOWFILE(i); + compl_match_array[i].pum_info = NULL; + compl_match_array[i].pum_extra = NULL; + compl_match_array[i].pum_kind = NULL; + } + compl_startcol = ccline->cmdpos + 1; + columns = vim_strsize(xp->xp_pattern); + if (showtail) + { + columns += vim_strsize(sm_gettail(files_found[0])); + columns -= vim_strsize(files_found[0]); + } + if (columns >= compl_startcol) + compl_startcol = 0; + else + compl_startcol -= columns; + compl_selected = -1; + cmdline_pum_display(); + return EXPAND_OK; + } + #endif + + #ifdef FEAT_WILDMENU if (!wildmenu) { #endif *************** *** 1500,1506 **** case CMD_tjump: case CMD_stjump: case CMD_ptjump: ! if (*p_wop != NUL) xp->xp_context = EXPAND_TAGS_LISTFILES; else xp->xp_context = EXPAND_TAGS; --- 1586,1592 ---- case CMD_tjump: case CMD_stjump: case CMD_ptjump: ! if (vim_strchr(p_wop, WOP_TAGFILE) != NULL) xp->xp_context = EXPAND_TAGS_LISTFILES; else xp->xp_context = EXPAND_TAGS; *************** *** 2639,2644 **** --- 2725,2746 ---- { int c = key; + #ifdef FEAT_WILDMENU + if (p_wmnu && cmdline_pum_active()) + { + // When the popup menu is used, Up/Down keys go to the previous and + // next items in the menu and Left/Right keys go up/down a directory. + if (c == K_UP) + c = K_LEFT; + else if (c == K_DOWN) + c = K_RIGHT; + else if (c == K_LEFT) + c = K_UP; + else if (c == K_RIGHT) + c = K_DOWN; + } + #endif + if (did_wild_list && p_wmnu) { if (c == K_LEFT) *************** *** 2646,2651 **** --- 2748,2754 ---- else if (c == K_RIGHT) c = Ctrl_N; } + // Hitting CR after "emenu Name.": complete submenu if (xp->xp_context == EXPAND_MENUNAMES && p_wmnu && cclp->cmdpos > 1 *** ../vim-8.2.4324/src/drawscreen.c 2022-02-03 13:32:59.262208218 +0000 --- src/drawscreen.c 2022-02-08 11:13:54.916890141 +0000 *************** *** 3048,3053 **** --- 3048,3057 ---- } else if (State & CMDLINE) { + #ifdef FEAT_WILDMENU + if (pum_visible()) + cmdline_pum_display(); + #endif // Don't redraw when in prompt_for_number(). if (cmdline_row > 0) { *** ../vim-8.2.4324/src/evalfunc.c 2022-02-07 19:56:38.883286149 +0000 --- src/evalfunc.c 2022-02-08 11:13:54.920890134 +0000 *************** *** 10336,10342 **** f_wildmenumode(typval_T *argvars UNUSED, typval_T *rettv UNUSED) { #ifdef FEAT_WILDMENU ! if (wild_menu_showing) rettv->vval.v_number = 1; #endif } --- 10336,10342 ---- f_wildmenumode(typval_T *argvars UNUSED, typval_T *rettv UNUSED) { #ifdef FEAT_WILDMENU ! if (wild_menu_showing || ((State & CMDLINE) && cmdline_pum_active())) rettv->vval.v_number = 1; #endif } *** ../vim-8.2.4324/src/ex_getln.c 2022-01-25 11:54:59.198464296 +0000 --- src/ex_getln.c 2022-02-08 11:28:07.371251817 +0000 *************** *** 924,932 **** // if 'wildmode' contains "list" may still need to list if (xp->xp_numfiles > 1 && !*did_wild_list ! && (wim_flags[wim_index] & WIM_LIST)) { (void)showmatches(xp, FALSE); redrawcmd(); *did_wild_list = TRUE; } --- 924,941 ---- // if 'wildmode' contains "list" may still need to list if (xp->xp_numfiles > 1 && !*did_wild_list ! && ((wim_flags[wim_index] & WIM_LIST) ! #ifdef FEAT_WILDMENU ! || (p_wmnu && (wim_flags[wim_index] & WIM_FULL) != 0) ! #endif ! )) { + #ifdef FEAT_WILDMENU + (void)showmatches(xp, + p_wmnu && ((wim_flags[wim_index] & WIM_LIST) == 0)); + #else (void)showmatches(xp, FALSE); + #endif redrawcmd(); *did_wild_list = TRUE; } *************** *** 1848,1853 **** --- 1857,1879 ---- #ifdef FEAT_WILDMENU c = wildmenu_translate_key(&ccline, c, &xpc, did_wild_list); + + if (cmdline_pum_active()) + { + 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; + cmdline_pum_cleanup(&ccline); + xpc.xp_context = EXPAND_NOTHING; + goto cmdline_changed; + } + } #endif // free expanded names when finished walking through matches *************** *** 1856,1861 **** --- 1882,1890 ---- && c != Ctrl_N && c != Ctrl_P && c != Ctrl_A && c != Ctrl_L) { + #ifdef FEAT_WILDMENU + cmdline_pum_remove(); + #endif (void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE); did_wild_list = FALSE; #ifdef FEAT_WILDMENU *************** *** 1950,1959 **** // goes to last match, in a clumsy way if (c == K_S_TAB && KeyTyped) { ! if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK ! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK ! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK) ! goto cmdline_changed; } if (c == NUL || c == K_ZERO) // NUL is stored as NL --- 1979,1997 ---- // goes to last match, in a clumsy way if (c == K_S_TAB && KeyTyped) { ! if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK) ! { ! #ifdef FEAT_WILDMENU ! // Trigger the popup menu when wildoptions=pum ! showmatches(&xpc, ! p_wmnu && ((wim_flags[wim_index] & WIM_LIST) == 0)); ! #else ! (void)showmatches(&xpc, FALSE); ! #endif ! if (nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK ! && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK) ! goto cmdline_changed; ! } } if (c == NUL || c == K_ZERO) // NUL is stored as NL *************** *** 2222,2227 **** --- 2260,2272 ---- case Ctrl_A: // all matches if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL) break; + #ifdef FEAT_WILDMENU + if (cmdline_pum_active()) + { + cmdline_pum_cleanup(&ccline); + xpc.xp_context = EXPAND_NOTHING; + } + #endif goto cmdline_changed; case Ctrl_L: *** ../vim-8.2.4324/src/option.h 2022-01-31 14:59:33.518943700 +0000 --- src/option.h 2022-02-08 11:13:54.920890134 +0000 *************** *** 356,361 **** --- 356,366 ---- #define WIM_LIST 0x04 #define WIM_BUFLASTUSED 0x08 + // flags for the 'wildoptions' option + // each defined char should be unique over all values. + #define WOP_TAGFILE 't' + #define WOP_PUM 'p' + // arguments for can_bs() // each defined char should be unique over all values // except for BS_START, that intentionally also matches BS_NOSTOP *** ../vim-8.2.4324/src/optionstr.c 2022-01-28 15:28:00.212927659 +0000 --- src/optionstr.c 2022-02-08 11:13:54.920890134 +0000 *************** *** 57,63 **** static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL}; #endif static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", "none", "NONE", NULL}; ! static char *(p_wop_values[]) = {"tagfile", NULL}; #ifdef FEAT_WAK static char *(p_wak_values[]) = {"yes", "menu", "no", NULL}; #endif --- 57,63 ---- static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL}; #endif static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", "none", "NONE", NULL}; ! static char *(p_wop_values[]) = {"tagfile", "pum", NULL}; #ifdef FEAT_WAK static char *(p_wak_values[]) = {"yes", "menu", "no", NULL}; #endif *** ../vim-8.2.4324/src/popupmenu.c 2022-01-01 16:20:56.900401501 +0000 --- src/popupmenu.c 2022-02-08 11:13:54.920890134 +0000 *************** *** 116,122 **** // Remember the essential parts of the window position and size, so we // can decide when to reposition the popup menu. pum_window = curwin; ! pum_win_row = curwin->w_wrow + W_WINROW(curwin); pum_win_height = curwin->w_height; pum_win_col = curwin->w_wincol; pum_win_wcol = curwin->w_wcol; --- 116,125 ---- // Remember the essential parts of the window position and size, so we // can decide when to reposition the popup menu. pum_window = curwin; ! if (State == CMDLINE) ! pum_win_row = cmdline_row; ! else ! pum_win_row = curwin->w_wrow + W_WINROW(curwin); pum_win_height = curwin->w_height; pum_win_col = curwin->w_wincol; pum_win_wcol = curwin->w_wcol; *************** *** 215,220 **** --- 218,228 ---- max_width = pum_base_width; // Calculate column + #ifdef FEAT_WILDMENU + if (State == CMDLINE) + cursor_col = cmdline_compl_startcol(); + else + #endif #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) cursor_col = curwin->w_wincol + curwin->w_width *** ../vim-8.2.4324/src/proto/cmdexpand.pro 2020-09-04 14:37:27.861546325 +0100 --- src/proto/cmdexpand.pro 2022-02-08 11:13:54.920890134 +0000 *************** *** 3,8 **** --- 3,13 ---- char_u *ExpandOne(expand_T *xp, char_u *str, char_u *orig, int options, int mode); void ExpandInit(expand_T *xp); void ExpandCleanup(expand_T *xp); + void cmdline_pum_display(void); + int cmdline_pum_active(void); + void cmdline_pum_remove(void); + void cmdline_pum_cleanup(cmdline_info_T *cclp); + int cmdline_compl_startcol(void); int showmatches(expand_T *xp, int wildmenu); char_u *sm_gettail(char_u *s); char_u *addstar(char_u *fname, int len, int context); *** ../vim-8.2.4324/src/testdir/test_cmdline.vim 2021-11-21 12:13:53.112683595 +0000 --- src/testdir/test_cmdline.vim 2022-02-08 11:13:54.924890127 +0000 *************** *** 1965,1968 **** --- 1965,2141 ---- call delete('Xfile.o') endfunc + " Test for using a popup menu for the command line completion matches + " (wildoptions=pum) + func Test_wildmenu_pum() + CheckRunVimInTerminal + + let commands =<< trim [CODE] + set wildmenu + set wildoptions=pum + set shm+=I + set noruler + set noshowcmd + [CODE] + call writefile(commands, 'Xtest') + + let buf = RunVimInTerminal('-S Xtest', #{rows: 10}) + + call term_sendkeys(buf, ":sign \") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_01', {}) + + call term_sendkeys(buf, "\\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_02', {}) + + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_03', {}) + + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_04', {}) + + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_05', {}) + + " pressing should end completion and go back to the original match + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_06', {}) + + " pressing should select the current match and end completion + call term_sendkeys(buf, "\\\\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_07', {}) + + " With 'wildmode' set to 'longest,full', completing a match should display + " the longest match, the wildmenu should not be displayed. + call term_sendkeys(buf, ":\set wildmode=longest,full\") + call TermWait(buf) + call term_sendkeys(buf, ":sign u\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_08', {}) + + " pressing should display the wildmenu + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_09', {}) + + " pressing second time should select the next entry in the menu + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_10', {}) + + call term_sendkeys(buf, ":\set wildmode=full\") + " " showing popup menu in different columns in the cmdline + call term_sendkeys(buf, ":sign define \") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_11', {}) + + call term_sendkeys(buf, " \") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_12', {}) + + call term_sendkeys(buf, " \") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_13', {}) + + " Directory name completion + call mkdir('Xdir/XdirA/XdirB', 'p') + call writefile([], 'Xdir/XfileA') + call writefile([], 'Xdir/XdirA/XfileB') + call writefile([], 'Xdir/XdirA/XdirB/XfileC') + + call term_sendkeys(buf, "\e Xdi\\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_14', {}) + + " Pressing on a directory name should go into that directory + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_15', {}) + + " Pressing on a directory name should go to the parent directory + call term_sendkeys(buf, "\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_16', {}) + + " Pressing when the popup menu is displayed should list all the + " matches and remove the popup menu + call term_sendkeys(buf, "\sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_17', {}) + + " Pressing when the popup menu is displayed should remove the popup + " menu + call term_sendkeys(buf, "\sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_18', {}) + + " Pressing should open the popup menu with the last entry selected + call term_sendkeys(buf, "\\:sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_19', {}) + + " Pressing should close the popup menu and cancel the cmd line + call term_sendkeys(buf, "\\:sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_20', {}) + + " Typing a character when the popup is open, should close the popup + call term_sendkeys(buf, ":sign \x") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_21', {}) + + " When the popup is open, entering the cmdline window should close the popup + call term_sendkeys(buf, "\sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_22', {}) + call term_sendkeys(buf, ":q\") + + " After the last popup menu item, should show the original string + call term_sendkeys(buf, ":sign u\\\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_23', {}) + + " Use the popup menu for the command name + call term_sendkeys(buf, "\bu\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_24', {}) + + " Pressing the left arrow should remove the popup menu + call term_sendkeys(buf, "\\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_25', {}) + + " Pressing should remove the popup menu and erase the last character + call term_sendkeys(buf, "\\sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_26', {}) + + " Pressing should remove the popup menu and erase the previous word + call term_sendkeys(buf, "\\sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_27', {}) + + " Pressing should remove the popup menu and erase the entire line + call term_sendkeys(buf, "\\sign \\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_28', {}) + + " Using to cancel the popup menu and then pressing should recall + " the cmdline from history + call term_sendkeys(buf, "sign xyz\:sign \\\") + call TermWait(buf) + call VerifyScreenDump(buf, 'Test_wildmenu_pum_29', {}) + + call term_sendkeys(buf, "\\") + call StopVimInTerminal(buf) + call delete('Xtest') + call delete('Xdir', 'rf') + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_01.dump 2022-02-08 12:05:18.691759923 +0000 --- src/testdir/dumps/Test_wildmenu_pum_01.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @3| +0#0000001#e0e0e08|d|e|f|i|n|e| @8| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|j|u|m|p| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|l|i|s|t| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|p|l|a|c|e| @9| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e> @62 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_02.dump 2022-02-08 12:05:18.699759908 +0000 --- src/testdir/dumps/Test_wildmenu_pum_02.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|d|e|f|i|n|e| @8| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|j|u|m|p| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#e0e0e08|l|i|s|t| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|p|l|a|c|e| @9| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |l|i|s|t> @64 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_03.dump 2022-02-08 12:05:18.703759901 +0000 --- src/testdir/dumps/Test_wildmenu_pum_03.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|d|e|f|i|n|e| @8| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|j|u|m|p| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|l|i|s|t| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#e0e0e08|p|l|a|c|e| @9| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |p|l|a|c|e> @63 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_04.dump 2022-02-08 12:05:18.707759894 +0000 --- src/testdir/dumps/Test_wildmenu_pum_04.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|d|e|f|i|n|e| @8| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|j|u|m|p| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#e0e0e08|l|i|s|t| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|p|l|a|c|e| @9| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |l|i|s|t> @64 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_05.dump 2022-02-08 12:05:18.711759885 +0000 --- src/testdir/dumps/Test_wildmenu_pum_05.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|d|e|f|i|n|e| @8| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#e0e0e08|j|u|m|p| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|l|i|s|t| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|p|l|a|c|e| @9| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |j|u|m|p> @64 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_06.dump 2022-02-08 12:05:18.711759885 +0000 --- src/testdir/dumps/Test_wildmenu_pum_06.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| > @68 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_07.dump 2022-02-08 12:05:18.715759878 +0000 --- src/testdir/dumps/Test_wildmenu_pum_07.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |u|n|p|l|a|c|e> @61 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_08.dump 2022-02-08 12:05:18.719759871 +0000 --- src/testdir/dumps/Test_wildmenu_pum_08.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |u|n> @66 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_09.dump 2022-02-08 12:05:18.723759862 +0000 --- src/testdir/dumps/Test_wildmenu_pum_09.dump 2022-02-08 11:48:16.197612760 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @3| +0#0000001#e0e0e08|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |u|n|d|e|f|i|n|e> @60 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_10.dump 2022-02-08 12:05:18.727759855 +0000 --- src/testdir/dumps/Test_wildmenu_pum_10.dump 2022-02-08 11:48:17.353610852 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#e0e0e08|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |u|n|p|l|a|c|e> @61 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_11.dump 2022-02-08 12:05:18.731759849 +0000 --- src/testdir/dumps/Test_wildmenu_pum_11.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @10| +0#0000001#e0e0e08|c|u|l|h|l|=| @8| +0#4040ff13#ffffff0@46 + |~| @10| +0#0000001#ffd7ff255|i|c|o|n|=| @9| +0#4040ff13#ffffff0@46 + |~| @10| +0#0000001#ffd7ff255|l|i|n|e|h|l|=| @7| +0#4040ff13#ffffff0@46 + |~| @10| +0#0000001#ffd7ff255|n|u|m|h|l|=| @8| +0#4040ff13#ffffff0@46 + |~| @10| +0#0000001#ffd7ff255|t|e|x|t|=| @9| +0#4040ff13#ffffff0@46 + |~| @10| +0#0000001#ffd7ff255|t|e|x|t|h|l|=| @7| +0#4040ff13#ffffff0@46 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |c|u|l|h|l|=> @55 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_12.dump 2022-02-08 12:05:18.735759839 +0000 --- src/testdir/dumps/Test_wildmenu_pum_12.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @17| +0#0000001#e0e0e08|c|u|l|h|l|=| @8| +0#4040ff13#ffffff0@39 + |~| @17| +0#0000001#ffd7ff255|i|c|o|n|=| @9| +0#4040ff13#ffffff0@39 + |~| @17| +0#0000001#ffd7ff255|l|i|n|e|h|l|=| @7| +0#4040ff13#ffffff0@39 + |~| @17| +0#0000001#ffd7ff255|n|u|m|h|l|=| @8| +0#4040ff13#ffffff0@39 + |~| @17| +0#0000001#ffd7ff255|t|e|x|t|=| @9| +0#4040ff13#ffffff0@39 + |~| @17| +0#0000001#ffd7ff255|t|e|x|t|h|l|=| @7| +0#4040ff13#ffffff0@39 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |c|u|l|h|l|=| |c|u|l|h|l|=> @48 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_13.dump 2022-02-08 12:05:18.739759832 +0000 --- src/testdir/dumps/Test_wildmenu_pum_13.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @24| +0#0000001#e0e0e08|c|u|l|h|l|=| @8| +0#4040ff13#ffffff0@32 + |~| @24| +0#0000001#ffd7ff255|i|c|o|n|=| @9| +0#4040ff13#ffffff0@32 + |~| @24| +0#0000001#ffd7ff255|l|i|n|e|h|l|=| @7| +0#4040ff13#ffffff0@32 + |~| @24| +0#0000001#ffd7ff255|n|u|m|h|l|=| @8| +0#4040ff13#ffffff0@32 + |~| @24| +0#0000001#ffd7ff255|t|e|x|t|=| @9| +0#4040ff13#ffffff0@32 + |~| @24| +0#0000001#ffd7ff255|t|e|x|t|h|l|=| @7| +0#4040ff13#ffffff0@32 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |c|u|l|h|l|=| |c|u|l|h|l|=| |c|u|l|h|l|=> @41 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_14.dump 2022-02-08 12:05:18.743759826 +0000 --- src/testdir/dumps/Test_wildmenu_pum_14.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @5| +0#0000001#e0e0e08|X|d|i|r|A|/| @8| +0#4040ff13#ffffff0@51 + |~| @5| +0#0000001#ffd7ff255|X|f|i|l|e|A| @8| +0#4040ff13#ffffff0@51 + |:+0#0000000&|e| |X|d|i|r|/|X|d|i|r|A|/> @60 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_15.dump 2022-02-08 12:05:18.747759817 +0000 --- src/testdir/dumps/Test_wildmenu_pum_15.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @11| +0#0000001#e0e0e08|X|d|i|r|B|/| @8| +0#4040ff13#ffffff0@45 + |~| @11| +0#0000001#ffd7ff255|X|f|i|l|e|B| @8| +0#4040ff13#ffffff0@45 + |:+0#0000000&|e| |X|d|i|r|/|X|d|i|r|A|/|X|d|i|r|B|/> @54 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_16.dump 2022-02-08 12:05:18.751759810 +0000 --- src/testdir/dumps/Test_wildmenu_pum_16.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @5| +0#0000001#e0e0e08|X|d|i|r|A|/| @8| +0#4040ff13#ffffff0@51 + |~| @5| +0#0000001#ffd7ff255|X|f|i|l|e|A| @8| +0#4040ff13#ffffff0@51 + |:+0#0000000&|e| |X|d|i|r|/|X|d|i|r|A|/> @60 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_17.dump 2022-02-08 12:05:18.755759803 +0000 --- src/testdir/dumps/Test_wildmenu_pum_17.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |j|u|m|p| |l|i|s|t| |p|l|a|c|e| |u|n|d|e|f|i|n|e| |u|n|p|l|a|c|e> @29 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_18.dump 2022-02-08 12:05:18.759759796 +0000 --- src/testdir/dumps/Test_wildmenu_pum_18.dump 2022-02-08 11:13:54.920890134 +0000 *************** *** 0 **** --- 1,10 ---- + |~+0#4040ff13#ffffff0| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| @62 + |d|e|f|i|n|e| @68 + |:|s|i|g|n| |d|e|f|i|n|e> @62 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_19.dump 2022-02-08 12:05:18.763759787 +0000 --- src/testdir/dumps/Test_wildmenu_pum_19.dump 2022-02-08 11:48:22.549602248 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|d|e|f|i|n|e| @8| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|j|u|m|p| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|l|i|s|t| @10| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|p|l|a|c|e| @9| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#e0e0e08|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |u|n|d|e|f|i|n|e> @60 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_20.dump 2022-02-08 12:05:18.767759780 +0000 --- src/testdir/dumps/Test_wildmenu_pum_20.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + > +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + | +0#0000000&@74 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_21.dump 2022-02-08 12:05:18.771759773 +0000 --- src/testdir/dumps/Test_wildmenu_pum_21.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n|e|x> @61 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_22.dump 2022-02-08 12:05:18.775759764 +0000 --- src/testdir/dumps/Test_wildmenu_pum_22.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |[+1&&|N|o| |N|a|m|e|]| @65 + |:+0#4040ff13&|s+0#af5f00255&|e|t| +0#0000000&|w+0#e000e06&|i|l|d|m|o|d|e|=+0#0000000&|l|o|n|g|e|s|t|,+0#af5f00255&|f+0#0000000&|u|l@1| @48 + |:+0#4040ff13&|s+0#af5f00255&|e|t| +0#0000000&|w+0#e000e06&|i|l|d|m|o|d|e|=+0#0000000&|f|u|l@1| @56 + |:+0#4040ff13&|s+0#af5f00255&|i|g|n| +0#0000000&|d|e|f|i|n|e| @62 + |:+0#4040ff13&|s+0#af5f00255&|i|g|n| +0#0000000&|d|e|f|i|n|e> @62 + |~+0#4040ff13&| @73 + |~| @73 + |[+3#0000000&|C|o|m@1|a|n|d| |L|i|n|e|]| @60 + |Y+0#0000001#ffff4012|o|u| |d|i|s|c|o|v|e|r|e|d| |t|h|e| |c|o|m@1|a|n|d|-|l|i|n|e| |w|i|n|d|o|w|!| |Y|o|u| |c|a|n| |c|l|o|s|e| |i|t| |w|i|t|h| |"|:|q|"|.| +0#0000000#ffffff0@7 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_23.dump 2022-02-08 12:05:18.783759751 +0000 --- src/testdir/dumps/Test_wildmenu_pum_23.dump 2022-02-08 11:48:24.045599766 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @3| +0#0000001#ffd7ff255|u|n|d|e|f|i|n|e| @6| +0#4040ff13#ffffff0@53 + |~| @3| +0#0000001#ffd7ff255|u|n|p|l|a|c|e| @7| +0#4040ff13#ffffff0@53 + |:+0#0000000&|s|i|g|n| |u> @67 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_24.dump 2022-02-08 12:05:18.787759741 +0000 --- src/testdir/dumps/Test_wildmenu_pum_24.dump 2022-02-08 11:48:25.201597849 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + | +0#0000001#e0e0e08|b|u|f|d|o| @9| +0#4040ff13#ffffff0@58 + | +0#0000001#ffd7ff255|b|u|f@1|e|r| @8| +0#4040ff13#ffffff0@58 + | +0#0000001#ffd7ff255|b|u|f@1|e|r|s| @7| +0#4040ff13#ffffff0@58 + | +0#0000001#ffd7ff255|b|u|n|l|o|a|d| @7| +0#4040ff13#ffffff0@58 + |:+0#0000000&|b|u|f|d|o> @68 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_25.dump 2022-02-08 12:05:18.791759734 +0000 --- src/testdir/dumps/Test_wildmenu_pum_25.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|b|u|f|d>o| @68 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_26.dump 2022-02-08 12:05:18.795759728 +0000 --- src/testdir/dumps/Test_wildmenu_pum_26.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |d|e|f|i|n> @63 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_27.dump 2022-02-08 12:05:18.799759719 +0000 --- src/testdir/dumps/Test_wildmenu_pum_27.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| > @68 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_28.dump 2022-02-08 12:05:18.803759712 +0000 --- src/testdir/dumps/Test_wildmenu_pum_28.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&> @73 *** ../vim-8.2.4324/src/testdir/dumps/Test_wildmenu_pum_29.dump 2022-02-08 12:05:18.807759705 +0000 --- src/testdir/dumps/Test_wildmenu_pum_29.dump 2022-02-08 11:13:54.924890127 +0000 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@74 + |~+0#4040ff13&| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |~| @73 + |:+0#0000000&|s|i|g|n| |x|y|z> @65 *** ../vim-8.2.4324/src/version.c 2022-02-07 21:53:58.089529481 +0000 --- src/version.c 2022-02-08 11:16:22.296632939 +0000 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4325, /**/ -- Bypasses are devices that allow some people to dash from point A to point B very fast while other people dash from point B to point A very fast. People living at point C, being a point directly in between, are often given to wonder what's so great about point A that so many people from point B are so keen to get there and what's so great about point B that so many people from point A are so keen to get there. They often wish that people would just once and for all work out where the hell they wanted to be. -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///