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
This commit is contained in:
+8
-2
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user