qapi script: use same function to generate enum string

Prior to this patch, qapi-visit.py used custom code to generate enum
names used for handling a qapi union. Fix it to instead reuse common
code, with identical generated results, and allowing future updates to
generation to only need to touch one place.

Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Wenchao Xia 2014-03-04 18:44:36 -08:00 committed by Luiz Capitulino
parent 6299659f54
commit b0b58195e4
3 changed files with 25 additions and 13 deletions

View file

@ -468,12 +468,17 @@ def guardend(name):
''',
name=guardname(name))
def generate_enum_name(name):
if name.isupper():
return c_fun(name, False)
def _generate_enum_value_string(value):
if value.isupper():
return c_fun(value, False)
new_name = ''
for c in c_fun(name, False):
for c in c_fun(value, False):
if c.isupper():
new_name += '_'
new_name += c
return new_name.lstrip('_').upper()
def generate_enum_full_value(enum_name, enum_value):
abbrev_string = de_camel_case(enum_name).upper()
value_string = _generate_enum_value_string(enum_value)
return "%s_%s" % (abbrev_string, value_string)