diff options
-rw-r--r-- | src/buffer.c | 28 | ||||
-rw-r--r-- | src/ex_cmds.c | 2 | ||||
-rw-r--r-- | src/ex_cmds2.c | 4 | ||||
-rw-r--r-- | src/ex_docmd.c | 2 | ||||
-rw-r--r-- | src/globals.h | 2 | ||||
-rw-r--r-- | src/proto/buffer.pro | 2 | ||||
-rw-r--r-- | src/quickfix.c | 2 | ||||
-rw-r--r-- | src/terminal.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
9 files changed, 35 insertions, 11 deletions
diff --git a/src/buffer.c b/src/buffer.c index 393494156..f64255d78 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -473,8 +473,8 @@ close_buffer( { if (term_job_running(buf->b_term)) { - if (wipe_buf) - /* Wiping out a terminal buffer kills the job. */ + if (wipe_buf || unload_buf) + /* Wiping out or unloading a terminal buffer kills the job. */ free_terminal(buf); else { @@ -1648,7 +1648,7 @@ do_buffer( if (bufIsChanged(curbuf)) #endif { - EMSG(_(e_nowrtmsg)); + no_write_message(); return FAIL; } } @@ -1897,6 +1897,28 @@ do_autochdir(void) } #endif + void +no_write_message(void) +{ +#ifdef FEAT_TERMINAL + if (term_job_running(curbuf->b_term)) + EMSG(_("E948: Job still running (add ! to end the job)")); + else +#endif + EMSG(_("E37: No write since last change (add ! to override)")); +} + + void +no_write_message_nobang(void) +{ +#ifdef FEAT_TERMINAL + if (term_job_running(curbuf->b_term)) + EMSG(_("E948: Job still running")); + else +#endif + EMSG(_("E37: No write since last change")); +} + /* * functions for dealing with the buffer list */ diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 61c85a917..8b21b81f2 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -3572,7 +3572,7 @@ getfile( { if (other) --no_wait_return; - EMSG(_(e_nowrtmsg)); + no_write_message(); retval = GETFILE_NOT_WRITTEN; /* file has been changed */ goto theend; } diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 8a11fbbe9..8ca11f066 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -1934,9 +1934,9 @@ check_changed(buf_T *buf, int flags) } #endif if (flags & CCGD_EXCMD) - EMSG(_(e_nowrtmsg)); + no_write_message(); else - EMSG(_(e_nowrtmsg_nobang)); + no_write_message_nobang(); return TRUE; } return FALSE; diff --git a/src/ex_docmd.c b/src/ex_docmd.c index fa5a888d4..70f3e573d 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -7468,7 +7468,7 @@ ex_win_close( else # endif { - EMSG(_(e_nowrtmsg)); + no_write_message(); return; } } diff --git a/src/globals.h b/src/globals.h index 7f2875b05..0b887d35b 100644 --- a/src/globals.h +++ b/src/globals.h @@ -1516,8 +1516,6 @@ EXTERN char_u e_notcreate[] INIT(= N_("E482: Can't create file %s")); EXTERN char_u e_notmp[] INIT(= N_("E483: Can't get temp file name")); EXTERN char_u e_notopen[] INIT(= N_("E484: Can't open file %s")); EXTERN char_u e_notread[] INIT(= N_("E485: Can't read file %s")); -EXTERN char_u e_nowrtmsg[] INIT(= N_("E37: No write since last change (add ! to override)")); -EXTERN char_u e_nowrtmsg_nobang[] INIT(= N_("E37: No write since last change")); EXTERN char_u e_null[] INIT(= N_("E38: Null argument")); #if defined(FEAT_DIGRAPHS) || defined(FEAT_TIMERS) EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected")); diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro index d70981dac..485eb027d 100644 --- a/src/proto/buffer.pro +++ b/src/proto/buffer.pro @@ -13,6 +13,8 @@ int do_buffer(int action, int start, int dir, int count, int forceit); void set_curbuf(buf_T *buf, int action); void enter_buffer(buf_T *buf); void do_autochdir(void); +void no_write_message(void); +void no_write_message_nobang(void); buf_T *buflist_new(char_u *ffname, char_u *sfname, linenr_T lnum, int flags); void free_buf_options(buf_T *buf, int free_p_ff); int buflist_getfile(int n, linenr_T lnum, int options, int forceit); diff --git a/src/quickfix.c b/src/quickfix.c index 8c55a16c7..42077c2a3 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -2327,7 +2327,7 @@ win_found: * set b_p_ro flag). */ if (!can_abandon(curbuf, forceit)) { - EMSG(_(e_nowrtmsg)); + no_write_message(); ok = FALSE; } else diff --git a/src/terminal.c b/src/terminal.c index d482d1952..304a7ba43 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -267,7 +267,7 @@ term_start(typval_T *argvar, jobopt_T *opt, int forceit) /* Create a new buffer in the current window. */ if (!can_abandon(curbuf, forceit)) { - EMSG(_(e_nowrtmsg)); + no_write_message(); vim_free(term); return; } diff --git a/src/version.c b/src/version.c index 545204cf1..352e0a9fe 100644 --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 953, +/**/ 952, /**/ 951, |