updated for version 7.2-224
diff --git a/src/edit.c b/src/edit.c
index c1935c2..347571f 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -114,6 +114,10 @@
* FALSE the word to be completed must be located. */
static int compl_started = FALSE;
+/* Set when doing something for completion that may call edit() recursively,
+ * which is not allowed. */
+static int compl_busy = FALSE;
+
static int compl_matches = 0;
static char_u *compl_pattern = NULL;
static int compl_direction = FORWARD;
@@ -346,7 +350,7 @@
#ifdef FEAT_INS_EXPAND
/* Don't allow recursive insert mode when busy with completion. */
- if (compl_started || pum_visible())
+ if (compl_started || compl_busy || pum_visible())
{
EMSG(_(e_secure));
return FALSE;
@@ -1340,8 +1344,10 @@
goto normalchar;
docomplete:
+ compl_busy = TRUE;
if (ins_complete(c) == FAIL)
compl_cont_status = 0;
+ compl_busy = FALSE;
break;
#endif /* FEAT_INS_EXPAND */
@@ -3172,6 +3178,7 @@
vim_free(match);
} while (compl_curr_match != NULL && compl_curr_match != compl_first_match);
compl_first_match = compl_curr_match = NULL;
+ compl_shown_match = NULL;
}
static void
diff --git a/src/version.c b/src/version.c
index fb0c343..f3e9b2b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 224,
+/**/
223,
/**/
222,