diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-11-05 13:20:58 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-11-05 13:20:58 +0000 |
commit | 202ac504e1addf0aa2debd53e7cd2411cc73ac8c (patch) | |
tree | 20a02054110c8b0dbec1f94252a9d2b759dac3ae /libbb | |
parent | 905ed8730f1b78461cf83e719a1e077214c2432c (diff) |
*: 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
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/bb_askpass.c | 4 | ||||
-rw-r--r-- | libbb/get_console.c | 2 | ||||
-rw-r--r-- | libbb/lineedit.c | 4 | ||||
-rw-r--r-- | libbb/xfuncs.c | 5 |
4 files changed, 9 insertions, 6 deletions
diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c index fba82a07b..c60ef3708 100644 --- a/libbb/bb_askpass.c +++ b/libbb/bb_askpass.c @@ -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; diff --git a/libbb/get_console.c b/libbb/get_console.c index ad56e740f..74022b543 100644 --- a/libbb/get_console.c +++ b/libbb/get_console.c @@ -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[] = { diff --git a/libbb/lineedit.c b/libbb/lineedit.c index 1f21866ca..3953cc904 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -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); diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 8ef305ba0..e2aee136c 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -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); +} |