diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-05-19 08:18:50 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-05-19 08:18:50 +0000 |
commit | ae4342ca3e30f7b11732ecda3ad15821e81bc314 (patch) | |
tree | 1878104940eac4649bc8add4d0b2893ab1cb0a94 /libbb | |
parent | ee56e013cfb6304f66129afee7978b0864699419 (diff) | |
download | busybox-w32-ae4342ca3e30f7b11732ecda3ad15821e81bc314.tar.gz busybox-w32-ae4342ca3e30f7b11732ecda3ad15821e81bc314.tar.bz2 busybox-w32-ae4342ca3e30f7b11732ecda3ad15821e81bc314.zip |
- Rename getpty() to xgetpty() and adjust callers.
- Rewrite kbd_mode and setconsole
- Introduce and use console_make_active() and xopen_xwrite_close()
- honour buffer-reservation method as set by the user (dumpkmap, loadkmap)
- shrink rtcwake and some console-tools
Saves about 270 Bytes
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/Kbuild | 1 | ||||
-rw-r--r-- | libbb/get_console.c | 14 | ||||
-rw-r--r-- | libbb/getpty.c | 8 | ||||
-rw-r--r-- | libbb/write.c | 20 |
4 files changed, 38 insertions, 5 deletions
diff --git a/libbb/Kbuild b/libbb/Kbuild index d943628aa..0c7e25497 100644 --- a/libbb/Kbuild +++ b/libbb/Kbuild | |||
@@ -98,6 +98,7 @@ lib-y += vfork_daemon_rexec.o | |||
98 | lib-y += warn_ignoring_args.o | 98 | lib-y += warn_ignoring_args.o |
99 | lib-y += wfopen.o | 99 | lib-y += wfopen.o |
100 | lib-y += wfopen_input.o | 100 | lib-y += wfopen_input.o |
101 | lib-y += write.o | ||
101 | lib-y += xatonum.o | 102 | lib-y += xatonum.o |
102 | lib-y += xconnect.o | 103 | lib-y += xconnect.o |
103 | lib-y += xfuncs.o | 104 | lib-y += xfuncs.o |
diff --git a/libbb/get_console.c b/libbb/get_console.c index 0da27b1e2..36fe20426 100644 --- a/libbb/get_console.c +++ b/libbb/get_console.c | |||
@@ -8,10 +8,8 @@ | |||
8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | //#include <sys/ioctl.h> | ||
12 | #include "libbb.h" | 11 | #include "libbb.h" |
13 | 12 | ||
14 | |||
15 | /* From <linux/kd.h> */ | 13 | /* From <linux/kd.h> */ |
16 | enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */ | 14 | enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */ |
17 | 15 | ||
@@ -70,3 +68,15 @@ int get_console_fd(void) | |||
70 | bb_error_msg("can't open console"); | 68 | bb_error_msg("can't open console"); |
71 | return fd; /* total failure */ | 69 | return fd; /* total failure */ |
72 | } | 70 | } |
71 | |||
72 | /* From <linux/vt.h> */ | ||
73 | enum { | ||
74 | VT_ACTIVATE = 0x5606, /* make vt active */ | ||
75 | VT_WAITACTIVE = 0x5607 /* wait for vt active */ | ||
76 | }; | ||
77 | |||
78 | void console_make_active(int fd, const int vt_num) | ||
79 | { | ||
80 | xioctl(fd, VT_ACTIVATE, (void *)(ptrdiff_t)vt_num); | ||
81 | xioctl(fd, VT_WAITACTIVE, (void *)(ptrdiff_t)vt_num); | ||
82 | } | ||
diff --git a/libbb/getpty.c b/libbb/getpty.c index 5ac9582d3..d43fb825f 100644 --- a/libbb/getpty.c +++ b/libbb/getpty.c | |||
@@ -10,7 +10,7 @@ | |||
10 | 10 | ||
11 | #define DEBUG 0 | 11 | #define DEBUG 0 |
12 | 12 | ||
13 | int getpty(char *line) | 13 | int xgetpty(char *line) |
14 | { | 14 | { |
15 | int p; | 15 | int p; |
16 | #if ENABLE_FEATURE_DEVPTS | 16 | #if ENABLE_FEATURE_DEVPTS |
@@ -22,7 +22,7 @@ int getpty(char *line) | |||
22 | name = ptsname(p); | 22 | name = ptsname(p); |
23 | if (!name) { | 23 | if (!name) { |
24 | bb_perror_msg("ptsname error (is /dev/pts mounted?)"); | 24 | bb_perror_msg("ptsname error (is /dev/pts mounted?)"); |
25 | return -1; | 25 | goto fail; |
26 | } | 26 | } |
27 | safe_strncpy(line, name, GETPTY_BUFSIZE); | 27 | safe_strncpy(line, name, GETPTY_BUFSIZE); |
28 | return p; | 28 | return p; |
@@ -52,7 +52,9 @@ int getpty(char *line) | |||
52 | } | 52 | } |
53 | } | 53 | } |
54 | #endif /* FEATURE_DEVPTS */ | 54 | #endif /* FEATURE_DEVPTS */ |
55 | return -1; | 55 | USE_FEATURE_DEVPTS( fail:) |
56 | bb_error_msg_and_die("open pty"); | ||
57 | return -1; /* never get here */ | ||
56 | } | 58 | } |
57 | 59 | ||
58 | 60 | ||
diff --git a/libbb/write.c b/libbb/write.c new file mode 100644 index 000000000..b628b49bb --- /dev/null +++ b/libbb/write.c | |||
@@ -0,0 +1,20 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Utility routines. | ||
4 | * | ||
5 | * Copyright (C) 2008 Bernhard Fischer | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include "libbb.h" | ||
11 | |||
12 | /* Open file and write string str to it, close file. | ||
13 | * Die on any open or write-error. */ | ||
14 | void xopen_xwrite_close(const char* file, const char* str) | ||
15 | { | ||
16 | int fd = xopen(file, O_WRONLY); | ||
17 | |||
18 | xwrite(fd, str, strlen(str)); | ||
19 | close(fd); | ||
20 | } | ||