projects
/
free-sw
/
xcb
/
proto
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revive support for hex literals in protocol
[free-sw/xcb/proto]
/
xcbgen
/
xtypes.py
diff --git
a/xcbgen/xtypes.py
b/xcbgen/xtypes.py
index
d4b16e2
..
35fcb91
100644
(file)
--- a/
xcbgen/xtypes.py
+++ b/
xcbgen/xtypes.py
@@
-114,10
+114,12
@@
class Enum(SimpleType):
Public fields added:
values contains a list of (name, value) tuples. value is empty, or a number.
Public fields added:
values contains a list of (name, value) tuples. value is empty, or a number.
+ bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number.
'''
def __init__(self, name, elt):
SimpleType.__init__(self, name, 4)
self.values = []
'''
def __init__(self, name, elt):
SimpleType.__init__(self, name, 4)
self.values = []
+ self.bits = []
for item in list(elt):
# First check if we're using a default value
if len(list(item)) == 0:
for item in list(elt):
# First check if we're using a default value
if len(list(item)) == 0:
@@
-129,8
+131,8
@@
class Enum(SimpleType):
if value.tag == 'value':
self.values.append((item.get('name'), value.text))
elif value.tag == 'bit':
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, 0))))
+ self.
bits.append((item.get('name'),
value.text))
def resolve(self, module):
self.resolved = True
def resolve(self, module):
self.resolved = True
@@
-241,7
+243,7
@@
class PadType(Type):
Type.__init__(self, tcard8.name)
self.is_pad = True
self.size = 1
Type.__init__(self, tcard8.name)
self.is_pad = True
self.size = 1
- self.nmemb = 1 if (elt == None) else int(elt.get('bytes'))
+ self.nmemb = 1 if (elt == None) else int(elt.get('bytes')
, 0
)
def resolve(self, module):
self.resolved = True
def resolve(self, module):
self.resolved = True