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 /miscutils | |
| parent | 8944c67b1f61ca6a51a485772d5d1e6a8ff3d83d (diff) | |
| download | busybox-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 'miscutils')
| -rw-r--r-- | miscutils/chat.c | 1 | ||||
| -rw-r--r-- | miscutils/conspy.c | 17 | ||||
| -rw-r--r-- | miscutils/microcom.c | 1 | ||||
| -rw-r--r-- | miscutils/rx.c | 1 |
4 files changed, 10 insertions, 10 deletions
diff --git a/miscutils/chat.c b/miscutils/chat.c index dc85f82fb..8df194534 100644 --- a/miscutils/chat.c +++ b/miscutils/chat.c | |||
| @@ -213,6 +213,7 @@ int chat_main(int argc UNUSED_PARAM, char **argv) | |||
| 213 | , signal_handler); | 213 | , signal_handler); |
| 214 | 214 | ||
| 215 | #if ENABLE_FEATURE_CHAT_TTY_HIFI | 215 | #if ENABLE_FEATURE_CHAT_TTY_HIFI |
| 216 | //TODO: use set_termios_to_raw() | ||
| 216 | tcgetattr(STDIN_FILENO, &tio); | 217 | tcgetattr(STDIN_FILENO, &tio); |
| 217 | tio0 = tio; | 218 | tio0 = tio; |
| 218 | cfmakeraw(&tio); | 219 | cfmakeraw(&tio); |
diff --git a/miscutils/conspy.c b/miscutils/conspy.c index d9d09d482..1f0278b47 100644 --- a/miscutils/conspy.c +++ b/miscutils/conspy.c | |||
| @@ -363,7 +363,6 @@ int conspy_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |||
| 363 | int conspy_main(int argc UNUSED_PARAM, char **argv) | 363 | int conspy_main(int argc UNUSED_PARAM, char **argv) |
| 364 | { | 364 | { |
| 365 | char tty_name[sizeof(DEV_TTY "NN")]; | 365 | char tty_name[sizeof(DEV_TTY "NN")]; |
| 366 | struct termios termbuf; | ||
| 367 | unsigned opts; | 366 | unsigned opts; |
| 368 | unsigned ttynum; | 367 | unsigned ttynum; |
| 369 | int poll_timeout_ms; | 368 | int poll_timeout_ms; |
| @@ -414,16 +413,14 @@ int conspy_main(int argc UNUSED_PARAM, char **argv) | |||
| 414 | 413 | ||
| 415 | bb_signals(BB_FATAL_SIGS, cleanup); | 414 | bb_signals(BB_FATAL_SIGS, cleanup); |
| 416 | 415 | ||
| 417 | // All characters must be passed through to us unaltered | ||
| 418 | G.kbd_fd = xopen(CURRENT_TTY, O_RDONLY); | 416 | G.kbd_fd = xopen(CURRENT_TTY, O_RDONLY); |
| 419 | tcgetattr(G.kbd_fd, &G.term_orig); | 417 | |
| 420 | termbuf = G.term_orig; | 418 | // All characters must be passed through to us unaltered |
| 421 | termbuf.c_iflag &= ~(BRKINT|INLCR|ICRNL|IXON|IXOFF|IUCLC|IXANY|IMAXBEL); | 419 | set_termios_to_raw(G.kbd_fd, &G.term_orig, 0 |
| 422 | //termbuf.c_oflag &= ~(OPOST); - no, we still want \n -> \r\n | 420 | | TERMIOS_CLEAR_ISIG // no signals on ^C ^Z etc |
| 423 | termbuf.c_lflag &= ~(ISIG|ICANON|ECHO); | 421 | | TERMIOS_RAW_INPUT // turn off all input conversions |
| 424 | termbuf.c_cc[VMIN] = 1; | 422 | ); |
| 425 | termbuf.c_cc[VTIME] = 0; | 423 | //Note: termios.c_oflag &= ~(OPOST); - no, we still want \n -> \r\n |
| 426 | tcsetattr(G.kbd_fd, TCSANOW, &termbuf); | ||
| 427 | 424 | ||
| 428 | poll_timeout_ms = 250; | 425 | poll_timeout_ms = 250; |
| 429 | while (1) { | 426 | while (1) { |
diff --git a/miscutils/microcom.c b/miscutils/microcom.c index 04605d883..5a4bbefa9 100644 --- a/miscutils/microcom.c +++ b/miscutils/microcom.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | // set raw tty mode | 33 | // set raw tty mode |
| 34 | static void xget1(int fd, struct termios *t, struct termios *oldt) | 34 | static void xget1(int fd, struct termios *t, struct termios *oldt) |
| 35 | { | 35 | { |
| 36 | //TODO: use set_termios_to_raw() | ||
| 36 | tcgetattr(fd, oldt); | 37 | tcgetattr(fd, oldt); |
| 37 | *t = *oldt; | 38 | *t = *oldt; |
| 38 | cfmakeraw(t); | 39 | cfmakeraw(t); |
diff --git a/miscutils/rx.c b/miscutils/rx.c index 660f66a89..36fc20a72 100644 --- a/miscutils/rx.c +++ b/miscutils/rx.c | |||
| @@ -263,6 +263,7 @@ int rx_main(int argc UNUSED_PARAM, char **argv) | |||
| 263 | 263 | ||
| 264 | termios_err = tcgetattr(read_fd, &tty); | 264 | termios_err = tcgetattr(read_fd, &tty); |
| 265 | if (termios_err == 0) { | 265 | if (termios_err == 0) { |
| 266 | //TODO: use set_termios_to_raw() | ||
| 266 | orig_tty = tty; | 267 | orig_tty = tty; |
| 267 | cfmakeraw(&tty); | 268 | cfmakeraw(&tty); |
| 268 | tcsetattr(read_fd, TCSAFLUSH, &tty); | 269 | tcsetattr(read_fd, TCSAFLUSH, &tty); |
