*: use get_console_fd() as appropriate, and make it fail on open error - get_console_fd_or_die().
No binary (build failed)
—
(log yok)
| @@ -19,7 +19,6 @@ int chvt_main(int argc, char **argv) | |
| } | |
| num = xatou_range(argv[1], 1, 63); | |
| - | /* double cast suppresses "cast to ptr from int of different size" */ |
| - | console_make_active(get_console_fd(), num); |
| + | console_make_active(get_console_fd_or_die(), num); |
| 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" */ | |
| - | 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; | |
| } | |
| @@ -32,7 +32,7 @@ int dumpkmap_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |
| /* bb_warn_ignoring_args(argc>=2);*/ | |
| - | fd = xopen(CURRENT_VC, O_RDWR); |
| + | fd = get_console_fd_or_die(); |
| write(STDOUT_FILENO, "bkeymap", 7); | |
| @@ -19,17 +19,15 @@ int kbd_mode_main(int argc UNUSED_PARAM, char **argv) | |
| int fd; | |
| unsigned opt; | |
| enum { | |
| - | SCANCODE = (1<<0), |
| - | ASCII = (1<<1), |
| - | MEDIUMRAW= (1<<2), |
| - | UNICODE = (1<<3) |
| + | SCANCODE = (1 << 0), |
| + | ASCII = (1 << 1), |
| + | MEDIUMRAW = (1 << 2), |
| + | UNICODE = (1 << 3) |
| }; | |
| static const char KD_xxx[] ALIGN1 = "saku"; | |
| opt = getopt32(argv, KD_xxx); | |
| - | fd = get_console_fd(); |
| - | /* if (fd < 0) |
| - | return EXIT_FAILURE; |
| - | */ |
| + | fd = get_console_fd_or_die(); |
| + | |
| if (!opt) { /* print current setting */ | |
| const char *mode = "unknown"; | |
| 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); | |
| } else { | |
| 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) | |
| @@ -174,7 +174,7 @@ int loadfont_main(int argc, char **argv UNUSED_PARAM) | |
| if (argc != 1) | |
| bb_show_usage(); | |
| - | fd = xopen(CURRENT_VC, O_RDWR); |
| + | fd = get_console_fd_or_die(); |
| loadnewfont(fd); | |
| return EXIT_SUCCESS; | |
| @@ -35,7 +35,7 @@ int loadkmap_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |
| /* bb_warn_ignoring_args(argc>=2);*/ | |
| - | fd = xopen(CURRENT_VC, O_RDWR); |
| + | fd = get_console_fd_or_die(); |
| xread(STDIN_FILENO, flags, 7); | |
| if (strncmp(flags, BINARY_KEYMAP_MAGIC, 7)) | |
| @@ -26,11 +26,11 @@ int setkeycodes_main(int argc, char **argv) | |
| int fd, sc; | |
| struct kbkeycode a; | |
| - | if (argc % 2 != 1 || argc < 2) { |
| + | if (!(argc & 1) /* if even */ || argc < 2) { |
| bb_show_usage(); | |
| } | |
| - | fd = get_console_fd(); |
| + | fd = get_console_fd_or_die(); |
| while (argc > 2) { | |
| a.keycode = xatou_range(argv[2], 0, 127); | |
| @@ -40,7 +40,7 @@ int setkeycodes_main(int argc, char **argv) | |
| a.scancode += 128; | |
| } | |
| 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); | |
| argc -= 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; | |
| enum { GETPTY_BUFSIZE = 16 }; /* more than enough for "/dev/ttyXXX" */ | |
| 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 char *find_block_device(const char *path) FAST_FUNC; | |
| /* 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). | |
| */ | |
| - | int FAST_FUNC get_console_fd(void) |
| + | int FAST_FUNC get_console_fd_or_die(void) |
| { | |
| static const char *const console_names[] = { | |
| DEV_CONSOLE, CURRENT_VC, CURRENT_TTY | |
| @@ -65,8 +65,8 @@ int FAST_FUNC get_console_fd(void) | |
| } | |
| } | |
| - | bb_error_msg("can't open console"); |
| - | return fd; /* total failure */ |
| + | bb_error_msg_and_die("can't open console"); |
| + | /*return fd; - total failure */ |
| } | |
| /* From <linux/vt.h> */ | |