summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-12 23:45:16 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-12 23:45:16 +0200
commit06f0853cb0b10364b22e5607fdecd35b3936e9ea (patch)
tree89f267fd30ecc4209363fa4a32739ab714fa3ec0 /src
parent47e13953ffdbb9f163b901196dec8c2100b72edd (diff)
downloadvim-git-06f0853cb0b10364b22e5607fdecd35b3936e9ea.tar.gz
patch 8.2.0745: crash on exit when not all popups are closedv8.2.0745
Problem: Crash on exit when not all popups are closed. Solution: Close popups when freeing all memory. Disable checking for popup when editing a file for now.
Diffstat (limited to 'src')
-rw-r--r--src/ex_cmds.c5
-rw-r--r--src/misc2.c11
-rw-r--r--src/version.c2
3 files changed, 11 insertions, 7 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 9c55de3ad..f38bdacb6 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2484,11 +2484,6 @@ do_ecmd(
int did_inc_redrawing_disabled = FALSE;
long *so_ptr = curwin->w_p_so >= 0 ? &curwin->w_p_so : &p_so;
-#ifdef FEAT_PROP_POPUP
- if (ERROR_IF_TERM_POPUP_WINDOW)
- return FAIL;
-#endif
-
if (eap != NULL)
command = eap->do_ecmd_cmd;
set_bufref(&old_curbuf, curbuf);
diff --git a/src/misc2.c b/src/misc2.c
index db03b5b1f..0ab6caffa 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1069,6 +1069,14 @@ free_all_mem(void)
# if defined(FEAT_BEVAL_TERM)
ui_remove_balloon();
# endif
+# if defined(FEAT_PROP_POPUP)
+ if (curwin != NULL)
+ {
+ while (popup_is_popup(curwin))
+ popup_close_with_retval(curwin, 0);
+ close_all_popups();
+ }
+# endif
// Clear user commands (before deleting buffers).
ex_comclear(NULL);
@@ -3144,8 +3152,7 @@ call_shell(char_u *cmd, int opt)
if (p_verbose > 3)
{
verbose_enter();
- smsg(_("Calling shell to execute: \"%s\""),
- cmd == NULL ? p_sh : cmd);
+ smsg(_("Calling shell to execute: \"%s\""), cmd == NULL ? p_sh : cmd);
out_char('\n');
cursor_on();
verbose_leave();
diff --git a/src/version.c b/src/version.c
index bd5337bca..aa88847e7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 745,
+/**/
744,
/**/
743,