updated for version 7.2-240
diff --git a/src/gui.c b/src/gui.c
index e42cb40..c25f760 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -5004,6 +5004,19 @@
char_u *p;
regmatch_T regmatch;
int save_did_emsg = did_emsg;
+ static int busy = FALSE;
+
+ /* When the screen is being updated we should not change buffers and
+ * windows structures, it may cause freed memory to be used. Also don't
+ * do this recursively (pressing "Find" quickly several times. */
+ if (updating_screen || busy)
+ return FALSE;
+
+ /* refuse replace when text cannot be changed */
+ if ((type == FRD_REPLACE || type == FRD_REPLACEALL) && text_locked())
+ return FALSE;
+
+ busy = TRUE;
ga_init2(&ga, 1, 100);
if (type == FRD_REPLACEALL)
@@ -5094,6 +5107,7 @@
}
vim_free(ga.ga_data);
+ busy = FALSE;
return (ga.ga_len > 0);
}
diff --git a/src/version.c b/src/version.c
index aafdbc6..ffaaa30 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 240,
+/**/
239,
/**/
238,