diff options
author | Glenn L McGrath | 2004-01-15 11:50:19 +0000 |
---|---|---|
committer | Glenn L McGrath | 2004-01-15 11:50:19 +0000 |
commit | 17b4a20a9c4dc7ec9fdf91cea34b35bc4ef6e070 (patch) | |
tree | 5ee138c7d40112a6c36ef0c8e276e122d5ddf24c /console-tools/deallocvt.c | |
parent | 67285965f3d2c266ee37fec17d339b717752f8b0 (diff) | |
download | busybox-17b4a20a9c4dc7ec9fdf91cea34b35bc4ef6e070.zip busybox-17b4a20a9c4dc7ec9fdf91cea34b35bc4ef6e070.tar.gz |
Patch by Tito, reduce size of deallocvt, also make the usage message
clearer (from N to [N]) and indirectly (through bb_xgetlarg) adds support
for -h ;-)
Diffstat (limited to 'console-tools/deallocvt.c')
-rw-r--r-- | console-tools/deallocvt.c | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c index b89249b..363ecdf 100644 --- a/console-tools/deallocvt.c +++ b/console-tools/deallocvt.c @@ -34,33 +34,23 @@ static const int VT_DISALLOCATE = 0x5608; /* free memory associated to vt */ int deallocvt_main(int argc, char *argv[]) { - int fd, num = 0; + /* num = 0 deallocate all unused consoles */ + int num = 0; - if (argc > 2) { - bb_show_usage(); - } - - fd = get_console_fd(); - - /* num=0 deallocate all unused consoles */ - if (argc == 1) { - goto disallocate_all; - } - - num = bb_xgetlarg(argv[1], 10, 0, INT_MAX); - switch (num) { - case 0: - bb_error_msg("0: illegal VT number"); - break; + switch(argc) + { + case 2: + if((num = bb_xgetlarg(argv[1], 10, 0, INT_MAX)) == 0) + bb_error_msg_and_die("0: illegal VT number"); + /* Falltrough */ case 1: - bb_error_msg("VT 1 cannot be deallocated"); break; default: -disallocate_all: - if (ioctl(fd, VT_DISALLOCATE, num)) { - bb_perror_msg_and_die("VT_DISALLOCATE"); - } - return EXIT_SUCCESS; + bb_show_usage(); + } + + if (ioctl( get_console_fd(), VT_DISALLOCATE, num )) { + bb_perror_msg_and_die("VT_DISALLOCATE"); } - return EXIT_FAILURE; + return EXIT_SUCCESS; } |