i9ep->empty_line[i9ep->num_columns] = '\0';
}
-/**
- * Defined key sequences are mapped to keys starting with this offset. I.e.
- * pressing the first defined key sequence yields the key number \p KEY_OFFSET.
- */
static int dispatch_key(__a_unused int count, __a_unused int key)
{
int i, ret;
{
int ret;
+ memset(i9ep, 0, sizeof(struct i9e_private));
if (!isatty(ici->fds[0]))
return -E_I9E_SETUPTERM;
ret = mark_fd_nonblocking(ici->fds[0]);
if (ici->bound_keyseqs) {
char *seq;
int i;
- /* bind each key sequence to the our dispatcher */
- for (i = 0; (seq = ici->bound_keyseqs[i]); i++)
- rl_generic_bind(ISFUNC, seq, (char *)dispatch_key,
- i9ep->bare_km);
+ /* bind each key sequence to our dispatcher */
+ for (i = 0; (seq = ici->bound_keyseqs[i]); i++) {
+ if (rl_bind_keyseq_in_map(seq,
+ dispatch_key, i9ep->bare_km) != 0)
+ PARA_WARNING_LOG("could not bind #%d: %s\n", i, seq);
+ }
i9ep->num_key_bindings = i;
}
if (ici->history_file)
if (ici->producer) {
rl_callback_handler_install("", i9e_line_handler);
i9e_attach_to_stdout(ici->producer);
- rl_set_keymap(i9ep->bare_km);
} else
rl_callback_handler_install(i9ep->ici->prompt, i9e_line_handler);
return 1;