From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45993) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuMUM-0004zR-6N for qemu-devel@nongnu.org; Thu, 05 Nov 2015 10:30:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZuMUI-0002aD-5i for qemu-devel@nongnu.org; Thu, 05 Nov 2015 10:30:10 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44738) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuMUI-0002Zk-0r for qemu-devel@nongnu.org; Thu, 05 Nov 2015 10:30:06 -0500 From: Markus Armbruster Date: Thu, 5 Nov 2015 16:29:58 +0100 Message-Id: <1446737402-15597-2-git-send-email-armbru@redhat.com> In-Reply-To: <1446737402-15597-1-git-send-email-armbru@redhat.com> References: <1446618049-13596-22-git-send-email-eblake@redhat.com> <1446737402-15597-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH RFC 1/5] qapi: Generate a sed script to help eliminate camel_to_upper() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mdroth@linux.vnet.ibm.com Temporary patch, will be reverted right away. Out of laziness, generate it right into the C code, in comments. To generate the sed script, use $ make $ make check $ enum_gen_files='qapi-event.c qapi-types.c qga/qapi-generated/qga-qapi-types.c tests/test-qapi-event.c tests/test-qapi-types.c' $ sed -n 's,// @@@ ,,p' $enum_gen_files >enum-mangle.sed To find the files to patch, use $ enum_mangle_regexp=`sed -n 's,// ### ,,p' $enum_gen_files | tr '\n' '|' | sed 's/|$//'` $ git-grep -El "$enum_mangle_regexp" $srcdir >enum-mangle-files where $srcdir is the root of your source tree. To patch them, use $ xargs sed -ri --file enum-mangle.sed --- scripts/qapi.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/qapi.py b/scripts/qapi.py index 843e364..c2e3057 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -1517,20 +1517,26 @@ def gen_enum_lookup(name, values, prefix=None): ret = mcgen(''' const char *const %(c_name)s_lookup[] = { +// ### %(prefix)s ''', + prefix=camel_to_upper(prefix or name), c_name=c_name(name)) for value in values: index = c_enum_const(name, value, prefix) ret += mcgen(''' [%(index)s] = "%(value)s", +// @@@ s/(^|[^A-Za-z0-9_])%(index)s($|[^A-Za-z0-9_])/\\1%(new)s\\2/g ''', + new=c_name((prefix or name) + '_' + value), index=index, value=value) max_index = c_enum_const(name, 'MAX', prefix) ret += mcgen(''' [%(max_index)s] = NULL, +// @@@ s/(^|[^A-Za-z0-9_])%(max_index)s($|[^A-Za-z0-9_])/\\1%(new)s\\2/g }; ''', + new=c_name((prefix or name) + '_' + 'MAX'), max_index=max_index) return ret -- 2.4.3