Changed xgbgen to support xcb-proto 1.12

* Added minimal support for switch fields.
* Changed the way Size is calculated to accomodate for lists inside structs
  (added to randr)
* Removed heuristic to place alignment gaps, they are now explicitly
  described in xml
This commit is contained in:
aarzilli
2017-01-18 09:53:26 +01:00
committed by Přemysl Janouch
parent a102c4056f
commit 1c01d79ba1
9 changed files with 174 additions and 158 deletions

View File

@@ -325,12 +325,14 @@ func (x *XMLField) Translate(parent interface{}) Field {
case "pad":
return &PadField{
Bytes: x.Bytes,
Align: x.Align,
}
case "field":
return &SingleField{
s := &SingleField{
xmlName: x.Name,
Type: newTranslation(x.Type),
}
return s
case "list":
return &ListField{
xmlName: x.Name,
@@ -365,6 +367,8 @@ func (x *XMLField) Translate(parent interface{}) Field {
swtch.Bitcases[i] = bitcase.Translate()
}
return swtch
case "required_start_align":
return &RequiredStartAlign{}
}
log.Panicf("Unrecognized field element: %s", x.XMLName.Local)