degesch: fix readline initialization

This commit is contained in:
Přemysl Eric Janouch 2015-05-06 22:01:48 +02:00
parent 06ec2a1388
commit 894c45bef4
1 changed files with 11 additions and 4 deletions

View File

@ -220,17 +220,23 @@ static char **app_readline_completion (const char *text, int start, int end);
static void
input_start (struct input *self, const char *program_name)
{
(void) program_name;
using_history ();
// This can cause memory leaks, or maybe even a segfault. Funny, eh?
stifle_history (HISTORY_LIMIT);
rl_readline_name = PROGRAM_NAME;
const char *slash = strrchr (program_name, '/');
rl_readline_name = slash ? ++slash : program_name;
rl_startup_hook = app_readline_init;
rl_catch_sigwinch = false;
rl_callback_handler_install (self->prompt, on_readline_input);
// TODO: global constant
rl_basic_word_break_characters = " \t";
rl_completer_word_break_characters = NULL;
rl_attempted_completion_function = app_readline_completion;
hard_assert (self->prompt != NULL);
rl_callback_handler_install (self->prompt, on_readline_input);
self->prompt_shown = 1;
self->active = true;
}
@ -5531,6 +5537,7 @@ main (int argc, char *argv[])
init_poller_events (&ctx);
init_buffers (&ctx);
refresh_prompt (&ctx);
input_start (&ctx.input, argv[0]);
buffer_activate (&ctx, ctx.server.buffer);