diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 683d44a245..b9a0913baa 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -20903,7 +20903,7 @@ void ex_echo(exarg_T *eap) char *tofree = encode_tv2echo(&rettv, NULL); if (*tofree != NUL) { msg_ext_set_kind("echo"); - msg_multiline_attr(tofree, echo_attr); + msg_multiline_attr(tofree, echo_attr, true); } xfree(tofree); } diff --git a/src/nvim/message.c b/src/nvim/message.c index e21981ec90..b5a5f656a0 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -222,12 +222,12 @@ int msg_attr(const char *s, const int attr) } /// similar to msg_outtrans_attr, but support newlines and tabs. -void msg_multiline_attr(const char *s, int attr) +void msg_multiline_attr(const char *s, int attr, bool check_int) FUNC_ATTR_NONNULL_ALL { const char *next_spec = s; - while (next_spec != NULL && !got_int) { + while (next_spec != NULL && (!check_int || !got_int)) { next_spec = strpbrk(s, "\t\n\r"); if (next_spec != NULL) { @@ -306,7 +306,7 @@ bool msg_attr_keep(char_u *s, int attr, bool keep, bool multiline) s = buf; if (multiline) { - msg_multiline_attr((char *)s, attr); + msg_multiline_attr((char *)s, attr, false); } else { msg_outtrans_attr(s, attr); }