]> git.sur5r.net Git - i3/i3/commitdiff
i3bar: Split flat line logic to read_flat_input
authorQuentin Glidic <sardemff7+git@sardemff7.net>
Mon, 3 Sep 2012 07:52:17 +0000 (09:52 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 22 Sep 2012 13:13:21 +0000 (15:13 +0200)
i3bar/src/child.c

index 2ef22845179466bd1b8fdcd62da9595f61552e68..227a14352dae375d92617a21e06aabbfacc83728 100644 (file)
@@ -191,6 +191,18 @@ static unsigned char *get_buffer(ev_io *watcher, int *ret_buffer_len) {
     return buffer;
 }
 
+static void read_flat_input(char *buffer, int length) {
+    struct status_block *first = TAILQ_FIRST(&statusline_head);
+    /* Clear the old buffer if any. */
+    I3STRING_FREE(first->full_text);
+    /* Remove the trailing newline and terminate the string at the same
+     * time. */
+    if (buffer[length-1] == '\n' || buffer[length-1] == '\r')
+        buffer[length-1] = '\0';
+    else buffer[length] = '\0';
+    first->full_text = i3string_from_utf8(buffer);
+}
+
 /*
  * Callbalk for stdin. We read a line from stdin and store the result
  * in statusline
@@ -231,15 +243,7 @@ void stdin_io_cb(struct ev_loop *loop, ev_io *watcher, int revents) {
                     status, rec, json_input);
         }
     } else {
-        struct status_block *first = TAILQ_FIRST(&statusline_head);
-        /* Clear the old buffer if any. */
-        I3STRING_FREE(first->full_text);
-        /* Remove the trailing newline and terminate the string at the same
-         * time. */
-        if (buffer[rec-1] == '\n' || buffer[rec-1] == '\r')
-            buffer[rec-1] = '\0';
-        else buffer[rec] = '\0';
-        first->full_text = i3string_from_utf8((const char *)buffer);
+        read_flat_input((char*)buffer, rec);
     }
     free(buffer);
     draw_bars();