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:
@ -43,7 +43,6 @@ struct globals {
|
||||
unsigned terminal_width;
|
||||
unsigned terminal_height;
|
||||
struct termios initial_settings;
|
||||
struct termios new_settings;
|
||||
} FIX_ALIASING;
|
||||
#define G (*(struct globals*)bb_common_bufsiz1)
|
||||
#define INIT_G() do { setup_common_bufsiz(); } while (0)
|
||||
@ -101,12 +100,9 @@ int more_main(int argc UNUSED_PARAM, char **argv)
|
||||
return bb_cat(argv);
|
||||
|
||||
G.tty_fileno = fileno(tty);
|
||||
tcgetattr(G.tty_fileno, &G.initial_settings);
|
||||
G.new_settings = G.initial_settings;
|
||||
G.new_settings.c_lflag &= ~(ICANON | ECHO);
|
||||
G.new_settings.c_cc[VMIN] = 1;
|
||||
G.new_settings.c_cc[VTIME] = 0;
|
||||
tcsetattr_tty_TCSANOW(&G.new_settings);
|
||||
|
||||
/* Turn on unbuffered input; turn off echoing */
|
||||
set_termios_to_raw(G.tty_fileno, &G.initial_settings, 0);
|
||||
bb_signals(BB_FATAL_SIGS, gotsig);
|
||||
|
||||
do {
|
||||
|
Reference in New Issue
Block a user