Don't use enums in generated C code - use integer constants instead.
authorPeter Harris <pharris@opentext.com>
Wed, 25 Feb 2009 23:48:50 +0000 (18:48 -0500)
committerPeter Harris <pharris@opentext.com>
Thu, 26 Feb 2009 00:07:23 +0000 (19:07 -0500)
Signed-off-by: Peter Harris <pharris@opentext.com>
src/c_client.py

index 73bd064..299ad54 100755 (executable)
@@ -222,17 +222,15 @@ def c_enum(self, name):
     '''
     _h_setlevel(0)
     _h('')
-    _h('typedef enum %s {', _t(name))
 
-    count = len(self.values)
+    next = -1
 
     for (enam, eval) in self.values:
-        count = count - 1
-        equals = ' = ' if eval != '' else ''
-        comma = ',' if count > 0 else ''
-        _h('    %s%s%s%s', _n(name + (enam,)).upper(), equals, eval, comma)
-
-    _h('} %s;', _t(name))
+        if eval == '':
+            next += 1
+        else:
+            next = int(eval)
+        _h('static const uint32_t %s = %d;', _n(name + (enam,)).upper(), next)
 
 def _c_type_setup(self, name, postfix):
     '''