x11proto-xext: Changes to 'debian-unstable'
.gitignore | 78 ++
ChangeLog | 222 +++++++
Makefile.am | 22
README | 42 +
configure.ac | 20
debian/changelog | 9
debian/control | 2
ge.h | 4
geproto.txt | 83 --
shapestr.h | 8
shmstr.h | 66 ++
specs/.gitignore | 6
specs/Makefile.am | 77 ++
specs/appgroup.xml | 248 ++++++++
specs/dbe.xml | 1061 ++++++++++++++++++++++++++++++++++
specs/dpms.xml | 563 ++++++++++++++++++
specs/evi.xml | 518 ++++++++++++++++
specs/geproto.xml | 97 +++
specs/multibuf.xml | 1628 +++++++++++++++++++++++++++++++++++++++++++++++++++++
specs/security.xml | 1532 +++++++++++++++++++++++++++++++++++++++++++++++++
specs/shape.xml | 1236 ++++++++++++++++++++++++++++++++++++++++
specs/shm.xml | 474 +++++++++++++++
specs/sync.xml | 1062 ++++++++++++++++++++++++++++++++++
specs/tog-cup.xml | 562 ++++++++++++++++++
specs/xtest.xml | 722 +++++++++++++++++++++++
syncstr.h | 184 +++++
26 files changed, 10418 insertions(+), 108 deletions(-)
New commits:
commit d095d0f5f85fd280778a0873f8792b786bc44feb
Author: Robert Hooker <sarvatt@ubuntu.com>
Date: Tue Nov 2 20:08:25 2010 -0400
Bump xutils-dev build dep.
diff --git a/debian/changelog b/debian/changelog
index 35eee3d..ea6a105 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ x11proto-xext (7.1.2-1) UNRELEASED; urgency=low
[ Robert Hooker ]
* New upstream release.
+ * Bump xutils-dev build dep for util-macros 1.10 requirement.
-- Robert Hooker <sarvatt@ubuntu.com> Tue, 02 Nov 2010 20:06:50 -0400
diff --git a/debian/control b/debian/control
index 3445550..96332da 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: David Nusinow <dnusinow@debian.org>, Andres Salomon <dilinger@debian.org>
Build-Depends:
debhelper (>= 5.0.0),
- xutils-dev (>= 1:7.4+4),
+ xutils-dev (>= 1:7.5+5),
autoconf,
automake
Standards-Version: 3.8.3
commit 13058c01bc02026953b05bdab93d66cf5bd12dff
Author: Robert Hooker <sarvatt@ubuntu.com>
Date: Tue Nov 2 20:07:18 2010 -0400
Bump changelogs.
diff --git a/ChangeLog b/ChangeLog
index c20b3a4..1fcd54c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,225 @@
+commit 5daf9cff36df7423f6247fc8174b8e6c9443ed07
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Aug 10 10:24:51 2010 -0400
+
+ xextproto 7.1.2
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 35741d9dc745532dc4af37cc07e256392e3880da
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Tue Aug 3 11:03:49 2010 -0400
+
+ specs: convert protocol geproto.txt to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 260da6ca1dec9abde11c064d0aeac01f695a1596
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 15:10:04 2010 -0400
+
+ specs: convert protocol xtest.ms from xorg-docs to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 4240526710d837cf06502521ee58c6a4538c6c0e
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 13:43:32 2010 -0400
+
+ specs: convert protocol buffer.ms from xorg-docs to DocBook XML
+
+ multibuf.xml
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit c86700c0c87de8d6ec7f085d06e9a48558bb5118
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 13:35:26 2010 -0400
+
+ specs: convert protocol evi.ms from xorg-docs to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit f825b85bd8bde4b78c6e3d0b05b713e6f48a2ff5
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 13:28:07 2010 -0400
+
+ specs: convert protocol appgroup.ms from xorg-docs to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 99a5fde423a301167cb825edbf718de7af9f1158
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 13:21:31 2010 -0400
+
+ specs: convert protocol tog-cup.ms from xorg-docs to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit fc2c585ab9bfe0815a917c897e0b463bf04f8475
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 10:46:54 2010 -0400
+
+ specs: convert protocol dpms.ms specs from xorg-docs module to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 7c9b2197cbb0f787b6330243eb777f612251064d
+Author: Matt Dew <matt@osource.org>
+Date: Mon Aug 2 10:40:47 2010 -0400
+
+ specs: convert protocol shm.ms specs from xorg-docs module to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit cf083a0d35da6665b2aebc6eea4f65009c32411b
+Author: Matt Dew <matt@osource.org>
+Date: Sun Aug 1 20:41:48 2010 -0400
+
+ specs: convert protocol shape.ms specs from xorg-docs module to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 69996150256954ef71c45ee7727fea96e02f8db2
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Jun 30 13:39:21 2010 -0400
+
+ specs: move geproto.txt in the specs directory
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 3f1718e39c73475fb8384e61b6dc78f313d926f9
+Author: Matt Dew <matt@osource.org>
+Date: Wed Jun 30 13:21:28 2010 -0400
+
+ specs: convert protocol .ms specs from xorg-docs module to DocBook XML
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit c4595fad1d79c0957d3f4dff6ef56d72ae8cc38d
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Tue Mar 30 09:54:26 2010 -0700
+
+ XGE: Don't reserve an extension event.
+
+ The Generic Event Extension extension uses the "GenericEvent" core event type,
+ so it doesn't need to also reserve an extension event.
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5f2cc1e2b99d45a612204a86583abb386907be04
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Mar 28 19:25:52 2010 -0400
+
+ config: update AC_PREREQ statement to 2.60
+
+ Unrelated to the previous patches, the new value simply reflects
+ the reality that the minimum level for autoconf to configure
+ all x.org modules is 2.60 dated June 2006.
+
+ ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 21f7dc38add3bda551216a0fa6319d9f3f9af99a
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Mar 28 19:00:31 2010 -0400
+
+ config: remove the pkgconfig pc.in file from EXTRA_DIST
+
+ Automake always includes it in the tarball.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 650615405c327398b5708787bc19198cbb864d20
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Mar 28 17:51:29 2010 -0400
+
+ config: install and distribute geproto.txt
+
+ It will now be installed in $docdir in addition
+ to being distributed in the tarball.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 37f6affde561251df61c7011f9d1d83b006d2fbe
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Nov 22 19:24:48 2009 -0500
+
+ Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
+
+ Now that the INSTALL file is generated.
+ Allows running make maintainer-clean.
+
+commit e9fa939ef8515bca5f8cde85a91b3ae0ae456de7
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Mon Nov 16 11:13:30 2009 -0500
+
+ README: file created or updated #24206
+
+ Contains a set of URLs to freedesktop.org.
+
+commit 3690603986929a706acd76fc0b33132fe0178129
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Nov 15 19:45:27 2009 -0500
+
+ Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
+
+ ChangeLog filename is known to Automake and requires no further
+ coding in the makefile.
+
+commit e52cb6ef1baa65c1688b3160727214efae57b0e2
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Nov 15 18:31:29 2009 -0500
+
+ Makefile.am: INSTALL file is missing or incorrect #24206
+
+ The standard GNU file on building/installing tarball is copied
+ using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS
+ Add INSTALL target
+
+commit bfaecf2a80ef1bcbfa6243fdb1bfc2e335f86a10
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Nov 15 18:11:36 2009 -0500
+
+ configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242
+
+ This macro aggregate a number of existing macros that sets commmon
+ X.Org components configuration options. It shields the configuration file from
+ future changes.
+
+commit 182e739d8ff1f9bb8ddb8fcff8737dabde96c47f
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sun Nov 15 13:55:25 2009 -0500
+
+ configure.ac: AM_MAINTAINER_MODE missing #24238
+
+ This turns off maintainer mode build rules in tarballs.
+ Works in conjunction with autogen.sh --enable-maintainer-mode
+
+commit 4b0b3afee88fdefaab2d9aa690dc5dc465964316
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sat Nov 14 18:26:47 2009 -0500
+
+ .gitignore: use common defaults with custom section # 24239
+
+ Using common defaults will reduce errors and maintenance.
+ Only the very small or inexistent custom section need periodic maintenance
+ when the structure of the component changes. Do not edit defaults.
+
+commit 9d5e140111ef0e7e0c9d30d7e0acf8c43a248816
+Author: Keith Packard <keithp@keithp.com>
+Date: Tue Nov 3 14:41:33 2009 -0800
+
+ Allow old servers to build with new headers
+
+ This provides header compatibility back to X server version 1.6 at
+ least (that's all I tested).
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
commit 987aeb9bd1915a655f31e250ee9c02d04927b150
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Aug 25 09:30:15 2009 +1000
diff --git a/debian/changelog b/debian/changelog
index 6f7edfe..35eee3d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,14 @@
-x11proto-xext (7.1.1-3) UNRELEASED; urgency=low
+x11proto-xext (7.1.2-1) UNRELEASED; urgency=low
+ [ Julien Cristau ]
* Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
good reason. Thanks, Colin Watson!
* Remove myself from Uploaders
- -- Julien Cristau <jcristau@debian.org> Sat, 16 Jan 2010 16:47:45 +0000
+ [ Robert Hooker ]
+ * New upstream release.
+
+ -- Robert Hooker <sarvatt@ubuntu.com> Tue, 02 Nov 2010 20:06:50 -0400
x11proto-xext (7.1.1-2) unstable; urgency=low
commit 5daf9cff36df7423f6247fc8174b8e6c9443ed07
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Aug 10 10:24:51 2010 -0400
xextproto 7.1.2
Signed-off-by: Adam Jackson <ajax@redhat.com>
diff --git a/configure.ac b/configure.ac
index b7bc693..599651b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ([2.60])
-AC_INIT([XExtProto], [7.1.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([XExtProto], [7.1.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
commit 35741d9dc745532dc4af37cc07e256392e3880da
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Aug 3 11:03:49 2010 -0400
specs: convert protocol geproto.txt to DocBook XML
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
diff --git a/specs/Makefile.am b/specs/Makefile.am
index a1acb2e..3e631a1 100644
--- a/specs/Makefile.am
+++ b/specs/Makefile.am
@@ -27,6 +27,7 @@ doc_sources = \
dbe.xml \
dpms.xml \
evi.xml \
+ geproto.xml \
multibuf.xml \
security.xml \
shape.xml \
@@ -35,7 +36,7 @@ doc_sources = \
tog-cup.xml \
xtest.xml
-dist_doc_DATA = $(doc_sources) geproto.txt
+dist_doc_DATA = $(doc_sources)
if HAVE_XMLTO
doc_DATA = $(doc_sources:.xml=.html)
diff --git a/specs/geproto.txt b/specs/geproto.txt
deleted file mode 100644
index 1054def..0000000
--- a/specs/geproto.txt
+++ /dev/null
@@ -1,84 +0,0 @@
- X Generic Event Extension
- Peter Hutterer
- peter.hutterer@who-t.net
-
-
-1. Introduction
-2. Extension Initialization
-3. Events
-4. Notes
-
-_____________________________________________________________________________
-1. Introduction
-
-X was designed to provide 64 event opcodes for all extensions. These events
-are limited to 32 bytes.
-
-The Generic Event Extension provides a template event for extensions to re-use
-a single event opcode. GE only provide headers and the most basic
-functionality, leaving the extensions to interpret the events in their
-specific context.
-
-GenericEvents may be longer than 32 bytes. If so, the number of 4 byte units
-following the initial 32 bytes must be specified in the length field of the
-event.
-_____________________________________________________________________________
-2. Extension Initialization
-
-The name of this extension is "Generic Event Extension"
-
-┌───
- GEQueryVersion
- client-major-version: CARD16
- client-minor-version: CARD16
- ▶
- major-version: CARD16
- minor-version: CARD16
-└───
-
- The client sends the highest supported version to the server
- and the server sends the highest version it supports, but no
- higher than the requested version. Major versions changes can
- introduce incompatibilities in existing functionality, minor
- version changes introduce only backward compatible changes.
- It is the clients responsibility to ensure that the server
- supports a version which is compatible with its expectations.
-
-
- As of version 1.0, no other requests are provided by this extension.
-_____________________________________________________________________________
-3. Events
-
-GE defines a single event, to be used by all extensions. The event's structure
-is similar to a reply. This is a core protocol event, ID 35, and is not itself
-an extension event.
-
-┌───
- GenericEvent
- type: BYTE; always GenericEvent (35)
- extension: CARD8; extension offset
- sequenceNumber: CARD16 low 16 bits of request seq. number
- length: CARD32 length
- evtype: CARD16 event type
-└───
-
- The field 'extension' is to be set to the major opcode of the
- extension. The 'evtype' field is the actual opcode of the event.
- The length field specifies the number of 4-byte blocks after the
- initial 32 bytes. If length is 0, the event is 32 bytes long.
-_____________________________________________________________________________
-4. Notes
-
-Although the wire event is of arbitrary length, the actual size of an XEvent
-is restricted to sizeof(XEvent) [96 bytes, see Xlib.h]. If an extension
-converts a wire event to an XEvent > 96 bytes, it will overwrite the space
-allocated for the event. See struct _XSQEvent in Xlibint.h for details.
-
-Extensions need to malloc additional data and fill the XEvent structure with
-pointers to the malloc'd data. The client then needs to free the data, only
-the XEvent structure will be released by Xlib.
-
-The server must not send GenericEvents longer than 32 bytes until it has
-verified that the client is able to interpret these events. If a long event is
-sent to a client unable to process GenericEvents, future interpretation of
-replies and events by this client will fail.
diff --git a/specs/geproto.xml b/specs/geproto.xml
new file mode 100644
index 0000000..7bba357
--- /dev/null
+++ b/specs/geproto.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<book>
+ <bookinfo>
+ <title>X Generic Event Extension</title>
+
+ <author>
+ <firstname>Peter</firstname>
+
+ <surname>Hutterer</surname>
+
+ <affiliation>
+ <orgname>peter.hutterer@who-t.net</orgname>
+ </affiliation>
+ </author>
+ </bookinfo>
+
+ <chapter>
+ <title>Introduction</title>
+
+ <para>X was designed to provide 64 event opcodes for all extensions. These
+ events are limited to 32 bytes.</para>
+
+ <para>The Generic Event Extension provides a template event for extensions
+ to re-use a single event opcode. GE only provide headers and the most
+ basic functionality, leaving the extensions to interpret the events in
+ their specific context.</para>
+
+ <para>GenericEvents may be longer than 32 bytes. If so, the number of 4
+ byte units following the initial 32 bytes must be specified in the length
+ field of the event.</para>
+ </chapter>
+
+ <chapter>
+ <title>Extension Initialization</title>
+
+ <para>The name of this extension is "Generic Event Extension"</para>
+
+ <programlisting>GEQueryVersion
+ client-major-version: CARD16
+ client-minor-version: CARD16
+==>
+ major-version: CARD16
+ minor-version: CARD16</programlisting>
+
+ <para>The client sends the highest supported version to the server and the
+ server sends the highest version it supports, but no higher than the
+ requested version. Major versions changes can introduce incompatibilities
+ in existing functionality, minor version changes introduce only backward
+ compatible changes. It is the clients responsibility to ensure that the
+ server supports a version which is compatible with its
+ expectations.</para>
+
+ <para>As of version 1.0, no other requests are provided by this extension.
+ </para>
+ </chapter>
+
+ <chapter>
+ <title>Events</title>
+
+ <para>GE defines a single event, to be used by all extensions. The event's
+ structure is similar to a reply. This is a core protocol event, ID 35, and
+ is not itself an extension event.</para>
+
+ <programlisting>GenericEvent
+ type: BYTE always GenericEvent (35)
+ extension: CARD8 extension offset
+ sequenceNumber: CARD16 low 16 bits of request seq. number
+ length: CARD32 length
+ evtype: CARD16 event type</programlisting>
+
+ <para>The field 'extension' is to be set to the major opcode of the
+ extension. The 'evtype' field is the actual opcode of the event. The
+ length field specifies the number of 4-byte blocks after the initial 32
+ bytes. If length is 0, the event is 32 bytes long.</para>
+ </chapter>
+
+ <chapter>
+ <title>Notes</title>
+
+ <para>Although the wire event is of arbitrary length, the actual size of
+ an XEvent is restricted to sizeof(XEvent) [96 bytes, see Xlib.h]. If an
+ extension converts a wire event to an XEvent > 96 bytes, it will
+ overwrite the space allocated for the event. See struct _XSQEvent in
+ Xlibint.h for details.</para>
+
+ <para>Extensions need to malloc additional data and fill the XEvent
+ structure with pointers to the malloc'd data. The client then needs to
+ free the data, only the XEvent structure will be released by Xlib.</para>
+
+ <para>The server must not send GenericEvents longer than 32 bytes until it
+ has verified that the client is able to interpret these events. If a long
+ event is sent to a client unable to process GenericEvents, future
+ interpretation of replies and events by this client will fail.</para>
+ </chapter>
+</book>
commit 260da6ca1dec9abde11c064d0aeac01f695a1596
Author: Matt Dew <matt@osource.org>
Date: Mon Aug 2 15:10:04 2010 -0400
specs: convert protocol xtest.ms from xorg-docs to DocBook XML
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
diff --git a/specs/Makefile.am b/specs/Makefile.am
index 1ca8f35..a1acb2e 100644
--- a/specs/Makefile.am
+++ b/specs/Makefile.am
@@ -32,7 +32,8 @@ doc_sources = \
shape.xml \
shm.xml \
sync.xml \
- tog-cup.xml
+ tog-cup.xml \
+ xtest.xml
dist_doc_DATA = $(doc_sources) geproto.txt
diff --git a/specs/xtest.xml b/specs/xtest.xml
new file mode 100644
index 0000000..6da29f1
--- /dev/null
+++ b/specs/xtest.xml
@@ -0,0 +1,722 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<book id="xtest">
+
+<bookinfo>
+ <title>XTEST Extension Protocol</title>
+ <subtitle>X Consortium Standard</subtitle>
+ <releaseinfo>Version 2.2</releaseinfo>
+ <authorgroup>
+ <author>
+ <firstname>Kieron</firstname><surname>Drake</surname>
+ <affiliation><orgname>UniSoft Ltd.</orgname></affiliation>
+ </author>
+ </authorgroup>
+ <copyright><year>1992</year><holder>UniSoft Group Ltd.</holder></copyright>
+ <copyright><year>1992,1994</year><holder>X Consortium</holder></copyright>
+
+<legalnotice>
+<para>
+Permission to use, copy, modify, and distribute this documentation for any
+purpose and without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies. UniSoft makes no
+representations about the suitability for any purpose of the information in
+this document. This documentation is provided "as is" without express or
+implied warranty.
+</para>
+
+<para>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+</para>
+
+<para>
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+</para>
+
+<para>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+</para>
+
+<para>
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+</para>
+</legalnotice>
+</bookinfo>
+
+
+<chapter>
+<title>TITLE</title>
+
+<sect1 id="Overview">
+<title>Overview</title>
+<para>
+This extension is a minimal set of client and server extensions
+required to completely test the X11 server with no user intervention.
+</para>
+
+<para>
+This extension is not intended to support general journaling and
+playback of user actions. This is a difficult area [XTrap, 89] as it attempts
+to synchronize synthetic user interactions with their effects; it is at the
+higher level of dialogue recording/playback rather than at the strictly lexical
+level. We are interested only in the latter, simpler, case. A more detailed
+discussion and justification of the extension functionality is given in
+[Drake, 91].
+</para>
+
+<para>
+We are aiming only to provide a minimum set of facilities that
+solve immediate testing and validation problems. The testing extension
+itself needs testing, where possible, and so should be as simple as possible.
+</para>
+
+<para>
+We have also tried to:
+</para>
+
+<itemizedlist>
+ <listitem>
+ <para>
+Confine the extension to an appropriate high level within the server
+to minimize portability problems. In practice this means that the extension
+should be at the DIX level or use the DIX/DDX interface, or both. This
+has effects, in particular, on the level at which "input synthesis"
+can occur.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+Minimize the changes required in the rest of the server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+Minimize performance penalties on normal server operation.
+ </para>
+ </listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="Description">
+<title>Description</title>
+<para>
+The functions provided by this extension fall into two groups:
+</para>
+
+<variablelist>
+ <varlistentry>
+ <term>Client Operations</term>
+ <listitem>
+ <para>
+These routines manipulate otherwise hidden client-side behavior. The
+actual implementation will depend on the details of the actual language
+binding and what degree of request buffering, GContext caching, and so on, is
+provided.
+In the C binding, defined in "XTEST Extension Library", routines are
+provided to access the internals of two opaque data structures
+-- <function>GC</function>s
+and
+<function>Visual</function>s --
+and to discard any requests pending within the
+output buffer of a connection. The exact details can be expected to differ for
+other language bindings.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Server Requests</term>
+ <listitem>
+ <para>
+The first of these requests is similar to that provided in most
+extensions: it allows a client to specify a major and minor version
+number to the server and for the server to respond with major and minor
+versions of its own. The remaining two requests allow the following:
+<!-- .RS -->
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+Access to an otherwise "write-only" server resource: the cursor
+associated with a given window
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+Perhaps most importantly, limited synthesis of input device events,
+almost as if a cooperative user had moved the pointing device
+or pressed a key or button.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="Types">
+<title>Types</title>
+<para>
+The following types are used in the request and event definitions in
+subsequent sections:
+</para>
+
+<informaltable frame="none">
+ <tgroup cols='2' align='left'>
+ <colspec colname='c1' colsep="0" colwidth="1*"/>
+ <colspec colname='c2' colsep="0" colwidth="1*"/>
+ <tbody>
+ <row rowsep="0">
+ <entry namest="c1" nameend="c2">
+FAKE_EVENT_TYPE
+{ <function>KeyPress</function>,
+<function>KeyRelease</function>,
+<function>MotionNotify</function>,
+<function>ButtonPress</function>,
+<function>ButtonRelease</function> }
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry></entry>
+ </row>
+ <row>
+ <entry>FAKE_EVENT</entry>
+ <entry>[type: FAKE_EVENT_TYPE,</entry>
+ </row>
+ <row rowsep="0">
+ <entry></entry>
+ <entry>detail: BYTE,</entry>
+ </row>
+ <row rowsep="0">
+ <entry></entry>
+ <entry>time: TIME,</entry>
+ </row>
+ <row rowsep="0">
+ <entry></entry>
+ <entry>root: WINDOW,</entry>
+ </row>
+ <row rowsep="0">
+ <entry></entry>
+ <entry>rootX, rootY: INT16]</entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+
+<para>
+CURSOR { <function>CurrentCursor</function>, <function> None</function> }
+or a cursor as defined by the X11 Protocol.
+</para>
+
+</sect1>
+
+<sect1 id="Client_Operations">
+<title>Client Operations</title>
+
+<para>
+These are abstract definitions of functionality. They refer to client-side
+objects such as "GC" and "VISUAL" that are quoted to
+denote their abstract nature. Concrete versions of these functions are
+defined only for particular language bindings. In some circumstances
+a particular language binding may not implement the relevant abstract
+type or may provide it as a transparent, rather than opaque, type, with
+the result that the corresponding function does not make sense or is
+not required, respectively.
+</para>
+
+<para>
+<function>XTestSetGContextOfGC</function>
+</para>
+
+<informaltable frame="none">
+ <tgroup cols='1' align='left'>
+ <colspec colname='c1' colsep="0" colwidth="1*"/>
+ <tbody>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>gc</emphasis>: "GC"
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>gid</emphasis>: GCONTEXT
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+
+<para>
+Sets the GCONTEXT within the "GC" gc to have
+the value specified by gid.
+</para>
+
+<para>
+<function>XTestSetVisualIDOfVisual</function>
+</para>
+
+<informaltable frame="none">
+ <tgroup cols='1' align='left'>
+ <colspec colname='c1' colsep="0" colwidth="1*"/>
+ <tbody>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>visual</emphasis>: "VISUAL"
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>visualid</emphasis>: VISUALID
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+
+<para>
+Sets the VISUALID within the "VISUAL" visual to have
+the value specified by visualid.
+</para>
+
+<para>
+<function>XTestDiscard</function>
+</para>
+
+<informaltable frame="none">
+ <tgroup cols='1' align='left'>
+ <colspec colname='c1' colsep="0" colwidth="1*"/>
+ <tbody>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>dpy</emphasis>: "CONNECTION"
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+=>
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+status: BOOL
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+
+<para>
+Discards any requests that are present in the request buffer associated with
+the "CONNECTION" dpy.
+The status returned is
+<function>True</function>
+if there were one or more requests
+in the buffer and
+<function>False</function>
+otherwise.
+</para>
+</sect1>
+
+<sect1 id="Server_Requests">
+<title>Server Requests</title>
+<para>
+<function>XTestGetVersion</function>
+</para>
+
+<informaltable frame="none">
+ <tgroup cols='1' align='left'>
+ <colspec colname='c1' colsep="0" colwidth="1*"/>
+ <tbody>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>clientMajorVersion</emphasis>: CARD16
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>clientMinorVersion</emphasis>: CARD16
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+ =>
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+serverMajorVersion: CARD16
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+serverMinorVersion: CARD16
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+Errors: <function>Length</function>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+
+
+<para>
+This request can be used to ensure that the server version of the XTEST
+extension is usable by the client. This document defines major version two
+(2), minor version one (1).
+</para>
+
+<para>
+<function>XTestCompareCursor</function>
+</para>
+
+<informaltable frame="none">
+ <tgroup cols='1' align='left'>
+ <colspec colname='c1' colsep="0" colwidth="1*"/>
+ <tbody>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>window</emphasis>: WINDOW
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+<emphasis remap='I'>cursor-id</emphasis>: CURSOR or
+<function>CurrentCursor</function>
+or
+<function>None</function>
+ </entry>
+ </row>
+ <row rowsep="0">
+ <entry>
+=>
+ </entry>
Reply to: