Support <pad align="n" />
authorPeter Harris <pharris@opentext.com>
Tue, 14 Jan 2014 19:45:36 +0000 (14:45 -0500)
committerPeter Harris <pharris@opentext.com>
Tue, 21 Jan 2014 20:23:36 +0000 (15:23 -0500)
Reviewed-By: Ran Benita <ran234@gmail.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
src/xcb.xsd
xcbgen/xtypes.py

index 73dbf8a..580d258 100644 (file)
@@ -42,7 +42,8 @@ authorization from the authors.
   <!-- Padding -->
   <xsd:element name="pad">
     <xsd:complexType>
-      <xsd:attribute name="bytes" type="xsd:integer" use="required" />
+      <xsd:attribute name="bytes" type="xsd:integer" use="optional" />
+      <xsd:attribute name="align" type="xsd:integer" use="optional" />
     </xsd:complexType>
   </xsd:element>
 
index e9596a9..3cd9032 100644 (file)
@@ -267,13 +267,17 @@ class PadType(Type):
         Type.__init__(self, tcard8.name)
         self.is_pad = True
         self.size = 1
-        self.nmemb = 1 if (elt == None) else int(elt.get('bytes'), 0)
+        self.nmemb = 1
+        self.align = 1
+        if elt != None:
+            self.nmemb = int(elt.get('bytes', "1"), 0)
+            self.align = int(elt.get('align', "1"), 0)
 
     def resolve(self, module):
         self.resolved = True
 
     def fixed_size(self):
-        return True
+        return self.align <= 1
 
     
 class ComplexType(Type):