From dcc7aacd67505b812214058dc9a8d321d8d98c7c Mon Sep 17 00:00:00 2001 From: Charles Duffy Date: Wed, 27 May 2015 17:30:11 -0500 Subject: cgtop: more sensible flushing behavior w/ non-TTY output - Explicitly flush stdout before sleep between iterations - Only clear user keystrokes when output is to TTY - Add a newline between output batches when output is not to TTY --- src/cgtop/cgtop.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/cgtop') diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c index d04d6f225c..3a2842dac6 100644 --- a/src/cgtop/cgtop.c +++ b/src/cgtop/cgtop.c @@ -749,6 +749,10 @@ int main(int argc, char *argv[]) { if (arg_iterations && iteration >= arg_iterations) break; + if (!on_tty()) /* non-TTY: Empty newline as delimiter between polls */ + fputs("\n", stdout); + fflush(stdout); + if (arg_batch) { usleep(last_refresh + arg_delay - t); } else { @@ -762,8 +766,10 @@ int main(int argc, char *argv[]) { } } - fputs("\r \r", stdout); - fflush(stdout); + if (on_tty()) { /* TTY: Clear any user keystroke */ + fputs("\r \r", stdout); + fflush(stdout); + } if (arg_batch) continue; -- cgit v1.2.3-54-g00ecf