aboutsummaryrefslogtreecommitdiff
path: root/libxcb
diff options
context:
space:
mode:
Diffstat (limited to 'libxcb')
-rw-r--r--libxcb/.gitignore30
-rw-r--r--libxcb/COPYING60
-rw-r--r--libxcb/INSTALL458
-rw-r--r--libxcb/Makefile.am170
-rw-r--r--libxcb/README72
-rw-r--r--libxcb/acinclude.m4284
-rw-r--r--libxcb/autogen.sh24
-rw-r--r--libxcb/doc/.gitignore2
-rw-r--r--libxcb/doc/tutorial/xcb.css246
-rw-r--r--libxcb/doc/xcb.doxygen.in2506
-rw-r--r--libxcb/doc/xkb_internals98
-rw-r--r--libxcb/doc/xkb_issues74
-rw-r--r--libxcb/src/xcb_ext.c258
-rw-r--r--libxcb/src/xcb_list.c202
-rw-r--r--libxcb/src/xcb_xid.c198
-rw-r--r--libxcb/src/xcbext.h204
-rw-r--r--libxcb/tests/.gitignore3
-rw-r--r--libxcb/tests/CheckLog.xsl208
-rw-r--r--libxcb/tests/Makefile.am64
-rw-r--r--libxcb/tests/check_all.c40
-rw-r--r--libxcb/tests/check_public.c436
-rw-r--r--libxcb/tests/check_suites.h8
-rw-r--r--libxcb/tools/README34
-rw-r--r--libxcb/tools/api_conv.pl196
-rw-r--r--libxcb/tools/constants1144
-rw-r--r--libxcb/xcb-composite.pc.in22
-rw-r--r--libxcb/xcb-damage.pc.in22
-rw-r--r--libxcb/xcb-dpms.pc.in22
-rw-r--r--libxcb/xcb-dri2.pc.in22
-rw-r--r--libxcb/xcb-glx.pc.in22
-rw-r--r--libxcb/xcb-proto/.gitignore31
-rw-r--r--libxcb/xcb-proto/COPYING60
-rw-r--r--libxcb/xcb-proto/INSTALL458
-rw-r--r--libxcb/xcb-proto/README94
-rw-r--r--libxcb/xcb-proto/TODO90
-rw-r--r--libxcb/xcb-proto/autogen.sh24
-rw-r--r--libxcb/xcb-proto/src/bigreq.xml76
-rw-r--r--libxcb/xcb-proto/src/composite.xml196
-rw-r--r--libxcb/xcb-proto/src/damage.xml174
-rw-r--r--libxcb/xcb-proto/src/dpms.xml174
-rw-r--r--libxcb/xcb-proto/src/dri2.xml14
-rw-r--r--libxcb/xcb-proto/src/ge.xml84
-rw-r--r--libxcb/xcb-proto/src/randr.xml1342
-rw-r--r--libxcb/xcb-proto/src/record.xml356
-rw-r--r--libxcb/xcb-proto/src/res.xml166
-rw-r--r--libxcb/xcb-proto/src/screensaver.xml256
-rw-r--r--libxcb/xcb-proto/src/shape.xml310
-rw-r--r--libxcb/xcb-proto/src/shm.xml232
-rw-r--r--libxcb/xcb-proto/src/xc_misc.xml76
-rw-r--r--libxcb/xcb-proto/src/xevie.xml170
-rw-r--r--libxcb/xcb-proto/src/xfixes.xml668
-rw-r--r--libxcb/xcb-proto/src/xinerama.xml198
-rw-r--r--libxcb/xcb-proto/src/xinput.xml2040
-rw-r--r--libxcb/xcb-proto/src/xprint.xml658
-rw-r--r--libxcb/xcb-proto/src/xselinux.xml552
-rw-r--r--libxcb/xcb-proto/src/xv.xml900
-rw-r--r--libxcb/xcb-proto/src/xvmc.xml292
-rw-r--r--libxcb/xcb-proto/xcbgen/Makefile.am6
-rw-r--r--libxcb/xcb-proto/xcbgen/__init__.py2
-rw-r--r--libxcb/xcb-proto/xcbgen/error.py10
-rw-r--r--libxcb/xcb-randr.pc.in22
-rw-r--r--libxcb/xcb-record.pc.in22
-rw-r--r--libxcb/xcb-render.pc.in22
-rw-r--r--libxcb/xcb-res.pc.in22
-rw-r--r--libxcb/xcb-screensaver.pc.in22
-rw-r--r--libxcb/xcb-shape.pc.in22
-rw-r--r--libxcb/xcb-shm.pc.in22
-rw-r--r--libxcb/xcb-sync.pc.in22
-rw-r--r--libxcb/xcb-xevie.pc.in22
-rw-r--r--libxcb/xcb-xf86dri.pc.in22
-rw-r--r--libxcb/xcb-xfixes.pc.in22
-rw-r--r--libxcb/xcb-xinerama.pc.in22
-rw-r--r--libxcb/xcb-xinput.pc.in22
-rw-r--r--libxcb/xcb-xkb.pc.in22
-rw-r--r--libxcb/xcb-xprint.pc.in22
-rw-r--r--libxcb/xcb-xselinux.pc.in22
-rw-r--r--libxcb/xcb-xtest.pc.in22
-rw-r--r--libxcb/xcb-xv.pc.in22
-rw-r--r--libxcb/xcb-xvmc.pc.in22
-rw-r--r--libxcb/xcb.pc.in26
80 files changed, 8680 insertions, 8602 deletions
diff --git a/libxcb/.gitignore b/libxcb/.gitignore
new file mode 100644
index 000000000..7878d7c25
--- /dev/null
+++ b/libxcb/.gitignore
@@ -0,0 +1,30 @@
+aclocal.m4
+autom4te.cache
+compile
+depcomp
+install-sh
+libtool
+ltmain.sh
+missing
+mkinstalldirs
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+configure.lineno
+.deps
+.dirstamp
+.libs
+*.lo
+*.loT
+*.la
+Makefile
+Makefile.in
+stamp-h1
+*.o
+*.pc
+*.tar.bz2
+*.tar.gz
diff --git a/libxcb/COPYING b/libxcb/COPYING
index 54bfbe5b0..50a14e39e 100644
--- a/libxcb/COPYING
+++ b/libxcb/COPYING
@@ -1,30 +1,30 @@
-Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall
-be included in all copies or substantial portions of the
-Software.
-
-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 AUTHORS
-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.
-
-Except as contained in this notice, the names of the authors
-or their institutions 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
-authors.
+Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall
+be included in all copies or substantial portions of the
+Software.
+
+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 AUTHORS
+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.
+
+Except as contained in this notice, the names of the authors
+or their institutions 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
+authors.
diff --git a/libxcb/INSTALL b/libxcb/INSTALL
index 54caf7c19..bf8c23f1f 100644
--- a/libxcb/INSTALL
+++ b/libxcb/INSTALL
@@ -1,229 +1,229 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
-
- This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory. After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/libxcb/Makefile.am b/libxcb/Makefile.am
index 6c43c5bd4..1f88b72da 100644
--- a/libxcb/Makefile.am
+++ b/libxcb/Makefile.am
@@ -1,85 +1,85 @@
-SUBDIRS=src tests doc
-
-pkgconfigdir = $(libdir)/pkgconfig
-
-pkgconfig_DATA = xcb.pc
-
-if BUILD_COMPOSITE
-pkgconfig_DATA += xcb-composite.pc
-endif
-if BUILD_DAMAGE
-pkgconfig_DATA += xcb-damage.pc
-endif
-if BUILD_DPMS
-pkgconfig_DATA += xcb-dpms.pc
-endif
-if BUILD_DRI2
-pkgconfig_DATA += xcb-dri2.pc
-endif
-if BUILD_GLX
-pkgconfig_DATA += xcb-glx.pc
-endif
-if BUILD_RANDR
-pkgconfig_DATA += xcb-randr.pc
-endif
-if BUILD_RECORD
-pkgconfig_DATA += xcb-record.pc
-endif
-if BUILD_RENDER
-pkgconfig_DATA += xcb-render.pc
-endif
-if BUILD_RESOURCE
-pkgconfig_DATA += xcb-res.pc
-endif
-if BUILD_SCREENSAVER
-pkgconfig_DATA += xcb-screensaver.pc
-endif
-if BUILD_SHAPE
-pkgconfig_DATA += xcb-shape.pc
-endif
-if BUILD_SHM
-pkgconfig_DATA += xcb-shm.pc
-endif
-if BUILD_SYNC
-pkgconfig_DATA += xcb-sync.pc
-endif
-if BUILD_XEVIE
-pkgconfig_DATA += xcb-xevie.pc
-endif
-if BUILD_XFREE86_DRI
-pkgconfig_DATA += xcb-xf86dri.pc
-endif
-if BUILD_XFIXES
-pkgconfig_DATA += xcb-xfixes.pc
-endif
-if BUILD_XINERAMA
-pkgconfig_DATA += xcb-xinerama.pc
-endif
-if BUILD_XINPUT
-pkgconfig_DATA += xcb-xinput.pc
-endif
-if BUILD_XKB
-pkgconfig_DATA += xcb-xkb.pc
-endif
-if BUILD_XPRINT
-pkgconfig_DATA += xcb-xprint.pc
-endif
-if BUILD_SELINUX
-pkgconfig_DATA += xcb-xselinux.pc
-endif
-if BUILD_XTEST
-pkgconfig_DATA += xcb-xtest.pc
-endif
-if BUILD_XV
-pkgconfig_DATA += xcb-xv.pc
-endif
-if BUILD_XVMC
-pkgconfig_DATA += xcb-xvmc.pc
-endif
-
-
-EXTRA_DIST = \
-tools/README \
-tools/api_conv.pl \
-tools/constants \
-autogen.sh
+SUBDIRS=src tests doc
+
+pkgconfigdir = $(libdir)/pkgconfig
+
+pkgconfig_DATA = xcb.pc
+
+if BUILD_COMPOSITE
+pkgconfig_DATA += xcb-composite.pc
+endif
+if BUILD_DAMAGE
+pkgconfig_DATA += xcb-damage.pc
+endif
+if BUILD_DPMS
+pkgconfig_DATA += xcb-dpms.pc
+endif
+if BUILD_DRI2
+pkgconfig_DATA += xcb-dri2.pc
+endif
+if BUILD_GLX
+pkgconfig_DATA += xcb-glx.pc
+endif
+if BUILD_RANDR
+pkgconfig_DATA += xcb-randr.pc
+endif
+if BUILD_RECORD
+pkgconfig_DATA += xcb-record.pc
+endif
+if BUILD_RENDER
+pkgconfig_DATA += xcb-render.pc
+endif
+if BUILD_RESOURCE
+pkgconfig_DATA += xcb-res.pc
+endif
+if BUILD_SCREENSAVER
+pkgconfig_DATA += xcb-screensaver.pc
+endif
+if BUILD_SHAPE
+pkgconfig_DATA += xcb-shape.pc
+endif
+if BUILD_SHM
+pkgconfig_DATA += xcb-shm.pc
+endif
+if BUILD_SYNC
+pkgconfig_DATA += xcb-sync.pc
+endif
+if BUILD_XEVIE
+pkgconfig_DATA += xcb-xevie.pc
+endif
+if BUILD_XFREE86_DRI
+pkgconfig_DATA += xcb-xf86dri.pc
+endif
+if BUILD_XFIXES
+pkgconfig_DATA += xcb-xfixes.pc
+endif
+if BUILD_XINERAMA
+pkgconfig_DATA += xcb-xinerama.pc
+endif
+if BUILD_XINPUT
+pkgconfig_DATA += xcb-xinput.pc
+endif
+if BUILD_XKB
+pkgconfig_DATA += xcb-xkb.pc
+endif
+if BUILD_XPRINT
+pkgconfig_DATA += xcb-xprint.pc
+endif
+if BUILD_SELINUX
+pkgconfig_DATA += xcb-xselinux.pc
+endif
+if BUILD_XTEST
+pkgconfig_DATA += xcb-xtest.pc
+endif
+if BUILD_XV
+pkgconfig_DATA += xcb-xv.pc
+endif
+if BUILD_XVMC
+pkgconfig_DATA += xcb-xvmc.pc
+endif
+
+
+EXTRA_DIST = \
+tools/README \
+tools/api_conv.pl \
+tools/constants \
+autogen.sh
diff --git a/libxcb/README b/libxcb/README
index 167c8aca6..cb830a436 100644
--- a/libxcb/README
+++ b/libxcb/README
@@ -1,36 +1,36 @@
-About libxcb
-============
-
-libxcb provides an interface to the X Window System protocol, which
-replaces the current Xlib interface. It has several advantages over
-Xlib, including:
-- size: small, simple library, and lower memory footprint
-- latency hiding: batch several requests and wait for the replies later
-- direct protocol access: interface and protocol correspond exactly
-- proven thread support: transparently access XCB from multiple threads
-- easy extension implementation: interfaces auto-generated from XML-XCB
-
-Xlib can also use XCB as a transport layer, allowing software to make
-requests and receive responses with both, which eases porting to XCB.
-However, client programs, libraries, and toolkits will gain the most
-benefit from a native XCB port.
-
-
-Please report any issues you find to the freedesktop.org bug tracker,
-at:
-
- <https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>
-
-Discussion about XCB occurs on the XCB mailing list:
-
- <mailto:xcb at lists.freedesktop.org>
- <http://lists.freedesktop.org/mailman/listinfo/xcb>
-
-You can obtain the latest development versions of XCB using GIT.
-For anonymous checkouts, use:
-
- git clone git://anongit.freedesktop.org/git/xcb/libxcb
-
-For developers, use:
-
- git clone git+ssh://git.freedesktop.org/git/xcb/libxcb
+About libxcb
+============
+
+libxcb provides an interface to the X Window System protocol, which
+replaces the current Xlib interface. It has several advantages over
+Xlib, including:
+- size: small, simple library, and lower memory footprint
+- latency hiding: batch several requests and wait for the replies later
+- direct protocol access: interface and protocol correspond exactly
+- proven thread support: transparently access XCB from multiple threads
+- easy extension implementation: interfaces auto-generated from XML-XCB
+
+Xlib can also use XCB as a transport layer, allowing software to make
+requests and receive responses with both, which eases porting to XCB.
+However, client programs, libraries, and toolkits will gain the most
+benefit from a native XCB port.
+
+
+Please report any issues you find to the freedesktop.org bug tracker,
+at:
+
+ <https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>
+
+Discussion about XCB occurs on the XCB mailing list:
+
+ <mailto:xcb at lists.freedesktop.org>
+ <http://lists.freedesktop.org/mailman/listinfo/xcb>
+
+You can obtain the latest development versions of XCB using GIT.
+For anonymous checkouts, use:
+
+ git clone git://anongit.freedesktop.org/git/xcb/libxcb
+
+For developers, use:
+
+ git clone git+ssh://git.freedesktop.org/git/xcb/libxcb
diff --git a/libxcb/acinclude.m4 b/libxcb/acinclude.m4
index ad24bc2e5..8fa30de73 100644
--- a/libxcb/acinclude.m4
+++ b/libxcb/acinclude.m4
@@ -1,142 +1,142 @@
-dnl Detection and configuration of the visibility feature of gcc
-dnl Vincent Torri 2006-02-11
-dnl
-dnl XCB_CHECK_VISIBILITY([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-dnl Check the visibility feature of gcc
-dnl
-AC_DEFUN([XCB_CHECK_VISIBILITY],
-[
-AC_MSG_CHECKING([whether ${CC} supports symbol visibility])
-
-save_CFLAGS=${CFLAGS}
-CFLAGS="$CFLAGS -fvisibility=hidden -fvisibility-inlines-hidden"
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#pragma GCC visibility push(hidden)
-extern void f(int);
-#pragma GCC visibility pop
- ]],
- [[]]
- )],
- [AC_DEFINE(
- GCC_HAS_VISIBILITY,
- [],
- [Defined if GCC supports the visibility feature])
- m4_if([$1], [], [:], [$1])
- AC_MSG_RESULT(yes)],
- [m4_if([$2], [], [:], [$2])
- AC_MSG_RESULT(no)])
-
-CFLAGS=${save_CFLAGS}
-])
-
-dnl Configure script for doxygen
-dnl Vincent Torri 2006-05-11
-dnl
-dnl XCB_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-dnl Test for the doxygen program, and define BUILD_DOCS and DOXYGEN.
-dnl
-AC_DEFUN([XCB_CHECK_DOXYGEN],
-[
-DOXYGEN="doxygen"
-
-dnl
-dnl Disable the build of the documentation
-dnl
-AC_ARG_ENABLE(
- [build_docs],
- AC_HELP_STRING(
- [--disable-build-docs],
- [Disable the build of the documentation]),
- [if test x"$enableval" != x"yes" ; then
- enable_build_docs="no"
- else
- enable_build_docs="yes"
- fi],
- [enable_build_docs="yes"])
-
-if test "$enable_build_docs" = "no" ; then
- BUILD_DOCS=no
-else
-dnl
-dnl Get the prefix where doxygen is installed.
-dnl
-AC_ARG_WITH(
- [doxygen],
- AC_HELP_STRING(
- [--with-doxygen=FILE],
- [doxygen program to use (eg /usr/bin/doxygen)]),
- dnl
- dnl Check the given doxygen program.
- dnl
- [DOXYGEN=${withval}
- AC_CHECK_PROG(
- [BUILD_DOCS],
- [${DOXYGEN}],
- [yes],
- [no])
- if test $BUILD_DOCS = no; then
- echo "WARNING:"
- echo "The doxygen program you specified:"
- echo "$DOXYGEN"
- echo "was not found. Please check the path and make sure "
- echo "the program exists and is executable."
- AC_MSG_WARN(
- [Warning: no doxygen detected. Documentation will not be built])
- fi],
- [AC_CHECK_PROG(
- [BUILD_DOCS],
- [${DOXYGEN}],
- [yes],
- [no])
- if test ${BUILD_DOCS} = no; then
- echo "WARNING:"
- echo "The doxygen program was not found in your execute"
- echo "You may have doxygen installed somewhere not covered by your path."
- echo ""
- echo "If this is the case make sure you have the packages installed, AND"
- echo "that the doxygen program is in your execute path (see your"
- echo "shell manual page on setting the \$PATH environment variable), OR"
- echo "alternatively, specify the program to use with --with-doxygen."
- AC_MSG_WARN(
- [Warning: no doxygen detected. Documentation will not be built])
- fi])
- AC_PATH_PROG(DOT, dot, no)
- if test "$DOT" = "no"; then
- AC_MSG_WARN([Warning: no dot detected. Documentation will not be built])
- BUILD_DOCS="no"
- fi
-fi
-AC_MSG_CHECKING([whether documentation is built])
-AC_MSG_RESULT([${BUILD_DOCS}])
-
-dnl
-dnl Substitution
-dnl
-AC_SUBST([DOXYGEN])
-
-AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
-
-])
-
-dnl Detection and configuration of the visibility feature of gcc
-dnl Vincent Torri 2006-02-11
-dnl
-dnl XCB_EXTENSION(name, default)
-dnl set the X extension
-dnl
-AC_DEFUN([XCB_EXTENSION],
-[
-pushdef([UP], translit([$1], [-a-z], [_A-Z]))dnl
-pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
-
-AC_ARG_ENABLE(DOWN,
- [AS_HELP_STRING([--enable-[]DOWN], [Build XCB $1 Extension (default: $2)])],
- [BUILD_[]UP=$enableval],
- [BUILD_[]UP=$2])
-
-AM_CONDITIONAL(BUILD_[]UP, [test "x$BUILD_[]UP" = "xyes"])
-])
-
-dnl End of acinclude.m4
+dnl Detection and configuration of the visibility feature of gcc
+dnl Vincent Torri 2006-02-11
+dnl
+dnl XCB_CHECK_VISIBILITY([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl Check the visibility feature of gcc
+dnl
+AC_DEFUN([XCB_CHECK_VISIBILITY],
+[
+AC_MSG_CHECKING([whether ${CC} supports symbol visibility])
+
+save_CFLAGS=${CFLAGS}
+CFLAGS="$CFLAGS -fvisibility=hidden -fvisibility-inlines-hidden"
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#pragma GCC visibility push(hidden)
+extern void f(int);
+#pragma GCC visibility pop
+ ]],
+ [[]]
+ )],
+ [AC_DEFINE(
+ GCC_HAS_VISIBILITY,
+ [],
+ [Defined if GCC supports the visibility feature])
+ m4_if([$1], [], [:], [$1])
+ AC_MSG_RESULT(yes)],
+ [m4_if([$2], [], [:], [$2])
+ AC_MSG_RESULT(no)])
+
+CFLAGS=${save_CFLAGS}
+])
+
+dnl Configure script for doxygen
+dnl Vincent Torri 2006-05-11
+dnl
+dnl XCB_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl Test for the doxygen program, and define BUILD_DOCS and DOXYGEN.
+dnl
+AC_DEFUN([XCB_CHECK_DOXYGEN],
+[
+DOXYGEN="doxygen"
+
+dnl
+dnl Disable the build of the documentation
+dnl
+AC_ARG_ENABLE(
+ [build_docs],
+ AC_HELP_STRING(
+ [--disable-build-docs],
+ [Disable the build of the documentation]),
+ [if test x"$enableval" != x"yes" ; then
+ enable_build_docs="no"
+ else
+ enable_build_docs="yes"
+ fi],
+ [enable_build_docs="yes"])
+
+if test "$enable_build_docs" = "no" ; then
+ BUILD_DOCS=no
+else
+dnl
+dnl Get the prefix where doxygen is installed.
+dnl
+AC_ARG_WITH(
+ [doxygen],
+ AC_HELP_STRING(
+ [--with-doxygen=FILE],
+ [doxygen program to use (eg /usr/bin/doxygen)]),
+ dnl
+ dnl Check the given doxygen program.
+ dnl
+ [DOXYGEN=${withval}
+ AC_CHECK_PROG(
+ [BUILD_DOCS],
+ [${DOXYGEN}],
+ [yes],
+ [no])
+ if test $BUILD_DOCS = no; then
+ echo "WARNING:"
+ echo "The doxygen program you specified:"
+ echo "$DOXYGEN"
+ echo "was not found. Please check the path and make sure "
+ echo "the program exists and is executable."
+ AC_MSG_WARN(
+ [Warning: no doxygen detected. Documentation will not be built])
+ fi],
+ [AC_CHECK_PROG(
+ [BUILD_DOCS],
+ [${DOXYGEN}],
+ [yes],
+ [no])
+ if test ${BUILD_DOCS} = no; then
+ echo "WARNING:"
+ echo "The doxygen program was not found in your execute"
+ echo "You may have doxygen installed somewhere not covered by your path."
+ echo ""
+ echo "If this is the case make sure you have the packages installed, AND"
+ echo "that the doxygen program is in your execute path (see your"
+ echo "shell manual page on setting the \$PATH environment variable), OR"
+ echo "alternatively, specify the program to use with --with-doxygen."
+ AC_MSG_WARN(
+ [Warning: no doxygen detected. Documentation will not be built])
+ fi])
+ AC_PATH_PROG(DOT, dot, no)
+ if test "$DOT" = "no"; then
+ AC_MSG_WARN([Warning: no dot detected. Documentation will not be built])
+ BUILD_DOCS="no"
+ fi
+fi
+AC_MSG_CHECKING([whether documentation is built])
+AC_MSG_RESULT([${BUILD_DOCS}])
+
+dnl
+dnl Substitution
+dnl
+AC_SUBST([DOXYGEN])
+
+AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
+
+])
+
+dnl Detection and configuration of the visibility feature of gcc
+dnl Vincent Torri 2006-02-11
+dnl
+dnl XCB_EXTENSION(name, default)
+dnl set the X extension
+dnl
+AC_DEFUN([XCB_EXTENSION],
+[
+pushdef([UP], translit([$1], [-a-z], [_A-Z]))dnl
+pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
+
+AC_ARG_ENABLE(DOWN,
+ [AS_HELP_STRING([--enable-[]DOWN], [Build XCB $1 Extension (default: $2)])],
+ [BUILD_[]UP=$enableval],
+ [BUILD_[]UP=$2])
+
+AM_CONDITIONAL(BUILD_[]UP, [test "x$BUILD_[]UP" = "xyes"])
+])
+
+dnl End of acinclude.m4
diff --git a/libxcb/autogen.sh b/libxcb/autogen.sh
index 904cd6746..6fcae015c 100644
--- a/libxcb/autogen.sh
+++ b/libxcb/autogen.sh
@@ -1,12 +1,12 @@
-#! /bin/sh
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-ORIGDIR=`pwd`
-cd $srcdir
-
-autoreconf -v --install || exit 1
-cd $ORIGDIR || exit $?
-
-$srcdir/configure --enable-maintainer-mode "$@"
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+$srcdir/configure --enable-maintainer-mode "$@"
diff --git a/libxcb/doc/.gitignore b/libxcb/doc/.gitignore
new file mode 100644
index 000000000..55caf95c6
--- /dev/null
+++ b/libxcb/doc/.gitignore
@@ -0,0 +1,2 @@
+manual
+xcb.doxygen \ No newline at end of file
diff --git a/libxcb/doc/tutorial/xcb.css b/libxcb/doc/tutorial/xcb.css
index e059b3b33..48b0249a8 100644
--- a/libxcb/doc/tutorial/xcb.css
+++ b/libxcb/doc/tutorial/xcb.css
@@ -1,123 +1,123 @@
-body
-{
- background-color: #dddddd;
- color: #000000;
- padding: 8px;
- margin: 0px;
-}
-div.title
-{
- text-align: center;
- font-weight: bold;
- font-size: 28px;
-}
-div.emph
-{
- text-align: left;
- font-weight: bold;
-}
-div.section li.title
-{
- font-weight: bold;
- font-size: 22px;
-}
-div.section li.title p
-{
- font-weight: normal;
- font-size: 16px;
-}
-div.section li.title ul
-{
- font-weight: normal;
- font-size: 16px;
-}
-div.section li.title ol
-{
- font-weight: normal;
- font-size: 16px;
-}
-div.section li.subtitle
-{
- font-weight: bold;
- font-size: 18px;
-}
-div.section li.subsubtitle
-{
- font-weight: bold;
- font-size: 16px;
-}
-div.comp
-{
- border: thin solid #000000;
- color: #000000;
- background-color: #ffffe0;
- padding: 14px;
-}
-div.comp div.title
-{
- font-weight: bold;
- font-size: 16px;
- text-align: center;
-}
-div.comp div.xlib ul li
-{
- font-family: monospace;
- font-size: 12px;
- font-weight: bold;
- position: absolute;
- width: 49%;
- margin-left: 0px;
- margin-top: 10px;
-}
-div.comp div.xcb ul li
-{
- font-family: monospace;
- font-size: 12px;
- font-weight: bold;
- position: relative;
- margin-left: 51%;
- margin-top: 10px;
-}
-pre.code
-{
- border: thin solid #000000;
- color: #000000;
- background-color: #efefef;
- padding: 4px;
- text-align: left;
- font-size: 10px;
-}
-pre.text
-{
- border: thin solid #000000;
- color: #000000;
- background-color: #efefef;
- padding: 4px;
- text-align: left;
- font-size: 10px;
-}
-span.code
-{
- font-family: monospace;
- font-size: 12px;
-}
-pre.code .type
-{
- color: #44bb44;
-}
-pre.code .function
-{
- color: #449fb7;
-}
-pre.code .include
-{
- color: #7d93ae;
-}
-pre.code .string
-{
- color: #ef6e4b;
-}
-pre.code .keyword
-{
- color: #00bbbb;
-}
+body
+{
+ background-color: #dddddd;
+ color: #000000;
+ padding: 8px;
+ margin: 0px;
+}
+div.title
+{
+ text-align: center;
+ font-weight: bold;
+ font-size: 28px;
+}
+div.emph
+{
+ text-align: left;
+ font-weight: bold;
+}
+div.section li.title
+{
+ font-weight: bold;
+ font-size: 22px;
+}
+div.section li.title p
+{
+ font-weight: normal;
+ font-size: 16px;
+}
+div.section li.title ul
+{
+ font-weight: normal;
+ font-size: 16px;
+}
+div.section li.title ol
+{
+ font-weight: normal;
+ font-size: 16px;
+}
+div.section li.subtitle
+{
+ font-weight: bold;
+ font-size: 18px;
+}
+div.section li.subsubtitle
+{
+ font-weight: bold;
+ font-size: 16px;
+}
+div.comp
+{
+ border: thin solid #000000;
+ color: #000000;
+ background-color: #ffffe0;
+ padding: 14px;
+}
+div.comp div.title
+{
+ font-weight: bold;
+ font-size: 16px;
+ text-align: center;
+}
+div.comp div.xlib ul li
+{
+ font-family: monospace;
+ font-size: 12px;
+ font-weight: bold;
+ position: absolute;
+ width: 49%;
+ margin-left: 0px;
+ margin-top: 10px;
+}
+div.comp div.xcb ul li
+{
+ font-family: monospace;
+ font-size: 12px;
+ font-weight: bold;
+ position: relative;
+ margin-left: 51%;
+ margin-top: 10px;
+}
+pre.code
+{
+ border: thin solid #000000;
+ color: #000000;
+ background-color: #efefef;
+ padding: 4px;
+ text-align: left;
+ font-size: 10px;
+}
+pre.text
+{
+ border: thin solid #000000;
+ color: #000000;
+ background-color: #efefef;
+ padding: 4px;
+ text-align: left;
+ font-size: 10px;
+}
+span.code
+{
+ font-family: monospace;
+ font-size: 12px;
+}
+pre.code .type
+{
+ color: #44bb44;
+}
+pre.code .function
+{
+ color: #449fb7;
+}
+pre.code .include
+{
+ color: #7d93ae;
+}
+pre.code .string
+{
+ color: #ef6e4b;
+}
+pre.code .keyword
+{
+ color: #00bbbb;
+}
diff --git a/libxcb/doc/xcb.doxygen.in b/libxcb/doc/xcb.doxygen.in
index 58aa07630..d674cbab1 100644
--- a/libxcb/doc/xcb.doxygen.in
+++ b/libxcb/doc/xcb.doxygen.in
@@ -1,1253 +1,1253 @@
-# Doxyfile 1.5.0
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = "XCB"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = @VERSION@
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = @top_builddir@/doc
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
-# include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = NO
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-# XXX: In the future this should be turned on. For now it generates too much noise.
-WARN_IF_UNDOCUMENTED = NO
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = @top_srcdir@/src @top_builddir@/src
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
-
-FILE_PATTERNS =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = manual
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a caller dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
-
-CALLER_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that a graph may be further truncated if the graph's
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
+# Doxyfile 1.5.0
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "XCB"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = @VERSION@
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = @top_builddir@/doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = NO
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+# XXX: In the future this should be turned on. For now it generates too much noise.
+WARN_IF_UNDOCUMENTED = NO
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = @top_srcdir@/src @top_builddir@/src
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code. Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = manual
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
diff --git a/libxcb/doc/xkb_internals b/libxcb/doc/xkb_internals
index 3e103910c..93c6d0170 100644
--- a/libxcb/doc/xkb_internals
+++ b/libxcb/doc/xkb_internals
@@ -1,49 +1,49 @@
-
-XKB introduces several uncommon data structures:
- - switch allows conditional inclusion of fields
- - several complex objects intermix variable and fixed size fields
- - lists with a variable number of variable size objects
-
-To handle these objects, a number of new functions is generated:
- - _serialize() turns a structured object into a byte stream,
- (re)ordering or including fields according to the protocol
- - _unserialize() rewrites data from a buffer into a structured object
- - _unpack() expands a buffer representing a switch object into
- a special structured type, all flags needed to resolve the switch
- expression have to given as parameters
- - _sizeof() calculates the size of a serialized object, often by calling
- _unserialize()/_unpack() internally
-
-The new structured data type for switch is special as it contains fixed
-and variable size fields. Variable size fields can be accessed via pointers.
-
-If switch appears in a request, an additional set of request helpers is
-generated with the suffix _aux or _aux_(un)checked. While the 'common'
-request functions require that switch has been serialized before, the _aux
-variants take the structured data type. They are especially designed to
-replace certain functions in xcb-util/aux.
-
-Accessors for switch members need two parameters, where the first is usually
-a pointer to the respective request or reply structure, while the second
-is a pointer to the unpacked switch data structure.
-
-Functions from the serialize family that take a double pointer can allocate
-memory on their own, which is useful if the size of a buffer has to be
-calculated depending on the data within. These functions call malloc() when
-the double pointer is given as the address of a pointer that has been
-initialized to 0. It is the responsibility of the user to free any allocated
-memory.
-
-Intermixed variable and fixed size fields are an important special case in XKB.
-The current implementation resolves the issue by reordering the fields before
-sending them on the wire as well as before returning a reply. That means that
-these objects look like 'common' XCB data types and they can be accessed as such
-(i.e. fixed size fields directly via the structured type and variable size fields
-via accessors/iterators).
-
-In case a list with variable size elements needs to be accessed, it is necessary
-to use iterators. The iterator functions take care of determining the actual
-object size for each element automatically.
-
-A small and preliminary set of auxiliary functions is available in xkb_util.c
-in the check_xkb module.
+
+XKB introduces several uncommon data structures:
+ - switch allows conditional inclusion of fields
+ - several complex objects intermix variable and fixed size fields
+ - lists with a variable number of variable size objects
+
+To handle these objects, a number of new functions is generated:
+ - _serialize() turns a structured object into a byte stream,
+ (re)ordering or including fields according to the protocol
+ - _unserialize() rewrites data from a buffer into a structured object
+ - _unpack() expands a buffer representing a switch object into
+ a special structured type, all flags needed to resolve the switch
+ expression have to given as parameters
+ - _sizeof() calculates the size of a serialized object, often by calling
+ _unserialize()/_unpack() internally
+
+The new structured data type for switch is special as it contains fixed
+and variable size fields. Variable size fields can be accessed via pointers.
+
+If switch appears in a request, an additional set of request helpers is
+generated with the suffix _aux or _aux_(un)checked. While the 'common'
+request functions require that switch has been serialized before, the _aux
+variants take the structured data type. They are especially designed to
+replace certain functions in xcb-util/aux.
+
+Accessors for switch members need two parameters, where the first is usually
+a pointer to the respective request or reply structure, while the second
+is a pointer to the unpacked switch data structure.
+
+Functions from the serialize family that take a double pointer can allocate
+memory on their own, which is useful if the size of a buffer has to be
+calculated depending on the data within. These functions call malloc() when
+the double pointer is given as the address of a pointer that has been
+initialized to 0. It is the responsibility of the user to free any allocated
+memory.
+
+Intermixed variable and fixed size fields are an important special case in XKB.
+The current implementation resolves the issue by reordering the fields before
+sending them on the wire as well as before returning a reply. That means that
+these objects look like 'common' XCB data types and they can be accessed as such
+(i.e. fixed size fields directly via the structured type and variable size fields
+via accessors/iterators).
+
+In case a list with variable size elements needs to be accessed, it is necessary
+to use iterators. The iterator functions take care of determining the actual
+object size for each element automatically.
+
+A small and preliminary set of auxiliary functions is available in xkb_util.c
+in the check_xkb module.
diff --git a/libxcb/doc/xkb_issues b/libxcb/doc/xkb_issues
index f10c015e5..80efcc1fc 100644
--- a/libxcb/doc/xkb_issues
+++ b/libxcb/doc/xkb_issues
@@ -1,38 +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
+
+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
diff --git a/libxcb/src/xcb_ext.c b/libxcb/src/xcb_ext.c
index c79c54de2..be7862f41 100644
--- a/libxcb/src/xcb_ext.c
+++ b/libxcb/src/xcb_ext.c
@@ -1,129 +1,129 @@
-/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * 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
- * AUTHORS 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.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions 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 authors.
- */
-
-/* A cache for QueryExtension results. */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "xcb.h"
-#include "xcbext.h"
-#include "xcbint.h"
-
-typedef struct lazyreply {
- enum lazy_reply_tag tag;
- union {
- xcb_query_extension_cookie_t cookie;
- xcb_query_extension_reply_t *reply;
- } value;
-} lazyreply;
-
-static lazyreply *get_index(xcb_connection_t *c, int idx)
-{
- if(idx > c->ext.extensions_size)
- {
- int new_size = idx << 1;
- lazyreply *new_extensions = realloc(c->ext.extensions, sizeof(lazyreply) * new_size);
- if(!new_extensions)
- return 0;
- memset(new_extensions + c->ext.extensions_size, 0, sizeof(lazyreply) * (new_size - c->ext.extensions_size));
- c->ext.extensions = new_extensions;
- c->ext.extensions_size = new_size;
- }
- return c->ext.extensions + idx - 1;
-}
-
-static lazyreply *get_lazyreply(xcb_connection_t *c, xcb_extension_t *ext)
-{
- static pthread_mutex_t global_lock = PTHREAD_MUTEX_INITIALIZER;
- static int next_global_id;
-
- lazyreply *data;
-
- pthread_mutex_lock(&global_lock);
- if(!ext->global_id)
- ext->global_id = ++next_global_id;
- pthread_mutex_unlock(&global_lock);
-
- data = get_index(c, ext->global_id);
- if(data && data->tag == LAZY_NONE)
- {
- /* cache miss: query the server */
- data->tag = LAZY_COOKIE;
- data->value.cookie = xcb_query_extension(c, strlen(ext->name), ext->name);
- }
- return data;
-}
-
-/* Public interface */
-
-/* Do not free the returned xcb_query_extension_reply_t - on return, it's aliased
- * from the cache. */
-const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext)
-{
- lazyreply *data;
- if(c->has_error)
- return 0;
-
- pthread_mutex_lock(&c->ext.lock);
- data = get_lazyreply(c, ext);
- if(data && data->tag == LAZY_COOKIE)
- {
- data->tag = LAZY_FORCED;
- data->value.reply = xcb_query_extension_reply(c, data->value.cookie, 0);
- }
- pthread_mutex_unlock(&c->ext.lock);
-
- return data ? data->value.reply : 0;
-}
-
-void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext)
-{
- if(c->has_error)
- return;
- pthread_mutex_lock(&c->ext.lock);
- get_lazyreply(c, ext);
- pthread_mutex_unlock(&c->ext.lock);
-}
-
-/* Private interface */
-
-int _xcb_ext_init(xcb_connection_t *c)
-{
- if(pthread_mutex_init(&c->ext.lock, 0))
- return 0;
- return 1;
-}
-
-void _xcb_ext_destroy(xcb_connection_t *c)
-{
- if (!c->ext.lock)
- return; /* mutex is not initialised */
- pthread_mutex_destroy(&c->ext.lock);
- while(c->ext.extensions_size-- > 0)
- if(c->ext.extensions[c->ext.extensions_size].tag == LAZY_FORCED)
- free(c->ext.extensions[c->ext.extensions_size].value.reply);
- free(c->ext.extensions);
-}
+/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * 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
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions 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 authors.
+ */
+
+/* A cache for QueryExtension results. */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "xcb.h"
+#include "xcbext.h"
+#include "xcbint.h"
+
+typedef struct lazyreply {
+ enum lazy_reply_tag tag;
+ union {
+ xcb_query_extension_cookie_t cookie;
+ xcb_query_extension_reply_t *reply;
+ } value;
+} lazyreply;
+
+static lazyreply *get_index(xcb_connection_t *c, int idx)
+{
+ if(idx > c->ext.extensions_size)
+ {
+ int new_size = idx << 1;
+ lazyreply *new_extensions = realloc(c->ext.extensions, sizeof(lazyreply) * new_size);
+ if(!new_extensions)
+ return 0;
+ memset(new_extensions + c->ext.extensions_size, 0, sizeof(lazyreply) * (new_size - c->ext.extensions_size));
+ c->ext.extensions = new_extensions;
+ c->ext.extensions_size = new_size;
+ }
+ return c->ext.extensions + idx - 1;
+}
+
+static lazyreply *get_lazyreply(xcb_connection_t *c, xcb_extension_t *ext)
+{
+ static pthread_mutex_t global_lock = PTHREAD_MUTEX_INITIALIZER;
+ static int next_global_id;
+
+ lazyreply *data;
+
+ pthread_mutex_lock(&global_lock);
+ if(!ext->global_id)
+ ext->global_id = ++next_global_id;
+ pthread_mutex_unlock(&global_lock);
+
+ data = get_index(c, ext->global_id);
+ if(data && data->tag == LAZY_NONE)
+ {
+ /* cache miss: query the server */
+ data->tag = LAZY_COOKIE;
+ data->value.cookie = xcb_query_extension(c, strlen(ext->name), ext->name);
+ }
+ return data;
+}
+
+/* Public interface */
+
+/* Do not free the returned xcb_query_extension_reply_t - on return, it's aliased
+ * from the cache. */
+const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext)
+{
+ lazyreply *data;
+ if(c->has_error)
+ return 0;
+
+ pthread_mutex_lock(&c->ext.lock);
+ data = get_lazyreply(c, ext);
+ if(data && data->tag == LAZY_COOKIE)
+ {
+ data->tag = LAZY_FORCED;
+ data->value.reply = xcb_query_extension_reply(c, data->value.cookie, 0);
+ }
+ pthread_mutex_unlock(&c->ext.lock);
+
+ return data ? data->value.reply : 0;
+}
+
+void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext)
+{
+ if(c->has_error)
+ return;
+ pthread_mutex_lock(&c->ext.lock);
+ get_lazyreply(c, ext);
+ pthread_mutex_unlock(&c->ext.lock);
+}
+
+/* Private interface */
+
+int _xcb_ext_init(xcb_connection_t *c)
+{
+ if(pthread_mutex_init(&c->ext.lock, 0))
+ return 0;
+ return 1;
+}
+
+void _xcb_ext_destroy(xcb_connection_t *c)
+{
+ if (!c->ext.lock)
+ return; /* mutex is not initialised */
+ pthread_mutex_destroy(&c->ext.lock);
+ while(c->ext.extensions_size-- > 0)
+ if(c->ext.extensions[c->ext.extensions_size].tag == LAZY_FORCED)
+ free(c->ext.extensions[c->ext.extensions_size].value.reply);
+ free(c->ext.extensions);
+}
diff --git a/libxcb/src/xcb_list.c b/libxcb/src/xcb_list.c
index 3a18d9086..fc00588b4 100644
--- a/libxcb/src/xcb_list.c
+++ b/libxcb/src/xcb_list.c
@@ -1,101 +1,101 @@
-/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * 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
- * AUTHORS 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.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions 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 authors.
- */
-
-/* A generic implementation of a list of void-pointers. */
-
-#include <stdlib.h>
-
-#include "xcb.h"
-#include "xcbint.h"
-
-typedef struct node {
- struct node *next;
- unsigned int key;
- void *data;
-} node;
-
-struct _xcb_map {
- node *head;
- node **tail;
-};
-
-/* Private interface */
-
-_xcb_map *_xcb_map_new()
-{
- _xcb_map *list;
- list = malloc(sizeof(_xcb_map));
- if(!list)
- return 0;
- list->head = 0;
- list->tail = &list->head;
- return list;
-}
-
-void _xcb_map_delete(_xcb_map *list, xcb_list_free_func_t do_free)
-{
- if(!list)
- return;
- while(list->head)
- {
- node *cur = list->head;
- if(do_free)
- do_free(cur->data);
- list->head = cur->next;
- free(cur);
- }
- free(list);
-}
-
-int _xcb_map_put(_xcb_map *list, unsigned int key, void *data)
-{
- node *cur = malloc(sizeof(node));
- if(!cur)
- return 0;
- cur->key = key;
- cur->data = data;
- cur->next = 0;
- *list->tail = cur;
- list->tail = &cur->next;
- return 1;
-}
-
-void *_xcb_map_remove(_xcb_map *list, unsigned int key)
-{
- node **cur;
- for(cur = &list->head; *cur; cur = &(*cur)->next)
- if((*cur)->key == key)
- {
- node *tmp = *cur;
- void *ret = (*cur)->data;
- *cur = (*cur)->next;
- if(!*cur)
- list->tail = cur;
-
- free(tmp);
- return ret;
- }
- return 0;
-}
+/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * 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
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions 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 authors.
+ */
+
+/* A generic implementation of a list of void-pointers. */
+
+#include <stdlib.h>
+
+#include "xcb.h"
+#include "xcbint.h"
+
+typedef struct node {
+ struct node *next;
+ unsigned int key;
+ void *data;
+} node;
+
+struct _xcb_map {
+ node *head;
+ node **tail;
+};
+
+/* Private interface */
+
+_xcb_map *_xcb_map_new()
+{
+ _xcb_map *list;
+ list = malloc(sizeof(_xcb_map));
+ if(!list)
+ return 0;
+ list->head = 0;
+ list->tail = &list->head;
+ return list;
+}
+
+void _xcb_map_delete(_xcb_map *list, xcb_list_free_func_t do_free)
+{
+ if(!list)
+ return;
+ while(list->head)
+ {
+ node *cur = list->head;
+ if(do_free)
+ do_free(cur->data);
+ list->head = cur->next;
+ free(cur);
+ }
+ free(list);
+}
+
+int _xcb_map_put(_xcb_map *list, unsigned int key, void *data)
+{
+ node *cur = malloc(sizeof(node));
+ if(!cur)
+ return 0;
+ cur->key = key;
+ cur->data = data;
+ cur->next = 0;
+ *list->tail = cur;
+ list->tail = &cur->next;
+ return 1;
+}
+
+void *_xcb_map_remove(_xcb_map *list, unsigned int key)
+{
+ node **cur;
+ for(cur = &list->head; *cur; cur = &(*cur)->next)
+ if((*cur)->key == key)
+ {
+ node *tmp = *cur;
+ void *ret = (*cur)->data;
+ *cur = (*cur)->next;
+ if(!*cur)
+ list->tail = cur;
+
+ free(tmp);
+ return ret;
+ }
+ return 0;
+}
diff --git a/libxcb/src/xcb_xid.c b/libxcb/src/xcb_xid.c
index b0de73f21..e32306157 100644
--- a/libxcb/src/xcb_xid.c
+++ b/libxcb/src/xcb_xid.c
@@ -1,99 +1,99 @@
-/* Copyright (C) 2001-2008 Bart Massey and Jamey Sharp.
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * 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
- * AUTHORS 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.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions 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 authors.
- */
-
-/* XID allocators. */
-
-#include <assert.h>
-#include <stdlib.h>
-#include "xcb.h"
-#include "xcbext.h"
-#include "xcbint.h"
-#include "xc_misc.h"
-
-/* Public interface */
-
-uint32_t xcb_generate_id(xcb_connection_t *c)
-{
- uint32_t ret;
- if(c->has_error)
- return -1;
- pthread_mutex_lock(&c->xid.lock);
- if(c->xid.last >= c->xid.max - c->xid.inc + 1)
- {
- xcb_xc_misc_get_xid_range_reply_t *range;
- assert(c->xid.last == c->xid.max);
- if (c->xid.last == 0) {
- /* finish setting up initial range */
- c->xid.max = c->setup->resource_id_mask;
- } else {
- /* check for extension */
- const xcb_query_extension_reply_t *xc_misc_reply =
- xcb_get_extension_data(c, &xcb_xc_misc_id);
- if (!xc_misc_reply) {
- pthread_mutex_unlock(&c->xid.lock);
- return -1;
- }
- /* get new range */
- range = xcb_xc_misc_get_xid_range_reply(c,
- xcb_xc_misc_get_xid_range(c), 0);
- /* XXX The latter disjunct is what the server returns
- when it is out of XIDs. Sweet. */
- if(!range || (range->start_id == 0 && range->count == 1))
- {
- pthread_mutex_unlock(&c->xid.lock);
- return -1;
- }
- assert(range->count > 0 && range->start_id > 0);
- c->xid.last = range->start_id;
- c->xid.max = range->start_id + (range->count - 1) * c->xid.inc;
- free(range);
- }
- } else {
- c->xid.last += c->xid.inc;
- }
- ret = c->xid.last | c->xid.base;
- pthread_mutex_unlock(&c->xid.lock);
- return ret;
-}
-
-/* Private interface */
-
-int _xcb_xid_init(xcb_connection_t *c)
-{
- if(pthread_mutex_init(&c->xid.lock, 0))
- return 0;
- c->xid.last = 0;
- c->xid.max = 0;
- c->xid.base = c->setup->resource_id_base;
- c->xid.inc = c->setup->resource_id_mask & -(c->setup->resource_id_mask);
- return 1;
-}
-
-void _xcb_xid_destroy(xcb_connection_t *c)
-{
- if (!c->xid.lock)
- return; /* mutex was not initialised yet */
- pthread_mutex_destroy(&c->xid.lock);
-}
+/* Copyright (C) 2001-2008 Bart Massey and Jamey Sharp.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * 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
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions 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 authors.
+ */
+
+/* XID allocators. */
+
+#include <assert.h>
+#include <stdlib.h>
+#include "xcb.h"
+#include "xcbext.h"
+#include "xcbint.h"
+#include "xc_misc.h"
+
+/* Public interface */
+
+uint32_t xcb_generate_id(xcb_connection_t *c)
+{
+ uint32_t ret;
+ if(c->has_error)
+ return -1;
+ pthread_mutex_lock(&c->xid.lock);
+ if(c->xid.last >= c->xid.max - c->xid.inc + 1)
+ {
+ xcb_xc_misc_get_xid_range_reply_t *range;
+ assert(c->xid.last == c->xid.max);
+ if (c->xid.last == 0) {
+ /* finish setting up initial range */
+ c->xid.max = c->setup->resource_id_mask;
+ } else {
+ /* check for extension */
+ const xcb_query_extension_reply_t *xc_misc_reply =
+ xcb_get_extension_data(c, &xcb_xc_misc_id);
+ if (!xc_misc_reply) {
+ pthread_mutex_unlock(&c->xid.lock);
+ return -1;
+ }
+ /* get new range */
+ range = xcb_xc_misc_get_xid_range_reply(c,
+ xcb_xc_misc_get_xid_range(c), 0);
+ /* XXX The latter disjunct is what the server returns
+ when it is out of XIDs. Sweet. */
+ if(!range || (range->start_id == 0 && range->count == 1))
+ {
+ pthread_mutex_unlock(&c->xid.lock);
+ return -1;
+ }
+ assert(range->count > 0 && range->start_id > 0);
+ c->xid.last = range->start_id;
+ c->xid.max = range->start_id + (range->count - 1) * c->xid.inc;
+ free(range);
+ }
+ } else {
+ c->xid.last += c->xid.inc;
+ }
+ ret = c->xid.last | c->xid.base;
+ pthread_mutex_unlock(&c->xid.lock);
+ return ret;
+}
+
+/* Private interface */
+
+int _xcb_xid_init(xcb_connection_t *c)
+{
+ if(pthread_mutex_init(&c->xid.lock, 0))
+ return 0;
+ c->xid.last = 0;
+ c->xid.max = 0;
+ c->xid.base = c->setup->resource_id_base;
+ c->xid.inc = c->setup->resource_id_mask & -(c->setup->resource_id_mask);
+ return 1;
+}
+
+void _xcb_xid_destroy(xcb_connection_t *c)
+{
+ if (!c->xid.lock)
+ return; /* mutex was not initialised yet */
+ pthread_mutex_destroy(&c->xid.lock);
+}
diff --git a/libxcb/src/xcbext.h b/libxcb/src/xcbext.h
index 1c2ab2236..98b3c93c1 100644
--- a/libxcb/src/xcbext.h
+++ b/libxcb/src/xcbext.h
@@ -1,102 +1,102 @@
-/*
- * Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
- * All Rights Reserved.
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * 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
- * AUTHORS 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.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions 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 authors.
- */
-
-#ifndef __XCBEXT_H
-#define __XCBEXT_H
-
-#include "xcb.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* xcb_ext.c */
-
-struct xcb_extension_t {
- const char *name;
- int global_id;
-};
-
-
-/* xcb_out.c */
-
-typedef struct {
- size_t count;
- xcb_extension_t *ext;
- uint8_t opcode;
- uint8_t isvoid;
-} xcb_protocol_request_t;
-
-enum xcb_send_request_flags_t {
- XCB_REQUEST_CHECKED = 1 << 0,
- XCB_REQUEST_RAW = 1 << 1,
- XCB_REQUEST_DISCARD_REPLY = 1 << 2
-};
-
-unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
-
-/* xcb_take_socket allows external code to ask XCB for permission to
- * take over the write side of the socket and send raw data with
- * xcb_writev. xcb_take_socket provides the sequence number of the last
- * request XCB sent. The caller of xcb_take_socket must supply a
- * callback which XCB can call when it wants the write side of the
- * socket back to make a request. This callback synchronizes with the
- * external socket owner and flushes any output queues if appropriate.
- * If you are sending requests which won't cause a reply, please note the
- * comment for xcb_writev which explains some sequence number wrap issues.
- * */
-int xcb_take_socket(xcb_connection_t *c, void (*return_socket)(void *closure), void *closure, int flags, uint64_t *sent);
-
-/* You must own the write-side of the socket (you've called
- * xcb_take_socket, and haven't returned from return_socket yet) to call
- * xcb_writev. Also, the iovec must have at least 1 byte of data in it.
- * You have to make sure that xcb can detect sequence number wraps correctly.
- * This means that the first request you send after xcb_take_socket must cause a
- * reply (e.g. just insert a GetInputFocus request). After every (1 << 16) - 1
- * requests without a reply, you have to insert a request which will cause a
- * reply. You can again use GetInputFocus for this. You do not have to wait for
- * any of the GetInputFocus replies, but can instead handle them via
- * xcb_discard_reply(). */
-int xcb_writev(xcb_connection_t *c, struct iovec *vector, int count, uint64_t requests);
-
-
-/* xcb_in.c */
-
-void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e);
-int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error);
-
-
-/* xcb_util.c */
-
-int xcb_popcount(uint32_t mask);
-int xcb_sumof(uint8_t *list, int len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+/*
+ * Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ * All Rights Reserved.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * 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
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions 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 authors.
+ */
+
+#ifndef __XCBEXT_H
+#define __XCBEXT_H
+
+#include "xcb.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* xcb_ext.c */
+
+struct xcb_extension_t {
+ const char *name;
+ int global_id;
+};
+
+
+/* xcb_out.c */
+
+typedef struct {
+ size_t count;
+ xcb_extension_t *ext;
+ uint8_t opcode;
+ uint8_t isvoid;
+} xcb_protocol_request_t;
+
+enum xcb_send_request_flags_t {
+ XCB_REQUEST_CHECKED = 1 << 0,
+ XCB_REQUEST_RAW = 1 << 1,
+ XCB_REQUEST_DISCARD_REPLY = 1 << 2
+};
+
+unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
+
+/* xcb_take_socket allows external code to ask XCB for permission to
+ * take over the write side of the socket and send raw data with
+ * xcb_writev. xcb_take_socket provides the sequence number of the last
+ * request XCB sent. The caller of xcb_take_socket must supply a
+ * callback which XCB can call when it wants the write side of the
+ * socket back to make a request. This callback synchronizes with the
+ * external socket owner and flushes any output queues if appropriate.
+ * If you are sending requests which won't cause a reply, please note the
+ * comment for xcb_writev which explains some sequence number wrap issues.
+ * */
+int xcb_take_socket(xcb_connection_t *c, void (*return_socket)(void *closure), void *closure, int flags, uint64_t *sent);
+
+/* You must own the write-side of the socket (you've called
+ * xcb_take_socket, and haven't returned from return_socket yet) to call
+ * xcb_writev. Also, the iovec must have at least 1 byte of data in it.
+ * You have to make sure that xcb can detect sequence number wraps correctly.
+ * This means that the first request you send after xcb_take_socket must cause a
+ * reply (e.g. just insert a GetInputFocus request). After every (1 << 16) - 1
+ * requests without a reply, you have to insert a request which will cause a
+ * reply. You can again use GetInputFocus for this. You do not have to wait for
+ * any of the GetInputFocus replies, but can instead handle them via
+ * xcb_discard_reply(). */
+int xcb_writev(xcb_connection_t *c, struct iovec *vector, int count, uint64_t requests);
+
+
+/* xcb_in.c */
+
+void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e);
+int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error);
+
+
+/* xcb_util.c */
+
+int xcb_popcount(uint32_t mask);
+int xcb_sumof(uint8_t *list, int len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/libxcb/tests/.gitignore b/libxcb/tests/.gitignore
new file mode 100644
index 000000000..58b019a02
--- /dev/null
+++ b/libxcb/tests/.gitignore
@@ -0,0 +1,3 @@
+CheckLog.html
+CheckLog_xcb.xml
+check_all
diff --git a/libxcb/tests/CheckLog.xsl b/libxcb/tests/CheckLog.xsl
index 3daebaa5d..75b14e694 100644
--- a/libxcb/tests/CheckLog.xsl
+++ b/libxcb/tests/CheckLog.xsl
@@ -1,104 +1,104 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<xsl:stylesheet
- version="1.0"
- xmlns:check="http://check.sourceforge.net/ns"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/TR/REC-html40">
-
-<xsl:output method="html"/>
-
-<xsl:template match="/">
-<html>
- <head>
- <title>Test Suite Results</title>
- </head>
-
- <body>
- <xsl:apply-templates/>
- </body>
-</html>
-</xsl:template>
-
-<xsl:template match="datetime">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="duration">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="check:suite">
- <xsl:apply-templates select="check:title"/>
- <center>
- <table width="80%" border="1">
- <thead>
- <tr>
- <td>Test Path</td>
- <td>Test Function Location</td>
- <td>C Identifier</td>
- <td>Test Case</td>
- <td>Result</td>
- </tr>
- </thead>
- <tbody>
- <xsl:apply-templates select="check:test"/>
- </tbody>
- </table>
- </center>
-</xsl:template>
-
-<xsl:template match="check:testsuites">
- <xsl:apply-templates select="check:suite"/>
- <h3>Unit Test Statistics</h3>
- <ul>
- <li>date/time: <xsl:apply-templates select="check:datetime"/></li>
- <li>duration: <xsl:apply-templates select="check:duration"/></li>
- </ul>
- <hr></hr>
-</xsl:template>
-
-<xsl:template match="check:title">
- <h2>Test Suite: <xsl:apply-templates/></h2>
-</xsl:template>
-
-<xsl:template match="check:test[@result='success']">
- <tr bgcolor="lime">
- <xsl:apply-templates/>
- </tr>
-</xsl:template>
-
-<xsl:template match="check:test[@result='failure']">
- <tr bgcolor="red">
- <xsl:apply-templates/>
- </tr>
-</xsl:template>
-
-<xsl:template match="check:test[@result='error']">
- <tr bgcolor="yellow">
- <xsl:apply-templates/>
- </tr>
-</xsl:template>
-
-<xsl:template match="check:path">
- <td><xsl:apply-templates/></td>
-</xsl:template>
-
-<xsl:template match="check:fn">
- <td><xsl:apply-templates/></td>
-</xsl:template>
-
-<xsl:template match="check:id">
- <td><xsl:apply-templates/></td>
-</xsl:template>
-
-<xsl:template match="check:description">
- <td><xsl:apply-templates/></td>
-</xsl:template>
-
-<xsl:template match="check:message">
- <td><xsl:apply-templates/></td>
-</xsl:template>
-
-</xsl:stylesheet>
-
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns:check="http://check.sourceforge.net/ns"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+<xsl:output method="html"/>
+
+<xsl:template match="/">
+<html>
+ <head>
+ <title>Test Suite Results</title>
+ </head>
+
+ <body>
+ <xsl:apply-templates/>
+ </body>
+</html>
+</xsl:template>
+
+<xsl:template match="datetime">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="duration">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="check:suite">
+ <xsl:apply-templates select="check:title"/>
+ <center>
+ <table width="80%" border="1">
+ <thead>
+ <tr>
+ <td>Test Path</td>
+ <td>Test Function Location</td>
+ <td>C Identifier</td>
+ <td>Test Case</td>
+ <td>Result</td>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:apply-templates select="check:test"/>
+ </tbody>
+ </table>
+ </center>
+</xsl:template>
+
+<xsl:template match="check:testsuites">
+ <xsl:apply-templates select="check:suite"/>
+ <h3>Unit Test Statistics</h3>
+ <ul>
+ <li>date/time: <xsl:apply-templates select="check:datetime"/></li>
+ <li>duration: <xsl:apply-templates select="check:duration"/></li>
+ </ul>
+ <hr></hr>
+</xsl:template>
+
+<xsl:template match="check:title">
+ <h2>Test Suite: <xsl:apply-templates/></h2>
+</xsl:template>
+
+<xsl:template match="check:test[@result='success']">
+ <tr bgcolor="lime">
+ <xsl:apply-templates/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="check:test[@result='failure']">
+ <tr bgcolor="red">
+ <xsl:apply-templates/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="check:test[@result='error']">
+ <tr bgcolor="yellow">
+ <xsl:apply-templates/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="check:path">
+ <td><xsl:apply-templates/></td>
+</xsl:template>
+
+<xsl:template match="check:fn">
+ <td><xsl:apply-templates/></td>
+</xsl:template>
+
+<xsl:template match="check:id">
+ <td><xsl:apply-templates/></td>
+</xsl:template>
+
+<xsl:template match="check:description">
+ <td><xsl:apply-templates/></td>
+</xsl:template>
+
+<xsl:template match="check:message">
+ <td><xsl:apply-templates/></td>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libxcb/tests/Makefile.am b/libxcb/tests/Makefile.am
index 077681e51..93fd03d9b 100644
--- a/libxcb/tests/Makefile.am
+++ b/libxcb/tests/Makefile.am
@@ -1,32 +1,32 @@
-########################
-## tests/Makefile.am
-########################
-SUBDIRS =
-EXTRA_DIST = CheckLog.xsl
-AM_MAKEFLAGS = -k
-AM_CFLAGS = -Wall -Werror @CHECK_CFLAGS@ -I$(top_srcdir)/src
-LDADD = @CHECK_LIBS@ $(top_builddir)/src/libxcb.la
-
-if HAVE_CHECK
-TESTS = check_all
-check_PROGRAMS = check_all
-check_all_SOURCES = check_all.c check_suites.h check_public.c
-
-all-local::
- $(RM) CheckLog*.xml
-
-check-local: check-TESTS
- $(RM) CheckLog.html
- if test x$(HTML_CHECK_RESULT) = xtrue; then \
- $(XSLTPROC) $(srcdir)/CheckLog.xsl CheckLog*.xml > CheckLog.html; \
- else \
- touch CheckLog.html; \
- fi
-
-CheckLog.html: $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check;
-
-endif
-
-clean-local::
- $(RM) CheckLog.html CheckLog*.txt CheckLog*.xml
+########################
+## tests/Makefile.am
+########################
+SUBDIRS =
+EXTRA_DIST = CheckLog.xsl
+AM_MAKEFLAGS = -k
+AM_CFLAGS = -Wall -Werror @CHECK_CFLAGS@ -I$(top_srcdir)/src
+LDADD = @CHECK_LIBS@ $(top_builddir)/src/libxcb.la
+
+if HAVE_CHECK
+TESTS = check_all
+check_PROGRAMS = check_all
+check_all_SOURCES = check_all.c check_suites.h check_public.c
+
+all-local::
+ $(RM) CheckLog*.xml
+
+check-local: check-TESTS
+ $(RM) CheckLog.html
+ if test x$(HTML_CHECK_RESULT) = xtrue; then \
+ $(XSLTPROC) $(srcdir)/CheckLog.xsl CheckLog*.xml > CheckLog.html; \
+ else \
+ touch CheckLog.html; \
+ fi
+
+CheckLog.html: $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check;
+
+endif
+
+clean-local::
+ $(RM) CheckLog.html CheckLog*.txt CheckLog*.xml
diff --git a/libxcb/tests/check_all.c b/libxcb/tests/check_all.c
index 4393422e3..8c7887dd9 100644
--- a/libxcb/tests/check_all.c
+++ b/libxcb/tests/check_all.c
@@ -1,20 +1,20 @@
-#include <stdlib.h>
-#include "check_suites.h"
-
-void suite_add_test(Suite *s, TFun tf, const char *name)
-{
- TCase *tc = tcase_create(name);
- tcase_add_test(tc, tf);
- suite_add_tcase(s, tc);
-}
-
-int main(void)
-{
- int nf;
- SRunner *sr = srunner_create(public_suite());
- srunner_set_xml(sr, "CheckLog_xcb.xml");
- srunner_run_all(sr, CK_NORMAL);
- nf = srunner_ntests_failed(sr);
- srunner_free(sr);
- return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
+#include <stdlib.h>
+#include "check_suites.h"
+
+void suite_add_test(Suite *s, TFun tf, const char *name)
+{
+ TCase *tc = tcase_create(name);
+ tcase_add_test(tc, tf);
+ suite_add_tcase(s, tc);
+}
+
+int main(void)
+{
+ int nf;
+ SRunner *sr = srunner_create(public_suite());
+ srunner_set_xml(sr, "CheckLog_xcb.xml");
+ srunner_run_all(sr, CK_NORMAL);
+ nf = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/libxcb/tests/check_public.c b/libxcb/tests/check_public.c
index 2094bfef1..c77c6917d 100644
--- a/libxcb/tests/check_public.c
+++ b/libxcb/tests/check_public.c
@@ -1,218 +1,218 @@
-#include <check.h>
-#include <string.h>
-#include <stdlib.h>
-#include "check_suites.h"
-#include "xcb.h"
-#include "xcbext.h"
-
-/* xcb_parse_display tests {{{ */
-
-typedef enum test_type_t {
- TEST_ARGUMENT, TEST_ENVIRONMENT, TEST_END
-} test_type_t;
-static const char *const test_string[] = { "", "via $DISPLAY " };
-
-static void parse_display_pass(const char *name, const char *host, const int display, const int screen)
-{
- int success;
- char *got_host;
- int got_display, got_screen;
- const char *argument = 0;
- test_type_t test_type;
-
- for(test_type = TEST_ARGUMENT; test_type != TEST_END; test_type++)
- {
- if(test_type == TEST_ARGUMENT)
- {
- argument = name;
- putenv("DISPLAY=");
- }
- else if(test_type == TEST_ENVIRONMENT)
- {
- argument = 0;
- setenv("DISPLAY", name, 1);
- }
-
- got_host = (char *) -1;
- got_display = got_screen = -42;
- mark_point();
- success = xcb_parse_display(argument, &got_host, &got_display, &got_screen);
- fail_unless(success, "unexpected parse failure %sfor '%s'", test_string[test_type], name);
- fail_unless(strcmp(host, got_host) == 0, "parse %sproduced unexpected hostname '%s' for '%s': expected '%s'", test_string[test_type], got_host, name, host);
- fail_unless(display == got_display, "parse %sproduced unexpected display '%d' for '%s': expected '%d'", test_string[test_type], got_display, name, display);
- fail_unless(screen == got_screen, "parse %sproduced unexpected screen '%d' for '%s': expected '%d'", test_string[test_type], got_screen, name, screen);
-
- got_host = (char *) -1;
- got_display = got_screen = -42;
- mark_point();
- success = xcb_parse_display(argument, &got_host, &got_display, 0);
- fail_unless(success, "unexpected screenless parse failure %sfor '%s'", test_string[test_type], name);
- fail_unless(strcmp(host, got_host) == 0, "screenless parse %sproduced unexpected hostname '%s' for '%s': expected '%s'", test_string[test_type], got_host, name, host);
- fail_unless(display == got_display, "screenless parse %sproduced unexpected display '%d' for '%s': expected '%d'", test_string[test_type], got_display, name, display);
- }
- putenv("DISPLAY=");
-}
-
-static void parse_display_fail(const char *name)
-{
- int success;
- char *got_host;
- int got_display, got_screen;
- const char *argument = 0;
- test_type_t test_type;
-
- for(test_type = TEST_ARGUMENT; test_type != TEST_END; test_type++)
- {
- if(test_type == TEST_ARGUMENT)
- {
- argument = name;
- putenv("DISPLAY=");
- }
- else if(test_type == TEST_ENVIRONMENT)
- {
- if (!name) break;
- argument = 0;
- setenv("DISPLAY", name, 1);
- }
-
- got_host = (char *) -1;
- got_display = got_screen = -42;
- mark_point();
- success = xcb_parse_display(argument, &got_host, &got_display, &got_screen);
- fail_unless(!success, "unexpected parse success %sfor '%s'", test_string[test_type], name);
- fail_unless(got_host == (char *) -1, "host changed on parse failure %sfor '%s': got %p", test_string[test_type], name, got_host);
- fail_unless(got_display == -42, "display changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_display);
- fail_unless(got_screen == -42, "screen changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_screen);
-
- got_host = (char *) -1;
- got_display = got_screen = -42;
- mark_point();
- success = xcb_parse_display(argument, &got_host, &got_display, 0);
- fail_unless(!success, "unexpected screenless parse success %sfor '%s'", test_string[test_type], name);
- fail_unless(got_host == (char *) -1, "host changed on parse failure %sfor '%s': got %p", test_string[test_type], name, got_host);
- fail_unless(got_display == -42, "display changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_display);
- }
- putenv("DISPLAY=");
-}
-
-START_TEST(parse_display_unix)
-{
- parse_display_pass(":0", "", 0, 0);
- parse_display_pass(":1", "", 1, 0);
- parse_display_pass(":0.1", "", 0, 1);
-}
-END_TEST
-
-START_TEST(parse_display_ip)
-{
- parse_display_pass("x.org:0", "x.org", 0, 0);
- parse_display_pass("expo:0", "expo", 0, 0);
- parse_display_pass("bigmachine:1", "bigmachine", 1, 0);
- parse_display_pass("hydra:0.1", "hydra", 0, 1);
-}
-END_TEST
-
-START_TEST(parse_display_ipv4)
-{
- parse_display_pass("198.112.45.11:0", "198.112.45.11", 0, 0);
- parse_display_pass("198.112.45.11:0.1", "198.112.45.11", 0, 1);
-}
-END_TEST
-
-START_TEST(parse_display_ipv6)
-{
- parse_display_pass(":::0", "::", 0, 0);
- parse_display_pass("1:::0", "1::", 0, 0);
- parse_display_pass("::1:0", "::1", 0, 0);
- parse_display_pass("::1:0.1", "::1", 0, 1);
- parse_display_pass("::127.0.0.1:0", "::127.0.0.1", 0, 0);
- parse_display_pass("::ffff:127.0.0.1:0", "::ffff:127.0.0.1", 0, 0);
- parse_display_pass("2002:83fc:d052::1:0", "2002:83fc:d052::1", 0, 0);
- parse_display_pass("2002:83fc:d052::1:0.1", "2002:83fc:d052::1", 0, 1);
- parse_display_pass("[::]:0", "[::]", 0, 0);
- parse_display_pass("[1::]:0", "[1::]", 0, 0);
- parse_display_pass("[::1]:0", "[::1]", 0, 0);
- parse_display_pass("[::1]:0.1", "[::1]", 0, 1);
- parse_display_pass("[::127.0.0.1]:0", "[::127.0.0.1]", 0, 0);
- parse_display_pass("[::ffff:127.0.0.1]:0", "[::ffff:127.0.0.1]", 0, 0);
- parse_display_pass("[2002:83fc:d052::1]:0", "[2002:83fc:d052::1]", 0, 0);
- parse_display_pass("[2002:83fc:d052::1]:0.1", "[2002:83fc:d052::1]", 0, 1);
-}
-END_TEST
-
-START_TEST(parse_display_decnet)
-{
- parse_display_pass("myws::0", "myws:", 0, 0);
- parse_display_pass("big::1", "big:", 1, 0);
- parse_display_pass("hydra::0.1", "hydra:", 0, 1);
-}
-END_TEST
-
-START_TEST(parse_display_negative)
-{
- parse_display_fail(0);
- parse_display_fail("");
- parse_display_fail(":");
- parse_display_fail("::");
- parse_display_fail(":::");
- parse_display_fail(":.");
- parse_display_fail(":a");
- parse_display_fail(":a.");
- parse_display_fail(":0.");
- parse_display_fail(":.a");
- parse_display_fail(":.0");
- parse_display_fail(":0.a");
- parse_display_fail(":0.0.");
-
- parse_display_fail("127.0.0.1");
- parse_display_fail("127.0.0.1:");
- parse_display_fail("127.0.0.1::");
- parse_display_fail("::127.0.0.1");
- parse_display_fail("::127.0.0.1:");
- parse_display_fail("::127.0.0.1::");
- parse_display_fail("::ffff:127.0.0.1");
- parse_display_fail("::ffff:127.0.0.1:");
- parse_display_fail("::ffff:127.0.0.1::");
- parse_display_fail("localhost");
- parse_display_fail("localhost:");
- parse_display_fail("localhost::");
-}
-END_TEST
-
-/* }}} */
-
-static void popcount_eq(uint32_t bits, int count)
-{
- fail_unless(xcb_popcount(bits) == count, "unexpected popcount(%08x) != %d", bits, count);
-}
-
-START_TEST(popcount)
-{
- uint32_t mask;
- int count;
-
- for (mask = 0xffffffff, count = 32; count >= 0; mask >>= 1, --count) {
- popcount_eq(mask, count);
- }
- for (mask = 0x80000000; mask; mask >>= 1) {
- popcount_eq(mask, 1);
- }
- for (mask = 0x80000000; mask > 1; mask >>= 1) {
- popcount_eq(mask | 1, 2);
- }
-}
-END_TEST
-
-Suite *public_suite(void)
-{
- Suite *s = suite_create("Public API");
- putenv("DISPLAY=");
- suite_add_test(s, parse_display_unix, "xcb_parse_display unix");
- suite_add_test(s, parse_display_ip, "xcb_parse_display ip");
- suite_add_test(s, parse_display_ipv4, "xcb_parse_display ipv4");
- suite_add_test(s, parse_display_ipv6, "xcb_parse_display ipv6");
- suite_add_test(s, parse_display_decnet, "xcb_parse_display decnet");
- suite_add_test(s, parse_display_negative, "xcb_parse_display negative");
- suite_add_test(s, popcount, "xcb_popcount");
- return s;
-}
+#include <check.h>
+#include <string.h>
+#include <stdlib.h>
+#include "check_suites.h"
+#include "xcb.h"
+#include "xcbext.h"
+
+/* xcb_parse_display tests {{{ */
+
+typedef enum test_type_t {
+ TEST_ARGUMENT, TEST_ENVIRONMENT, TEST_END
+} test_type_t;
+static const char *const test_string[] = { "", "via $DISPLAY " };
+
+static void parse_display_pass(const char *name, const char *host, const int display, const int screen)
+{
+ int success;
+ char *got_host;
+ int got_display, got_screen;
+ const char *argument = 0;
+ test_type_t test_type;
+
+ for(test_type = TEST_ARGUMENT; test_type != TEST_END; test_type++)
+ {
+ if(test_type == TEST_ARGUMENT)
+ {
+ argument = name;
+ putenv("DISPLAY=");
+ }
+ else if(test_type == TEST_ENVIRONMENT)
+ {
+ argument = 0;
+ setenv("DISPLAY", name, 1);
+ }
+
+ got_host = (char *) -1;
+ got_display = got_screen = -42;
+ mark_point();
+ success = xcb_parse_display(argument, &got_host, &got_display, &got_screen);
+ fail_unless(success, "unexpected parse failure %sfor '%s'", test_string[test_type], name);
+ fail_unless(strcmp(host, got_host) == 0, "parse %sproduced unexpected hostname '%s' for '%s': expected '%s'", test_string[test_type], got_host, name, host);
+ fail_unless(display == got_display, "parse %sproduced unexpected display '%d' for '%s': expected '%d'", test_string[test_type], got_display, name, display);
+ fail_unless(screen == got_screen, "parse %sproduced unexpected screen '%d' for '%s': expected '%d'", test_string[test_type], got_screen, name, screen);
+
+ got_host = (char *) -1;
+ got_display = got_screen = -42;
+ mark_point();
+ success = xcb_parse_display(argument, &got_host, &got_display, 0);
+ fail_unless(success, "unexpected screenless parse failure %sfor '%s'", test_string[test_type], name);
+ fail_unless(strcmp(host, got_host) == 0, "screenless parse %sproduced unexpected hostname '%s' for '%s': expected '%s'", test_string[test_type], got_host, name, host);
+ fail_unless(display == got_display, "screenless parse %sproduced unexpected display '%d' for '%s': expected '%d'", test_string[test_type], got_display, name, display);
+ }
+ putenv("DISPLAY=");
+}
+
+static void parse_display_fail(const char *name)
+{
+ int success;
+ char *got_host;
+ int got_display, got_screen;
+ const char *argument = 0;
+ test_type_t test_type;
+
+ for(test_type = TEST_ARGUMENT; test_type != TEST_END; test_type++)
+ {
+ if(test_type == TEST_ARGUMENT)
+ {
+ argument = name;
+ putenv("DISPLAY=");
+ }
+ else if(test_type == TEST_ENVIRONMENT)
+ {
+ if (!name) break;
+ argument = 0;
+ setenv("DISPLAY", name, 1);
+ }
+
+ got_host = (char *) -1;
+ got_display = got_screen = -42;
+ mark_point();
+ success = xcb_parse_display(argument, &got_host, &got_display, &got_screen);
+ fail_unless(!success, "unexpected parse success %sfor '%s'", test_string[test_type], name);
+ fail_unless(got_host == (char *) -1, "host changed on parse failure %sfor '%s': got %p", test_string[test_type], name, got_host);
+ fail_unless(got_display == -42, "display changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_display);
+ fail_unless(got_screen == -42, "screen changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_screen);
+
+ got_host = (char *) -1;
+ got_display = got_screen = -42;
+ mark_point();
+ success = xcb_parse_display(argument, &got_host, &got_display, 0);
+ fail_unless(!success, "unexpected screenless parse success %sfor '%s'", test_string[test_type], name);
+ fail_unless(got_host == (char *) -1, "host changed on parse failure %sfor '%s': got %p", test_string[test_type], name, got_host);
+ fail_unless(got_display == -42, "display changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_display);
+ }
+ putenv("DISPLAY=");
+}
+
+START_TEST(parse_display_unix)
+{
+ parse_display_pass(":0", "", 0, 0);
+ parse_display_pass(":1", "", 1, 0);
+ parse_display_pass(":0.1", "", 0, 1);
+}
+END_TEST
+
+START_TEST(parse_display_ip)
+{
+ parse_display_pass("x.org:0", "x.org", 0, 0);
+ parse_display_pass("expo:0", "expo", 0, 0);
+ parse_display_pass("bigmachine:1", "bigmachine", 1, 0);
+ parse_display_pass("hydra:0.1", "hydra", 0, 1);
+}
+END_TEST
+
+START_TEST(parse_display_ipv4)
+{
+ parse_display_pass("198.112.45.11:0", "198.112.45.11", 0, 0);
+ parse_display_pass("198.112.45.11:0.1", "198.112.45.11", 0, 1);
+}
+END_TEST
+
+START_TEST(parse_display_ipv6)
+{
+ parse_display_pass(":::0", "::", 0, 0);
+ parse_display_pass("1:::0", "1::", 0, 0);
+ parse_display_pass("::1:0", "::1", 0, 0);
+ parse_display_pass("::1:0.1", "::1", 0, 1);
+ parse_display_pass("::127.0.0.1:0", "::127.0.0.1", 0, 0);
+ parse_display_pass("::ffff:127.0.0.1:0", "::ffff:127.0.0.1", 0, 0);
+ parse_display_pass("2002:83fc:d052::1:0", "2002:83fc:d052::1", 0, 0);
+ parse_display_pass("2002:83fc:d052::1:0.1", "2002:83fc:d052::1", 0, 1);
+ parse_display_pass("[::]:0", "[::]", 0, 0);
+ parse_display_pass("[1::]:0", "[1::]", 0, 0);
+ parse_display_pass("[::1]:0", "[::1]", 0, 0);
+ parse_display_pass("[::1]:0.1", "[::1]", 0, 1);
+ parse_display_pass("[::127.0.0.1]:0", "[::127.0.0.1]", 0, 0);
+ parse_display_pass("[::ffff:127.0.0.1]:0", "[::ffff:127.0.0.1]", 0, 0);
+ parse_display_pass("[2002:83fc:d052::1]:0", "[2002:83fc:d052::1]", 0, 0);
+ parse_display_pass("[2002:83fc:d052::1]:0.1", "[2002:83fc:d052::1]", 0, 1);
+}
+END_TEST
+
+START_TEST(parse_display_decnet)
+{
+ parse_display_pass("myws::0", "myws:", 0, 0);
+ parse_display_pass("big::1", "big:", 1, 0);
+ parse_display_pass("hydra::0.1", "hydra:", 0, 1);
+}
+END_TEST
+
+START_TEST(parse_display_negative)
+{
+ parse_display_fail(0);
+ parse_display_fail("");
+ parse_display_fail(":");
+ parse_display_fail("::");
+ parse_display_fail(":::");
+ parse_display_fail(":.");
+ parse_display_fail(":a");
+ parse_display_fail(":a.");
+ parse_display_fail(":0.");
+ parse_display_fail(":.a");
+ parse_display_fail(":.0");
+ parse_display_fail(":0.a");
+ parse_display_fail(":0.0.");
+
+ parse_display_fail("127.0.0.1");
+ parse_display_fail("127.0.0.1:");
+ parse_display_fail("127.0.0.1::");
+ parse_display_fail("::127.0.0.1");
+ parse_display_fail("::127.0.0.1:");
+ parse_display_fail("::127.0.0.1::");
+ parse_display_fail("::ffff:127.0.0.1");
+ parse_display_fail("::ffff:127.0.0.1:");
+ parse_display_fail("::ffff:127.0.0.1::");
+ parse_display_fail("localhost");
+ parse_display_fail("localhost:");
+ parse_display_fail("localhost::");
+}
+END_TEST
+
+/* }}} */
+
+static void popcount_eq(uint32_t bits, int count)
+{
+ fail_unless(xcb_popcount(bits) == count, "unexpected popcount(%08x) != %d", bits, count);
+}
+
+START_TEST(popcount)
+{
+ uint32_t mask;
+ int count;
+
+ for (mask = 0xffffffff, count = 32; count >= 0; mask >>= 1, --count) {
+ popcount_eq(mask, count);
+ }
+ for (mask = 0x80000000; mask; mask >>= 1) {
+ popcount_eq(mask, 1);
+ }
+ for (mask = 0x80000000; mask > 1; mask >>= 1) {
+ popcount_eq(mask | 1, 2);
+ }
+}
+END_TEST
+
+Suite *public_suite(void)
+{
+ Suite *s = suite_create("Public API");
+ putenv("DISPLAY=");
+ suite_add_test(s, parse_display_unix, "xcb_parse_display unix");
+ suite_add_test(s, parse_display_ip, "xcb_parse_display ip");
+ suite_add_test(s, parse_display_ipv4, "xcb_parse_display ipv4");
+ suite_add_test(s, parse_display_ipv6, "xcb_parse_display ipv6");
+ suite_add_test(s, parse_display_decnet, "xcb_parse_display decnet");
+ suite_add_test(s, parse_display_negative, "xcb_parse_display negative");
+ suite_add_test(s, popcount, "xcb_popcount");
+ return s;
+}
diff --git a/libxcb/tests/check_suites.h b/libxcb/tests/check_suites.h
index 499f1afaf..9eaf04293 100644
--- a/libxcb/tests/check_suites.h
+++ b/libxcb/tests/check_suites.h
@@ -1,4 +1,4 @@
-#include <check.h>
-
-void suite_add_test(Suite *s, TFun tf, const char *name);
-Suite *public_suite(void);
+#include <check.h>
+
+void suite_add_test(Suite *s, TFun tf, const char *name);
+Suite *public_suite(void);
diff --git a/libxcb/tools/README b/libxcb/tools/README
index 2d1874e14..d9b5e09e5 100644
--- a/libxcb/tools/README
+++ b/libxcb/tools/README
@@ -1,17 +1,17 @@
-
-api_conv.pl:
-------------
-
- Description: used to convert old XCB names in camel case to lower
- case names.
-
- Usage:
-
- * for several files:
-
-perl -i xcb/tools/api_conv.pl xcb/tools/constants <file1> <file2> ...
-
- * for a directory:
-
-find dir -name '*.[ch]' -exec perl -i xcb/tools/api_conv.pl xcb/tools/constants {} +
-
+
+api_conv.pl:
+------------
+
+ Description: used to convert old XCB names in camel case to lower
+ case names.
+
+ Usage:
+
+ * for several files:
+
+perl -i xcb/tools/api_conv.pl xcb/tools/constants <file1> <file2> ...
+
+ * for a directory:
+
+find dir -name '*.[ch]' -exec perl -i xcb/tools/api_conv.pl xcb/tools/constants {} +
+
diff --git a/libxcb/tools/api_conv.pl b/libxcb/tools/api_conv.pl
index 5b3c18d15..8f3cfa8ce 100644
--- a/libxcb/tools/api_conv.pl
+++ b/libxcb/tools/api_conv.pl
@@ -1,98 +1,98 @@
-#!/usr/bin/perl -plw
-use strict;
-
-BEGIN {
- %::const = map { $_ => 1 } (
- # constants in xcb.h
- "XCBNone",
- "XCBCopyFromParent",
- "XCBCurrentTime",
- "XCBNoSymbol",
- "XCBError",
- "XCBReply",
- # renamed constants
- "XCBButtonAny",
- "XCBButton1",
- "XCBButton2",
- "XCBButton3",
- "XCBButton4",
- "XCBButton5",
- "XCBHostInsert",
- "XCBHostDelete",
- "XCBGlxGC_GL_CURRENT_BIT",
- "XCBGlxGC_GL_POINT_BIT",
- "XCBGlxGC_GL_LINE_BIT",
- "XCBGlxGC_GL_POLYGON_BIT",
- "XCBGlxGC_GL_POLYGON_STIPPLE_BIT",
- "XCBGlxGC_GL_PIXEL_MODE_BIT",
- "XCBGlxGC_GL_LIGHTING_BIT",
- "XCBGlxGC_GL_FOG_BIT",
- "XCBGlxGC_GL_DEPTH_BUFFER_BIT",
- "XCBGlxGC_GL_ACCUM_BUFFER_BIT",
- "XCBGlxGC_GL_STENCIL_BUFFER_BIT",
- "XCBGlxGC_GL_VIEWPORT_BIT",
- "XCBGlxGC_GL_TRANSFORM_BIT",
- "XCBGlxGC_GL_ENABLE_BIT",
- "XCBGlxGC_GL_COLOR_BUFFER_BIT",
- "XCBGlxGC_GL_HINT_BIT",
- "XCBGlxGC_GL_EVAL_BIT",
- "XCBGlxGC_GL_LIST_BIT",
- "XCBGlxGC_GL_TEXTURE_BIT",
- "XCBGlxGC_GL_SCISSOR_BIT",
- "XCBGlxGC_GL_ALL_ATTRIB_BITS",
- "XCBGlxRM_GL_RENDER",
- "XCBGlxRM_GL_FEEDBACK",
- "XCBGlxRM_GL_SELECT",
- );
- open(CONST, shift) or die "failed to open constants list: $!";
- while(<CONST>)
- {
- chomp;
- die "invalid constant name: \"$_\"" unless /^XCB[A-Za-z0-9_]*$/;
- $::const{$_} = 1;
- }
- close(CONST);
-}
-
-sub convert($$)
-{
- local $_ = shift;
- my ($fun) = @_;
-
- return "xcb_generate_id" if /^xcb_[a-z0-9_]+_new$/ or /^XCB[A-Z0-9]+New$/;
- return "uint$1_t" if /^CARD(8|16|32)$/;
- return "int$1_t" if /^INT(8|16|32)$/;
- return "uint8_t" if $_ eq 'BOOL' or $_ eq 'BYTE';
- return $_ if /^[A-Z0-9]*_[A-Z0-9_]*$/ or !/^XCB(.+)/;
- my $const = defined $::const{$_};
- $_ = $1;
-
- s/^(GX|RandR|XFixes|XP|XvMC|ScreenSaver)(.)/uc($1) . "_" . $2/e unless /^ScreenSaver(?:Reset|Active)$/;
-
- my %abbr = (
- "Iter" => "iterator",
- "Req" => "request",
- "Rep" => "reply",
- );
-
- my $word;
- if(/CHAR2B|INT64|FLOAT32|FLOAT64|BOOL32|STRING8/)
- {
- $word = qr/[A-Z](?:[A-Z0-9]*|[a-z]*)/;
- } else {
- $word = qr/[0-9]+|[A-Z](?:[A-Z]*|[a-z]*)/;
- }
- s/($word)_?(?=[0-9A-Z]|$)/"_" . ($abbr{$1} or lc($1))/eg;
-
- s/^_shape_shape_/_shape_/;
- s/^_xf_?86_dri/_xf86dri/;
- $_ = "_family_decnet" if $_ eq "_family_de_cnet";
- return "XCB" . uc($_) if $const;
-
- $_ .= "_t" unless $fun or /_id$/;
-
- return "xcb" . $_;
-}
-
-s/^(\s*#\s*include\s*<)X11\/XCB\//$1xcb\//;
-s/([_A-Za-z][_A-Za-z0-9]*)([ \t]*\()?/convert($1, defined $2) . ($2 or "")/eg;
+#!/usr/bin/perl -plw
+use strict;
+
+BEGIN {
+ %::const = map { $_ => 1 } (
+ # constants in xcb.h
+ "XCBNone",
+ "XCBCopyFromParent",
+ "XCBCurrentTime",
+ "XCBNoSymbol",
+ "XCBError",
+ "XCBReply",
+ # renamed constants
+ "XCBButtonAny",
+ "XCBButton1",
+ "XCBButton2",
+ "XCBButton3",
+ "XCBButton4",
+ "XCBButton5",
+ "XCBHostInsert",
+ "XCBHostDelete",
+ "XCBGlxGC_GL_CURRENT_BIT",
+ "XCBGlxGC_GL_POINT_BIT",
+ "XCBGlxGC_GL_LINE_BIT",
+ "XCBGlxGC_GL_POLYGON_BIT",
+ "XCBGlxGC_GL_POLYGON_STIPPLE_BIT",
+ "XCBGlxGC_GL_PIXEL_MODE_BIT",
+ "XCBGlxGC_GL_LIGHTING_BIT",
+ "XCBGlxGC_GL_FOG_BIT",
+ "XCBGlxGC_GL_DEPTH_BUFFER_BIT",
+ "XCBGlxGC_GL_ACCUM_BUFFER_BIT",
+ "XCBGlxGC_GL_STENCIL_BUFFER_BIT",
+ "XCBGlxGC_GL_VIEWPORT_BIT",
+ "XCBGlxGC_GL_TRANSFORM_BIT",
+ "XCBGlxGC_GL_ENABLE_BIT",
+ "XCBGlxGC_GL_COLOR_BUFFER_BIT",
+ "XCBGlxGC_GL_HINT_BIT",
+ "XCBGlxGC_GL_EVAL_BIT",
+ "XCBGlxGC_GL_LIST_BIT",
+ "XCBGlxGC_GL_TEXTURE_BIT",
+ "XCBGlxGC_GL_SCISSOR_BIT",
+ "XCBGlxGC_GL_ALL_ATTRIB_BITS",
+ "XCBGlxRM_GL_RENDER",
+ "XCBGlxRM_GL_FEEDBACK",
+ "XCBGlxRM_GL_SELECT",
+ );
+ open(CONST, shift) or die "failed to open constants list: $!";
+ while(<CONST>)
+ {
+ chomp;
+ die "invalid constant name: \"$_\"" unless /^XCB[A-Za-z0-9_]*$/;
+ $::const{$_} = 1;
+ }
+ close(CONST);
+}
+
+sub convert($$)
+{
+ local $_ = shift;
+ my ($fun) = @_;
+
+ return "xcb_generate_id" if /^xcb_[a-z0-9_]+_new$/ or /^XCB[A-Z0-9]+New$/;
+ return "uint$1_t" if /^CARD(8|16|32)$/;
+ return "int$1_t" if /^INT(8|16|32)$/;
+ return "uint8_t" if $_ eq 'BOOL' or $_ eq 'BYTE';
+ return $_ if /^[A-Z0-9]*_[A-Z0-9_]*$/ or !/^XCB(.+)/;
+ my $const = defined $::const{$_};
+ $_ = $1;
+
+ s/^(GX|RandR|XFixes|XP|XvMC|ScreenSaver)(.)/uc($1) . "_" . $2/e unless /^ScreenSaver(?:Reset|Active)$/;
+
+ my %abbr = (
+ "Iter" => "iterator",
+ "Req" => "request",
+ "Rep" => "reply",
+ );
+
+ my $word;
+ if(/CHAR2B|INT64|FLOAT32|FLOAT64|BOOL32|STRING8/)
+ {
+ $word = qr/[A-Z](?:[A-Z0-9]*|[a-z]*)/;
+ } else {
+ $word = qr/[0-9]+|[A-Z](?:[A-Z]*|[a-z]*)/;
+ }
+ s/($word)_?(?=[0-9A-Z]|$)/"_" . ($abbr{$1} or lc($1))/eg;
+
+ s/^_shape_shape_/_shape_/;
+ s/^_xf_?86_dri/_xf86dri/;
+ $_ = "_family_decnet" if $_ eq "_family_de_cnet";
+ return "XCB" . uc($_) if $const;
+
+ $_ .= "_t" unless $fun or /_id$/;
+
+ return "xcb" . $_;
+}
+
+s/^(\s*#\s*include\s*<)X11\/XCB\//$1xcb\//;
+s/([_A-Za-z][_A-Za-z0-9]*)([ \t]*\()?/convert($1, defined $2) . ($2 or "")/eg;
diff --git a/libxcb/tools/constants b/libxcb/tools/constants
index 168560015..2bc101f1a 100644
--- a/libxcb/tools/constants
+++ b/libxcb/tools/constants
@@ -1,573 +1,573 @@
-XCBCompositeRedirectAutomatic
-XCBCompositeRedirectManual
-XCBDamageReportLevelRawRectangles
-XCBDamageReportLevelDeltaRectangles
-XCBDamageReportLevelBoundingBox
-XCBDamageReportLevelNonEmpty
-XCBDamageBadDamage
-XCBDamageNotify
-XCBGlxGeneric
-XCBGlxBadContext
-XCBGlxBadContextState
-XCBGlxBadDrawable
-XCBGlxBadPixmap
-XCBGlxBadContextTag
-XCBGlxBadCurrentWindow
-XCBGlxBadRenderRequest
-XCBGlxBadLargeRequest
-XCBGlxUnsupportedPrivateRequest
-XCBGlxBadFBConfig
-XCBGlxBadPbuffer
-XCBGlxBadCurrentDrawable
-XCBGlxBadWindow
-XCBGlxPbufferClobber
-XCBGlxPBCETDamaged
-XCBGlxPBCETSaved
-XCBGlxPBCDTWindow
-XCBGlxPBCDTPbuffer
-XCBGlxGC_GL_CURRENT_BIT
-XCBGlxGC_GL_POINT_BIT
-XCBGlxGC_GL_LINE_BIT
-XCBGlxGC_GL_POLYGON_BIT
-XCBGlxGC_GL_POLYGON_STIPPLE_BIT
-XCBGlxGC_GL_PIXEL_MODE_BIT
-XCBGlxGC_GL_LIGHTING_BIT
-XCBGlxGC_GL_FOG_BIT
-XCBGlxGC_GL_DEPTH_BUFFER_BIT
-XCBGlxGC_GL_ACCUM_BUFFER_BIT
-XCBGlxGC_GL_STENCIL_BUFFER_BIT
-XCBGlxGC_GL_VIEWPORT_BIT
-XCBGlxGC_GL_TRANSFORM_BIT
-XCBGlxGC_GL_ENABLE_BIT
-XCBGlxGC_GL_COLOR_BUFFER_BIT
-XCBGlxGC_GL_HINT_BIT
-XCBGlxGC_GL_EVAL_BIT
-XCBGlxGC_GL_LIST_BIT
-XCBGlxGC_GL_TEXTURE_BIT
-XCBGlxGC_GL_SCISSOR_BIT
-XCBGlxGC_GL_ALL_ATTRIB_BITS
-XCBGlxRM_GL_RENDER
-XCBGlxRM_GL_FEEDBACK
-XCBGlxRM_GL_SELECT
-XCBRandRRotationRotate_0
-XCBRandRRotationRotate_90
-XCBRandRRotationRotate_180
-XCBRandRRotationRotate_270
-XCBRandRRotationReflect_X
-XCBRandRRotationReflect_Y
-XCBRandRSetConfigSuccess
-XCBRandRSetConfigInvalidConfigTime
-XCBRandRSetConfigInvalidTime
-XCBRandRSetConfigFailed
-XCBRandRSMScreenChangeNotify
-XCBRandRScreenChangeNotify
-XCBRecordHTypeFromServerTime
-XCBRecordHTypeFromClientTime
-XCBRecordHTypeFromClientSequence
-XCBRecordCSCurrentClients
-XCBRecordCSFutureClients
-XCBRecordCSAllClients
-XCBRecordBadContext
-XCBRenderPictTypeIndexed
-XCBRenderPictTypeDirect
-XCBRenderPictOpClear
-XCBRenderPictOpSrc
-XCBRenderPictOpDst
-XCBRenderPictOpOver
-XCBRenderPictOpOverReverse
-XCBRenderPictOpIn
-XCBRenderPictOpInReverse
-XCBRenderPictOpOut
-XCBRenderPictOpOutReverse
-XCBRenderPictOpAtop
-XCBRenderPictOpAtopReverse
-XCBRenderPictOpXor
-XCBRenderPictOpAdd
-XCBRenderPictOpSaturate
-XCBRenderPictOpDisjointClear
-XCBRenderPictOpDisjointSrc
-XCBRenderPictOpDisjointDst
-XCBRenderPictOpDisjointOver
-XCBRenderPictOpDisjointOverReverse
-XCBRenderPictOpDisjointIn
-XCBRenderPictOpDisjointInReverse
-XCBRenderPictOpDisjointOut
-XCBRenderPictOpDisjointOutReverse
-XCBRenderPictOpDisjointAtop
-XCBRenderPictOpDisjointAtopReverse
-XCBRenderPictOpDisjointXor
-XCBRenderPictOpConjointClear
-XCBRenderPictOpConjointSrc
-XCBRenderPictOpConjointDst
-XCBRenderPictOpConjointOver
-XCBRenderPictOpConjointOverReverse
-XCBRenderPictOpConjointIn
-XCBRenderPictOpConjointInReverse
-XCBRenderPictOpConjointOut
-XCBRenderPictOpConjointOutReverse
-XCBRenderPictOpConjointAtop
-XCBRenderPictOpConjointAtopReverse
-XCBRenderPictOpConjointXor
-XCBRenderPolyEdgeSharp
-XCBRenderPolyEdgeSmooth
-XCBRenderPolyModePrecise
-XCBRenderPolyModeImprecise
-XCBRenderCPRepeat
-XCBRenderCPAlphaMap
-XCBRenderCPAlphaXOrigin
-XCBRenderCPAlphaYOrigin
-XCBRenderCPClipXOrigin
-XCBRenderCPClipYOrigin
-XCBRenderCPClipMask
-XCBRenderCPGraphicsExposure
-XCBRenderCPSubwindowMode
-XCBRenderCPPolyEdge
-XCBRenderCPPolyMode
-XCBRenderCPDither
-XCBRenderCPComponentAlpha
-XCBRenderSubPixelUnknown
-XCBRenderSubPixelHorizontalRGB
-XCBRenderSubPixelHorizontalBGR
-XCBRenderSubPixelVerticalRGB
-XCBRenderSubPixelVerticalBGR
-XCBRenderSubPixelNone
-XCBRenderPictFormat
-XCBRenderPicture
-XCBRenderPictOp
-XCBRenderGlyphSet
-XCBRenderGlyph
-XCBScreenSaverKindBlanked
-XCBScreenSaverKindInternal
-XCBScreenSaverKindExternal
-XCBScreenSaverEventNotifyMask
-XCBScreenSaverEventCycleMask
-XCBScreenSaverStateOff
-XCBScreenSaverStateOn
-XCBScreenSaverStateCycle
-XCBScreenSaverStateDisabled
-XCBScreenSaverNotify
-XCBShapeSOSet
-XCBShapeSOUnion
-XCBShapeSOIntersect
-XCBShapeSOSubtract
-XCBShapeSOInvert
-XCBShapeSKBounding
-XCBShapeSKClip
-XCBShapeSKInput
-XCBShapeNotify
-XCBShmCompletion
-XCBShmBadSeg
-XCBSyncALARMSTATEActive
-XCBSyncALARMSTATEInactive
-XCBSyncALARMSTATEDestroyed
-XCBSyncTESTTYPEPositiveTransition
-XCBSyncTESTTYPENegativeTransition
-XCBSyncTESTTYPEPositiveComparison
-XCBSyncTESTTYPENegativeComparison
-XCBSyncVALUETYPEAbsolute
-XCBSyncVALUETYPERelative
-XCBSyncCACounter
-XCBSyncCAValueType
-XCBSyncCAValue
-XCBSyncCATestType
-XCBSyncCADelta
-XCBSyncCAEvents
-XCBSyncCounter
-XCBSyncAlarm
-XCBSyncCounterNotify
-XCBSyncAlarmNotify
-XCBXevieDatatypeUnmodified
-XCBXevieDatatypeModified
-XCBXFixesSaveSetModeInsert
-XCBXFixesSaveSetModeDelete
-XCBXFixesSaveSetTargetNearest
-XCBXFixesSaveSetTargetRoot
-XCBXFixesSaveSetMappingMap
-XCBXFixesSaveSetMappingUnmap
-XCBXFixesSelectionEventSetSelectionOwner
-XCBXFixesSelectionEventSelectionWindowDestroy
-XCBXFixesSelectionEventSelectionClientClose
-XCBXFixesSelectionEventMaskSetSelectionOwner
-XCBXFixesSelectionEventMaskSelectionWindowDestroy
-XCBXFixesSelectionEventMaskSelectionClientClose
-XCBXFixesSelectionNotify
-XCBXFixesCursorNotifyDisplayCursor
-XCBXFixesCursorNotifyMaskDisplayCursor
-XCBXFixesCursorNotify
-XCBXFixesBadRegion
-XCBXPGetDocFinished
-XCBXPGetDocSecondConsumer
-XCBXPEvMaskNoEventMask
-XCBXPEvMaskPrintMask
-XCBXPEvMaskAttributeMask
-XCBXPDetailStartJobNotify
-XCBXPDetailEndJobNotify
-XCBXPDetailStartDocNotify
-XCBXPDetailEndDocNotify
-XCBXPDetailStartPageNotify
-XCBXPDetailEndPageNotify
-XCBXPAttrJobAttr
-XCBXPAttrDocAttr
-XCBXPAttrPageAttr
-XCBXPAttrPrinterAttr
-XCBXPAttrServerAttr
-XCBXPAttrMediumAttr
-XCBXPAttrSpoolerAttr
-XCBXPNotify
-XCBXPAttributNotify
-XCBXPBadContext
-XCBXPBadSequence
-XCBXvTypeInputMask
-XCBXvTypeOutputMask
-XCBXvTypeVideoMask
-XCBXvTypeStillMask
-XCBXvTypeImageMask
-XCBXvImageFormatInfoTypeRGB
-XCBXvImageFormatInfoTypeYUV
-XCBXvImageFormatInfoFormatPacked
-XCBXvImageFormatInfoFormatPlanar
-XCBXvAttributeFlagGettable
-XCBXvAttributeFlagSettable
-XCBXvBadPort
-XCBXvBadEncoding
-XCBXvBadControl
-XCBXvVideoNotify
-XCBXvPortNotify
-XCBTestCursorNone
-XCBTestCursorCurrent
-XCBVisualClassStaticGray
-XCBVisualClassGrayScale
-XCBVisualClassStaticColor
-XCBVisualClassPseudoColor
-XCBVisualClassTrueColor
-XCBVisualClassDirectColor
-XCBImageOrderLSBFirst
-XCBImageOrderMSBFirst
-XCBModMaskShift
-XCBModMaskLock
-XCBModMaskControl
-XCBModMask1
-XCBModMask2
-XCBModMask3
-XCBModMask4
-XCBModMask5
-XCBKeyPress
-XCBKeyRelease
-XCBButtonMask1
-XCBButtonMask2
-XCBButtonMask3
-XCBButtonMask4
-XCBButtonMask5
-XCBButtonMaskAny
-XCBButtonPress
-XCBButtonRelease
-XCBMotionNormal
-XCBMotionHint
-XCBMotionNotify
-XCBNotifyDetailAncestor
-XCBNotifyDetailVirtual
-XCBNotifyDetailInferior
-XCBNotifyDetailNonlinear
-XCBNotifyDetailNonlinearVirtual
-XCBNotifyDetailPointer
-XCBNotifyDetailPointerRoot
-XCBNotifyDetailNone
-XCBNotifyModeNormal
-XCBNotifyModeGrab
-XCBNotifyModeUngrab
-XCBNotifyModeWhileGrabbed
-XCBEnterNotify
-XCBLeaveNotify
-XCBFocusIn
-XCBFocusOut
-XCBKeymapNotify
-XCBExpose
-XCBGraphicsExposure
-XCBNoExposure
-XCBVisibilityUnobscured
-XCBVisibilityPartiallyObscured
-XCBVisibilityFullyObscured
-XCBVisibilityNotify
-XCBCreateNotify
-XCBDestroyNotify
-XCBUnmapNotify
-XCBMapNotify
-XCBMapRequest
-XCBReparentNotify
-XCBConfigureNotify
-XCBConfigureRequest
-XCBGravityNotify
-XCBResizeRequest
-XCBPlaceOnTop
-XCBPlaceOnBottom
-XCBCirculateNotify
-XCBCirculateRequest
-XCBPropertyNewValue
-XCBPropertyDelete
-XCBPropertyNotify
-XCBSelectionClear
-XCBSelectionRequest
-XCBSelectionNotify
-XCBColormapStateUninstalled
-XCBColormapStateInstalled
-XCBColormapNotify
-XCBClientMessage
-XCBMappingModifier
-XCBMappingKeyboard
-XCBMappingPointer
-XCBMappingNotify
-XCBRequest
-XCBValue
-XCBWindow
-XCBPixmap
-XCBAtom
-XCBCursor
-XCBFont
-XCBMatch
-XCBDrawable
-XCBAccess
-XCBAlloc
-XCBColormap
-XCBGContext
-XCBIDChoice
-XCBName
-XCBLength
-XCBImplementation
-XCBWindowClassCopyFromParent
-XCBWindowClassInputOutput
-XCBWindowClassInputOnly
-XCBCWBackPixmap
-XCBCWBackPixel
-XCBCWBorderPixmap
-XCBCWBorderPixel
-XCBCWBitGravity
-XCBCWWinGravity
-XCBCWBackingStore
-XCBCWBackingPlanes
-XCBCWBackingPixel
-XCBCWOverrideRedirect
-XCBCWSaveUnder
-XCBCWEventMask
-XCBCWDontPropagate
-XCBCWColormap
-XCBCWCursor
-XCBBackPixmapNone
-XCBBackPixmapParentRelative
-XCBGravityBitForget
-XCBGravityWinUnmap
-XCBGravityNorthWest
-XCBGravityNorth
-XCBGravityNorthEast
-XCBGravityWest
-XCBGravityCenter
-XCBGravityEast
-XCBGravitySouthWest
-XCBGravitySouth
-XCBGravitySouthEast
-XCBGravityStatic
-XCBBackingStoreNotUseful
-XCBBackingStoreWhenMapped
-XCBBackingStoreAlways
-XCBEventMaskNoEvent
-XCBEventMaskKeyPress
-XCBEventMaskKeyRelease
-XCBEventMaskButtonPress
-XCBEventMaskButtonRelease
-XCBEventMaskEnterWindow
-XCBEventMaskLeaveWindow
-XCBEventMaskPointerMotion
-XCBEventMaskPointerMotionHint
-XCBEventMaskButton1Motion
-XCBEventMaskButton2Motion
-XCBEventMaskButton3Motion
-XCBEventMaskButton4Motion
-XCBEventMaskButton5Motion
-XCBEventMaskButtonMotion
-XCBEventMaskKeymapState
-XCBEventMaskExposure
-XCBEventMaskVisibilityChange
-XCBEventMaskStructureNotify
-XCBEventMaskResizeRedirect
-XCBEventMaskSubstructureNotify
-XCBEventMaskSubstructureRedirect
-XCBEventMaskFocusChange
-XCBEventMaskPropertyChange
-XCBEventMaskColorMapChange
-XCBEventMaskOwnerGrabButton
-XCBMapStateUnmapped
-XCBMapStateUnviewable
-XCBMapStateViewable
-XCBSetModeInsert
-XCBSetModeDelete
-XCBConfigWindowX
-XCBConfigWindowY
-XCBConfigWindowWidth
-XCBConfigWindowHeight
-XCBConfigWindowBorderWidth
-XCBConfigWindowSibling
-XCBConfigWindowStackMode
-XCBStackModeAbove
-XCBStackModeBelow
-XCBStackModeTopIf
-XCBStackModeBottomIf
-XCBStackModeOpposite
-XCBCirculateRaiseLowest
-XCBCirculateLowerHighest
-XCBPropModeReplace
-XCBPropModePrepend
-XCBPropModeAppend
-XCBGetPropertyTypeAny
-XCBSendEventDestPointerWindow
-XCBSendEventDestItemFocus
-XCBGrabModeAsync
-XCBGrabModeSync
-XCBGrabStatusSuccess
-XCBGrabStatusAlreadyGrabbed
-XCBGrabStatusInvalidTime
-XCBGrabStatusNotViewable
-XCBGrabStatusFrozen
-XCBButtonAny
-XCBButton1
-XCBButton2
-XCBButton3
-XCBButton4
-XCBButton5
-XCBGrabAny
-XCBAllowAsyncPointer
-XCBAllowSyncPointer
-XCBAllowReplayPointer
-XCBAllowAsyncKeyboard
-XCBAllowSyncKeyboard
-XCBAllowReplayKeyboard
-XCBAllowAsyncBoth
-XCBAllowSyncBoth
-XCBInputFocusNone
-XCBInputFocusPointerRoot
-XCBInputFocusParent
-XCBFontDrawLeftToRight
-XCBFontDrawRightToLeft
-XCBGCFunction
-XCBGCPlaneMask
-XCBGCForeground
-XCBGCBackground
-XCBGCLineWidth
-XCBGCLineStyle
-XCBGCCapStyle
-XCBGCJoinStyle
-XCBGCFillStyle
-XCBGCFillRule
-XCBGCTile
-XCBGCStipple
-XCBGCTileStippleOriginX
-XCBGCTileStippleOriginY
-XCBGCFont
-XCBGCSubwindowMode
-XCBGCGraphicsExposures
-XCBGCClipOriginX
-XCBGCClipOriginY
-XCBGCClipMask
-XCBGCDashOffset
-XCBGCDashList
-XCBGCArcMode
-XCBGXclear
-XCBGXand
-XCBGXandReverse
-XCBGXcopy
-XCBGXandInverted
-XCBGXnoop
-XCBGXxor
-XCBGXor
-XCBGXnor
-XCBGXequiv
-XCBGXinvert
-XCBGXorReverse
-XCBGXcopyInverted
-XCBGXorInverted
-XCBGXnand
-XCBGXset
-XCBLineStyleSolid
-XCBLineStyleOnOffDash
-XCBLineStyleDoubleDash
-XCBCapStyleNotLast
-XCBCapStyleCap
-XCBCapStyleButt
-XCBCapStyleProjecting
-XCBJoinStyleMitre
-XCBJoinStyleRound
-XCBJoinStyleBevel
-XCBFillStyleSolid
-XCBFillStyleTiled
-XCBFillStyleStippled
-XCBFillStyleOpaqueStippled
-XCBFillRuleEvenOdd
-XCBFillRuleWinding
-XCBSubwindowModeClipByChildren
-XCBSubwindowModeIncludeInferiors
-XCBArcModeChord
-XCBArcModePieSlice
-XCBClipOrderingUnsorted
-XCBClipOrderingYSorted
-XCBClipOrderingYXSorted
-XCBClipOrderingYXBanded
-XCBCoordModeOrigin
-XCBCoordModePrevious
-XCBPolyShapeComplex
-XCBPolyShapeNonconvex
-XCBPolyShapeConvex
-XCBImageFormatXYBitmap
-XCBImageFormatXYPixmap
-XCBImageFormatZPixmap
-XCBColormapAllocNone
-XCBColormapAllocAll
-XCBColorFlagRed
-XCBColorFlagGreen
-XCBColorFlagBlue
-XCBQueryShapeOfLargestCursor
-XCBQueryShapeOfFastestTile
-XCBQueryShapeOfFastestStipple
-XCBKBKeyClickPercent
-XCBKBBellPercent
-XCBKBBellPitch
-XCBKBBellDuration
-XCBKBLed
-XCBKBLedMode
-XCBKBKey
-XCBKBAutoRepeatMode
-XCBLedModeOff
-XCBLedModeOn
-XCBAutoRepeatModeOff
-XCBAutoRepeatModeOn
-XCBAutoRepeatModeDefault
-XCBBlankingNotPreferred
-XCBBlankingPreferred
-XCBBlankingDefault
-XCBExposuresNotAllowed
-XCBExposuresAllowed
-XCBExposuresDefault
-XCBHostInsert
-XCBHostDelete
-XCBFamilyInternet
-XCBFamilyDECnet
-XCBFamilyChaos
-XCBFamilyServerInterpreted
-XCBFamilyInternet6
-XCBAccessControlDisable
-XCBAccessControlEnable
-XCBCloseDownDestroyAll
-XCBCloseDownRetainPermanent
-XCBCloseDownRetainTemporary
-XCBKillAllTemporary
-XCBScreenSaverReset
-XCBScreenSaverActive
-XCBMappingStatusSuccess
-XCBMappingStatusBusy
-XCBMappingStatusFailure
-XCBMapIndexShift
-XCBMapIndexLock
-XCBMapIndexControl
-XCBMapIndex1
-XCBMapIndex2
-XCBMapIndex3
-XCBMapIndex4
-XCBMapIndex5
+XCBCompositeRedirectAutomatic
+XCBCompositeRedirectManual
+XCBDamageReportLevelRawRectangles
+XCBDamageReportLevelDeltaRectangles
+XCBDamageReportLevelBoundingBox
+XCBDamageReportLevelNonEmpty
+XCBDamageBadDamage
+XCBDamageNotify
+XCBGlxGeneric
+XCBGlxBadContext
+XCBGlxBadContextState
+XCBGlxBadDrawable
+XCBGlxBadPixmap
+XCBGlxBadContextTag
+XCBGlxBadCurrentWindow
+XCBGlxBadRenderRequest
+XCBGlxBadLargeRequest
+XCBGlxUnsupportedPrivateRequest
+XCBGlxBadFBConfig
+XCBGlxBadPbuffer
+XCBGlxBadCurrentDrawable
+XCBGlxBadWindow
+XCBGlxPbufferClobber
+XCBGlxPBCETDamaged
+XCBGlxPBCETSaved
+XCBGlxPBCDTWindow
+XCBGlxPBCDTPbuffer
+XCBGlxGC_GL_CURRENT_BIT
+XCBGlxGC_GL_POINT_BIT
+XCBGlxGC_GL_LINE_BIT
+XCBGlxGC_GL_POLYGON_BIT
+XCBGlxGC_GL_POLYGON_STIPPLE_BIT
+XCBGlxGC_GL_PIXEL_MODE_BIT
+XCBGlxGC_GL_LIGHTING_BIT
+XCBGlxGC_GL_FOG_BIT
+XCBGlxGC_GL_DEPTH_BUFFER_BIT
+XCBGlxGC_GL_ACCUM_BUFFER_BIT
+XCBGlxGC_GL_STENCIL_BUFFER_BIT
+XCBGlxGC_GL_VIEWPORT_BIT
+XCBGlxGC_GL_TRANSFORM_BIT
+XCBGlxGC_GL_ENABLE_BIT
+XCBGlxGC_GL_COLOR_BUFFER_BIT
+XCBGlxGC_GL_HINT_BIT
+XCBGlxGC_GL_EVAL_BIT
+XCBGlxGC_GL_LIST_BIT
+XCBGlxGC_GL_TEXTURE_BIT
+XCBGlxGC_GL_SCISSOR_BIT
+XCBGlxGC_GL_ALL_ATTRIB_BITS
+XCBGlxRM_GL_RENDER
+XCBGlxRM_GL_FEEDBACK
+XCBGlxRM_GL_SELECT
+XCBRandRRotationRotate_0
+XCBRandRRotationRotate_90
+XCBRandRRotationRotate_180
+XCBRandRRotationRotate_270
+XCBRandRRotationReflect_X
+XCBRandRRotationReflect_Y
+XCBRandRSetConfigSuccess
+XCBRandRSetConfigInvalidConfigTime
+XCBRandRSetConfigInvalidTime
+XCBRandRSetConfigFailed
+XCBRandRSMScreenChangeNotify
+XCBRandRScreenChangeNotify
+XCBRecordHTypeFromServerTime
+XCBRecordHTypeFromClientTime
+XCBRecordHTypeFromClientSequence
+XCBRecordCSCurrentClients
+XCBRecordCSFutureClients
+XCBRecordCSAllClients
+XCBRecordBadContext
+XCBRenderPictTypeIndexed
+XCBRenderPictTypeDirect
+XCBRenderPictOpClear
+XCBRenderPictOpSrc
+XCBRenderPictOpDst
+XCBRenderPictOpOver
+XCBRenderPictOpOverReverse
+XCBRenderPictOpIn
+XCBRenderPictOpInReverse
+XCBRenderPictOpOut
+XCBRenderPictOpOutReverse
+XCBRenderPictOpAtop
+XCBRenderPictOpAtopReverse
+XCBRenderPictOpXor
+XCBRenderPictOpAdd
+XCBRenderPictOpSaturate
+XCBRenderPictOpDisjointClear
+XCBRenderPictOpDisjointSrc
+XCBRenderPictOpDisjointDst
+XCBRenderPictOpDisjointOver
+XCBRenderPictOpDisjointOverReverse
+XCBRenderPictOpDisjointIn
+XCBRenderPictOpDisjointInReverse
+XCBRenderPictOpDisjointOut
+XCBRenderPictOpDisjointOutReverse
+XCBRenderPictOpDisjointAtop
+XCBRenderPictOpDisjointAtopReverse
+XCBRenderPictOpDisjointXor
+XCBRenderPictOpConjointClear
+XCBRenderPictOpConjointSrc
+XCBRenderPictOpConjointDst
+XCBRenderPictOpConjointOver
+XCBRenderPictOpConjointOverReverse
+XCBRenderPictOpConjointIn
+XCBRenderPictOpConjointInReverse
+XCBRenderPictOpConjointOut
+XCBRenderPictOpConjointOutReverse
+XCBRenderPictOpConjointAtop
+XCBRenderPictOpConjointAtopReverse
+XCBRenderPictOpConjointXor
+XCBRenderPolyEdgeSharp
+XCBRenderPolyEdgeSmooth
+XCBRenderPolyModePrecise
+XCBRenderPolyModeImprecise
+XCBRenderCPRepeat
+XCBRenderCPAlphaMap
+XCBRenderCPAlphaXOrigin
+XCBRenderCPAlphaYOrigin
+XCBRenderCPClipXOrigin
+XCBRenderCPClipYOrigin
+XCBRenderCPClipMask
+XCBRenderCPGraphicsExposure
+XCBRenderCPSubwindowMode
+XCBRenderCPPolyEdge
+XCBRenderCPPolyMode
+XCBRenderCPDither
+XCBRenderCPComponentAlpha
+XCBRenderSubPixelUnknown
+XCBRenderSubPixelHorizontalRGB
+XCBRenderSubPixelHorizontalBGR
+XCBRenderSubPixelVerticalRGB
+XCBRenderSubPixelVerticalBGR
+XCBRenderSubPixelNone
+XCBRenderPictFormat
+XCBRenderPicture
+XCBRenderPictOp
+XCBRenderGlyphSet
+XCBRenderGlyph
+XCBScreenSaverKindBlanked
+XCBScreenSaverKindInternal
+XCBScreenSaverKindExternal
+XCBScreenSaverEventNotifyMask
+XCBScreenSaverEventCycleMask
+XCBScreenSaverStateOff
+XCBScreenSaverStateOn
+XCBScreenSaverStateCycle
+XCBScreenSaverStateDisabled
+XCBScreenSaverNotify
+XCBShapeSOSet
+XCBShapeSOUnion
+XCBShapeSOIntersect
+XCBShapeSOSubtract
+XCBShapeSOInvert
+XCBShapeSKBounding
+XCBShapeSKClip
+XCBShapeSKInput
+XCBShapeNotify
+XCBShmCompletion
+XCBShmBadSeg
+XCBSyncALARMSTATEActive
+XCBSyncALARMSTATEInactive
+XCBSyncALARMSTATEDestroyed
+XCBSyncTESTTYPEPositiveTransition
+XCBSyncTESTTYPENegativeTransition
+XCBSyncTESTTYPEPositiveComparison
+XCBSyncTESTTYPENegativeComparison
+XCBSyncVALUETYPEAbsolute
+XCBSyncVALUETYPERelative
+XCBSyncCACounter
+XCBSyncCAValueType
+XCBSyncCAValue
+XCBSyncCATestType
+XCBSyncCADelta
+XCBSyncCAEvents
+XCBSyncCounter
+XCBSyncAlarm
+XCBSyncCounterNotify
+XCBSyncAlarmNotify
+XCBXevieDatatypeUnmodified
+XCBXevieDatatypeModified
+XCBXFixesSaveSetModeInsert
+XCBXFixesSaveSetModeDelete
+XCBXFixesSaveSetTargetNearest
+XCBXFixesSaveSetTargetRoot
+XCBXFixesSaveSetMappingMap
+XCBXFixesSaveSetMappingUnmap
+XCBXFixesSelectionEventSetSelectionOwner
+XCBXFixesSelectionEventSelectionWindowDestroy
+XCBXFixesSelectionEventSelectionClientClose
+XCBXFixesSelectionEventMaskSetSelectionOwner
+XCBXFixesSelectionEventMaskSelectionWindowDestroy
+XCBXFixesSelectionEventMaskSelectionClientClose
+XCBXFixesSelectionNotify
+XCBXFixesCursorNotifyDisplayCursor
+XCBXFixesCursorNotifyMaskDisplayCursor
+XCBXFixesCursorNotify
+XCBXFixesBadRegion
+XCBXPGetDocFinished
+XCBXPGetDocSecondConsumer
+XCBXPEvMaskNoEventMask
+XCBXPEvMaskPrintMask
+XCBXPEvMaskAttributeMask
+XCBXPDetailStartJobNotify
+XCBXPDetailEndJobNotify
+XCBXPDetailStartDocNotify
+XCBXPDetailEndDocNotify
+XCBXPDetailStartPageNotify
+XCBXPDetailEndPageNotify
+XCBXPAttrJobAttr
+XCBXPAttrDocAttr
+XCBXPAttrPageAttr
+XCBXPAttrPrinterAttr
+XCBXPAttrServerAttr
+XCBXPAttrMediumAttr
+XCBXPAttrSpoolerAttr
+XCBXPNotify
+XCBXPAttributNotify
+XCBXPBadContext
+XCBXPBadSequence
+XCBXvTypeInputMask
+XCBXvTypeOutputMask
+XCBXvTypeVideoMask
+XCBXvTypeStillMask
+XCBXvTypeImageMask
+XCBXvImageFormatInfoTypeRGB
+XCBXvImageFormatInfoTypeYUV
+XCBXvImageFormatInfoFormatPacked
+XCBXvImageFormatInfoFormatPlanar
+XCBXvAttributeFlagGettable
+XCBXvAttributeFlagSettable
+XCBXvBadPort
+XCBXvBadEncoding
+XCBXvBadControl
+XCBXvVideoNotify
+XCBXvPortNotify
+XCBTestCursorNone
+XCBTestCursorCurrent
+XCBVisualClassStaticGray
+XCBVisualClassGrayScale
+XCBVisualClassStaticColor
+XCBVisualClassPseudoColor
+XCBVisualClassTrueColor
+XCBVisualClassDirectColor
+XCBImageOrderLSBFirst
+XCBImageOrderMSBFirst
+XCBModMaskShift
+XCBModMaskLock
+XCBModMaskControl
+XCBModMask1
+XCBModMask2
+XCBModMask3
+XCBModMask4
+XCBModMask5
+XCBKeyPress
+XCBKeyRelease
+XCBButtonMask1
+XCBButtonMask2
+XCBButtonMask3
+XCBButtonMask4
+XCBButtonMask5
+XCBButtonMaskAny
+XCBButtonPress
+XCBButtonRelease
+XCBMotionNormal
+XCBMotionHint
+XCBMotionNotify
+XCBNotifyDetailAncestor
+XCBNotifyDetailVirtual
+XCBNotifyDetailInferior
+XCBNotifyDetailNonlinear
+XCBNotifyDetailNonlinearVirtual
+XCBNotifyDetailPointer
+XCBNotifyDetailPointerRoot
+XCBNotifyDetailNone
+XCBNotifyModeNormal
+XCBNotifyModeGrab
+XCBNotifyModeUngrab
+XCBNotifyModeWhileGrabbed
+XCBEnterNotify
+XCBLeaveNotify
+XCBFocusIn
+XCBFocusOut
+XCBKeymapNotify
+XCBExpose
+XCBGraphicsExposure
+XCBNoExposure
+XCBVisibilityUnobscured
+XCBVisibilityPartiallyObscured
+XCBVisibilityFullyObscured
+XCBVisibilityNotify
+XCBCreateNotify
+XCBDestroyNotify
+XCBUnmapNotify
+XCBMapNotify
+XCBMapRequest
+XCBReparentNotify
+XCBConfigureNotify
+XCBConfigureRequest
+XCBGravityNotify
+XCBResizeRequest
+XCBPlaceOnTop
+XCBPlaceOnBottom
+XCBCirculateNotify
+XCBCirculateRequest
+XCBPropertyNewValue
+XCBPropertyDelete
+XCBPropertyNotify
+XCBSelectionClear
+XCBSelectionRequest
+XCBSelectionNotify
+XCBColormapStateUninstalled
+XCBColormapStateInstalled
+XCBColormapNotify
+XCBClientMessage
+XCBMappingModifier
+XCBMappingKeyboard
+XCBMappingPointer
+XCBMappingNotify
+XCBRequest
+XCBValue
+XCBWindow
+XCBPixmap
+XCBAtom
+XCBCursor
+XCBFont
+XCBMatch
+XCBDrawable
+XCBAccess
+XCBAlloc
+XCBColormap
+XCBGContext
+XCBIDChoice
+XCBName
+XCBLength
+XCBImplementation
+XCBWindowClassCopyFromParent
+XCBWindowClassInputOutput
+XCBWindowClassInputOnly
+XCBCWBackPixmap
+XCBCWBackPixel
+XCBCWBorderPixmap
+XCBCWBorderPixel
+XCBCWBitGravity
+XCBCWWinGravity
+XCBCWBackingStore
+XCBCWBackingPlanes
+XCBCWBackingPixel
+XCBCWOverrideRedirect
+XCBCWSaveUnder
+XCBCWEventMask
+XCBCWDontPropagate
+XCBCWColormap
+XCBCWCursor
+XCBBackPixmapNone
+XCBBackPixmapParentRelative
+XCBGravityBitForget
+XCBGravityWinUnmap
+XCBGravityNorthWest
+XCBGravityNorth
+XCBGravityNorthEast
+XCBGravityWest
+XCBGravityCenter
+XCBGravityEast
+XCBGravitySouthWest
+XCBGravitySouth
+XCBGravitySouthEast
+XCBGravityStatic
+XCBBackingStoreNotUseful
+XCBBackingStoreWhenMapped
+XCBBackingStoreAlways
+XCBEventMaskNoEvent
+XCBEventMaskKeyPress
+XCBEventMaskKeyRelease
+XCBEventMaskButtonPress
+XCBEventMaskButtonRelease
+XCBEventMaskEnterWindow
+XCBEventMaskLeaveWindow
+XCBEventMaskPointerMotion
+XCBEventMaskPointerMotionHint
+XCBEventMaskButton1Motion
+XCBEventMaskButton2Motion
+XCBEventMaskButton3Motion
+XCBEventMaskButton4Motion
+XCBEventMaskButton5Motion
+XCBEventMaskButtonMotion
+XCBEventMaskKeymapState
+XCBEventMaskExposure
+XCBEventMaskVisibilityChange
+XCBEventMaskStructureNotify
+XCBEventMaskResizeRedirect
+XCBEventMaskSubstructureNotify
+XCBEventMaskSubstructureRedirect
+XCBEventMaskFocusChange
+XCBEventMaskPropertyChange
+XCBEventMaskColorMapChange
+XCBEventMaskOwnerGrabButton
+XCBMapStateUnmapped
+XCBMapStateUnviewable
+XCBMapStateViewable
+XCBSetModeInsert
+XCBSetModeDelete
+XCBConfigWindowX
+XCBConfigWindowY
+XCBConfigWindowWidth
+XCBConfigWindowHeight
+XCBConfigWindowBorderWidth
+XCBConfigWindowSibling
+XCBConfigWindowStackMode
+XCBStackModeAbove
+XCBStackModeBelow
+XCBStackModeTopIf
+XCBStackModeBottomIf
+XCBStackModeOpposite
+XCBCirculateRaiseLowest
+XCBCirculateLowerHighest
+XCBPropModeReplace
+XCBPropModePrepend
+XCBPropModeAppend
+XCBGetPropertyTypeAny
+XCBSendEventDestPointerWindow
+XCBSendEventDestItemFocus
+XCBGrabModeAsync
+XCBGrabModeSync
+XCBGrabStatusSuccess
+XCBGrabStatusAlreadyGrabbed
+XCBGrabStatusInvalidTime
+XCBGrabStatusNotViewable
+XCBGrabStatusFrozen
+XCBButtonAny
+XCBButton1
+XCBButton2
+XCBButton3
+XCBButton4
+XCBButton5
+XCBGrabAny
+XCBAllowAsyncPointer
+XCBAllowSyncPointer
+XCBAllowReplayPointer
+XCBAllowAsyncKeyboard
+XCBAllowSyncKeyboard
+XCBAllowReplayKeyboard
+XCBAllowAsyncBoth
+XCBAllowSyncBoth
+XCBInputFocusNone
+XCBInputFocusPointerRoot
+XCBInputFocusParent
+XCBFontDrawLeftToRight
+XCBFontDrawRightToLeft
+XCBGCFunction
+XCBGCPlaneMask
+XCBGCForeground
+XCBGCBackground
+XCBGCLineWidth
+XCBGCLineStyle
+XCBGCCapStyle
+XCBGCJoinStyle
+XCBGCFillStyle
+XCBGCFillRule
+XCBGCTile
+XCBGCStipple
+XCBGCTileStippleOriginX
+XCBGCTileStippleOriginY
+XCBGCFont
+XCBGCSubwindowMode
+XCBGCGraphicsExposures
+XCBGCClipOriginX
+XCBGCClipOriginY
+XCBGCClipMask
+XCBGCDashOffset
+XCBGCDashList
+XCBGCArcMode
+XCBGXclear
+XCBGXand
+XCBGXandReverse
+XCBGXcopy
+XCBGXandInverted
+XCBGXnoop
+XCBGXxor
+XCBGXor
+XCBGXnor
+XCBGXequiv
+XCBGXinvert
+XCBGXorReverse
+XCBGXcopyInverted
+XCBGXorInverted
+XCBGXnand
+XCBGXset
+XCBLineStyleSolid
+XCBLineStyleOnOffDash
+XCBLineStyleDoubleDash
+XCBCapStyleNotLast
+XCBCapStyleCap
+XCBCapStyleButt
+XCBCapStyleProjecting
+XCBJoinStyleMitre
+XCBJoinStyleRound
+XCBJoinStyleBevel
+XCBFillStyleSolid
+XCBFillStyleTiled
+XCBFillStyleStippled
+XCBFillStyleOpaqueStippled
+XCBFillRuleEvenOdd
+XCBFillRuleWinding
+XCBSubwindowModeClipByChildren
+XCBSubwindowModeIncludeInferiors
+XCBArcModeChord
+XCBArcModePieSlice
+XCBClipOrderingUnsorted
+XCBClipOrderingYSorted
+XCBClipOrderingYXSorted
+XCBClipOrderingYXBanded
+XCBCoordModeOrigin
+XCBCoordModePrevious
+XCBPolyShapeComplex
+XCBPolyShapeNonconvex
+XCBPolyShapeConvex
+XCBImageFormatXYBitmap
+XCBImageFormatXYPixmap
+XCBImageFormatZPixmap
+XCBColormapAllocNone
+XCBColormapAllocAll
+XCBColorFlagRed
+XCBColorFlagGreen
+XCBColorFlagBlue
+XCBQueryShapeOfLargestCursor
+XCBQueryShapeOfFastestTile
+XCBQueryShapeOfFastestStipple
+XCBKBKeyClickPercent
+XCBKBBellPercent
+XCBKBBellPitch
+XCBKBBellDuration
+XCBKBLed
+XCBKBLedMode
+XCBKBKey
+XCBKBAutoRepeatMode
+XCBLedModeOff
+XCBLedModeOn
+XCBAutoRepeatModeOff
+XCBAutoRepeatModeOn
+XCBAutoRepeatModeDefault
+XCBBlankingNotPreferred
+XCBBlankingPreferred
+XCBBlankingDefault
+XCBExposuresNotAllowed
+XCBExposuresAllowed
+XCBExposuresDefault
+XCBHostInsert
+XCBHostDelete
+XCBFamilyInternet
+XCBFamilyDECnet
+XCBFamilyChaos
+XCBFamilyServerInterpreted
+XCBFamilyInternet6
+XCBAccessControlDisable
+XCBAccessControlEnable
+XCBCloseDownDestroyAll
+XCBCloseDownRetainPermanent
+XCBCloseDownRetainTemporary
+XCBKillAllTemporary
+XCBScreenSaverReset
+XCBScreenSaverActive
+XCBMappingStatusSuccess
+XCBMappingStatusBusy
+XCBMappingStatusFailure
+XCBMapIndexShift
+XCBMapIndexLock
+XCBMapIndexControl
+XCBMapIndex1
+XCBMapIndex2
+XCBMapIndex3
+XCBMapIndex4
+XCBMapIndex5
XCBAllPlanes \ No newline at end of file
diff --git a/libxcb/xcb-composite.pc.in b/libxcb/xcb-composite.pc.in
index 02d49b0c2..2cd20e913 100644
--- a/libxcb/xcb-composite.pc.in
+++ b/libxcb/xcb-composite.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Composite
-Description: XCB Composite Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb xcb-xfixes
-Libs: -L${libdir} -lxcb-composite
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Composite
+Description: XCB Composite Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb xcb-xfixes
+Libs: -L${libdir} -lxcb-composite
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-damage.pc.in b/libxcb/xcb-damage.pc.in
index c4bc59986..1f694c5df 100644
--- a/libxcb/xcb-damage.pc.in
+++ b/libxcb/xcb-damage.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Damage
-Description: XCB Damage Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb xcb-xfixes
-Libs: -L${libdir} -lxcb-damage
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Damage
+Description: XCB Damage Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb xcb-xfixes
+Libs: -L${libdir} -lxcb-damage
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-dpms.pc.in b/libxcb/xcb-dpms.pc.in
index 838a054be..4c369981b 100644
--- a/libxcb/xcb-dpms.pc.in
+++ b/libxcb/xcb-dpms.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB DPMS
-Description: XCB DPMS Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-dpms
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB DPMS
+Description: XCB DPMS Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-dpms
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-dri2.pc.in b/libxcb/xcb-dri2.pc.in
index a9944dfa2..2b46adcb3 100644
--- a/libxcb/xcb-dri2.pc.in
+++ b/libxcb/xcb-dri2.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB DRI2
-Description: XCB DRI2 Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-dri2
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB DRI2
+Description: XCB DRI2 Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-dri2
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-glx.pc.in b/libxcb/xcb-glx.pc.in
index bbd412675..e2b08abe1 100644
--- a/libxcb/xcb-glx.pc.in
+++ b/libxcb/xcb-glx.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB GLX
-Description: XCB GLX Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-glx
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB GLX
+Description: XCB GLX Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-glx
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-proto/.gitignore b/libxcb/xcb-proto/.gitignore
new file mode 100644
index 000000000..d0148ecfa
--- /dev/null
+++ b/libxcb/xcb-proto/.gitignore
@@ -0,0 +1,31 @@
+aclocal.m4
+autom4te.cache
+compile
+depcomp
+install-sh
+libtool
+ltmain.sh
+missing
+mkinstalldirs
+py-compile
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+configure.lineno
+.deps
+.dirstamp
+.libs
+*.lo
+*.loT
+*.la
+Makefile
+Makefile.in
+stamp-h1
+*.o
+*.pc
+*.tar.bz2
+*.tar.gz
diff --git a/libxcb/xcb-proto/COPYING b/libxcb/xcb-proto/COPYING
index 54bfbe5b0..50a14e39e 100644
--- a/libxcb/xcb-proto/COPYING
+++ b/libxcb/xcb-proto/COPYING
@@ -1,30 +1,30 @@
-Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall
-be included in all copies or substantial portions of the
-Software.
-
-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 AUTHORS
-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.
-
-Except as contained in this notice, the names of the authors
-or their institutions 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
-authors.
+Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall
+be included in all copies or substantial portions of the
+Software.
+
+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 AUTHORS
+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.
+
+Except as contained in this notice, the names of the authors
+or their institutions 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
+authors.
diff --git a/libxcb/xcb-proto/INSTALL b/libxcb/xcb-proto/INSTALL
index 54caf7c19..bf8c23f1f 100644
--- a/libxcb/xcb-proto/INSTALL
+++ b/libxcb/xcb-proto/INSTALL
@@ -1,229 +1,229 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
-
- This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory. After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/libxcb/xcb-proto/README b/libxcb/xcb-proto/README
index 22d7debca..11ffe528a 100644
--- a/libxcb/xcb-proto/README
+++ b/libxcb/xcb-proto/README
@@ -1,47 +1,47 @@
-About xcb-proto
-===============
-
-xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to
-generate the majority of its code and API. We provide them separately
-from libxcb to allow reuse by other projects, such as additional
-language bindings, protocol dissectors, or documentation generators.
-
-This separation between the XCB transport layer and the
-automatically-generated protocol layer also makes it far easier to write
-new extensions. With the Xlib infrastructure, client-side support for
-new extensions requires significant duplication of effort. With XCB and
-the XML-XCB protocol descriptions, client-side support for a new
-extension requires only an XML description of the extension, and not a
-single line of code.
-
-Python libraries: xcb-proto also contains language-independent Python
-libraries that are used to parse an XML description and create objects
-used by Python code generators in individual language bindings. These
-libraries are installed into $(prefix)/lib/pythonX.X/site-packages. If
-this location is not on your system's Python path, scripts that import
-them will fail with import errors. In this case you must add the
-install location to your Python path by creating a file with a `.pth'
-extension in a directory that _is_ on the Python path, and put the
-path to the install location in that file. For example, on my system
-there is a file named 'local.pth' in /usr/lib/python2.5/site-packages,
-which contains '/usr/local/lib/python2.5/site-packages'. Note that
-this is only necessary on machines where XCB is being built.
-
-Please report any issues you find to the freedesktop.org bug tracker,
-at:
-
- <https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>
-
-Discussion about XCB occurs on the XCB mailing list:
-
- <mailto:xcb at lists.freedesktop.org>
- <http://lists.freedesktop.org/mailman/listinfo/xcb>
-
-You can obtain the latest development versions of XCB using GIT.
-For anonymous checkouts, use:
-
- git clone git://anongit.freedesktop.org/git/xcb/proto
-
-For developers, use:
-
- git clone git+ssh://git.freedesktop.org/git/xcb/proto
+About xcb-proto
+===============
+
+xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to
+generate the majority of its code and API. We provide them separately
+from libxcb to allow reuse by other projects, such as additional
+language bindings, protocol dissectors, or documentation generators.
+
+This separation between the XCB transport layer and the
+automatically-generated protocol layer also makes it far easier to write
+new extensions. With the Xlib infrastructure, client-side support for
+new extensions requires significant duplication of effort. With XCB and
+the XML-XCB protocol descriptions, client-side support for a new
+extension requires only an XML description of the extension, and not a
+single line of code.
+
+Python libraries: xcb-proto also contains language-independent Python
+libraries that are used to parse an XML description and create objects
+used by Python code generators in individual language bindings. These
+libraries are installed into $(prefix)/lib/pythonX.X/site-packages. If
+this location is not on your system's Python path, scripts that import
+them will fail with import errors. In this case you must add the
+install location to your Python path by creating a file with a `.pth'
+extension in a directory that _is_ on the Python path, and put the
+path to the install location in that file. For example, on my system
+there is a file named 'local.pth' in /usr/lib/python2.5/site-packages,
+which contains '/usr/local/lib/python2.5/site-packages'. Note that
+this is only necessary on machines where XCB is being built.
+
+Please report any issues you find to the freedesktop.org bug tracker,
+at:
+
+ <https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>
+
+Discussion about XCB occurs on the XCB mailing list:
+
+ <mailto:xcb at lists.freedesktop.org>
+ <http://lists.freedesktop.org/mailman/listinfo/xcb>
+
+You can obtain the latest development versions of XCB using GIT.
+For anonymous checkouts, use:
+
+ git clone git://anongit.freedesktop.org/git/xcb/proto
+
+For developers, use:
+
+ git clone git+ssh://git.freedesktop.org/git/xcb/proto
diff --git a/libxcb/xcb-proto/TODO b/libxcb/xcb-proto/TODO
index add693c48..51aac0a92 100644
--- a/libxcb/xcb-proto/TODO
+++ b/libxcb/xcb-proto/TODO
@@ -1,45 +1,45 @@
-Last Updated: 2006-04-27
-
-Extension Status:
-
-X - Present, tested, works.
-U - Present, untested.
-I - Incomplete.
-
-X BIG-REQUESTS
-X COMPOSITE
-X DAMAGE
- DOUBLE-BUFFER
-X DPMS
- Extended-Visual-Information
-X GLX
- LBX
-X MIT-SCREEN-SAVER
-X MIT-SHM
- MIT-SUNDRY-NONSTANDARD
- Multi-Buffering
-X RANDR
-X RECORD
-X RENDER
- SECURITY
- SGI-GLX
-X SHAPE
-X SYNC
- TOG-CUP
-X X-Resource
- XC-APPGROUP
-X XC-MISC
-X XEVIE
-X XFIXES
- XFree86-Bigfont
- XFree86-DGA
-X XFree86-DRI
- XFree86-Misc
- XFree86-VidModeExtension
- XINERAMA
- XInputExtension
- XKEYBOARD
-I XpExtension (XPRINT)
-X XTEST
-X XVideo
-U XVideo-MotionCompensation
+Last Updated: 2006-04-27
+
+Extension Status:
+
+X - Present, tested, works.
+U - Present, untested.
+I - Incomplete.
+
+X BIG-REQUESTS
+X COMPOSITE
+X DAMAGE
+ DOUBLE-BUFFER
+X DPMS
+ Extended-Visual-Information
+X GLX
+ LBX
+X MIT-SCREEN-SAVER
+X MIT-SHM
+ MIT-SUNDRY-NONSTANDARD
+ Multi-Buffering
+X RANDR
+X RECORD
+X RENDER
+ SECURITY
+ SGI-GLX
+X SHAPE
+X SYNC
+ TOG-CUP
+X X-Resource
+ XC-APPGROUP
+X XC-MISC
+X XEVIE
+X XFIXES
+ XFree86-Bigfont
+ XFree86-DGA
+X XFree86-DRI
+ XFree86-Misc
+ XFree86-VidModeExtension
+ XINERAMA
+ XInputExtension
+ XKEYBOARD
+I XpExtension (XPRINT)
+X XTEST
+X XVideo
+U XVideo-MotionCompensation
diff --git a/libxcb/xcb-proto/autogen.sh b/libxcb/xcb-proto/autogen.sh
index 904cd6746..6fcae015c 100644
--- a/libxcb/xcb-proto/autogen.sh
+++ b/libxcb/xcb-proto/autogen.sh
@@ -1,12 +1,12 @@
-#! /bin/sh
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-ORIGDIR=`pwd`
-cd $srcdir
-
-autoreconf -v --install || exit 1
-cd $ORIGDIR || exit $?
-
-$srcdir/configure --enable-maintainer-mode "$@"
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+$srcdir/configure --enable-maintainer-mode "$@"
diff --git a/libxcb/xcb-proto/src/bigreq.xml b/libxcb/xcb-proto/src/bigreq.xml
index 3cca2f77f..df1455be9 100644
--- a/libxcb/xcb-proto/src/bigreq.xml
+++ b/libxcb/xcb-proto/src/bigreq.xml
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<xcb header="bigreq" extension-xname="BIG-REQUESTS"
- extension-name="BigRequests" extension-multiword="true"
- major-version="0" minor-version="0">
-
- <request name="Enable" opcode="0">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="maximum_request_length" />
- </reply>
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<xcb header="bigreq" extension-xname="BIG-REQUESTS"
+ extension-name="BigRequests" extension-multiword="true"
+ major-version="0" minor-version="0">
+
+ <request name="Enable" opcode="0">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="maximum_request_length" />
+ </reply>
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/composite.xml b/libxcb/xcb-proto/src/composite.xml
index d16b6e746..d6e5dc261 100644
--- a/libxcb/xcb-proto/src/composite.xml
+++ b/libxcb/xcb-proto/src/composite.xml
@@ -1,98 +1,98 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett. All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<!-- This file describes version 0.3 of COMPOSITE. -->
-<xcb header="composite" extension-xname="Composite" extension-name="Composite"
- major-version="0" minor-version="3">
-
- <import>xproto</import>
- <import>xfixes</import>
-
- <enum name="Redirect">
- <item name="Automatic" />
- <item name="Manual" />
- </enum>
-
- <request name="QueryVersion" opcode="0">
- <field type="CARD32" name="client_major_version" />
- <field type="CARD32" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="major_version" />
- <field type="CARD32" name="minor_version" />
- <pad bytes="16" />
- </reply>
- </request>
-
- <request name="RedirectWindow" opcode="1">
- <field type="WINDOW" name="window" />
- <field type="CARD8" name="update" enum="Redirect" />
- <pad bytes="3" />
- </request>
-
- <request name="RedirectSubwindows" opcode="2">
- <field type="WINDOW" name="window" />
- <field type="CARD8" name="update" enum="Redirect" />
- <pad bytes="3" />
- </request>
-
- <request name="UnredirectWindow" opcode="3">
- <field type="WINDOW" name="window" />
- <field type="CARD8" name="update" enum="Redirect" />
- <pad bytes="3" />
- </request>
-
- <request name="UnredirectSubwindows" opcode="4">
- <field type="WINDOW" name="window" />
- <field type="CARD8" name="update" enum="Redirect" />
- <pad bytes="3" />
- </request>
-
- <request name="CreateRegionFromBorderClip" opcode="5">
- <field type="REGION" name="region" />
- <field type="WINDOW" name="window" />
- </request>
-
- <request name="NameWindowPixmap" opcode="6">
- <field type="WINDOW" name="window" />
- <field type="PIXMAP" name="pixmap" />
- </request>
-
- <!-- new in version 0.3 -->
-
- <request name="GetOverlayWindow" opcode="7">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="WINDOW" name="overlay_win" />
- <pad bytes="20" />
- </reply>
- </request>
-
- <request name="ReleaseOverlayWindow" opcode="8">
- <field type="WINDOW" name="window" />
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett. All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<!-- This file describes version 0.3 of COMPOSITE. -->
+<xcb header="composite" extension-xname="Composite" extension-name="Composite"
+ major-version="0" minor-version="3">
+
+ <import>xproto</import>
+ <import>xfixes</import>
+
+ <enum name="Redirect">
+ <item name="Automatic" />
+ <item name="Manual" />
+ </enum>
+
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD32" name="client_major_version" />
+ <field type="CARD32" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="major_version" />
+ <field type="CARD32" name="minor_version" />
+ <pad bytes="16" />
+ </reply>
+ </request>
+
+ <request name="RedirectWindow" opcode="1">
+ <field type="WINDOW" name="window" />
+ <field type="CARD8" name="update" enum="Redirect" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="RedirectSubwindows" opcode="2">
+ <field type="WINDOW" name="window" />
+ <field type="CARD8" name="update" enum="Redirect" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="UnredirectWindow" opcode="3">
+ <field type="WINDOW" name="window" />
+ <field type="CARD8" name="update" enum="Redirect" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="UnredirectSubwindows" opcode="4">
+ <field type="WINDOW" name="window" />
+ <field type="CARD8" name="update" enum="Redirect" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="CreateRegionFromBorderClip" opcode="5">
+ <field type="REGION" name="region" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="NameWindowPixmap" opcode="6">
+ <field type="WINDOW" name="window" />
+ <field type="PIXMAP" name="pixmap" />
+ </request>
+
+ <!-- new in version 0.3 -->
+
+ <request name="GetOverlayWindow" opcode="7">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="overlay_win" />
+ <pad bytes="20" />
+ </reply>
+ </request>
+
+ <request name="ReleaseOverlayWindow" opcode="8">
+ <field type="WINDOW" name="window" />
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/damage.xml b/libxcb/xcb-proto/src/damage.xml
index 9c5cde5b6..5ac4cebbc 100644
--- a/libxcb/xcb-proto/src/damage.xml
+++ b/libxcb/xcb-proto/src/damage.xml
@@ -1,87 +1,87 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett
-Copyright (C) 2007 Jeremy Kolb
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<!-- This file describes version 1.1 of DAMAGE. -->
-<xcb header="damage" extension-xname="DAMAGE" extension-name="Damage"
- major-version="1" minor-version="1">
- <import>xproto</import>
- <import>xfixes</import>
-
- <xidtype name="DAMAGE" />
-
- <enum name="ReportLevel">
- <item name="RawRectangles" />
- <item name="DeltaRectangles" />
- <item name="BoundingBox" />
- <item name="NonEmpty" />
- </enum>
-
- <error name="BadDamage" number="0" />
-
- <request name="QueryVersion" opcode="0">
- <field type="CARD32" name="client_major_version" />
- <field type="CARD32" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="major_version" />
- <field type="CARD32" name="minor_version" />
- <pad bytes="16" />
- </reply>
- </request>
-
- <request name="Create" opcode="1">
- <field type="DAMAGE" name="damage" />
- <field type="DRAWABLE" name="drawable" />
- <field type="CARD8" name="level" enum="ReportLevel" />
- <pad bytes="3" />
- </request>
-
- <request name="Destroy" opcode="2">
- <field type="DAMAGE" name="damage" />
- </request>
-
- <request name="Subtract" opcode="3">
- <field type="DAMAGE" name="damage" />
- <field type="REGION" name="repair" altenum="Region" />
- <field type="REGION" name="parts" altenum="Region" />
- </request>
-
- <request name="Add" opcode="4">
- <field type="DRAWABLE" name="drawable" />
- <field type="REGION" name="region" />
- </request>
-
- <event name="Notify" number="0">
- <field type="CARD8" name="level" enum="ReportLevel" />
- <field type="DRAWABLE" name="drawable" />
- <field type="DAMAGE" name="damage" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="RECTANGLE" name="area" />
- <field type="RECTANGLE" name="geometry" />
- </event>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett
+Copyright (C) 2007 Jeremy Kolb
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<!-- This file describes version 1.1 of DAMAGE. -->
+<xcb header="damage" extension-xname="DAMAGE" extension-name="Damage"
+ major-version="1" minor-version="1">
+ <import>xproto</import>
+ <import>xfixes</import>
+
+ <xidtype name="DAMAGE" />
+
+ <enum name="ReportLevel">
+ <item name="RawRectangles" />
+ <item name="DeltaRectangles" />
+ <item name="BoundingBox" />
+ <item name="NonEmpty" />
+ </enum>
+
+ <error name="BadDamage" number="0" />
+
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD32" name="client_major_version" />
+ <field type="CARD32" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="major_version" />
+ <field type="CARD32" name="minor_version" />
+ <pad bytes="16" />
+ </reply>
+ </request>
+
+ <request name="Create" opcode="1">
+ <field type="DAMAGE" name="damage" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD8" name="level" enum="ReportLevel" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="Destroy" opcode="2">
+ <field type="DAMAGE" name="damage" />
+ </request>
+
+ <request name="Subtract" opcode="3">
+ <field type="DAMAGE" name="damage" />
+ <field type="REGION" name="repair" altenum="Region" />
+ <field type="REGION" name="parts" altenum="Region" />
+ </request>
+
+ <request name="Add" opcode="4">
+ <field type="DRAWABLE" name="drawable" />
+ <field type="REGION" name="region" />
+ </request>
+
+ <event name="Notify" number="0">
+ <field type="CARD8" name="level" enum="ReportLevel" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="DAMAGE" name="damage" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="RECTANGLE" name="area" />
+ <field type="RECTANGLE" name="geometry" />
+ </event>
+</xcb>
diff --git a/libxcb/xcb-proto/src/dpms.xml b/libxcb/xcb-proto/src/dpms.xml
index 0c2ac2027..32a9fca52 100644
--- a/libxcb/xcb-proto/src/dpms.xml
+++ b/libxcb/xcb-proto/src/dpms.xml
@@ -1,87 +1,87 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<xcb header="dpms" extension-xname="DPMS" extension-name="DPMS"
- major-version="0" minor-version="0">
- <request name="GetVersion" opcode="0">
- <field type="CARD16" name="client_major_version" />
- <field type="CARD16" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="server_major_version" />
- <field type="CARD16" name="server_minor_version" />
- </reply>
- </request>
-
- <request name="Capable" opcode="1">
- <reply>
- <pad bytes="1" />
- <field type="BOOL" name="capable" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <request name="GetTimeouts" opcode="2">
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="standby_timeout" />
- <field type="CARD16" name="suspend_timeout" />
- <field type="CARD16" name="off_timeout" />
- <pad bytes="18" />
- </reply>
- </request>
-
- <request name="SetTimeouts" opcode="3">
- <field type="CARD16" name="standby_timeout" />
- <field type="CARD16" name="suspend_timeout" />
- <field type="CARD16" name="off_timeout" />
- </request>
-
- <request name="Enable" opcode="4" />
-
- <request name="Disable" opcode="5" />
-
- <enum name="DPMSMode">
- <item name="On" />
- <item name="Standby" />
- <item name="Suspend" />
- <item name="Off" />
- </enum>
-
- <request name="ForceLevel" opcode="6">
- <field type="CARD16" name="power_level" enum="DPMSMode" />
- </request>
-
- <request name="Info" opcode="7">
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="power_level" enum="DPMSMode" />
- <field type="BOOL" name="state" />
- <pad bytes="21" />
- </reply>
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<xcb header="dpms" extension-xname="DPMS" extension-name="DPMS"
+ major-version="0" minor-version="0">
+ <request name="GetVersion" opcode="0">
+ <field type="CARD16" name="client_major_version" />
+ <field type="CARD16" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="server_major_version" />
+ <field type="CARD16" name="server_minor_version" />
+ </reply>
+ </request>
+
+ <request name="Capable" opcode="1">
+ <reply>
+ <pad bytes="1" />
+ <field type="BOOL" name="capable" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <request name="GetTimeouts" opcode="2">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="standby_timeout" />
+ <field type="CARD16" name="suspend_timeout" />
+ <field type="CARD16" name="off_timeout" />
+ <pad bytes="18" />
+ </reply>
+ </request>
+
+ <request name="SetTimeouts" opcode="3">
+ <field type="CARD16" name="standby_timeout" />
+ <field type="CARD16" name="suspend_timeout" />
+ <field type="CARD16" name="off_timeout" />
+ </request>
+
+ <request name="Enable" opcode="4" />
+
+ <request name="Disable" opcode="5" />
+
+ <enum name="DPMSMode">
+ <item name="On" />
+ <item name="Standby" />
+ <item name="Suspend" />
+ <item name="Off" />
+ </enum>
+
+ <request name="ForceLevel" opcode="6">
+ <field type="CARD16" name="power_level" enum="DPMSMode" />
+ </request>
+
+ <request name="Info" opcode="7">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="power_level" enum="DPMSMode" />
+ <field type="BOOL" name="state" />
+ <pad bytes="21" />
+ </reply>
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/dri2.xml b/libxcb/xcb-proto/src/dri2.xml
index 3af160066..508e4c1fc 100644
--- a/libxcb/xcb-proto/src/dri2.xml
+++ b/libxcb/xcb-proto/src/dri2.xml
@@ -28,7 +28,7 @@ authorization from the authors.
-->
<xcb header="dri2" extension-xname="DRI2" extension-name="DRI2"
- major-version="1" minor-version="3">
+ major-version="1" minor-version="4">
<import>xproto</import>
<enum name="Attachment">
@@ -241,6 +241,18 @@ authorization from the authors.
<field type="CARD32" name="interval" />
</request>
+ <!-- Version 1.4 -->
+
+ <request name="GetParam" opcode="13">
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD32" name="param" />
+ <reply>
+ <field type="BOOL" name="is_param_recognized" />
+ <field type="CARD32" name="value_hi" />
+ <field type="CARD32" name="value_lo" />
+ </reply>
+ </request>
+
<!-- Events -->
<event name="BufferSwapComplete" number="0">
diff --git a/libxcb/xcb-proto/src/ge.xml b/libxcb/xcb-proto/src/ge.xml
index 3a6210d97..b9ecacc4e 100644
--- a/libxcb/xcb-proto/src/ge.xml
+++ b/libxcb/xcb-proto/src/ge.xml
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2009 Open Text Corporation. All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<xcb header="ge" extension-xname="Generic Event Extension" extension-name="GenericEvent"
- major-version="1" minor-version="0">
-
- <!-- Version 1 -->
- <request name="QueryVersion" opcode="0">
- <field type="CARD16" name="client_major_version" />
- <field type="CARD16" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="major_version" />
- <field type="CARD16" name="minor_version" />
- <pad bytes="20" />
- </reply>
- </request>
-
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2009 Open Text Corporation. All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<xcb header="ge" extension-xname="Generic Event Extension" extension-name="GenericEvent"
+ major-version="1" minor-version="0">
+
+ <!-- Version 1 -->
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD16" name="client_major_version" />
+ <field type="CARD16" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="major_version" />
+ <field type="CARD16" name="minor_version" />
+ <pad bytes="20" />
+ </reply>
+ </request>
+
+</xcb>
diff --git a/libxcb/xcb-proto/src/randr.xml b/libxcb/xcb-proto/src/randr.xml
index 4f0716f7c..b28372e9c 100644
--- a/libxcb/xcb-proto/src/randr.xml
+++ b/libxcb/xcb-proto/src/randr.xml
@@ -1,671 +1,671 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb, Ian Osgood
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<xcb header="randr" extension-xname="RANDR" extension-name="RandR"
- major-version="1" minor-version="3">
-
- <import>xproto</import>
- <import>render</import>
-
- <!-- XIDs -->
- <xidtype name="MODE" />
- <xidtype name="CRTC" />
- <xidtype name="OUTPUT" />
-
- <!-- Errors -->
-
- <error name="BadOutput" number="0" />
- <error name="BadCrtc" number="1" />
- <error name="BadMode" number="2" />
-
- <!-- Requests -->
-
- <enum name="Rotation">
- <item name="Rotate_0"> <bit>0</bit></item>
- <item name="Rotate_90"> <bit>1</bit></item>
- <item name="Rotate_180"><bit>2</bit></item>
- <item name="Rotate_270"><bit>3</bit></item>
- <item name="Reflect_X"> <bit>4</bit></item>
- <item name="Reflect_Y"> <bit>5</bit></item>
- </enum>
-
- <struct name="ScreenSize">
- <field type="CARD16" name="width" /> <!-- pixels -->
- <field type="CARD16" name="height" />
- <field type="CARD16" name="mwidth" /> <!-- millimeters -->
- <field type="CARD16" name="mheight" />
- </struct>
-
- <struct name="RefreshRates">
- <field type="CARD16" name="nRates" />
- <list type="CARD16" name="rates">
- <fieldref>nRates</fieldref>
- </list>
- </struct>
-
- <request name="QueryVersion" opcode="0">
- <field type="CARD32" name="major_version" />
- <field type="CARD32" name="minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="major_version" />
- <field type="CARD32" name="minor_version" />
- <pad bytes="16" />
- </reply>
- </request>
-
- <!-- Skip obsolete opcode 1 so old clients fail immediately -->
-
- <enum name="SetConfig">
- <item name="Success"><value>0</value></item>
- <item name="InvalidConfigTime"><value>1</value></item>
- <item name="InvalidTime"><value>2</value></item>
- <item name="Failed"><value>3</value></item>
- </enum>
-
- <!-- This is for the 1.1 version request. I don't believe we need to specify a 1.0 request
- as few things used randr 1.0. The only difference is the removal of refresh and padding I think.
- BEWARE: the docs lie!
- -->
- <request name="SetScreenConfig" opcode="2">
- <field type="WINDOW" name="window" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="CARD16" name="sizeID" />
- <field type="CARD16" name="rotation" mask="Rotation" />
- <field type="CARD16" name="rate" />
- <pad bytes="2" />
- <reply>
- <field type="CARD8" name="status" enum="SetConfig" />
- <field type="TIMESTAMP" name="new_timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="WINDOW" name="root" />
- <field type="CARD16" name="subpixel_order" enum="SubPixel" />
- <pad bytes="10" />
- </reply>
- </request>
-
- <!-- opcode 3 is obsolete -->
-
- <enum name="NotifyMask" >
- <item name="ScreenChange"> <bit>0</bit></item>
- <!-- new in 1.2 -->
- <item name="CrtcChange"> <bit>1</bit></item>
- <item name="OutputChange"> <bit>2</bit></item>
- <item name="OutputProperty"><bit>3</bit></item>
- </enum>
-
- <request name="SelectInput" opcode="4">
- <field type="WINDOW" name="window" />
- <field type="CARD16" name="enable" mask="NotifyMask" />
- <pad bytes="2" />
- </request>
-
- <!--
- I think this is correct. It works. though I believe nInfo is a bit high...
- -->
- <request name="GetScreenInfo" opcode="5">
- <field type="WINDOW" name="window" />
- <reply>
- <field type="CARD8" name="rotations" mask="Rotation" />
- <field type="WINDOW" name="root" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="CARD16" name="nSizes" />
- <field type="CARD16" name="sizeID" />
- <field type="CARD16" name="rotation" mask="Rotation" />
- <field type="CARD16" name="rate" />
- <field type="CARD16" name="nInfo" />
- <pad bytes="2" />
- <list type="ScreenSize" name="sizes">
- <fieldref>nSizes</fieldref>
- </list>
- <list type="RefreshRates" name="rates">
- <op op="-">
- <fieldref>nInfo</fieldref>
- <fieldref>nSizes</fieldref>
- </op>
- </list>
- </reply>
- </request>
-
- <!-- new in version 1.2 -->
-
- <request name="GetScreenSizeRange" opcode="6">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="min_width" />
- <field type="CARD16" name="min_height" />
- <field type="CARD16" name="max_width" />
- <field type="CARD16" name="max_height" />
- <pad bytes="16" />
- </reply>
- </request>
-
- <request name="SetScreenSize" opcode="7">
- <field type="WINDOW" name="window" />
- <field type="CARD16" name="width" /> <!-- pixels -->
- <field type="CARD16" name="height" />
- <field type="CARD32" name="mm_width" /> <!-- millimeters -->
- <field type="CARD32" name="mm_height" />
- </request>
-
- <!-- for GetScreenResources.ModeInfo.ModeFlag -->
- <enum name="ModeFlag">
- <item name="HsyncPositive"> <bit>0</bit></item>
- <item name="HsyncNegative"> <bit>1</bit></item>
- <item name="VsyncPositive"> <bit>2</bit></item>
- <item name="VsyncNegative"> <bit>3</bit></item>
- <item name="Interlace"> <bit>4</bit></item>
- <item name="DoubleScan"> <bit>5</bit></item>
- <item name="Csync"> <bit>6</bit></item>
- <item name="CsyncPositive"> <bit>7</bit></item>
- <item name="CsyncNegative"> <bit>8</bit></item>
- <item name="HskewPresent"> <bit>9</bit></item>
- <item name="Bcast"> <bit>10</bit></item>
- <item name="PixelMultiplex"><bit>11</bit></item>
- <item name="DoubleClock"> <bit>12</bit></item>
- <item name="HalveClock"> <bit>13</bit></item>
- </enum>
-
- <struct name="ModeInfo">
- <field type="CARD32" name="id" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD32" name="dot_clock" />
- <field type="CARD16" name="hsync_start" />
- <field type="CARD16" name="hsync_end" />
- <field type="CARD16" name="htotal" />
- <field type="CARD16" name="hskew" />
- <field type="CARD16" name="vsync_start" />
- <field type="CARD16" name="vsync_end" />
- <field type="CARD16" name="vtotal" />
- <field type="CARD16" name="name_len" />
- <field type="CARD32" name="mode_flags" mask="ModeFlag" />
- <!-- the mode name itself -->
- </struct>
-
- <request name="GetScreenResources" opcode="8">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="CARD16" name="num_crtcs" />
- <field type="CARD16" name="num_outputs" />
- <field type="CARD16" name="num_modes" />
- <field type="CARD16" name="names_len" />
- <pad bytes="8" />
- <list type="CRTC" name="crtcs">
- <fieldref>num_crtcs</fieldref>
- </list>
- <list type="OUTPUT" name="outputs">
- <fieldref>num_outputs</fieldref>
- </list>
- <list type="ModeInfo" name="modes">
- <fieldref>num_modes</fieldref>
- </list>
- <!-- FIXME: this is *not* null separated!
- One must use ModeInfo.name_len from each previous
- ModeInfo to infer the position of the name. -->
- <list type="BYTE" name="names">
- <fieldref>names_len</fieldref>
- </list>
- </reply>
- </request>
-
- <!-- for GetOutputInfo.connection -->
- <enum name="Connection">
- <item name="Connected" />
- <item name="Disconnected" />
- <item name="Unknown" />
- </enum>
-
- <request name="GetOutputInfo" opcode="9">
- <field type="OUTPUT" name="output" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <reply>
- <field type="CARD8" name="status" enum="SetConfig" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="CRTC" name="crtc" />
- <field type="CARD32" name="mm_width" /> <!-- millimeters -->
- <field type="CARD32" name="mm_height" />
- <field type="CARD8" name="connection" enum="Connection" />
- <field type="CARD8" name="subpixel_order" enum="SubPixel" />
- <field type="CARD16" name="num_crtcs" />
- <field type="CARD16" name="num_modes" />
- <field type="CARD16" name="num_preferred" />
- <field type="CARD16" name="num_clones" />
- <field type="CARD16" name="name_len" />
- <list type="CRTC" name="crtcs">
- <fieldref>num_crtcs</fieldref>
- </list>
- <list type="MODE" name="modes">
- <fieldref>num_modes</fieldref>
- </list>
- <list type="OUTPUT" name="clones">
- <fieldref>num_clones</fieldref>
- </list>
- <list type="BYTE" name="name">
- <fieldref>name_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="ListOutputProperties" opcode="10">
- <field type="OUTPUT" name="output" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="num_atoms" />
- <pad bytes="22" />
- <list type="ATOM" name="atoms">
- <fieldref>num_atoms</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="QueryOutputProperty" opcode="11">
- <field type="OUTPUT" name="output" />
- <field type="ATOM" name="property" />
- <reply>
- <pad bytes="1" />
- <field type="BOOL" name="pending" />
- <field type="BOOL" name="range" />
- <field type="BOOL" name="immutable" />
- <pad bytes="21" />
- <list type="INT32" name="validValues">
- <fieldref>length</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="ConfigureOutputProperty" opcode="12">
- <field type="OUTPUT" name="output" />
- <field type="ATOM" name="property" />
- <field type="BOOL" name="pending" />
- <field type="BOOL" name="range" />
- <pad bytes="2" />
- <list type="INT32" name="values" />
- </request>
-
- <request name="ChangeOutputProperty" opcode="13">
- <field type="OUTPUT" name="output" />
- <field type="ATOM" name="property" />
- <field type="ATOM" name="type" />
- <field type="CARD8" name="format" />
- <field type="CARD8" name="mode" enum="PropMode" />
- <pad bytes="2" />
- <field type="CARD32" name="num_units" />
- <list type="void" name="data">
- <op op="/">
- <op op="*">
- <fieldref>num_units</fieldref>
- <fieldref>format</fieldref>
- </op>
- <value>8</value>
- </op>
- </list>
- </request>
-
- <request name="DeleteOutputProperty" opcode="14">
- <field type="OUTPUT" name="output" />
- <field type="ATOM" name="property" />
- </request>
-
- <!-- NOTE: num_items depends on format (8/16/32) -->
- <request name="GetOutputProperty" opcode="15">
- <field type="OUTPUT" name="output" />
- <field type="ATOM" name="property" />
- <field type="ATOM" name="type" altenum="GetPropertyType" />
- <field type="CARD32" name="long_offset" />
- <field type="CARD32" name="long_length" />
- <field type="BOOL" name="delete" />
- <field type="BOOL" name="pending" />
- <pad bytes="2" />
- <reply>
- <field type="CARD8" name="format" />
- <field type="ATOM" name="type" altenum="Atom" />
- <field type="CARD32" name="bytes_after" />
- <field type="CARD32" name="num_items" />
- <pad bytes="12" />
- <list type="BYTE" name="data">
- <!-- n * format / 8 -->
- <op op="*">
- <fieldref>num_items</fieldref>
- <op op="/">
- <fieldref>format</fieldref>
- <value>8</value>
- </op>
- </op>
- </list>
- </reply>
- </request>
-
- <request name="CreateMode" opcode="16">
- <field type="WINDOW" name="window" />
- <field type="ModeInfo" name="mode_info" />
- <list type="char" name="name" />
- <reply>
- <pad bytes="1" />
- <field type="MODE" name="mode" />
- <pad bytes="20" />
- </reply>
- </request>
-
- <request name="DestroyMode" opcode="17">
- <field type="MODE" name="mode" />
- </request>
-
- <request name="AddOutputMode" opcode="18">
- <field type="OUTPUT" name="output" />
- <field type="MODE" name="mode" />
- </request>
-
- <request name="DeleteOutputMode" opcode="19">
- <field type="OUTPUT" name="output" />
- <field type="MODE" name="mode" />
- </request>
-
- <request name="GetCrtcInfo" opcode="20">
- <field type="CRTC" name="crtc" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <reply>
- <field type="CARD8" name="status" enum="SetConfig" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="INT16" name="x" />
- <field type="INT16" name="y" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="MODE" name="mode" />
- <field type="CARD16" name="rotation" mask="Rotation" />
- <field type="CARD16" name="rotations" mask="Rotation" />
- <field type="CARD16" name="num_outputs" />
- <field type="CARD16" name="num_possible_outputs" />
- <list type="OUTPUT" name="outputs">
- <fieldref>num_outputs</fieldref>
- </list>
- <list type="OUTPUT" name="possible">
- <fieldref>num_possible_outputs</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetCrtcConfig" opcode="21">
- <field type="CRTC" name="crtc" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="INT16" name="x" />
- <field type="INT16" name="y" />
- <field type="MODE" name="mode" />
- <field type="CARD16" name="rotation" mask="Rotation" />
- <pad bytes="2" />
- <list type="OUTPUT" name="outputs" />
- <reply>
- <field type="CARD8" name="status" enum="SetConfig" />
- <field type="TIMESTAMP" name="timestamp" />
- <pad bytes="20" />
- </reply>
- </request>
-
- <request name="GetCrtcGammaSize" opcode="22">
- <field type="CRTC" name="crtc" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="size" />
- <pad bytes="22" />
- </reply>
- </request>
-
- <request name="GetCrtcGamma" opcode="23">
- <field type="CRTC" name="crtc" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="size" />
- <pad bytes="22" />
- <list type="CARD16" name="red">
- <fieldref>size</fieldref>
- </list>
- <list type="CARD16" name="green">
- <fieldref>size</fieldref>
- </list>
- <list type="CARD16" name="blue">
- <fieldref>size</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetCrtcGamma" opcode="24">
- <field type="CRTC" name="crtc" />
- <field type="CARD16" name="size" />
- <pad bytes="2"/>
- <list type="CARD16" name="red">
- <fieldref>size</fieldref>
- </list>
- <list type="CARD16" name="green">
- <fieldref>size</fieldref>
- </list>
- <list type="CARD16" name="blue">
- <fieldref>size</fieldref>
- </list>
- </request>
-
- <!-- new in 1.3 -->
-
- <request name="GetScreenResourcesCurrent" opcode="25">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="CARD16" name="num_crtcs" />
- <field type="CARD16" name="num_outputs" />
- <field type="CARD16" name="num_modes" />
- <field type="CARD16" name="names_len" />
- <pad bytes="8" />
- <list type="CRTC" name="crtcs">
- <fieldref>num_crtcs</fieldref>
- </list>
- <list type="OUTPUT" name="outputs">
- <fieldref>num_outputs</fieldref>
- </list>
- <list type="ModeInfo" name="modes">
- <fieldref>num_modes</fieldref>
- </list>
- <!-- FIXME: this is *not* null separated!
- One must use ModeInfo.name_len from each previous
- ModeInfo to infer the position of the name. -->
- <list type="BYTE" name="names">
- <fieldref>names_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetCrtcTransform" opcode="26">
- <field type="CRTC" name="crtc" />
- <field type="TRANSFORM" name="transform" />
- <field type="CARD16" name="filter_len" />
- <pad bytes="2" />
- <list type="char" name="filter_name">
- <fieldref>filter_len</fieldref>
- </list>
- <list type="FIXED" name="filter_params" />
- </request>
-
- <request name="GetCrtcTransform" opcode="27">
- <field type="CRTC" name="crtc" />
- <reply>
- <pad bytes="1" />
- <field type="TRANSFORM" name="pending_transform" />
- <field type="BOOL" name="has_transforms" />
- <pad bytes="3" />
- <field type="TRANSFORM" name="current_transform" />
- <pad bytes="4" />
- <field type="CARD16" name="pending_len" />
- <field type="CARD16" name="pending_nparams" />
- <field type="CARD16" name="current_len" />
- <field type="CARD16" name="current_nparams" />
- <list type="char" name="pending_filter_name" >
- <fieldref>pending_len</fieldref>
- </list>
- <list type="FIXED" name="pending_params" >
- <fieldref>pending_nparams</fieldref>
- </list>
- <list type="char" name="current_filter_name" >
- <fieldref>current_len</fieldref>
- </list>
- <list type="FIXED" name="current_params" >
- <fieldref>current_nparams</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetPanning" opcode="28">
- <field type="CRTC" name="crtc" />
- <reply>
- <field type="CARD8" name="status" enum="SetConfig" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="CARD16" name="left" />
- <field type="CARD16" name="top" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD16" name="track_left" />
- <field type="CARD16" name="track_top" />
- <field type="CARD16" name="track_width" />
- <field type="CARD16" name="track_height" />
- <field type="INT16" name="border_left" />
- <field type="INT16" name="border_top" />
- <field type="INT16" name="border_right" />
- <field type="INT16" name="border_bottom" />
- </reply>
- </request>
-
- <request name="SetPanning" opcode="29">
- <field type="CRTC" name="crtc" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="CARD16" name="left" />
- <field type="CARD16" name="top" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD16" name="track_left" />
- <field type="CARD16" name="track_top" />
- <field type="CARD16" name="track_width" />
- <field type="CARD16" name="track_height" />
- <field type="INT16" name="border_left" />
- <field type="INT16" name="border_top" />
- <field type="INT16" name="border_right" />
- <field type="INT16" name="border_bottom" />
- <reply>
- <field type="CARD8" name="status" enum="SetConfig" />
- <field type="TIMESTAMP" name="timestamp" />
- </reply>
- </request>
-
- <request name="SetOutputPrimary" opcode="30">
- <field type="WINDOW" name="window" />
- <field type="OUTPUT" name="output" />
- </request>
-
- <request name="GetOutputPrimary" opcode="31">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="OUTPUT" name="output" />
- </reply>
- </request>
-
- <!-- Events -->
-
- <event name="ScreenChangeNotify" number="0">
- <field type="CARD8" name="rotation" mask="Rotation" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="WINDOW" name="root" />
- <field type="WINDOW" name="request_window" />
- <field type="CARD16" name="sizeID" />
- <field type="CARD16" name="subpixel_order" enum="SubPixel" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD16" name="mwidth" />
- <field type="CARD16" name="mheight" />
- </event>
-
- <!-- New in version 1.2 -->
-
- <!-- subcode -->
- <enum name="Notify" >
- <item name="CrtcChange"> <value>0</value></item>
- <item name="OutputChange"> <value>1</value></item>
- <item name="OutputProperty"><value>2</value></item>
- </enum>
-
- <struct name="CrtcChange">
- <field type="TIMESTAMP" name="timestamp" />
- <field type="WINDOW" name="window" />
- <field type="CRTC" name="crtc" />
- <field type="MODE" name="mode" />
- <field type="CARD16" name="rotation" mask="Rotation" />
- <pad bytes="2" />
- <field type="INT16" name="x" />
- <field type="INT16" name="y" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- </struct>
-
- <struct name="OutputChange">
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="config_timestamp" />
- <field type="WINDOW" name="window" />
- <field type="OUTPUT" name="output" />
- <field type="CRTC" name="crtc" />
- <field type="MODE" name="mode" />
- <field type="CARD16" name="rotation" mask="Rotation" />
- <field type="CARD8" name="connection" enum="Connection" />
- <field type="CARD8" name="subpixel_order" enum="SubPixel" />
- </struct>
-
- <struct name="OutputProperty">
- <field type="WINDOW" name="window" />
- <field type="OUTPUT" name="output" />
- <field type="ATOM" name="atom" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="CARD8" name="status" enum="Property" />
- <pad bytes="11" />
- </struct>
-
- <union name="NotifyData">
- <field type="CrtcChange" name="cc" />
- <field type="OutputChange" name="oc" />
- <field type="OutputProperty" name="op" />
- </union>
-
- <event name="Notify" number="1">
- <field type="CARD8" name="subCode" enum="Notify" />
- <field type="NotifyData" name="u" />
- </event>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb, Ian Osgood
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<xcb header="randr" extension-xname="RANDR" extension-name="RandR"
+ major-version="1" minor-version="3">
+
+ <import>xproto</import>
+ <import>render</import>
+
+ <!-- XIDs -->
+ <xidtype name="MODE" />
+ <xidtype name="CRTC" />
+ <xidtype name="OUTPUT" />
+
+ <!-- Errors -->
+
+ <error name="BadOutput" number="0" />
+ <error name="BadCrtc" number="1" />
+ <error name="BadMode" number="2" />
+
+ <!-- Requests -->
+
+ <enum name="Rotation">
+ <item name="Rotate_0"> <bit>0</bit></item>
+ <item name="Rotate_90"> <bit>1</bit></item>
+ <item name="Rotate_180"><bit>2</bit></item>
+ <item name="Rotate_270"><bit>3</bit></item>
+ <item name="Reflect_X"> <bit>4</bit></item>
+ <item name="Reflect_Y"> <bit>5</bit></item>
+ </enum>
+
+ <struct name="ScreenSize">
+ <field type="CARD16" name="width" /> <!-- pixels -->
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="mwidth" /> <!-- millimeters -->
+ <field type="CARD16" name="mheight" />
+ </struct>
+
+ <struct name="RefreshRates">
+ <field type="CARD16" name="nRates" />
+ <list type="CARD16" name="rates">
+ <fieldref>nRates</fieldref>
+ </list>
+ </struct>
+
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD32" name="major_version" />
+ <field type="CARD32" name="minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="major_version" />
+ <field type="CARD32" name="minor_version" />
+ <pad bytes="16" />
+ </reply>
+ </request>
+
+ <!-- Skip obsolete opcode 1 so old clients fail immediately -->
+
+ <enum name="SetConfig">
+ <item name="Success"><value>0</value></item>
+ <item name="InvalidConfigTime"><value>1</value></item>
+ <item name="InvalidTime"><value>2</value></item>
+ <item name="Failed"><value>3</value></item>
+ </enum>
+
+ <!-- This is for the 1.1 version request. I don't believe we need to specify a 1.0 request
+ as few things used randr 1.0. The only difference is the removal of refresh and padding I think.
+ BEWARE: the docs lie!
+ -->
+ <request name="SetScreenConfig" opcode="2">
+ <field type="WINDOW" name="window" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="CARD16" name="sizeID" />
+ <field type="CARD16" name="rotation" mask="Rotation" />
+ <field type="CARD16" name="rate" />
+ <pad bytes="2" />
+ <reply>
+ <field type="CARD8" name="status" enum="SetConfig" />
+ <field type="TIMESTAMP" name="new_timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="WINDOW" name="root" />
+ <field type="CARD16" name="subpixel_order" enum="SubPixel" />
+ <pad bytes="10" />
+ </reply>
+ </request>
+
+ <!-- opcode 3 is obsolete -->
+
+ <enum name="NotifyMask" >
+ <item name="ScreenChange"> <bit>0</bit></item>
+ <!-- new in 1.2 -->
+ <item name="CrtcChange"> <bit>1</bit></item>
+ <item name="OutputChange"> <bit>2</bit></item>
+ <item name="OutputProperty"><bit>3</bit></item>
+ </enum>
+
+ <request name="SelectInput" opcode="4">
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="enable" mask="NotifyMask" />
+ <pad bytes="2" />
+ </request>
+
+ <!--
+ I think this is correct. It works. though I believe nInfo is a bit high...
+ -->
+ <request name="GetScreenInfo" opcode="5">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="CARD8" name="rotations" mask="Rotation" />
+ <field type="WINDOW" name="root" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="CARD16" name="nSizes" />
+ <field type="CARD16" name="sizeID" />
+ <field type="CARD16" name="rotation" mask="Rotation" />
+ <field type="CARD16" name="rate" />
+ <field type="CARD16" name="nInfo" />
+ <pad bytes="2" />
+ <list type="ScreenSize" name="sizes">
+ <fieldref>nSizes</fieldref>
+ </list>
+ <list type="RefreshRates" name="rates">
+ <op op="-">
+ <fieldref>nInfo</fieldref>
+ <fieldref>nSizes</fieldref>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <!-- new in version 1.2 -->
+
+ <request name="GetScreenSizeRange" opcode="6">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="min_width" />
+ <field type="CARD16" name="min_height" />
+ <field type="CARD16" name="max_width" />
+ <field type="CARD16" name="max_height" />
+ <pad bytes="16" />
+ </reply>
+ </request>
+
+ <request name="SetScreenSize" opcode="7">
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="width" /> <!-- pixels -->
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="mm_width" /> <!-- millimeters -->
+ <field type="CARD32" name="mm_height" />
+ </request>
+
+ <!-- for GetScreenResources.ModeInfo.ModeFlag -->
+ <enum name="ModeFlag">
+ <item name="HsyncPositive"> <bit>0</bit></item>
+ <item name="HsyncNegative"> <bit>1</bit></item>
+ <item name="VsyncPositive"> <bit>2</bit></item>
+ <item name="VsyncNegative"> <bit>3</bit></item>
+ <item name="Interlace"> <bit>4</bit></item>
+ <item name="DoubleScan"> <bit>5</bit></item>
+ <item name="Csync"> <bit>6</bit></item>
+ <item name="CsyncPositive"> <bit>7</bit></item>
+ <item name="CsyncNegative"> <bit>8</bit></item>
+ <item name="HskewPresent"> <bit>9</bit></item>
+ <item name="Bcast"> <bit>10</bit></item>
+ <item name="PixelMultiplex"><bit>11</bit></item>
+ <item name="DoubleClock"> <bit>12</bit></item>
+ <item name="HalveClock"> <bit>13</bit></item>
+ </enum>
+
+ <struct name="ModeInfo">
+ <field type="CARD32" name="id" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="dot_clock" />
+ <field type="CARD16" name="hsync_start" />
+ <field type="CARD16" name="hsync_end" />
+ <field type="CARD16" name="htotal" />
+ <field type="CARD16" name="hskew" />
+ <field type="CARD16" name="vsync_start" />
+ <field type="CARD16" name="vsync_end" />
+ <field type="CARD16" name="vtotal" />
+ <field type="CARD16" name="name_len" />
+ <field type="CARD32" name="mode_flags" mask="ModeFlag" />
+ <!-- the mode name itself -->
+ </struct>
+
+ <request name="GetScreenResources" opcode="8">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="CARD16" name="num_crtcs" />
+ <field type="CARD16" name="num_outputs" />
+ <field type="CARD16" name="num_modes" />
+ <field type="CARD16" name="names_len" />
+ <pad bytes="8" />
+ <list type="CRTC" name="crtcs">
+ <fieldref>num_crtcs</fieldref>
+ </list>
+ <list type="OUTPUT" name="outputs">
+ <fieldref>num_outputs</fieldref>
+ </list>
+ <list type="ModeInfo" name="modes">
+ <fieldref>num_modes</fieldref>
+ </list>
+ <!-- FIXME: this is *not* null separated!
+ One must use ModeInfo.name_len from each previous
+ ModeInfo to infer the position of the name. -->
+ <list type="BYTE" name="names">
+ <fieldref>names_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <!-- for GetOutputInfo.connection -->
+ <enum name="Connection">
+ <item name="Connected" />
+ <item name="Disconnected" />
+ <item name="Unknown" />
+ </enum>
+
+ <request name="GetOutputInfo" opcode="9">
+ <field type="OUTPUT" name="output" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <reply>
+ <field type="CARD8" name="status" enum="SetConfig" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="CRTC" name="crtc" />
+ <field type="CARD32" name="mm_width" /> <!-- millimeters -->
+ <field type="CARD32" name="mm_height" />
+ <field type="CARD8" name="connection" enum="Connection" />
+ <field type="CARD8" name="subpixel_order" enum="SubPixel" />
+ <field type="CARD16" name="num_crtcs" />
+ <field type="CARD16" name="num_modes" />
+ <field type="CARD16" name="num_preferred" />
+ <field type="CARD16" name="num_clones" />
+ <field type="CARD16" name="name_len" />
+ <list type="CRTC" name="crtcs">
+ <fieldref>num_crtcs</fieldref>
+ </list>
+ <list type="MODE" name="modes">
+ <fieldref>num_modes</fieldref>
+ </list>
+ <list type="OUTPUT" name="clones">
+ <fieldref>num_clones</fieldref>
+ </list>
+ <list type="BYTE" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListOutputProperties" opcode="10">
+ <field type="OUTPUT" name="output" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="num_atoms" />
+ <pad bytes="22" />
+ <list type="ATOM" name="atoms">
+ <fieldref>num_atoms</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryOutputProperty" opcode="11">
+ <field type="OUTPUT" name="output" />
+ <field type="ATOM" name="property" />
+ <reply>
+ <pad bytes="1" />
+ <field type="BOOL" name="pending" />
+ <field type="BOOL" name="range" />
+ <field type="BOOL" name="immutable" />
+ <pad bytes="21" />
+ <list type="INT32" name="validValues">
+ <fieldref>length</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ConfigureOutputProperty" opcode="12">
+ <field type="OUTPUT" name="output" />
+ <field type="ATOM" name="property" />
+ <field type="BOOL" name="pending" />
+ <field type="BOOL" name="range" />
+ <pad bytes="2" />
+ <list type="INT32" name="values" />
+ </request>
+
+ <request name="ChangeOutputProperty" opcode="13">
+ <field type="OUTPUT" name="output" />
+ <field type="ATOM" name="property" />
+ <field type="ATOM" name="type" />
+ <field type="CARD8" name="format" />
+ <field type="CARD8" name="mode" enum="PropMode" />
+ <pad bytes="2" />
+ <field type="CARD32" name="num_units" />
+ <list type="void" name="data">
+ <op op="/">
+ <op op="*">
+ <fieldref>num_units</fieldref>
+ <fieldref>format</fieldref>
+ </op>
+ <value>8</value>
+ </op>
+ </list>
+ </request>
+
+ <request name="DeleteOutputProperty" opcode="14">
+ <field type="OUTPUT" name="output" />
+ <field type="ATOM" name="property" />
+ </request>
+
+ <!-- NOTE: num_items depends on format (8/16/32) -->
+ <request name="GetOutputProperty" opcode="15">
+ <field type="OUTPUT" name="output" />
+ <field type="ATOM" name="property" />
+ <field type="ATOM" name="type" altenum="GetPropertyType" />
+ <field type="CARD32" name="long_offset" />
+ <field type="CARD32" name="long_length" />
+ <field type="BOOL" name="delete" />
+ <field type="BOOL" name="pending" />
+ <pad bytes="2" />
+ <reply>
+ <field type="CARD8" name="format" />
+ <field type="ATOM" name="type" altenum="Atom" />
+ <field type="CARD32" name="bytes_after" />
+ <field type="CARD32" name="num_items" />
+ <pad bytes="12" />
+ <list type="BYTE" name="data">
+ <!-- n * format / 8 -->
+ <op op="*">
+ <fieldref>num_items</fieldref>
+ <op op="/">
+ <fieldref>format</fieldref>
+ <value>8</value>
+ </op>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="CreateMode" opcode="16">
+ <field type="WINDOW" name="window" />
+ <field type="ModeInfo" name="mode_info" />
+ <list type="char" name="name" />
+ <reply>
+ <pad bytes="1" />
+ <field type="MODE" name="mode" />
+ <pad bytes="20" />
+ </reply>
+ </request>
+
+ <request name="DestroyMode" opcode="17">
+ <field type="MODE" name="mode" />
+ </request>
+
+ <request name="AddOutputMode" opcode="18">
+ <field type="OUTPUT" name="output" />
+ <field type="MODE" name="mode" />
+ </request>
+
+ <request name="DeleteOutputMode" opcode="19">
+ <field type="OUTPUT" name="output" />
+ <field type="MODE" name="mode" />
+ </request>
+
+ <request name="GetCrtcInfo" opcode="20">
+ <field type="CRTC" name="crtc" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <reply>
+ <field type="CARD8" name="status" enum="SetConfig" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="MODE" name="mode" />
+ <field type="CARD16" name="rotation" mask="Rotation" />
+ <field type="CARD16" name="rotations" mask="Rotation" />
+ <field type="CARD16" name="num_outputs" />
+ <field type="CARD16" name="num_possible_outputs" />
+ <list type="OUTPUT" name="outputs">
+ <fieldref>num_outputs</fieldref>
+ </list>
+ <list type="OUTPUT" name="possible">
+ <fieldref>num_possible_outputs</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetCrtcConfig" opcode="21">
+ <field type="CRTC" name="crtc" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="MODE" name="mode" />
+ <field type="CARD16" name="rotation" mask="Rotation" />
+ <pad bytes="2" />
+ <list type="OUTPUT" name="outputs" />
+ <reply>
+ <field type="CARD8" name="status" enum="SetConfig" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <pad bytes="20" />
+ </reply>
+ </request>
+
+ <request name="GetCrtcGammaSize" opcode="22">
+ <field type="CRTC" name="crtc" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="size" />
+ <pad bytes="22" />
+ </reply>
+ </request>
+
+ <request name="GetCrtcGamma" opcode="23">
+ <field type="CRTC" name="crtc" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="size" />
+ <pad bytes="22" />
+ <list type="CARD16" name="red">
+ <fieldref>size</fieldref>
+ </list>
+ <list type="CARD16" name="green">
+ <fieldref>size</fieldref>
+ </list>
+ <list type="CARD16" name="blue">
+ <fieldref>size</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetCrtcGamma" opcode="24">
+ <field type="CRTC" name="crtc" />
+ <field type="CARD16" name="size" />
+ <pad bytes="2"/>
+ <list type="CARD16" name="red">
+ <fieldref>size</fieldref>
+ </list>
+ <list type="CARD16" name="green">
+ <fieldref>size</fieldref>
+ </list>
+ <list type="CARD16" name="blue">
+ <fieldref>size</fieldref>
+ </list>
+ </request>
+
+ <!-- new in 1.3 -->
+
+ <request name="GetScreenResourcesCurrent" opcode="25">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="CARD16" name="num_crtcs" />
+ <field type="CARD16" name="num_outputs" />
+ <field type="CARD16" name="num_modes" />
+ <field type="CARD16" name="names_len" />
+ <pad bytes="8" />
+ <list type="CRTC" name="crtcs">
+ <fieldref>num_crtcs</fieldref>
+ </list>
+ <list type="OUTPUT" name="outputs">
+ <fieldref>num_outputs</fieldref>
+ </list>
+ <list type="ModeInfo" name="modes">
+ <fieldref>num_modes</fieldref>
+ </list>
+ <!-- FIXME: this is *not* null separated!
+ One must use ModeInfo.name_len from each previous
+ ModeInfo to infer the position of the name. -->
+ <list type="BYTE" name="names">
+ <fieldref>names_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetCrtcTransform" opcode="26">
+ <field type="CRTC" name="crtc" />
+ <field type="TRANSFORM" name="transform" />
+ <field type="CARD16" name="filter_len" />
+ <pad bytes="2" />
+ <list type="char" name="filter_name">
+ <fieldref>filter_len</fieldref>
+ </list>
+ <list type="FIXED" name="filter_params" />
+ </request>
+
+ <request name="GetCrtcTransform" opcode="27">
+ <field type="CRTC" name="crtc" />
+ <reply>
+ <pad bytes="1" />
+ <field type="TRANSFORM" name="pending_transform" />
+ <field type="BOOL" name="has_transforms" />
+ <pad bytes="3" />
+ <field type="TRANSFORM" name="current_transform" />
+ <pad bytes="4" />
+ <field type="CARD16" name="pending_len" />
+ <field type="CARD16" name="pending_nparams" />
+ <field type="CARD16" name="current_len" />
+ <field type="CARD16" name="current_nparams" />
+ <list type="char" name="pending_filter_name" >
+ <fieldref>pending_len</fieldref>
+ </list>
+ <list type="FIXED" name="pending_params" >
+ <fieldref>pending_nparams</fieldref>
+ </list>
+ <list type="char" name="current_filter_name" >
+ <fieldref>current_len</fieldref>
+ </list>
+ <list type="FIXED" name="current_params" >
+ <fieldref>current_nparams</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetPanning" opcode="28">
+ <field type="CRTC" name="crtc" />
+ <reply>
+ <field type="CARD8" name="status" enum="SetConfig" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="CARD16" name="left" />
+ <field type="CARD16" name="top" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="track_left" />
+ <field type="CARD16" name="track_top" />
+ <field type="CARD16" name="track_width" />
+ <field type="CARD16" name="track_height" />
+ <field type="INT16" name="border_left" />
+ <field type="INT16" name="border_top" />
+ <field type="INT16" name="border_right" />
+ <field type="INT16" name="border_bottom" />
+ </reply>
+ </request>
+
+ <request name="SetPanning" opcode="29">
+ <field type="CRTC" name="crtc" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="CARD16" name="left" />
+ <field type="CARD16" name="top" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="track_left" />
+ <field type="CARD16" name="track_top" />
+ <field type="CARD16" name="track_width" />
+ <field type="CARD16" name="track_height" />
+ <field type="INT16" name="border_left" />
+ <field type="INT16" name="border_top" />
+ <field type="INT16" name="border_right" />
+ <field type="INT16" name="border_bottom" />
+ <reply>
+ <field type="CARD8" name="status" enum="SetConfig" />
+ <field type="TIMESTAMP" name="timestamp" />
+ </reply>
+ </request>
+
+ <request name="SetOutputPrimary" opcode="30">
+ <field type="WINDOW" name="window" />
+ <field type="OUTPUT" name="output" />
+ </request>
+
+ <request name="GetOutputPrimary" opcode="31">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="OUTPUT" name="output" />
+ </reply>
+ </request>
+
+ <!-- Events -->
+
+ <event name="ScreenChangeNotify" number="0">
+ <field type="CARD8" name="rotation" mask="Rotation" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="request_window" />
+ <field type="CARD16" name="sizeID" />
+ <field type="CARD16" name="subpixel_order" enum="SubPixel" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="mwidth" />
+ <field type="CARD16" name="mheight" />
+ </event>
+
+ <!-- New in version 1.2 -->
+
+ <!-- subcode -->
+ <enum name="Notify" >
+ <item name="CrtcChange"> <value>0</value></item>
+ <item name="OutputChange"> <value>1</value></item>
+ <item name="OutputProperty"><value>2</value></item>
+ </enum>
+
+ <struct name="CrtcChange">
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="WINDOW" name="window" />
+ <field type="CRTC" name="crtc" />
+ <field type="MODE" name="mode" />
+ <field type="CARD16" name="rotation" mask="Rotation" />
+ <pad bytes="2" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </struct>
+
+ <struct name="OutputChange">
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="config_timestamp" />
+ <field type="WINDOW" name="window" />
+ <field type="OUTPUT" name="output" />
+ <field type="CRTC" name="crtc" />
+ <field type="MODE" name="mode" />
+ <field type="CARD16" name="rotation" mask="Rotation" />
+ <field type="CARD8" name="connection" enum="Connection" />
+ <field type="CARD8" name="subpixel_order" enum="SubPixel" />
+ </struct>
+
+ <struct name="OutputProperty">
+ <field type="WINDOW" name="window" />
+ <field type="OUTPUT" name="output" />
+ <field type="ATOM" name="atom" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="CARD8" name="status" enum="Property" />
+ <pad bytes="11" />
+ </struct>
+
+ <union name="NotifyData">
+ <field type="CrtcChange" name="cc" />
+ <field type="OutputChange" name="oc" />
+ <field type="OutputProperty" name="op" />
+ </union>
+
+ <event name="Notify" number="1">
+ <field type="CARD8" name="subCode" enum="Notify" />
+ <field type="NotifyData" name="u" />
+ </event>
+</xcb>
diff --git a/libxcb/xcb-proto/src/record.xml b/libxcb/xcb-proto/src/record.xml
index 74c16fe5b..11fb9fc6a 100644
--- a/libxcb/xcb-proto/src/record.xml
+++ b/libxcb/xcb-proto/src/record.xml
@@ -1,178 +1,178 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining 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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<xcb header="record" extension-xname="RECORD" extension-name="Record"
- major-version="1" minor-version="13">
-
- <!-- Types -->
- <xidtype name="CONTEXT" />
-
- <struct name="Range8">
- <field type="CARD8" name="first" />
- <field type="CARD8" name="last" />
- </struct>
-
- <struct name="Range16">
- <field type="CARD16" name="first" />
- <field type="CARD16" name="last" />
- </struct>
-
- <struct name="ExtRange">
- <field type="Range8" name="major" />
- <field type="Range16" name="minor" />
- </struct>
-
- <struct name="Range">
- <field type="Range8" name="core_requests" />
- <field type="Range8" name="core_replies" />
- <field type="ExtRange" name="ext_requests" />
- <field type="ExtRange" name="ext_replies" />
- <field type="Range8" name="delivered_events" />
- <field type="Range8" name="device_events" />
- <field type="Range8" name="errors" />
- <field type="BOOL" name="client_started" />
- <field type="BOOL" name="client_died" />
- </struct>
-
- <typedef oldname="CARD8" newname="ElementHeader" />
- <enum name="HType">
- <item name="FromServerTime"><bit>0</bit></item>
- <item name="FromClientTime"><bit>1</bit></item>
- <item name="FromClientSequence"><bit>2</bit></item>
- </enum>
-
- <typedef oldname="CARD32" newname="ClientSpec" />
- <enum name="CS">
- <item name="CurrentClients"><value>1</value></item>
- <item name="FutureClients"><value>2</value></item>
- <item name="AllClients"><value>3</value></item>
- </enum>
-
- <struct name="ClientInfo">
- <field type="ClientSpec" name="client_resource" />
- <field type="CARD32" name="num_ranges" />
- <list type="Range" name="ranges">
- <fieldref>num_ranges</fieldref>
- </list>
- </struct>
-
- <!-- Errors -->
- <error name="BadContext" number="0">
- <field type="CARD32" name="invalid_record" />
- </error>
-
- <!-- Requests -->
- <request name="QueryVersion" opcode="0">
- <field type="CARD16" name="major_version" />
- <field type="CARD16" name="minor_version" />
- <reply>
- <pad bytes="1"/>
- <field type="CARD16" name="major_version" />
- <field type="CARD16" name="minor_version" />
- </reply>
- </request>
-
- <request name="CreateContext" opcode="1">
- <field type="record:CONTEXT" name="context" />
- <field type="ElementHeader" name="element_header" />
- <pad bytes="3" />
- <field type="CARD32" name="num_client_specs" />
- <field type="CARD32" name="num_ranges" />
- <list type="ClientSpec" name="client_specs">
- <fieldref>num_client_specs</fieldref>
- </list>
- <list type="Range" name="ranges">
- <fieldref>num_ranges</fieldref>
- </list>
- </request>
-
- <request name="RegisterClients" opcode="2">
- <field type="record:CONTEXT" name="context" />
- <field type="ElementHeader" name="element_header" />
- <pad bytes="3" />
- <field type="CARD32" name="num_client_specs" />
- <field type="CARD32" name="num_ranges" />
- <list type="ClientSpec" name="client_specs">
- <fieldref>num_client_specs</fieldref>
- </list>
- <list type="Range" name="ranges">
- <fieldref>num_ranges</fieldref>
- </list>
- </request>
-
- <request name="UnregisterClients" opcode="3">
- <field type="record:CONTEXT" name="context" />
- <field type="CARD32" name="num_client_specs" />
- <list type="ClientSpec" name="client_specs">
- <fieldref>num_client_specs</fieldref>
- </list>
- </request>
-
- <request name="GetContext" opcode="4">
- <field type="record:CONTEXT" name="context" />
- <reply>
- <field type="BOOL" name="enabled" />
- <field type="ElementHeader" name="element_header" />
- <pad bytes="3" />
- <field type="CARD32" name="num_intercepted_clients" />
- <pad bytes="16" />
- <list type="ClientInfo" name="intercepted_clients">
- <fieldref>num_intercepted_clients</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="EnableContext" opcode="5">
- <field type="record:CONTEXT" name="context" />
- <reply>
- <field type="CARD8" name="category" />
- <field type="ElementHeader" name="element_header" />
- <field type="BOOL" name="client_swapped" />
- <pad bytes="2" />
- <field type="CARD32" name="xid_base" />
- <field type="CARD32" name="server_time" />
- <field type="CARD32" name="rec_sequence_num" />
- <pad bytes="8" />
- <list type="BYTE" name="data">
- <op op="*">
- <fieldref>length</fieldref>
- <value>4</value>
- </op>
- </list>
- </reply>
- </request>
-
- <request name="DisableContext" opcode="6">
- <field type="record:CONTEXT" name="context" />
- </request>
-
- <request name="FreeContext" opcode="7">
- <field type="record:CONTEXT" name="context" />
- </request>
-
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining 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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<xcb header="record" extension-xname="RECORD" extension-name="Record"
+ major-version="1" minor-version="13">
+
+ <!-- Types -->
+ <xidtype name="CONTEXT" />
+
+ <struct name="Range8">
+ <field type="CARD8" name="first" />
+ <field type="CARD8" name="last" />
+ </struct>
+
+ <struct name="Range16">
+ <field type="CARD16" name="first" />
+ <field type="CARD16" name="last" />
+ </struct>
+
+ <struct name="ExtRange">
+ <field type="Range8" name="major" />
+ <field type="Range16" name="minor" />
+ </struct>
+
+ <struct name="Range">
+ <field type="Range8" name="core_requests" />
+ <field type="Range8" name="core_replies" />
+ <field type="ExtRange" name="ext_requests" />
+ <field type="ExtRange" name="ext_replies" />
+ <field type="Range8" name="delivered_events" />
+ <field type="Range8" name="device_events" />
+ <field type="Range8" name="errors" />
+ <field type="BOOL" name="client_started" />
+ <field type="BOOL" name="client_died" />
+ </struct>
+
+ <typedef oldname="CARD8" newname="ElementHeader" />
+ <enum name="HType">
+ <item name="FromServerTime"><bit>0</bit></item>
+ <item name="FromClientTime"><bit>1</bit></item>
+ <item name="FromClientSequence"><bit>2</bit></item>
+ </enum>
+
+ <typedef oldname="CARD32" newname="ClientSpec" />
+ <enum name="CS">
+ <item name="CurrentClients"><value>1</value></item>
+ <item name="FutureClients"><value>2</value></item>
+ <item name="AllClients"><value>3</value></item>
+ </enum>
+
+ <struct name="ClientInfo">
+ <field type="ClientSpec" name="client_resource" />
+ <field type="CARD32" name="num_ranges" />
+ <list type="Range" name="ranges">
+ <fieldref>num_ranges</fieldref>
+ </list>
+ </struct>
+
+ <!-- Errors -->
+ <error name="BadContext" number="0">
+ <field type="CARD32" name="invalid_record" />
+ </error>
+
+ <!-- Requests -->
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD16" name="major_version" />
+ <field type="CARD16" name="minor_version" />
+ <reply>
+ <pad bytes="1"/>
+ <field type="CARD16" name="major_version" />
+ <field type="CARD16" name="minor_version" />
+ </reply>
+ </request>
+
+ <request name="CreateContext" opcode="1">
+ <field type="record:CONTEXT" name="context" />
+ <field type="ElementHeader" name="element_header" />
+ <pad bytes="3" />
+ <field type="CARD32" name="num_client_specs" />
+ <field type="CARD32" name="num_ranges" />
+ <list type="ClientSpec" name="client_specs">
+ <fieldref>num_client_specs</fieldref>
+ </list>
+ <list type="Range" name="ranges">
+ <fieldref>num_ranges</fieldref>
+ </list>
+ </request>
+
+ <request name="RegisterClients" opcode="2">
+ <field type="record:CONTEXT" name="context" />
+ <field type="ElementHeader" name="element_header" />
+ <pad bytes="3" />
+ <field type="CARD32" name="num_client_specs" />
+ <field type="CARD32" name="num_ranges" />
+ <list type="ClientSpec" name="client_specs">
+ <fieldref>num_client_specs</fieldref>
+ </list>
+ <list type="Range" name="ranges">
+ <fieldref>num_ranges</fieldref>
+ </list>
+ </request>
+
+ <request name="UnregisterClients" opcode="3">
+ <field type="record:CONTEXT" name="context" />
+ <field type="CARD32" name="num_client_specs" />
+ <list type="ClientSpec" name="client_specs">
+ <fieldref>num_client_specs</fieldref>
+ </list>
+ </request>
+
+ <request name="GetContext" opcode="4">
+ <field type="record:CONTEXT" name="context" />
+ <reply>
+ <field type="BOOL" name="enabled" />
+ <field type="ElementHeader" name="element_header" />
+ <pad bytes="3" />
+ <field type="CARD32" name="num_intercepted_clients" />
+ <pad bytes="16" />
+ <list type="ClientInfo" name="intercepted_clients">
+ <fieldref>num_intercepted_clients</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="EnableContext" opcode="5">
+ <field type="record:CONTEXT" name="context" />
+ <reply>
+ <field type="CARD8" name="category" />
+ <field type="ElementHeader" name="element_header" />
+ <field type="BOOL" name="client_swapped" />
+ <pad bytes="2" />
+ <field type="CARD32" name="xid_base" />
+ <field type="CARD32" name="server_time" />
+ <field type="CARD32" name="rec_sequence_num" />
+ <pad bytes="8" />
+ <list type="BYTE" name="data">
+ <op op="*">
+ <fieldref>length</fieldref>
+ <value>4</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="DisableContext" opcode="6">
+ <field type="record:CONTEXT" name="context" />
+ </request>
+
+ <request name="FreeContext" opcode="7">
+ <field type="record:CONTEXT" name="context" />
+ </request>
+
+</xcb>
diff --git a/libxcb/xcb-proto/src/res.xml b/libxcb/xcb-proto/src/res.xml
index d758d893b..fed2cf712 100644
--- a/libxcb/xcb-proto/src/res.xml
+++ b/libxcb/xcb-proto/src/res.xml
@@ -1,83 +1,83 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<xcb header="res" extension-xname="X-Resource" extension-name="Res"
- major-version="1" minor-version="0">
- <import>xproto</import>
-
- <struct name="Client">
- <field type="CARD32" name="resource_base" />
- <field type="CARD32" name="resource_mask" />
- </struct>
-
- <struct name="Type">
- <field type="ATOM" name="resource_type" />
- <field type="CARD32" name="count" />
- </struct>
-
- <request name="QueryVersion" opcode="0">
- <field type="CARD8" name="client_major" />
- <field type="CARD8" name="client_minor" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="server_major" />
- <field type="CARD16" name="server_minor" />
- </reply>
- </request>
-
- <request name="QueryClients" opcode="1">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num_clients" />
- <pad bytes="20" />
- <list type="Client" name="clients">
- <fieldref>num_clients</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="QueryClientResources" opcode="2">
- <field type="CARD32" name="xid" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num_types" />
- <pad bytes="20" />
- <list type="Type" name="types">
- <fieldref>num_types</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="QueryClientPixmapBytes" opcode="3">
- <field type="CARD32" name="xid" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="bytes" />
- <field type="CARD32" name="bytes_overflow" />
- </reply>
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<xcb header="res" extension-xname="X-Resource" extension-name="Res"
+ major-version="1" minor-version="0">
+ <import>xproto</import>
+
+ <struct name="Client">
+ <field type="CARD32" name="resource_base" />
+ <field type="CARD32" name="resource_mask" />
+ </struct>
+
+ <struct name="Type">
+ <field type="ATOM" name="resource_type" />
+ <field type="CARD32" name="count" />
+ </struct>
+
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD8" name="client_major" />
+ <field type="CARD8" name="client_minor" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="server_major" />
+ <field type="CARD16" name="server_minor" />
+ </reply>
+ </request>
+
+ <request name="QueryClients" opcode="1">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num_clients" />
+ <pad bytes="20" />
+ <list type="Client" name="clients">
+ <fieldref>num_clients</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryClientResources" opcode="2">
+ <field type="CARD32" name="xid" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num_types" />
+ <pad bytes="20" />
+ <list type="Type" name="types">
+ <fieldref>num_types</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryClientPixmapBytes" opcode="3">
+ <field type="CARD32" name="xid" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="bytes" />
+ <field type="CARD32" name="bytes_overflow" />
+ </reply>
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/screensaver.xml b/libxcb/xcb-proto/src/screensaver.xml
index 9c7bccb08..52af00427 100644
--- a/libxcb/xcb-proto/src/screensaver.xml
+++ b/libxcb/xcb-proto/src/screensaver.xml
@@ -1,128 +1,128 @@
-<!--
-
-Copyright (C) 2005 Vincent Torri.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining 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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<!--
-Screen Saver Extension to the X Protocol
-Draft Standard Version 1.1
--->
-<xcb header="screensaver" extension-xname="MIT-SCREEN-SAVER" extension-name="ScreenSaver" major-version="1" minor-version="1">
-
- <!-- Types -->
-
- <import>xproto</import>
-
- <enum name="Kind">
- <item name="Blanked" />
- <item name="Internal" />
- <item name="External" />
- </enum>
-
- <enum name="Event">
- <item name="NotifyMask"><bit>0</bit></item>
- <item name="CycleMask"> <bit>1</bit></item>
- </enum>
-
- <enum name="State">
- <item name="Off" />
- <item name="On" />
- <item name="Cycle" />
- <item name="Disabled" />
- </enum>
-
- <!-- Errors -->
- <!-- Requests -->
- <request name="QueryVersion" opcode="0">
- <field type="CARD8" name="client_major_version"/>
- <field type="CARD8" name="client_minor_version"/>
- <pad bytes="2"/>
- <reply>
- <pad bytes="1"/>
- <field type="CARD16" name="server_major_version"/>
- <field type="CARD16" name="server_minor_version"/>
- <pad bytes="20"/>
- </reply>
- </request>
-
- <request name="QueryInfo" opcode="1">
- <field type="DRAWABLE" name="drawable"/>
- <reply>
- <field type="CARD8" name="state"/>
- <field type="WINDOW" name="saver_window"/>
- <field type="CARD32" name="ms_until_server"/>
- <field type="CARD32" name="ms_since_user_input"/>
- <field type="CARD32" name="event_mask" />
- <field type="BYTE" name="kind"/> <!-- enum Kind -->
- <pad bytes="7"/>
- </reply>
- </request>
-
- <request name="SelectInput" opcode="2">
- <field type="DRAWABLE" name="drawable"/>
- <field type="CARD32" name="event_mask" /> <!-- enum Event -->
- </request>
-
- <request name="SetAttributes" opcode="3">
- <field type="DRAWABLE" name="drawable"/>
- <field type="INT16" name="x"/>
- <field type="INT16" name="y"/>
- <field type="CARD16" name="width"/>
- <field type="CARD16" name="height"/>
- <field type="CARD16" name="border_width"/>
- <field type="BYTE" name="class"/> <!-- enum XCBWindowClass -->
- <field type="CARD8" name="depth"/>
- <field type="VISUALID" name="visual"/>
- <valueparam value-mask-type="CARD32"
- value-mask-name="value_mask"
- value-list-name="value_list" />
- </request>
-
- <request name="UnsetAttributes" opcode="4">
- <field type="DRAWABLE" name="drawable"/>
- </request>
-
- <!-- version 1.1 -->
- <request name="Suspend" opcode="5">
- <field type="BOOL" name="suspend" />
- <pad bytes="3" />
- </request>
-
- <!-- Events -->
-
- <event name="Notify" number="0">
- <field type="CARD8" name="code"/>
- <field type="BYTE" name="state"/> <!-- enum State -->
- <pad bytes="1" />
- <field type="CARD16" name="sequence_number"/>
- <field type="TIMESTAMP" name="time"/>
- <field type="WINDOW" name="root"/>
- <field type="WINDOW" name="window"/>
- <field type="BYTE" name="kind"/> <!-- enum Kind -->
- <field type="BOOL" name="forced"/>
- <pad bytes="14"/>
- </event>
-
-</xcb>
+<!--
+
+Copyright (C) 2005 Vincent Torri.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining 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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<!--
+Screen Saver Extension to the X Protocol
+Draft Standard Version 1.1
+-->
+<xcb header="screensaver" extension-xname="MIT-SCREEN-SAVER" extension-name="ScreenSaver" major-version="1" minor-version="1">
+
+ <!-- Types -->
+
+ <import>xproto</import>
+
+ <enum name="Kind">
+ <item name="Blanked" />
+ <item name="Internal" />
+ <item name="External" />
+ </enum>
+
+ <enum name="Event">
+ <item name="NotifyMask"><bit>0</bit></item>
+ <item name="CycleMask"> <bit>1</bit></item>
+ </enum>
+
+ <enum name="State">
+ <item name="Off" />
+ <item name="On" />
+ <item name="Cycle" />
+ <item name="Disabled" />
+ </enum>
+
+ <!-- Errors -->
+ <!-- Requests -->
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD8" name="client_major_version"/>
+ <field type="CARD8" name="client_minor_version"/>
+ <pad bytes="2"/>
+ <reply>
+ <pad bytes="1"/>
+ <field type="CARD16" name="server_major_version"/>
+ <field type="CARD16" name="server_minor_version"/>
+ <pad bytes="20"/>
+ </reply>
+ </request>
+
+ <request name="QueryInfo" opcode="1">
+ <field type="DRAWABLE" name="drawable"/>
+ <reply>
+ <field type="CARD8" name="state"/>
+ <field type="WINDOW" name="saver_window"/>
+ <field type="CARD32" name="ms_until_server"/>
+ <field type="CARD32" name="ms_since_user_input"/>
+ <field type="CARD32" name="event_mask" />
+ <field type="BYTE" name="kind"/> <!-- enum Kind -->
+ <pad bytes="7"/>
+ </reply>
+ </request>
+
+ <request name="SelectInput" opcode="2">
+ <field type="DRAWABLE" name="drawable"/>
+ <field type="CARD32" name="event_mask" /> <!-- enum Event -->
+ </request>
+
+ <request name="SetAttributes" opcode="3">
+ <field type="DRAWABLE" name="drawable"/>
+ <field type="INT16" name="x"/>
+ <field type="INT16" name="y"/>
+ <field type="CARD16" name="width"/>
+ <field type="CARD16" name="height"/>
+ <field type="CARD16" name="border_width"/>
+ <field type="BYTE" name="class"/> <!-- enum XCBWindowClass -->
+ <field type="CARD8" name="depth"/>
+ <field type="VISUALID" name="visual"/>
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="UnsetAttributes" opcode="4">
+ <field type="DRAWABLE" name="drawable"/>
+ </request>
+
+ <!-- version 1.1 -->
+ <request name="Suspend" opcode="5">
+ <field type="BOOL" name="suspend" />
+ <pad bytes="3" />
+ </request>
+
+ <!-- Events -->
+
+ <event name="Notify" number="0">
+ <field type="CARD8" name="code"/>
+ <field type="BYTE" name="state"/> <!-- enum State -->
+ <pad bytes="1" />
+ <field type="CARD16" name="sequence_number"/>
+ <field type="TIMESTAMP" name="time"/>
+ <field type="WINDOW" name="root"/>
+ <field type="WINDOW" name="window"/>
+ <field type="BYTE" name="kind"/> <!-- enum Kind -->
+ <field type="BOOL" name="forced"/>
+ <pad bytes="14"/>
+ </event>
+
+</xcb>
diff --git a/libxcb/xcb-proto/src/shape.xml b/libxcb/xcb-proto/src/shape.xml
index c128ade32..ce54d3112 100644
--- a/libxcb/xcb-proto/src/shape.xml
+++ b/libxcb/xcb-proto/src/shape.xml
@@ -1,155 +1,155 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<!-- This file describes version 1.1 of the Shape extension. -->
-<xcb header="shape" extension-xname="SHAPE" extension-name="Shape" major-version="1" minor-version="1">
- <import>xproto</import>
-
- <typedef oldname="CARD8" newname="OP" />
- <typedef oldname="CARD8" newname="KIND" />
-
- <!-- Shape attributes of type OP. -->
- <enum name="SO">
- <item name="Set" />
- <item name="Union" />
- <item name="Intersect" />
- <item name="Subtract" />
- <item name="Invert" />
- </enum>
-
- <!-- Shape attributes of type KIND. -->
- <enum name="SK">
- <item name="Bounding" />
- <item name="Clip" />
- <item name="Input" /> <!-- added in version 1.1 -->
- </enum>
-
- <event name="Notify" number="0">
- <field type="KIND" name="shape_kind" enum="SK" />
- <field type="WINDOW" name="affected_window" />
- <field type="INT16" name="extents_x" />
- <field type="INT16" name="extents_y" />
- <field type="CARD16" name="extents_width" />
- <field type="CARD16" name="extents_height" />
- <field type="TIMESTAMP" name="server_time" />
- <field type="BOOL" name="shaped" />
- <pad bytes="11" />
- </event>
-
- <request name="QueryVersion" opcode="0">
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="major_version" />
- <field type="CARD16" name="minor_version" />
- </reply>
- </request>
-
- <request name="Rectangles" opcode="1">
- <field type="OP" name="operation" enum="SO" />
- <field type="KIND" name="destination_kind" enum="SK" />
- <field type="BYTE" name="ordering" enum="ClipOrdering" />
- <pad bytes="1" />
- <field type="WINDOW" name="destination_window" />
- <field type="INT16" name="x_offset" />
- <field type="INT16" name="y_offset" />
- <list type="RECTANGLE" name="rectangles" />
- </request>
-
- <request name="Mask" opcode="2">
- <field type="OP" name="operation" enum="SO" />
- <field type="KIND" name="destination_kind" enum="SK" />
- <pad bytes="2" />
- <field type="WINDOW" name="destination_window" />
- <field type="INT16" name="x_offset" />
- <field type="INT16" name="y_offset" />
- <field type="PIXMAP" name="source_bitmap" altenum="Pixmap" />
- </request>
-
- <request name="Combine" opcode="3">
- <field type="OP" name="operation" enum="SO" />
- <field type="KIND" name="destination_kind" enum="SK" />
- <field type="KIND" name="source_kind" enum="SK" />
- <pad bytes="1" />
- <field type="WINDOW" name="destination_window" />
- <field type="INT16" name="x_offset" />
- <field type="INT16" name="y_offset" />
- <field type="WINDOW" name="source_window" />
- </request>
-
- <request name="Offset" opcode="4">
- <field type="KIND" name="destination_kind" enum="SK" />
- <pad bytes="3" />
- <field type="WINDOW" name="destination_window" />
- <field type="INT16" name="x_offset" />
- <field type="INT16" name="y_offset" />
- </request>
-
- <request name="QueryExtents" opcode="5">
- <field type="WINDOW" name="destination_window" />
- <reply>
- <pad bytes="1" />
- <field type="BOOL" name="bounding_shaped" />
- <field type="BOOL" name="clip_shaped" />
- <pad bytes="2" />
- <field type="INT16" name="bounding_shape_extents_x" />
- <field type="INT16" name="bounding_shape_extents_y" />
- <field type="CARD16" name="bounding_shape_extents_width" />
- <field type="CARD16" name="bounding_shape_extents_height" />
- <field type="INT16" name="clip_shape_extents_x" />
- <field type="INT16" name="clip_shape_extents_y" />
- <field type="CARD16" name="clip_shape_extents_width" />
- <field type="CARD16" name="clip_shape_extents_height" />
- </reply>
- </request>
-
- <request name="SelectInput" opcode="6">
- <field type="WINDOW" name="destination_window" />
- <field type="BOOL" name="enable" />
- <pad bytes="3" />
- </request>
-
- <request name="InputSelected" opcode="7">
- <field type="WINDOW" name="destination_window" />
- <reply>
- <field type="BOOL" name="enabled" />
- </reply>
- </request>
-
- <request name="GetRectangles" opcode="8">
- <field type="WINDOW" name="window" />
- <field type="KIND" name="source_kind" enum="SK" />
- <pad bytes="3" />
- <reply>
- <field type="BYTE" name="ordering" enum="ClipOrdering" />
- <field type="CARD32" name="rectangles_len" />
- <pad bytes="20" />
- <list type="RECTANGLE" name="rectangles">
- <fieldref>rectangles_len</fieldref>
- </list>
- </reply>
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<!-- This file describes version 1.1 of the Shape extension. -->
+<xcb header="shape" extension-xname="SHAPE" extension-name="Shape" major-version="1" minor-version="1">
+ <import>xproto</import>
+
+ <typedef oldname="CARD8" newname="OP" />
+ <typedef oldname="CARD8" newname="KIND" />
+
+ <!-- Shape attributes of type OP. -->
+ <enum name="SO">
+ <item name="Set" />
+ <item name="Union" />
+ <item name="Intersect" />
+ <item name="Subtract" />
+ <item name="Invert" />
+ </enum>
+
+ <!-- Shape attributes of type KIND. -->
+ <enum name="SK">
+ <item name="Bounding" />
+ <item name="Clip" />
+ <item name="Input" /> <!-- added in version 1.1 -->
+ </enum>
+
+ <event name="Notify" number="0">
+ <field type="KIND" name="shape_kind" enum="SK" />
+ <field type="WINDOW" name="affected_window" />
+ <field type="INT16" name="extents_x" />
+ <field type="INT16" name="extents_y" />
+ <field type="CARD16" name="extents_width" />
+ <field type="CARD16" name="extents_height" />
+ <field type="TIMESTAMP" name="server_time" />
+ <field type="BOOL" name="shaped" />
+ <pad bytes="11" />
+ </event>
+
+ <request name="QueryVersion" opcode="0">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="major_version" />
+ <field type="CARD16" name="minor_version" />
+ </reply>
+ </request>
+
+ <request name="Rectangles" opcode="1">
+ <field type="OP" name="operation" enum="SO" />
+ <field type="KIND" name="destination_kind" enum="SK" />
+ <field type="BYTE" name="ordering" enum="ClipOrdering" />
+ <pad bytes="1" />
+ <field type="WINDOW" name="destination_window" />
+ <field type="INT16" name="x_offset" />
+ <field type="INT16" name="y_offset" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="Mask" opcode="2">
+ <field type="OP" name="operation" enum="SO" />
+ <field type="KIND" name="destination_kind" enum="SK" />
+ <pad bytes="2" />
+ <field type="WINDOW" name="destination_window" />
+ <field type="INT16" name="x_offset" />
+ <field type="INT16" name="y_offset" />
+ <field type="PIXMAP" name="source_bitmap" altenum="Pixmap" />
+ </request>
+
+ <request name="Combine" opcode="3">
+ <field type="OP" name="operation" enum="SO" />
+ <field type="KIND" name="destination_kind" enum="SK" />
+ <field type="KIND" name="source_kind" enum="SK" />
+ <pad bytes="1" />
+ <field type="WINDOW" name="destination_window" />
+ <field type="INT16" name="x_offset" />
+ <field type="INT16" name="y_offset" />
+ <field type="WINDOW" name="source_window" />
+ </request>
+
+ <request name="Offset" opcode="4">
+ <field type="KIND" name="destination_kind" enum="SK" />
+ <pad bytes="3" />
+ <field type="WINDOW" name="destination_window" />
+ <field type="INT16" name="x_offset" />
+ <field type="INT16" name="y_offset" />
+ </request>
+
+ <request name="QueryExtents" opcode="5">
+ <field type="WINDOW" name="destination_window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="BOOL" name="bounding_shaped" />
+ <field type="BOOL" name="clip_shaped" />
+ <pad bytes="2" />
+ <field type="INT16" name="bounding_shape_extents_x" />
+ <field type="INT16" name="bounding_shape_extents_y" />
+ <field type="CARD16" name="bounding_shape_extents_width" />
+ <field type="CARD16" name="bounding_shape_extents_height" />
+ <field type="INT16" name="clip_shape_extents_x" />
+ <field type="INT16" name="clip_shape_extents_y" />
+ <field type="CARD16" name="clip_shape_extents_width" />
+ <field type="CARD16" name="clip_shape_extents_height" />
+ </reply>
+ </request>
+
+ <request name="SelectInput" opcode="6">
+ <field type="WINDOW" name="destination_window" />
+ <field type="BOOL" name="enable" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="InputSelected" opcode="7">
+ <field type="WINDOW" name="destination_window" />
+ <reply>
+ <field type="BOOL" name="enabled" />
+ </reply>
+ </request>
+
+ <request name="GetRectangles" opcode="8">
+ <field type="WINDOW" name="window" />
+ <field type="KIND" name="source_kind" enum="SK" />
+ <pad bytes="3" />
+ <reply>
+ <field type="BYTE" name="ordering" enum="ClipOrdering" />
+ <field type="CARD32" name="rectangles_len" />
+ <pad bytes="20" />
+ <list type="RECTANGLE" name="rectangles">
+ <fieldref>rectangles_len</fieldref>
+ </list>
+ </reply>
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/shm.xml b/libxcb/xcb-proto/src/shm.xml
index adda50957..e2f575f10 100644
--- a/libxcb/xcb-proto/src/shm.xml
+++ b/libxcb/xcb-proto/src/shm.xml
@@ -1,116 +1,116 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<xcb header="shm" extension-xname="MIT-SHM" extension-name="Shm"
- major-version="1" minor-version="1">
- <import>xproto</import>
-
- <xidtype name="SEG" />
-
- <event name="Completion" number="0">
- <pad bytes="1" />
- <field type="DRAWABLE" name="drawable" />
- <field type="CARD16" name="minor_event" />
- <field type="BYTE" name="major_event" />
- <pad bytes="1" />
- <field type="SEG" name="shmseg" />
- <field type="CARD32" name="offset" />
- </event>
-
- <errorcopy name="BadSeg" number="0" ref="Value" />
-
- <request name="QueryVersion" opcode="0">
- <reply>
- <field type="BOOL" name="shared_pixmaps" />
- <field type="CARD16" name="major_version" />
- <field type="CARD16" name="minor_version" />
- <field type="CARD16" name="uid" />
- <field type="CARD16" name="gid" />
- <field type="CARD8" name="pixmap_format" />
- <pad bytes="15" />
- </reply>
- </request>
-
- <request name="Attach" opcode="1">
- <field type="SEG" name="shmseg" />
- <field type="CARD32" name="shmid" />
- <field type="BOOL" name="read_only" />
- <pad bytes="3" />
- </request>
-
- <request name="Detach" opcode="2">
- <field type="SEG" name="shmseg" />
- </request>
-
- <request name="PutImage" opcode="3">
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="CARD16" name="total_width" />
- <field type="CARD16" name="total_height" />
- <field type="CARD16" name="src_x" />
- <field type="CARD16" name="src_y" />
- <field type="CARD16" name="src_width" />
- <field type="CARD16" name="src_height" />
- <field type="INT16" name="dst_x" />
- <field type="INT16" name="dst_y" />
- <field type="CARD8" name="depth" />
- <field type="CARD8" name="format" />
- <field type="CARD8" name="send_event" />
- <pad bytes="1" />
- <field type="SEG" name="shmseg" />
- <field type="CARD32" name="offset" />
- </request>
-
- <request name="GetImage" opcode="4">
- <field type="DRAWABLE" name="drawable" />
- <field type="INT16" name="x" />
- <field type="INT16" name="y" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD32" name="plane_mask" />
- <field type="CARD8" name="format" />
- <pad bytes="3" />
- <field type="SEG" name="shmseg" />
- <field type="CARD32" name="offset" />
- <reply>
- <field type="CARD8" name="depth" />
- <field type="VISUALID" name="visual" />
- <field type="CARD32" name="size" />
- </reply>
- </request>
-
- <request name="CreatePixmap" opcode="5">
- <field type="PIXMAP" name="pid" />
- <field type="DRAWABLE" name="drawable" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD8" name="depth" />
- <pad bytes="3" />
- <field type="SEG" name="shmseg" />
- <field type="CARD32" name="offset" />
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<xcb header="shm" extension-xname="MIT-SHM" extension-name="Shm"
+ major-version="1" minor-version="1">
+ <import>xproto</import>
+
+ <xidtype name="SEG" />
+
+ <event name="Completion" number="0">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="minor_event" />
+ <field type="BYTE" name="major_event" />
+ <pad bytes="1" />
+ <field type="SEG" name="shmseg" />
+ <field type="CARD32" name="offset" />
+ </event>
+
+ <errorcopy name="BadSeg" number="0" ref="Value" />
+
+ <request name="QueryVersion" opcode="0">
+ <reply>
+ <field type="BOOL" name="shared_pixmaps" />
+ <field type="CARD16" name="major_version" />
+ <field type="CARD16" name="minor_version" />
+ <field type="CARD16" name="uid" />
+ <field type="CARD16" name="gid" />
+ <field type="CARD8" name="pixmap_format" />
+ <pad bytes="15" />
+ </reply>
+ </request>
+
+ <request name="Attach" opcode="1">
+ <field type="SEG" name="shmseg" />
+ <field type="CARD32" name="shmid" />
+ <field type="BOOL" name="read_only" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="Detach" opcode="2">
+ <field type="SEG" name="shmseg" />
+ </request>
+
+ <request name="PutImage" opcode="3">
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD16" name="total_width" />
+ <field type="CARD16" name="total_height" />
+ <field type="CARD16" name="src_x" />
+ <field type="CARD16" name="src_y" />
+ <field type="CARD16" name="src_width" />
+ <field type="CARD16" name="src_height" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD8" name="depth" />
+ <field type="CARD8" name="format" />
+ <field type="CARD8" name="send_event" />
+ <pad bytes="1" />
+ <field type="SEG" name="shmseg" />
+ <field type="CARD32" name="offset" />
+ </request>
+
+ <request name="GetImage" opcode="4">
+ <field type="DRAWABLE" name="drawable" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="plane_mask" />
+ <field type="CARD8" name="format" />
+ <pad bytes="3" />
+ <field type="SEG" name="shmseg" />
+ <field type="CARD32" name="offset" />
+ <reply>
+ <field type="CARD8" name="depth" />
+ <field type="VISUALID" name="visual" />
+ <field type="CARD32" name="size" />
+ </reply>
+ </request>
+
+ <request name="CreatePixmap" opcode="5">
+ <field type="PIXMAP" name="pid" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD8" name="depth" />
+ <pad bytes="3" />
+ <field type="SEG" name="shmseg" />
+ <field type="CARD32" name="offset" />
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/xc_misc.xml b/libxcb/xcb-proto/src/xc_misc.xml
index 139ca22f0..b9b21ca48 100644
--- a/libxcb/xcb-proto/src/xc_misc.xml
+++ b/libxcb/xcb-proto/src/xc_misc.xml
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Mikko Torni and Josh Triplett.
-All Rights Reserved. See the file COPYING in this directory
-for licensing information.
--->
-<xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc"
- extension-multiword="true" major-version="1" minor-version="1">
- <request name="GetVersion" opcode="0">
- <field type="CARD16" name="client_major_version" />
- <field type="CARD16" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="server_major_version" />
- <field type="CARD16" name="server_minor_version" />
- </reply>
- </request>
-
- <request name="GetXIDRange" opcode="1">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="start_id" />
- <field type="CARD32" name="count" />
- </reply>
- </request>
-
- <request name="GetXIDList" opcode="2">
- <field type="CARD32" name="count" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="ids_len" />
- <pad bytes="20" />
- <list type="CARD32" name="ids">
- <fieldref>ids_len</fieldref>
- </list>
- </reply>
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Mikko Torni and Josh Triplett.
+All Rights Reserved. See the file COPYING in this directory
+for licensing information.
+-->
+<xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc"
+ extension-multiword="true" major-version="1" minor-version="1">
+ <request name="GetVersion" opcode="0">
+ <field type="CARD16" name="client_major_version" />
+ <field type="CARD16" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="server_major_version" />
+ <field type="CARD16" name="server_minor_version" />
+ </reply>
+ </request>
+
+ <request name="GetXIDRange" opcode="1">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="start_id" />
+ <field type="CARD32" name="count" />
+ </reply>
+ </request>
+
+ <request name="GetXIDList" opcode="2">
+ <field type="CARD32" name="count" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="ids_len" />
+ <pad bytes="20" />
+ <list type="CARD32" name="ids">
+ <fieldref>ids_len</fieldref>
+ </list>
+ </reply>
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/xevie.xml b/libxcb/xcb-proto/src/xevie.xml
index 222b412e4..a88f1590b 100644
--- a/libxcb/xcb-proto/src/xevie.xml
+++ b/libxcb/xcb-proto/src/xevie.xml
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett. All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<!-- This file describes version 1 of XEVIE. -->
-<xcb header="xevie" extension-xname="XEVIE" extension-name="Xevie"
- major-version="1" minor-version="0">
- <request name="QueryVersion" opcode="0">
- <field type="CARD16" name="client_major_version" />
- <field type="CARD16" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="server_major_version" />
- <field type="CARD16" name="server_minor_version" />
- <pad bytes="20" />
- </reply>
- </request>
-
- <request name="Start" opcode="1">
- <field type="CARD32" name="screen" />
- <reply>
- <pad bytes="1" />
- <pad bytes="24" />
- </reply>
- </request>
-
- <request name="End" opcode="2">
- <field type="CARD32" name="cmap" />
- <reply>
- <pad bytes="1" />
- <pad bytes="24" />
- </reply>
- </request>
-
- <enum name="Datatype">
- <item name="Unmodified" />
- <item name="Modified" />
- </enum>
-
- <!-- The Send request needs to send an arbitrary Event; this type is used
- to reserve the necessary structure size. -->
- <struct name="Event">
- <pad bytes="32" />
- </struct>
-
- <request name="Send" opcode="3">
- <field type="Event" name="event" />
- <field type="CARD32" name="data_type" /> <!-- Datatype -->
- <pad bytes="64" />
- <reply>
- <pad bytes="1" />
- <pad bytes="24" />
- </reply>
- </request>
-
- <request name="SelectInput" opcode="4">
- <field type="CARD32" name="event_mask" />
- <reply>
- <pad bytes="1" />
- <pad bytes="24" />
- </reply>
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett. All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<!-- This file describes version 1 of XEVIE. -->
+<xcb header="xevie" extension-xname="XEVIE" extension-name="Xevie"
+ major-version="1" minor-version="0">
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD16" name="client_major_version" />
+ <field type="CARD16" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="server_major_version" />
+ <field type="CARD16" name="server_minor_version" />
+ <pad bytes="20" />
+ </reply>
+ </request>
+
+ <request name="Start" opcode="1">
+ <field type="CARD32" name="screen" />
+ <reply>
+ <pad bytes="1" />
+ <pad bytes="24" />
+ </reply>
+ </request>
+
+ <request name="End" opcode="2">
+ <field type="CARD32" name="cmap" />
+ <reply>
+ <pad bytes="1" />
+ <pad bytes="24" />
+ </reply>
+ </request>
+
+ <enum name="Datatype">
+ <item name="Unmodified" />
+ <item name="Modified" />
+ </enum>
+
+ <!-- The Send request needs to send an arbitrary Event; this type is used
+ to reserve the necessary structure size. -->
+ <struct name="Event">
+ <pad bytes="32" />
+ </struct>
+
+ <request name="Send" opcode="3">
+ <field type="Event" name="event" />
+ <field type="CARD32" name="data_type" /> <!-- Datatype -->
+ <pad bytes="64" />
+ <reply>
+ <pad bytes="1" />
+ <pad bytes="24" />
+ </reply>
+ </request>
+
+ <request name="SelectInput" opcode="4">
+ <field type="CARD32" name="event_mask" />
+ <reply>
+ <pad bytes="1" />
+ <pad bytes="24" />
+ </reply>
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/xfixes.xml b/libxcb/xcb-proto/src/xfixes.xml
index 9bbeaab1e..7ddea0db5 100644
--- a/libxcb/xcb-proto/src/xfixes.xml
+++ b/libxcb/xcb-proto/src/xfixes.xml
@@ -1,334 +1,334 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett. All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<!-- This file describes version 4 of XFixes. -->
-<xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes"
- major-version="4" minor-version="0">
- <import>xproto</import>
- <import>render</import>
- <import>shape</import>
-
- <!-- Version 1 -->
- <request name="QueryVersion" opcode="0">
- <field type="CARD32" name="client_major_version" />
- <field type="CARD32" name="client_minor_version" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="major_version" />
- <field type="CARD32" name="minor_version" />
- <pad bytes="16" />
- </reply>
- </request>
-
- <enum name="SaveSetMode">
- <item name="Insert" />
- <item name="Delete" />
- </enum>
-
- <enum name="SaveSetTarget">
- <item name="Nearest" />
- <item name="Root" />
- </enum>
-
- <enum name="SaveSetMapping">
- <item name="Map" />
- <item name="Unmap" />
- </enum>
-
- <request name="ChangeSaveSet" opcode="1">
- <field type="BYTE" name="mode" enum="SaveSetMode" />
- <field type="BYTE" name="target" enum="SaveSetTarget" />
- <field type="BYTE" name="map" enum="SaveSetMapping" />
- <pad bytes="1" />
- <field type="WINDOW" name="window" />
- </request>
-
- <enum name="SelectionEvent">
- <item name="SetSelectionOwner" />
- <item name="SelectionWindowDestroy" />
- <item name="SelectionClientClose" />
- </enum>
-
- <enum name="SelectionEventMask">
- <item name="SetSelectionOwner"> <bit>0</bit></item>
- <item name="SelectionWindowDestroy"><bit>1</bit></item>
- <item name="SelectionClientClose"> <bit>2</bit></item>
- </enum>
-
- <event name="SelectionNotify" number="0">
- <field type="CARD8" name="subtype" enum="SelectionEvent" />
- <field type="WINDOW" name="window" />
- <field type="WINDOW" name="owner" />
- <field type="ATOM" name="selection" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="TIMESTAMP" name="selection_timestamp" />
- <pad bytes="8" />
- </event>
-
- <request name="SelectSelectionInput" opcode="2">
- <field type="WINDOW" name="window" />
- <field type="ATOM" name="selection" />
- <field type="CARD32" name="event_mask" mask="SelectionEventMask" />
- </request>
-
- <enum name="CursorNotify">
- <item name="DisplayCursor" />
- </enum>
-
- <enum name="CursorNotifyMask">
- <item name="DisplayCursor"><bit>0</bit></item>
- </enum>
-
- <event name="CursorNotify" number="1">
- <field type="CARD8" name="subtype" enum="CursorNotify" />
- <field type="WINDOW" name="window" />
- <field type="CARD32" name="cursor_serial" />
- <field type="TIMESTAMP" name="timestamp" />
- <field type="ATOM" name="name" altenum="Atom" /> <!-- Added in version 2 -->
- <pad bytes="12" />
- </event>
-
- <request name="SelectCursorInput" opcode="3">
- <field type="WINDOW" name="window" />
- <field type="CARD32" name="event_mask" mask="CursorNotifyMask" />
- </request>
-
- <request name="GetCursorImage" opcode="4">
- <reply>
- <pad bytes="1" />
- <field type="INT16" name="x" />
- <field type="INT16" name="y" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD16" name="xhot" />
- <field type="CARD16" name="yhot" />
- <field type="CARD32" name="cursor_serial" />
- <pad bytes="8" />
- <list type="CARD32" name="cursor_image">
- <op op="*">
- <fieldref>width</fieldref>
- <fieldref>height</fieldref>
- </op>
- </list>
- </reply>
- </request>
-
- <!-- Version 2 -->
-
- <xidtype name="REGION" />
-
- <error name="BadRegion" number="0" />
-
- <enum name="Region">
- <item name="None" />
- </enum>
-
- <request name="CreateRegion" opcode="5">
- <field type="REGION" name="region" />
- <list type="RECTANGLE" name="rectangles" />
- </request>
-
- <request name="CreateRegionFromBitmap" opcode="6">
- <field type="REGION" name="region" />
- <field type="PIXMAP" name="bitmap" />
- </request>
-
- <request name="CreateRegionFromWindow" opcode="7">
- <field type="REGION" name="region" />
- <field type="WINDOW" name="window" />
- <field type="shape:KIND" name="kind" enum="SK" />
- <pad bytes="3" />
- </request>
-
- <request name="CreateRegionFromGC" opcode="8">
- <field type="REGION" name="region" />
- <field type="GCONTEXT" name="gc" />
- </request>
-
- <request name="CreateRegionFromPicture" opcode="9">
- <field type="REGION" name="region" />
- <field type="PICTURE" name="picture" />
- </request>
-
- <request name="DestroyRegion" opcode="10">
- <field type="REGION" name="region" />
- </request>
-
- <request name="SetRegion" opcode="11">
- <field type="REGION" name="region" />
- <list type="RECTANGLE" name="rectangles" />
- </request>
-
- <request name="CopyRegion" opcode="12">
- <field type="REGION" name="source" />
- <field type="REGION" name="destination" />
- </request>
-
- <request name="UnionRegion" opcode="13">
- <field type="REGION" name="source1" />
- <field type="REGION" name="source2" />
- <field type="REGION" name="destination" />
- </request>
-
- <request name="IntersectRegion" opcode="14">
- <field type="REGION" name="source1" />
- <field type="REGION" name="source2" />
- <field type="REGION" name="destination" />
- </request>
-
- <request name="SubtractRegion" opcode="15">
- <field type="REGION" name="source1" />
- <field type="REGION" name="source2" />
- <field type="REGION" name="destination" />
- </request>
-
- <request name="InvertRegion" opcode="16">
- <field type="REGION" name="source" />
- <field type="RECTANGLE" name="bounds" />
- <field type="REGION" name="destination" />
- </request>
-
- <request name="TranslateRegion" opcode="17">
- <field type="REGION" name="region" />
- <field type="INT16" name="dx" />
- <field type="INT16" name="dy" />
- </request>
-
- <request name="RegionExtents" opcode="18">
- <field type="REGION" name="source" />
- <field type="REGION" name="destination" />
- </request>
-
- <request name="FetchRegion" opcode="19">
- <field type="REGION" name="region" />
- <reply>
- <pad bytes="1" />
- <field type="RECTANGLE" name="extents" />
- <pad bytes="16" />
- <list type="RECTANGLE" name="rectangles">
- <op op='/'>
- <fieldref>length</fieldref>
- <value>2</value>
- </op>
- </list>
- </reply>
- </request>
-
- <request name="SetGCClipRegion" opcode="20">
- <field type="GCONTEXT" name="gc" />
- <field type="REGION" name="region" altenum="Region" />
- <field type="INT16" name="x_origin" />
- <field type="INT16" name="y_origin" />
- </request>
-
- <request name="SetWindowShapeRegion" opcode="21">
- <field type="WINDOW" name="dest" />
- <field type="shape:KIND" name="dest_kind" enum="SK" />
- <pad bytes="3" />
- <field type="INT16" name="x_offset" />
- <field type="INT16" name="y_offset" />
- <field type="REGION" name="region" altenum="Region" />
- </request>
-
- <request name="SetPictureClipRegion" opcode="22">
- <field type="PICTURE" name="picture" />
- <field type="REGION" name="region" altenum="Region" />
- <field type="INT16" name="x_origin" />
- <field type="INT16" name="y_origin" />
- </request>
-
- <request name="SetCursorName" opcode="23">
- <field type="CURSOR" name="cursor" />
- <field type="CARD16" name="nbytes" />
- <pad bytes="2" />
- <list type="char" name="name"><fieldref>nbytes</fieldref></list>
- </request>
-
- <request name="GetCursorName" opcode="24">
- <field type="CURSOR" name="cursor" />
- <reply>
- <pad bytes="1" />
- <field type="ATOM" name="atom" altenum="Atom" />
- <field type="CARD16" name="nbytes" />
- <pad bytes="18" />
- <list type="char" name="name"><fieldref>nbytes</fieldref></list>
- </reply>
- </request>
-
- <request name="GetCursorImageAndName" opcode="25">
- <reply>
- <pad bytes="1" />
- <field type="INT16" name="x" />
- <field type="INT16" name="y" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD16" name="xhot" />
- <field type="CARD16" name="yhot" />
- <field type="CARD32" name="cursor_serial" />
- <field type="ATOM" name="cursor_atom" altenum="Atom" />
- <field type="CARD16" name="nbytes" />
- <pad bytes="2" />
- <list type="char" name="name"><fieldref>nbytes</fieldref></list>
- <list type="CARD32" name="cursor_image">
- <op op="*">
- <fieldref>width</fieldref>
- <fieldref>height</fieldref>
- </op>
- </list>
- </reply>
- </request>
-
- <request name="ChangeCursor" opcode="26">
- <field type="CURSOR" name="source" />
- <field type="CURSOR" name="destination" />
- </request>
-
- <request name="ChangeCursorByName" opcode="27">
- <field type="CURSOR" name="src" />
- <field type="CARD16" name="nbytes" />
- <pad bytes="2" />
- <list type="char" name="name"><fieldref>nbytes</fieldref></list>
- </request>
-
- <!-- Version 3 -->
- <request name="ExpandRegion" opcode="28">
- <field type="REGION" name="source" />
- <field type="REGION" name="destination" />
- <field type="CARD16" name="left" />
- <field type="CARD16" name="right" />
- <field type="CARD16" name="top" />
- <field type="CARD16" name="bottom" />
- </request>
-
- <!-- Version 4 -->
- <request name="HideCursor" opcode="29">
- <field type="WINDOW" name="window" />
- </request>
-
- <request name="ShowCursor" opcode="30">
- <field type="WINDOW" name="window" />
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett. All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<!-- This file describes version 4 of XFixes. -->
+<xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes"
+ major-version="4" minor-version="0">
+ <import>xproto</import>
+ <import>render</import>
+ <import>shape</import>
+
+ <!-- Version 1 -->
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD32" name="client_major_version" />
+ <field type="CARD32" name="client_minor_version" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="major_version" />
+ <field type="CARD32" name="minor_version" />
+ <pad bytes="16" />
+ </reply>
+ </request>
+
+ <enum name="SaveSetMode">
+ <item name="Insert" />
+ <item name="Delete" />
+ </enum>
+
+ <enum name="SaveSetTarget">
+ <item name="Nearest" />
+ <item name="Root" />
+ </enum>
+
+ <enum name="SaveSetMapping">
+ <item name="Map" />
+ <item name="Unmap" />
+ </enum>
+
+ <request name="ChangeSaveSet" opcode="1">
+ <field type="BYTE" name="mode" enum="SaveSetMode" />
+ <field type="BYTE" name="target" enum="SaveSetTarget" />
+ <field type="BYTE" name="map" enum="SaveSetMapping" />
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <enum name="SelectionEvent">
+ <item name="SetSelectionOwner" />
+ <item name="SelectionWindowDestroy" />
+ <item name="SelectionClientClose" />
+ </enum>
+
+ <enum name="SelectionEventMask">
+ <item name="SetSelectionOwner"> <bit>0</bit></item>
+ <item name="SelectionWindowDestroy"><bit>1</bit></item>
+ <item name="SelectionClientClose"> <bit>2</bit></item>
+ </enum>
+
+ <event name="SelectionNotify" number="0">
+ <field type="CARD8" name="subtype" enum="SelectionEvent" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="owner" />
+ <field type="ATOM" name="selection" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="TIMESTAMP" name="selection_timestamp" />
+ <pad bytes="8" />
+ </event>
+
+ <request name="SelectSelectionInput" opcode="2">
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="selection" />
+ <field type="CARD32" name="event_mask" mask="SelectionEventMask" />
+ </request>
+
+ <enum name="CursorNotify">
+ <item name="DisplayCursor" />
+ </enum>
+
+ <enum name="CursorNotifyMask">
+ <item name="DisplayCursor"><bit>0</bit></item>
+ </enum>
+
+ <event name="CursorNotify" number="1">
+ <field type="CARD8" name="subtype" enum="CursorNotify" />
+ <field type="WINDOW" name="window" />
+ <field type="CARD32" name="cursor_serial" />
+ <field type="TIMESTAMP" name="timestamp" />
+ <field type="ATOM" name="name" altenum="Atom" /> <!-- Added in version 2 -->
+ <pad bytes="12" />
+ </event>
+
+ <request name="SelectCursorInput" opcode="3">
+ <field type="WINDOW" name="window" />
+ <field type="CARD32" name="event_mask" mask="CursorNotifyMask" />
+ </request>
+
+ <request name="GetCursorImage" opcode="4">
+ <reply>
+ <pad bytes="1" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="xhot" />
+ <field type="CARD16" name="yhot" />
+ <field type="CARD32" name="cursor_serial" />
+ <pad bytes="8" />
+ <list type="CARD32" name="cursor_image">
+ <op op="*">
+ <fieldref>width</fieldref>
+ <fieldref>height</fieldref>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <!-- Version 2 -->
+
+ <xidtype name="REGION" />
+
+ <error name="BadRegion" number="0" />
+
+ <enum name="Region">
+ <item name="None" />
+ </enum>
+
+ <request name="CreateRegion" opcode="5">
+ <field type="REGION" name="region" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="CreateRegionFromBitmap" opcode="6">
+ <field type="REGION" name="region" />
+ <field type="PIXMAP" name="bitmap" />
+ </request>
+
+ <request name="CreateRegionFromWindow" opcode="7">
+ <field type="REGION" name="region" />
+ <field type="WINDOW" name="window" />
+ <field type="shape:KIND" name="kind" enum="SK" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="CreateRegionFromGC" opcode="8">
+ <field type="REGION" name="region" />
+ <field type="GCONTEXT" name="gc" />
+ </request>
+
+ <request name="CreateRegionFromPicture" opcode="9">
+ <field type="REGION" name="region" />
+ <field type="PICTURE" name="picture" />
+ </request>
+
+ <request name="DestroyRegion" opcode="10">
+ <field type="REGION" name="region" />
+ </request>
+
+ <request name="SetRegion" opcode="11">
+ <field type="REGION" name="region" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="CopyRegion" opcode="12">
+ <field type="REGION" name="source" />
+ <field type="REGION" name="destination" />
+ </request>
+
+ <request name="UnionRegion" opcode="13">
+ <field type="REGION" name="source1" />
+ <field type="REGION" name="source2" />
+ <field type="REGION" name="destination" />
+ </request>
+
+ <request name="IntersectRegion" opcode="14">
+ <field type="REGION" name="source1" />
+ <field type="REGION" name="source2" />
+ <field type="REGION" name="destination" />
+ </request>
+
+ <request name="SubtractRegion" opcode="15">
+ <field type="REGION" name="source1" />
+ <field type="REGION" name="source2" />
+ <field type="REGION" name="destination" />
+ </request>
+
+ <request name="InvertRegion" opcode="16">
+ <field type="REGION" name="source" />
+ <field type="RECTANGLE" name="bounds" />
+ <field type="REGION" name="destination" />
+ </request>
+
+ <request name="TranslateRegion" opcode="17">
+ <field type="REGION" name="region" />
+ <field type="INT16" name="dx" />
+ <field type="INT16" name="dy" />
+ </request>
+
+ <request name="RegionExtents" opcode="18">
+ <field type="REGION" name="source" />
+ <field type="REGION" name="destination" />
+ </request>
+
+ <request name="FetchRegion" opcode="19">
+ <field type="REGION" name="region" />
+ <reply>
+ <pad bytes="1" />
+ <field type="RECTANGLE" name="extents" />
+ <pad bytes="16" />
+ <list type="RECTANGLE" name="rectangles">
+ <op op='/'>
+ <fieldref>length</fieldref>
+ <value>2</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetGCClipRegion" opcode="20">
+ <field type="GCONTEXT" name="gc" />
+ <field type="REGION" name="region" altenum="Region" />
+ <field type="INT16" name="x_origin" />
+ <field type="INT16" name="y_origin" />
+ </request>
+
+ <request name="SetWindowShapeRegion" opcode="21">
+ <field type="WINDOW" name="dest" />
+ <field type="shape:KIND" name="dest_kind" enum="SK" />
+ <pad bytes="3" />
+ <field type="INT16" name="x_offset" />
+ <field type="INT16" name="y_offset" />
+ <field type="REGION" name="region" altenum="Region" />
+ </request>
+
+ <request name="SetPictureClipRegion" opcode="22">
+ <field type="PICTURE" name="picture" />
+ <field type="REGION" name="region" altenum="Region" />
+ <field type="INT16" name="x_origin" />
+ <field type="INT16" name="y_origin" />
+ </request>
+
+ <request name="SetCursorName" opcode="23">
+ <field type="CURSOR" name="cursor" />
+ <field type="CARD16" name="nbytes" />
+ <pad bytes="2" />
+ <list type="char" name="name"><fieldref>nbytes</fieldref></list>
+ </request>
+
+ <request name="GetCursorName" opcode="24">
+ <field type="CURSOR" name="cursor" />
+ <reply>
+ <pad bytes="1" />
+ <field type="ATOM" name="atom" altenum="Atom" />
+ <field type="CARD16" name="nbytes" />
+ <pad bytes="18" />
+ <list type="char" name="name"><fieldref>nbytes</fieldref></list>
+ </reply>
+ </request>
+
+ <request name="GetCursorImageAndName" opcode="25">
+ <reply>
+ <pad bytes="1" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="xhot" />
+ <field type="CARD16" name="yhot" />
+ <field type="CARD32" name="cursor_serial" />
+ <field type="ATOM" name="cursor_atom" altenum="Atom" />
+ <field type="CARD16" name="nbytes" />
+ <pad bytes="2" />
+ <list type="char" name="name"><fieldref>nbytes</fieldref></list>
+ <list type="CARD32" name="cursor_image">
+ <op op="*">
+ <fieldref>width</fieldref>
+ <fieldref>height</fieldref>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeCursor" opcode="26">
+ <field type="CURSOR" name="source" />
+ <field type="CURSOR" name="destination" />
+ </request>
+
+ <request name="ChangeCursorByName" opcode="27">
+ <field type="CURSOR" name="src" />
+ <field type="CARD16" name="nbytes" />
+ <pad bytes="2" />
+ <list type="char" name="name"><fieldref>nbytes</fieldref></list>
+ </request>
+
+ <!-- Version 3 -->
+ <request name="ExpandRegion" opcode="28">
+ <field type="REGION" name="source" />
+ <field type="REGION" name="destination" />
+ <field type="CARD16" name="left" />
+ <field type="CARD16" name="right" />
+ <field type="CARD16" name="top" />
+ <field type="CARD16" name="bottom" />
+ </request>
+
+ <!-- Version 4 -->
+ <request name="HideCursor" opcode="29">
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ShowCursor" opcode="30">
+ <field type="WINDOW" name="window" />
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/xinerama.xml b/libxcb/xcb-proto/src/xinerama.xml
index b2747eeab..5534aa6c0 100644
--- a/libxcb/xcb-proto/src/xinerama.xml
+++ b/libxcb/xcb-proto/src/xinerama.xml
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<xcb header="xinerama" extension-xname="XINERAMA" extension-name="Xinerama"
- major-version="1" minor-version="1">
-
- <!-- Version 1.1 -->
-
- <import>xproto</import>
-
- <struct name="ScreenInfo">
- <field type="INT16" name="x_org" />
- <field type="INT16" name="y_org" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- </struct>
-
- <request name="QueryVersion" opcode="0">
- <field type="CARD8" name="major" />
- <field type="CARD8" name="minor" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="major" />
- <field type="CARD16" name="minor" />
- </reply>
- </request>
-
- <request name="GetState" opcode="1">
- <field type="WINDOW" name="window" />
- <reply>
- <field type="BYTE" name="state" />
- <field type="WINDOW" name="window" />
- </reply>
- </request>
-
- <request name="GetScreenCount" opcode="2">
- <field type="WINDOW" name="window" />
- <reply>
- <field type="BYTE" name="screen_count" />
- <field type="WINDOW" name="window" />
- </reply>
- </request>
-
- <request name="GetScreenSize" opcode="3">
- <field type="WINDOW" name="window" />
- <field type="CARD32" name="screen" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="width" />
- <field type="CARD32" name="height" />
- <field type="WINDOW" name="window" />
- <field type="CARD32" name="screen" />
- </reply>
- </request>
-
- <request name="IsActive" opcode="4">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="state" />
- </reply>
- </request>
-
- <request name="QueryScreens" opcode="5">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="number" />
- <pad bytes="20" />
- <list type="ScreenInfo" name="screen_info">
- <fieldref>number</fieldref>
- </list>
- </reply>
- </request>
-
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<xcb header="xinerama" extension-xname="XINERAMA" extension-name="Xinerama"
+ major-version="1" minor-version="1">
+
+ <!-- Version 1.1 -->
+
+ <import>xproto</import>
+
+ <struct name="ScreenInfo">
+ <field type="INT16" name="x_org" />
+ <field type="INT16" name="y_org" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </struct>
+
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD8" name="major" />
+ <field type="CARD8" name="minor" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="major" />
+ <field type="CARD16" name="minor" />
+ </reply>
+ </request>
+
+ <request name="GetState" opcode="1">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="BYTE" name="state" />
+ <field type="WINDOW" name="window" />
+ </reply>
+ </request>
+
+ <request name="GetScreenCount" opcode="2">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="BYTE" name="screen_count" />
+ <field type="WINDOW" name="window" />
+ </reply>
+ </request>
+
+ <request name="GetScreenSize" opcode="3">
+ <field type="WINDOW" name="window" />
+ <field type="CARD32" name="screen" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="width" />
+ <field type="CARD32" name="height" />
+ <field type="WINDOW" name="window" />
+ <field type="CARD32" name="screen" />
+ </reply>
+ </request>
+
+ <request name="IsActive" opcode="4">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="state" />
+ </reply>
+ </request>
+
+ <request name="QueryScreens" opcode="5">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="number" />
+ <pad bytes="20" />
+ <list type="ScreenInfo" name="screen_info">
+ <fieldref>number</fieldref>
+ </list>
+ </reply>
+ </request>
+
+</xcb>
diff --git a/libxcb/xcb-proto/src/xinput.xml b/libxcb/xcb-proto/src/xinput.xml
index 80416fe3f..b0a7a82e8 100644
--- a/libxcb/xcb-proto/src/xinput.xml
+++ b/libxcb/xcb-proto/src/xinput.xml
@@ -1,1020 +1,1020 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Peter Hutterer
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<!-- Spec: http://refspecs.freestandards.org/X11/Xinput.pdf -->
-
-<xcb header="xinput" extension-xname="XInputExtension" extension-name="Input"
- major-version="1" minor-version="4">
- <import>xproto</import>
-
- <typedef oldname="CARD8" newname="KeyCode" />
- <typedef oldname="CARD32" newname="EventClass" />
-
- <enum name="ValuatorMode">
- <item name="Relative"> <value>0</value></item>
- <item name="Absolute"> <value>1</value></item>
- </enum>
-
- <enum name="PropagateMode">
- <item name="AddToList"> <value>0</value></item>
- <item name="DeleteFromList"> <value>1</value></item>
- </enum>
-
- <!-- GetExtensionVersion -->
-
- <request name="GetExtensionVersion" opcode="1">
- <field type="CARD16" name="name_len" />
- <pad bytes="2" />
- <list type="char" name="name">
- <fieldref>name_len</fieldref>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="server_major" />
- <field type="CARD16" name="server_minor" />
- <field type="BOOL" name="present" />
- <pad bytes="19" />
- </reply>
- </request>
-
- <!-- ListInputDevices -->
-
- <enum name="DeviceUse">
- <item name="IsXPointer"><value>0</value></item>
- <item name="IsXKeyboard"><value>1</value></item>
- <item name="IsXExtensionDevice"><value>2</value></item>
- <item name="IsXExtensionKeyboard"><value>3</value></item>
- <item name="IsXExtensionPointer"><value>4</value></item>
- </enum>
-
- <struct name="DeviceInfo">
- <field type="ATOM" name="device_type" />
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="num_class_info" />
- <field type="CARD8" name="device_use" enum="DeviceUse" />
- <pad bytes="1" />
- </struct>
-
- <request name="ListInputDevices" opcode="2">
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="devices_len" />
- <pad bytes="23" />
- <list type="DeviceInfo" name="devices">
- <fieldref>devices_len</fieldref>
- </list>
- <!-- Uninterpreted: list of deviceinfo structs of 3 the subtypes -->
- <!-- Uninterpreted: list of null-terminated strings -->
- </reply>
- </request>
-
- <enum name="InputClass">
- <item name="Key"><value>0</value></item>
- <item name="Button"><value>1</value></item>
- <item name="Valuator"><value>2</value></item>
- <item name="Feedback"><value>3</value></item>
- <item name="Proximity"><value>4</value></item>
- <item name="Focus"><value>5</value></item>
- <item name="Other"><value>6</value></item>
- </enum>
-
- <struct name="InputInfo">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- </struct>
-
- <struct name="KeyInfo">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="KeyCode" name="min_keycode" />
- <field type="KeyCode" name="max_keycode" />
- <field type="CARD16" name="num_keys" />
- <pad bytes="2" />
- </struct>
-
- <struct name="ButtonInfo">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="CARD16" name="num_buttons" />
- </struct>
-
- <struct name="AxisInfo">
- <field type="CARD32" name="resolution" />
- <field type="INT32" name="minimum" />
- <field type="INT32" name="maximum" />
- </struct>
-
- <struct name="ValuatorInfo">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="CARD8" name="axes_len" />
- <field type="CARD8" name="mode" enum="ValuatorMode" />
- <field type="CARD32" name="motion_size" />
- <list type="AxisInfo" name="axes">
- <fieldref>axes_len</fieldref>
- </list>
- </struct>
-
- <!-- OpenDevice -->
-
- <struct name="InputClassInfo">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="event_type_base" />
- </struct>
-
- <request name="OpenDevice" opcode="3">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="num_classes" />
- <pad bytes="23" />
- <list type="InputClassInfo" name="class_info">
- <fieldref>num_classes</fieldref>
- </list>
- </reply>
- </request>
-
- <!-- CloseDevice -->
-
- <request name="CloseDevice" opcode="4">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- </request>
-
- <!-- SetDeviceMode -->
-
- <request name="SetDeviceMode" opcode="5">
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="mode" enum="ValuatorMode" />
- <pad bytes="2" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- SelectExtensionEvent -->
-
- <request name="SelectExtensionEvent" opcode="6">
- <field type="WINDOW" name="window" />
- <field type="CARD16" name="num_classes" />
- <pad bytes="2" />
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- </request>
-
- <!-- GetSelectedExtensionEvents -->
-
- <request name="GetSelectedExtensionEvents" opcode="7">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="num_this_classes" />
- <field type="CARD16" name="num_all_classes" />
- <pad bytes="20" />
- <list type="EventClass" name="this_classes">
- <fieldref>num_this_classes</fieldref>
- </list>
- <list type="EventClass" name="all_classes">
- <fieldref>num_all_classes</fieldref>
- </list>
- </reply>
- </request>
-
- <!-- ChangeDeviceDontPropagateList -->
-
- <request name="ChangeDeviceDontPropagateList" opcode="8">
- <field type="WINDOW" name="window" />
- <field type="CARD16" name="num_classes" />
- <field type="CARD8" name="mode" enum="PropagateMode" />
- <pad bytes="1" />
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- </request>
-
- <!-- GetDeviceDontPropagateList -->
-
- <request name="GetDeviceDontPropagateList" opcode="9">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="num_classes" />
- <pad bytes="22" />
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- </reply>
- </request>
-
- <!-- GetDeviceMotionEvents -->
-
- <request name="GetDeviceMotionEvents" opcode="10">
- <field type="TIMESTAMP" name="start" />
- <field type="TIMESTAMP" name="stop" altenum="Time" />
- <field type="CARD8" name="device_id" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num_coords" />
- <field type="CARD8" name="num_axes" />
- <field type="CARD8" name="device_mode" enum="ValuatorMode" />
- <pad bytes="18" />
- <!-- Uninterpreted: list of DeviceTimeCoord structures -->
- </reply>
- </request>
-
- <struct name="DeviceTimeCoord">
- <field type="TIMESTAMP" name="time" />
- <!-- Uninterpreted: list of CARD16 -->
- </struct>
-
- <!-- ChangeKeyboardDevice -->
- <request name="ChangeKeyboardDevice" opcode="11">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- ChangePointerDevice -->
-
- <request name="ChangePointerDevice" opcode="12">
- <field type="CARD8" name="x_axis" />
- <field type="CARD8" name="y_axis" />
- <field type="CARD8" name="device_id" />
- <pad bytes="1" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- GrabDevice -->
-
- <request name="GrabDevice" opcode="13">
- <field type="WINDOW" name="grab_window" />
- <field type="TIMESTAMP" name="time" altenum="Time" />
- <field type="CARD16" name="num_classes" />
- <field type="CARD8" name="this_device_mode" enum="GrabMode" />
- <field type="CARD8" name="other_device_mode" enum="GrabMode" />
- <field type="BOOL" name="owner_events" />
- <field type="CARD8" name="device_id" />
- <pad bytes="2" />
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" enum="GrabStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- UngrabDevice -->
-
- <request name="UngrabDevice" opcode="14">
- <field type="TIMESTAMP" name="time" altenum="Time" />
- <field type="CARD8" name="device_id" />
- </request>
-
- <!-- GrabDeviceKey -->
-
- <request name="GrabDeviceKey" opcode="15">
- <field type="WINDOW" name="grab_window" />
- <field type="CARD16" name="num_classes" />
- <field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
- <field type="CARD8" name="grabbed_device" />
- <field type="CARD8" name="key" altenum="Grab" />
- <field type="CARD8" name="this_device_mode" enum="GrabMode" />
- <field type="CARD8" name="other_device_mode" enum="GrabMode" />
- <field type="BOOL" name="owner_events" />
- <pad bytes="2" />
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- </request>
-
- <!-- UngrabDeviceKey -->
-
- <request name="UngrabDeviceKey" opcode="16">
- <field type="WINDOW" name="grabWindow" />
- <field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
- <field type="CARD8" name="key" altenum="Grab" />
- <field type="CARD8" name="grabbed_device" />
- </request>
-
- <!-- GrabDeviceButton -->
-
- <request name="GrabDeviceButton" opcode="17">
- <field type="WINDOW" name="grab_window" />
- <field type="CARD8" name="grabbed_device" />
- <field type="CARD8" name="modifier_device" />
- <field type="CARD16" name="num_classes" />
- <field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="this_device_mode" enum="GrabMode" />
- <field type="CARD8" name="other_device_mode" enum="GrabMode" />
- <field type="CARD8" name="button" altenum="Grab" />
- <field type="CARD8" name="owner_events" />
- <pad bytes="2" />
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- </request>
-
- <!-- UngrabDeviceButton -->
-
- <request name="UngrabDeviceButton" opcode="18">
- <field type="WINDOW" name="grab_window" />
- <field type="CARD16" name="modifiers" mask="ModMask" />
- <field type="CARD8" name="modifier_device" />
- <field type="CARD8" name="button" altenum="Grab" />
- <field type="CARD8" name="grabbed_device" />
- </request>
-
- <!-- AllowDeviceEvents -->
-
- <enum name="DeviceInputMode">
- <item name="AsyncThisDevice" />
- <item name="SyncThisDevice" />
- <item name="ReplayThisDevice" />
- <item name="AsyncOtherDevices" />
- <item name="AsyncAll" />
- <item name="SyncAll" />
- </enum>
-
- <request name="AllowDeviceEvents" opcode="19">
- <field type="TIMESTAMP" name="time" altenum="Time" />
- <field type="CARD8" name="mode" enum="DeviceInputMode" />
- <field type="CARD8" name="device_id" />
- </request>
-
- <!-- GetDeviceFocus -->
-
- <request name="GetDeviceFocus" opcode="20">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="WINDOW" name="focus" altenum="InputFocus" />
- <field type="TIMESTAMP" name="time" />
- <field type="CARD8" name="revert_to" enum="InputFocus" />
- <pad bytes="15" />
- </reply>
- </request>
-
- <!-- SetDeviceFocus -->
-
- <request name="SetDeviceFocus" opcode="21">
- <field type="WINDOW" name="focus" altenum="InputFocus" />
- <field type="TIMESTAMP" name="time" altenum="Time" />
- <field type="CARD8" name="revert_to" enum="InputFocus" />
- <field type="CARD8" name="device_id" />
- </request>
-
- <!-- GetFeedbackControl -->
-
- <request name="GetFeedbackControl" opcode="22">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="num_feedback" />
- <pad bytes="22" />
- <!-- Uninterpreted: list of FeedbackState structures -->
- </reply>
- </request>
-
- <enum name="FeedbackClass">
- <item name="Keyboard" />
- <item name="Pointer" />
- <item name="String" />
- <item name="Integer" />
- <item name="Led" />
- <item name="Bell" />
- </enum>
-
- <struct name="FeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- </struct>
-
- <struct name="KbdFeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="CARD16" name="pitch" />
- <field type="CARD16" name="duration" />
- <field type="CARD32" name="led_mask" />
- <field type="CARD32" name="led_values" />
- <field type="BOOL" name="global_auto_repeat" />
- <field type="CARD8" name="click" />
- <field type="CARD8" name="percent" />
- <pad bytes="1" />
- <list type="CARD8" name="auto_repeats"><value>32</value></list>
- </struct>
-
- <struct name="PtrFeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <pad bytes="2" />
- <field type="CARD16" name="accel_num" />
- <field type="CARD16" name="accel_denom" />
- <field type="CARD16" name="threshold" />
- </struct>
-
- <struct name="IntegerFeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="CARD32" name="resolution" />
- <field type="INT32" name="min_value" />
- <field type="INT32" name="max_value" />
- </struct>
-
- <struct name="StringFeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="CARD16" name="max_symbols" />
- <field type="CARD16" name="num_keysyms" />
- <list type="KEYSYM" name="keysyms">
- <fieldref>num_keysyms</fieldref>
- </list>
- </struct>
-
- <struct name="BellFeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="CARD8" name="percent" />
- <pad bytes="3" />
- <field type="CARD16" name="pitch" />
- <field type="CARD16" name="duration" />
- </struct>
-
- <struct name="LedFeedbackState">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="CARD32" name="led_mask" />
- <field type="CARD32" name="led_values" />
- </struct>
-
- <!-- ChangeFeedbackControl
-
- <request name="ChangeFeedbackControl" opcode="23">
- <field type="CARD32" name="mask" />
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="feedback_id" />
- Uninterpreted: list of FeedbackCtl structures
- </request>
-
- -->
-
- <struct name="FeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- </struct>
-
- <struct name="KbdFeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="KeyCode" name="key" />
- <field type="CARD8" name="auto_repeat_mode" />
- <field type="INT8" name="key_click_percent" />
- <field type="INT8" name="bell_percent" />
- <field type="INT16" name="bell_pitch" />
- <field type="INT16" name="bell_duration" />
- <field type="CARD32" name="led_mask" />
- <field type="CARD32" name="led_values" />
- </struct>
-
- <struct name="PtrFeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <pad bytes="2" />
- <field type="INT16" name="num" />
- <field type="INT16" name="denom" />
- <field type="INT16" name="threshold" />
- </struct>
-
- <struct name="IntegerFeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="INT32" name="int_to_display" />
- </struct>
-
- <struct name="StringFeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <pad bytes="2" />
- <field type="CARD16" name="num_keysyms" />
- <list type="KEYSYM" name="keysyms">
- <fieldref>num_keysyms</fieldref>
- </list>
- </struct>
-
- <struct name="BellFeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="INT8" name="percent" />
- <pad bytes="3" />
- <field type="INT16" name="pitch" />
- <field type="INT16" name="duration" />
- </struct>
-
- <struct name="LedFeedbackCtl">
- <field type="CARD8" name="class_id" enum="FeedbackClass" />
- <field type="CARD8" name="id" />
- <field type="CARD16" name="len" />
- <field type="CARD32" name="led_mask" />
- <field type="CARD32" name="led_values" />
- </struct>
-
- <!-- GetDeviceKeyMapping -->
-
- <request name="GetDeviceKeyMapping" opcode="24">
- <field type="CARD8" name="device_id" />
- <field type="KeyCode" name="first_keycode" />
- <field type="CARD8" name="count" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="keysyms_per_keycode" />
- <pad bytes="23" />
- <list type="KEYSYM" name="keysyms">
- <fieldref>length</fieldref>
- </list>
- </reply>
- </request>
-
- <!-- ChangeDeviceKeyMapping -->
-
- <request name="ChangeDeviceKeyMapping" opcode="25">
- <field type="CARD8" name="device_id" />
- <field type="KeyCode" name="first_keycode" />
- <field type="CARD8" name="keysyms_per_keycode" />
- <field type="CARD8" name="keycode_count" />
- <list type="KEYSYM" name="keysyms">
- <op op="*">
- <fieldref>keycode_count</fieldref>
- <fieldref>keysyms_per_keycode</fieldref>
- </op>
- </list>
- </request>
-
- <!-- GetDeviceModifierMapping -->
-
- <request name="GetDeviceModifierMapping" opcode="26">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="keycodes_per_modifier" />
- <pad bytes="23" />
- <list type="CARD8" name="keymaps">
- <op op="*">
- <fieldref>keycodes_per_modifier</fieldref>
- <value>8</value>
- </op>
- </list>
- </reply>
- </request>
-
- <!-- SetDeviceModifierMapping -->
-
- <request name="SetDeviceModifierMapping" opcode="27">
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="keycodes_per_modifier" />
- <pad bytes="1" />
- <list type="CARD8" name="keymaps">
- <op op="*">
- <fieldref>keycodes_per_modifier</fieldref>
- <value>8</value>
- </op>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" enum="MappingStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- GetDeviceButtonMapping -->
-
- <request name="GetDeviceButtonMapping" opcode="28">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="map_size" />
- <pad bytes="23" />
- <list type="CARD8" name="map">
- <fieldref>map_size</fieldref>
- </list>
- </reply>
- </request>
-
- <!-- SetDeviceButtonMapping -->
-
- <request name="SetDeviceButtonMapping" opcode="29">
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="map_size" />
- <pad bytes="2" />
- <list type="CARD8" name="map">
- <fieldref>map_size</fieldref>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" enum="MappingStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- QueryDeviceState -->
-
- <request name="QueryDeviceState" opcode="30">
- <field type="CARD8" name="device_id" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="num_classes" />
- <pad bytes="23" />
- <!-- Uninterpreted: list of InputState structures -->
- </reply>
- </request>
-
- <struct name="InputState">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="CARD8" name="num_items" />
- </struct>
-
- <struct name="KeyState">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="CARD8" name="num_keys" />
- <pad bytes="1" />
- <list type="CARD8" name="keys">
- <value>32</value>
- </list>
- </struct>
-
- <struct name="ButtonState">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="CARD8" name="num_buttons" />
- <pad bytes="1" />
- <list type="CARD8" name="buttons">
- <value>32</value>
- </list>
- </struct>
-
- <struct name="ValuatorState">
- <field type="CARD8" name="class_id" enum="InputClass" />
- <field type="CARD8" name="len" />
- <field type="CARD8" name="num_valuators" />
- <field type="CARD8" name="mode" />
- <list type="CARD32" name="valuators">
- <fieldref>num_valuators</fieldref>
- </list>
- </struct>
-
- <!-- SendExtensionEvent -->
-
- <request name="SendExtensionEvent" opcode="31">
- <field type="WINDOW" name="destination" />
- <field type="CARD8" name="device_id" />
- <field type="BOOL" name="propagate" />
- <field type="CARD16" name="num_classes" />
- <field type="CARD8" name="num_events" />
- <pad bytes="3" />
- <list type="char" name="events">
- <op op="*">
- <fieldref>num_events</fieldref>
- <value>32</value>
- </op>
- </list>
- <list type="EventClass" name="classes">
- <fieldref>num_classes</fieldref>
- </list>
- </request>
-
- <!-- DeviceBell -->
-
- <request name="DeviceBell" opcode="32">
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="feedback_id" />
- <field type="CARD8" name="feedback_class" />
- <field type="INT8" name="percent" />
- </request>
-
- <!-- SetDeviceValuators -->
-
- <request name="SetDeviceValuators" opcode="33">
- <field type="CARD8" name="device_id" />
- <field type="CARD8" name="first_valuator" />
- <field type="CARD8" name="num_valuators" />
- <pad bytes="1" />
- <list type="INT32" name="valuators">
- <fieldref>num_valuators</fieldref>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" enum="GrabStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- <!-- GetDeviceControl -->
-
- <request name="GetDeviceControl" opcode="34">
- <field type="CARD16" name="control_id" />
- <field type="CARD8" name="device_id" />
- <pad bytes="1" />
- <reply>
- <pad bytes="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
- <pad bytes="23" />
- <!-- Uninterpreted: list of DeviceState structures -->
- </reply>
- </request>
-
- <struct name="DeviceState">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- </struct>
-
- <struct name="DeviceResolutionState">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD32" name="num_valuators" />
- <list type="CARD32" name="resolution_values">
- <fieldref>num_valuators</fieldref>
- </list>
- <list type="CARD32" name="resolution_min">
- <fieldref>num_valuators</fieldref>
- </list>
- <list type="CARD32" name="resolution_max">
- <fieldref>num_valuators</fieldref>
- </list>
- </struct>
-
- <struct name="DeviceAbsCalibState">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="INT32" name="min_x" />
- <field type="INT32" name="max_x" />
- <field type="INT32" name="min_y" />
- <field type="INT32" name="max_y" />
- <field type="CARD32" name="flip_x" />
- <field type="CARD32" name="flip_y" />
- <field type="CARD32" name="rotation" />
- <field type="CARD32" name="button_threshold" />
- </struct>
-
- <struct name="DeviceAbsAreaState">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD32" name="offset_x" />
- <field type="CARD32" name="offset_y" />
- <field type="CARD32" name="width" />
- <field type="CARD32" name="height" />
- <field type="CARD32" name="screen" />
- <field type="CARD32" name="following" />
- </struct>
-
- <struct name="DeviceCoreState">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD8" name="status" />
- <field type="CARD8" name="iscore" />
- <pad bytes="2" />
- </struct>
-
- <struct name="DeviceEnableState">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD8" name="enable" />
- <pad bytes="3" />
- </struct>
-
- <!-- ChangeDeviceControl
-
- <request name="ChangeDeviceControl" opcode="35">
- <field type="CARD16" name="control_id" />
- <field type="CARD8" name="device_id" />
- <pad bytes="1" />
- Uninterpreted: list of DeviceCtl structures
- <reply>
- <pad byte="1" />
- <field type="CARD8" name="status" altenum="GrabStatus" />
- <pad bytes="23" />
- </reply>
- </request>
-
- -->
-
- <struct name="DeviceCtl">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- </struct>
-
- <struct name="DeviceResolutionCtl">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD8" name="first_valuator" />
- <field type="CARD8" name="num_valuators" />
- <list type="CARD32" name="resolution_values">
- <fieldref>num_valuators</fieldref>
- </list>
- </struct>
-
- <struct name="DeviceAbsCalibCtl">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="INT32" name="min_x" />
- <field type="INT32" name="max_x" />
- <field type="INT32" name="min_y" />
- <field type="INT32" name="max_y" />
- <field type="CARD32" name="flip_x" />
- <field type="CARD32" name="flip_y" />
- <field type="CARD32" name="rotation" />
- <field type="CARD32" name="button_threshold" />
- </struct>
-
- <struct name="DeviceAbsAreaCtrl">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD32" name="offset_x" />
- <field type="CARD32" name="offset_y" />
- <field type="INT32" name="width" />
- <field type="INT32" name="height" />
- <field type="INT32" name="screen" />
- <field type="CARD32" name="following" />
- </struct>
-
- <struct name="DeviceCoreCtrl">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD8" name="status" />
- <pad bytes="3" />
- </struct>
-
- <struct name="DeviceEnableCtrl">
- <field type="CARD16" name="control_id" />
- <field type="CARD16" name="len" />
- <field type="CARD8" name="enable" />
- <pad bytes="3" />
- </struct>
-
- <!-- EVENTS -->
-
- <event name="DeviceValuator" number="0">
- <field type="CARD8" name="device_id" />
- <field type="CARD16" name="device_state" />
- <field type="CARD8" name="num_valuators" />
- <field type="CARD8" name="first_valuator" />
- <list type="INT32" name="valuators"><value>6</value></list>
- </event>
-
- <event name="DeviceKeyPress" number="1">
- <field type="BYTE" name="detail" />
- <field type="TIMESTAMP" name="time" />
- <field type="WINDOW" name="root" />
- <field type="WINDOW" name="event" />
- <field type="WINDOW" name="child" altenum="Window" />
- <field type="INT16" name="root_x" />
- <field type="INT16" name="root_y" />
- <field type="INT16" name="event_x" />
- <field type="INT16" name="event_y" />
- <field type="CARD16" name="state" />
- <field type="BOOL" name="same_screen" />
- <field type="CARD8" name="device_id" />
- </event>
-
- <eventcopy name="DeviceKeyRelease" number="2" ref="DeviceKeyPress" />
- <eventcopy name="DeviceButtonPress" number="3" ref="DeviceKeyPress" />
- <eventcopy name="DeviceButtonRelease" number="4" ref="DeviceKeyPress" />
- <eventcopy name="DeviceMotionNotify" number="5" ref="DeviceKeyPress" />
- <eventcopy name="ProximityIn" number="8" ref="DeviceKeyPress" />
- <eventcopy name="ProximityOut" number="9" ref="DeviceKeyPress" />
-
- <event name="FocusIn" number="6">
- <field type="BYTE" name="detail" enum="NotifyDetail" />
- <field type="TIMESTAMP" name="time" />
- <field type="WINDOW" name="window" />
- <field type="BYTE" name="mode" enum="NotifyMode" />
- <field type="CARD8" name="device_id" />
- <pad bytes="18" />
- </event>
-
- <eventcopy name="FocusOut" number="7" ref="FocusIn" />
-
- <event name="DeviceStateNotify" number="10">
- <field type="BYTE" name="device_id" />
- <field type="TIMESTAMP" name="time" />
- <field type="CARD8" name="num_keys" />
- <field type="CARD8" name="num_buttons" />
- <field type="CARD8" name="num_valuators" />
- <field type="CARD8" name="classes_reported" />
- <list type="CARD8" name="buttons">
- <value>4</value>
- </list>
- <list type="CARD8" name="keys">
- <value>4</value>
- </list>
- <list type="CARD32" name="valuators">
- <value>3</value>
- </list>
- </event>
-
- <event name="DeviceMappingNotify" number="11">
- <field type="BYTE" name="device_id" />
- <field type="CARD8" name="request" />
- <field type="KeyCode" name="first_keycode" />
- <field type="CARD8" name="count" />
- <pad bytes="1" />
- <field type="TIMESTAMP" name="time" />
- <pad bytes="20" />
- </event>
-
- <event name="ChangeDeviceNotify" number="12">
- <field type="BYTE" name="device_id" />
- <field type="TIMESTAMP" name="time" />
- <field type="CARD8" name="request" />
- <pad bytes="23" />
- </event>
-
- <event name="DeviceKeyStateNotify" number="13">
- <field type="BYTE" name="device_id" />
- <list type="CARD8" name="keys">
- <value>28</value>
- </list>
- </event>
-
- <event name="DeviceButtonStateNotify" number="14">
- <field type="BYTE" name="device_id" />
- <list type="CARD8" name="buttons">
- <value>28</value>
- </list>
- </event>
-
- <event name="DevicePresenceNotify" number="15">
- <pad bytes="1" />
- <field type="TIMESTAMP" name="time" />
- <field type="BYTE" name="devchange" />
- <field type="BYTE" name="device_id" />
- <field type="CARD16" name="control" />
- <pad bytes="20" />
- </event>
-
- <!-- ERRORS -->
- <error name="Device" number="0" />
- <error name="Event" number="1" />
- <error name="Mode" number="2" />
- <error name="DeviceBusy" number="3" />
- <error name="Class" number="4" />
-
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Peter Hutterer
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<!-- Spec: http://refspecs.freestandards.org/X11/Xinput.pdf -->
+
+<xcb header="xinput" extension-xname="XInputExtension" extension-name="Input"
+ major-version="1" minor-version="4">
+ <import>xproto</import>
+
+ <typedef oldname="CARD8" newname="KeyCode" />
+ <typedef oldname="CARD32" newname="EventClass" />
+
+ <enum name="ValuatorMode">
+ <item name="Relative"> <value>0</value></item>
+ <item name="Absolute"> <value>1</value></item>
+ </enum>
+
+ <enum name="PropagateMode">
+ <item name="AddToList"> <value>0</value></item>
+ <item name="DeleteFromList"> <value>1</value></item>
+ </enum>
+
+ <!-- GetExtensionVersion -->
+
+ <request name="GetExtensionVersion" opcode="1">
+ <field type="CARD16" name="name_len" />
+ <pad bytes="2" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="server_major" />
+ <field type="CARD16" name="server_minor" />
+ <field type="BOOL" name="present" />
+ <pad bytes="19" />
+ </reply>
+ </request>
+
+ <!-- ListInputDevices -->
+
+ <enum name="DeviceUse">
+ <item name="IsXPointer"><value>0</value></item>
+ <item name="IsXKeyboard"><value>1</value></item>
+ <item name="IsXExtensionDevice"><value>2</value></item>
+ <item name="IsXExtensionKeyboard"><value>3</value></item>
+ <item name="IsXExtensionPointer"><value>4</value></item>
+ </enum>
+
+ <struct name="DeviceInfo">
+ <field type="ATOM" name="device_type" />
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="num_class_info" />
+ <field type="CARD8" name="device_use" enum="DeviceUse" />
+ <pad bytes="1" />
+ </struct>
+
+ <request name="ListInputDevices" opcode="2">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="devices_len" />
+ <pad bytes="23" />
+ <list type="DeviceInfo" name="devices">
+ <fieldref>devices_len</fieldref>
+ </list>
+ <!-- Uninterpreted: list of deviceinfo structs of 3 the subtypes -->
+ <!-- Uninterpreted: list of null-terminated strings -->
+ </reply>
+ </request>
+
+ <enum name="InputClass">
+ <item name="Key"><value>0</value></item>
+ <item name="Button"><value>1</value></item>
+ <item name="Valuator"><value>2</value></item>
+ <item name="Feedback"><value>3</value></item>
+ <item name="Proximity"><value>4</value></item>
+ <item name="Focus"><value>5</value></item>
+ <item name="Other"><value>6</value></item>
+ </enum>
+
+ <struct name="InputInfo">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ </struct>
+
+ <struct name="KeyInfo">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="KeyCode" name="min_keycode" />
+ <field type="KeyCode" name="max_keycode" />
+ <field type="CARD16" name="num_keys" />
+ <pad bytes="2" />
+ </struct>
+
+ <struct name="ButtonInfo">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="CARD16" name="num_buttons" />
+ </struct>
+
+ <struct name="AxisInfo">
+ <field type="CARD32" name="resolution" />
+ <field type="INT32" name="minimum" />
+ <field type="INT32" name="maximum" />
+ </struct>
+
+ <struct name="ValuatorInfo">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="CARD8" name="axes_len" />
+ <field type="CARD8" name="mode" enum="ValuatorMode" />
+ <field type="CARD32" name="motion_size" />
+ <list type="AxisInfo" name="axes">
+ <fieldref>axes_len</fieldref>
+ </list>
+ </struct>
+
+ <!-- OpenDevice -->
+
+ <struct name="InputClassInfo">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="event_type_base" />
+ </struct>
+
+ <request name="OpenDevice" opcode="3">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="num_classes" />
+ <pad bytes="23" />
+ <list type="InputClassInfo" name="class_info">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <!-- CloseDevice -->
+
+ <request name="CloseDevice" opcode="4">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ </request>
+
+ <!-- SetDeviceMode -->
+
+ <request name="SetDeviceMode" opcode="5">
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="mode" enum="ValuatorMode" />
+ <pad bytes="2" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" altenum="GrabStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- SelectExtensionEvent -->
+
+ <request name="SelectExtensionEvent" opcode="6">
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="num_classes" />
+ <pad bytes="2" />
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </request>
+
+ <!-- GetSelectedExtensionEvents -->
+
+ <request name="GetSelectedExtensionEvents" opcode="7">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="num_this_classes" />
+ <field type="CARD16" name="num_all_classes" />
+ <pad bytes="20" />
+ <list type="EventClass" name="this_classes">
+ <fieldref>num_this_classes</fieldref>
+ </list>
+ <list type="EventClass" name="all_classes">
+ <fieldref>num_all_classes</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <!-- ChangeDeviceDontPropagateList -->
+
+ <request name="ChangeDeviceDontPropagateList" opcode="8">
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="num_classes" />
+ <field type="CARD8" name="mode" enum="PropagateMode" />
+ <pad bytes="1" />
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </request>
+
+ <!-- GetDeviceDontPropagateList -->
+
+ <request name="GetDeviceDontPropagateList" opcode="9">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="num_classes" />
+ <pad bytes="22" />
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <!-- GetDeviceMotionEvents -->
+
+ <request name="GetDeviceMotionEvents" opcode="10">
+ <field type="TIMESTAMP" name="start" />
+ <field type="TIMESTAMP" name="stop" altenum="Time" />
+ <field type="CARD8" name="device_id" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num_coords" />
+ <field type="CARD8" name="num_axes" />
+ <field type="CARD8" name="device_mode" enum="ValuatorMode" />
+ <pad bytes="18" />
+ <!-- Uninterpreted: list of DeviceTimeCoord structures -->
+ </reply>
+ </request>
+
+ <struct name="DeviceTimeCoord">
+ <field type="TIMESTAMP" name="time" />
+ <!-- Uninterpreted: list of CARD16 -->
+ </struct>
+
+ <!-- ChangeKeyboardDevice -->
+ <request name="ChangeKeyboardDevice" opcode="11">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" altenum="GrabStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- ChangePointerDevice -->
+
+ <request name="ChangePointerDevice" opcode="12">
+ <field type="CARD8" name="x_axis" />
+ <field type="CARD8" name="y_axis" />
+ <field type="CARD8" name="device_id" />
+ <pad bytes="1" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" altenum="GrabStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- GrabDevice -->
+
+ <request name="GrabDevice" opcode="13">
+ <field type="WINDOW" name="grab_window" />
+ <field type="TIMESTAMP" name="time" altenum="Time" />
+ <field type="CARD16" name="num_classes" />
+ <field type="CARD8" name="this_device_mode" enum="GrabMode" />
+ <field type="CARD8" name="other_device_mode" enum="GrabMode" />
+ <field type="BOOL" name="owner_events" />
+ <field type="CARD8" name="device_id" />
+ <pad bytes="2" />
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" enum="GrabStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- UngrabDevice -->
+
+ <request name="UngrabDevice" opcode="14">
+ <field type="TIMESTAMP" name="time" altenum="Time" />
+ <field type="CARD8" name="device_id" />
+ </request>
+
+ <!-- GrabDeviceKey -->
+
+ <request name="GrabDeviceKey" opcode="15">
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="num_classes" />
+ <field type="CARD16" name="modifiers" mask="ModMask" />
+ <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="grabbed_device" />
+ <field type="CARD8" name="key" altenum="Grab" />
+ <field type="CARD8" name="this_device_mode" enum="GrabMode" />
+ <field type="CARD8" name="other_device_mode" enum="GrabMode" />
+ <field type="BOOL" name="owner_events" />
+ <pad bytes="2" />
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </request>
+
+ <!-- UngrabDeviceKey -->
+
+ <request name="UngrabDeviceKey" opcode="16">
+ <field type="WINDOW" name="grabWindow" />
+ <field type="CARD16" name="modifiers" mask="ModMask" />
+ <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="key" altenum="Grab" />
+ <field type="CARD8" name="grabbed_device" />
+ </request>
+
+ <!-- GrabDeviceButton -->
+
+ <request name="GrabDeviceButton" opcode="17">
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD8" name="grabbed_device" />
+ <field type="CARD8" name="modifier_device" />
+ <field type="CARD16" name="num_classes" />
+ <field type="CARD16" name="modifiers" mask="ModMask" />
+ <field type="CARD8" name="this_device_mode" enum="GrabMode" />
+ <field type="CARD8" name="other_device_mode" enum="GrabMode" />
+ <field type="CARD8" name="button" altenum="Grab" />
+ <field type="CARD8" name="owner_events" />
+ <pad bytes="2" />
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </request>
+
+ <!-- UngrabDeviceButton -->
+
+ <request name="UngrabDeviceButton" opcode="18">
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" mask="ModMask" />
+ <field type="CARD8" name="modifier_device" />
+ <field type="CARD8" name="button" altenum="Grab" />
+ <field type="CARD8" name="grabbed_device" />
+ </request>
+
+ <!-- AllowDeviceEvents -->
+
+ <enum name="DeviceInputMode">
+ <item name="AsyncThisDevice" />
+ <item name="SyncThisDevice" />
+ <item name="ReplayThisDevice" />
+ <item name="AsyncOtherDevices" />
+ <item name="AsyncAll" />
+ <item name="SyncAll" />
+ </enum>
+
+ <request name="AllowDeviceEvents" opcode="19">
+ <field type="TIMESTAMP" name="time" altenum="Time" />
+ <field type="CARD8" name="mode" enum="DeviceInputMode" />
+ <field type="CARD8" name="device_id" />
+ </request>
+
+ <!-- GetDeviceFocus -->
+
+ <request name="GetDeviceFocus" opcode="20">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="focus" altenum="InputFocus" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="CARD8" name="revert_to" enum="InputFocus" />
+ <pad bytes="15" />
+ </reply>
+ </request>
+
+ <!-- SetDeviceFocus -->
+
+ <request name="SetDeviceFocus" opcode="21">
+ <field type="WINDOW" name="focus" altenum="InputFocus" />
+ <field type="TIMESTAMP" name="time" altenum="Time" />
+ <field type="CARD8" name="revert_to" enum="InputFocus" />
+ <field type="CARD8" name="device_id" />
+ </request>
+
+ <!-- GetFeedbackControl -->
+
+ <request name="GetFeedbackControl" opcode="22">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="num_feedback" />
+ <pad bytes="22" />
+ <!-- Uninterpreted: list of FeedbackState structures -->
+ </reply>
+ </request>
+
+ <enum name="FeedbackClass">
+ <item name="Keyboard" />
+ <item name="Pointer" />
+ <item name="String" />
+ <item name="Integer" />
+ <item name="Led" />
+ <item name="Bell" />
+ </enum>
+
+ <struct name="FeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ </struct>
+
+ <struct name="KbdFeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD16" name="pitch" />
+ <field type="CARD16" name="duration" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD32" name="led_values" />
+ <field type="BOOL" name="global_auto_repeat" />
+ <field type="CARD8" name="click" />
+ <field type="CARD8" name="percent" />
+ <pad bytes="1" />
+ <list type="CARD8" name="auto_repeats"><value>32</value></list>
+ </struct>
+
+ <struct name="PtrFeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <pad bytes="2" />
+ <field type="CARD16" name="accel_num" />
+ <field type="CARD16" name="accel_denom" />
+ <field type="CARD16" name="threshold" />
+ </struct>
+
+ <struct name="IntegerFeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD32" name="resolution" />
+ <field type="INT32" name="min_value" />
+ <field type="INT32" name="max_value" />
+ </struct>
+
+ <struct name="StringFeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD16" name="max_symbols" />
+ <field type="CARD16" name="num_keysyms" />
+ <list type="KEYSYM" name="keysyms">
+ <fieldref>num_keysyms</fieldref>
+ </list>
+ </struct>
+
+ <struct name="BellFeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD8" name="percent" />
+ <pad bytes="3" />
+ <field type="CARD16" name="pitch" />
+ <field type="CARD16" name="duration" />
+ </struct>
+
+ <struct name="LedFeedbackState">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD32" name="led_values" />
+ </struct>
+
+ <!-- ChangeFeedbackControl
+
+ <request name="ChangeFeedbackControl" opcode="23">
+ <field type="CARD32" name="mask" />
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="feedback_id" />
+ Uninterpreted: list of FeedbackCtl structures
+ </request>
+
+ -->
+
+ <struct name="FeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ </struct>
+
+ <struct name="KbdFeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="KeyCode" name="key" />
+ <field type="CARD8" name="auto_repeat_mode" />
+ <field type="INT8" name="key_click_percent" />
+ <field type="INT8" name="bell_percent" />
+ <field type="INT16" name="bell_pitch" />
+ <field type="INT16" name="bell_duration" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD32" name="led_values" />
+ </struct>
+
+ <struct name="PtrFeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <pad bytes="2" />
+ <field type="INT16" name="num" />
+ <field type="INT16" name="denom" />
+ <field type="INT16" name="threshold" />
+ </struct>
+
+ <struct name="IntegerFeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="INT32" name="int_to_display" />
+ </struct>
+
+ <struct name="StringFeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <pad bytes="2" />
+ <field type="CARD16" name="num_keysyms" />
+ <list type="KEYSYM" name="keysyms">
+ <fieldref>num_keysyms</fieldref>
+ </list>
+ </struct>
+
+ <struct name="BellFeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="INT8" name="percent" />
+ <pad bytes="3" />
+ <field type="INT16" name="pitch" />
+ <field type="INT16" name="duration" />
+ </struct>
+
+ <struct name="LedFeedbackCtl">
+ <field type="CARD8" name="class_id" enum="FeedbackClass" />
+ <field type="CARD8" name="id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD32" name="led_values" />
+ </struct>
+
+ <!-- GetDeviceKeyMapping -->
+
+ <request name="GetDeviceKeyMapping" opcode="24">
+ <field type="CARD8" name="device_id" />
+ <field type="KeyCode" name="first_keycode" />
+ <field type="CARD8" name="count" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="keysyms_per_keycode" />
+ <pad bytes="23" />
+ <list type="KEYSYM" name="keysyms">
+ <fieldref>length</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <!-- ChangeDeviceKeyMapping -->
+
+ <request name="ChangeDeviceKeyMapping" opcode="25">
+ <field type="CARD8" name="device_id" />
+ <field type="KeyCode" name="first_keycode" />
+ <field type="CARD8" name="keysyms_per_keycode" />
+ <field type="CARD8" name="keycode_count" />
+ <list type="KEYSYM" name="keysyms">
+ <op op="*">
+ <fieldref>keycode_count</fieldref>
+ <fieldref>keysyms_per_keycode</fieldref>
+ </op>
+ </list>
+ </request>
+
+ <!-- GetDeviceModifierMapping -->
+
+ <request name="GetDeviceModifierMapping" opcode="26">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="keycodes_per_modifier" />
+ <pad bytes="23" />
+ <list type="CARD8" name="keymaps">
+ <op op="*">
+ <fieldref>keycodes_per_modifier</fieldref>
+ <value>8</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <!-- SetDeviceModifierMapping -->
+
+ <request name="SetDeviceModifierMapping" opcode="27">
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="keycodes_per_modifier" />
+ <pad bytes="1" />
+ <list type="CARD8" name="keymaps">
+ <op op="*">
+ <fieldref>keycodes_per_modifier</fieldref>
+ <value>8</value>
+ </op>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" enum="MappingStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- GetDeviceButtonMapping -->
+
+ <request name="GetDeviceButtonMapping" opcode="28">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="map_size" />
+ <pad bytes="23" />
+ <list type="CARD8" name="map">
+ <fieldref>map_size</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <!-- SetDeviceButtonMapping -->
+
+ <request name="SetDeviceButtonMapping" opcode="29">
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="map_size" />
+ <pad bytes="2" />
+ <list type="CARD8" name="map">
+ <fieldref>map_size</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" enum="MappingStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- QueryDeviceState -->
+
+ <request name="QueryDeviceState" opcode="30">
+ <field type="CARD8" name="device_id" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="num_classes" />
+ <pad bytes="23" />
+ <!-- Uninterpreted: list of InputState structures -->
+ </reply>
+ </request>
+
+ <struct name="InputState">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="CARD8" name="num_items" />
+ </struct>
+
+ <struct name="KeyState">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="CARD8" name="num_keys" />
+ <pad bytes="1" />
+ <list type="CARD8" name="keys">
+ <value>32</value>
+ </list>
+ </struct>
+
+ <struct name="ButtonState">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="CARD8" name="num_buttons" />
+ <pad bytes="1" />
+ <list type="CARD8" name="buttons">
+ <value>32</value>
+ </list>
+ </struct>
+
+ <struct name="ValuatorState">
+ <field type="CARD8" name="class_id" enum="InputClass" />
+ <field type="CARD8" name="len" />
+ <field type="CARD8" name="num_valuators" />
+ <field type="CARD8" name="mode" />
+ <list type="CARD32" name="valuators">
+ <fieldref>num_valuators</fieldref>
+ </list>
+ </struct>
+
+ <!-- SendExtensionEvent -->
+
+ <request name="SendExtensionEvent" opcode="31">
+ <field type="WINDOW" name="destination" />
+ <field type="CARD8" name="device_id" />
+ <field type="BOOL" name="propagate" />
+ <field type="CARD16" name="num_classes" />
+ <field type="CARD8" name="num_events" />
+ <pad bytes="3" />
+ <list type="char" name="events">
+ <op op="*">
+ <fieldref>num_events</fieldref>
+ <value>32</value>
+ </op>
+ </list>
+ <list type="EventClass" name="classes">
+ <fieldref>num_classes</fieldref>
+ </list>
+ </request>
+
+ <!-- DeviceBell -->
+
+ <request name="DeviceBell" opcode="32">
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="feedback_id" />
+ <field type="CARD8" name="feedback_class" />
+ <field type="INT8" name="percent" />
+ </request>
+
+ <!-- SetDeviceValuators -->
+
+ <request name="SetDeviceValuators" opcode="33">
+ <field type="CARD8" name="device_id" />
+ <field type="CARD8" name="first_valuator" />
+ <field type="CARD8" name="num_valuators" />
+ <pad bytes="1" />
+ <list type="INT32" name="valuators">
+ <fieldref>num_valuators</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" enum="GrabStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ <!-- GetDeviceControl -->
+
+ <request name="GetDeviceControl" opcode="34">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD8" name="device_id" />
+ <pad bytes="1" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD8" name="status" altenum="GrabStatus" />
+ <pad bytes="23" />
+ <!-- Uninterpreted: list of DeviceState structures -->
+ </reply>
+ </request>
+
+ <struct name="DeviceState">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ </struct>
+
+ <struct name="DeviceResolutionState">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD32" name="num_valuators" />
+ <list type="CARD32" name="resolution_values">
+ <fieldref>num_valuators</fieldref>
+ </list>
+ <list type="CARD32" name="resolution_min">
+ <fieldref>num_valuators</fieldref>
+ </list>
+ <list type="CARD32" name="resolution_max">
+ <fieldref>num_valuators</fieldref>
+ </list>
+ </struct>
+
+ <struct name="DeviceAbsCalibState">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="INT32" name="min_x" />
+ <field type="INT32" name="max_x" />
+ <field type="INT32" name="min_y" />
+ <field type="INT32" name="max_y" />
+ <field type="CARD32" name="flip_x" />
+ <field type="CARD32" name="flip_y" />
+ <field type="CARD32" name="rotation" />
+ <field type="CARD32" name="button_threshold" />
+ </struct>
+
+ <struct name="DeviceAbsAreaState">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD32" name="offset_x" />
+ <field type="CARD32" name="offset_y" />
+ <field type="CARD32" name="width" />
+ <field type="CARD32" name="height" />
+ <field type="CARD32" name="screen" />
+ <field type="CARD32" name="following" />
+ </struct>
+
+ <struct name="DeviceCoreState">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD8" name="status" />
+ <field type="CARD8" name="iscore" />
+ <pad bytes="2" />
+ </struct>
+
+ <struct name="DeviceEnableState">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD8" name="enable" />
+ <pad bytes="3" />
+ </struct>
+
+ <!-- ChangeDeviceControl
+
+ <request name="ChangeDeviceControl" opcode="35">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD8" name="device_id" />
+ <pad bytes="1" />
+ Uninterpreted: list of DeviceCtl structures
+ <reply>
+ <pad byte="1" />
+ <field type="CARD8" name="status" altenum="GrabStatus" />
+ <pad bytes="23" />
+ </reply>
+ </request>
+
+ -->
+
+ <struct name="DeviceCtl">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ </struct>
+
+ <struct name="DeviceResolutionCtl">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD8" name="first_valuator" />
+ <field type="CARD8" name="num_valuators" />
+ <list type="CARD32" name="resolution_values">
+ <fieldref>num_valuators</fieldref>
+ </list>
+ </struct>
+
+ <struct name="DeviceAbsCalibCtl">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="INT32" name="min_x" />
+ <field type="INT32" name="max_x" />
+ <field type="INT32" name="min_y" />
+ <field type="INT32" name="max_y" />
+ <field type="CARD32" name="flip_x" />
+ <field type="CARD32" name="flip_y" />
+ <field type="CARD32" name="rotation" />
+ <field type="CARD32" name="button_threshold" />
+ </struct>
+
+ <struct name="DeviceAbsAreaCtrl">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD32" name="offset_x" />
+ <field type="CARD32" name="offset_y" />
+ <field type="INT32" name="width" />
+ <field type="INT32" name="height" />
+ <field type="INT32" name="screen" />
+ <field type="CARD32" name="following" />
+ </struct>
+
+ <struct name="DeviceCoreCtrl">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD8" name="status" />
+ <pad bytes="3" />
+ </struct>
+
+ <struct name="DeviceEnableCtrl">
+ <field type="CARD16" name="control_id" />
+ <field type="CARD16" name="len" />
+ <field type="CARD8" name="enable" />
+ <pad bytes="3" />
+ </struct>
+
+ <!-- EVENTS -->
+
+ <event name="DeviceValuator" number="0">
+ <field type="CARD8" name="device_id" />
+ <field type="CARD16" name="device_state" />
+ <field type="CARD8" name="num_valuators" />
+ <field type="CARD8" name="first_valuator" />
+ <list type="INT32" name="valuators"><value>6</value></list>
+ </event>
+
+ <event name="DeviceKeyPress" number="1">
+ <field type="BYTE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" altenum="Window" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ <field type="CARD8" name="device_id" />
+ </event>
+
+ <eventcopy name="DeviceKeyRelease" number="2" ref="DeviceKeyPress" />
+ <eventcopy name="DeviceButtonPress" number="3" ref="DeviceKeyPress" />
+ <eventcopy name="DeviceButtonRelease" number="4" ref="DeviceKeyPress" />
+ <eventcopy name="DeviceMotionNotify" number="5" ref="DeviceKeyPress" />
+ <eventcopy name="ProximityIn" number="8" ref="DeviceKeyPress" />
+ <eventcopy name="ProximityOut" number="9" ref="DeviceKeyPress" />
+
+ <event name="FocusIn" number="6">
+ <field type="BYTE" name="detail" enum="NotifyDetail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="window" />
+ <field type="BYTE" name="mode" enum="NotifyMode" />
+ <field type="CARD8" name="device_id" />
+ <pad bytes="18" />
+ </event>
+
+ <eventcopy name="FocusOut" number="7" ref="FocusIn" />
+
+ <event name="DeviceStateNotify" number="10">
+ <field type="BYTE" name="device_id" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="CARD8" name="num_keys" />
+ <field type="CARD8" name="num_buttons" />
+ <field type="CARD8" name="num_valuators" />
+ <field type="CARD8" name="classes_reported" />
+ <list type="CARD8" name="buttons">
+ <value>4</value>
+ </list>
+ <list type="CARD8" name="keys">
+ <value>4</value>
+ </list>
+ <list type="CARD32" name="valuators">
+ <value>3</value>
+ </list>
+ </event>
+
+ <event name="DeviceMappingNotify" number="11">
+ <field type="BYTE" name="device_id" />
+ <field type="CARD8" name="request" />
+ <field type="KeyCode" name="first_keycode" />
+ <field type="CARD8" name="count" />
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <pad bytes="20" />
+ </event>
+
+ <event name="ChangeDeviceNotify" number="12">
+ <field type="BYTE" name="device_id" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="CARD8" name="request" />
+ <pad bytes="23" />
+ </event>
+
+ <event name="DeviceKeyStateNotify" number="13">
+ <field type="BYTE" name="device_id" />
+ <list type="CARD8" name="keys">
+ <value>28</value>
+ </list>
+ </event>
+
+ <event name="DeviceButtonStateNotify" number="14">
+ <field type="BYTE" name="device_id" />
+ <list type="CARD8" name="buttons">
+ <value>28</value>
+ </list>
+ </event>
+
+ <event name="DevicePresenceNotify" number="15">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="BYTE" name="devchange" />
+ <field type="BYTE" name="device_id" />
+ <field type="CARD16" name="control" />
+ <pad bytes="20" />
+ </event>
+
+ <!-- ERRORS -->
+ <error name="Device" number="0" />
+ <error name="Event" number="1" />
+ <error name="Mode" number="2" />
+ <error name="DeviceBusy" number="3" />
+ <error name="Class" number="4" />
+
+</xcb>
diff --git a/libxcb/xcb-proto/src/xprint.xml b/libxcb/xcb-proto/src/xprint.xml
index ffd8df1ea..4107e96e5 100644
--- a/libxcb/xcb-proto/src/xprint.xml
+++ b/libxcb/xcb-proto/src/xprint.xml
@@ -1,329 +1,329 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining 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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<xcb header="xprint" extension-xname="XpExtension" extension-name="XPrint"
- extension-multiword="true" major-version="1" minor-version="0">
-
- <!-- Conforms to XPRINT 1.0 -->
-
- <import>xproto</import>
-
- <typedef oldname="char" newname="STRING8" />
-
- <!-- Types -->
- <struct name="PRINTER">
- <field type="CARD32" name="nameLen" />
- <list type="STRING8" name="name">
- <fieldref>nameLen</fieldref>
- </list>
- <!-- Padding -->
- <field type="CARD32" name="descLen" />
- <list type="STRING8" name="description">
- <fieldref>descLen</fieldref>
- </list>
- <!-- More padding -->
- </struct>
-
- <!--<typedef oldname="CARD32" newname="PCONTEXT" />-->
- <xidtype name="PCONTEXT" />
-
- <!-- "PrintGetDocumentData" -->
- <enum name="GetDoc">
- <item name="Finished"><value>0</value></item>
- <item name="SecondConsumer"><value>1</value></item>
- </enum>
-
- <!-- Event Mask ("PrintSelectInput") -->
- <enum name="EvMask">
- <item name="NoEventMask"><value>0</value></item>
- <item name="PrintMask"><bit>0</bit></item>
- <item name="AttributeMask"><bit>1</bit></item>
- </enum>
-
- <!-- "PrintNotify" detail -->
- <enum name="Detail">
- <item name="StartJobNotify"><value>1</value></item>
- <item name="EndJobNotify"><value>2</value></item>
- <item name="StartDocNotify"><value>3</value></item>
- <item name="EndDocNotify"><value>4</value></item>
- <item name="StartPageNotify"><value>5</value></item>
- <item name="EndPageNotify"><value>6</value></item>
- </enum>
-
- <!-- "AttributeNotify" detail -->
- <enum name="Attr">
- <item name="JobAttr"><value>1</value></item>
- <item name="DocAttr"><value>2</value></item>
- <item name="PageAttr"><value>3</value></item>
- <item name="PrinterAttr"><value>4</value></item>
- <item name="ServerAttr"><value>5</value></item>
- <item name="MediumAttr"><value>6</value></item>
- <item name="SpoolerAttr"><value>7</value></item>
- </enum>
-
-
- <!-- Requests -->
- <request name="PrintQueryVersion" opcode="0">
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="major_version" />
- <field type="CARD16" name="minor_version" />
- </reply>
- </request>
-
- <request name="PrintGetPrinterList" opcode="1">
- <field type="CARD32" name="printerNameLen" />
- <field type="CARD32" name="localeLen" />
- <list type="STRING8" name="printer_name">
- <fieldref>printerNameLen</fieldref>
- </list>
- <!-- There's some padding in here... -->
- <list type="STRING8" name="locale">
- <fieldref>localeLen</fieldref>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="listCount" />
- <pad bytes="20" />
- <list type="PRINTER" name="printers">
- <fieldref>listCount</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="PrintRehashPrinterList" opcode="20" />
-
- <request name="CreateContext" opcode="2">
- <field type="CARD32" name="context_id" />
- <field type="CARD32" name="printerNameLen" />
- <field type="CARD32" name="localeLen" />
- <list type="STRING8" name="printerName">
- <fieldref>printerNameLen</fieldref>
- </list>
- <!-- padding -->
- <list type="STRING8" name="locale">
- <fieldref>localeLen</fieldref>
- </list>
- </request>
-
- <request name="PrintSetContext" opcode="3">
- <field type="CARD32" name="context" />
- </request>
-
- <request name="PrintGetContext" opcode="4">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context" />
- </reply>
- </request>
-
- <request name="PrintDestroyContext" opcode="5">
- <field type="CARD32" name="context" />
- </request>
-
- <request name="PrintGetScreenOfContext" opcode="6">
- <reply>
- <pad bytes="1" />
- <field type="WINDOW" name="root" />
- </reply>
- </request>
-
- <request name="PrintStartJob" opcode="7">
- <field type="CARD8" name="output_mode"/>
- </request>
-
- <request name="PrintEndJob" opcode="8">
- <field type="BOOL" name="cancel" />
- </request>
-
- <request name="PrintStartDoc" opcode="9">
- <field type="CARD8" name="driver_mode" />
- </request>
-
- <request name="PrintEndDoc" opcode="10">
- <field type="BOOL" name="cancel" />
- </request>
-
- <request name="PrintPutDocumentData" opcode="11">
- <field type="DRAWABLE" name="drawable" />
- <field type="CARD32" name="len_data" />
- <field type="CARD16" name="len_fmt" />
- <field type="CARD16" name="len_options" />
- <list type="BYTE" name="data">
- <fieldref>len_data</fieldref>
- </list>
- <!-- padding -->
- <list type="STRING8" name="doc_format" />
- <!-- padding -->
- <list type="STRING8" name="options" />
- </request>
-
- <request name="PrintGetDocumentData" opcode="12">
- <field type="PCONTEXT" name="context" />
- <field type="CARD32" name="max_bytes" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="status_code" />
- <field type="CARD32" name="finished_flag" />
- <field type="CARD32" name="dataLen" />
- <pad bytes="12" />
- <list type="BYTE" name="data">
- <fieldref>dataLen</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="PrintStartPage" opcode="13">
- <field type="WINDOW" name="window" />
- </request>
-
- <request name="PrintEndPage" opcode="14">
- <field type="BOOL" name="cancel" />
- <pad bytes="3" />
- </request>
-
- <request name="PrintSelectInput" opcode="15">
- <field type="PCONTEXT" name="context" />
- <valueparam value-mask-type="CARD32"
- value-mask-name="event_mask"
- value-list-name="event_list" />
- </request>
-
- <request name="PrintInputSelected" opcode="16">
- <field type="PCONTEXT" name="context" />
- <reply>
- <pad bytes="1" />
- <valueparam value-mask-type="CARD32"
- value-mask-name="event_mask"
- value-list-name="event_list" />
- <valueparam value-mask-type="CARD32"
- value-mask-name="all_events_mask"
- value-list-name="all_events_list" />
- </reply>
- </request>
-
- <request name="PrintGetAttributes" opcode="17">
- <field type="PCONTEXT" name="context" />
- <field type="CARD8" name="pool" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="stringLen" />
- <pad bytes="20" />
- <field type="STRING8" name="attributes" />
- </reply>
- </request>
-
- <request name="PrintGetOneAttributes" opcode="19">
- <field type="PCONTEXT" name="context" />
- <field type="CARD32" name="nameLen" />
- <field type="CARD8" name="pool" />
- <pad bytes="3" />
- <list type="STRING8" name="name">
- <fieldref>nameLen</fieldref>
- </list>
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="valueLen" />
- <pad bytes="20" />
- <list type="STRING8" name="value">
- <fieldref>valueLen</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="PrintSetAttributes" opcode="18">
- <field type="PCONTEXT" name="context" />
- <field type="CARD32" name="stringLen" />
- <field type="CARD8" name="pool" />
- <field type="CARD8" name="rule" />
- <pad bytes="2" />
- <list type="STRING8" name="attributes" />
- </request>
-
- <request name="PrintGetPageDimensions" opcode="21">
- <field type="PCONTEXT" name="context" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD16" name="offset_x" />
- <field type="CARD16" name="offset_y" />
- <field type="CARD16" name="reproducible_width" />
- <field type="CARD16" name="reproducible_height" />
- </reply>
- </request>
-
- <request name="PrintQueryScreens" opcode="22">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="listCount" />
- <pad bytes="20" />
- <list type="WINDOW" name="roots">
- <fieldref>listCount</fieldref>
- </list>
- <!-- There may be a WINDOW rootWindow here... -->
- </reply>
- </request>
-
- <request name="PrintSetImageResolution" opcode="23">
- <field type="PCONTEXT" name="context" />
- <field type="CARD16" name="image_resolution" />
- <reply>
- <field type="BOOL" name="status" />
- <field type="CARD16" name="previous_resolutions" />
- </reply>
- </request>
-
- <request name="PrintGetImageResolution" opcode="24">
- <field type="PCONTEXT" name="context" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="image_resolution" />
- </reply>
- </request>
-
-
- <!-- Events -->
- <event name="Notify" number="0">
- <field type="CARD8" name="detail" />
- <field type="PCONTEXT" name="context" />
- <field type="BOOL" name="cancel" />
- </event>
-
- <event name="AttributNotify" number="1">
- <field type="CARD8" name="detail" />
- <field type="PCONTEXT" name="context" />
- </event>
-
- <!-- Errors -->
- <error name="BadContext" number="0" />
- <error name="BadSequence" number="1" />
-
-</xcb>
-
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining 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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<xcb header="xprint" extension-xname="XpExtension" extension-name="XPrint"
+ extension-multiword="true" major-version="1" minor-version="0">
+
+ <!-- Conforms to XPRINT 1.0 -->
+
+ <import>xproto</import>
+
+ <typedef oldname="char" newname="STRING8" />
+
+ <!-- Types -->
+ <struct name="PRINTER">
+ <field type="CARD32" name="nameLen" />
+ <list type="STRING8" name="name">
+ <fieldref>nameLen</fieldref>
+ </list>
+ <!-- Padding -->
+ <field type="CARD32" name="descLen" />
+ <list type="STRING8" name="description">
+ <fieldref>descLen</fieldref>
+ </list>
+ <!-- More padding -->
+ </struct>
+
+ <!--<typedef oldname="CARD32" newname="PCONTEXT" />-->
+ <xidtype name="PCONTEXT" />
+
+ <!-- "PrintGetDocumentData" -->
+ <enum name="GetDoc">
+ <item name="Finished"><value>0</value></item>
+ <item name="SecondConsumer"><value>1</value></item>
+ </enum>
+
+ <!-- Event Mask ("PrintSelectInput") -->
+ <enum name="EvMask">
+ <item name="NoEventMask"><value>0</value></item>
+ <item name="PrintMask"><bit>0</bit></item>
+ <item name="AttributeMask"><bit>1</bit></item>
+ </enum>
+
+ <!-- "PrintNotify" detail -->
+ <enum name="Detail">
+ <item name="StartJobNotify"><value>1</value></item>
+ <item name="EndJobNotify"><value>2</value></item>
+ <item name="StartDocNotify"><value>3</value></item>
+ <item name="EndDocNotify"><value>4</value></item>
+ <item name="StartPageNotify"><value>5</value></item>
+ <item name="EndPageNotify"><value>6</value></item>
+ </enum>
+
+ <!-- "AttributeNotify" detail -->
+ <enum name="Attr">
+ <item name="JobAttr"><value>1</value></item>
+ <item name="DocAttr"><value>2</value></item>
+ <item name="PageAttr"><value>3</value></item>
+ <item name="PrinterAttr"><value>4</value></item>
+ <item name="ServerAttr"><value>5</value></item>
+ <item name="MediumAttr"><value>6</value></item>
+ <item name="SpoolerAttr"><value>7</value></item>
+ </enum>
+
+
+ <!-- Requests -->
+ <request name="PrintQueryVersion" opcode="0">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="major_version" />
+ <field type="CARD16" name="minor_version" />
+ </reply>
+ </request>
+
+ <request name="PrintGetPrinterList" opcode="1">
+ <field type="CARD32" name="printerNameLen" />
+ <field type="CARD32" name="localeLen" />
+ <list type="STRING8" name="printer_name">
+ <fieldref>printerNameLen</fieldref>
+ </list>
+ <!-- There's some padding in here... -->
+ <list type="STRING8" name="locale">
+ <fieldref>localeLen</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="listCount" />
+ <pad bytes="20" />
+ <list type="PRINTER" name="printers">
+ <fieldref>listCount</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="PrintRehashPrinterList" opcode="20" />
+
+ <request name="CreateContext" opcode="2">
+ <field type="CARD32" name="context_id" />
+ <field type="CARD32" name="printerNameLen" />
+ <field type="CARD32" name="localeLen" />
+ <list type="STRING8" name="printerName">
+ <fieldref>printerNameLen</fieldref>
+ </list>
+ <!-- padding -->
+ <list type="STRING8" name="locale">
+ <fieldref>localeLen</fieldref>
+ </list>
+ </request>
+
+ <request name="PrintSetContext" opcode="3">
+ <field type="CARD32" name="context" />
+ </request>
+
+ <request name="PrintGetContext" opcode="4">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context" />
+ </reply>
+ </request>
+
+ <request name="PrintDestroyContext" opcode="5">
+ <field type="CARD32" name="context" />
+ </request>
+
+ <request name="PrintGetScreenOfContext" opcode="6">
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="root" />
+ </reply>
+ </request>
+
+ <request name="PrintStartJob" opcode="7">
+ <field type="CARD8" name="output_mode"/>
+ </request>
+
+ <request name="PrintEndJob" opcode="8">
+ <field type="BOOL" name="cancel" />
+ </request>
+
+ <request name="PrintStartDoc" opcode="9">
+ <field type="CARD8" name="driver_mode" />
+ </request>
+
+ <request name="PrintEndDoc" opcode="10">
+ <field type="BOOL" name="cancel" />
+ </request>
+
+ <request name="PrintPutDocumentData" opcode="11">
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD32" name="len_data" />
+ <field type="CARD16" name="len_fmt" />
+ <field type="CARD16" name="len_options" />
+ <list type="BYTE" name="data">
+ <fieldref>len_data</fieldref>
+ </list>
+ <!-- padding -->
+ <list type="STRING8" name="doc_format" />
+ <!-- padding -->
+ <list type="STRING8" name="options" />
+ </request>
+
+ <request name="PrintGetDocumentData" opcode="12">
+ <field type="PCONTEXT" name="context" />
+ <field type="CARD32" name="max_bytes" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="status_code" />
+ <field type="CARD32" name="finished_flag" />
+ <field type="CARD32" name="dataLen" />
+ <pad bytes="12" />
+ <list type="BYTE" name="data">
+ <fieldref>dataLen</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="PrintStartPage" opcode="13">
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="PrintEndPage" opcode="14">
+ <field type="BOOL" name="cancel" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="PrintSelectInput" opcode="15">
+ <field type="PCONTEXT" name="context" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="event_mask"
+ value-list-name="event_list" />
+ </request>
+
+ <request name="PrintInputSelected" opcode="16">
+ <field type="PCONTEXT" name="context" />
+ <reply>
+ <pad bytes="1" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="event_mask"
+ value-list-name="event_list" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="all_events_mask"
+ value-list-name="all_events_list" />
+ </reply>
+ </request>
+
+ <request name="PrintGetAttributes" opcode="17">
+ <field type="PCONTEXT" name="context" />
+ <field type="CARD8" name="pool" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="stringLen" />
+ <pad bytes="20" />
+ <field type="STRING8" name="attributes" />
+ </reply>
+ </request>
+
+ <request name="PrintGetOneAttributes" opcode="19">
+ <field type="PCONTEXT" name="context" />
+ <field type="CARD32" name="nameLen" />
+ <field type="CARD8" name="pool" />
+ <pad bytes="3" />
+ <list type="STRING8" name="name">
+ <fieldref>nameLen</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="valueLen" />
+ <pad bytes="20" />
+ <list type="STRING8" name="value">
+ <fieldref>valueLen</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="PrintSetAttributes" opcode="18">
+ <field type="PCONTEXT" name="context" />
+ <field type="CARD32" name="stringLen" />
+ <field type="CARD8" name="pool" />
+ <field type="CARD8" name="rule" />
+ <pad bytes="2" />
+ <list type="STRING8" name="attributes" />
+ </request>
+
+ <request name="PrintGetPageDimensions" opcode="21">
+ <field type="PCONTEXT" name="context" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="offset_x" />
+ <field type="CARD16" name="offset_y" />
+ <field type="CARD16" name="reproducible_width" />
+ <field type="CARD16" name="reproducible_height" />
+ </reply>
+ </request>
+
+ <request name="PrintQueryScreens" opcode="22">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="listCount" />
+ <pad bytes="20" />
+ <list type="WINDOW" name="roots">
+ <fieldref>listCount</fieldref>
+ </list>
+ <!-- There may be a WINDOW rootWindow here... -->
+ </reply>
+ </request>
+
+ <request name="PrintSetImageResolution" opcode="23">
+ <field type="PCONTEXT" name="context" />
+ <field type="CARD16" name="image_resolution" />
+ <reply>
+ <field type="BOOL" name="status" />
+ <field type="CARD16" name="previous_resolutions" />
+ </reply>
+ </request>
+
+ <request name="PrintGetImageResolution" opcode="24">
+ <field type="PCONTEXT" name="context" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="image_resolution" />
+ </reply>
+ </request>
+
+
+ <!-- Events -->
+ <event name="Notify" number="0">
+ <field type="CARD8" name="detail" />
+ <field type="PCONTEXT" name="context" />
+ <field type="BOOL" name="cancel" />
+ </event>
+
+ <event name="AttributNotify" number="1">
+ <field type="CARD8" name="detail" />
+ <field type="PCONTEXT" name="context" />
+ </event>
+
+ <!-- Errors -->
+ <error name="BadContext" number="0" />
+ <error name="BadSequence" number="1" />
+
+</xcb>
+
diff --git a/libxcb/xcb-proto/src/xselinux.xml b/libxcb/xcb-proto/src/xselinux.xml
index 7751470ca..2031fec57 100644
--- a/libxcb/xcb-proto/src/xselinux.xml
+++ b/libxcb/xcb-proto/src/xselinux.xml
@@ -1,276 +1,276 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-<xcb header="xselinux" extension-xname="SELinux" extension-name="SELinux"
- extension-multiword="false" major-version="1" minor-version="0">
- <import>xproto</import>
-
- <request name="QueryVersion" opcode="0">
- <field type="CARD8" name="client_major" />
- <field type="CARD8" name="client_minor" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="server_major" />
- <field type="CARD16" name="server_minor" />
- </reply>
- </request>
-
- <request name="SetDeviceCreateContext" opcode="1">
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetDeviceCreateContext" opcode="2">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetDeviceContext" opcode="3">
- <field type="CARD32" name="device" />
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetDeviceContext" opcode="4">
- <field type="CARD32" name="device" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetWindowCreateContext" opcode="5">
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetWindowCreateContext" opcode="6">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetWindowContext" opcode="7">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <struct name="ListItem">
- <field type="ATOM" name="name" />
- <field type="CARD32" name="object_context_len" />
- <field type="CARD32" name="data_context_len" />
- <list type="char" name="object_context">
- <fieldref>object_context_len</fieldref>
- </list>
- <list type="char" name="data_context">
- <fieldref>data_context_len</fieldref>
- </list>
- </struct>
-
- <request name="SetPropertyCreateContext" opcode="8">
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetPropertyCreateContext" opcode="9">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetPropertyUseContext" opcode="10">
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetPropertyUseContext" opcode="11">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetPropertyContext" opcode="12">
- <field type="WINDOW" name="window" />
- <field type="ATOM" name="property" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetPropertyDataContext" opcode="13">
- <field type="WINDOW" name="window" />
- <field type="ATOM" name="property" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="ListProperties" opcode="14">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="properties_len" />
- <pad bytes="20" />
- <list type="ListItem" name="properties">
- <fieldref>properties_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetSelectionCreateContext" opcode="15">
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetSelectionCreateContext" opcode="16">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="SetSelectionUseContext" opcode="17">
- <field type="CARD32" name="context_len" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </request>
-
- <request name="GetSelectionUseContext" opcode="18">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetSelectionContext" opcode="19">
- <field type="ATOM" name="selection" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetSelectionDataContext" opcode="20">
- <field type="ATOM" name="selection" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="ListSelections" opcode="21">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="selections_len" />
- <pad bytes="20" />
- <list type="ListItem" name="selections">
- <fieldref>selections_len</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GetClientContext" opcode="22">
- <field type="CARD32" name="resource" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="context_len" />
- <pad bytes="20" />
- <list type="char" name="context">
- <fieldref>context_len</fieldref>
- </list>
- </reply>
- </request>
-
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+<xcb header="xselinux" extension-xname="SELinux" extension-name="SELinux"
+ extension-multiword="false" major-version="1" minor-version="0">
+ <import>xproto</import>
+
+ <request name="QueryVersion" opcode="0">
+ <field type="CARD8" name="client_major" />
+ <field type="CARD8" name="client_minor" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="server_major" />
+ <field type="CARD16" name="server_minor" />
+ </reply>
+ </request>
+
+ <request name="SetDeviceCreateContext" opcode="1">
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetDeviceCreateContext" opcode="2">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetDeviceContext" opcode="3">
+ <field type="CARD32" name="device" />
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetDeviceContext" opcode="4">
+ <field type="CARD32" name="device" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetWindowCreateContext" opcode="5">
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetWindowCreateContext" opcode="6">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetWindowContext" opcode="7">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <struct name="ListItem">
+ <field type="ATOM" name="name" />
+ <field type="CARD32" name="object_context_len" />
+ <field type="CARD32" name="data_context_len" />
+ <list type="char" name="object_context">
+ <fieldref>object_context_len</fieldref>
+ </list>
+ <list type="char" name="data_context">
+ <fieldref>data_context_len</fieldref>
+ </list>
+ </struct>
+
+ <request name="SetPropertyCreateContext" opcode="8">
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetPropertyCreateContext" opcode="9">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetPropertyUseContext" opcode="10">
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetPropertyUseContext" opcode="11">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetPropertyContext" opcode="12">
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetPropertyDataContext" opcode="13">
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListProperties" opcode="14">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="properties_len" />
+ <pad bytes="20" />
+ <list type="ListItem" name="properties">
+ <fieldref>properties_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetSelectionCreateContext" opcode="15">
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetSelectionCreateContext" opcode="16">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetSelectionUseContext" opcode="17">
+ <field type="CARD32" name="context_len" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </request>
+
+ <request name="GetSelectionUseContext" opcode="18">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetSelectionContext" opcode="19">
+ <field type="ATOM" name="selection" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetSelectionDataContext" opcode="20">
+ <field type="ATOM" name="selection" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListSelections" opcode="21">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="selections_len" />
+ <pad bytes="20" />
+ <list type="ListItem" name="selections">
+ <fieldref>selections_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GetClientContext" opcode="22">
+ <field type="CARD32" name="resource" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="context_len" />
+ <pad bytes="20" />
+ <list type="char" name="context">
+ <fieldref>context_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+</xcb>
diff --git a/libxcb/xcb-proto/src/xv.xml b/libxcb/xcb-proto/src/xv.xml
index d2bfc2992..08c80b04b 100644
--- a/libxcb/xcb-proto/src/xv.xml
+++ b/libxcb/xcb-proto/src/xv.xml
@@ -1,450 +1,450 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<xcb header="xv" extension-xname="XVideo" extension-name="Xv" major-version="2" minor-version="2">
- <import>xproto</import>
- <import>shm</import>
- <!-- Implements version 2.2 of XV -->
-
- <!-- XIDs -->
- <xidtype name="PORT" />
- <xidtype name="ENCODING" />
-
- <enum name="Type">
- <item name="InputMask"><bit>0</bit></item>
- <item name="OutputMask"><bit>1</bit></item>
- <item name="VideoMask"><bit>2</bit></item>
- <item name="StillMask"><bit>3</bit></item>
- <item name="ImageMask"><bit>4</bit></item>
- </enum>
-
- <enum name="ImageFormatInfoType">
- <item name="RGB" />
- <item name="YUV" />
- </enum>
-
- <enum name="ImageFormatInfoFormat">
- <item name="Packed" />
- <item name="Planar" />
- </enum>
-
- <enum name="AttributeFlag">
- <item name="Gettable"><bit>0</bit></item>
- <item name="Settable"><bit>1</bit></item>
- </enum>
-
- <enum name="VideoNotifyReason">
- <item name="Started" />
- <item name="Stopped" />
- <item name="Busy" />
- <item name="Preempted" />
- <item name="HardError" />
- </enum>
-
- <enum name="ScanlineOrder">
- <item name="TopToBottom" />
- <item name="BottomToTop" />
- </enum>
-
- <enum name="GrabPortStatus">
- <item name="Success" />
- <item name="BadExtension" />
- <item name="AlreadyGrabbed" />
- <item name="InvalidTime" />
- <item name="BadReply" />
- <item name="BadAlloc" />
- </enum>
-
- <struct name="Rational">
- <field type="INT32" name="numerator" />
- <field type="INT32" name="denominator" />
- </struct>
-
- <struct name="Format">
- <field type="VISUALID" name="visual" />
- <field type="CARD8" name="depth" />
- <pad bytes="3" />
- </struct>
-
- <struct name="AdaptorInfo">
- <field type="PORT" name="base_id" />
- <field type="CARD16" name="name_size" />
- <field type="CARD16" name="num_ports" />
- <field type="CARD16" name="num_formats" />
- <field type="CARD8" name="type" mask="Type" />
- <pad bytes="1" />
- <list type="char" name="name">
- <fieldref>name_size</fieldref>
- </list>
- <list type="Format" name="formats">
- <fieldref>num_formats</fieldref>
- </list>
-
- </struct>
-
- <struct name="EncodingInfo">
- <field type="ENCODING" name="encoding" />
- <field type="CARD16" name="name_size" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <!--
- Some versions of Xvproto.h incorrectly have
- this padding after "rate".
- -->
- <pad bytes="2" />
- <field type="Rational" name="rate" />
- <list type="char" name="name">
- <fieldref>name_size</fieldref>
- </list>
- </struct>
-
- <struct name="Image">
- <field type="CARD32" name="id" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD32" name="data_size" />
- <field type="CARD32" name="num_planes" />
- <list type="CARD32" name="pitches">
- <fieldref>num_planes</fieldref>
- </list>
- <list type="CARD32" name="offsets">
- <fieldref>num_planes</fieldref>
- </list>
- <list type="CARD8" name="data">
- <fieldref>data_size</fieldref>
- </list>
- <!-- Some XPointer "obdata" for SHM use-->
- </struct>
-
- <struct name="AttributeInfo">
- <field type="CARD32" name="flags" mask="AttributeFlag" />
- <field type="INT32" name="min" />
- <field type="INT32" name="max" />
- <field type="CARD32" name="size" />
- <list type="char" name="name">
- <fieldref>size</fieldref>
- </list>
- </struct>
-
- <struct name="ImageFormatInfo">
- <field type="CARD32" name="id" />
- <field type="CARD8" name="type" enum="ImageFormatInfoType" />
- <field type="CARD8" name="byte_order" enum="ImageOrder" />
- <pad bytes="2" />
- <list type="CARD8" name="guid">
- <value>16</value>
- </list>
- <field type="CARD8" name="bpp" />
- <field type="CARD8" name="num_planes" />
- <pad bytes="2" />
- <field type="CARD8" name="depth" />
- <pad bytes="3" />
- <field type="CARD32" name="red_mask" />
- <field type="CARD32" name="green_mask" />
- <field type="CARD32" name="blue_mask" />
- <field type="CARD8" name="format" enum="ImageFormatInfoFormat" />
- <pad bytes="3" />
- <field type="CARD32" name="y_sample_bits" />
- <field type="CARD32" name="u_sample_bits" />
- <field type="CARD32" name="v_sample_bits" />
- <field type="CARD32" name="vhorz_y_period" />
- <field type="CARD32" name="vhorz_u_period" />
- <field type="CARD32" name="vhorz_v_period" />
- <field type="CARD32" name="vvert_y_period" />
- <field type="CARD32" name="vvert_u_period" />
- <field type="CARD32" name="vvert_v_period" />
- <list type="CARD8" name="vcomp_order">
- <value>32</value>
- </list>
- <field type="CARD8" name="vscanline_order" enum="ScanlineOrder" />
- <pad bytes="11" />
- </struct>
-
-
- <!-- Errors -->
- <error name="BadPort" number="0"/>
- <error name="BadEncoding" number="1"/>
- <error name="BadControl" number="2"/>
-
- <!-- Events -->
- <event name="VideoNotify" number="0">
- <field type="BYTE" name="reason" enum="VideoNotifyReason" />
- <field type="TIMESTAMP" name="time" />
- <field type="DRAWABLE" name="drawable" />
- <field type="PORT" name="port" />
- </event>
-
- <event name="PortNotify" number="1">
- <pad bytes="1" />
- <field type="TIMESTAMP" name="time" />
- <field type="PORT" name="port" />
- <field type="ATOM" name="attribute" />
- <field type="INT32" name="value" />
- </event>
-
-
- <!-- Requests -->
- <request name="QueryExtension" opcode="0">
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="major" />
- <field type="CARD16" name="minor" />
- </reply>
- </request>
-
- <request name="QueryAdaptors" opcode="1">
- <field type="WINDOW" name="window" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="num_adaptors" />
- <pad bytes="22" />
- <list type="AdaptorInfo" name="info">
- <fieldref>num_adaptors</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="QueryEncodings" opcode="2">
- <field type="PORT" name="port" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="num_encodings" />
- <!--
- In Xvproto.h this padding is 24 bytes
- in actuality it is 22 bytes
- -->
- <pad bytes="22" />
- <list type="EncodingInfo" name="info">
- <fieldref>num_encodings</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="GrabPort" opcode="3">
- <field type="PORT" name="port" />
- <field type="TIMESTAMP" name="time" altenum="Time" />
- <reply>
- <field type="BYTE" name="result" enum="GrabPortStatus" />
- </reply>
- </request>
-
- <request name="UngrabPort" opcode="4">
- <field type="PORT" name="port" />
- <field type="TIMESTAMP" name="time" altenum="Time" />
- </request>
-
- <request name="PutVideo" opcode="5">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="INT16" name="vid_x" />
- <field type="INT16" name="vid_y" />
- <field type="CARD16" name="vid_w" />
- <field type="CARD16" name="vid_h" />
- <field type="INT16" name="drw_x" />
- <field type="INT16" name="drw_y" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- </request>
-
- <request name="PutStill" opcode="6">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="INT16" name="vid_x" />
- <field type="INT16" name="vid_y" />
- <field type="CARD16" name="vid_w" />
- <field type="CARD16" name="vid_h" />
- <field type="INT16" name="drw_x" />
- <field type="INT16" name="drw_y" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- </request>
-
- <request name="GetVideo" opcode="7">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="INT16" name="vid_x" />
- <field type="INT16" name="vid_y" />
- <field type="CARD16" name="vid_w" />
- <field type="CARD16" name="vid_h" />
- <field type="INT16" name="drw_x" />
- <field type="INT16" name="drw_y" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- </request>
-
- <request name="GetStill" opcode="8">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="INT16" name="vid_x" />
- <field type="INT16" name="vid_y" />
- <field type="CARD16" name="vid_w" />
- <field type="CARD16" name="vid_h" />
- <field type="INT16" name="drw_x" />
- <field type="INT16" name="drw_y" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- </request>
-
- <request name="StopVideo" opcode="9">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- </request>
-
- <request name="SelectVideoNotify" opcode="10">
- <field type="DRAWABLE" name="drawable" />
- <field type="BOOL" name="onoff" />
- <pad bytes="3" />
- </request>
-
- <request name="SelectPortNotify" opcode="11">
- <field type="PORT" name="port" />
- <field type="BOOL" name="onoff" />
- <pad bytes="3" />
- </request>
-
- <request name="QueryBestSize" opcode="12">
- <field type="PORT" name="port" />
- <field type="CARD16" name="vid_w" />
- <field type="CARD16" name="vid_h" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- <field type="BOOL" name="motion" />
- <pad bytes="3" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="actual_width" />
- <field type="CARD16" name="actual_height" />
- </reply>
- </request>
-
- <request name="SetPortAttribute" opcode="13">
- <field type="PORT" name="port" />
- <field type="ATOM" name="attribute" />
- <field type="INT32" name="value" />
- </request>
-
- <request name="GetPortAttribute" opcode="14">
- <field type="PORT" name="port" />
- <field type="ATOM" name="attribute" />
- <reply>
- <pad bytes="1" />
- <field type="INT32" name="value" />
- </reply>
- </request>
-
- <!-- Not in the docs beyond this point :( -->
-
- <request name="QueryPortAttributes" opcode="15">
- <field type="PORT" name="port" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num_attributes" />
- <field type="CARD32" name="text_size" />
- <pad bytes="16" />
- <list type="AttributeInfo" name="attributes">
- <fieldref>num_attributes</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="ListImageFormats" opcode="16">
- <field type="PORT" name="port" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num_formats" />
- <pad bytes="20" />
- <list type="ImageFormatInfo" name="format">
- <fieldref>num_formats</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="QueryImageAttributes" opcode="17">
- <field type="PORT" name="port" />
- <field type="CARD32" name="id" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num_planes" />
- <field type="CARD32" name="data_size" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <pad bytes="12" />
- <list type="CARD32" name="pitches">
- <fieldref>num_planes</fieldref>
- </list>
- <list type="CARD32" name="offsets">
- <fieldref>num_planes</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="PutImage" opcode="18">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="CARD32" name="id" />
- <field type="INT16" name="src_x" />
- <field type="INT16" name="src_y" />
- <field type="CARD16" name="src_w" />
- <field type="CARD16" name="src_h" />
- <field type="INT16" name="drw_x" />
- <field type="INT16" name="drw_y" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <list type="CARD8" name="data" />
- </request>
-
- <request name="ShmPutImage" opcode="19">
- <field type="PORT" name="port" />
- <field type="DRAWABLE" name="drawable" />
- <field type="GCONTEXT" name="gc" />
- <field type="SEG" name="shmseg" />
- <field type="CARD32" name="id" />
- <field type="CARD32" name="offset" />
- <field type="INT16" name="src_x" />
- <field type="INT16" name="src_y" />
- <field type="CARD16" name="src_w" />
- <field type="CARD16" name="src_h" />
- <field type="INT16" name="drw_x" />
- <field type="INT16" name="drw_y" />
- <field type="CARD16" name="drw_w" />
- <field type="CARD16" name="drw_h" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD8" name="send_event" />
- <pad bytes="3" />
- </request>
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<xcb header="xv" extension-xname="XVideo" extension-name="Xv" major-version="2" minor-version="2">
+ <import>xproto</import>
+ <import>shm</import>
+ <!-- Implements version 2.2 of XV -->
+
+ <!-- XIDs -->
+ <xidtype name="PORT" />
+ <xidtype name="ENCODING" />
+
+ <enum name="Type">
+ <item name="InputMask"><bit>0</bit></item>
+ <item name="OutputMask"><bit>1</bit></item>
+ <item name="VideoMask"><bit>2</bit></item>
+ <item name="StillMask"><bit>3</bit></item>
+ <item name="ImageMask"><bit>4</bit></item>
+ </enum>
+
+ <enum name="ImageFormatInfoType">
+ <item name="RGB" />
+ <item name="YUV" />
+ </enum>
+
+ <enum name="ImageFormatInfoFormat">
+ <item name="Packed" />
+ <item name="Planar" />
+ </enum>
+
+ <enum name="AttributeFlag">
+ <item name="Gettable"><bit>0</bit></item>
+ <item name="Settable"><bit>1</bit></item>
+ </enum>
+
+ <enum name="VideoNotifyReason">
+ <item name="Started" />
+ <item name="Stopped" />
+ <item name="Busy" />
+ <item name="Preempted" />
+ <item name="HardError" />
+ </enum>
+
+ <enum name="ScanlineOrder">
+ <item name="TopToBottom" />
+ <item name="BottomToTop" />
+ </enum>
+
+ <enum name="GrabPortStatus">
+ <item name="Success" />
+ <item name="BadExtension" />
+ <item name="AlreadyGrabbed" />
+ <item name="InvalidTime" />
+ <item name="BadReply" />
+ <item name="BadAlloc" />
+ </enum>
+
+ <struct name="Rational">
+ <field type="INT32" name="numerator" />
+ <field type="INT32" name="denominator" />
+ </struct>
+
+ <struct name="Format">
+ <field type="VISUALID" name="visual" />
+ <field type="CARD8" name="depth" />
+ <pad bytes="3" />
+ </struct>
+
+ <struct name="AdaptorInfo">
+ <field type="PORT" name="base_id" />
+ <field type="CARD16" name="name_size" />
+ <field type="CARD16" name="num_ports" />
+ <field type="CARD16" name="num_formats" />
+ <field type="CARD8" name="type" mask="Type" />
+ <pad bytes="1" />
+ <list type="char" name="name">
+ <fieldref>name_size</fieldref>
+ </list>
+ <list type="Format" name="formats">
+ <fieldref>num_formats</fieldref>
+ </list>
+
+ </struct>
+
+ <struct name="EncodingInfo">
+ <field type="ENCODING" name="encoding" />
+ <field type="CARD16" name="name_size" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <!--
+ Some versions of Xvproto.h incorrectly have
+ this padding after "rate".
+ -->
+ <pad bytes="2" />
+ <field type="Rational" name="rate" />
+ <list type="char" name="name">
+ <fieldref>name_size</fieldref>
+ </list>
+ </struct>
+
+ <struct name="Image">
+ <field type="CARD32" name="id" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="data_size" />
+ <field type="CARD32" name="num_planes" />
+ <list type="CARD32" name="pitches">
+ <fieldref>num_planes</fieldref>
+ </list>
+ <list type="CARD32" name="offsets">
+ <fieldref>num_planes</fieldref>
+ </list>
+ <list type="CARD8" name="data">
+ <fieldref>data_size</fieldref>
+ </list>
+ <!-- Some XPointer "obdata" for SHM use-->
+ </struct>
+
+ <struct name="AttributeInfo">
+ <field type="CARD32" name="flags" mask="AttributeFlag" />
+ <field type="INT32" name="min" />
+ <field type="INT32" name="max" />
+ <field type="CARD32" name="size" />
+ <list type="char" name="name">
+ <fieldref>size</fieldref>
+ </list>
+ </struct>
+
+ <struct name="ImageFormatInfo">
+ <field type="CARD32" name="id" />
+ <field type="CARD8" name="type" enum="ImageFormatInfoType" />
+ <field type="CARD8" name="byte_order" enum="ImageOrder" />
+ <pad bytes="2" />
+ <list type="CARD8" name="guid">
+ <value>16</value>
+ </list>
+ <field type="CARD8" name="bpp" />
+ <field type="CARD8" name="num_planes" />
+ <pad bytes="2" />
+ <field type="CARD8" name="depth" />
+ <pad bytes="3" />
+ <field type="CARD32" name="red_mask" />
+ <field type="CARD32" name="green_mask" />
+ <field type="CARD32" name="blue_mask" />
+ <field type="CARD8" name="format" enum="ImageFormatInfoFormat" />
+ <pad bytes="3" />
+ <field type="CARD32" name="y_sample_bits" />
+ <field type="CARD32" name="u_sample_bits" />
+ <field type="CARD32" name="v_sample_bits" />
+ <field type="CARD32" name="vhorz_y_period" />
+ <field type="CARD32" name="vhorz_u_period" />
+ <field type="CARD32" name="vhorz_v_period" />
+ <field type="CARD32" name="vvert_y_period" />
+ <field type="CARD32" name="vvert_u_period" />
+ <field type="CARD32" name="vvert_v_period" />
+ <list type="CARD8" name="vcomp_order">
+ <value>32</value>
+ </list>
+ <field type="CARD8" name="vscanline_order" enum="ScanlineOrder" />
+ <pad bytes="11" />
+ </struct>
+
+
+ <!-- Errors -->
+ <error name="BadPort" number="0"/>
+ <error name="BadEncoding" number="1"/>
+ <error name="BadControl" number="2"/>
+
+ <!-- Events -->
+ <event name="VideoNotify" number="0">
+ <field type="BYTE" name="reason" enum="VideoNotifyReason" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="PORT" name="port" />
+ </event>
+
+ <event name="PortNotify" number="1">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="PORT" name="port" />
+ <field type="ATOM" name="attribute" />
+ <field type="INT32" name="value" />
+ </event>
+
+
+ <!-- Requests -->
+ <request name="QueryExtension" opcode="0">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="major" />
+ <field type="CARD16" name="minor" />
+ </reply>
+ </request>
+
+ <request name="QueryAdaptors" opcode="1">
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="num_adaptors" />
+ <pad bytes="22" />
+ <list type="AdaptorInfo" name="info">
+ <fieldref>num_adaptors</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryEncodings" opcode="2">
+ <field type="PORT" name="port" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="num_encodings" />
+ <!--
+ In Xvproto.h this padding is 24 bytes
+ in actuality it is 22 bytes
+ -->
+ <pad bytes="22" />
+ <list type="EncodingInfo" name="info">
+ <fieldref>num_encodings</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="GrabPort" opcode="3">
+ <field type="PORT" name="port" />
+ <field type="TIMESTAMP" name="time" altenum="Time" />
+ <reply>
+ <field type="BYTE" name="result" enum="GrabPortStatus" />
+ </reply>
+ </request>
+
+ <request name="UngrabPort" opcode="4">
+ <field type="PORT" name="port" />
+ <field type="TIMESTAMP" name="time" altenum="Time" />
+ </request>
+
+ <request name="PutVideo" opcode="5">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="vid_x" />
+ <field type="INT16" name="vid_y" />
+ <field type="CARD16" name="vid_w" />
+ <field type="CARD16" name="vid_h" />
+ <field type="INT16" name="drw_x" />
+ <field type="INT16" name="drw_y" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ </request>
+
+ <request name="PutStill" opcode="6">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="vid_x" />
+ <field type="INT16" name="vid_y" />
+ <field type="CARD16" name="vid_w" />
+ <field type="CARD16" name="vid_h" />
+ <field type="INT16" name="drw_x" />
+ <field type="INT16" name="drw_y" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ </request>
+
+ <request name="GetVideo" opcode="7">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="vid_x" />
+ <field type="INT16" name="vid_y" />
+ <field type="CARD16" name="vid_w" />
+ <field type="CARD16" name="vid_h" />
+ <field type="INT16" name="drw_x" />
+ <field type="INT16" name="drw_y" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ </request>
+
+ <request name="GetStill" opcode="8">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="vid_x" />
+ <field type="INT16" name="vid_y" />
+ <field type="CARD16" name="vid_w" />
+ <field type="CARD16" name="vid_h" />
+ <field type="INT16" name="drw_x" />
+ <field type="INT16" name="drw_y" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ </request>
+
+ <request name="StopVideo" opcode="9">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ </request>
+
+ <request name="SelectVideoNotify" opcode="10">
+ <field type="DRAWABLE" name="drawable" />
+ <field type="BOOL" name="onoff" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="SelectPortNotify" opcode="11">
+ <field type="PORT" name="port" />
+ <field type="BOOL" name="onoff" />
+ <pad bytes="3" />
+ </request>
+
+ <request name="QueryBestSize" opcode="12">
+ <field type="PORT" name="port" />
+ <field type="CARD16" name="vid_w" />
+ <field type="CARD16" name="vid_h" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ <field type="BOOL" name="motion" />
+ <pad bytes="3" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="actual_width" />
+ <field type="CARD16" name="actual_height" />
+ </reply>
+ </request>
+
+ <request name="SetPortAttribute" opcode="13">
+ <field type="PORT" name="port" />
+ <field type="ATOM" name="attribute" />
+ <field type="INT32" name="value" />
+ </request>
+
+ <request name="GetPortAttribute" opcode="14">
+ <field type="PORT" name="port" />
+ <field type="ATOM" name="attribute" />
+ <reply>
+ <pad bytes="1" />
+ <field type="INT32" name="value" />
+ </reply>
+ </request>
+
+ <!-- Not in the docs beyond this point :( -->
+
+ <request name="QueryPortAttributes" opcode="15">
+ <field type="PORT" name="port" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num_attributes" />
+ <field type="CARD32" name="text_size" />
+ <pad bytes="16" />
+ <list type="AttributeInfo" name="attributes">
+ <fieldref>num_attributes</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListImageFormats" opcode="16">
+ <field type="PORT" name="port" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num_formats" />
+ <pad bytes="20" />
+ <list type="ImageFormatInfo" name="format">
+ <fieldref>num_formats</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryImageAttributes" opcode="17">
+ <field type="PORT" name="port" />
+ <field type="CARD32" name="id" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num_planes" />
+ <field type="CARD32" name="data_size" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <pad bytes="12" />
+ <list type="CARD32" name="pitches">
+ <fieldref>num_planes</fieldref>
+ </list>
+ <list type="CARD32" name="offsets">
+ <fieldref>num_planes</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="PutImage" opcode="18">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD32" name="id" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="CARD16" name="src_w" />
+ <field type="CARD16" name="src_h" />
+ <field type="INT16" name="drw_x" />
+ <field type="INT16" name="drw_y" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <list type="CARD8" name="data" />
+ </request>
+
+ <request name="ShmPutImage" opcode="19">
+ <field type="PORT" name="port" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="SEG" name="shmseg" />
+ <field type="CARD32" name="id" />
+ <field type="CARD32" name="offset" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="CARD16" name="src_w" />
+ <field type="CARD16" name="src_h" />
+ <field type="INT16" name="drw_x" />
+ <field type="INT16" name="drw_y" />
+ <field type="CARD16" name="drw_w" />
+ <field type="CARD16" name="drw_h" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD8" name="send_event" />
+ <pad bytes="3" />
+ </request>
+</xcb>
diff --git a/libxcb/xcb-proto/src/xvmc.xml b/libxcb/xcb-proto/src/xvmc.xml
index ac80003f9..1c477ae49 100644
--- a/libxcb/xcb-proto/src/xvmc.xml
+++ b/libxcb/xcb-proto/src/xvmc.xml
@@ -1,146 +1,146 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb.
-All Rights Reserved.
-
-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:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-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
-AUTHORS 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.
-
-Except as contained in this notice, the names of the authors or their
-institutions 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 authors.
--->
-
-<xcb header="xvmc" extension-xname="XVideo-MotionCompensation" extension-name="XvMC" major-version="1" minor-version="1">
- <import>xv</import>
-
- <xidtype name="CONTEXT" />
- <xidtype name="SURFACE" />
- <xidtype name="SUBPICTURE" />
-
- <struct name="SurfaceInfo">
- <field type="SURFACE" name="id" />
- <field type="CARD16" name="chroma_format" />
- <field type="CARD16" name="pad0" />
- <field type="CARD16" name="max_width" />
- <field type="CARD16" name="max_height" />
- <field type="CARD16" name="subpicture_max_width" />
- <field type="CARD16" name="subpicture_max_height" />
- <field type="CARD32" name="mc_type" />
- <field type="CARD32" name="flags" />
- </struct>
-
- <request name="QueryVersion" opcode="0">
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="major" />
- <field type="CARD32" name="minor" />
- </reply>
- </request>
-
- <request name="ListSurfaceTypes" opcode="1">
- <field type="PORT" name="port_id" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num" />
- <pad bytes="20" />
- <list type="SurfaceInfo" name="surfaces">
- <fieldref>num</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="CreateContext" opcode="2">
- <field type="CONTEXT" name="context_id" />
- <field type="PORT" name="port_id" />
- <field type="SURFACE" name="surface_id" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <field type="CARD32" name="flags" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="width_actual" />
- <field type="CARD16" name="height_actual" />
- <field type="CARD32" name="flags_return" />
- <pad bytes="20" />
- <list type="CARD32" name="priv_data">
- <fieldref>length</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="DestroyContext" opcode="3">
- <field type="CONTEXT" name="context_id" />
- </request>
-
- <request name="CreateSurface" opcode="4">
- <field type="SURFACE" name="surface_id" />
- <field type="CONTEXT" name="context_id" />
- <reply>
- <pad bytes="1" />
- <pad bytes="24" />
- <list type="CARD32" name="priv_data">
- <fieldref>length</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="DestroySurface" opcode="5">
- <field type="SURFACE" name="surface_id" />
- </request>
-
- <request name="CreateSubpicture" opcode="6">
- <field type="SUBPICTURE" name="subpicture_id" />
- <field type="CONTEXT" name="context" />
- <field type="CARD32" name="xvimage_id" />
- <field type="CARD16" name="width" />
- <field type="CARD16" name="height" />
- <reply>
- <pad bytes="1" />
- <field type="CARD16" name="width_actual" />
- <field type="CARD16" name="height_actual" />
- <field type="CARD16" name="num_palette_entries" />
- <field type="CARD16" name="entry_bytes" />
- <list type="CARD8" name="component_order">
- <value>4</value>
- </list>
- <pad bytes="12" />
- <list type="CARD32" name="priv_data">
- <fieldref>length</fieldref>
- </list>
- </reply>
- </request>
-
- <request name="DestroySubpicture" opcode="7">
- <field type="SUBPICTURE" name="subpicture_id" />
- </request>
-
- <request name="ListSubpictureTypes" opcode="8">
- <field type="PORT" name="port_id" />
- <field type="SURFACE" name="surface_id" />
- <reply>
- <pad bytes="1" />
- <field type="CARD32" name="num" />
- <pad bytes="20" />
- <list type="ImageFormatInfo" name="types">
- <fieldref>num</fieldref>
- </list>
- </reply>
- </request>
-
-</xcb>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb.
+All Rights Reserved.
+
+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:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+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
+AUTHORS 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.
+
+Except as contained in this notice, the names of the authors or their
+institutions 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 authors.
+-->
+
+<xcb header="xvmc" extension-xname="XVideo-MotionCompensation" extension-name="XvMC" major-version="1" minor-version="1">
+ <import>xv</import>
+
+ <xidtype name="CONTEXT" />
+ <xidtype name="SURFACE" />
+ <xidtype name="SUBPICTURE" />
+
+ <struct name="SurfaceInfo">
+ <field type="SURFACE" name="id" />
+ <field type="CARD16" name="chroma_format" />
+ <field type="CARD16" name="pad0" />
+ <field type="CARD16" name="max_width" />
+ <field type="CARD16" name="max_height" />
+ <field type="CARD16" name="subpicture_max_width" />
+ <field type="CARD16" name="subpicture_max_height" />
+ <field type="CARD32" name="mc_type" />
+ <field type="CARD32" name="flags" />
+ </struct>
+
+ <request name="QueryVersion" opcode="0">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="major" />
+ <field type="CARD32" name="minor" />
+ </reply>
+ </request>
+
+ <request name="ListSurfaceTypes" opcode="1">
+ <field type="PORT" name="port_id" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num" />
+ <pad bytes="20" />
+ <list type="SurfaceInfo" name="surfaces">
+ <fieldref>num</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="CreateContext" opcode="2">
+ <field type="CONTEXT" name="context_id" />
+ <field type="PORT" name="port_id" />
+ <field type="SURFACE" name="surface_id" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="flags" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="width_actual" />
+ <field type="CARD16" name="height_actual" />
+ <field type="CARD32" name="flags_return" />
+ <pad bytes="20" />
+ <list type="CARD32" name="priv_data">
+ <fieldref>length</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="DestroyContext" opcode="3">
+ <field type="CONTEXT" name="context_id" />
+ </request>
+
+ <request name="CreateSurface" opcode="4">
+ <field type="SURFACE" name="surface_id" />
+ <field type="CONTEXT" name="context_id" />
+ <reply>
+ <pad bytes="1" />
+ <pad bytes="24" />
+ <list type="CARD32" name="priv_data">
+ <fieldref>length</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="DestroySurface" opcode="5">
+ <field type="SURFACE" name="surface_id" />
+ </request>
+
+ <request name="CreateSubpicture" opcode="6">
+ <field type="SUBPICTURE" name="subpicture_id" />
+ <field type="CONTEXT" name="context" />
+ <field type="CARD32" name="xvimage_id" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="width_actual" />
+ <field type="CARD16" name="height_actual" />
+ <field type="CARD16" name="num_palette_entries" />
+ <field type="CARD16" name="entry_bytes" />
+ <list type="CARD8" name="component_order">
+ <value>4</value>
+ </list>
+ <pad bytes="12" />
+ <list type="CARD32" name="priv_data">
+ <fieldref>length</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="DestroySubpicture" opcode="7">
+ <field type="SUBPICTURE" name="subpicture_id" />
+ </request>
+
+ <request name="ListSubpictureTypes" opcode="8">
+ <field type="PORT" name="port_id" />
+ <field type="SURFACE" name="surface_id" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="num" />
+ <pad bytes="20" />
+ <list type="ImageFormatInfo" name="types">
+ <fieldref>num</fieldref>
+ </list>
+ </reply>
+ </request>
+
+</xcb>
diff --git a/libxcb/xcb-proto/xcbgen/Makefile.am b/libxcb/xcb-proto/xcbgen/Makefile.am
index 110a992f1..c4c79bfda 100644
--- a/libxcb/xcb-proto/xcbgen/Makefile.am
+++ b/libxcb/xcb-proto/xcbgen/Makefile.am
@@ -1,3 +1,3 @@
-pkgpythondir = $(pythondir)/xcbgen
-
-pkgpython_PYTHON = __init__.py error.py expr.py matcher.py state.py xtypes.py
+pkgpythondir = $(pythondir)/xcbgen
+
+pkgpython_PYTHON = __init__.py error.py expr.py matcher.py state.py xtypes.py
diff --git a/libxcb/xcb-proto/xcbgen/__init__.py b/libxcb/xcb-proto/xcbgen/__init__.py
index 8b1378917..d3f5a12fa 100644
--- a/libxcb/xcb-proto/xcbgen/__init__.py
+++ b/libxcb/xcb-proto/xcbgen/__init__.py
@@ -1 +1 @@
-
+
diff --git a/libxcb/xcb-proto/xcbgen/error.py b/libxcb/xcb-proto/xcbgen/error.py
index bbcd5013d..611d638b0 100644
--- a/libxcb/xcb-proto/xcbgen/error.py
+++ b/libxcb/xcb-proto/xcbgen/error.py
@@ -1,5 +1,5 @@
-class ResolveException(Exception):
- '''
- Gets thrown when a type doesn't resolve in the XML.
- '''
- pass
+class ResolveException(Exception):
+ '''
+ Gets thrown when a type doesn't resolve in the XML.
+ '''
+ pass
diff --git a/libxcb/xcb-randr.pc.in b/libxcb/xcb-randr.pc.in
index ac7f35d97..93a301138 100644
--- a/libxcb/xcb-randr.pc.in
+++ b/libxcb/xcb-randr.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB RandR
-Description: XCB RandR Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-randr
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB RandR
+Description: XCB RandR Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-randr
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-record.pc.in b/libxcb/xcb-record.pc.in
index 689f098fc..3c0cd6c0e 100644
--- a/libxcb/xcb-record.pc.in
+++ b/libxcb/xcb-record.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Record
-Description: XCB Record Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-record
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Record
+Description: XCB Record Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-record
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-render.pc.in b/libxcb/xcb-render.pc.in
index c3b050ab6..0f0769cc1 100644
--- a/libxcb/xcb-render.pc.in
+++ b/libxcb/xcb-render.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Render
-Description: XCB Render Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-render
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Render
+Description: XCB Render Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-render
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-res.pc.in b/libxcb/xcb-res.pc.in
index 62dbab63e..b620269db 100644
--- a/libxcb/xcb-res.pc.in
+++ b/libxcb/xcb-res.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Res
-Description: XCB X-Resource Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-res
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Res
+Description: XCB X-Resource Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-res
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-screensaver.pc.in b/libxcb/xcb-screensaver.pc.in
index ba3f8ecf3..6a9ad19b5 100644
--- a/libxcb/xcb-screensaver.pc.in
+++ b/libxcb/xcb-screensaver.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Screensaver
-Description: XCB Screensaver Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-screensaver
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Screensaver
+Description: XCB Screensaver Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-screensaver
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-shape.pc.in b/libxcb/xcb-shape.pc.in
index 880204d8a..0e265b848 100644
--- a/libxcb/xcb-shape.pc.in
+++ b/libxcb/xcb-shape.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Shape
-Description: XCB Shape Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-shape
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Shape
+Description: XCB Shape Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-shape
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-shm.pc.in b/libxcb/xcb-shm.pc.in
index 9256bf015..33ee37d97 100644
--- a/libxcb/xcb-shm.pc.in
+++ b/libxcb/xcb-shm.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Shm
-Description: XCB Shm Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-shm
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Shm
+Description: XCB Shm Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-shm
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-sync.pc.in b/libxcb/xcb-sync.pc.in
index ead76d166..6f70a6e87 100644
--- a/libxcb/xcb-sync.pc.in
+++ b/libxcb/xcb-sync.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Sync
-Description: XCB Sync Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-sync
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Sync
+Description: XCB Sync Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-sync
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xevie.pc.in b/libxcb/xcb-xevie.pc.in
index 0aa3e02ac..aad488eec 100644
--- a/libxcb/xcb-xevie.pc.in
+++ b/libxcb/xcb-xevie.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Xevie
-Description: XCB Xevie Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xevie
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Xevie
+Description: XCB Xevie Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xevie
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xf86dri.pc.in b/libxcb/xcb-xf86dri.pc.in
index f3f29806d..dac5828e4 100644
--- a/libxcb/xcb-xf86dri.pc.in
+++ b/libxcb/xcb-xf86dri.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB XFree86-DRI
-Description: XCB XFree86-DRI Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xf86dri
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB XFree86-DRI
+Description: XCB XFree86-DRI Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xf86dri
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xfixes.pc.in b/libxcb/xcb-xfixes.pc.in
index 93eafda30..d13fe30a9 100644
--- a/libxcb/xcb-xfixes.pc.in
+++ b/libxcb/xcb-xfixes.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB XFixes
-Description: XCB XFixes Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb xcb-render xcb-shape
-Libs: -L${libdir} -lxcb-xfixes
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB XFixes
+Description: XCB XFixes Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb xcb-render xcb-shape
+Libs: -L${libdir} -lxcb-xfixes
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xinerama.pc.in b/libxcb/xcb-xinerama.pc.in
index c4775f9b5..84ecba128 100644
--- a/libxcb/xcb-xinerama.pc.in
+++ b/libxcb/xcb-xinerama.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Xinerama
-Description: XCB Xinerama Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xinerama
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Xinerama
+Description: XCB Xinerama Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xinerama
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xinput.pc.in b/libxcb/xcb-xinput.pc.in
index ec3122947..d1d1b8f5f 100644
--- a/libxcb/xcb-xinput.pc.in
+++ b/libxcb/xcb-xinput.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB XInput
-Description: XCB XInput Extension (EXPERIMENTAL)
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xinput
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB XInput
+Description: XCB XInput Extension (EXPERIMENTAL)
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xinput
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xkb.pc.in b/libxcb/xcb-xkb.pc.in
index cb31fadcb..6ed003581 100644
--- a/libxcb/xcb-xkb.pc.in
+++ b/libxcb/xcb-xkb.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB XKB
-Description: XCB Keyboard Extension (EXPERIMENTAL)
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xkb
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB XKB
+Description: XCB Keyboard Extension (EXPERIMENTAL)
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xkb
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xprint.pc.in b/libxcb/xcb-xprint.pc.in
index b5275d5d5..f0c257162 100644
--- a/libxcb/xcb-xprint.pc.in
+++ b/libxcb/xcb-xprint.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Xprint
-Description: XCB Xprint Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xprint
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Xprint
+Description: XCB Xprint Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xprint
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xselinux.pc.in b/libxcb/xcb-xselinux.pc.in
index 6a71f733a..f7042f26c 100644
--- a/libxcb/xcb-xselinux.pc.in
+++ b/libxcb/xcb-xselinux.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB SELinux
-Description: XCB SELinux Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xselinux
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB SELinux
+Description: XCB SELinux Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xselinux
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xtest.pc.in b/libxcb/xcb-xtest.pc.in
index 886c4dc2f..cead05604 100644
--- a/libxcb/xcb-xtest.pc.in
+++ b/libxcb/xcb-xtest.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB XTEST
-Description: XCB XTEST Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb
-Libs: -L${libdir} -lxcb-xtest
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB XTEST
+Description: XCB XTEST Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb
+Libs: -L${libdir} -lxcb-xtest
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xv.pc.in b/libxcb/xcb-xv.pc.in
index f4476135f..a78fbf27e 100644
--- a/libxcb/xcb-xv.pc.in
+++ b/libxcb/xcb-xv.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB Xv
-Description: XCB Xv Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb xcb-shm
-Libs: -L${libdir} -lxcb-xv
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB Xv
+Description: XCB Xv Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb xcb-shm
+Libs: -L${libdir} -lxcb-xv
+Cflags: -I${includedir}
diff --git a/libxcb/xcb-xvmc.pc.in b/libxcb/xcb-xvmc.pc.in
index 95bf4effc..fc0d213b9 100644
--- a/libxcb/xcb-xvmc.pc.in
+++ b/libxcb/xcb-xvmc.pc.in
@@ -1,11 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: XCB XvMC
-Description: XCB XvMC Extension
-Version: @PACKAGE_VERSION@
-Requires: xcb xcb-xv
-Libs: -L${libdir} -lxcb-xvmc
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB XvMC
+Description: XCB XvMC Extension
+Version: @PACKAGE_VERSION@
+Requires: xcb xcb-xv
+Libs: -L${libdir} -lxcb-xvmc
+Cflags: -I${includedir}
diff --git a/libxcb/xcb.pc.in b/libxcb/xcb.pc.in
index 2dc8c13bb..433c1686a 100644
--- a/libxcb/xcb.pc.in
+++ b/libxcb/xcb.pc.in
@@ -1,13 +1,13 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-xcbproto_version=@XCBPROTO_VERSION@
-
-Name: XCB
-Description: X-protocol C Binding
-Version: @PACKAGE_VERSION@
-Requires.private: @NEEDED@
-Libs: -L${libdir} -lxcb
-Libs.private: @LIBS@
-Cflags: -I${includedir}
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+xcbproto_version=@XCBPROTO_VERSION@
+
+Name: XCB
+Description: X-protocol C Binding
+Version: @PACKAGE_VERSION@
+Requires.private: @NEEDED@
+Libs: -L${libdir} -lxcb
+Libs.private: @LIBS@
+Cflags: -I${includedir}