@@ -3454,7 +3454,6 @@ static int img_map(const img_cmd_t *ccmd, int argc, char **argv)
fmt = NULL;
for (;;) {
- int option_index = 0;
static const struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"format", required_argument, 0, 'f'},
@@ -3466,20 +3465,33 @@ static int img_map(const img_cmd_t *ccmd, int argc, char **argv)
{"max-length", required_argument, 0, 'l'},
{0, 0, 0, 0}
};
- c = getopt_long(argc, argv, ":f:s:l:hU",
- long_options, &option_index);
+ c = getopt_long(argc, argv, "f:s:l:hU",
+ long_options, NULL);
if (c == -1) {
break;
}
switch (c) {
- case ':':
- missing_argument(argv[optind - 1]);
- break;
- case '?':
- unrecognized_option(argv[optind - 1]);
- break;
case 'h':
- help();
+ cmd_help(ccmd,
+"[-f FMT | --image-opts] [--object OBJDEF] [--output human|json]\n"
+" [--start-offset OFFSET] [--max-length LENGTH] [-U] FILENAME\n"
+,
+" -f, --format FMT\n"
+" specify FILENAME image format explicitly\n"
+" --image-opts\n"
+" indicates that FILENAME is a complete image specification\n"
+" instead of a file name (incompatible with --format)\n"
+" --start-offset OFFSET\n"
+" --max-length LENGTH\n"
+" --output human|json\n"
+" specify output format name (default human)\n"
+" -U, --force-share\n"
+" open image in shared mode for concurrent access\n"
+" --object OBJDEF\n"
+" QEMU user-creatable object (eg encryption key)\n"
+" FILENAME\n"
+" image file name (or specification with --image-opts)\n"
+);
break;
case 'f':
fmt = optarg;
@@ -3508,6 +3520,8 @@ static int img_map(const img_cmd_t *ccmd, int argc, char **argv)
case OPTION_IMAGE_OPTS:
image_opts = true;
break;
+ default:
+ tryhelp(argv[0]);
}
}
if (optind != argc - 1) {
Add missing long options and --help output. While at it, remove unused option_index variable. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> --- qemu-img.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-)