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) | |
download | busybox-w32-202ac504e1addf0aa2debd53e7cd2411cc73ac8c.tar.gz busybox-w32-202ac504e1addf0aa2debd53e7cd2411cc73ac8c.tar.bz2 busybox-w32-202ac504e1addf0aa2debd53e7cd2411cc73ac8c.zip |
*: 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) | |||
37 | tio = oldtio; | 37 | tio = oldtio; |
38 | tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); | 38 | tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); |
39 | tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP); | 39 | tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP); |
40 | tcsetattr(STDIN_FILENO, TCSANOW, &tio); | 40 | tcsetattr_stdin_TCSANOW(&tio); |
41 | 41 | ||
42 | memset(&sa, 0, sizeof(sa)); | 42 | memset(&sa, 0, sizeof(sa)); |
43 | /* sa.sa_flags = 0; - no SA_RESTART! */ | 43 | /* sa.sa_flags = 0; - no SA_RESTART! */ |
@@ -70,7 +70,7 @@ char* FAST_FUNC bb_askpass(int timeout, const char *prompt) | |||
70 | } | 70 | } |
71 | sigaction_set(SIGINT, &oldsa); | 71 | sigaction_set(SIGINT, &oldsa); |
72 | 72 | ||
73 | tcsetattr(STDIN_FILENO, TCSANOW, &oldtio); | 73 | tcsetattr_stdin_TCSANOW(&oldtio); |
74 | bb_putchar('\n'); | 74 | bb_putchar('\n'); |
75 | fflush(stdout); | 75 | fflush(stdout); |
76 | return ret; | 76 | 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 @@ | |||
13 | /* From <linux/kd.h> */ | 13 | /* From <linux/kd.h> */ |
14 | enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */ | 14 | enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */ |
15 | 15 | ||
16 | |||
17 | static int open_a_console(const char *fnam) | 16 | static int open_a_console(const char *fnam) |
18 | { | 17 | { |
19 | int fd; | 18 | int fd; |
@@ -37,7 +36,6 @@ static int open_a_console(const char *fnam) | |||
37 | * We try several things because opening /dev/console will fail | 36 | * We try several things because opening /dev/console will fail |
38 | * if someone else used X (which does a chown on /dev/console). | 37 | * if someone else used X (which does a chown on /dev/console). |
39 | */ | 38 | */ |
40 | |||
41 | int FAST_FUNC get_console_fd_or_die(void) | 39 | int FAST_FUNC get_console_fd_or_die(void) |
42 | { | 40 | { |
43 | static const char *const console_names[] = { | 41 | 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 | |||
1436 | #define _POSIX_VDISABLE '\0' | 1436 | #define _POSIX_VDISABLE '\0' |
1437 | #endif | 1437 | #endif |
1438 | new_settings.c_cc[VINTR] = _POSIX_VDISABLE; | 1438 | new_settings.c_cc[VINTR] = _POSIX_VDISABLE; |
1439 | tcsetattr(STDIN_FILENO, TCSANOW, &new_settings); | 1439 | tcsetattr_stdin_TCSANOW(&new_settings); |
1440 | 1440 | ||
1441 | /* Now initialize things */ | 1441 | /* Now initialize things */ |
1442 | previous_SIGWINCH_handler = signal(SIGWINCH, win_changed); | 1442 | 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 | |||
1860 | #endif | 1860 | #endif |
1861 | 1861 | ||
1862 | /* restore initial_settings */ | 1862 | /* restore initial_settings */ |
1863 | tcsetattr(STDIN_FILENO, TCSANOW, &initial_settings); | 1863 | tcsetattr_stdin_TCSANOW(&initial_settings); |
1864 | /* restore SIGWINCH handler */ | 1864 | /* restore SIGWINCH handler */ |
1865 | signal(SIGWINCH, previous_SIGWINCH_handler); | 1865 | signal(SIGWINCH, previous_SIGWINCH_handler); |
1866 | fflush(stdout); | 1866 | 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 | |||
289 | 289 | ||
290 | return ret; | 290 | return ret; |
291 | } | 291 | } |
292 | |||
293 | int FAST_FUNC tcsetattr_stdin_TCSANOW(const struct termios *tp) | ||
294 | { | ||
295 | return tcsetattr(STDIN_FILENO, TCSANOW, tp); | ||
296 | } | ||