[Xcb] GSoC 2009: XKB and XI2 support

Mariusz Ceier mceier at gmail.com
Fri Oct 2 01:08:32 PDT 2009

Peter Harris pisze:
>>> 5) If you propagate the KeyNameLength constant to structs KeyName and
>>> KeyAlias, you can document that <enumref> must refer to a <bit> and is
>>> only valid as the first entry of a <bitcase>, simplifying processor
>>> implementation.
>> I don't understand this, should I replace <enumref> with <value>, add
>> some comment ?
> Yes, please.
> That way, processors don't have to know how to handle <enumref> outside
> of <bitcase> just for those two usages.
>> <enumref> always references constants, so maybe I should document that
>> <list> with <enumref> length expression, if fixed-length list ?
> I'd prefer you just use <value> for constant length lists.

> A few more details:
> 1. "KeyMask" is used before you define it. Everything should be defined
> before its first use.
> Then you define KeyMask with a <typedef> to KeyButMask, and a comment
> indicating you probably wanted ModMask instead. Except this is an enum,
> not a type. Enums can't sensibly be used as types in XCB as far as I
> know (doc/xml-xcb.txt appears incorrect on this point?).
> Could you please just use KeyButMask (or ModMask) directly?
ok, I used ModMask

> 2. In a similar vein, you use SymInterpret (an enum) as a type for a
> list. Since enums don't have a wire size, this is invalid. The list
> should probably have a size type (such as CARD8, CARD16, or CARD32), and
> may be marked with enum="SymInterpret".
my mistake, of course it should be enum="SymInterpret" not

> 3. You use enum="KP_Group", but never define KP_Group. Typo?
KP_Group was in XKB specification, and I think it is a typo. I changed
this to KB_GROUP in xml.

Mariusz Ceier

More information about the Xcb mailing list