Generate values instead of shift-expressions for enum-bits
authorCarsten Meier <cm@trexity.de>
Wed, 3 Sep 2008 10:50:26 +0000 (12:50 +0200)
committerBart Massey <bart@cs.pdx.edu>
Wed, 3 Sep 2008 18:59:04 +0000 (11:59 -0700)
Now more language independent as some languages don't have
C-like shift-operators.

Signed-off-by: Bart Massey <bart@cs.pdx.edu>
xcbgen/xtypes.py

index b234003..1ba02eb 100644 (file)
@@ -129,8 +129,7 @@ class Enum(SimpleType):
             if value.tag == 'value':
                 self.values.append((item.get('name'), value.text))
             elif value.tag == 'bit':
-                # XXX replace this with a simple number, please.
-                self.values.append((item.get('name'), '(1 << %s)' % value.text))
+                self.values.append((item.get('name'), '%u' % (1 << int(value.text))))
 
     def resolve(self, module):
         self.resolved = True