summaryrefslogtreecommitdiff
path: root/src/misc2.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2007-11-24 20:28:24 +0000
committerBram Moolenaar <Bram@vim.org>2007-11-24 20:28:24 +0000
commite0ca7b2b04fda8487c6a161cc4a3b044f877c618 (patch)
tree2cf1d803a58348c078399158fcb289e9fb2339cc /src/misc2.c
parent9f10875ed0682c98fb0c63f315cf04236b474168 (diff)
downloadvim-git-e0ca7b2b04fda8487c6a161cc4a3b044f877c618.tar.gz
updated for version 7.1-161v7.1.161
Diffstat (limited to 'src/misc2.c')
-rw-r--r--src/misc2.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/misc2.c b/src/misc2.c
index f22bf3f0f..7f39723de 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -964,7 +964,6 @@ free_all_mem()
{
buf_T *buf, *nextbuf;
static int entered = FALSE;
- win_T *win;
/* When we cause a crash here it is caught and Vim tries to exit cleanly.
* Don't try freeing everything again. */
@@ -972,15 +971,17 @@ free_all_mem()
return;
entered = TRUE;
+# ifdef FEAT_AUTOCMD
block_autocmds(); /* don't want to trigger autocommands here */
+# endif
-#ifdef FEAT_WINDOWS
+# ifdef FEAT_WINDOWS
/* close all tabs and windows */
if (first_tabpage->tp_next != NULL)
do_cmdline_cmd((char_u *)"tabonly!");
if (firstwin != lastwin)
do_cmdline_cmd((char_u *)"only!");
-#endif
+# endif
# if defined(FEAT_SPELL)
/* Free all spell info. */
@@ -1031,8 +1032,12 @@ free_all_mem()
free_regexp_stuff();
free_tag_stuff();
free_cd_dir();
+# ifdef FEAT_EVAL
set_expr_line(NULL);
+# endif
+# ifdef FEAT_DIFF
diff_clear(curtab);
+# endif
clear_sb_text(); /* free any scrollback text */
/* Free some global vars. */
@@ -1041,19 +1046,27 @@ free_all_mem()
vim_free(clip_exclude_prog);
# endif
vim_free(last_cmdline);
+# ifdef FEAT_CMDHIST
vim_free(new_last_cmdline);
+# endif
set_keep_msg(NULL, 0);
vim_free(ff_expand_buffer);
/* Clear cmdline history. */
p_hi = 0;
+# ifdef FEAT_CMDHIST
init_history();
+# endif
#ifdef FEAT_QUICKFIX
- qf_free_all(NULL);
- /* Free all location lists */
- FOR_ALL_WINDOWS(win)
- qf_free_all(win);
+ {
+ win_T *win;
+
+ qf_free_all(NULL);
+ /* Free all location lists */
+ FOR_ALL_WINDOWS(win)
+ qf_free_all(win);
+ }
#endif
/* Close all script inputs. */