mirror of
https://github.com/sheumann/hush.git
synced 2024-09-12 00:55:11 +00:00
*: 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:
parent
e0143a1aad
commit
2afd5ab62c
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
|
@ -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))
|
||||||
|
@ -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;
|
||||||
|
@ -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 */
|
||||||
|
@ -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> */
|
||||||
|
Loading…
Reference in New Issue
Block a user