diff options
author | Denys Vlasenko | 2017-01-11 16:17:59 +0100 |
---|---|---|
committer | Denys Vlasenko | 2017-01-11 16:17:59 +0100 |
commit | 01ccdd1d3c5221789f1ac62ced12b7984d910705 (patch) | |
tree | a6eb44f24c1324ddf18bfcec57fd4c3735aa1245 /procps/powertop.c | |
parent | 8944c67b1f61ca6a51a485772d5d1e6a8ff3d83d (diff) | |
download | busybox-01ccdd1d3c5221789f1ac62ced12b7984d910705.zip busybox-01ccdd1d3c5221789f1ac62ced12b7984d910705.tar.gz |
libbb: consolidate the code to set termios unbuffered mode
function old new delta
set_termios_to_raw - 116 +116
count_lines 72 74 +2
powertop_main 1458 1430 -28
top_main 943 914 -29
more_main 759 714 -45
fsck_minix_main 2969 2921 -48
conspy_main 1197 1135 -62
rawmode 99 36 -63
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/6 up/down: 118/-275) Total: -157 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'procps/powertop.c')
-rw-r--r-- | procps/powertop.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/procps/powertop.c b/procps/powertop.c index ce85f41..ee80616 100644 --- a/procps/powertop.c +++ b/procps/powertop.c @@ -683,7 +683,6 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv) ullong cur_duration[MAX_CSTATE_COUNT]; char cstate_lines[MAX_CSTATE_COUNT + 2][64]; #if ENABLE_FEATURE_USE_TERMIOS - struct termios new_settings; struct pollfd pfd[1]; pfd[0].fd = 0; @@ -707,14 +706,11 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv) puts("Collecting data for "DEFAULT_SLEEP_STR" seconds"); #if ENABLE_FEATURE_USE_TERMIOS - tcgetattr(0, (void *)&G.init_settings); - memcpy(&new_settings, &G.init_settings, sizeof(new_settings)); - /* Turn on unbuffered input, turn off echoing */ - new_settings.c_lflag &= ~(ISIG | ICANON | ECHO | ECHONL); + /* Turn on unbuffered input; turn off echoing, ^C ^Z etc */ + set_termios_to_raw(STDIN_FILENO, &G.init_settings, TERMIOS_CLEAR_ISIG); + bb_signals(BB_FATAL_SIGS, sig_handler); /* So we don't forget to reset term settings */ atexit(reset_term); - bb_signals(BB_FATAL_SIGS, sig_handler); - tcsetattr_stdin_TCSANOW(&new_settings); #endif /* Collect initial data */ |