aboutsummaryrefslogtreecommitdiff
path: root/libxcb/doc/xkb_issues
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-12-24 12:41:29 +0000
committermarha <marha@users.sourceforge.net>2010-12-24 12:41:29 +0000
commitc6539c9f45372fb6518bff17a781effd654bd3f0 (patch)
tree630e613884689bcab0809125ce0fbb72261b5335 /libxcb/doc/xkb_issues
parent8fd06c45853cb2300105db84e4b722f0e2dad8d2 (diff)
downloadvcxsrv-c6539c9f45372fb6518bff17a781effd654bd3f0.tar.gz
vcxsrv-c6539c9f45372fb6518bff17a781effd654bd3f0.tar.bz2
vcxsrv-c6539c9f45372fb6518bff17a781effd654bd3f0.zip
xorg-server libx11 libxcb git update 24/12/2010
Diffstat (limited to 'libxcb/doc/xkb_issues')
-rw-r--r--libxcb/doc/xkb_issues38
1 files changed, 38 insertions, 0 deletions
diff --git a/libxcb/doc/xkb_issues b/libxcb/doc/xkb_issues
new file mode 100644
index 000000000..f10c015e5
--- /dev/null
+++ b/libxcb/doc/xkb_issues
@@ -0,0 +1,38 @@
+
+There are a number of problematic special cases in XKB. The issues
+mentioned here are at most partly resolved.
+
+1. The are several XxxDoodad structures defined in xkb.xml. They are used
+ in a few lists, but in a rather special way:
+ The struct "CommonDoodad" is supposed to be a rather generic data type,
+ combining the most basic Doodad fields that are common in all these structures.
+ All Doodads are encapsulated in a union type simply called "Doodad".
+ Now this union is used in subsequent list definitions, aiming at a kind of
+ 'polymorphism': From inspection of the protocol and Xlib, the Doodads are to
+ be discriminated based on their type field.
+ However the special meaning of the type field is not encoded in the protocol.
+ Furthermore the TextDoodad and the LogoDoodad are variable size types due to
+ some fields of type CountedString16, thereby turning the union into a
+ possibly variable size type as well.
+ However, for lists with variable size elements, special sizeof functions are
+ required. These cannot be autogenerated as it cannot be referred which
+ Doodad type to use for the union.
+ Therefore, the Doodad type structures are unsupported at the moment.
+
+2. There are still some bugs in xkb.xml: Either certain fields are missing
+ that are required by the protocol, or Xlib simply has another understanding
+ of the protocol.
+
+3. The interface for accessors should be reviewed.
+
+4. Currently some bitcases carry 'name' attributes. These could be avoided if
+ the data within would consist of a singe struct field only.
+
+5. switch could get a 'fixed_size' attribute, so when rewriting valueparam to switch,
+ an uint32_t * pointer could be used instead of void *.
+
+6. The automatic inclusion of padding requires some complicated coding in the
+ generator. This is errorprone and could be avoided if all padding is explicitly
+ given in the protocol definition. For variable size fields that require padding,
+ the pad tag could get a 'fieldref' attribute. That way padding could be handled
+ a lot easier in the autogenerator. \ No newline at end of file