xC: fix newer libedit (2021-08-29)
This commit is contained in:
parent
5e728f6d31
commit
e5ed89646b
19
xC.c
19
xC.c
@ -771,24 +771,13 @@ struct input_el
|
|||||||
|
|
||||||
static void app_editline_init (struct input_el *self);
|
static void app_editline_init (struct input_el *self);
|
||||||
|
|
||||||
static int
|
|
||||||
input_el__get_termios (int character, int fallback)
|
|
||||||
{
|
|
||||||
if (!g_terminal.initialized)
|
|
||||||
return fallback;
|
|
||||||
|
|
||||||
cc_t value = g_terminal.termios.c_cc[character];
|
|
||||||
if (value == _POSIX_VDISABLE)
|
|
||||||
return fallback;
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
input_el__redisplay (void *input)
|
input_el__redisplay (void *input)
|
||||||
{
|
{
|
||||||
// See rl_redisplay()
|
// See rl_redisplay(), however NetBSD editline's map.c v1.54 breaks VREPRINT
|
||||||
|
// so we bind redisplay somewhere else in app_editline_init()
|
||||||
struct input_el *self = input;
|
struct input_el *self = input;
|
||||||
char x[] = { input_el__get_termios (VREPRINT, 'R' - 0x40), 0 };
|
char x[] = { 'q' & 31, 0 };
|
||||||
el_push (self->editline, x);
|
el_push (self->editline, x);
|
||||||
|
|
||||||
// We have to do this or it gets stuck and nothing is done
|
// We have to do this or it gets stuck and nothing is done
|
||||||
@ -13782,6 +13771,8 @@ app_editline_init (struct input_el *self)
|
|||||||
CALL_ (input, bind_control, 'w', "ed-delete-prev-word");
|
CALL_ (input, bind_control, 'w', "ed-delete-prev-word");
|
||||||
// Just what are you doing?
|
// Just what are you doing?
|
||||||
CALL_ (input, bind_control, 'u', "vi-kill-line-prev");
|
CALL_ (input, bind_control, 'u', "vi-kill-line-prev");
|
||||||
|
// See input_el__redisplay(), functionally important
|
||||||
|
CALL_ (input, bind_control, 'q', "ed-redisplay");
|
||||||
|
|
||||||
// We need to hide the prompt and input first
|
// We need to hide the prompt and input first
|
||||||
CALL_ (input, bind, "\n", "send-line");
|
CALL_ (input, bind, "\n", "send-line");
|
||||||
|
Loading…
Reference in New Issue
Block a user