From 9be0d9bddd6189ce82ea3775571b5b94d6e168ca Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Thu, 1 Feb 2024 09:51:44 +0100 Subject: Fix minibuffer execute clearing when it should not --- src/dged/minibuffer.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/dged/minibuffer.c b/src/dged/minibuffer.c index bbe80ed..64b0a98 100644 --- a/src/dged/minibuffer.c +++ b/src/dged/minibuffer.c @@ -37,6 +37,8 @@ uint32_t minibuffer_draw_prompt(struct command_list *commands) { return len; } +static void minibuffer_abort_prompt_internal(bool clear); + int32_t minibuffer_execute() { if (g_minibuffer.prompt_active) { struct command_ctx *c = &g_minibuffer.prompt_command_ctx; @@ -64,9 +66,9 @@ int32_t minibuffer_execute() { } } + minibuffer_abort_prompt_internal(false); int32_t res = execute_command(c->self, c->commands, c->active_window, c->buffers, argc, (const char **)argv); - minibuffer_abort_prompt(); free(l); @@ -231,8 +233,10 @@ void minibuffer_set_prompt(const char *fmt, ...) { va_end(args); } -void minibuffer_abort_prompt() { - minibuffer_clear(); +static void minibuffer_abort_prompt_internal(bool clear) { + if (clear) { + minibuffer_clear(); + } g_minibuffer.prompt_active = false; if (g_minibuffer.prev_window != NULL) { @@ -240,6 +244,8 @@ void minibuffer_abort_prompt() { } } +void minibuffer_abort_prompt() { minibuffer_abort_prompt_internal(true); } + bool minibuffer_empty() { return !minibuffer_displaying(); } bool minibuffer_displaying() { -- cgit v1.2.3