From 990bc3f015a4f8fce2eb918375defcd44980a845 Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 8 Jun 2012 09:33:13 +0200 Subject: Used synchronise script to update files --- libxcb/.gitignore | 30 + libxcb/COPYING | 60 +- libxcb/INSTALL | 458 +++---- libxcb/Makefile.am | 170 +-- libxcb/README | 72 +- libxcb/acinclude.m4 | 284 ++-- libxcb/autogen.sh | 24 +- libxcb/doc/.gitignore | 2 + libxcb/doc/tutorial/xcb.css | 246 ++-- libxcb/doc/xcb.doxygen.in | 2506 +++++++++++++++++----------------- libxcb/doc/xkb_internals | 98 +- libxcb/doc/xkb_issues | 74 +- libxcb/src/.gitignore | 29 + libxcb/src/xcb_ext.c | 254 ++-- libxcb/src/xcb_list.c | 202 +-- libxcb/src/xcb_xid.c | 194 +-- libxcb/src/xcbext.h | 204 +-- libxcb/tests/.gitignore | 3 + libxcb/tests/CheckLog.xsl | 208 +-- libxcb/tests/Makefile.am | 64 +- libxcb/tests/check_all.c | 40 +- libxcb/tests/check_public.c | 436 +++--- libxcb/tests/check_suites.h | 8 +- libxcb/tools/README | 34 +- libxcb/tools/api_conv.pl | 196 +-- libxcb/tools/constants | 1144 ++++++++-------- libxcb/xcb-composite.pc.in | 22 +- libxcb/xcb-damage.pc.in | 22 +- libxcb/xcb-dpms.pc.in | 22 +- libxcb/xcb-dri2.pc.in | 22 +- libxcb/xcb-glx.pc.in | 22 +- libxcb/xcb-proto/.gitignore | 31 + libxcb/xcb-proto/COPYING | 60 +- libxcb/xcb-proto/INSTALL | 458 +++---- libxcb/xcb-proto/README | 94 +- libxcb/xcb-proto/TODO | 90 +- libxcb/xcb-proto/autogen.sh | 24 +- libxcb/xcb-proto/src/bigreq.xml | 76 +- libxcb/xcb-proto/src/composite.xml | 196 +-- libxcb/xcb-proto/src/damage.xml | 174 +-- libxcb/xcb-proto/src/dpms.xml | 174 +-- libxcb/xcb-proto/src/dri2.xml | 14 +- libxcb/xcb-proto/src/ge.xml | 84 +- libxcb/xcb-proto/src/randr.xml | 1342 +++++++++--------- libxcb/xcb-proto/src/record.xml | 356 ++--- libxcb/xcb-proto/src/res.xml | 166 +-- libxcb/xcb-proto/src/screensaver.xml | 256 ++-- libxcb/xcb-proto/src/shape.xml | 310 ++--- libxcb/xcb-proto/src/shm.xml | 232 ++-- libxcb/xcb-proto/src/xc_misc.xml | 76 +- libxcb/xcb-proto/src/xevie.xml | 170 +-- libxcb/xcb-proto/src/xfixes.xml | 668 ++++----- libxcb/xcb-proto/src/xinerama.xml | 198 +-- libxcb/xcb-proto/src/xinput.xml | 2040 +++++++++++++-------------- libxcb/xcb-proto/src/xprint.xml | 658 ++++----- libxcb/xcb-proto/src/xselinux.xml | 552 ++++---- libxcb/xcb-proto/src/xv.xml | 900 ++++++------ libxcb/xcb-proto/src/xvmc.xml | 292 ++-- libxcb/xcb-proto/xcbgen/Makefile.am | 6 +- libxcb/xcb-proto/xcbgen/__init__.py | 2 +- libxcb/xcb-proto/xcbgen/error.py | 10 +- libxcb/xcb-randr.pc.in | 22 +- libxcb/xcb-record.pc.in | 22 +- libxcb/xcb-render.pc.in | 22 +- libxcb/xcb-res.pc.in | 22 +- libxcb/xcb-screensaver.pc.in | 22 +- libxcb/xcb-shape.pc.in | 22 +- libxcb/xcb-shm.pc.in | 22 +- libxcb/xcb-sync.pc.in | 22 +- libxcb/xcb-xevie.pc.in | 22 +- libxcb/xcb-xf86dri.pc.in | 22 +- libxcb/xcb-xfixes.pc.in | 22 +- libxcb/xcb-xinerama.pc.in | 22 +- libxcb/xcb-xinput.pc.in | 22 +- libxcb/xcb-xkb.pc.in | 22 +- libxcb/xcb-xprint.pc.in | 22 +- libxcb/xcb-xselinux.pc.in | 22 +- libxcb/xcb-xtest.pc.in | 22 +- libxcb/xcb-xv.pc.in | 22 +- libxcb/xcb-xvmc.pc.in | 22 +- libxcb/xcb.pc.in | 26 +- 81 files changed, 8705 insertions(+), 8598 deletions(-) create mode 100644 libxcb/.gitignore create mode 100644 libxcb/doc/.gitignore create mode 100644 libxcb/src/.gitignore create mode 100644 libxcb/tests/.gitignore create mode 100644 libxcb/xcb-proto/.gitignore (limited to 'libxcb') 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: - - - -Discussion about XCB occurs on the XCB mailing list: - - - - -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: + + + +Discussion about XCB occurs on the XCB mailing list: + + + + +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 , where is the value of -# the FILE_VERSION_FILTER tag, and 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 , where -# is the value of the INPUT_FILTER tag, and 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 , where is the value of +# the FILE_VERSION_FILTER tag, and 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 , where +# is the value of the INPUT_FILTER tag, and 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/.gitignore b/libxcb/src/.gitignore new file mode 100644 index 000000000..a402afe57 --- /dev/null +++ b/libxcb/src/.gitignore @@ -0,0 +1,29 @@ +bigreq.* +composite.* +damage.* +dpms.* +dri2.* +glx.* +randr.* +record.* +render.* +res.* +screensaver.* +shape.* +shm.* +sync.* +xc_misc.* +xevie.* +xf86dri.* +xfixes.* +xinerama.* +xinput.* +xkb.* +xprint.* +xselinux.* +xtest.* +xv.* +xvmc.* +xproto.* +xcb_des.c +X11 diff --git a/libxcb/src/xcb_ext.c b/libxcb/src/xcb_ext.c index 68bb29bdf..edad18da3 100644 --- a/libxcb/src/xcb_ext.c +++ b/libxcb/src/xcb_ext.c @@ -1,127 +1,127 @@ -/* 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 -#include - -#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) -{ - 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 +#include + +#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) +{ + 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 - -#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 + +#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 3df5dbec6..364662bc1 100644 --- a/libxcb/src/xcb_xid.c +++ b/libxcb/src/xcb_xid.c @@ -1,97 +1,97 @@ -/* 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 -#include -#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) -{ - 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 +#include +#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) +{ + 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 @@ - - - - - - - - - - Test Suite Results - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
Test PathTest Function LocationC IdentifierTest CaseResult
-
-
- - - -

Unit Test Statistics

-
    -
  • date/time:
  • -
  • duration:
  • -
-
-
- - -

Test Suite:

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- + + + + + + + + + + Test Suite Results + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Test PathTest Function LocationC IdentifierTest CaseResult
+
+
+ + + +

Unit Test Statistics

+
    +
  • date/time:
  • +
  • duration:
  • +
+
+
+ + +

Test Suite:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 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 -#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 +#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 -#include -#include -#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 +#include +#include +#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 - -void suite_add_test(Suite *s, TFun tf, const char *name); -Suite *public_suite(void); +#include + +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 ... - - * 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 ... + + * 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() - { - 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() + { + 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: - - - -Discussion about XCB occurs on the XCB mailing list: - - - - -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: + + + +Discussion about XCB occurs on the XCB mailing list: + + + + +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 @@ - - - - - - - - - - - + + + + + + + + + + + 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 @@ - - - - - - xproto - xfixes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + xproto + xfixes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - xproto - xfixes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + xproto + xfixes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. --> + major-version="1" minor-version="4"> xproto @@ -241,6 +241,18 @@ authorization from the authors. + + + + + + + + + + + + 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 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + 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 @@ - - - - - - xproto - render - - - - - - - - - - - - - - - - 0 - 1 - 2 - 3 - 4 - 5 - - - - - - - - - - - - - nRates - - - - - - - - - - - - - - - - - - 0 - 1 - 2 - 3 - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - 1 - 2 - 3 - - - - - - - - - - - - - - - - - - - - - - - - nSizes - - - - nInfo - nSizes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_crtcs - - - num_outputs - - - num_modes - - - - names_len - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_crtcs - - - num_modes - - - num_clones - - - name_len - - - - - - - - - - - - num_atoms - - - - - - - - - - - - - - - length - - - - - - - - - - - - - - - - - - - - - - - - - num_units - format - - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_items - - format - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_outputs - - - num_possible_outputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - size - - - size - - - size - - - - - - - - - - size - - - size - - - size - - - - - - - - - - - - - - - - - - num_crtcs - - - num_outputs - - - num_modes - - - - names_len - - - - - - - - - - - filter_len - - - - - - - - - - - - - - - - - - - pending_len - - - pending_nparams - - - current_len - - - current_nparams - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1 - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + xproto + render + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + nRates + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 1 + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + nSizes + + + + nInfo + nSizes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_crtcs + + + num_outputs + + + num_modes + + + + names_len + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_crtcs + + + num_modes + + + num_clones + + + name_len + + + + + + + + + + + + num_atoms + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + + + + num_units + format + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_items + + format + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_outputs + + + num_possible_outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + size + + + size + + + size + + + + + + + + + + size + + + size + + + size + + + + + + + + + + + + + + + + + + num_crtcs + + + num_outputs + + + num_modes + + + + names_len + + + + + + + + + + + filter_len + + + + + + + + + + + + + + + + + + + pending_len + + + pending_nparams + + + current_len + + + current_nparams + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1 - 2 - - - - - 1 - 2 - 3 - - - - - - - num_ranges - - - - - - - - - - - - - - - - - - - - - - - - - - - num_client_specs - - - num_ranges - - - - - - - - - - - num_client_specs - - - num_ranges - - - - - - - - num_client_specs - - - - - - - - - - - - - num_intercepted_clients - - - - - - - - - - - - - - - - - - length - 4 - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + 1 + 2 + 3 + + + + + + + num_ranges + + + + + + + + + + + + + + + + + + + + + + + + + + + num_client_specs + + + num_ranges + + + + + + + + + + + num_client_specs + + + num_ranges + + + + + + + + num_client_specs + + + + + + + + + + + + + num_intercepted_clients + + + + + + + + + + + + + + + + + + length + 4 + + + + + + + + + + + + + + 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 @@ - - - - xproto - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_clients - - - - - - - - - - - - num_types - - - - - - - - - - - - - + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_clients + + + + + + + + + + + + num_types + + + + + + + + + + + + + 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 @@ - - - - - - - xproto - - - - - - - - - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + xproto + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - xproto - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rectangles_len - - - - + + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rectangles_len + + + + 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 @@ - - - - xproto - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ids_len - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ids_len + + + + 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - xproto - render - shape - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1 - 2 - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - width - height - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - length - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbytes - - - - - - - - - - nbytes - - - - - - - - - - - - - - - - - nbytes - - - width - height - - - - - - - - - - - - - - - nbytes - - - - - - - - - - - - - - - - - - - - - + + + + + xproto + render + shape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + width + height + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + length + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nbytes + + + + + + + + + + nbytes + + + + + + + + + + + + + + + + + nbytes + + + width + height + + + + + + + + + + + + + + + nbytes + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - - - - xproto - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - number - - - - - + + + + + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + number + + + + + 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 @@ - - - - - - - xproto - - - - - - 0 - 1 - - - - 0 - 1 - - - - - - - - - name_len - - - - - - - - - - - - - - 0 - 1 - 2 - 3 - 4 - - - - - - - - - - - - - - - - - devices_len - - - - - - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - axes_len - - - - - - - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - - num_this_classes - - - num_all_classes - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_keysyms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_keysyms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - length - - - - - - - - - - - - - - keycode_count - keysyms_per_keycode - - - - - - - - - - - - - - - - keycodes_per_modifier - 8 - - - - - - - - - - - - - - keycodes_per_modifier - 8 - - - - - - - - - - - - - - - - - - - - map_size - - - - - - - - - - - - map_size - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32 - - - - - - - - - - 32 - - - - - - - - - - num_valuators - - - - - - - - - - - - - - - num_events - 32 - - - - num_classes - - - - - - - - - - - - - - - - - - - - - num_valuators - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_valuators - - - num_valuators - - - num_valuators - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_valuators - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 - - - 4 - - - 3 - - - - - - - - - - - - - - - - - - - - - - - - 28 - - - - - - - 28 - - - - - - - - - - - - - - - - - - - - + + + + + + + xproto + + + + + + 0 + 1 + + + + 0 + 1 + + + + + + + + + name_len + + + + + + + + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + + + + + + + + + + + + + + devices_len + + + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + axes_len + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + num_this_classes + + + num_all_classes + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_keysyms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_keysyms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + keycode_count + keysyms_per_keycode + + + + + + + + + + + + + + + + keycodes_per_modifier + 8 + + + + + + + + + + + + + + keycodes_per_modifier + 8 + + + + + + + + + + + + + + + + + + + + map_size + + + + + + + + + + + + map_size + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + 32 + + + + + + + + + + num_valuators + + + + + + + + + + + + + + + num_events + 32 + + + + num_classes + + + + + + + + + + + + + + + + + + + + + num_valuators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_valuators + + + num_valuators + + + num_valuators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_valuators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4 + + + 4 + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + 28 + + + + + + + 28 + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - - - - xproto - - - - - - - - nameLen - - - - - descLen - - - - - - - - - - 0 - 1 - - - - - 0 - 0 - 1 - - - - - 1 - 2 - 3 - 4 - 5 - 6 - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - - - - - - - - - - - - - - - - - printerNameLen - - - - localeLen - - - - - - - listCount - - - - - - - - - - - - printerNameLen - - - - localeLen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - len_data - - - - - - - - - - - - - - - - - - dataLen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nameLen - - - - - - - valueLen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listCount - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + xproto + + + + + + + + nameLen + + + + + descLen + + + + + + + + + + 0 + 1 + + + + + 0 + 0 + 1 + + + + + 1 + 2 + 3 + 4 + 5 + 6 + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + + + printerNameLen + + + + localeLen + + + + + + + listCount + + + + + + + + + + + + printerNameLen + + + + localeLen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + len_data + + + + + + + + + + + + + + + + + + dataLen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nameLen + + + + + + + valueLen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + listCount + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - xproto - - - - - - - - - - - - - - - context_len - - - - - - - - - - context_len - - - - - - - - - context_len - - - - - - - - - - - context_len - - - - - - - - context_len - - - - - - - - - - context_len - - - - - - - - - - - - context_len - - - - - - - - - - object_context_len - - - data_context_len - - - - - - - context_len - - - - - - - - - - context_len - - - - - - - - context_len - - - - - - - - - - context_len - - - - - - - - - - - - - context_len - - - - - - - - - - - - - context_len - - - - - - - - - - - - properties_len - - - - - - - - context_len - - - - - - - - - - context_len - - - - - - - - context_len - - - - - - - - - - context_len - - - - - - - - - - - - context_len - - - - - - - - - - - - context_len - - - - - - - - - - - selections_len - - - - - - - - - - - - context_len - - - - - + + + + xproto + + + + + + + + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + context_len + + + + + + + + + + + context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + + + + context_len + + + + + + + + + + object_context_len + + + data_context_len + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + + + + + context_len + + + + + + + + + + + + + context_len + + + + + + + + + + + + properties_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + context_len + + + + + + + + + + context_len + + + + + + + + + + + + context_len + + + + + + + + + + + + context_len + + + + + + + + + + + selections_len + + + + + + + + + + + + context_len + + + + + 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 @@ - - - - - xproto - shm - - - - - - - - 0 - 1 - 2 - 3 - 4 - - - - - - - - - - - - - - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - name_size - - - num_formats - - - - - - - - - - - - - - name_size - - - - - - - - - - - num_planes - - - num_planes - - - data_size - - - - - - - - - - - size - - - - - - - - - - 16 - - - - - - - - - - - - - - - - - - - - - - 32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_adaptors - - - - - - - - - - - - - num_encodings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num_attributes - - - - - - - - - - - - num_formats - - - - - - - - - - - - - - - - - - num_planes - - - num_planes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + xproto + shm + + + + + + + + 0 + 1 + 2 + 3 + 4 + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name_size + + + num_formats + + + + + + + + + + + + + + name_size + + + + + + + + + + + num_planes + + + num_planes + + + data_size + + + + + + + + + + + size + + + + + + + + + + 16 + + + + + + + + + + + + + + + + + + + + + + 32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_adaptors + + + + + + + + + + + + + num_encodings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num_attributes + + + + + + + + + + + + num_formats + + + + + + + + + + + + + + + + + + num_planes + + + num_planes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ - - - - - xv - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - num - - - - - - - - - - - - - - - - - - - length - - - - - - - - - - - - - - - - length - - - - - - - - - - - - - - - - - - - - - - 4 - - - - length - - - - - - - - - - - - - - - - - num - - - - - + + + + + xv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + num + + + + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + length + + + + + + + + + + + + + + + + + + + + + + 4 + + + + length + + + + + + + + + + + + + + + + + num + + + + + 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} -- cgit v1.2.3