refactor(misc1): move msgmore function to messages.c

This commit is contained in:
Björn Linse
2021-12-10 17:03:22 +01:00
parent 608f74a0de
commit 6dbd4f3787
3 changed files with 45 additions and 43 deletions

View File

@@ -76,6 +76,8 @@ static int msg_hist_len = 0;
static FILE *verbose_fd = NULL;
static int verbose_did_open = FALSE;
bool keep_msg_more = false; // keep_msg was set by msgmore()
/*
* When writing messages to the screen, there are many different situations.
* A number of variables is used to remember the current state:
@@ -1298,6 +1300,49 @@ void set_keep_msg(char *s, int attr)
keep_msg_attr = attr;
}
void msgmore(long n)
{
long pn;
if (global_busy // no messages now, wait until global is finished
|| !messaging()) { // 'lazyredraw' set, don't do messages now
return;
}
// We don't want to overwrite another important message, but do overwrite
// a previous "more lines" or "fewer lines" message, so that "5dd" and
// then "put" reports the last action.
if (keep_msg != NULL && !keep_msg_more) {
return;
}
if (n > 0) {
pn = n;
} else {
pn = -n;
}
if (pn > p_report) {
if (n > 0) {
vim_snprintf(msg_buf, MSG_BUF_LEN,
NGETTEXT("%ld more line", "%ld more lines", pn),
pn);
} else {
vim_snprintf(msg_buf, MSG_BUF_LEN,
NGETTEXT("%ld line less", "%ld fewer lines", pn),
pn);
}
if (got_int) {
xstrlcat(msg_buf, _(" (Interrupted)"), MSG_BUF_LEN);
}
if (msg(msg_buf)) {
set_keep_msg(msg_buf, 0);
keep_msg_more = true;
}
}
}
void msg_ext_set_kind(const char *msg_kind)
{
// Don't change the label of an existing batch: