fix(completion): don't add backslashes to runtime pattern (#24296)

Problem:    Bashslashes added as regexp in runtime completion may be
            treated as path separator with some 'isfname' value.
Solution:   Make curly braces work for runtime completion and use it.
This commit is contained in:
zeertzjq
2023-07-08 23:29:24 +08:00
committed by GitHub
parent b9a0e762f1
commit fbeef0d4ef
3 changed files with 13 additions and 6 deletions

View File

@@ -338,7 +338,7 @@ int do_in_path(char *path, char *name, int flags, DoInRuntimepathCB callback, vo
}
int ew_flags = ((flags & DIP_DIR) ? EW_DIR : EW_FILE)
| (flags & DIP_DIRFILE) ? (EW_DIR|EW_FILE) : 0;
| ((flags & DIP_DIRFILE) ? (EW_DIR|EW_FILE) : 0);
// Expand wildcards, invoke the callback for each match.
if (gen_expand_wildcards(1, &buf, &num_files, &files, ew_flags) == OK) {
@@ -1222,9 +1222,9 @@ static void ExpandRTDir_int(char *pat, size_t pat_len, int flags, bool keep_ext,
bool expand_dirs = false;
if (*dirnames[i] == NUL) { // empty dir used for :runtime
snprintf(tail, tail_buflen, "%s*.\\(vim\\|lua\\)", pat);
snprintf(tail, tail_buflen, "%s*.{vim,lua}", pat);
} else {
snprintf(tail, tail_buflen, "%s/%s*.\\(vim\\|lua\\)", dirnames[i], pat);
snprintf(tail, tail_buflen, "%s/%s*.{vim,lua}", dirnames[i], pat);
}
expand: