From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MfcIR-0007Br-CE for qemu-devel@nongnu.org; Mon, 24 Aug 2009 12:21:27 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MfcIL-00078I-Ra for qemu-devel@nongnu.org; Mon, 24 Aug 2009 12:21:26 -0400 Received: from [199.232.76.173] (port=48772 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MfcIL-00077s-JY for qemu-devel@nongnu.org; Mon, 24 Aug 2009 12:21:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58116) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MfcIK-0006vi-WE for qemu-devel@nongnu.org; Mon, 24 Aug 2009 12:21:21 -0400 Subject: Re: [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types References: <1250723280-3509-1-git-send-email-lcapitulino@redhat.com> <1250723280-3509-7-git-send-email-lcapitulino@redhat.com> From: Markus Armbruster Date: Mon, 24 Aug 2009 18:21:17 +0200 In-Reply-To: <1250723280-3509-7-git-send-email-lcapitulino@redhat.com> (Luiz Capitulino's message of "Wed\, 19 Aug 2009 20\:07\:37 -0300") Message-ID: <87skfhi3nm.fsf@pike.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, avi@redhat.com Luiz Capitulino writes: > Current handlers argument types, as defined in qemu-monitor.hx file, > are a sequence of chars where each one represents one argument type > of the command handler. The number of chars is also used to know how > many arguments a given handler accepts. > > This commit defines a new format, which makes mandatory the use of > a name for each argument. > > For example, do_eject() command handler is currently defined as: > > { "eject", "-fB", do_eject, ... } > > With the new format it becomes: > > { "eject", "force:-f,filename:B", do_eject, ... } > > This way the Monitor will be capable of setting up a dictionary, using > each argument's name as the key and the argument itself as the value. > > This commit also adds two new functions: key_get_info() and > next_arg_type(), both are used to parse the new format. > > Currently key_get_info() consumes the 'key' part of the new format and > discards it, this way the current parsing code is not affected by this > change. > > Signed-off-by: Luiz Capitulino Encoding the parameter list in a single args_type made perfect sense when a parameter was encoded in one or two characters. But having syntax and a parser... I don't know. Switch to an array of parameter descriptions that don't need to be parsed? There's some overlap between args_type (machine-readable description) and params (human readable help text). Could the latter be assembled from the former? Just ideas...