@@ -342,16 +342,15 @@ nextwild(
342342 {
343343 size_t plen = STRLEN (p );
344344 int difflen ;
345- int v ;
345+ int v = OK ;
346346
347347 difflen = (int )plen - xp -> xp_pattern_len ;
348348 if (ccline -> cmdlen + difflen + 4 > ccline -> cmdbufflen )
349349 {
350350 v = realloc_cmdbuff (ccline -> cmdlen + difflen + 4 );
351351 xp -> xp_pattern = ccline -> cmdbuff + i ;
352352 }
353- else
354- v = OK ;
353+
355354 if (v == OK )
356355 {
357356 mch_memmove (& ccline -> cmdbuff [ccline -> cmdpos + difflen ],
@@ -395,7 +394,7 @@ cmdline_pum_create(
395394 int showtail )
396395{
397396 int i ;
398- int columns ;
397+ int prefix_len ;
399398
400399 // Add all the completion matches
401400 compl_match_array = ALLOC_MULT (pumitem_T , numMatches );
@@ -415,13 +414,11 @@ cmdline_pum_create(
415414
416415 // Compute the popup menu starting column
417416 compl_startcol = ccline == NULL ? 0 : vim_strsize (ccline -> cmdbuff ) + 1 ;
418- columns = vim_strsize (xp -> xp_pattern );
417+ prefix_len = vim_strsize (xp -> xp_pattern );
419418 if (showtail )
420- {
421- columns += vim_strsize (showmatches_gettail (matches [0 ]));
422- columns -= vim_strsize (matches [0 ]);
423- }
424- compl_startcol = MAX (0 , compl_startcol - columns );
419+ prefix_len += vim_strsize (showmatches_gettail (matches [0 ]))
420+ - vim_strsize (matches [0 ]);
421+ compl_startcol = MAX (0 , compl_startcol - prefix_len );
425422
426423 // no default selection
427424 compl_selected = -1 ;
@@ -1279,12 +1276,12 @@ showmatches_oneline(
12791276 * be inserted like a normal character.
12801277 */
12811278 int
1282- showmatches (expand_T * xp , int wildmenu UNUSED )
1279+ showmatches (expand_T * xp , int wildmenu , int noselect )
12831280{
12841281 cmdline_info_T * ccline = get_cmdline_info ();
12851282 int numMatches ;
12861283 char_u * * matches ;
1287- int i , j ;
1284+ int i ;
12881285 int maxlen ;
12891286 int lines ;
12901287 int columns ;
@@ -1300,12 +1297,13 @@ showmatches(expand_T *xp, int wildmenu UNUSED)
13001297
13011298 if (xp -> xp_numfiles == -1 )
13021299 {
1300+ int retval ;
13031301 set_expand_context (xp );
1304- i = expand_cmdline (xp , ccline -> cmdbuff , ccline -> cmdpos ,
1305- & numMatches , & matches );
1302+ retval = expand_cmdline (xp , ccline -> cmdbuff , ccline -> cmdpos ,
1303+ & numMatches , & matches );
1304+ if (retval != EXPAND_OK )
1305+ return retval ;
13061306 showtail = expand_showtail (xp );
1307- if (i != EXPAND_OK )
1308- return i ;
13091307 }
13101308 else
13111309 {
@@ -1316,7 +1314,8 @@ showmatches(expand_T *xp, int wildmenu UNUSED)
13161314
13171315 if (wildmenu && vim_strchr (p_wop , WOP_PUM ) != NULL )
13181316 // cmdline completion popup menu (with wildoptions=pum)
1319- return cmdline_pum_create (ccline , xp , matches , numMatches , showtail );
1317+ return cmdline_pum_create (ccline , xp , matches , numMatches ,
1318+ showtail && !noselect );
13201319
13211320 if (!wildmenu )
13221321 {
@@ -1339,17 +1338,18 @@ showmatches(expand_T *xp, int wildmenu UNUSED)
13391338 maxlen = 0 ;
13401339 for (i = 0 ; i < numMatches ; ++ i )
13411340 {
1341+ int len ;
13421342 if (!showtail && (xp -> xp_context == EXPAND_FILES
13431343 || xp -> xp_context == EXPAND_SHELLCMD
13441344 || xp -> xp_context == EXPAND_BUFFERS ))
13451345 {
13461346 home_replace (NULL , matches [i ], NameBuff , MAXPATHL , TRUE);
1347- j = vim_strsize (NameBuff );
1347+ len = vim_strsize (NameBuff );
13481348 }
13491349 else
1350- j = vim_strsize (SHOW_MATCH (i ));
1351- if (j > maxlen )
1352- maxlen = j ;
1350+ len = vim_strsize (SHOW_MATCH (i ));
1351+ if (len > maxlen )
1352+ maxlen = len ;
13531353 }
13541354
13551355 if (xp -> xp_context == EXPAND_TAGS_LISTFILES )
0 commit comments