From: Christian Linhart Date: Wed, 20 Aug 2014 09:10:35 +0000 (+0200) Subject: xml-xcb spec: describe switch-case X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?p=free-sw%2Fxcb%2Fproto;a=commitdiff_plain;h=4987a5c6bcb971d851a71ec3b3d9783a4cbc7554;ds=sidebyside xml-xcb spec: describe switch-case V2: patch revised according to suggestion from Peter Harris: * add the restriction that inside can only refer to an enum's members, and inside can only refer to an enum's members. Reviewed-by: Peter Harris Reviewed-by: Ran Benita --- diff --git a/doc/xml-xcb.txt b/doc/xml-xcb.txt index 6aa789b..235958d 100644 --- a/doc/xml-xcb.txt +++ b/doc/xml-xcb.txt @@ -244,18 +244,40 @@ enum; the value is restricted to one of the constants named in the enum. instead for new protocol definitions. switch expression - bitcase expression(s), fields + bitcase expression(s), fields + case expression(s), fields + This element represents conditional inclusion of fields. It can be viewed - as sequence of multiple ifs: if ( switch expression & bitcase expression ) - is non-zero, bitcase fields are included in structure. It can be used only - as the last field of a structure. + as sequence of multiple ifs: - When a bitcase includes multiple clauses, the contents of the - bitcase are only present once regardless of the number of bitcase expressions - that match. + : + if ( switch expression & bitcase expression ) is non-zero, + bitcase fields are included in structure. + + : + if ( switch expression == case expression ) is true, + then case fields are included in structure. + + It can be used only as the last field of a structure. + + When a bitcase or case includes multiple clauses, the contents + of the bitcase or case are only present once regardless of the number of + bitcase or case expressions that match. + + inside can only refer to an enum's members. + inside can only refer to an enum's members. + + A switch may contain multiple or elements. + Usually it will only contain elements + or only contain elements. + That is, mixing of and usually doesn't make any sense. + + The same value may appear in multiple or elements. + + New protocol definitions should prefer to use this instead of + and instead of . - New protocol definitions should prefer to use this instead of . Expressions -----------