[Xcb] <op> is busted

Jeremy A. Kolb jkolb at brandeis.edu
Mon Feb 7 20:55:12 PST 2005


<op> doesn't work with two <fieldref> values.  I have:

	<struct name="ScreenSize">
		<field type="INT16" name="width" />
		<field type="INT16" name="height" />
		<field type="INT16" name="mwidth" />
		<field type="INT16" name="mheight" />
	</struct>
	
	<struct name="RefreshRates">
		<field type="CARD16" name="nRates" />
		<list type="CARD16" 
name="rates"><field_ref>nRates</field_ref></list>
	</struct>



	<request name="GetScreenInfo" opcode="5">
		<field type="WINDOW" name="window" />
		<reply>
			<field type="CARD8" name="rotations" />
			<field type="WINDOW" name="root" />
			<field type="CARD32" name="timestamp" />
			<field type="CARD32" name="config_timestamp" />
			<field type="CARD16" name="nSizes" />
			<field type="CARD16" name="sizeID" />
			<field type="INT16" name="rotation" />
			<field type="CARD16" name="rate" />
			<field type="CARD16" name="info_len" />
			<pad bytes="2" />
			<list type="ScreenSize" 
name="sizes"><fieldref>nSizes</fieldref></list>
			<list type="RefreshRates" name="rates">
			    <op op="-">
				<fieldref>info_len</fieldref>
				<fieldref>nSizes</fieldref>
			    </op>
			</list>
		</reply>
	</request>


The length of rates should be info_len-nSizes (this took forever to figure 
out over irc).  Anyways, the resulting c code doesn't compile.  Can 
someone fix this asap?  Thanks.

Jeremy



More information about the xcb mailing list