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>
This commit is contained in:
10
procps/top.c
10
procps/top.c
@ -1089,9 +1089,6 @@ int top_main(int argc UNUSED_PARAM, char **argv)
|
||||
unsigned interval;
|
||||
char *str_interval, *str_iterations;
|
||||
unsigned scan_mask = TOP_MASK;
|
||||
#if ENABLE_FEATURE_USE_TERMIOS
|
||||
struct termios new_settings;
|
||||
#endif
|
||||
|
||||
INIT_G();
|
||||
|
||||
@ -1141,11 +1138,8 @@ int top_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
#if ENABLE_FEATURE_USE_TERMIOS
|
||||
else {
|
||||
tcgetattr(0, (void *) &initial_settings);
|
||||
memcpy(&new_settings, &initial_settings, sizeof(new_settings));
|
||||
/* unbuffered input, turn off echo */
|
||||
new_settings.c_lflag &= ~(ISIG | ICANON | ECHO | ECHONL);
|
||||
tcsetattr_stdin_TCSANOW(&new_settings);
|
||||
/* Turn on unbuffered input; turn off echoing, ^C ^Z etc */
|
||||
set_termios_to_raw(STDIN_FILENO, &initial_settings, TERMIOS_CLEAR_ISIG);
|
||||
}
|
||||
|
||||
bb_signals(BB_FATAL_SIGS, sig_catcher);
|
||||
|
Reference in New Issue
Block a user