forked from aniani/vim
patch 9.0.1636: expanding a pattern interferes with cmdline completion
Problem: Expanding a pattern interferes with command line completion. Solution: Set the file index only when appropriate. (closes #12519)
This commit is contained in:
@@ -957,7 +957,7 @@ ExpandOne(
|
||||
int mode)
|
||||
{
|
||||
char_u *ss = NULL;
|
||||
static int findex;
|
||||
static int findex; // TODO: Move into expand_T
|
||||
static char_u *orig_save = NULL; // kept value of orig
|
||||
int orig_saved = FALSE;
|
||||
int i;
|
||||
@@ -971,8 +971,9 @@ ExpandOne(
|
||||
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]);
|
||||
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)
|
||||
@@ -985,7 +986,9 @@ ExpandOne(
|
||||
if (compl_match_array != NULL)
|
||||
cmdline_pum_remove();
|
||||
}
|
||||
findex = 0;
|
||||
// TODO: Remove condition if "findex" is part of expand_T ?
|
||||
if (mode != WILD_EXPAND_FREE && mode != WILD_ALL && mode != WILD_ALL_KEEP)
|
||||
findex = 0;
|
||||
|
||||
if (mode == WILD_FREE) // only release file name
|
||||
return NULL;
|
||||
|
Reference in New Issue
Block a user