Compare commits
3 Commits
v1.0.0
...
897a263ee7
| Author | SHA1 | Date | |
|---|---|---|---|
|
897a263ee7
|
|||
|
84702fa47d
|
|||
|
b315892249
|
@@ -246,11 +246,23 @@ input_rl_on_run_editor (int count, int key)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
input_rl_newline_insert (int count, int key)
|
||||||
|
{
|
||||||
|
(void) count;
|
||||||
|
(void) key;
|
||||||
|
|
||||||
|
rl_insert_text ("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
input_rl_on_startup (void)
|
input_rl_on_startup (void)
|
||||||
{
|
{
|
||||||
rl_add_defun ("run-editor", input_rl_on_run_editor, -1);
|
rl_add_defun ("run-editor", input_rl_on_run_editor, -1);
|
||||||
rl_bind_keyseq ("\\ee", rl_named_function ("run-editor"));
|
rl_bind_keyseq ("\\ee", rl_named_function ("run-editor"));
|
||||||
|
rl_add_defun ("newline-insert", input_rl_newline_insert, -1);
|
||||||
|
rl_bind_keyseq ("\\e\\r", rl_named_function ("newline-insert"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,6 +280,7 @@ input_rl_start (struct input *input, const char *program_name)
|
|||||||
rl_readline_name = slash ? ++slash : program_name;
|
rl_readline_name = slash ? ++slash : program_name;
|
||||||
rl_startup_hook = input_rl_on_startup;
|
rl_startup_hook = input_rl_on_startup;
|
||||||
rl_catch_sigwinch = false;
|
rl_catch_sigwinch = false;
|
||||||
|
rl_change_environment = false;
|
||||||
|
|
||||||
hard_assert (self->prompt != NULL);
|
hard_assert (self->prompt != NULL);
|
||||||
rl_callback_handler_install (self->prompt, input_rl_on_input);
|
rl_callback_handler_install (self->prompt, input_rl_on_input);
|
||||||
@@ -360,16 +373,14 @@ input_rl_set_prompt (struct input *input, char *prompt)
|
|||||||
free (self->prompt);
|
free (self->prompt);
|
||||||
self->prompt = prompt;
|
self->prompt = prompt;
|
||||||
|
|
||||||
if (!self->active)
|
if (!self->active || self->prompt_shown <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// First reset the prompt to work around a bug in readline
|
// First reset the prompt to work around a bug in readline
|
||||||
rl_set_prompt ("");
|
rl_set_prompt ("");
|
||||||
if (self->prompt_shown > 0)
|
|
||||||
rl_redisplay ();
|
rl_redisplay ();
|
||||||
|
|
||||||
rl_set_prompt (self->prompt);
|
rl_set_prompt (self->prompt);
|
||||||
if (self->prompt_shown > 0)
|
|
||||||
rl_redisplay ();
|
rl_redisplay ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2716,6 +2727,7 @@ static void
|
|||||||
resume_terminal (struct app_context *ctx)
|
resume_terminal (struct app_context *ctx)
|
||||||
{
|
{
|
||||||
ctx->input->vtable->prepare (ctx->input, true);
|
ctx->input->vtable->prepare (ctx->input, true);
|
||||||
|
ctx->input->vtable->on_terminal_resized (ctx->input);
|
||||||
ev_io_start (EV_DEFAULT_ &ctx->tty_watcher);
|
ev_io_start (EV_DEFAULT_ &ctx->tty_watcher);
|
||||||
ctx->input->vtable->show (ctx->input);
|
ctx->input->vtable->show (ctx->input);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user