From 13f55750e9bea8ec8f50550546edc64a0f0964d8 Mon Sep 17 00:00:00 2001 From: nwounkn Date: Fri, 13 Oct 2023 12:01:26 +0500 Subject: fix(ui): empty line before the next message after :silent command Problem: The next command after `silent !{cmd}` or `silent lua print('str')` prints an empty line before printing a message, because these commands set `msg_didout = true` despite not printing any messages. Solution: Set `msg_didout = true` only if `msg_silent == 0` --- src/nvim/api/vim.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/nvim/api/vim.c') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index ce3eca52b5..6ce1f41e39 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -1744,7 +1744,9 @@ static void write_msg(String message, bool to_err, bool writeln) } else { \ msg(line_buf->items, 0); \ } \ - msg_didout = true; \ + if (msg_silent == 0) { \ + msg_didout = true; \ + } \ kv_drop(*line_buf, kv_size(*line_buf)); \ kv_resize(*line_buf, LINE_BUFFER_MIN_SIZE); \ } else if (c == NUL) { \ -- cgit