It turns out that DODMALLOC was broken when I reorganized busybox.h
[oweals/busybox.git] / miscutils / mt.c
index 28922f8d9227d73ad88d16fac0741ed90dd0eb5c..350d3ae5a629f887871c16708ceccfd1b92d6d03 100644 (file)
@@ -1,14 +1,9 @@
 /* vi: set sw=4 ts=4: */
-#include "internal.h"
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/mtio.h>
 #include <sys/fcntl.h>
-
-static const char mt_usage[] = "mt [-f device] opcode value\n"
-#ifndef BB_FEATURE_TRIVIAL_HELP
-                       "\nControl magnetic tape drive operation\n"
-#endif
-                       ;
+#include "busybox.h"
 
 struct mt_opcodes {
        char *name;
@@ -61,13 +56,13 @@ extern int mt_main(int argc, char **argv)
        struct mtop op;
        int fd;
        
-       if ((argc != 2 && argc != 3) || **(argv + 1) == '-') {
-               usage(mt_usage);
+       if (argc < 2) {
+               show_usage();
        }
 
        if (strcmp(argv[1], "-f") == 0) {
                if (argc < 4) {
-                       usage(mt_usage);
+                       show_usage();
                }
                file = argv[2];
                argv += 2;
@@ -81,8 +76,8 @@ extern int mt_main(int argc, char **argv)
        }
 
        if (code->name == 0) {
-               fprintf(stderr, "mt: unrecognized opcode %s.\n", argv[1]);
-               exit (FALSE);
+               error_msg("unrecognized opcode %s.", argv[1]);
+               return EXIT_FAILURE;
        }
 
        op.mt_op = code->value;
@@ -91,15 +86,11 @@ extern int mt_main(int argc, char **argv)
        else
                op.mt_count = 1;                /* One, not zero, right? */
 
-       if ((fd = open(file, O_RDONLY, 0)) < 0) {
-               perror(file);
-               exit (FALSE);
-       }
+       if ((fd = open(file, O_RDONLY, 0)) < 0)
+               perror_msg_and_die("%s", file);
 
-       if (ioctl(fd, MTIOCTOP, &op) != 0) {
-               perror(file);
-               exit (FALSE);
-       }
+       if (ioctl(fd, MTIOCTOP, &op) != 0)
+               perror_msg_and_die("%s", file);
 
-       exit (TRUE);
+       return EXIT_SUCCESS;
 }