Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-01-11 18:17:59 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2017-01-11 18:17:59 +0300
commit01ccdd1d3c5221789f1ac62ced12b7984d910705 (patch)
treea6eb44f24c1324ddf18bfcec57fd4c3735aa1245 /util-linux/more.c
parent8944c67b1f61ca6a51a485772d5d1e6a8ff3d83d (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/more.c')
-rw-r--r--util-linux/more.c10
1 files changed, 3 insertions, 7 deletions
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 {