diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-01-11 16:17:59 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-01-11 16:17:59 +0100 |
commit | 01ccdd1d3c5221789f1ac62ced12b7984d910705 (patch) | |
tree | a6eb44f24c1324ddf18bfcec57fd4c3735aa1245 /util-linux | |
parent | 8944c67b1f61ca6a51a485772d5d1e6a8ff3d83d (diff) |
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 'util-linux')
-rw-r--r-- | util-linux/fsck_minix.c | 6 | ||||
-rw-r--r-- | util-linux/more.c | 10 |
2 files changed, 4 insertions, 12 deletions
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c index 0eaac17c0..2ab7530ea 100644 --- a/util-linux/fsck_minix.c +++ b/util-linux/fsck_minix.c @@ -1226,7 +1226,6 @@ void check2(void); int fsck_minix_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int fsck_minix_main(int argc UNUSED_PARAM, char **argv) { - struct termios tmp; int retcode = 0; xfunc_error_retval = 8; @@ -1271,10 +1270,7 @@ int fsck_minix_main(int argc UNUSED_PARAM, char **argv) read_tables(); if (OPT_manual) { - tcgetattr(0, &sv_termios); - tmp = sv_termios; - tmp.c_lflag &= ~(ICANON | ECHO); - tcsetattr_stdin_TCSANOW(&tmp); + set_termios_to_raw(STDIN_FILENO, &sv_termios, 0); termios_set = 1; } diff --git a/util-linux/more.c b/util-linux/more.c index 7fa60bdba..debad81bd 100644 --- a/util-linux/more.c +++ b/util-linux/more.c @@ -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 { |