/* vi: set sw=4 ts=4: */
/*
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//usage:#define mt_trivial_usage
+//usage: "[-f device] opcode value"
+//usage:#define mt_full_usage "\n\n"
+//usage: "Control magnetic tape drive operation\n"
+//usage: "\n"
+//usage: "Available Opcodes:\n"
+//usage: "\n"
+//usage: "bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n"
+//usage: "fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n"
+//usage: "ras3 reset retension rewind rewoffline seek setblk setdensity\n"
+//usage: "setpart tell unload unlock weof wset"
+
#include "libbb.h"
#include <sys/mtio.h>
"weof" "\0";
int mt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int mt_main(int argc, char **argv)
+int mt_main(int argc UNUSED_PARAM, char **argv)
{
const char *file = "/dev/tape";
struct mtop op;
struct mtpos position;
int fd, mode, idx;
- if (argc < 2) {
+ if (!argv[1]) {
bb_show_usage();
}
if (strcmp(argv[1], "-f") == 0) {
- if (argc < 4) {
+ if (!argv[2] || !argv[3])
bb_show_usage();
- }
file = argv[2];
argv += 2;
- argc -= 2;
}
idx = index_in_strings(opcode_name, argv[1]);
bb_error_msg_and_die("unrecognized opcode %s", argv[1]);
op.mt_op = opcode_value[idx];
- if (argc >= 3)
- op.mt_count = xatoi_u(argv[2]);
+ if (argv[2])
+ op.mt_count = xatoi_positive(argv[2]);
else
- op.mt_count = 1; /* One, not zero, right? */
+ op.mt_count = 1; /* One, not zero, right? */
switch (opcode_value[idx]) {
case MTWEOF: