diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-01-24 18:31:07 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-24 18:31:07 +0800 |
commit | c6ab8dfc15e0f6f1a805ce2145e2b4f0072b33d1 (patch) | |
tree | 0e39f9d3c235f63aa7ee57dc7f4ce237b7d3c9f7 /src/nvim/ex_docmd.c | |
parent | 39630265c476e64b2a544155e52b7a133222a551 (diff) | |
download | rneovim-c6ab8dfc15e0f6f1a805ce2145e2b4f0072b33d1.tar.gz rneovim-c6ab8dfc15e0f6f1a805ce2145e2b4f0072b33d1.tar.bz2 rneovim-c6ab8dfc15e0f6f1a805ce2145e2b4f0072b33d1.zip |
revert: "refactor(win_close): remove "force", don't pass on "free_buf" (#21921)" (#21979)
This reverts commit 0371d0f7afa5e01dd2ac8bbd3abcf0f7454872b3.
> 'bufhidden' option exists. I don't think we should assume autoclosing
windows are fine just because 'hidden' is set.
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r-- | src/nvim/ex_docmd.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index f7f38e225c..a24e8458a6 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -4553,7 +4553,7 @@ static void ex_quit(exarg_T *eap) } not_exiting(); // close window; may free buffer - win_close(wp, !buf_hide(wp->w_buffer) || eap->forceit); + win_close(wp, !buf_hide(wp->w_buffer) || eap->forceit, eap->forceit); } } @@ -4663,7 +4663,7 @@ void ex_win_close(int forceit, win_T *win, tabpage_T *tp) // free buffer when not hiding it or when it's a scratch buffer if (tp == NULL) { - win_close(win, !need_hide && !buf_hide(buf)); + win_close(win, !need_hide && !buf_hide(buf), forceit); } else { win_close_othertab(win, !need_hide && !buf_hide(buf), tp); } @@ -4811,7 +4811,7 @@ static void ex_hide(exarg_T *eap) } if (eap->addr_count == 0) { - win_close(curwin, false); // don't free buffer + win_close(curwin, false, eap->forceit); // don't free buffer } else { int winnr = 0; win_T *win = NULL; @@ -4826,7 +4826,7 @@ static void ex_hide(exarg_T *eap) if (win == NULL) { win = lastwin; } - win_close(win, false); + win_close(win, false, eap->forceit); } } @@ -4883,7 +4883,7 @@ static void ex_exit(exarg_T *eap) } not_exiting(); // Quit current window, may free the buffer. - win_close(curwin, !buf_hide(curwin->w_buffer)); + win_close(curwin, !buf_hide(curwin->w_buffer), eap->forceit); } } @@ -5282,7 +5282,7 @@ void do_exedit(exarg_T *eap, win_T *old_curwin) // Reset the error/interrupt/exception state here so that // aborting() returns false when closing a window. enter_cleanup(&cs); - win_close(curwin, !need_hide && !buf_hide(curbuf)); + win_close(curwin, !need_hide && !buf_hide(curbuf), false); // Restore the error/interrupt/exception state if not // discarded by a new aborting error, interrupt, or |