diff options
author | aarzilli <alessandro.arzilli@gmail.com> | 2017-01-18 09:53:26 +0100 |
---|---|---|
committer | Přemysl Janouch <p@janouch.name> | 2018-09-08 16:49:26 +0200 |
commit | 1c01d79ba14a802c603ca2e5bbd35156e3363b85 (patch) | |
tree | 5ba818deb4c33dd44df9b5c66dc9d45f3b1672e5 /nexgb/xgbgen/context.go | |
parent | a102c4056f6b01035772cf79060012ff800c9669 (diff) | |
download | haven-1c01d79ba14a802c603ca2e5bbd35156e3363b85.tar.gz haven-1c01d79ba14a802c603ca2e5bbd35156e3363b85.tar.xz haven-1c01d79ba14a802c603ca2e5bbd35156e3363b85.zip |
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
Diffstat (limited to 'nexgb/xgbgen/context.go')
-rw-r--r-- | nexgb/xgbgen/context.go | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/nexgb/xgbgen/context.go b/nexgb/xgbgen/context.go index f18fd67..0728b64 100644 --- a/nexgb/xgbgen/context.go +++ b/nexgb/xgbgen/context.go @@ -49,8 +49,23 @@ func (c *Context) Morph(xmlBytes []byte) { // Translate XML types to nice types c.protocol = parsedXml.Translate(nil) - - c.protocol.AddAlignGaps() + + // For backwards compatibility we patch the type of the send_event field of + // PutImage to be byte + if c.protocol.Name == "shm" { + for _, req := range c.protocol.Requests { + if req.xmlName != "PutImage" { + continue + } + for _, ifield := range req.Fields { + field, ok := ifield.(*SingleField) + if !ok || field.xmlName != "send_event" { + continue + } + field.Type = &Base{ srcName: "byte", xmlName: "CARD8", size: newFixedSize(1, true) } + } + } + } // Start with Go header. c.Putln("// Package %s is the X client API for the %s extension.", |