xtestlib.xml revision 25b89263
125b89263Smrg<?xml version="1.0" encoding="UTF-8" ?> 225b89263Smrg<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 325b89263Smrg "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> 425b89263Smrg 525b89263Smrg 625b89263Smrg<!-- lifted from troff+ms+XMan by doclifter --> 725b89263Smrg<book id="xtestlib"> 825b89263Smrg 925b89263Smrg<bookinfo> 1025b89263Smrg <title>XTEST Extension Library</title> 1125b89263Smrg <subtitle>X Consortium Standard</subtitle> 1225b89263Smrg <releaseinfo>X Version 11, Release 6.4</releaseinfo> 1325b89263Smrg <authorgroup> 1425b89263Smrg <author> 1525b89263Smrg <firstname>Kieron</firstname><surname>Drake</surname> 1625b89263Smrg </author> 1725b89263Smrg </authorgroup> 1825b89263Smrg <corpname>UniSoft Ltd.</corpname> 1925b89263Smrg <copyright><year>1992</year><holder>UniSoft Group Ltd.</holder></copyright> 2025b89263Smrg <copyright><year>1992</year><holder>X Consortium</holder></copyright> 2125b89263Smrg <copyright><year>1994</year><holder>X Consortium</holder></copyright> 2225b89263Smrg <releaseinfo>Version 2.2</releaseinfo> 2325b89263Smrg <affiliation><orgname>X Consortium</orgname></affiliation> 2425b89263Smrg <productnumber>X Version 11, Release 7</productnumber> 2525b89263Smrg 2625b89263Smrg<legalnotice> 2725b89263Smrg 2825b89263Smrg<para> 2925b89263SmrgPermission to use, copy, modify, and distribute this documentation for 3025b89263Smrgany purpose and without fee is hereby granted, provided that the above 3125b89263Smrgcopyright notice and this permission notice appear in all copies. UniSoft 3225b89263Smrgmakes no representations about the suitability for any purpose of the 3325b89263Smrginformation in this document. This documentation is provided 3425b89263Smrg“as is” without express or implied warranty. 3525b89263Smrg</para> 3625b89263Smrg 3725b89263Smrg<para> 3825b89263SmrgPermission is hereby granted, free of charge, to any person obtaining a copy 3925b89263Smrgof this software and associated documentation files 4025b89263Smrg(the “Software”), to deal in the Software without restriction, 4125b89263Smrgincluding without limitation the rights to use, copy, modify, merge, publish, 4225b89263Smrgdistribute, sublicense, and/or sell copies of the Software, and to permit 4325b89263Smrgpersons to whom the Software is furnished to do so, subject to the following 4425b89263Smrgconditions: 4525b89263Smrg</para> 4625b89263Smrg 4725b89263Smrg<para> 4825b89263SmrgThe above copyright notice and this permission notice shall be included in all 4925b89263Smrgcopies or substantial portions of the Software. 5025b89263Smrg</para> 5125b89263Smrg 5225b89263Smrg<para> 5325b89263SmrgTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, 5425b89263SmrgEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 5525b89263SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 5625b89263SmrgNO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 5725b89263SmrgLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 5825b89263SmrgOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 5925b89263SmrgTHE SOFTWARE. 6025b89263Smrg</para> 6125b89263Smrg 6225b89263Smrg<para> 6325b89263SmrgExcept as contained in this notice, the name of the X Consortium shall not 6425b89263Smrgbe used in advertising or otherwise to promote the sale, use or other dealings 6525b89263Smrgin this Software without prior written authorization from the X Consortium. 6625b89263Smrg</para> 6725b89263Smrg 6825b89263Smrg<para>X Window System is a trademark of The Open Group.</para> 6925b89263Smrg 7025b89263Smrg<para> 7125b89263SmrgExcept as contained in this notice, the name of the X Consortium shall not be 7225b89263Smrgused in advertising or otherwise to promote the sale, use or other dealings 7325b89263Smrgin this Software without prior written authorization from the X Consortium. 7425b89263Smrg</para> 7525b89263Smrg</legalnotice> 7625b89263Smrg</bookinfo> 7725b89263Smrg 7825b89263Smrg<chapter id='overview'> 7925b89263Smrg<title>Overview</title> 8025b89263Smrg 8125b89263Smrg<para> 8225b89263SmrgThis extension is a minimal set of client and server extensions 8325b89263Smrgrequired to completely test the X11 server with no user intervention. 8425b89263Smrg</para> 8525b89263Smrg 8625b89263Smrg<para> 8725b89263SmrgThis extension is not intended to support general journaling and 8825b89263Smrgplayback of user actions. This is a difficult area [XTrap, 89] as it attempts 8925b89263Smrgto synchronize synthetic user interactions with their effects; it is at the 9025b89263Smrghigher level of dialogue recording/playback rather than at the strictly lexical 9125b89263Smrglevel. We are interested only in the latter, simpler, case. A more detailed 9225b89263Smrgdiscussion and justification of the extension functionality is given in 9325b89263Smrg[Drake, 91]. 9425b89263Smrg</para> 9525b89263Smrg 9625b89263Smrg<para> 9725b89263SmrgWe are aiming only to provide a minimum set of facilities that 9825b89263Smrgsolve immediate testing and validation problems. The testing extension 9925b89263Smrgitself needs testing, where possible, and so should be as simple as possible. 10025b89263Smrg</para> 10125b89263Smrg 10225b89263Smrg<para>We have also tried to:</para> 10325b89263Smrg<itemizedlist mark='bullet'> 10425b89263Smrg <listitem> 10525b89263Smrg <para> 10625b89263SmrgConfine the extension to an appropriate high level 10725b89263Smrgwithin the server to minimize portability problems. In practice this 10825b89263Smrgmeans that the extension should be at the DIX level or use the 10925b89263SmrgDIX/DDX interface, or both. This has effects, in particular, on the 11025b89263Smrglevel at which "input synthesis" can occur. 11125b89263Smrg </para> 11225b89263Smrg </listitem> 11325b89263Smrg <listitem> 11425b89263Smrg <para> 11525b89263SmrgMinimize the changes required in the rest of the server. 11625b89263Smrg </para> 11725b89263Smrg </listitem> 11825b89263Smrg <listitem> 11925b89263Smrg <para> 12025b89263SmrgMinimize performance penalties on normal server operation. 12125b89263Smrg </para> 12225b89263Smrg </listitem> 12325b89263Smrg</itemizedlist> 12425b89263Smrg</chapter> 12525b89263Smrg 12625b89263Smrg<chapter id='description'> 12725b89263Smrg<title>Description</title> 12825b89263Smrg 12925b89263Smrg<para>The functions provided by this extension fall into two groups:</para> 13025b89263Smrg 13125b89263Smrg<itemizedlist> 13225b89263Smrg <listitem> 13325b89263Smrg <para>Client Operations</para> 13425b89263Smrg <para> 13525b89263SmrgThese routines manipulate otherwise hidden client-side behavior. 13625b89263SmrgThe actual implementation will depend on the details of the actual language 13725b89263Smrgbinding and what degree of request buffering, GContext caching, and so on, is 13825b89263Smrgprovided. In the C binding, defined in section 7, routines are provided 13925b89263Smrgto access the internals of two opaque data structures - 14025b89263Smrg<symbol role='Pn'>GC</symbol>s 14125b89263Smrgand 14225b89263Smrg<function>Visual</function>s - and to discard any requests pending within the 14325b89263Smrgoutput buffer of a connection. The exact details can be expected to differ for 14425b89263Smrgother language bindings. 14525b89263Smrg </para> 14625b89263Smrg </listitem> 14725b89263Smrg <listitem> 14825b89263Smrg <para>Server Requests</para> 14925b89263Smrg <para> 15025b89263SmrgThe first of these requests is similar to that provided in most 15125b89263Smrgextensions: it allows a client to specify a major and minor version 15225b89263Smrgnumber to the server and for the server to respond with major and minor 15325b89263Smrgversions of its own. The remaining two requests allow the following: 15425b89263Smrg </para> 15525b89263Smrg </listitem> 15625b89263Smrg <listitem> 15725b89263Smrg <itemizedlist> 15825b89263Smrg <listitem> 15925b89263Smrg <para> 16025b89263SmrgAccess to an otherwise "write-only" server resource: the 16125b89263Smrgcursor associated with a given window 16225b89263Smrg </para> 16325b89263Smrg </listitem> 16425b89263Smrg <listitem> 16525b89263Smrg <para> 16625b89263SmrgPerhaps most importantly, limited synthesis of input 16725b89263Smrgdevice events, almost as if a cooperative user had moved the pointing device 16825b89263Smrgor pressed a key or button. 16925b89263Smrg </para> 17025b89263Smrg </listitem> 17125b89263Smrg </itemizedlist> 17225b89263Smrg </listitem> 17325b89263Smrg</itemizedlist> 17425b89263Smrg</chapter> 17525b89263Smrg 17625b89263Smrg<chapter id='c_language_binding'> 17725b89263Smrg<title>C Language Binding</title> 17825b89263Smrg 17925b89263Smrg<para> 18025b89263SmrgThe C functions either provide direct access to the protocol and add no 18125b89263Smrgadditional semantics to those defined in section 5 or they correspond 18225b89263Smrgdirectly to the abstract descriptions of client operations in section 4. 18325b89263Smrg</para> 18425b89263Smrg 18525b89263Smrg<para> 18625b89263SmrgAll XTEST extension functions and procedures, and all manifest constants 18725b89263Smrgand macros, will start with the string "XTest". All operations are 18825b89263Smrgclassified as server/client (Server) or client-only (Client). 18925b89263SmrgAll routines that have return type Status will return nonzero for 19025b89263Smrg"success" and zero for "failure." Even if the XTEST extension is 19125b89263Smrgsupported, the server may withdraw such facilities arbitrarily; in which case 19225b89263Smrgthey will subsequently return zero. 19325b89263Smrg</para> 19425b89263Smrg 19525b89263Smrg<para> 19625b89263SmrgThe include file for this extension is 19725b89263Smrg<<symbol role='Pn'>X11/extensions/XTest.h</symbol>>. 19825b89263Smrg</para> 19925b89263Smrg 20025b89263Smrg<funcsynopsis> 20125b89263Smrg<funcprototype> 20225b89263Smrg<funcdef>Bool<function> XTestQueryExtension</function></funcdef> 20325b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 20425b89263Smrg<paramdef>int<parameter> *event_base</parameter></paramdef> 20525b89263Smrg<paramdef>int<parameter> *error_base</parameter></paramdef> 20625b89263Smrg<paramdef>int<parameter> *major_version</parameter></paramdef> 20725b89263Smrg<paramdef>int<parameter> *minor_version</parameter></paramdef> 20825b89263Smrg</funcprototype> 20925b89263Smrg</funcsynopsis> 21025b89263Smrg 21125b89263Smrg<para> 21225b89263Smrg<function>XTestQueryExtension</function> 21325b89263Smrgreturns 21425b89263Smrg<function>True</function> 21525b89263Smrgif the specified display supports the XTEST extension, else 21625b89263Smrg<function>False</function> 21725b89263SmrgIf the extension is supported, *event_base would be set to the event number 21825b89263Smrgfor the first event for this extension and *error_base would be set to the 21925b89263Smrgerror number for the first error for this extension. As no errors or 22025b89263Smrgevents are defined for this version of the extension, the values returned 22125b89263Smrghere are not defined (nor useful). If the extension is supported, 22225b89263Smrg*major_version and *minor_version are set to the major and minor version 22325b89263Smrgnumbers of the extension supported by the display. Otherwise, none of 22425b89263Smrgthe arguments are set. 22525b89263Smrg</para> 22625b89263Smrg 22725b89263Smrg<funcsynopsis> 22825b89263Smrg<funcprototype> 22925b89263Smrg<funcdef>Bool<function> XTestCompareCursorWithWindow</function></funcdef> 23025b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 23125b89263Smrg<paramdef>Window<parameter> *window</parameter></paramdef> 23225b89263Smrg<paramdef>Cursor<parameter> cursor</parameter></paramdef> 23325b89263Smrg</funcprototype> 23425b89263Smrg</funcsynopsis> 23525b89263Smrg 23625b89263Smrg<para>If the extension is supported, 23725b89263Smrg<function>XTestCompareCursorWithWindow</function> 23825b89263Smrgperforms a comparison of the cursor whose ID is specified by cursor (which 23925b89263Smrgmay be 24025b89263Smrg<function>None</function> 24125b89263Smrgwith the cursor of the window specified by window returning 24225b89263Smrg<function>True</function> 24325b89263Smrgif they are the same and 24425b89263Smrg<function>False</function> 24525b89263Smrgotherwise. If the extension is not supported, then the request is ignored and 24625b89263Smrgzero is returned. 24725b89263Smrg</para> 24825b89263Smrg 24925b89263Smrg<funcsynopsis> 25025b89263Smrg<funcprototype> 25125b89263Smrg<funcdef>Bool<function>XTestCompareCurrentCursorWithWindow</function></funcdef> 25225b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 25325b89263Smrg<paramdef>Window<parameter> window</parameter></paramdef> 25425b89263Smrg</funcprototype> 25525b89263Smrg</funcsynopsis> 25625b89263Smrg 25725b89263Smrg<para>If the extension is supported, 25825b89263Smrg<function>XTestCompareCurrentCursorWithWindow</function> 25925b89263Smrgperforms a comparison of the current cursor with the cursor of the specified 26025b89263Smrgwindow returning 26125b89263Smrg<function>True</function> 26225b89263Smrgif they are the same and 26325b89263Smrg<function>False</function> 26425b89263Smrgotherwise. If the extension is not supported, then the request is ignored and 26525b89263Smrgzero is returned. 26625b89263Smrg</para> 26725b89263Smrg 26825b89263Smrg<funcsynopsis> 26925b89263Smrg<funcprototype> 27025b89263Smrg<funcdef><function>XTestFakeKeyEvent</function></funcdef> 27125b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 27225b89263Smrg<paramdef>unsigned int<parameter> keycode</parameter></paramdef> 27325b89263Smrg<paramdef>Bool<parameter> is_press</parameter></paramdef> 27425b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef> 27525b89263Smrg</funcprototype> 27625b89263Smrg</funcsynopsis> 27725b89263Smrg 27825b89263Smrg<para>If the extension is supported, 27925b89263Smrg<function>XTestFakeKeyEvent</function> 28025b89263Smrgrequests the server to simulate either a 28125b89263Smrg<function>KeyPress</function> 28225b89263Smrg(if is_press is 28325b89263Smrg<function>True</function> 28425b89263Smrgor a 28525b89263Smrg<function>KeyRelease</function> 28625b89263Smrg(if is_press is 28725b89263Smrg<function>False</function> 28825b89263Smrgof the key with the specified keycode; otherwise, the request is ignored. 28925b89263Smrg</para> 29025b89263Smrg 29125b89263Smrg<para> 29225b89263SmrgIf the extension is supported, the simulated event will not be processed 29325b89263Smrguntil delay milliseconds after the request is received (if delay is 29425b89263Smrg<function>CurrentTime</function> 29525b89263Smrgthen this is interpreted as no delay at all). No other requests from 29625b89263Smrgthis client will be processed until this delay, if any, has expired 29725b89263Smrgand subsequent processing of the simulated event has been completed. 29825b89263Smrg</para> 29925b89263Smrg 30025b89263Smrg<funcsynopsis> 30125b89263Smrg<funcprototype> 30225b89263Smrg<funcdef><function>XTestFakeButtonEvent</function></funcdef> 30325b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 30425b89263Smrg<paramdef>unsigned int<parameter> button</parameter></paramdef> 30525b89263Smrg<paramdef>Bool<parameter> is_press</parameter></paramdef> 30625b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef> 30725b89263Smrg</funcprototype> 30825b89263Smrg</funcsynopsis> 30925b89263Smrg 31025b89263Smrg<para>If the extension is supported, 31125b89263Smrg<function>XTestFakeButtonEvent</function> 31225b89263Smrgrequests the server to simulate either a 31325b89263Smrg<function>ButtonPress</function> 31425b89263Smrg(if is_press is 31525b89263Smrg<function>True</function> 31625b89263Smrgor a 31725b89263Smrg<function>ButtonRelease</function> 31825b89263Smrg(if is_press is 31925b89263Smrg<function>False</function> 32025b89263Smrgof the logical button numbered by the specified button; otherwise, the 32125b89263Smrgrequest is ignored. 32225b89263Smrg</para> 32325b89263Smrg 32425b89263Smrg<para>If the extension is supported, 32525b89263Smrgthe simulated event will not be processed until delay milliseconds 32625b89263Smrgafter the request is received (if delay is 32725b89263Smrg<function>CurrentTime</function> 32825b89263Smrgthen this is interpreted as no delay at all). No other requests from 32925b89263Smrgthis client will be processed until this delay, if any, has expired 33025b89263Smrgand subsequent processing of the simulated event has been completed. 33125b89263Smrg</para> 33225b89263Smrg 33325b89263Smrg<funcsynopsis> 33425b89263Smrg<funcprototype> 33525b89263Smrg<funcdef><function>XTestFakeMotionEvent</function></funcdef> 33625b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 33725b89263Smrg<paramdef>int<parameter> screen_number</parameter></paramdef> 33825b89263Smrg<paramdef>int<parameter> x</parameter></paramdef> 33925b89263Smrg<paramdef>int<parameter> y</parameter></paramdef> 34025b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef> 34125b89263Smrg</funcprototype> 34225b89263Smrg</funcsynopsis> 34325b89263Smrg 34425b89263Smrg<para>If the extension is supported, 34525b89263Smrg<function>XTestFakeMotionEvent</function> 34625b89263Smrgrequests the server to simulate a movement of the pointer to the specified 34725b89263Smrgposition (x, y) on the root window of screen_number; otherwise, the request 34825b89263Smrgis ignored. If screen_number is -1, the current screen (that the pointer 34925b89263Smrgis on) is used. 35025b89263Smrg</para> 35125b89263Smrg 35225b89263Smrg<para> 35325b89263SmrgIf the extension is supported, the simulated event will not be processed 35425b89263Smrguntil delay milliseconds after the request is received (if delay is 35525b89263Smrg<function>CurrentTime</function> 35625b89263Smrgthen this is interpreted as no delay at all). No other requests from 35725b89263Smrgthis client will be processed until this delay, if any, has expired 35825b89263Smrgand subsequent processing of the simulated event has been completed. 35925b89263Smrg</para> 36025b89263Smrg 36125b89263Smrg<funcsynopsis> 36225b89263Smrg<funcprototype> 36325b89263Smrg<funcdef><function>XTestFakeRelativeMotionEvent</function></funcdef> 36425b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 36525b89263Smrg<paramdef>int<parameter> screen_number</parameter></paramdef> 36625b89263Smrg<paramdef>int<parameter> x</parameter></paramdef> 36725b89263Smrg<paramdef>int<parameter> y</parameter></paramdef> 36825b89263Smrg<paramdef>unsigned long<parameter> delay</parameter></paramdef> 36925b89263Smrg</funcprototype> 37025b89263Smrg</funcsynopsis> 37125b89263Smrg 37225b89263Smrg<para> 37325b89263SmrgIf the extension is supported, 37425b89263Smrg<function>XTestFakeRelativeMotionEvent</function> 37525b89263Smrgrequests the server to simulate a movement of the pointer by the specified 37625b89263Smrgoffsets (x, y) relative to the current pointer position on screen_number; 37725b89263Smrgotherwise, the request is ignored. If screen_number is -1, the 37825b89263Smrgcurrent screen (that the pointer is on) is used. 37925b89263Smrg</para> 38025b89263Smrg 38125b89263Smrg<para> 38225b89263SmrgIf the extension is supported, the simulated event will not be processed 38325b89263Smrguntil delay milliseconds after the request is received (if delay is 38425b89263Smrg<function>CurrentTime</function> 38525b89263Smrgthen this is interpreted as no delay at all). No other requests from 38625b89263Smrgthis client will be processed until this delay, if any, has expired 38725b89263Smrgand subsequent processing of the simulated event has been completed. 38825b89263Smrg</para> 38925b89263Smrg 39025b89263Smrg<funcsynopsis> 39125b89263Smrg<funcprototype> 39225b89263Smrg<funcdef><function>XTestGrabControl</function></funcdef> 39325b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 39425b89263Smrg<paramdef>Bool<parameter> impervious</parameter></paramdef> 39525b89263Smrg</funcprototype> 39625b89263Smrg</funcsynopsis> 39725b89263Smrg 39825b89263Smrg<para>If impervious is 39925b89263Smrg<function>True</function> 40025b89263Smrgthen the executing client becomes impervious to server grabs. If impervious is 40125b89263Smrg<function>False</function> 40225b89263Smrgthen the executing client returns to the normal state of being susceptible 40325b89263Smrgto server grabs. 40425b89263Smrg</para> 40525b89263Smrg 40625b89263Smrg<funcsynopsis> 40725b89263Smrg<funcprototype> 40825b89263Smrg<funcdef>Bool<function> XTestSetGContextOfGC</function></funcdef> 40925b89263Smrg<paramdef>GC<parameter> gc</parameter></paramdef> 41025b89263Smrg<paramdef>GContext<parameter> gid</parameter></paramdef> 41125b89263Smrg</funcprototype> 41225b89263Smrg</funcsynopsis> 41325b89263Smrg 41425b89263Smrg<para> 41525b89263Smrg<function>XTestSetGContextOfGC</function> 41625b89263Smrgsets the GContext within the opaque datatype referenced by gc to 41725b89263Smrgbe that specified by gid. 41825b89263Smrg</para> 41925b89263Smrg 42025b89263Smrg<funcsynopsis> 42125b89263Smrg<funcprototype> 42225b89263Smrg<funcdef><function>XTestSetVisualIDOfVisual</function></funcdef> 42325b89263Smrg<paramdef>Visual<parameter> *visual</parameter></paramdef> 42425b89263Smrg<paramdef>VisualID<parameter> visualid</parameter></paramdef> 42525b89263Smrg</funcprototype> 42625b89263Smrg</funcsynopsis> 42725b89263Smrg 42825b89263Smrg<para> 42925b89263Smrg<function>XTestSetVisualIDOfVisual</function> 43025b89263Smrgsets the VisualID within the opaque datatype referenced by visual to 43125b89263Smrgbe that specified by visualid. 43225b89263Smrg</para> 43325b89263Smrg 43425b89263Smrg<funcsynopsis> 43525b89263Smrg<funcprototype> 43625b89263Smrg<funcdef>Bool<function> XTestDiscard</function></funcdef> 43725b89263Smrg<paramdef>Display<parameter> *display</parameter></paramdef> 43825b89263Smrg</funcprototype> 43925b89263Smrg</funcsynopsis> 44025b89263Smrg 44125b89263Smrg<para> 44225b89263Smrg<function>XTestDiscard</function> 44325b89263Smrgdiscards any requests within the output buffer for the specified display. 44425b89263SmrgIt returns 44525b89263Smrg<function>True</function> 44625b89263Smrgif any requests were discarded; otherwise, it returns 44725b89263Smrg<function>False</function> 44825b89263Smrg</para> 44925b89263Smrg</chapter> 45025b89263Smrg 45125b89263Smrg<chapter id='references'> 45225b89263Smrg<title>References</title> 45325b89263Smrg 45425b89263Smrg<para> 45525b89263SmrgAnnicchiarico, D., et al., <emphasis remap='I'>XTrap: The XTrap 45625b89263SmrgArchitecture</emphasis>. 45725b89263SmrgDigital Equipment Corporation, July 1991. 45825b89263Smrg</para> 45925b89263Smrg 46025b89263Smrg<para> 46125b89263SmrgDrake, K. J., <emphasis remap='I'>Some Proposals for a Minimum X11 46225b89263SmrgTesting Extension</emphasis>. 46325b89263SmrgUniSoft Ltd., June 1991. 46425b89263Smrg</para> 46525b89263Smrg 46625b89263Smrg</chapter> 46725b89263Smrg</book> 468