From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44493) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAOX1-0003eD-8E for qemu-devel@nongnu.org; Wed, 01 Jul 2015 16:22:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZAOWv-0006C2-Ds for qemu-devel@nongnu.org; Wed, 01 Jul 2015 16:22:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34933) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAOWv-0006B7-1A for qemu-devel@nongnu.org; Wed, 01 Jul 2015 16:22:49 -0400 From: Markus Armbruster Date: Wed, 1 Jul 2015 22:22:25 +0200 Message-Id: <1435782155-31412-38-git-send-email-armbru@redhat.com> In-Reply-To: <1435782155-31412-1-git-send-email-armbru@redhat.com> References: <1435782155-31412-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH RFC v2 37/47] qapi: De-duplicate parameter list generation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, berto@igalia.com, mdroth@linux.vnet.ibm.com Generated qapi-event.[ch] lose line breaks. No change otherwise. Signed-off-by: Markus Armbruster --- 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 d57f8d4..2dae425 100644 --- a/scripts/qapi-commands.py +++ b/scripts/qapi-commands.py @@ -16,19 +16,12 @@ from qapi import * import re def gen_command_decl(name, args, rets): - argstr = '' - if args: - for memb in args.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=(rets and rets.c_type()) or 'void', c_name=c_name(name), - args=argstr) + params=gen_params(args, 'Error **errp')) def gen_err_check(err): if not err: diff --git a/scripts/qapi-event.py b/scripts/qapi-event.py index 03bb1ec..184a81f 100644 --- a/scripts/qapi-event.py +++ b/scripts/qapi-event.py @@ -14,21 +14,9 @@ from qapi import * def gen_event_send_proto(name, data): - api_name = "void qapi_event_send_%s(" % c_name(name).lower() - l = len(api_name) - - if data: - for m in data.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(data, 'Error **errp')} def gen_event_send_decl(name, data): return mcgen(''' diff --git a/scripts/qapi.py b/scripts/qapi.py index 4d47214..c6a5ddc 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -1384,6 +1384,22 @@ extern const char *const %(c_name)s_lookup[]; c_name=c_name(name)) return ret +def gen_params(args, extra): + if not args: + return extra + assert not args.variants + ret = "" + sep = "" + for memb in args.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 # -- 1.9.3