diff options
author | Alexandre Dubray <alexandre.dubray@student.uclouvain.be> | 2018-02-17 22:31:24 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-01-22 20:16:12 +0100 |
commit | 67bac681ea6b38b458ad0b7b10f2a9dce85baef0 (patch) | |
tree | c1c352b96c2839dd2f66b1b1fe4066d66c37b968 | |
parent | 7f2e43c637e56055831898b0f63a27ec1c3ca026 (diff) | |
download | rneovim-67bac681ea6b38b458ad0b7b10f2a9dce85baef0.tar.gz rneovim-67bac681ea6b38b458ad0b7b10f2a9dce85baef0.tar.bz2 rneovim-67bac681ea6b38b458ad0b7b10f2a9dce85baef0.zip |
ex_echo: reuse code from message.c to show arg to user
-rw-r--r-- | src/nvim/eval.c | 19 | ||||
-rw-r--r-- | src/nvim/message.c | 35 |
2 files changed, 21 insertions, 33 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 596eff5b79..3a18a9492f 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -19593,24 +19593,7 @@ void ex_echo(exarg_T *eap) msg_puts_attr(" ", echo_attr); } char *tofree = encode_tv2echo(&rettv, NULL); - const char *p = tofree; - if (p != NULL) { - for (; *p != NUL && !got_int; ++p) { - if (*p == '\n' || *p == '\r' || *p == TAB) { - if (*p != TAB && needclr) { - /* remove any text still there from the command */ - msg_clr_eos(); - needclr = false; - } - msg_putchar_attr((uint8_t)(*p), echo_attr); - } else { - int i = (*mb_ptr2len)((const char_u *)p); - - (void)msg_outtrans_len_attr((char_u *)p, i, echo_attr); - p += i - 1; - } - } - } + msg_echo_show(tofree, echo_attr); xfree(tofree); } tv_clear(&rettv); diff --git a/src/nvim/message.c b/src/nvim/message.c index 7544048434..feb894e4ea 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -173,23 +173,9 @@ bool msg_attr_skip(const char *s, const int attr, int *const call) return false; } - -bool msg_echo_attr_keep(const char *s, const int attr, const int keep) +void msg_echo_show(const char *s, int attr) FUNC_ATTR_NONNULL_ALL { - static int entered = 0; - - if (msg_attr_skip(s, attr, &entered)) { - return true; - } - - msg_start(); - - char *const buf = (char *)msg_strtrunc((char_u *)s, false); - if (buf != NULL) { - s = buf; - } - const char *next_spec = s; while (next_spec != NULL) { @@ -212,6 +198,25 @@ bool msg_echo_attr_keep(const char *s, const int attr, const int keep) if (*s != NUL) { msg_outtrans_attr((char_u *)s, attr); } +} + +bool msg_echo_attr_keep(const char *s, const int attr, const int keep) + FUNC_ATTR_NONNULL_ALL +{ + static int entered = 0; + + if (msg_attr_skip(s, attr, &entered)) { + return true; + } + + msg_start(); + + char *const buf = (char *)msg_strtrunc((char_u *)s, false); + if (buf != NULL) { + s = buf; + } + + msg_echo_show(s, attr); msg_clr_eos(); const bool retval = msg_end(); |