changeset 27904:7422add1afd1 v8.2.4477

patch 8.2.4477: crash when using fuzzy completion Commit: https://github.com/vim/vim/commit/29ab6ce9f36660cffaad3c8789e71162e5db5d2f Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 26 15:52:08 2022 +0000 patch 8.2.4477: crash when using fuzzy completion Problem: Crash when using fuzzy completion. Solution: Temporary fix: put back regexp. (closes https://github.com/vim/vim/issues/9851)
author Bram Moolenaar <Bram@vim.org>
date Sat, 26 Feb 2022 17:00:04 +0100
parents d19b7aee1925
children 2a041179bd13
files src/cmdexpand.c src/version.c
diffstat 2 files changed, 10 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -2370,7 +2370,7 @@ get_mapclear_arg(expand_T *xp UNUSED, in
     static int
 ExpandOther(
 	char_u		*pat,
-	expand_T	*xp, 
+	expand_T	*xp,
 	regmatch_T	*rmp,
 	char_u		***matches,
 	int		*numMatches)
@@ -2496,7 +2496,6 @@ ExpandFromContext(
     int		ret;
     int		flags;
     char_u	*tofree = NULL;
-    int		fuzzy = cmdline_fuzzy_complete(pat);
 
     flags = map_wildopts_to_ewflags(options);
 
@@ -2581,15 +2580,12 @@ ExpandFromContext(
 	pat = tofree;
     }
 
-    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);
-    }
+    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);
 
     if (xp->xp_context == EXPAND_SETTINGS
 	    || xp->xp_context == EXPAND_BOOL_SETTINGS)
@@ -2603,8 +2599,7 @@ ExpandFromContext(
     else
 	ret = ExpandOther(pat, xp, &regmatch, matches, numMatches);
 
-    if (!fuzzy)
-	vim_regfree(regmatch.regprog);
+    vim_regfree(regmatch.regprog);
     vim_free(tofree);
 
     return ret;
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4477,
+/**/
     4476,
 /**/
     4475,