X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=console-tools%2Fdeallocvt.c;h=b2e8e2bef3c4afadead4b983218bc522ec5a5a34;hb=67b23e6043d8e2b30b0bf3bc105b8583c2a26db5;hp=ebdce7b24925bb7c5276ffa8ec23e8fff2973afd;hpb=f57c944e09417edcbcd69f2b01b937cadef39db2;p=oweals%2Fbusybox.git diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c index ebdce7b24..b2e8e2bef 100644 --- a/console-tools/deallocvt.c +++ b/console-tools/deallocvt.c @@ -1,48 +1,44 @@ /* vi: set sw=4 ts=4: */ /* - * disalloc.c - aeb - 940501 - Disallocate virtual terminal(s) - * Renamed deallocvt. + * Disallocate virtual terminal(s) + * + * Copyright (C) 2003 by Tito Ragusa + * Copyright (C) 1999-2004 by Erik Andersen + * + * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ -#include "busybox.h" + +/* no options, no getopt */ + #include #include #include #include #include +#include "busybox.h" /* From */ -#define VT_DISALLOCATE 0x5608 /* free memory associated to vt */ +enum { VT_DISALLOCATE = 0x5608 }; /* free memory associated to vt */ int deallocvt_main(int argc, char *argv[]) { - int fd, num, i; + /* num = 0 deallocate all unused consoles */ + int num = 0; - //if ((argc > 2) || ((argv == 2) && (**(argv + 1) == '-'))) - if (argc > 2) - usage(deallocvt_usage); - - fd = get_console_fd("/dev/console"); - - if (argc == 1) { -printf("erik: A\n"); - /* deallocate all unused consoles */ - if (ioctl(fd, VT_DISALLOCATE, 0)) { - perror("VT_DISALLOCATE"); - return EXIT_FAILURE; - } - } else -printf("erik: B\n"); - for (i = 1; i < argc; i++) { - num = atoi(argv[i]); - if (num == 0) - error_msg("0: illegal VT number\n"); - else if (num == 1) - error_msg("VT 1 cannot be deallocated\n"); - else if (ioctl(fd, VT_DISALLOCATE, num)) { - perror("VT_DISALLOCATE"); - error_msg_and_die("could not deallocate console %d\n", num); + switch (argc) { + case 2: + if ((num = bb_xgetlarg(argv[1], 10, 0, INT_MAX)) == 0) { + bb_error_msg_and_die("0: illegal VT number"); } - } -printf("erik: C\n"); + /* Fallthrough */ + case 1: + break; + default: + bb_show_usage(); + } + + if (-1 == ioctl(get_console_fd(), VT_DISALLOCATE, num)) { + bb_perror_msg_and_die("VT_DISALLOCATE"); + } return EXIT_SUCCESS; }