diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-08-03 22:44:55 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-08-03 22:44:55 +0200 |
commit | eb44a68b42eda207a5bc4def9ea8fc4d38acb650 (patch) | |
tree | 6fae22aba3c4f1eaad8e6d5e4d74df201c78a65e /src/undo.c | |
parent | 620d064b0b0bca2268574abdec2d8eac3384cfdf (diff) | |
download | vim-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.c | 15 |
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) |