diff options
Diffstat (limited to 't/rt.c')
-rw-r--r-- | t/rt.c | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -92,14 +92,17 @@ static void linemon(const char *ptr, size_t len, void *data) { struct linemon_closure *clos = data; - - if (!clos->cont) { - printf("%s:", clos->prefix); - if (!(len == 1 && ptr[0] == '\n')) - putchar(' '); - } - fwrite(ptr, len, 1, stdout); - clos->cont = ptr[len-1] != '\n'; + + if (len) { + if (!clos->cont) { + printf("%s:", clos->prefix); + if (!(len == 1 && ptr[0] == '\n')) + putchar(' '); + } + fwrite(ptr, len, 1, stdout); + } else + fflush(stdout); + clos->cont = !(len == 0 || ptr[len-1] == '\n'); } static void |