interactive: kill i9ep->line_handler_running.
authorAndre Noll <maan@systemlinux.org>
Mon, 9 Apr 2012 04:10:50 +0000 (06:10 +0200)
committerAndre Noll <maan@systemlinux.org>
Sun, 18 Nov 2012 19:28:27 +0000 (20:28 +0100)
What we are interested in is not if the line handler is currently
running but if there exists a buffer tree node for the stdout task. So
check this condition instead and remove the unnecessary variable.

interactive.c

index 2c9de32..a145b0d 100644 (file)
@@ -240,9 +240,7 @@ static void i9e_line_handler(char *line)
 {
        int ret;
 
-       i9ep->line_handler_running = true;
        ret = i9ep->ici->line_handler(line);
-       i9ep->line_handler_running = false;
        if (ret < 0)
                PARA_WARNING_LOG("%s\n", para_strerror(-ret));
        rl_set_prompt("");
@@ -390,7 +388,7 @@ int i9e_open(struct i9e_client_info *ici, struct sched *s)
 
 static void reset_line_state(void)
 {
-       if (i9ep->line_handler_running)
+       if (i9ep->stdout_btrn)
                return;
        rl_on_new_line();
        rl_reset_line_state();
@@ -413,7 +411,7 @@ __printf_2_3 void i9e_log(int ll, const char* fmt,...)
 
        if (ll < i9ep->ici->loglevel)
                return;
-       if (i9ep->line_handler_running == false)
+       if (!i9ep->stdout_btrn)
                clear_bottom_line();
        va_start(argp, fmt);
        vfprintf(i9ep->stderr_stream, fmt, argp);