diff options
| author | Albert Cervin <albert@acervin.com> | 2024-02-01 09:51:44 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2024-02-01 09:51:44 +0100 |
| commit | 9be0d9bddd6189ce82ea3775571b5b94d6e168ca (patch) | |
| tree | 1d52c65d2e9b93e3116cb74323fec91081bdf20e /src | |
| parent | 1653dfaef03d48a8a3aacfdea33ec6d82cab2a06 (diff) | |
| download | dged-9be0d9bddd6189ce82ea3775571b5b94d6e168ca.tar.gz dged-9be0d9bddd6189ce82ea3775571b5b94d6e168ca.tar.xz dged-9be0d9bddd6189ce82ea3775571b5b94d6e168ca.zip | |
Fix minibuffer execute clearing when it should not
Diffstat (limited to 'src')
| -rw-r--r-- | src/dged/minibuffer.c | 12 |
1 files changed, 9 insertions, 3 deletions
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() { |
