aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authornwounkn <nwounkn@gmail.com>2023-10-13 12:01:26 +0500
committerzeertzjq <zeertzjq@outlook.com>2023-10-14 14:23:08 +0800
commit13f55750e9bea8ec8f50550546edc64a0f0964d8 (patch)
tree741aa03b9f0d2edc53c210f5b9bebba251c8d9fb /src/nvim/api/vim.c
parentce0f80835a5f6febd64f4ce5cf245d476ebaecfd (diff)
downloadrneovim-13f55750e9bea8ec8f50550546edc64a0f0964d8.tar.gz
rneovim-13f55750e9bea8ec8f50550546edc64a0f0964d8.tar.bz2
rneovim-13f55750e9bea8ec8f50550546edc64a0f0964d8.zip
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`
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c4
1 files changed, 3 insertions, 1 deletions
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) { \