From 41c0dfd5454702d639d97c44a8fd38cbdd2ff0ba Mon Sep 17 00:00:00 2001 From: Shougo Matsushita Date: Tue, 3 May 2016 13:35:04 +0900 Subject: Port capture() function https://groups.google.com/forum/#!msg/vim_dev/H3Z3ChSUh_4/beZs6KzYdBsJ --- src/nvim/message.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/nvim/message.c') diff --git a/src/nvim/message.c b/src/nvim/message.c index 521db85cf0..02201107db 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -2389,6 +2389,19 @@ static void redir_write(char_u *str, int maxlen) char_u *s = str; static int cur_col = 0; + if (maxlen == 0) { + return; + } + + // Append output to capture(). + if (capture_ga) { + size_t len = 0; + while (str[len] && (maxlen < 0 ? 1 : (len < (size_t)maxlen))) { + len++; + } + ga_concat_len(capture_ga, (const char *)str, len); + } + /* Don't do anything for displaying prompts and the like. */ if (redir_off) return; -- cgit