On Wed, 19 Sep 2012 16:31:06 +0200 Paolo Bonzini <pbonz...@redhat.com> wrote:
> Enum values are always preceded by the uppercase name of the enum, so > they do not conflict with reserved words. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Cherry-picked into qmp branch, thanks. > --- > scripts/qapi-types.py | 4 ++-- > scripts/qapi-visit.py | 2 +- > scripts/qapi.py | 8 ++++---- > 3 file modificati, 7 inserzioni(+), 7 rimozioni(-) > > diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py > index 49ef569..1b84834 100644 > --- a/scripts/qapi-types.py > +++ b/scripts/qapi-types.py > @@ -91,9 +91,9 @@ const char *%(name)s_lookup[] = { > > def generate_enum_name(name): > if name.isupper(): > - return c_fun(name) > + return c_fun(name, False) > new_name = '' > - for c in c_fun(name): > + for c in c_fun(name, False): > if c.isupper(): > new_name += '_' > new_name += c > diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py > index e2093e8..a360de7 100644 > --- a/scripts/qapi-visit.py > +++ b/scripts/qapi-visit.py > @@ -173,7 +173,7 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, > const char *name, Error ** > break; > ''', > abbrev = de_camel_case(name).upper(), > - enum = c_fun(de_camel_case(key)).upper(), > + enum = c_fun(de_camel_case(key),False).upper(), > c_type=members[key], > c_name=c_fun(key)) > > diff --git a/scripts/qapi.py b/scripts/qapi.py > index 122b4cb..057332e 100644 > --- a/scripts/qapi.py > +++ b/scripts/qapi.py > @@ -141,7 +141,7 @@ def camel_case(name): > new_name += ch.lower() > return new_name > > -def c_var(name): > +def c_var(name, protect=True): > # ANSI X3J11/88-090, 3.1.1 > c89_words = set(['auto', 'break', 'case', 'char', 'const', 'continue', > 'default', 'do', 'double', 'else', 'enum', 'extern', > 'float', > @@ -156,12 +156,12 @@ def c_var(name): > # GCC http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/C-Extensions.html > # excluding _.* > gcc_words = set(['asm', 'typeof']) > - if name in c89_words | c99_words | c11_words | gcc_words: > + if protect and (name in c89_words | c99_words | c11_words | gcc_words): > return "q_" + name > return name.replace('-', '_').lstrip("*") > > -def c_fun(name): > - return c_var(name).replace('.', '_') > +def c_fun(name, protect=True): > + return c_var(name, protect).replace('.', '_') > > def c_list_type(name): > return '%sList' % name