Commit f01f594b authored by Luiz Capitulino's avatar Luiz Capitulino
Browse files

qapi: generate correct enum names for camel case enums



An enum like GenericError in the schema, should generate
GENERIC_ERROR and not GENERICERROR.

Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
parent b68a8472
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -79,6 +79,16 @@ const char *%(name)s_lookup[] = {
''')
    return ret

def generate_enum_name(name):
    if name.isupper():
        return c_fun(name)
    new_name = ''
    for c in c_fun(name):
        if c.isupper():
            new_name += '_'
        new_name += c
    return new_name.lstrip('_').upper()

def generate_enum(name, values):
    lookup_decl = mcgen('''
extern const char *%(name)s_lookup[];
@@ -100,7 +110,7 @@ typedef enum %(name)s
    %(abbrev)s_%(value)s = %(i)d,
''',
                     abbrev=de_camel_case(name).upper(),
                     value=c_fun(value).upper(),
                     value=generate_enum_name(value),
                     i=i)
        i += 1