diff options
Diffstat (limited to 'miscutils/conspy.c')
-rw-r--r-- | miscutils/conspy.c | 17 |
1 files changed, 7 insertions, 10 deletions
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) { |