diff options
Diffstat (limited to 'release/src/router/busybox/console-tools/chvt.c')
-rw-r--r-- | release/src/router/busybox/console-tools/chvt.c | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/release/src/router/busybox/console-tools/chvt.c b/release/src/router/busybox/console-tools/chvt.c index 11e1078b..302ffb4f 100644 --- a/release/src/router/busybox/console-tools/chvt.c +++ b/release/src/router/busybox/console-tools/chvt.c @@ -1,43 +1,24 @@ /* vi: set sw=4 ts=4: */ /* - * chvt.c - aeb - 940227 - Change virtual terminal + * Mini chvt implementation for busybox * - * busyboxed by Erik Andersen + * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> + * + * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ -/* getopt not needed */ - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <sys/types.h> -#include <sys/ioctl.h> -#include "busybox.h" - -/* From <linux/vt.h> */ -static const int VT_ACTIVATE = 0x5606; /* make vt active */ -static const int VT_WAITACTIVE = 0x5607; /* wait for vt active */ +#include "libbb.h" +int chvt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int chvt_main(int argc, char **argv) { - int fd, num; + int num; - if ((argc != 2) || (**(argv + 1) == '-')) + if (argc != 2) { bb_show_usage(); - fd = get_console_fd(); - num = atoi(argv[1]); - if (ioctl(fd, VT_ACTIVATE, num)) - bb_perror_msg_and_die("VT_ACTIVATE"); - if (ioctl(fd, VT_WAITACTIVE, num)) - bb_perror_msg_and_die("VT_WAITACTIVE"); + } + + num = xatou_range(argv[1], 1, 63); + console_make_active(get_console_fd_or_die(), num); return EXIT_SUCCESS; } - - -/* -Local Variables: -c-file-style: "linux" -c-basic-offset: 4 -tab-width: 4 -End: -*/ |