summaryrefslogtreecommitdiff
path: root/src/undo.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-08-03 22:44:55 +0200
committerBram Moolenaar <Bram@vim.org>2017-08-03 22:44:55 +0200
commiteb44a68b42eda207a5bc4def9ea8fc4d38acb650 (patch)
tree6fae22aba3c4f1eaad8e6d5e4d74df201c78a65e /src/undo.c
parent620d064b0b0bca2268574abdec2d8eac3384cfdf (diff)
downloadvim-eb44a68b42eda207a5bc4def9ea8fc4d38acb650.zip
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.
Diffstat (limited to 'src/undo.c')
-rw-r--r--src/undo.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/undo.c b/src/undo.c
index 6ab8572aa..b913841f7 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -3522,21 +3522,18 @@ u_save_line(linenr_T lnum)
int
bufIsChanged(buf_T *buf)
{
- return
-#ifdef FEAT_QUICKFIX
- !bt_dontwrite(buf) &&
+#ifdef FEAT_TERMINAL
+ if (term_job_running(buf->b_term))
+ return TRUE;
#endif
- (buf->b_changed || file_ff_differs(buf, TRUE));
+ return !bt_dontwrite(buf)
+ && (buf->b_changed || file_ff_differs(buf, TRUE));
}
int
curbufIsChanged(void)
{
- return
-#ifdef FEAT_QUICKFIX
- !bt_dontwrite(curbuf) &&
-#endif
- (curbuf->b_changed || file_ff_differs(curbuf, TRUE));
+ return bufIsChanged(curbuf);
}
#if defined(FEAT_EVAL) || defined(PROTO)