diff options
author | Bram Moolenaar <Bram@vim.org> | 2009-06-24 15:32:01 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2009-06-24 15:32:01 +0000 |
commit | f061e0befbea69304bc9e09a8d15dab36dabb024 (patch) | |
tree | b651159e169232a892bad6ceda78461e4ca850c9 /src/window.c | |
parent | 8d3b8c4a8a48c5e7a8108dace0c5a2cc2a33ca10 (diff) | |
download | vim-git-f061e0befbea69304bc9e09a8d15dab36dabb024.tar.gz |
updated for version 7.2-215v7.2.215
Diffstat (limited to 'src/window.c')
-rw-r--r-- | src/window.c | 62 |
1 files changed, 36 insertions, 26 deletions
diff --git a/src/window.c b/src/window.c index 0c3a7f383..c1955ad70 100644 --- a/src/window.c +++ b/src/window.c @@ -2354,13 +2354,6 @@ win_free_mem(win, dirp, tp) frame_T *frp; win_T *wp; -#ifdef FEAT_FOLDING - clearFolding(win); -#endif - - /* reduce the reference count to the argument list. */ - alist_unlink(win->w_alist); - /* Remove the window and its frame from the tree of frames. */ frp = win->w_frame; wp = winframe_remove(win, dirp, tp); @@ -2386,9 +2379,6 @@ win_free_all() tabpage_close(TRUE); # endif - while (firstwin != NULL) - (void)win_free_mem(firstwin, &dummy, NULL); - # ifdef FEAT_AUTOCMD if (aucmd_win != NULL) { @@ -2396,6 +2386,9 @@ win_free_all() aucmd_win = NULL; } # endif + + while (firstwin != NULL) + (void)win_free_mem(firstwin, &dummy, NULL); } #endif @@ -3204,27 +3197,34 @@ close_others(message, forceit) void curwin_init() { - redraw_win_later(curwin, NOT_VALID); - curwin->w_lines_valid = 0; - curwin->w_cursor.lnum = 1; - curwin->w_curswant = curwin->w_cursor.col = 0; + win_init_empty(curwin); +} + + void +win_init_empty(wp) + win_T *wp; +{ + redraw_win_later(wp, NOT_VALID); + wp->w_lines_valid = 0; + wp->w_cursor.lnum = 1; + wp->w_curswant = wp->w_cursor.col = 0; #ifdef FEAT_VIRTUALEDIT - curwin->w_cursor.coladd = 0; + wp->w_cursor.coladd = 0; #endif - curwin->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */ - curwin->w_pcmark.col = 0; - curwin->w_prev_pcmark.lnum = 0; - curwin->w_prev_pcmark.col = 0; - curwin->w_topline = 1; + wp->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */ + wp->w_pcmark.col = 0; + wp->w_prev_pcmark.lnum = 0; + wp->w_prev_pcmark.col = 0; + wp->w_topline = 1; #ifdef FEAT_DIFF - curwin->w_topfill = 0; + wp->w_topfill = 0; #endif - curwin->w_botline = 2; + wp->w_botline = 2; #ifdef FEAT_FKMAP - if (curwin->w_p_rl) - curwin->w_farsi = W_CONV + W_R_L; + if (wp->w_p_rl) + wp->w_farsi = W_CONV + W_R_L; else - curwin->w_farsi = W_CONV; + wp->w_farsi = W_CONV; #endif } @@ -4325,6 +4325,13 @@ win_free(wp, tp) { int i; +#ifdef FEAT_FOLDING + clearFolding(wp); +#endif + + /* reduce the reference count to the argument list. */ + alist_unlink(wp->w_alist); + #ifdef FEAT_AUTOCMD /* Don't execute autocommands while the window is halfway being deleted. * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */ @@ -4387,7 +4394,10 @@ win_free(wp, tp) } #endif /* FEAT_GUI */ - win_remove(wp, tp); +#ifdef FEAT_AUTOCMD + if (wp != aucmd_win) +#endif + win_remove(wp, tp); vim_free(wp); #ifdef FEAT_AUTOCMD |