[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RFC 1/5] qapi: Generate a sed script to help elimina
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH RFC 1/5] qapi: Generate a sed script to help eliminate camel_to_upper() |
Date: |
Thu, 5 Nov 2015 16:29:58 +0100 |
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 <enum-mangle-files
Signed-off-by: Markus Armbruster <address@hidden>
---
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
- Re: [Qemu-devel] [PATCH v9 19/27] qapi: Check for qapi collisions of flat union branches, (continued)
[Qemu-devel] [PATCH v9 04/27] qapi: Simplify error testing in test-qmp-*, Eric Blake, 2015/11/04
[Qemu-devel] [PATCH v9 21/27] qapi: Factor out QAPISchemaObjectType.check_clash(), Eric Blake, 2015/11/04
- [Qemu-devel] [PATCH RFC 0/5] qapi: Use common name mangling for enumeration constants, Markus Armbruster, 2015/11/05
- [Qemu-devel] [PATCH RFC 1/5] qapi: Generate a sed script to help eliminate camel_to_upper(),
Markus Armbruster <=
- [Qemu-devel] [PATCH RFC 2/5] Revert "qapi: Generate a sed script to help eliminate camel_to_upper()", Markus Armbruster, 2015/11/05
- [Qemu-devel] [PATCH RFC 4/5] crypto: Drop name mangling override, Markus Armbruster, 2015/11/05
- [Qemu-devel] [PATCH RFC 5/5] Revert "qapi: allow override of default enum prefix naming", Markus Armbruster, 2015/11/05
- [Qemu-devel] [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants, Markus Armbruster, 2015/11/05
- Re: [Qemu-devel] [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants, Daniel P. Berrange, 2015/11/05
- Re: [Qemu-devel] [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants, Eric Blake, 2015/11/05
- Re: [Qemu-devel] [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants, Eric Blake, 2015/11/05
- Re: [Qemu-devel] [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants, Markus Armbruster, 2015/11/06
- Re: [Qemu-devel] [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants, Markus Armbruster, 2015/11/06
- [Qemu-devel] What to do about QAPI naming convention violations (was: [PATCH RFC 3/5] qapi: Use common name mangling for enumeration constants), Markus Armbruster, 2015/11/10