diff --git a/degesch.c b/degesch.c index e7310c9..f3ad894 100644 --- a/degesch.c +++ b/degesch.c @@ -197,6 +197,9 @@ input_set_prompt (struct input *self, char *prompt) free (self->prompt); self->prompt = prompt; + if (!self->active) + return; + // First reset the prompt to work around a bug in readline rl_set_prompt (""); if (self->prompt_shown) @@ -294,6 +297,7 @@ input_stop (struct input *self) // This is okay as long as we're not called from within readline rl_callback_handler_remove (); self->active = false; + self->prompt_shown = false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -591,6 +595,7 @@ input_stop (struct input *self) el_end (self->editline); self->editline = NULL; self->active = false; + self->prompt_shown = false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -