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)) {
EMSG(_(e_nowrtmsg));
no_write_message();
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
//

View File

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

View File

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

View File

@@ -6216,7 +6216,7 @@ ex_win_close(
}
need_hide = false;
} else {
EMSG(_(e_nowrtmsg));
no_write_message();
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_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_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_number_exp[] INIT(= N_("E39: Number expected"));
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
// set b_p_ro flag).
if (!can_abandon(curbuf, forceit)) {
EMSG(_(e_nowrtmsg));
no_write_message();
retval = false;
} else {
retval = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,