aboutsummaryrefslogtreecommitdiff
path: root/procps/top.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-01-11 16:17:59 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2017-01-11 16:17:59 +0100
commit01ccdd1d3c5221789f1ac62ced12b7984d910705 (patch)
treea6eb44f24c1324ddf18bfcec57fd4c3735aa1245 /procps/top.c
parent8944c67b1f61ca6a51a485772d5d1e6a8ff3d83d (diff)
downloadbusybox-w32-01ccdd1d3c5221789f1ac62ced12b7984d910705.tar.gz
busybox-w32-01ccdd1d3c5221789f1ac62ced12b7984d910705.tar.bz2
busybox-w32-01ccdd1d3c5221789f1ac62ced12b7984d910705.zip
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/top.c')
-rw-r--r--procps/top.c10
1 files changed, 2 insertions, 8 deletions
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);