aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-02-11 20:56:55 +0100
committerJustin M. Keyes <justinkz@gmail.com>2018-02-11 22:40:12 +0100
commit2929dbf2233f05f58e094ce4a80fb1320ac6d336 (patch)
tree19725654d59522b5735687134483c0237ab1eaee /src/nvim/buffer.c
parent3ffeceb851b135a1eb77287af12bb6fbfaf8d175 (diff)
downloadrneovim-2929dbf2233f05f58e094ce4a80fb1320ac6d336.tar.gz
rneovim-2929dbf2233f05f58e094ce4a80fb1320ac6d336.tar.bz2
rneovim-2929dbf2233f05f58e094ce4a80fb1320ac6d336.zip
vim-patch:8.0.0858: can exit while a terminal is still running a job
Problem: Can exit while a terminal is still running a job. Solution: Consider a buffer with a running job like a changed file. https://github.com/vim/vim/commit/eb44a68b42eda207a5bc4def9ea8fc4d38acb650
Diffstat (limited to 'src/nvim/buffer.c')
-rw-r--r--src/nvim/buffer.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 8d0738dd29..0127b576c9 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -1411,7 +1411,7 @@ void set_curbuf(buf_T *buf, int action)
u_sync(FALSE);
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
unload ? action : (action == DOBUF_GOTO
- && !P_HID(prevbuf)
+ && !buf_hide(prevbuf)
&& !bufIsChanged(
prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
if (curwin != previouswin && win_valid(previouswin))
@@ -4414,11 +4414,11 @@ do_arg_all (
wp->w_arg_idx = i;
if (i == opened_len && !keep_tabs) { /* close this window */
- if (P_HID(buf) || forceit || buf->b_nwindows > 1
+ if (buf_hide(buf) || forceit || buf->b_nwindows > 1
|| !bufIsChanged(buf)) {
/* If the buffer was changed, and we would like to hide it,
* try autowriting. */
- if (!P_HID(buf) && buf->b_nwindows <= 1 && bufIsChanged(buf)) {
+ if (!buf_hide(buf) && buf->b_nwindows <= 1 && bufIsChanged(buf)) {
bufref_T bufref;
set_bufref(&bufref, buf);
(void)autowrite(buf, false);
@@ -4433,7 +4433,7 @@ do_arg_all (
&& (first_tabpage->tp_next == NULL || !had_tab)) {
use_firstwin = true;
} else {
- win_close(wp, !P_HID(buf) && !bufIsChanged(buf));
+ win_close(wp, !buf_hide(buf) && !bufIsChanged(buf));
// check if autocommands removed the next window
if (!win_valid(wpnext)) {
// start all over...
@@ -4513,7 +4513,7 @@ do_arg_all (
}
(void)do_ecmd(0, alist_name(&AARGLIST(alist)[i]), NULL, NULL,
ECMD_ONE,
- ((P_HID(curwin->w_buffer)
+ ((buf_hide(curwin->w_buffer)
|| bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
+ ECMD_OLDBUF, curwin);
if (use_firstwin)
@@ -4705,13 +4705,13 @@ void ex_buffer_all(exarg_T *eap)
* Close superfluous windows.
*/
for (wp = lastwin; open_wins > count; ) {
- r = (P_HID(wp->w_buffer) || !bufIsChanged(wp->w_buffer)
+ r = (buf_hide(wp->w_buffer) || !bufIsChanged(wp->w_buffer)
|| autowrite(wp->w_buffer, FALSE) == OK);
if (!win_valid(wp)) {
/* BufWrite Autocommands made the window invalid, start over */
wp = lastwin;
} else if (r) {
- win_close(wp, !P_HID(wp->w_buffer));
+ win_close(wp, !buf_hide(wp->w_buffer));
--open_wins;
wp = lastwin;
} else {