vim-patch:8.0.0953: get "no write since last change" error in terminal window

Problem:    Get "no write since last change" error in terminal window.
Solution:   Use another message when closing a terminal window. Make ":quit!"
            also end the job.
f5be7cd016
This commit is contained in:
Jan Edmund Lazo
2019-06-13 22:27:47 -04:00
parent 6efa3bff09
commit 18b031ea1d
6 changed files with 16 additions and 9 deletions

View File

@@ -1425,7 +1425,7 @@ do_buffer(
} }
} }
if (bufIsChanged(curbuf)) { if (bufIsChanged(curbuf)) {
EMSG(_(e_nowrtmsg)); no_write_message();
return FAIL; return FAIL;
} }
} }
@@ -1626,6 +1626,16 @@ void do_autochdir(void)
} }
} }
void no_write_message(void)
{
EMSG(_("E37: No write since last change (add ! to override)"));
}
void no_write_message_nobang(void)
{
EMSG(_("E37: No write since last change"));
}
// //
// functions for dealing with the buffer list // functions for dealing with the buffer list
// //

View File

@@ -2076,7 +2076,7 @@ int getfile(int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum,
} }
if (curbufIsChanged()) { if (curbufIsChanged()) {
no_wait_return--; no_wait_return--;
EMSG(_(e_nowrtmsg)); no_write_message();
retval = GETFILE_NOT_WRITTEN; // File has been changed. retval = GETFILE_NOT_WRITTEN; // File has been changed.
goto theend; goto theend;
} }

View File

@@ -1274,9 +1274,9 @@ bool check_changed(buf_T *buf, int flags)
return bufIsChanged(buf); return bufIsChanged(buf);
} }
if (flags & CCGD_EXCMD) { if (flags & CCGD_EXCMD) {
EMSG(_(e_nowrtmsg)); no_write_message();
} else { } else {
EMSG(_(e_nowrtmsg_nobang)); no_write_message_nobang();
} }
return true; return true;
} }

View File

@@ -6216,7 +6216,7 @@ ex_win_close(
} }
need_hide = false; need_hide = false;
} else { } else {
EMSG(_(e_nowrtmsg)); no_write_message();
return; return;
} }
} }

View File

@@ -985,9 +985,6 @@ 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_notopen[] INIT(= N_("E484: Can't open file %s"));
EXTERN char_u e_notopen_2[] INIT(= N_("E484: Can't open file %s: %s")); EXTERN char_u e_notopen_2[] INIT(= N_("E484: Can't open file %s: %s"));
EXTERN char_u e_notread[] INIT(= N_("E485: Can't read 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")); EXTERN char_u e_null[] INIT(= N_("E38: Null argument"));
EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected")); EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected"));
EXTERN char_u e_openerrf[] INIT(= N_("E40: Can't open errorfile %s")); EXTERN char_u e_openerrf[] INIT(= N_("E40: Can't open errorfile %s"));

View File

@@ -2204,7 +2204,7 @@ static int qf_jump_edit_buffer(qf_info_T *qi, qfline_T *qf_ptr, int forceit,
// Open help file (do_ecmd() will set b_help flag, readfile() will // Open help file (do_ecmd() will set b_help flag, readfile() will
// set b_p_ro flag). // set b_p_ro flag).
if (!can_abandon(curbuf, forceit)) { if (!can_abandon(curbuf, forceit)) {
EMSG(_(e_nowrtmsg)); no_write_message();
retval = false; retval = false;
} else { } else {
retval = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1, retval = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,