From: Andre Noll Date: Tue, 2 Apr 2013 04:05:59 +0000 (+0000) Subject: i9e: Fix a prompt display issue X-Git-Tag: v0.4.13~26^2~1 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=f99dbea033c521a886b99405f5e9efc80e2c32e1;p=paraslash.git i9e: Fix a prompt display issue If a line handler calls PARA_XXX_LOG() to write a log message before attaching a buffer tree node, the prompt is not displayed properly. Fix this by attaching a dummy btrn before the line handler is called. --- diff --git a/interactive.c b/interactive.c index f2819012..ef6fc762 100644 --- a/interactive.c +++ b/interactive.c @@ -290,21 +290,21 @@ static bool input_available(void) static void i9e_line_handler(char *line) { int ret; + struct btr_node *dummy = btr_new_node(&(struct btr_node_description) + EMBRACE(.name = "dummy line handler")); + i9e_attach_to_stdout(dummy); ret = i9ep->ici->line_handler(line); if (ret < 0) PARA_WARNING_LOG("%s\n", para_strerror(-ret)); rl_set_prompt(""); if (line) { - if (!*line) - rl_set_prompt(i9ep->ici->prompt); - else + if (*line) add_history(line); free(line); - } else { - rl_set_prompt(""); + } else i9ep->input_eof = true; - } + btr_remove_node(&dummy); } static int i9e_post_select(__a_unused struct sched *s, __a_unused struct task *t)