From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55013) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bIAlb-0008Kc-Lp for qemu-devel@nongnu.org; Wed, 29 Jun 2016 04:22:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bIAlX-00026R-EC for qemu-devel@nongnu.org; Wed, 29 Jun 2016 04:22:38 -0400 Received: from mail-am1on0122.outbound.protection.outlook.com ([157.56.112.122]:53281 helo=emea01-am1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bIAlW-000265-9C for qemu-devel@nongnu.org; Wed, 29 Jun 2016 04:22:35 -0400 References: <1467149250-31165-1-git-send-email-stefanha@redhat.com> <1467149250-31165-7-git-send-email-stefanha@redhat.com> From: "Denis V. Lunev" Message-ID: <57738543.3030006@openvz.org> Date: Wed, 29 Jun 2016 11:22:27 +0300 MIME-Version: 1.0 In-Reply-To: <1467149250-31165-7-git-send-email-stefanha@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PULL 6/8] qemu-img: move common options parsing before commands processing List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi , qemu-devel@nongnu.org Cc: Peter Maydell , Paolo Bonzini , Kevin Wolf On 06/29/2016 12:27 AM, Stefan Hajnoczi wrote: > From: "Denis V. Lunev" > > This is necessary to enable creation of common qemu-img options which will > be specified before command. > > The patch also enables '-V' alias to '--version' (exactly like in other > block utilities) and documents this change. > > Signed-off-by: Denis V. Lunev > Reviewed-by: Eric Blake > Reviewed-by: Stefan Hajnoczi > Message-id: 1466174654-30130-7-git-send-email-den@openvz.org > CC: Paolo Bonzini > CC: Kevin Wolf > Signed-off-by: Stefan Hajnoczi > --- > qemu-img.c | 41 +++++++++++++++++++++++++++-------------- > qemu-img.texi | 10 +++++++++- > 2 files changed, 36 insertions(+), 15 deletions(-) > > diff --git a/qemu-img.c b/qemu-img.c > index 14e2661..2194c2d 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -91,9 +91,12 @@ static void QEMU_NORETURN help(void) > { > const char *help_msg = > QEMU_IMG_VERSION > - "usage: qemu-img command [command options]\n" > + "usage: qemu-img [standard options] command [command options]\n" > "QEMU disk image utility\n" > "\n" > + " '-h', '--help' display this help and exit\n" > + " '-V', '--version' output version information and exit\n" > + "\n" > "Command syntax:\n" > #define DEF(option, callback, arg_string) \ > " " arg_string "\n" > @@ -3806,7 +3809,7 @@ int main(int argc, char **argv) > int c; > static const struct option long_options[] = { > {"help", no_argument, 0, 'h'}, > - {"version", no_argument, 0, 'v'}, > + {"version", no_argument, 0, 'V'}, > {0, 0, 0, 0} > }; > > @@ -3829,28 +3832,38 @@ int main(int argc, char **argv) > if (argc < 2) { > error_exit("Not enough arguments"); > } > - cmdname = argv[1]; > > qemu_add_opts(&qemu_object_opts); > qemu_add_opts(&qemu_source_opts); > > + while ((c = getopt_long(argc, argv, "+hV", long_options, NULL)) != -1) { > + switch (c) { > + case 'h': > + help(); > + return 0; > + case 'V': > + printf(QEMU_IMG_VERSION); > + return 0; > + } > + } > + > + cmdname = argv[optind]; > + > + /* reset getopt_long scanning */ > + argc -= optind; > + if (argc < 1) { > + return 0; > + } > + argv += optind; > + optind = 1; this patch breaks check-block.sh we should have here 'optind = 0' Den