*: use get_console_fd() as appropriate, and make it fail on open error -

get_console_fd_or_die().

function                                             old     new   delta
get_console_fd_or_die                                  -     163    +163
loadkmap_main                                        211     201     -10
loadfont_main                                        440     430     -10
dumpkmap_main                                        218     208     -10
kbd_mode_main                                        158     146     -12
setkeycodes_main                                     156     143     -13
get_console_fd                                       163       -    -163
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/5 up/down: 163/-218)          Total: -55 bytes
This commit is contained in:
Denis Vlasenko 2008-08-05 23:32:27 +00:00
parent e0143a1aad
commit 2afd5ab62c
9 changed files with 20 additions and 22 deletions

View File

@ -19,7 +19,6 @@ int chvt_main(int argc, char **argv)
} }
num = xatou_range(argv[1], 1, 63); num = xatou_range(argv[1], 1, 63);
/* double cast suppresses "cast to ptr from int of different size" */ console_make_active(get_console_fd_or_die(), num);
console_make_active(get_console_fd(), num);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }

View File

@ -28,6 +28,6 @@ int deallocvt_main(int argc UNUSED_PARAM, char **argv)
} }
/* double cast suppresses "cast to ptr from int of different size" */ /* double cast suppresses "cast to ptr from int of different size" */
xioctl(get_console_fd(), VT_DISALLOCATE, (void *)(ptrdiff_t)num); xioctl(get_console_fd_or_die(), VT_DISALLOCATE, (void *)(ptrdiff_t)num);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }

View File

@ -32,7 +32,7 @@ int dumpkmap_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
/* bb_warn_ignoring_args(argc>=2);*/ /* bb_warn_ignoring_args(argc>=2);*/
fd = xopen(CURRENT_VC, O_RDWR); fd = get_console_fd_or_die();
write(STDOUT_FILENO, "bkeymap", 7); write(STDOUT_FILENO, "bkeymap", 7);

View File

@ -19,17 +19,15 @@ int kbd_mode_main(int argc UNUSED_PARAM, char **argv)
int fd; int fd;
unsigned opt; unsigned opt;
enum { enum {
SCANCODE = (1<<0), SCANCODE = (1 << 0),
ASCII = (1<<1), ASCII = (1 << 1),
MEDIUMRAW= (1<<2), MEDIUMRAW = (1 << 2),
UNICODE = (1<<3) UNICODE = (1 << 3)
}; };
static const char KD_xxx[] ALIGN1 = "saku"; static const char KD_xxx[] ALIGN1 = "saku";
opt = getopt32(argv, KD_xxx); opt = getopt32(argv, KD_xxx);
fd = get_console_fd(); fd = get_console_fd_or_die();
/* if (fd < 0)
return EXIT_FAILURE;
*/
if (!opt) { /* print current setting */ if (!opt) { /* print current setting */
const char *mode = "unknown"; const char *mode = "unknown";
int m; int m;
@ -46,7 +44,8 @@ int kbd_mode_main(int argc UNUSED_PARAM, char **argv)
printf("The keyboard is in %s mode\n", mode); printf("The keyboard is in %s mode\n", mode);
} else { } else {
opt = opt & UNICODE ? 3 : opt >> 1; opt = opt & UNICODE ? 3 : opt >> 1;
xioctl(fd, KDSKBMODE, opt); /* double cast prevents warnings about widening conversion */
xioctl(fd, KDSKBMODE, (void*)(ptrdiff_t)opt);
} }
if (ENABLE_FEATURE_CLEAN_UP) if (ENABLE_FEATURE_CLEAN_UP)

View File

@ -174,7 +174,7 @@ int loadfont_main(int argc, char **argv UNUSED_PARAM)
if (argc != 1) if (argc != 1)
bb_show_usage(); bb_show_usage();
fd = xopen(CURRENT_VC, O_RDWR); fd = get_console_fd_or_die();
loadnewfont(fd); loadnewfont(fd);
return EXIT_SUCCESS; return EXIT_SUCCESS;

View File

@ -35,7 +35,7 @@ int loadkmap_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
/* bb_warn_ignoring_args(argc>=2);*/ /* bb_warn_ignoring_args(argc>=2);*/
fd = xopen(CURRENT_VC, O_RDWR); fd = get_console_fd_or_die();
xread(STDIN_FILENO, flags, 7); xread(STDIN_FILENO, flags, 7);
if (strncmp(flags, BINARY_KEYMAP_MAGIC, 7)) if (strncmp(flags, BINARY_KEYMAP_MAGIC, 7))

View File

@ -26,11 +26,11 @@ int setkeycodes_main(int argc, char **argv)
int fd, sc; int fd, sc;
struct kbkeycode a; struct kbkeycode a;
if (argc % 2 != 1 || argc < 2) { if (!(argc & 1) /* if even */ || argc < 2) {
bb_show_usage(); bb_show_usage();
} }
fd = get_console_fd(); fd = get_console_fd_or_die();
while (argc > 2) { while (argc > 2) {
a.keycode = xatou_range(argv[2], 0, 127); a.keycode = xatou_range(argv[2], 0, 127);
@ -40,7 +40,7 @@ int setkeycodes_main(int argc, char **argv)
a.scancode += 128; a.scancode += 128;
} }
ioctl_or_perror_and_die(fd, KDSETKEYCODE, &a, ioctl_or_perror_and_die(fd, KDSETKEYCODE, &a,
"failed to set SCANCODE %x to KEYCODE %d", "can't set SCANCODE %x to KEYCODE %d",
sc, a.keycode); sc, a.keycode);
argc -= 2; argc -= 2;
argv += 2; argv += 2;

View File

@ -287,7 +287,7 @@ extern int recursive_action(const char *fileName, unsigned flags,
extern int device_open(const char *device, int mode) FAST_FUNC; extern int device_open(const char *device, int mode) FAST_FUNC;
enum { GETPTY_BUFSIZE = 16 }; /* more than enough for "/dev/ttyXXX" */ enum { GETPTY_BUFSIZE = 16 }; /* more than enough for "/dev/ttyXXX" */
extern int xgetpty(char *line) FAST_FUNC; extern int xgetpty(char *line) FAST_FUNC;
extern int get_console_fd(void) FAST_FUNC; extern int get_console_fd_or_die(void) FAST_FUNC;
extern void console_make_active(int fd, const int vt_num) FAST_FUNC; extern void console_make_active(int fd, const int vt_num) FAST_FUNC;
extern char *find_block_device(const char *path) FAST_FUNC; extern char *find_block_device(const char *path) FAST_FUNC;
/* bb_copyfd_XX print read/write errors and return -1 if they occur */ /* bb_copyfd_XX print read/write errors and return -1 if they occur */

View File

@ -38,7 +38,7 @@ static int open_a_console(const char *fnam)
* if someone else used X (which does a chown on /dev/console). * if someone else used X (which does a chown on /dev/console).
*/ */
int FAST_FUNC get_console_fd(void) int FAST_FUNC get_console_fd_or_die(void)
{ {
static const char *const console_names[] = { static const char *const console_names[] = {
DEV_CONSOLE, CURRENT_VC, CURRENT_TTY DEV_CONSOLE, CURRENT_VC, CURRENT_TTY
@ -65,8 +65,8 @@ int FAST_FUNC get_console_fd(void)
} }
} }
bb_error_msg("can't open console"); bb_error_msg_and_die("can't open console");
return fd; /* total failure */ /*return fd; - total failure */
} }
/* From <linux/vt.h> */ /* From <linux/vt.h> */