aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_getln.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 0b5d0864e5..baff795e71 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -951,6 +951,8 @@ theend:
kv_destroy(ccline.last_colors.colors);
char *p = ccline.cmdbuff;
+ // Prevent show events triggered by a (vim.ui_attach) hide callback.
+ ccline.cmdbuff = NULL;
if (ui_has(kUICmdline)) {
ui_call_cmdline_hide(ccline.level, s->gotesc);
@@ -965,8 +967,6 @@ theend:
if (did_save_ccline) {
restore_cmdline(&save_ccline);
- } else {
- ccline.cmdbuff = NULL;
}
return (uint8_t *)p;
@@ -3415,6 +3415,10 @@ static void draw_cmdline(int start, int len)
static void ui_ext_cmdline_show(CmdlineInfo *line)
{
+ if (line->cmdbuff == NULL) {
+ return;
+ }
+
Arena arena = ARENA_EMPTY;
Array content;
if (cmdline_star) {