diff options
Diffstat (limited to 'src/nvim/cmdexpand.c')
-rw-r--r-- | src/nvim/cmdexpand.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/nvim/cmdexpand.c b/src/nvim/cmdexpand.c index 5f135ff7b0..bf0944a81d 100644 --- a/src/nvim/cmdexpand.c +++ b/src/nvim/cmdexpand.c @@ -897,12 +897,27 @@ char *ExpandOne(expand_T *xp, char *str, char *orig, int options, int mode) if (mode == WILD_ALL && xp->xp_numfiles > 0 && !got_int) { size_t len = 0; for (int i = 0; i < xp->xp_numfiles; i++) { + if (i > 0) { + if (xp->xp_prefix == XP_PREFIX_NO) { + len += 2; // prefix "no" + } else if (xp->xp_prefix == XP_PREFIX_INV) { + len += 3; // prefix "inv" + } + } len += strlen(xp->xp_files[i]) + 1; } ss = xmalloc(len); *ss = NUL; for (int i = 0; i < xp->xp_numfiles; i++) { + if (i > 0) { + if (xp->xp_prefix == XP_PREFIX_NO) { + STRCAT(ss, "no"); + } else if (xp->xp_prefix == XP_PREFIX_INV) { + STRCAT(ss, "inv"); + } + } STRCAT(ss, xp->xp_files[i]); + if (i != xp->xp_numfiles - 1) { STRCAT(ss, (options & WILD_USE_NL) ? "\n" : " "); } @@ -927,6 +942,7 @@ void ExpandInit(expand_T *xp) { CLEAR_POINTER(xp); xp->xp_backslash = XP_BS_NONE; + xp->xp_prefix = XP_PREFIX_NONE; xp->xp_numfiles = -1; } |