From 00333cb3b341499df8729b9345f0bbad968cda0b Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sat, 26 Feb 2022 16:05:08 +0000 Subject: patch 8.2.4478: crash when using fuzzy completion Problem: Crash when using fuzzy completion. Solution: Temporary fix: put back regexp. (closes #9852, closes #9851) --- src/cmdexpand.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/cmdexpand.c') diff --git a/src/cmdexpand.c b/src/cmdexpand.c index dd8bc06d09..003f6daf1e 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -2496,6 +2496,8 @@ ExpandFromContext( int ret; int flags; char_u *tofree = NULL; + int fuzzy = cmdline_fuzzy_complete(pat) + && cmdline_fuzzy_completion_supported(xp); flags = map_wildopts_to_ewflags(options); @@ -2580,12 +2582,15 @@ ExpandFromContext( pat = tofree; } - regmatch.regprog = vim_regcomp(pat, magic_isset() ? RE_MAGIC : 0); - if (regmatch.regprog == NULL) - return FAIL; + if (!fuzzy) + { + regmatch.regprog = vim_regcomp(pat, magic_isset() ? RE_MAGIC : 0); + if (regmatch.regprog == NULL) + return FAIL; - // set ignore-case according to p_ic, p_scs and pat - regmatch.rm_ic = ignorecase(pat); + // set ignore-case according to p_ic, p_scs and pat + regmatch.rm_ic = ignorecase(pat); + } if (xp->xp_context == EXPAND_SETTINGS || xp->xp_context == EXPAND_BOOL_SETTINGS) @@ -2599,7 +2604,8 @@ ExpandFromContext( else ret = ExpandOther(pat, xp, ®match, matches, numMatches); - vim_regfree(regmatch.regprog); + if (!fuzzy) + vim_regfree(regmatch.regprog); vim_free(tofree); return ret; -- cgit v1.2.3