*: code shrink by adding a wrapper around very common tcsetattr(0, TCSANOW, xx) op
function old new delta tcsetattr_stdin_TCSANOW - 14 +14 set_sane_term 116 113 -3 top_main 1277 1273 -4 make_new_session 421 415 -6 rawmode 133 126 -7 reset_term 18 10 -8 die 43 35 -8 cookmode 62 54 -8 vlock_main 425 415 -10 read_line_input 3165 3155 -10 bb_askpass 357 347 -10 fsck_minix_main 3079 3065 -14 getty_main 2375 2332 -43 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/12 up/down: 14/-131) Total: -117 bytes
This commit is contained in:
@ -37,7 +37,7 @@ char* FAST_FUNC bb_askpass(int timeout, const char *prompt)
|
||||
tio = oldtio;
|
||||
tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);
|
||||
tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP);
|
||||
tcsetattr(STDIN_FILENO, TCSANOW, &tio);
|
||||
tcsetattr_stdin_TCSANOW(&tio);
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
/* sa.sa_flags = 0; - no SA_RESTART! */
|
||||
@ -70,7 +70,7 @@ char* FAST_FUNC bb_askpass(int timeout, const char *prompt)
|
||||
}
|
||||
sigaction_set(SIGINT, &oldsa);
|
||||
|
||||
tcsetattr(STDIN_FILENO, TCSANOW, &oldtio);
|
||||
tcsetattr_stdin_TCSANOW(&oldtio);
|
||||
bb_putchar('\n');
|
||||
fflush(stdout);
|
||||
return ret;
|
||||
|
@ -13,7 +13,6 @@
|
||||
/* From <linux/kd.h> */
|
||||
enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */
|
||||
|
||||
|
||||
static int open_a_console(const char *fnam)
|
||||
{
|
||||
int fd;
|
||||
@ -37,7 +36,6 @@ static int open_a_console(const char *fnam)
|
||||
* We try several things because opening /dev/console will fail
|
||||
* if someone else used X (which does a chown on /dev/console).
|
||||
*/
|
||||
|
||||
int FAST_FUNC get_console_fd_or_die(void)
|
||||
{
|
||||
static const char *const console_names[] = {
|
||||
|
@ -1436,7 +1436,7 @@ int FAST_FUNC read_line_input(const char *prompt, char *command, int maxsize, li
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
#endif
|
||||
new_settings.c_cc[VINTR] = _POSIX_VDISABLE;
|
||||
tcsetattr(STDIN_FILENO, TCSANOW, &new_settings);
|
||||
tcsetattr_stdin_TCSANOW(&new_settings);
|
||||
|
||||
/* Now initialize things */
|
||||
previous_SIGWINCH_handler = signal(SIGWINCH, win_changed);
|
||||
@ -1860,7 +1860,7 @@ int FAST_FUNC read_line_input(const char *prompt, char *command, int maxsize, li
|
||||
#endif
|
||||
|
||||
/* restore initial_settings */
|
||||
tcsetattr(STDIN_FILENO, TCSANOW, &initial_settings);
|
||||
tcsetattr_stdin_TCSANOW(&initial_settings);
|
||||
/* restore SIGWINCH handler */
|
||||
signal(SIGWINCH, previous_SIGWINCH_handler);
|
||||
fflush(stdout);
|
||||
|
@ -289,3 +289,8 @@ int FAST_FUNC get_terminal_width_height(int fd, unsigned *width, unsigned *heigh
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int FAST_FUNC tcsetattr_stdin_TCSANOW(const struct termios *tp)
|
||||
{
|
||||
return tcsetattr(STDIN_FILENO, TCSANOW, tp);
|
||||
}
|
||||
|
Reference in New Issue
Block a user