From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55898) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zdw58-0002wa-Vg for qemu-devel@nongnu.org; Mon, 21 Sep 2015 04:04:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zdw55-00050J-Fb for qemu-devel@nongnu.org; Mon, 21 Sep 2015 04:04:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38668) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zdw55-0004zn-98 for qemu-devel@nongnu.org; Mon, 21 Sep 2015 04:04:11 -0400 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id E3130425A3 for ; Mon, 21 Sep 2015 08:04:10 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-38.ams2.redhat.com [10.36.116.38]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t8L848xI016957 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Mon, 21 Sep 2015 04:04:10 -0400 From: Markus Armbruster Date: Mon, 21 Sep 2015 10:03:51 +0200 Message-Id: <1442822640-29912-18-git-send-email-armbru@redhat.com> In-Reply-To: <1442822640-29912-1-git-send-email-armbru@redhat.com> References: <1442822640-29912-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PULL 17/26] qapi: De-duplicate parameter list generation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Generated qapi-event.[ch] lose line breaks. No change otherwise. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Reviewed-by: Daniel P. Berrange Message-Id: <1442401589-24189-18-git-send-email-armbru@redhat.com> --- scripts/qapi-commands.py | 11 ++--------- scripts/qapi-event.py | 18 +++--------------- scripts/qapi.py | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py index c68659a..833768e 100644 --- a/scripts/qapi-commands.py +++ b/scripts/qapi-commands.py @@ -17,19 +17,12 @@ import re def gen_command_decl(name, arg_type, ret_type): - argstr = '' - if arg_type: - for memb in arg_type.members: - if memb.optional: - argstr += 'bool has_%s, ' % c_name(memb.name) - argstr += '%s %s, ' % (memb.type.c_type(is_param=True), - c_name(memb.name)) return mcgen(''' -%(c_type)s qmp_%(c_name)s(%(args)sError **errp); +%(c_type)s qmp_%(c_name)s(%(params)s); ''', c_type=(ret_type and ret_type.c_type()) or 'void', c_name=c_name(name), - args=argstr) + params=gen_params(arg_type, 'Error **errp')) def gen_err_check(err): diff --git a/scripts/qapi-event.py b/scripts/qapi-event.py index 5873a05..d15fad9 100644 --- a/scripts/qapi-event.py +++ b/scripts/qapi-event.py @@ -15,21 +15,9 @@ from qapi import * def gen_event_send_proto(name, arg_type): - api_name = "void qapi_event_send_%s(" % c_name(name).lower() - l = len(api_name) - - if arg_type: - for m in arg_type.members: - if m.optional: - api_name += "bool has_%s,\n" % c_name(m.name) - api_name += "".ljust(l) - - api_name += "%s %s,\n" % (m.type.c_type(is_param=True), - c_name(m.name)) - api_name += "".ljust(l) - - api_name += "Error **errp)" - return api_name + return 'void qapi_event_send_%(c_name)s(%(param)s)' % { + 'c_name': c_name(name.lower()), + 'param': gen_params(arg_type, 'Error **errp')} def gen_event_send_decl(name, arg_type): diff --git a/scripts/qapi.py b/scripts/qapi.py index 7ac72f6..6b6f1ae 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -1469,6 +1469,22 @@ extern const char *const %(c_name)s_lookup[]; c_name=c_name(name)) return ret +def gen_params(arg_type, extra): + if not arg_type: + return extra + assert not arg_type.variants + ret = '' + sep = '' + for memb in arg_type.members: + ret += sep + sep = ', ' + if memb.optional: + ret += 'bool has_%s, ' % c_name(memb.name) + ret += '%s %s' % (memb.type.c_type(is_param=True), c_name(memb.name)) + if extra: + ret += sep + extra + return ret + # # Common command line parsing # -- 2.4.3