diff options
Diffstat (limited to 'procps')
-rw-r--r-- | procps/powertop.c | 10 | ||||
-rw-r--r-- | procps/top.c | 10 |
2 files changed, 5 insertions, 15 deletions
diff --git a/procps/powertop.c b/procps/powertop.c index ce85f4191..ee806161f 100644 --- a/procps/powertop.c +++ b/procps/powertop.c | |||
@@ -683,7 +683,6 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv) | |||
683 | ullong cur_duration[MAX_CSTATE_COUNT]; | 683 | ullong cur_duration[MAX_CSTATE_COUNT]; |
684 | char cstate_lines[MAX_CSTATE_COUNT + 2][64]; | 684 | char cstate_lines[MAX_CSTATE_COUNT + 2][64]; |
685 | #if ENABLE_FEATURE_USE_TERMIOS | 685 | #if ENABLE_FEATURE_USE_TERMIOS |
686 | struct termios new_settings; | ||
687 | struct pollfd pfd[1]; | 686 | struct pollfd pfd[1]; |
688 | 687 | ||
689 | pfd[0].fd = 0; | 688 | pfd[0].fd = 0; |
@@ -707,14 +706,11 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv) | |||
707 | puts("Collecting data for "DEFAULT_SLEEP_STR" seconds"); | 706 | puts("Collecting data for "DEFAULT_SLEEP_STR" seconds"); |
708 | 707 | ||
709 | #if ENABLE_FEATURE_USE_TERMIOS | 708 | #if ENABLE_FEATURE_USE_TERMIOS |
710 | tcgetattr(0, (void *)&G.init_settings); | 709 | /* Turn on unbuffered input; turn off echoing, ^C ^Z etc */ |
711 | memcpy(&new_settings, &G.init_settings, sizeof(new_settings)); | 710 | set_termios_to_raw(STDIN_FILENO, &G.init_settings, TERMIOS_CLEAR_ISIG); |
712 | /* Turn on unbuffered input, turn off echoing */ | 711 | bb_signals(BB_FATAL_SIGS, sig_handler); |
713 | new_settings.c_lflag &= ~(ISIG | ICANON | ECHO | ECHONL); | ||
714 | /* So we don't forget to reset term settings */ | 712 | /* So we don't forget to reset term settings */ |
715 | atexit(reset_term); | 713 | atexit(reset_term); |
716 | bb_signals(BB_FATAL_SIGS, sig_handler); | ||
717 | tcsetattr_stdin_TCSANOW(&new_settings); | ||
718 | #endif | 714 | #endif |
719 | 715 | ||
720 | /* Collect initial data */ | 716 | /* Collect initial data */ |
diff --git a/procps/top.c b/procps/top.c index 491acb574..91bb8a883 100644 --- a/procps/top.c +++ b/procps/top.c | |||
@@ -1089,9 +1089,6 @@ int top_main(int argc UNUSED_PARAM, char **argv) | |||
1089 | unsigned interval; | 1089 | unsigned interval; |
1090 | char *str_interval, *str_iterations; | 1090 | char *str_interval, *str_iterations; |
1091 | unsigned scan_mask = TOP_MASK; | 1091 | unsigned scan_mask = TOP_MASK; |
1092 | #if ENABLE_FEATURE_USE_TERMIOS | ||
1093 | struct termios new_settings; | ||
1094 | #endif | ||
1095 | 1092 | ||
1096 | INIT_G(); | 1093 | INIT_G(); |
1097 | 1094 | ||
@@ -1141,11 +1138,8 @@ int top_main(int argc UNUSED_PARAM, char **argv) | |||
1141 | } | 1138 | } |
1142 | #if ENABLE_FEATURE_USE_TERMIOS | 1139 | #if ENABLE_FEATURE_USE_TERMIOS |
1143 | else { | 1140 | else { |
1144 | tcgetattr(0, (void *) &initial_settings); | 1141 | /* Turn on unbuffered input; turn off echoing, ^C ^Z etc */ |
1145 | memcpy(&new_settings, &initial_settings, sizeof(new_settings)); | 1142 | set_termios_to_raw(STDIN_FILENO, &initial_settings, TERMIOS_CLEAR_ISIG); |
1146 | /* unbuffered input, turn off echo */ | ||
1147 | new_settings.c_lflag &= ~(ISIG | ICANON | ECHO | ECHONL); | ||
1148 | tcsetattr_stdin_TCSANOW(&new_settings); | ||
1149 | } | 1143 | } |
1150 | 1144 | ||
1151 | bb_signals(BB_FATAL_SIGS, sig_catcher); | 1145 | bb_signals(BB_FATAL_SIGS, sig_catcher); |