From 7867cd5da7ace0abb9f3de447aee4057f5e67a12 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 8 Apr 2012 05:03:10 +0200 Subject: [PATCH] Interactive: Assorted whitespace/newline fixes. This avoids printing unnecessary newlines and fixes the "double-prompt" bug. --- interactive.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/interactive.c b/interactive.c index a145b0df..27763eb3 100644 --- a/interactive.c +++ b/interactive.c @@ -183,6 +183,11 @@ void i9e_attach_to_stdout(struct btr_node *producer) EMBRACE(.name = "interactive_stdout", .parent = producer)); } +static void wipe_bottom_line(void) +{ + fprintf(i9ep->stderr_stream, "\r%s\r", i9ep->empty_line); +} + /** * Reset the terminal and save the in-memory command line history. * @@ -193,14 +198,9 @@ void i9e_close(void) char *hf = i9ep->ici->history_file; rl_deprep_terminal(); - fprintf(i9ep->stderr_stream, "\n"); if (hf) write_history(hf); -} - -static void wipe_bottom_line(void) -{ - fprintf(i9ep->stderr_stream, "\r%s\r", i9ep->empty_line); + wipe_bottom_line(); } static void clear_bottom_line(void) @@ -297,7 +297,7 @@ static void i9e_post_select(struct sched *s, struct task *t) rm_btrn: btr_remove_node(&i9ep->stdout_btrn); rl_set_prompt(i9ep->ici->prompt); - rl_forced_update_display(); + rl_redisplay(); out: t->error = 0; } @@ -411,8 +411,7 @@ __printf_2_3 void i9e_log(int ll, const char* fmt,...) if (ll < i9ep->ici->loglevel) return; - if (!i9ep->stdout_btrn) - clear_bottom_line(); + clear_bottom_line(); va_start(argp, fmt); vfprintf(i9ep->stderr_stream, fmt, argp); va_end(argp); -- 2.39.2