diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2019-04-03 06:54:07 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2019-04-03 06:54:07 +0000 |
commit | cbab4fb0965b77a7915648a43dd0e407199128ea (patch) | |
tree | 4221c9f001deea9e12e3e772d2bd14368f3b6863 /proto/x11proto | |
parent | 7fb582dac69640dddef1383a9bfad1cb78289db9 (diff) |
Remove old X proto files, replaced by xorgproto.
"go for it" deraadt@
Diffstat (limited to 'proto/x11proto')
56 files changed, 0 insertions, 48740 deletions
diff --git a/proto/x11proto/AUTHORS b/proto/x11proto/AUTHORS deleted file mode 100644 index 1bfcc436b..000000000 --- a/proto/x11proto/AUTHORS +++ /dev/null @@ -1,23 +0,0 @@ -The architect of the X11 core protocol was Bob Scheifler of MIT LCS, with -significant contributions from Jim Gettys, Phil Karlton and Scott -McGregor of Digital, Dave Rosenthal of Sun, and many others of -the xpert mailing list. - -The original sample server implementation of the X11 protocol was -implemented by Phil Karlton and Susan Angebrandt doing the device -independent part of the server, with Raymond Drewry and Todd Newman of -Digital Equipment Corporation, doing the mi and original ddx -implementation; their feedback was vital to a good design, along with -that of the more than 100 alpha and beta testers who bravely tested -the X11 core design. - -The X11 protocol library (Xlib) was built principally by Jim Gettys of -Digital and MIT Project Athena, with assistance from Ron Newman of MIT -Project Athena. - -Our thanks to those at MIT, Digital Equipment Corporation, Hewlett-Packard, -IBM, and many others who had faith in us reimplementing X from first -principles. - -If there are mistakes here, they are mine; entirely possible after -over 15 years. - Jim Gettys diff --git a/proto/x11proto/COPYING b/proto/x11proto/COPYING deleted file mode 100644 index 32cb88f08..000000000 --- a/proto/x11proto/COPYING +++ /dev/null @@ -1,108 +0,0 @@ -Copyright (c) 1991, Oracle and/or its affiliates. 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 (including the next -paragraph) 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 OR COPYRIGHT HOLDERS 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. - - -Copyright 1985, 1987, 1988, 1990, 1991, 1993-1996, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - -The X Window System is a Trademark of The Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - - -Copyright 1987 by Apollo Computer Inc., Chelmsford, Massachusetts. -Copyright 1989 by Hewlett-Packard Company. - - All Rights Reserved - -Permission to use, duplicate, change, and distribute this software and -its documentation for any purpose and without fee is granted, provided -that the above copyright notice appear in such copy and that this -copyright notice appear in all supporting documentation, and that the -names of Apollo Computer Inc., the Hewlett-Packard Company, or the X -Consortium not be used in advertising or publicity pertaining to -distribution of the software without written prior permission. - -HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD -TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. Hewlett-Packard shall not be liable for errors -contained herein or direct, indirect, special, incidental or -consequential damages in connection with the furnishing, -performance, or use of this material. - - -Copyright (c) 1999 The XFree86 Project Inc. - -All Rights Reserved. - -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 -OPEN GROUP 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 name of The XFree86 Project -Inc. 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 XFree86 Project Inc. diff --git a/proto/x11proto/ChangeLog b/proto/x11proto/ChangeLog deleted file mode 100644 index 7ad45c5e1..000000000 --- a/proto/x11proto/ChangeLog +++ /dev/null @@ -1,2180 +0,0 @@ -commit f3b7b856777500113cee524dbd295fcbbce11fab -Author: Keith Packard <keithp@keithp.com> -Date: Fri Sep 23 09:49:36 2016 +0300 - - xproto 7.0.31 - - Signed-off-by: Keith Packard <keithp@keithp.com> - -commit d59bd3ade1a8430282c3395d5f5b22ebaa339976 -Author: Keith Packard <keithp@keithp.com> -Date: Fri Sep 23 02:35:36 2016 +0300 - - Fix typo __has_extenstion -> __has_extension - - Signed-off-by: Keith Packard <keithp@keithp.com> - Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - -commit bd3832a988c34304b54ba3bbab5befb3dbcae90d -Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Thu Sep 22 14:31:11 2016 -0700 - - xproto 7.0.30 - - Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - -commit ad959de4f4fd821cf95522994395ad668eb6756f -Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Mon Sep 19 13:17:39 2016 -0700 - - Xfuncproto: Add support for _X_NOTSAN macro - - Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - Reviewed-by: Keith Packard <keithp@keithp.com> - -commit 9a9382de9036fc0f3b5555ee4d340c7dd234c424 -Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Mon Sep 19 13:14:34 2016 -0700 - - Xfuncproto: Add support for _X_DEPRECATED_MSG() macro - - Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - Reviewed-by: Keith Packard <keithp@keithp.com> - -commit 34a95f725c200b9aedc8c634851474d9bcce712e -Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Mon Sep 19 13:12:35 2016 -0700 - - Xfuncproto.h: Define __has_extension() if it isn't already - - Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - Reviewed-by: Keith Packard <keithp@keithp.com> - -commit 4855c9229f00927a343f563db58e261db8a187fa -Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Mon Sep 19 13:10:34 2016 -0700 - - Xfuncproto.h: Define __has_feature() if it isn't already - - Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - Reviewed-by: Keith Packard <keithp@keithp.com> - -commit 3e975a39b002070d245d21838f837aaf6e5c41d0 -Author: Julien Cristau <jcristau@debian.org> -Date: Fri May 13 10:28:12 2016 +0200 - - xproto 7.0.29 - - Signed-off-by: Julien Cristau <jcristau@debian.org> - -commit de30673937e2d36b84cf50c3eb05bbf9836fabfb -Author: James Clarke <jrtc27@jrtc27.com> -Date: Mon Apr 25 17:12:08 2016 +0100 - - Don't let XFD_SETSIZE exceed FD_SETSIZE - - This fixes 2c94cdb453bc641246cc8b9a876da9799bee1ce7 on the Hurd, as - FD_SETSIZE is only 256, and so anyone using XFD_SETSIZE to iterate over - the contents of an fd_set will overrun the array. - - Signed-off-by: James Clarke <jrtc27@jrtc27.com> - Reviewed-by: Julien Cristau <jcristau@debian.org> - -commit edc04f87c74abacb57782dc947f81a2810a72537 -Author: Olivier Fourdan <ofourdan@redhat.com> -Date: Wed Aug 26 10:11:11 2015 +0200 - - Raise the number of FD on WIN32 as well - - Commit 2c94cdb raised the number of file descriptors from 256 to 512 - but only for non-WIN32 platforms. - - The definition of XFD_SETSIZE being duplicated, we need to do the same - for WIN32 builds as well otherwise a newer X server trying to - use more than 256 clients would fail on that platform. - - Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> - Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk> - -commit 446ee4b7f7ce1bb75f0f6b23bbb33d4bfe8d7ad3 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sun Jul 26 08:38:54 2015 -0700 - - Incorrect guard block in HPkeysym.h - - https://bugs.freedesktop.org/show_bug.cgi?id=91469 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Thomas Klausner <wiz@NetBSD.org> - -commit d5524e2b8d811aa03ed19c6e8fb2ee4162ca2b23 -Author: Adam Jackson <ajax@redhat.com> -Date: Wed Jul 1 11:35:13 2015 -0400 - - xproto 7.0.28 - - Signed-off-by: Adam Jackson <ajax@redhat.com> - -commit 2c94cdb453bc641246cc8b9a876da9799bee1ce7 -Author: Olivier Fourdan <ofourdan@redhat.com> -Date: Fri May 29 18:16:34 2015 +0200 - - Increase the number of file descriptors - - To allow up to 512 clients, the number of file descriptors being - monitored need to be increased accordingly. - - Signed-off-by: Adam Jackson <ajax@redhat.com> - Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 2dc2c38fb530c717b1944c93a889e4deff61b7f9 -Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Mon May 25 04:30:29 2015 -0700 - - darwin: Include strings.h - - https://trac.macports.org/ticket/47813 - - Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - -commit 70cf8acf06705097b009a488994b526832b0ef66 -Author: Thomas Klausner <wiz@NetBSD.org> -Date: Sun Jan 11 00:39:14 2015 +0100 - - Use C99 compliant definition of nonnull attribute. - - Fixes warning with clang. - - Signed-off-by: Thomas Klausner <wiz@NetBSD.org> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 303b137a55bb2d092b008439570a323c89a41d70 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Tue Dec 30 21:15:09 2014 -0800 - - xproto 7.0.27 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit ffd4a13042d24cb5c913207585191801a9a1603e -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri Jul 18 17:08:25 2014 -0700 - - Use clang's __has_attribute to check for attribute support - - Hopefully other compilers will start adopting this so we don't have to - maintain ever growing matrixes of compiler/version checks for all the - attributes we use. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> - -commit 9b895b428576c4d6b4d43c77940c44604f9c1a2c -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Tue Jul 15 13:51:02 2014 -0700 - - Do not suggest adding new keysyms to XF86keysym.h - - As noted in the comment in the file, X.Org controls the main X11 keysym - definitions, so adds new keysyms there, not in the XFree86 vendor space. - - Reported-by: Gioele Barabucci <gioele@svario.it> - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Daniel Stone <daniels@collabora.com> - -commit 25f1134b4a2bd8018f153158cfc7c9ae255b5d6e -Author: Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> -Date: Wed Jun 25 18:08:22 2014 +0200 - - Bug #80528: make it build on AIX - - https://bugs.freedesktop.org/show_bug.cgi?id=80528 - - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 068fd2cb19b6c0434f63b427158506e2ec3c6206 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri May 9 19:23:58 2014 -0700 - - Enable use of __attribute__((deprecated)) with Solaris Studio 12.4 compiler - - Support for this attribute is added in the 12.4 beta release. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 03cbbf6c3e811c026c86e3a60d2f9af56606e155 -Author: Julien Cristau <jcristau@debian.org> -Date: Mon Apr 14 15:36:00 2014 +0200 - - xproto 7.0.26 - - Signed-off-by: Julien Cristau <jcristau@debian.org> - -commit d522ff998b77f0c8c39c4d3945f78d2221fe1209 -Author: Jon TURNEY <jon.turney@dronecode.org.uk> -Date: Tue Dec 17 14:26:07 2013 +0000 - - Xpoll.h.in: Fix WIN32 check to trigger on MinGW only - - MinGW-w64 w32api-headers 3.0.0 define WIN32 in some places they didn't before, - which causes this check to turn on for Cygwin, which is not wanted. - - Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> - Reviewed-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - -commit aee7e4de57349db186ca9d8c1312dc18590d3942 -Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> -Date: Wed Apr 3 13:55:16 2013 +0100 - - Xwindows.h: Wrap Windows 64-bit types as well for 64-bit build - - Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk> - -commit e5e2ed5b115107d1b1d5248ac5c5dda67e71ea50 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat Dec 28 11:11:00 2013 -0800 - - Add more comments on connection setup to Xproto.h - - Some of the bits I forget and have to dig out of the protocol spec - every few years when I need to know again. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 148d89f0b3a652acc54b1a21807ffd6d0e81e279 -Author: Keith Packard <keithp@keithp.com> -Date: Sun Dec 15 08:27:09 2013 -0800 - - Replace 'pointer' with explicit 'void *' - - To get rid of the 'pointer' typedef, stop using it locally. That way, - when _XTYPEDEF_POINTER is defined before Xdefs.h is included, it won't - get defined and Xdefs.h will still compile. - - Signed-off-by: Keith Packard <keithp@keithp.com> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 3911ad9e8e8911c4b4a5d624e73b51667d0e3963 -Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> -Date: Thu Nov 21 20:20:22 2013 -0600 - - Xthreads.h: Declare _Xthread_init for WIN32 - - This fixes the build of libXt on *-*-mingw* with -Werror=implicit. - - Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit a7fa86998c873ce7463d169b4bd423898ca2bae1 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri Nov 22 22:14:24 2013 -0800 - - xproto 7.0.25 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit a8aa17cb63493b4b756587ddc884a9055dba14da -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sat Oct 26 09:42:05 2013 -0400 - - config: replace deprecated use of AC_OUTPUT with AC_CONFIG_FILES - - Fix Automake warning: AC_OUTPUT should be used without arguments. - www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Files - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit ed5a86761d96d4bdebda4f09071a49cbf4688d1b -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri Mar 1 20:05:12 2013 -0800 - - Remove WORD64, MUSTCOPY, and other CRAY leftovers - - Leaves behind several no-op macros for compatibility with existing - code that uses them. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 6d4acb0e3a6568a8faaa651d4e3d32f917b9067b -Author: Benno Schulenberg <bensberg@justemail.net> -Date: Sat Aug 31 17:00:34 2013 +0200 - - Additional dead keysyms to complete the German DIN T3 keyboard layout. - - Signed-off-by: Benno Schulenberg <bensberg@justemail.net> - Signed-off-by: James Cloos <cloos@jhcloos.com> - -commit 043ed78ce03febd113615f5920bc9dffaf7f0b16 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri Apr 19 14:45:28 2013 -0700 - - Add _X_COLD attribute for branch prediction hints - - Unfortunately the Solaris Studio equivalent is a pragma taking the - function names as arguments, so doesn't translate cleanly into a - common macro form. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit d103af8068fb90494cbd6e1ff950850369bbf95f -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri Mar 29 16:20:49 2013 -0700 - - xproto 7.0.24 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit f8c43d587e43fee2c22bd7b5f35a9d4dc8bdb580 -Author: Colin Walters <walters@verbum.org> -Date: Wed Jan 4 17:37:06 2012 -0500 - - autogen.sh: Implement GNOME Build API - - http://people.gnome.org/~walters/docs/build-api.txt - - Signed-off-by: Adam Jackson <ajax@redhat.com> - -commit 3707c6e71c01758b0ac5b2c29c8600b6ff6b73ee -Author: Adam Jackson <ajax@redhat.com> -Date: Tue Jan 15 14:01:10 2013 -0500 - - configure: Remove AM_MAINTAINER_MODE - - Signed-off-by: Adam Jackson <ajax@redhat.com> - -commit c0dd615fddb6fa487d1a914c6928f3843489725e -Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> -Date: Mon Oct 22 02:52:44 2012 -0500 - - Adjust wrapping to work with MinGW-w64 headers - - Adjust <windows.h> wrapping to work with MinGW-w64 as well MinGW.org - headers, which define BOOL in a different way. - Add some more comments on what we doing here. - v2: Make similar changes to Xwinsock.h, used for MinGW but not Cygwin. - - Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> - Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Reviewed-by: Colin Harrison <colin.harrison@virgin.net> - -commit c0d697ffddf14117541e7021c3b80b25c4536f6f -Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> -Date: Mon Oct 15 02:16:46 2012 -0500 - - Do not use visibility attributes on MinGW - - Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Reviewed-by: Colin Harrison <colin.harrison@virgin.net> - Tested-by: Colin Harrison <colin.harrison@virgin.net> - -commit c76d51423d6a6afe4f0c8fc6f863ba97d202184b -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sun Aug 26 14:36:50 2012 -0700 - - Bug 51009: _X_RESTRICT_KYWD fix for g++ 4.6 & later on Solaris - - g++ 4.6 & later on Solaris set the __STDC_VERSION__ define to indicate - C99 mode to expose C99/Unix03 functions in the system headers, even - though they don't recognize the C99 restrict keyword, as explained in - http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01308.html - - Thus we avoid using the restrict keyword here if __cplusplus is also - defined, falling back to the __GNUC__ case using __restrict__ instead. - - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=51009 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Tested-by: Jonathan Perkin - -commit f1b8b4dd5e798b7e91da95eca997ec7236fcbc27 -Author: James M Leddy <james.leddy@canonical.com> -Date: Wed May 9 12:45:01 2012 -0700 - - Add XF86XK_AudioMicMute - - Lenovo Thinkpad machines have a microphone mute in addition to the - standard audio output mute. - - Signed-off-by: James M. Leddy <james.leddy@canonical.com> - Signed-off-by: James Cloos <cloos@jhcloos.com> - -commit a06fa7fc98b66652df8bbc4734b5010d43744373 -Author: Sergei Trofimovich <slyfox@gentoo.org> -Date: Tue Dec 20 16:43:44 2011 +0300 - - Xmd.h: Treat __ILP32__ targets as LONG32 ones - - amd64-x32 ABI defines sizeof(long) == sizeof (void*) == 4 - - Noticed on build failure of libXmu: - libXmu-1.1.0/work/libXmu-1.1.0/src/EditresCom.c: In function '_XEditresGetStringValues': - libXmu-1.1.0/work/libXmu-1.1.0/src/EditresCom.c:2198:6: error: duplicate case value - libXmu-1.1.0/work/libXmu-1.1.0/src/EditresCom.c:2194:6: error: previously used here - - More info about x32: https://sites.google.com/site/x32abi/ - - Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Signed-off-by: James Cloos <cloos@jhcloos.com> - -commit a6651a8d812d224a9e74205bdefb7081f743af11 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Tue May 1 16:38:14 2012 -0400 - - config: replace obsolete AC_CONFIG_HEADER with with AC_CONFIG_HEADERS - - The former is an obsolete alias to the latter. - It may get removed in the future. - - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 20202784b9700d973d5301f0cb3243eba99fc349 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Thu Mar 15 23:11:19 2012 -0700 - - xproto 7.0.23 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit ab1fba1a0967ac2289909c3f1a643f876a5dd393 -Author: Marko Myllynen <myllynen@redhat.com> -Date: Mon Feb 20 17:01:21 2012 +0200 - - x11proto: add permille, ezh, and EZH to keysymdef.h - - This patch adds the following mnemonic symbols: - - XK_permille for U+2030 PER MILLE SIGN - XK_EZH for U+01B7 LATIN CAPITAL LETTER EZH - XK_ezh for U+0292 LATIN SMALL LETTER EZH - - These are the last mnemonic symbols missing from the Finnish keyboard - layout. The characters are part of the Finnish standard, ezh is used - in Sami and permille sign is used commonly in Finland, probably in - other countries as well. - - https://bugs.freedesktop.org/show_bug.cgi?id=19687 - - Signed-off-by: Marko Myllynen <myllynen@redhat.com> - Reviewed-by: Matt Dew <marcoz@osource.org> - Signed-off-by: James Cloos <cloos@jhcloos.com> - -commit 67dd3bfe1ea20473944aec414d9f4b5eba196d8b -Author: Frédéric Boiteux <fboiteux@calistel.com> -Date: Wed Nov 30 07:46:54 2011 -0500 - - Definition of dead greek symbol - - Define a new dead greek symbol for use in Dvorak-like Bepo keyboard layout. - - FreeDesktop Bug 21475 <https://bugs.freedesktop.org/show_bug.cgi?id=21475> - - Signed-off-by: Frédéric Boiteux <fboiteux@calistel.com> - Signed-off-by: James Cloos <cloos@jhcloos.com> - -commit 4769a96385e0eb47550773abb00631af89977320 -Author: Matt Dew <marcoz@osource.org> -Date: Sun Jan 15 17:17:24 2012 -0700 - - informaltable cleanup - - On certain tables, add top and bottom borders to table - header and a bottom border to the table. This matches - what those tables in the old pdfs looked like. - - the <?dbfo keep-together='always'> prevents tables from - splitting across pages. Useful for tiny tables. - - Converting the colwidth to a floating point, - IE, 1* -> 1.0* cleans up these build errors: - WARNING: table-layout="fixed" and column-width unspecified - => falling back to proportional-column-width(1) - - Signed-off-by: Matt Dew <marcoz@osource.org> - -commit 7f26709e4bda1154287c27d57cb22465fa815380 -Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> -Date: Mon Nov 14 17:22:30 2011 -0600 - - Cygwin/X: Include <strings.h> early to avoid compile errors - - http://lists.x.org/archives/xorg-devel/2011-November/027117.html - - Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> - -commit 3d7be5c61b991a3b33526546acda2ab663cdc1d5 -Author: Matt Dew <marcoz@osource.org> -Date: Mon Oct 3 18:26:22 2011 -0600 - - 1 - fix the capitolization of the ID attriutes to match either the - <title> or <funcdef> string it goes with. - 2 - fix any <linkend>'s that were affected by 1. - 3 - any <function> in the docs that has an actual funcdef, - will become an olink. - - Signed-off-by: Matt Dew <marcoz@osource.org> - -commit f5d77f49dbd99d54324a6f1807b872d800abddf7 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Wed Sep 21 15:52:39 2011 -0400 - - x11proto spec: fix copyright markup - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 8cf26b29001b1fe87cce6b56433ffe7874c7e234 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Wed Sep 14 14:49:03 2011 -0400 - - spec: remove duplicate Copyright line - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit aefda8ec34ef64aef43015e6e31ea908da38c4c7 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Mon Sep 12 11:06:29 2011 -0400 - - docs: use the &fullrelvers; entity to set X11 release information - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit a4fca029b5ace31e56941970151c226e221e1dcf -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Sep 11 19:49:54 2011 -0400 - - docs: remove <productnumber> which is not used by default - - This element is not rendered by default on the title. A template - customization is required to display it. - X Window System does not have a product number. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit acd12d6096bad0d0e45b34f52ae92cc32f8ba7bf -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Thu Sep 8 20:00:00 2011 -0400 - - docbook.am: embed css styles inside the HTML HEAD element - - Rather than referring to the external xorg.css stylesheet, embed the content - of the file in the html output produced. This is accomplished by using - version 1.10 of xorg-xhtml.xsl. - - This makes the whole html docs tree much more relocatable. - In addition, it eliminates xorg.css as a runtime file which makes - xorg-sgml-doctools a build time only package. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit bd46f6d09c849335574ac84a0aa2de7c28daa552 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Wed Sep 7 10:31:04 2011 -0400 - - docbook.am: global maintenance update - entities, images and olinking - - Adding support in libX11 for html chunking caused a reorg of docbook.am - as well as the xorg-sgml-doctools masterdb for olinking. - The parameter img.src.path is added for pdf images. - A searchpath to the root builddir is added for local entities, if present. - - The docbook.am makefile hides all the details and is identical for - all 22 modules having DocBook documentation. It is included by a thin - Makefile.am which requires no docbook knowledge. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit c270f8bed465daff386967c5586eb3c8490b86e0 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Fri Aug 26 13:55:29 2011 -0700 - - Fix Xfuncproto.h to work when #included in a C89-mode compilation - - Variable argument macros are not supported in C89, only C99 or a - compiler-specific extension like gcc's. Even just defining the - macro causes builds with C89 compilers to fail, as they can't - figure out how to handle #define _X_NONNULL(...), so only define - the fallback for C99 compilers. - - Since this means C89 compilers will see _X_NONNULL unexpanded in - sources, add a comment to remind users that this should only be - used with #ifdef _X_NONNULL guards in public/exported API headers - we install for other software to compile against, so that we don't - break their builds. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Julien Cristau <jcristau@debian.org> - -commit 06ebd5b88bee8c54222bde3178dc773776036802 -Author: James Cloos <cloos@jhcloos.com> -Date: Wed Jun 29 09:24:51 2011 -0400 - - Add some keysyms to support Breton’s n-graphs. - - These keysyms are necessary for XIM to support single-keystroke - multiple-character keys on Breton C’HWERTY keyboards. - - Addresses: https://bugs.freedesktop.org/show_bug.cgi?id=34453 - - Signed-off-by: James Cloos <cloos@jhcloos.com> - Reviewed-by: Daniel Stone <daniel@fooishbar.org> - -commit 42c16165df536f74d1177eae2b94f96b3ebbdfb2 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 23 09:28:57 2011 +1000 - - xproto 7.0.22 - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 13799852a8b8116094a885809782604fa7507115 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 16 11:01:39 2011 +1000 - - Add two more symbols for logging grab and window trees - - These two keysyms provide exciting new possibilities of a close relationship - between our valued users and hard-working developers through innovative - logging solutions. Such keysyms truly pave new ground in the reponsiveness - to bug reports and and debug-ability of grabs. - - For unprecedented uses of these keysyms, see the patches here: - http://patchwork.freedesktop.org/patch/5936/ - http://patchwork.freedesktop.org/patch/5935/ - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - Reviewed-by: Daniel Stone <daniel@fooishbar.org> - -commit 7c3c4332d63d9003f7115173b7ece6ab1297cc15 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Jun 12 17:54:50 2011 -0400 - - Install xml versions of specs even if HAVE_XMLTO is false - - DocBook/XML input source is also a usefull output format that can be viewed - with an XML viewer or editor and by some O/S help system. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit c10589c12f45bfb8c0134d0370cf5f36ac7262bf -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Jun 5 16:27:37 2011 -0400 - - Install target dbs alongside generated documents - - This matches a change in xorg-sgml-docs whereby the masterdb will look for - the target dbs into the same location as the generated documents. - - The target dbs are now installed alongside the generated documents. - Previously they are installed in $prefix/sgml/X11/dbs alongside masterdb which - has the potential of installing outside the package prefix and cause - distcheck to fail when user does not have write permission in this package. - - Requires XORG_CHECK_SGML_DOCTOOLS(1.8) which was released 2011-06-11 - -commit 951295cceb72e929c55f639bbb91314fa276b2aa -Author: Cyril Brulebois <kibi@debian.org> -Date: Sun Jun 5 09:26:33 2011 +0000 - - Fix sorting by codepoint in Latin 2. - - Sort performed by calling “sort -k 3” on the part between #ifdef - XK_LATIN8 and #endif. - - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Signed-off-by: Cyril Brulebois <kibi@debian.org> - -commit d8920f71b68fe3fabd4ba04e2a4308579a8fe333 -Author: Cyril Brulebois <kibi@debian.org> -Date: Fri Jun 3 14:27:45 2011 +0200 - - build: Add SIAddresses as a subdir of specs. - - Fix the following distcheck failure: - | configure: creating ./config.status - | config.status: creating Makefile - | config.status: creating specs/Makefile - | config.status: error: cannot find input file: `specs/SIAddresses/Makefile.in' - | make: *** [distcheck] Error 1 - - Signed-off-by: Cyril Brulebois <kibi@debian.org> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 2ef6cb7ced5812975b3630cf201e75db439936e6 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 17:31:36 2011 -0700 - - spec: Add more indexterm & glossterm links - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 0ffb15d69844f1a653d51e29e0c6a1140cd52c3e -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 13:53:10 2011 -0700 - - spec: move id attributes for event definitions so fop can find them - - FOP gives 'Unresolved ID reference "events:FocusOut" found.' errors - when the id attribute is on the emphasis tag, so moved up to the - surrounding entry tag. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 41da11426e0ad420952fbd329527c2ae267e232b -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 13:39:37 2011 -0700 - - spec: Add zone attributes to indexterm tags for more stable link ids - - Use named id's instead of autogenerating idXXXXXX values that change - in different versions so that it's easier to have stable links. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 58897af838482f52abc8a70fc1e1d39c89736bfb -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 11:04:17 2011 -0700 - - spec: move > outside emphasis to match < in note after error list - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 19b35215c9cff167c62dabecef89e3d5f8df2853 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 10:56:36 2011 -0700 - - spec: Syntactic Conventions examples should not be separate list entries - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit e6ad4dd8d054caf6cd63575167db468929532089 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 09:54:07 2011 -0700 - - spec: Add cross-reference links in glossary to InputOnly & InputOutput - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 2fc4719ba4f122ce5604d693442fa041114526ac -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat May 28 09:43:04 2011 -0700 - - spec: Markup VoidSymbol and NoSymbol with <keysym> instead of <emphasis> - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 9bbb6e3f835219110ec0f7bd72ba7fa92974bae8 -Author: Cyril Brulebois <kibi@debian.org> -Date: Tue May 24 13:08:27 2011 +0200 - - Sort Latin 8 keysyms by codepoints. - - The overall chaos misled implementors into writing interval checks to - determine the case, but that doesn't work too well when lines aren't - sorted. - - Sort performed by calling “sort -k 3” on the part between #ifdef - XK_LATIN8 and #endif. - - Signed-off-by: Cyril Brulebois <kibi@debian.org> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit b283f6cba77987b215556f80b6b2f1da45672d8b -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Mon May 23 16:01:02 2011 -0700 - - Add comments to Xfuncproto.h noting required xproto versions for each macro - - Saves time trawling git logs to determine what to put in the call to - PKG_CHECK_MODULES in configure.ac when you start using one of these. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> - Acked-by: Cyril Brulebois <kibi@debian.org> - -commit 217d1dae0093ccaaac59a4fa42000e732492cb66 -Author: Jeremy Huddleston <jeremyhu@apple.com> -Date: Wed Apr 27 17:25:53 2011 -0700 - - Add _X_NONNULL macro to annotate when a function expects arguments to be non-null - - This will allow with compiler optimization and better static analysis. - - Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> - Reviewed-by: Daniel Stone <daniel@fooishbar.org> - -commit 6648db8f910fb74c100cf24436bf0df12cba7fd7 -Author: Jeremy Huddleston <jeremyhu@apple.com> -Date: Wed Apr 27 17:25:40 2011 -0700 - - Add _X_UNUSED attribute to designate unused variables and silence warnings - - Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> - Reviewed-by: Daniel Stone <daniel@fooishbar.org> - -commit 19c12c60c22d5a23039bc90845a6ecacdd64f2db -Author: Matthieu Herrb <matthieu.herrb@laas.fr> -Date: Wed Apr 20 22:57:05 2011 +0200 - - Fix __STDC_VERSION__ tests. - - the existing test: - defined(__STDC__) && (__STDC_VERSION__ - 0 >= 199901L) causes an - warning when building X stuff with gcc -Wundef. Other tests for - __STDC_VERSION__ in the X sources all use - defined(__STDC_VERSION__) && (__STDC_VERSION__ -0 >= 199901L) - - Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr> - Reviewed-by: Matt Turner <mattst88@gmail.com> - Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit da46c2d0e11c1709b7dd6b2c79253ce8751c81bb -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Feb 27 15:06:18 2011 -0500 - - Documentation: add Docbook external references support - - When writing technical documentation, it is often necessary to cross - reference to other information. When that other information is not in the - current document, additional support is needed, namely <olink>. - - A new feature with version 1.7 of xorg-sgml-doctools adds references to - other documents within or outside this package. - - This patch adds technical support for this feature but does not change - the content of the documentation as seen by the end user. - - Each book or article must generate a database containing the href - of sections that can be referred to from another document. This database - is installed in DATAROOTDIR/sgml/X11/dbs. There is a requirement that - the value of DATAROOTDIR for xorg-sgml-doctools and for the package - documentation is the same. This forms a virtual document tree. - - This database is consulted by other documents while they are being generated - in order to fulfill the missing information for linking. - Refer to the xorg-sgml-doctools for further technical information. - - Co-authored-by: Matt Dew <marcoz@osource.org> - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 452ae1076b4ad8ccd60e218a3676baa274c083ff -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed Mar 23 11:44:18 2011 +1000 - - xproto 7.0.21 - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 423f5faddbb1023d0c1cf55b9d1da4397aa1aa26 -Author: Harshula Jayasuriya <harshula@gmail.com> -Date: Tue Mar 15 10:46:48 2011 +0000 - - Add #defines for Unicode Sinhala to keysymdef.h - - Add #defines for Unicode Sinhala so that they can be used in the lk XKB - keyboard layout. - - Signed-off-by: Harshula Jayasuriya <harshula@gmail.com> - Reviewed-by: Daniel Stone <daniel@fooishbar.org> - -commit f0c5b701a5f8fe6be24229dea35c35b50afe8646 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Thu Feb 24 20:13:20 2011 -0800 - - Support _X_INLINE in any C99-compliant compiler - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 6eed63f7455d718bf6238ca2f24515329b2a3895 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Thu Jan 6 22:24:33 2011 -0800 - - Add missing notices to COPYING - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 1870ec9ce40e8852e1cdce473afa90d21d780e52 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Mon Dec 13 16:25:31 2010 -0800 - - Xfuncproto.h: Add _X_RESTRICT_KEYWORD for C99 & gcc in non-strict-C89 mode - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit e5604f04482350eb922a31ad4342aab91ab3b412 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Thu Dec 9 16:04:52 2010 -0800 - - Enable gcc attribute(__format__) on gcc versions older than 4.0 - - Enabled on 2.3 and up, since that's where it's available according to - http://www.ohse.de/uwe/articles/gcc-attributes.html#func-format - - Tested with gcc 3.4.3 on Solaris. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> - -commit cda6ce66caa01997b9dd32eb8689d6e746558369 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Wed Nov 3 00:04:22 2010 -0700 - - xproto 7.0.19 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 25bd19ee8587e2c00be7179cf809f4bd8e2a3bed -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Wed Nov 3 00:04:06 2010 -0700 - - README: Provide a small description - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit ce8b17064d38ec03527a51c2191674d56989807b -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sun Oct 31 15:35:52 2010 -0700 - - specs: Fix nesting of chapters included in sect1-9.xml - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 14acb707dbd1f49eb0e8e5bf4164f32c3209e030 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sun Oct 31 14:56:08 2010 -0700 - - specs: Move indexterms out of glossdef tags - - Try to avoid problems similar to those fixed in libX11 - commit 511c4f6d29b2da4f71093feabcbb3913cb5d12a7 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 0d44b3e4db593f3fb48835c9b39e23ef231efcb7 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sun Oct 31 14:51:55 2010 -0700 - - specs: Restore missing indexterms for request, type, error & event definitions - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit ea96e0e74fca3306c1320a5daf7fb9ff609b3c5a -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat Oct 30 20:01:25 2010 -0700 - - specs: Convert troff ``quotes'' to DocBook <quote>quotes</quote> - - perl -i -p -e 's{\`\`([^\047]+)\047\047}{<quote>$1</quote>}g' *.xml - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit d27f326c976d7da9ea43706bca1c3766f225ee6f -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat Oct 30 19:54:56 2010 -0700 - - specs: Convert .IN troff tags to <indexterm> DocBook Tags - - Many of the .IN tags seem to have been lost in translation before this. - - Converted those still in comments with: - - perl -i -p -e 's{\<\!-- \.IN "([^"]+)" "" "\@DEF\@" --\>}{<indexterm significance="preferred"><primary>$1</primary></indexterm>}' *.xml - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit 34b099b7b6e72ceaf8edcbf0ca351af410c3b2fb -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Sat Oct 30 19:26:10 2010 -0700 - - specs: Fix authorship section - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -commit c23cc9a4a728e5cccf685388f2e54eff31c3867f -Author: Matt Dew <matt@osource.org> -Date: Tue Aug 17 20:49:44 2010 -0400 - - specs: convert protocol .ms from xorg-docs to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit cb020b302c1ebb9477cd5b4adae8677597269733 -Author: Adam Jackson <ajax@redhat.com> -Date: Tue Aug 10 10:20:01 2010 -0400 - - xproto 7.0.18 - - Signed-off-by: Adam Jackson <ajax@redhat.com> - -commit d14e0d02507dd873f43b1122c468a52ed5b295c1 -Author: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Mon May 17 20:57:27 2010 -0700 - - Add Sun cc 5.9 & later to compilers supporting noreturn attribute - - Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> - Reviewed-by: Adam Jackson <ajax@redhat.com> - -commit 9ffca704438993516016671e9a7f67c5ca21f142 -Author: Julien Cristau <jcristau@debian.org> -Date: Sat May 15 17:43:32 2010 +0200 - - xproto 7.0.17 - - Signed-off-by: Julien Cristau <jcristau@debian.org> - -commit 81c3cc1ce1f163de91d33bfa1b335f8b4d309c13 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Mar 28 19:25:52 2010 -0400 - - config: update AC_PREREQ statement to 2.60 - - Unrelated to the previous patches, the new value simply reflects - the reality that the minimum level for autoconf to configure - all x.org modules is 2.60 dated June 2006. - - ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 1f442cdd1c26fa10e654ef2e957e24c2306abb11 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Mar 28 19:00:31 2010 -0400 - - config: remove the pkgconfig pc.in file from EXTRA_DIST - - Automake always includes it in the tarball. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 1511eb6065c103149b7ce59b4cc0aa538449cf80 -Author: Jeremy Huddleston <jeremyhu@apple.com> -Date: Sat Mar 27 19:42:59 2010 -0700 - - Add _X_NORETURN macro to signify functions that don't return - - Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> - Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit e7d73aec46f2ebc21e8b80378c3647b69f098b9a -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sat Mar 27 16:38:27 2010 -0400 - - config: remove execute permission on configuration file - - Introduced in commit c879dab58f82f4789f27933c22706c84015f8684 - "avoid checking for fds_bits on mingw" - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit bf25d06799da98c3df655d8a734fe98c98bf143e -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Fri Jan 15 13:31:40 2010 -0800 - - Update Sun license notices to current X.Org standard form - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit d02f4b124489016f43478ac2ca2fbb2d0253ba02 -Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> -Date: Tue Oct 13 16:51:14 2009 -0500 - - xproto: Cygwin GCC does not support visibility attributes - - Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - Acked-by: Peter Hutterer <peter.hutterer@who-t.net> - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit ec13f2cc5af936aafc3a483f441c44aa5ed14fe3 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 22 19:24:48 2009 -0500 - - Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES - - Now that the INSTALL file is generated. - Allows running make maintainer-clean. - -commit 45135e80f1e1f8818159f7d80372a77df0537738 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Mon Nov 16 11:13:30 2009 -0500 - - README: file created or updated #24206 - - Contains a set of URLs to freedesktop.org. - -commit cdd22487f12f7058404759bd138ada421debc93a -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 19:45:27 2009 -0500 - - Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432 - - ChangeLog filename is known to Automake and requires no further - coding in the makefile. - -commit b99b992915dd19914c9464d9a96278d2cc2ceeeb -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 18:31:29 2009 -0500 - - Makefile.am: INSTALL file is missing or incorrect #24206 - - The standard GNU file on building/installing tarball is copied - using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS - Add INSTALL target - -commit caea0fd5a966a74465d965ecab89f4829dced157 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 18:11:36 2009 -0500 - - configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242 - - This macro aggregate a number of existing macros that sets commmon - X.Org components configuration options. It shields the configuration file from - future changes. - -commit f1b1d45cd955f24a338af098ebd6a181b1454b38 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sat Nov 14 20:47:09 2009 -0500 - - configure.ac: AM_MAINTAINER_MODE missing #24238 - - This turns off maintainer mode build rules in tarballs. - Works in conjunction with autogen.sh --enable-maintainer-mode - -commit 78947b5a7e0ef934fdce7e1bce734d2cf29639b4 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sat Nov 14 18:26:47 2009 -0500 - - .gitignore: use common defaults with custom section # 24239 - - Using common defaults will reduce errors and maintenance. - Only the very small or inexistent custom section need periodic maintenance - when the structure of the component changes. Do not edit defaults. - -commit 3ec82cd722407e4dccd6165786d3452f3ab80bea -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Fri Oct 2 10:46:06 2009 +1000 - - Add XF86XK_TouchpadToggle - - Many laptops provide a key to enable or disable the touchpad and the - trackstick. On Lenovo T61s, this key is located on Fn + F8. - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 4253e208088d166a8666f673360ef69a3c86f8b0 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Wed Sep 23 17:04:09 2009 -0700 - - xproto 7.0.16 - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 05914c82696432126a72845dd061c7f5e24963c5 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Wed Sep 23 17:00:18 2009 -0700 - - Don't need an #ifdef when both cases just include the same file - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit ef37625372546efb32cdb37823b9927cf16b0840 -Author: Jon TURNEY <jon.turney@dronecode.org.uk> -Date: Wed Jun 17 15:28:54 2009 +0100 - - Restore macro definition of sleep(), needed by Xming - - Removed in error by commit 1defe6b37c23941fe2a67ad4fa66e8ab5f37f9b3 - - Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> - -commit e9df99b12ef9fefdbc1c05ff51bddffe723051e9 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Sun Jun 14 09:54:58 2009 -0700 - - Drop #ifdef USG checks for some truly ancient (pre-SVR4) SysV's - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 385c1343f7e0782b89e40fa17e378bc1f75ce62e -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Sun Jun 14 09:43:53 2009 -0700 - - Get rid of unneeded && clause in list of LP64 ifdefs in Xmd.h - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 5aaec3c7a583354a07ec765327fd0edd6216981f -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Sun Jun 14 09:33:16 2009 -0700 - - Drop support for SunOS 4 and Solaris releases older than 2.5 (1995) - - Includes changing remaining sun ifdef's to check for standard-conformant / - non-namespace-polluting #ifdef __sun instead of older #ifdef sun. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 5bad478221c54c0dbf682ef2569f6ca5ac050049 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Sun Jun 14 09:10:06 2009 -0700 - - Use indentation to provide a map through the twisty maze of ifdefs, all alike - - git diff -w shows no changes other than whitespace in this patch - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 1f59b5f8eac522bb0a5155393224496c39deca42 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Sun Jun 14 08:31:13 2009 -0700 - - Removing dangling #else block from X_NOT_STDC_ENV removal - - Fixes mass damage caused by ced38e880b54f2aae31a5354aecb4235a129f0a4 - moving the includes for unistd.h, fcntl.h, etc. from the else for - X_NOT_STDC_ENV into the #else for #ifndef _XOS_H_, which made them - go away for everyone. - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 4435ea3d806f5b9cd66b563a6b751ac5020404e3 -Author: Adam Jackson <ajax@redhat.com> -Date: Fri Jun 12 12:41:57 2009 -0400 - - Use ## catenation not /**/ - -commit 74d18e89a3a315ae9ee4fb3efcaf515abd339b1d -Author: Adam Jackson <ajax@redhat.com> -Date: Fri Jun 12 12:39:06 2009 -0400 - - __STDC__ is always defined in C89. - -commit bab9c572cd4dc916ff0acab99de8bb526212d77f -Author: Adam Jackson <ajax@redhat.com> -Date: Fri Jun 12 12:33:22 2009 -0400 - - Remove a bunch of garbage for unsupported platforms. - -commit ced38e880b54f2aae31a5354aecb4235a129f0a4 -Author: Adam Jackson <ajax@redhat.com> -Date: Fri Jun 12 11:55:37 2009 -0400 - - Remove all trace of X_NOT_STDC_ENV (#6527) - - Seriously C89 already you guys. - -commit 3fc87608d4b3f85d0dbd44ee9040d5ab60130bea -Author: Adam Jackson <ajax@redhat.com> -Date: Fri Jun 12 11:43:45 2009 -0400 - - Death to RCS tags. - -commit a2a0f01d367050ca182927b8219deb581a497c2c -Author: Jeremy Huddleston <jeremyhu@freedesktop.org> -Date: Tue Jun 9 00:47:25 2009 -0700 - - Apple: Only define _DARWIN_C_SOURCE if it isn't already defined - -commit 1defe6b37c23941fe2a67ad4fa66e8ab5f37f9b3 -Author: Jon TURNEY <jon.turney@dronecode.org.uk> -Date: Fri Jun 5 18:04:58 2009 +0100 - - Cygwin/X: Don't destroy min/max macros in Xwindows.h - - Now that macros named min/max rather than MIN/MAX are used consistently in the - X server, we need to ensure they work for Xwin builds. Change Xwindows.h from - simply destroying any definition of min/max, to avoiding defining them but - allowing any pre-existing definition to stand. - - Also, try to improve the comment describing why this madness is needed in the - first place, and remove a no-longer needed macro definition of sleep() - -commit 32d14e349964c5b16e83eda902d9724aac380b59 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Thu Mar 5 15:12:26 2009 -0800 - - Remove #ifdef macII code left over from ancient A/UX 3.0 support - - Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> - -commit 034319189648eaaa483f9546c62451edb7be0c28 -Author: James Cloos <cloos@jhcloos.com> -Date: Mon Mar 2 12:54:41 2009 -0500 - - Bump to 7.0.15. - -commit 391f302a7d71b9169ce4c18794251ea3ccc95904 -Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> -Date: Tue Jan 27 20:06:28 2009 -0200 - - Janitor: Correct make distcheck and dont distribute autogen.sh - -commit 1e33337d4dd151da4f0898a86608a1ee67588163 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Mon Oct 27 16:36:34 2008 +1030 - - Add XF86XK_Suspend and XF86XK_Hibernate keysym defs. - - At the moment, we have the following keysyms defined to put a computer into a - sleep state: - - XF86XK_Standby 0x1008FF10 /* System into standby mode */ - XF86XK_PowerDown 0x1008FF21 /* Deep sleep the system */ - XF86XK_Sleep 0x1008FF2F /* Put system to sleep */ - - Proposed change by Richard Hughes: - "The nomenclature I've been trying to make stick - (most projects now use this) for a few years now is: - - standby: high sleep state, nobody uses this any more - hibernate: sleep to disk - slow, but can remove power - suspend: sleep to ram - fast, but can't remove power - hybrid sleep: sleep to both, slow, and can remove power, but quick to - resume if you don't - most users don't use this" - - This patch adds XF86XK_Suspend and XF86XK_Hibernate. The behaviour of - XF86XK_Sleep can then be configured on a per-session basis. - - Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com> - -commit 2563153ed69d3d6f052ba275ff79df3cbe54b76d -Author: James Cloos <cloos@jhcloos.com> -Date: Tue Nov 11 16:26:28 2008 -0500 - - [keysymdef.h] Add dead_currency symbol. - - As requested for the Bépo keyboard layout (http://clavier-dvorak.org/wiki/). - - Cf. bugs: - - http://bugs.freedesktop.org/show_bug.cgi?id=17821 - http://bugs.freedesktop.org/show_bug.cgi?id=17822 - -commit 735d745e17a6180f569f24f9792513b44e100aef -Author: James Cloos <cloos@jhcloos.com> -Date: Mon Oct 13 03:11:33 2008 -0400 - - Add a dead_belowcomma keysym - - Requested by the Bépo group. - - The belowcomma is only used for: - - U+0218 [Ș] LATIN CAPITAL LETTER S WITH COMMA BELOW - U+0219 [ș] LATIN SMALL LETTER S WITH COMMA BELOW - U+021A [Ț] LATIN CAPITAL LETTER T WITH COMMA BELOW - U+021B [ț] LATIN SMALL LETTER T WITH COMMA BELOW - - (aka 0xAA, 0xBA, 0xDE and 0xFE from iso-8859-16). - - Cf: http://bugs.freedesktop.org/show_bug.cgi?id=17822 - http://bugs.freedesktop.org/show_bug.cgi?id=17821 - http://clavier-dvorak.org/wiki/ - -commit 935dd37be409bd616ef46a4d3b62c44327b3f710 -Author: Sayamindu Dasgupta <sayamindu@gmail.com> -Date: Mon Oct 13 03:00:53 2008 -0400 - - Add dead vowels in keysymdef.h - - At OLPC, we are using an XKB based Amharic keyboard layout, which requires the - use of dead vowels to generate the various consonant + vowel combinations (see - http://en.wikipedia.org/wiki/Ge%27ez_alphabet#Syllable_signs for a detailed - explanation). - - [Patch modified to use available keysym codes. -JimC] - - Cf: http://bugs.freedesktop.org/show_bug.cgi?id=17437 - - Signed-off-by: James Cloos <cloos@jhcloos.com> - -commit c43f804f44ba3d751f343c2e27d9b491a1ebb458 -Author: James Cloos <cloos@jhcloos.com> -Date: Wed Sep 17 04:09:39 2008 -0400 - - Add dead keysyms for DOUBLE GRAVE and INVERTED BREVE accents - - Several COMBINING characters are used in libX11's Compose tables - where dead keys should be used; these are the two most-used which - so far have not had equivalent dead keys. - -commit 33a7de5cdacb59503b26c6523ffb33dba118faed -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Thu Oct 23 22:41:01 2008 +1030 - - Bump to 7.0.14. - -commit 1cf41088ff751e60071a519466b5a51b65c7626a -Author: Bastien Nocera <bnocera@redhat.com> -Date: Wed Oct 15 14:20:45 2008 +1030 - - Keysyms needed for some HID remote controls to work under X. #16519 - - In particular, this enables Sony Ericsson phones and PS3 BD remotes. - - X.Org Bug 16519 <https://bugs.freedesktop.org/show_bug.cgi?id=16519> - - Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com> - -commit 0b541b3fa282531c97c6ecee574c8b92b1489bfc -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Tue Oct 14 21:56:14 2008 +1030 - - Fix typos in comments (UP/DOWN TACK and LEFT/RIGHT TACK wrong way round). - - Spotted by Erik Streb and Julien Cristau. - - Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com> - -commit c94477f16356790741ebc139d2d0b15d79c83e28 -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Tue Oct 14 21:54:16 2008 +1030 - - Revert "Fix typos in comments (UP/DOWN TACK and LEFT/RIGHT TACK wrong way round)." - - Codepoints should have moved with the comments. See next commit for correct - patch. - - This reverts commit 2945d2f97c264783e4050a8f6c3016290014b9e2. - -commit 2945d2f97c264783e4050a8f6c3016290014b9e2 -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Tue Oct 14 21:04:08 2008 +1030 - - Fix typos in comments (UP/DOWN TACK and LEFT/RIGHT TACK wrong way round). - - Spotted by Erik Streb. - - Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com> - -commit 610eb9698316b7cdfe378ce7776c4520f8b061ff -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Mon Oct 13 12:01:16 2008 +1030 - - Add keysyms for XF86XK_Battery, XF86XK_Bluetooth, XF86XK_WLAN, XF86XK_UWB. - -commit 0846d7adfe790897e879c5ed53d4f81db459a20d -Author: James Cloos <cloos@jhcloos.com> -Date: Sun Jul 13 17:57:09 2008 -0400 - - Add dead_perispomeni to keysymdef.h - - Make the dead_perispomeni keysym an alias to dead_tilde - (which is currently used for entering characters with - perispomeni). - - Cf: https://bugs.freedesktop.org/show_bug.cgi?id=14013 - -commit 38edd9839fa8495602378af36c67b2477b24eca2 -Author: James Cloos <cloos@jhcloos.com> -Date: Sun Jul 13 17:54:47 2008 -0400 - - fix typo in commit 40ed4eef - -commit 53859ee4e431c21000e282971894dbe9384ed205 -Author: Peter Hutterer <peter@cs.unisa.edu.au> -Date: Wed May 28 17:17:38 2008 +0930 - - Bump to 7.0.13. - -commit 44e458285bb2e7771963a9ab9b5f03d2fb48e611 -Author: Peter Hutterer <peter@cs.unisa.edu.au> -Date: Tue May 15 16:41:08 2007 +0930 - - Add GenericEvent and xGenericEvent definitions. - (cherry picked from commit 8a96cdca08db2563e8c4c7c9a110a3ab6d973fcc) - -commit 22878c30d21580146200c00070478f88d969bcaa -Author: Jeremy Huddleston <jeremyhu@freedesktop.org> -Date: Thu May 8 15:02:41 2008 -0700 - - Apple: Added a comment to explain _DARWIN_C_SOURCE - -commit e3035a7e6e56e01eb79478ea5342e032ec67a190 -Author: Jeremy Huddleston <jeremyhu@freedesktop.org> -Date: Thu May 8 12:16:15 2008 -0700 - - Apple: Define _DARWIN_C_SOURCE otherwise _XOPEN_SOURCE, _POSIX_SOURCE, or _POSIX_C_SOURCE will cause fd_mask to not be defined due to the strict namespace - -commit 05b119d78e1c6a4db563b2a976cee0173489f9b6 -Author: Jeremy Huddleston <jeremyhu@freedesktop.org> -Date: Thu May 8 11:36:03 2008 -0700 - - Apple: Cleaned up some Apple definitions - -commit c879dab58f82f4789f27933c22706c84015f8684 -Author: Alan Hourihane <alanh@tungstengraphics.com> -Date: Tue Apr 29 00:37:28 2008 +0100 - - avoid checking for fds_bits on mingw - -commit 8642ec676db0dd875f4d3a97d8a3cdbf6843a985 -Author: Colin Harrison <colin.harrison-at-virgin.net> -Date: Sat Apr 26 18:21:41 2008 +0100 - - Use Sleep() instead of sleep() on windows - - (was already done in Xwindows.h, just not Xw32defs.h) - -commit a893a6ac5d9fdfe9a420d1812402a01904e6482b -Author: Colin Harrison <colin.harrison-at-virgin.net> -Date: Sat Apr 26 08:52:29 2008 +0100 - - Use winsock2.h - -commit c705bab0f6efcb6937b7ccc2fb415e701878fddb -Author: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> -Date: Mon Apr 21 21:27:26 2008 +0100 - - Added comment to slightly discourage the definition of ever more Unicode keysyms - -commit 44e24a27bca023cf7b799f191fe6d52e12efbe5f -Author: James Cloos <cloos@jhcloos.com> -Date: Sat Apr 12 15:48:46 2008 -0400 - - Add more dead key syms - Add dead keys to support input of the precomposed latin characters in - ISO 10747 which have ring, line, circumflex, tilde, breve or diaeresis - below. - - This addresses: https://bugs.freedesktop.org/show_bug.cgi?id=15446 - -commit 07e83988ec0b1c9577646daca3943badd5dcc0d1 -Author: James Cloos <cloos@jhcloos.com> -Date: Thu Mar 6 11:34:17 2008 -0500 - - Fix typo in XF86Keysym.h - - Fix typo reported in https://bugs.freedesktop.org/show_bug.cgi?id=11193 - thereby making XF86Keysym.h match libX11’s XKeysymDB. - -commit d34310efef11264ddff79320b8c6f03705b1208a -Author: Adam Jackson <ajax@redhat.com> -Date: Wed Mar 5 22:09:16 2008 -0500 - - x11proto 7.0.12 - -commit e4ad7a8080e4ac0b868fa7cf39bc5ad9a6e0bee1 -Author: Jeremy Huddleston <jeremy@tifa.local> -Date: Sun Feb 10 19:07:49 2008 -0800 - - Fixed #ifdef checks that were using i386 to use __i386__ - - """ - It's simply obsolete, sloppy, compiler namespace pollution. The - compiler is not allowed to predefine symbols that might conflict with - ordinary identifiers. For backwards compatibility gcc currently - predefines i386 when compiling for x86 32-bit (but not 64-bit), but that - will go away. It is also not defined if you specify -ansi when invoking - the compiler, because then it is seriously standards compliant. Other - compilers shouldn't define it either. Correct code shouldn't rely on it - being defined. However __i386__ is safe and proper. - """ - -commit e49280c1c33622dbf288b0ac4f8324b01ff9b4aa -Author: Jeremy Huddleston <jeremy@yuffie.local> -Date: Mon Dec 10 21:33:01 2007 -0800 - - Changed __DARWIN__ to __APPLE__ - -commit 5ae4d304ecb5fb4af0435c9f2efde3d2da5905d1 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Tue Oct 30 18:44:49 2007 -0700 - - Make Xalloca.h work with Sun C++ compiler - -commit 5ccc71161283fdb2c42da1eeb4049650f6a2f429 -Author: Ben Byer <bbyer@bbyer.apple.com> -Date: Tue Oct 30 18:40:47 2007 -0700 - - fd_mask needs to be defined on OS X, too - -commit 8be48ca399c3efd0e5d59f53da1b37d02647f33b -Author: Daniel Stone <daniel@fooishbar.org> -Date: Mon Sep 24 12:28:25 2007 +0300 - - Check headers before testing for fds_bits access method (bug #8442) - - HP-UX doesn't have sys/select.h, so make sure we don't overzealously include - headers when we try to find out how to use fds_bits. - -commit 68e841fb4bf489531635e6bee70f041d2c3cb87c -Author: James Cloos <cloos@jhcloos.com> -Date: Sat Sep 8 08:30:17 2007 -0400 - - bump to 7.0.11 - -commit 11fd082a384499c38065e06065bf80f244e9909a -Author: Eric Anholt <eric@anholt.net> -Date: Tue Aug 28 14:54:44 2007 -0700 - - Describe what XF86XK_Display does (or now is meant to do). - -commit 40ed4eef92e31fcf7ea0a436e1a00cdf49484c1b -Author: James Cloos <cloos@jhcloos.com> -Date: Wed Aug 22 21:10:47 2007 -0400 - - Add dead_abovecomma and dead_abovereversedcomma - - Also added aliases dead_psili and dead_dasia. - - The UCS unifies Combining Psili and Combining Dasia with - Combining Comma Above and Combining Reversed Comma Above. - These two aliases mirror that unification. - -commit ab74d270c76b17926504815ba43ee35b8b18d3be -Author: James Cloos <cloos@jhcloos.com> -Date: Wed Aug 22 21:01:48 2007 -0400 - - Comment on the new locations of the files referenced in keysymdef.h - keysymdef.h has a comment from the monolithic days suggesting that - the file be kept in sync with mappings inxc/lib/X11/KeyBind.c and - the protocol specication in xc/doc/specs/XProtocol/X11.keysyms. - - This commit adds pointers to the new locations of those two files. - -commit 1edcfdb7f5c51e5c8014c56c4d5937337b7d4302 -Author: James Cloos <cloos@jhcloos.com> -Date: Tue Aug 21 00:10:08 2007 -0400 - - Add *~ to .gitignore to skip patch/emacs droppings - -commit d8a49874bbd05a927c42102c0c5c147cf72cb1dd -Author: Colin Harrison <colin.harrison-at-virgin.net> -Date: Wed May 9 16:46:25 2007 +0100 - - bcopy needs definition in Xfuncs.h for Xming - -commit 7505880329d6b81f0c77d6aaa3995390659d5c63 -Author: Tilman Sauerbeck <tilman@code-monkey.de> -Date: Tue May 1 14:54:27 2007 +0200 - - Added some more files to .gitignore. - -commit 0c55a57dca2e888ba089e280f62e1c5bb55db7d7 -Author: Tilman Sauerbeck <tilman@code-monkey.de> -Date: Tue May 1 14:52:57 2007 +0200 - - Enable GCC's visibility attributes on GCC 4 or greater only. - -commit 30f5eedf800f6683161fca9fc3e2d6ddc9ce0ac3 -Author: Zephaniah E. Hull <warp@agamemnon.b5> -Date: Fri Feb 2 15:11:26 2007 -0500 - - Add keysym definitions from Jim Gettys. - -commit 5951f0355c6b1c591241bccb2023e6c4d493e701 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Sat Dec 16 01:09:50 2006 +0200 - - bump to 7.0.10 - -commit 0422755ef9373fbb6f69fbb599d791331837f747 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Sat Dec 16 01:09:44 2006 +0200 - - don't distribute Xfuncproto.h and Xpoll.h - Don't distribute these two files, as they're generated during the build. - -commit cf44526713681ccfb6ef929a9c25ea650c5d1a32 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Wed Dec 6 19:02:19 2006 +0200 - - Makefile.am: make ChangeLog hook safer - Make ChangeLog hook as safe as possible. - -commit 528e313fd1f1ae6f2303d3963afe41545f55ef88 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Oct 26 00:45:44 2006 +0300 - - bump to 7.0.9 - -commit ab484c934301a61edc66dc1e4f554ec97b53aaf8 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Oct 26 00:45:36 2006 +0300 - - Xfuncproto: add _X_LIKELY and _X_UNLIKELY - Add gcc branch hinting annotations. - -commit 178cae180bc8b2e8feaaeda6d7c0317cf2715e14 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Sep 21 18:43:06 2006 +0300 - - Xfuncproto: define _X_INLINE for older compilers - -commit 241e9dfd400aa21919d06fb7c78b5730eee12aab -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Sep 21 14:51:00 2006 +0300 - - bump to 7.0.8 - -commit e51b21e316a5a1b9442a5d972b4ffa03455aca6e -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Sep 21 14:50:45 2006 +0300 - - XF86keysym: add keyboard/monitor brightness controls (Bug #8120) - Add XF86{Kbd,Mon}Brightness{Up,Down}, and XF86KbdLightOnOff. - -commit c3f56593f776e7f9e3e0d220c6bcf8be38a16839 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Wed Sep 20 21:11:30 2006 +0300 - - Xfuncproto: add _X_INLINE - -commit 4fb2e257ae6de38971be8005283402226aea1ee5 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Fri Jul 14 17:59:19 2006 -0700 - - Replace manual ChangeLog with dist-hook to generate from git log - -commit 2153ef4b7c2a93cba39ae08352ea2c46e5f0eefb -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Fri Jul 14 17:54:38 2006 -0700 - - renamed: .cvsignore -> .gitignore - -commit 0b76eb310307cd16e55d0c0792b54a2c6774fb88 -Author: Dan McNichol <mcnichol@austin.ibm.com> -Date: Fri Jul 14 17:53:34 2006 -0700 - - Bug #7458: AIX changes to Xmd.h - - Bugzilla Bug #7458 <https://bugs.freedesktop.org/show_bug.cgi?id=7458> - Patch #6179 <https://bugs.freedesktop.org/attachment.cgi?id=6179> - -commit bb7584b5c88236c59c4e3040bc7c28c150abf048 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Sat Jun 10 15:33:50 2006 +0000 - - Add ISO_Level5_{Shift,Latch,Lock}. - -commit e9aebeae3661d4c464c7aa53722d0a6bf915101a -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Jun 1 23:31:20 2006 +0000 - - Bug #6887: Add dead_stroke, bump to 7.0.7. (Troy Korjuslommi) - -commit f3886640d29026359ffc4add39b66b8ff48472d3 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Jun 1 23:00:34 2006 +0000 - - Bump to 7.0.6. - -commit d10d0302be37adb22804270926332e9d701935bb -Author: Daniel Stone <daniel@fooishbar.org> -Date: Thu Jun 1 23:00:03 2006 +0000 - - Bug #6296: Add support for Braille. (Samuel Thibault) - -commit 0471bfcce2787d2f1ff0fc2d019840e2bae8bc49 -Author: Adam Jackson <ajax@nwnk.net> -Date: Wed Apr 26 23:26:49 2006 +0000 - - Bump to 7.0.5 - -commit 2a2b6db1f78f94c8f3690f675f0c032401fb2541 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Wed Apr 26 00:00:02 2006 +0000 - - Fix more comment typos. - -commit 33cea539618d58d64efb6a5c0465d14a471256cd -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Thu Apr 20 01:24:25 2006 +0000 - - On Solaris, #include <sys/isa_defs.h> to be sure _LP64 is defined in 64-bit - builds. - Fix some comment typos. - -commit 5e7d5cbf21c33f883ab508a51422775f59c4da00 -Author: Kevin E Martin <kem@kem.org> -Date: Thu Dec 15 00:24:39 2005 +0000 - - Update package version number for final X11R7 release candidate. - -commit 1827a78f3a23c77dbcddfc8227d85c5add59d819 -Author: Kevin E Martin <kem@kem.org> -Date: Sat Dec 3 05:49:47 2005 +0000 - - Update package version number for X11R7 RC3 release. - -commit 45811c86eb34e9f09e7d807ba4633107513f0d52 -Author: Kevin E Martin <kem@kem.org> -Date: Sat Dec 3 01:13:36 2005 +0000 - - Automatically generate FUNCPROTO and NARROWPROTO defines in Xfuncproto.h. - -commit c03cc7739b37ca504a2b56a73945755c41c68b2a -Author: Eric Anholt <anholt@freebsd.org> -Date: Mon Nov 21 10:51:15 2005 +0000 - - Ignore Xpoll.h, which is generated now. - -commit 54c8ddf303053fb398e00fc8a35df712a7f3d47d -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Mon Nov 21 02:47:21 2005 +0000 - - Change values of XK_MATHEMATICAL symbols to use 0x1000000 + Unicode value, - as Xorg Architecture Task Force agreed last year should be done for all - new keysyms mapped to Unicode characters. - -commit f13eca1bc0feba2476f87e019a4ef40693a61ed8 -Author: Kevin E Martin <kem@kem.org> -Date: Wed Nov 9 21:20:33 2005 +0000 - - Update package version number for X11R7 RC2 release. - -commit 448763bde4a31cb012ad17cd6c5159411102432b -Author: Kean Johnson <kean@armory.com> -Date: Tue Nov 8 06:33:25 2005 +0000 - - See ChangeLog entry 2005-11-07 for details. - -commit 59a5a5ebb6781d417d7a4d5905999da5fc76a083 -Author: Kevin E Martin <kem@kem.org> -Date: Wed Oct 19 02:48:15 2005 +0000 - - Update package version number for RC1 release. - -commit 3f74cc5e8309b2a4ac7671ca3c52c304ec5aa57f -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Sat Oct 15 00:48:27 2005 +0000 - - Remove duplicate keysyms accidentally added to XK_MATHEMATICAL section. - -commit eaffdc0d593b94d9036033911535371e73698573 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Sun Oct 9 15:37:29 2005 +0000 - - Bug #4688: Add various mathematical keysyms (all Unicode). - -commit 40b6e64fb1084f7b0270c279ac7132e52886c912 -Author: Matthieu Herrb <matthieu.herrb@laas.fr> -Date: Sun Aug 21 15:27:27 2005 +0000 - - define CSRG_BASED here on systems that used to define it in Imake - configuration. For use in the modular tree. - -commit 04f9f7fd17cab16e5b0b135409011c0d284b002c -Author: Eric Anholt <anholt@freebsd.org> -Date: Tue Aug 2 19:19:40 2005 +0000 - - Add basic .cvsignore files for proto modules. - -commit cd0400eeda5d7818232844d93343877ef0ff8168 -Author: Adam Jackson <ajax@nwnk.net> -Date: Tue Aug 2 18:36:30 2005 +0000 - - Fix the fds_bits test on OSX and maybe others. OSX defines fd_set in - <sys/types.h> just to be perverse. - -commit a475adb523a4d24cd53d436ba8c98ac7c8d37934 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Sat Jul 30 21:07:25 2005 +0000 - - Add prototypes of Xalloc/free functions. - Export ImUtil.h to match modular tree install. - Define SVR4 to 1 to avoid warning about redefining to different values. - Include missing headers to clear more compiler warnings. - -commit f6bd2288d3630ff7cb864e54cc7ebab1b3069067 -Author: Kevin E Martin <kem@kem.org> -Date: Fri Jul 29 21:22:57 2005 +0000 - - Various changes preparing packages for RC0: - - Verify and update package version numbers as needed - - Implement versioning scheme - - Change bug address to point to bugzilla bug entry form - - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to - reenable it) - - Fix makedepend to use pkgconfig and pass distcheck - - Update build script to build macros first - - Update modular Xorg version - -commit 74a3f7f77830e4417a4bc4145114030dfaef6f4e -Author: Daniel Stone <daniel@fooishbar.org> -Date: Sat Jul 23 02:53:32 2005 +0000 - - Remove all _XOPEN_SOURCE definitions from Xos.h, as Xpoll.h.in now deals - with this by using which of fds_bits or __fds_bits we have. - -commit f97e34e65e403140dde00d260be0fd7f853ac8f0 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Fri Jul 22 08:01:39 2005 +0000 - - Add includex11dir as a path to the includes, sans X11/. - Turn Xpoll.h into a generated file. In the modular tree, substitute in - whichever of fds_bits or __fds_bits is being used for the member of - fd_set on the system; in the monolithic tree, substitute in fds_bits - unconditionally, as that's the way it was before thanks to - _XOPEN_SOURCE being defined. - -commit 7a9ce57163172557d6ba41119a5a3b2837dbbc8e -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Sat Jul 16 20:54:13 2005 +0000 - - Guard INCLUDE_ALLOCA_H define to end redefinition warnings. - -commit 825b6ae347b3896b8ea38e6021170d45ae3bfd65 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Thu Jul 14 22:08:38 2005 +0000 - - Don't define _XOPEN_SOURCE on SVR4, because it will REMOVE required - definitions. - -commit acc0551fb1af1152c1b630ff5e82f023f11751e2 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Wed Jul 13 23:43:08 2005 +0000 - - #define INCLUDE_ALLOCA_H when building with Sun compilers. (Imake *.cf - files define this for a number of platforms in the monolith, but these - will need to be translated into #ifdef's or similar mechanism to work - in a world without Imake.) - -commit b8301067b6e962a3dc786dd909726b7e6cb81085 -Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> -Date: Wed Jul 13 20:12:13 2005 +0000 - - include <X11/Xwindows.h> instead of <windows.h>. Several namespace - conflicts are worked around in Xwindows.h - -commit ec7a156bcdbe8e4bddf232d4a03f47d426096736 -Author: Keith Packard <keithp@keithp.com> -Date: Wed Jul 13 07:23:56 2005 +0000 - - Make some minor source adjustments so that we don not need to use - -D_XOPEN_SOURCE -D_BSD_SOURCE everywhere as this will leak out of the - modular environment and into application build processes, potentially - foulling up their compiles. - -commit 2a0445903d06c332acf70cfd18ba57ddbbeada32 -Author: Daniel Stone <daniel@fooishbar.org> -Date: Sun Jul 3 07:55:00 2005 +0000 - - Move misc.h and os.h from proto/X11 to xserver/xorg/include. - -commit ef6f542053b30af29b8045ffa6ce26386aab7bba -Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> -Date: Tue Jun 28 13:15:27 2005 +0000 - - - Remove xfixes.pc.in from lib/lbxutil - - Add missing backslash in proto/X11/Makefile.am - Both pointed out by ISHIKAWA Mutsumi - -commit 4cf89be7baf8a79d2d399abd17c4e23279cca364 -Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> -Date: Mon Jun 27 17:41:09 2005 +0000 - - - Add os.h and misc.h to proto/X11 - - In symlink.sh move os.h and misc.h from xserver/include to proto/X11 - - in xc/lib/lbxutil/ do some include-with-<>-instead-of-with-"" - -commit e575c5104a8627428dd18c4040d4ad787655164a -Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> -Date: Wed May 25 22:12:21 2005 +0000 - - - Use XTRANS_CONNECTION_FLAGS macro in lib/FS/configure.ac - - Don't symlink transport.c, which is a generated file - - instead add a new file fs_transport.c that include Xtrans/X11/transport.c - -commit 207e3f82011d5f83db0eca318a1de50f0c1da0dc -Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> -Date: Wed May 25 21:47:56 2005 +0000 - - - Add FSlib to symlink.sh - - Change Xtrans includedir back to be X11/Xtrans, so that users of it can - continue to include <X11/*> - - Add build system for FSlib - - Conditionally include config.h in xc/lib/FS - - Remove redundant include of FSproto.h in xc/lib/FS - - Add check to proto/X11/configure.ac whether -D_XOPEN_SOURCE is needed. - -commit a5a4bfe9b432e7d8238f9a02d80be4ce6bb64978 -Author: Josh Triplett <josh@speakeasy.net> -Date: Mon May 23 01:22:10 2005 +0000 - - The macros in Xpoll.h poke at the guts of struct fd_set in ways that only - work if _XOPEN_SOURCE is defined, so define it in Cflags in the - pkg-config file. - -commit 2f4c3aa871a047359f8121e6401be1ba4cf0b8e0 -Author: Adam Jackson <ajax@nwnk.net> -Date: Thu May 19 00:22:40 2005 +0000 - - revert last change, didn't do right thing at all, sorry for the noise - -commit 4809dd9150599a9e88f64cd1b82737872b7b1b94 -Author: Adam Jackson <ajax@nwnk.net> -Date: Thu May 19 00:10:19 2005 +0000 - - Require automake 1.7 in AM_INIT_AUTOMAKE - -commit 6ff17c33f0773e152122d66cbaffaa54e53e086c -Author: Josh Triplett <josh@speakeasy.net> -Date: Sat May 14 07:56:49 2005 +0000 - - Add AUTHORS file for X11 from xlibs tree. - -commit 3f8b0ba6071dcdd62ea424cab0bddb39db2ebe6a -Author: Josh Triplett <josh@speakeasy.net> -Date: Sat May 14 07:55:10 2005 +0000 - - Add some COPYING files. - -commit 803c8ecaba2f8c703bbb46c0d740bfa349ce0245 -Author: Kevin E Martin <kem@kem.org> -Date: Fri May 6 01:46:31 2005 +0000 - - Initial build system files for proto module. - -commit a870c60741273ebd6cb1e69b4e535ce3a6bc76bf -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Thu Apr 28 22:04:12 2005 +0000 - - Don't define X_NOT_STDC_ENV on Solaris x86. Bugzilla #3158: - https://bugs.freedesktop.org/show_bug.cgi?id=3158 Patch #2588: - https://bugs.freedesktop.org/attachment.cgi?id=2588 (Henry Zhao, Sun - Microsystems) - -commit 372f37171ba3875ea4bf7f60150d92869e06010f -Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> -Date: Wed Apr 20 13:58:17 2005 +0000 - - check for define PATH_MAX before referencing it - -commit e489ec65b4b2ab0a050d8dbf7ec0658e6decb8b3 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Wed Mar 2 19:29:31 2005 +0000 - - Patch #2007 <https://bugs.freedesktop.org/attachment.cgi?id=2007> - 1) Fix Solaris #ifdefs to choose between UI/SVR4 (early POSIX draft) and - POSIX standard thread API's correctly. - 2) Fix calls to POSIX standard versions to check errors correctly. (POSIX - defines a return value of 0 on success, errno value on error, but the - macros were checking for -1 on error.) - -commit d761e87224d3e60c5355ac3e3468835fc3b4be92 -Author: Roland Mainz <roland.mainz@nrubsig.org> -Date: Wed Mar 2 11:20:29 2005 +0000 - - xc/config/cf/DragonFly.cf - xc/config/cf/Imake.cf - xc/config/cf/Imakefile - xc/config/imake/imake.c - xc/config/imake/imakemdep.h - xc/extras/drm/shared/drm.h - xc/include/Xos_r.h - xc/lib/xtrans/Xtranssock.c - xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h - xc/programs/Xserver/hw/xfree86/os-support/xf86_libc.h - xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c - //bugs.freedesktop.org/show_bug.cgi?id=1712) attachment #2004 - (https://bugs.freedesktop.org/attachment.cgi?id=2004): Add support for - DragonFly/BSD platform. Patch by Jeroen Ruigrok <asmodai@tendra.org> - and Mike Verona <firedragonfly@gmail.com>. - -commit 1cae0cb4b1442b34d76ee5623fb2a17ed2353c50 -Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> -Date: Sun Jan 9 15:06:04 2005 +0000 - - Make sure PATH_MAX is at least 1024 - -commit 9df4ffce552a0f6eca47764a3f79b466629e8bab -Author: Egbert Eich <eich@suse.de> -Date: Mon Jan 3 18:03:49 2005 +0000 - - gcc 4 doesn't like predeffines line 'linux' any more. To muffle the - compiler replace them with __linux__ (Bugzilla #2207). - -commit dd82af84ed67f439444e75ea1d032c082e15db51 -Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de> -Date: Mon Nov 15 15:06:53 2004 +0000 - - Bufzilla #1802, http://freedesktop.org/bugzilla/show_bug.cgi?id=1802 Added - mingw (Win32) port - -commit 618956f1f783a8c330aab8eac425937f0b8e50e1 -Author: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> -Date: Sun Sep 26 20:46:18 2004 +0000 - - The big keysym cleanup, to bring implementation in line with the recent - revision of Appendix A of the protocol spec. (Markus Kuhn) - -commit 7cb1490d8932d745b3a5e2b3370a000da064306f -Author: Kevin E Martin <kem@kem.org> -Date: Wed Aug 11 21:14:16 2004 +0000 - - Apply PPC64 build patch (Bug #303, Mike A. Harris, Alan Coopersmith). - -commit 5b67de2bce0e33a4a85439ebcf7b726a6da24545 -Author: Egbert Eich <eich@suse.de> -Date: Fri Apr 23 18:43:05 2004 +0000 - - Merging XORG-CURRENT into trunk - -commit e88a09c1df46637979c4d131a8e41af923ff4d45 -Author: Egbert Eich <eich@suse.de> -Date: Sun Mar 14 08:31:34 2004 +0000 - - Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004 - -commit 9259b43390c50d330f557390cc4576f5315c3f53 -Author: Egbert Eich <eich@suse.de> -Date: Wed Mar 3 12:10:53 2004 +0000 - - Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004 - -commit 99bbbc3fcaf67b02a50e4ff4007225b1b64beb36 -Author: Egbert Eich <eich@suse.de> -Date: Thu Feb 26 13:35:11 2004 +0000 - - readding XFree86's cvs IDs - -commit 82d7bb39bc84eb16134e931263f53bc88d1788ac -Author: Egbert Eich <eich@suse.de> -Date: Thu Feb 26 09:22:24 2004 +0000 - - Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004 - -commit 0700ff31a84abc06fdf4b05c2328ff2329dc909c -Author: Egbert Eich <eich@suse.de> -Date: Thu Jan 29 08:07:54 2004 +0000 - - Importing vendor version xf86-012804-2330 on Thu Jan 29 00:06:33 PST 2004 - -commit ad76b5cc436937d9fb945bd43d9356651fe182ca -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Fri Dec 19 20:54:20 2003 +0000 - - XFree86 4.3.99.902 (RC 2) - -commit 376f9efdab6ef2dce267caa0a0228892e768e390 -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Tue Nov 25 19:28:01 2003 +0000 - - XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks - -commit 5ec315b967cb1ae519f514896f0b48fb5407f863 -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Fri Nov 14 16:48:42 2003 +0000 - - XFree86 4.3.0.1 - -commit f2001f5bd5316842106a98b23f09400688575fa3 -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Fri Nov 14 16:48:42 2003 +0000 - - Initial revision - -commit ee0a1a43dc707f960e637fdf2118723e4de0a55d -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Fri Nov 14 15:54:35 2003 +0000 - - R6.6 is the Xorg base-line diff --git a/proto/x11proto/DECkeysym.h b/proto/x11proto/DECkeysym.h deleted file mode 100644 index 07307169d..000000000 --- a/proto/x11proto/DECkeysym.h +++ /dev/null @@ -1,65 +0,0 @@ -/*********************************************************** - -Copyright 1988, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1988 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -/* - * DEC private keysyms - * (29th bit set) - */ - -/* two-key compose sequence initiators, chosen to map to Latin1 characters */ - -#define DXK_ring_accent 0x1000FEB0 -#define DXK_circumflex_accent 0x1000FE5E -#define DXK_cedilla_accent 0x1000FE2C -#define DXK_acute_accent 0x1000FE27 -#define DXK_grave_accent 0x1000FE60 -#define DXK_tilde 0x1000FE7E -#define DXK_diaeresis 0x1000FE22 - -/* special keysym for LK2** "Remove" key on editing keypad */ - -#define DXK_Remove 0x1000FF00 /* Remove */ diff --git a/proto/x11proto/HPkeysym.h b/proto/x11proto/HPkeysym.h deleted file mode 100644 index 4a0655a23..000000000 --- a/proto/x11proto/HPkeysym.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 OPEN GROUP 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 name of The Open Group 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 Open Group. - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the names of Hewlett Packard -or Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD -TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. Hewlett-Packard shall not be liable for errors -contained herein or direct, indirect, special, incidental or -consequential damages in connection with the furnishing, -performance, or use of this material. - -*/ - -#ifndef _HPKEYSYM_H - -#define _HPKEYSYM_H - -#define hpXK_ClearLine 0x1000FF6F -#define hpXK_InsertLine 0x1000FF70 -#define hpXK_DeleteLine 0x1000FF71 -#define hpXK_InsertChar 0x1000FF72 -#define hpXK_DeleteChar 0x1000FF73 -#define hpXK_BackTab 0x1000FF74 -#define hpXK_KP_BackTab 0x1000FF75 -#define hpXK_Modelock1 0x1000FF48 -#define hpXK_Modelock2 0x1000FF49 -#define hpXK_Reset 0x1000FF6C -#define hpXK_System 0x1000FF6D -#define hpXK_User 0x1000FF6E -#define hpXK_mute_acute 0x100000A8 -#define hpXK_mute_grave 0x100000A9 -#define hpXK_mute_asciicircum 0x100000AA -#define hpXK_mute_diaeresis 0x100000AB -#define hpXK_mute_asciitilde 0x100000AC -#define hpXK_lira 0x100000AF -#define hpXK_guilder 0x100000BE -#define hpXK_Ydiaeresis 0x100000EE -#define hpXK_IO 0x100000EE -#define hpXK_longminus 0x100000F6 -#define hpXK_block 0x100000FC - - -#ifndef _OSF_Keysyms -#define _OSF_Keysyms - -#define osfXK_Copy 0x1004FF02 -#define osfXK_Cut 0x1004FF03 -#define osfXK_Paste 0x1004FF04 -#define osfXK_BackTab 0x1004FF07 -#define osfXK_BackSpace 0x1004FF08 -#define osfXK_Clear 0x1004FF0B -#define osfXK_Escape 0x1004FF1B -#define osfXK_AddMode 0x1004FF31 -#define osfXK_PrimaryPaste 0x1004FF32 -#define osfXK_QuickPaste 0x1004FF33 -#define osfXK_PageLeft 0x1004FF40 -#define osfXK_PageUp 0x1004FF41 -#define osfXK_PageDown 0x1004FF42 -#define osfXK_PageRight 0x1004FF43 -#define osfXK_Activate 0x1004FF44 -#define osfXK_MenuBar 0x1004FF45 -#define osfXK_Left 0x1004FF51 -#define osfXK_Up 0x1004FF52 -#define osfXK_Right 0x1004FF53 -#define osfXK_Down 0x1004FF54 -#define osfXK_EndLine 0x1004FF57 -#define osfXK_BeginLine 0x1004FF58 -#define osfXK_EndData 0x1004FF59 -#define osfXK_BeginData 0x1004FF5A -#define osfXK_PrevMenu 0x1004FF5B -#define osfXK_NextMenu 0x1004FF5C -#define osfXK_PrevField 0x1004FF5D -#define osfXK_NextField 0x1004FF5E -#define osfXK_Select 0x1004FF60 -#define osfXK_Insert 0x1004FF63 -#define osfXK_Undo 0x1004FF65 -#define osfXK_Menu 0x1004FF67 -#define osfXK_Cancel 0x1004FF69 -#define osfXK_Help 0x1004FF6A -#define osfXK_SelectAll 0x1004FF71 -#define osfXK_DeselectAll 0x1004FF72 -#define osfXK_Reselect 0x1004FF73 -#define osfXK_Extend 0x1004FF74 -#define osfXK_Restore 0x1004FF78 -#define osfXK_Delete 0x1004FFFF - -#endif /* _OSF_Keysyms */ - - -/************************************************************** - * The use of the following macros is deprecated. - * They are listed below only for backwards compatibility. - */ -#define XK_Reset 0x1000FF6C -#define XK_System 0x1000FF6D -#define XK_User 0x1000FF6E -#define XK_ClearLine 0x1000FF6F -#define XK_InsertLine 0x1000FF70 -#define XK_DeleteLine 0x1000FF71 -#define XK_InsertChar 0x1000FF72 -#define XK_DeleteChar 0x1000FF73 -#define XK_BackTab 0x1000FF74 -#define XK_KP_BackTab 0x1000FF75 -#define XK_Ext16bit_L 0x1000FF76 -#define XK_Ext16bit_R 0x1000FF77 -#define XK_mute_acute 0x100000a8 -#define XK_mute_grave 0x100000a9 -#define XK_mute_asciicircum 0x100000aa -#define XK_mute_diaeresis 0x100000ab -#define XK_mute_asciitilde 0x100000ac -#define XK_lira 0x100000af -#define XK_guilder 0x100000be -#ifndef XK_Ydiaeresis -#define XK_Ydiaeresis 0x100000ee -#endif -#define XK_IO 0x100000ee -#define XK_longminus 0x100000f6 -#define XK_block 0x100000fc - -#endif /* _HPKEYSYM_H */ diff --git a/proto/x11proto/INSTALL b/proto/x11proto/INSTALL deleted file mode 100644 index 8b82ade08..000000000 --- a/proto/x11proto/INSTALL +++ /dev/null @@ -1,291 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008 Free Software Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. - - 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 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. - - Running `configure' might take a while. 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. - - 6. Often, you can also type `make uninstall' to remove the installed - files again. - -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=c99 CFLAGS=-g 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 can use 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 `..'. - - With a non-GNU `make', it is safer 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. - - On MacOS X 10.5 and later systems, you can create libraries and -executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like -this: - - ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" - - This is not guaranteed to produce working output in all cases, you -may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. - -Installation Names -================== - - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' 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. - -Particular systems -================== - - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in -order to use an ANSI C compiler: - - ./configure CC="cc -Ae" - -and if that doesn't work, install pre-built binaries of GCC for HP-UX. - - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `<wchar.h>' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try - - ./configure CC="cc" - -and if that doesn't work, try - - ./configure CC="cc -nodtk" - -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 option `--target=TYPE' 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 - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: - - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. - -`--help=short' -`--help=recursive' - Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. - -`--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. - -`--prefix=DIR' - Use DIR as the installation prefix. *Note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. - -`--no-create' -`-n' - Run the configure checks, but stop before creating any output - files. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/proto/x11proto/Makefile b/proto/x11proto/Makefile deleted file mode 100644 index 408a2ced5..000000000 --- a/proto/x11proto/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# $OpenBSD: Makefile,v 1.3 2012/04/08 09:46:58 matthieu Exp $ - -HEADERS_SUBDIR= X11/ -HEADERS= ap_keysym.h DECkeysym.h HPkeysym.h keysymdef.h keysym.h \ - Sunkeysym.h Xalloca.h Xarch.h Xatom.h Xdefs.h XF86keysym.h \ - Xfuncs.h X.h Xmd.h Xosdefs.h Xos.h Xos_r.h Xproto.h \ - Xprotostr.h Xthreads.h Xw32defs.h XWDFile.h Xwindows.h \ - Xwinsock.h -GENERATED_HEADERS= Xfuncproto.h Xpoll.h -PKGCONFIG= xproto.pc -SIADDRESSES= IPv6.txt README hostname.txt localuser.txt -SPECS= encoding.xml glossary.xml keysyms.xml \ - sect1-9.xml x11protocol.xml - -all: ${GENERATED_HEADERS} - -Xfuncproto.h: Xfuncproto.h.in - @sed -e 's,^#undef NARROWPROTO,#define NARROWPROTO,' \ - -e 's,^#undef FUNCPROTO,#define FUNCPROTO 15,' \ - ${.CURDIR}/Xfuncproto.h.in > $@ - -Xpoll.h: Xpoll.h.in - @sed -e 's#@USE_FDS_BITS@#fds_bits#g' ${.CURDIR}/Xpoll.h.in > $@ - -install-gh: ${GENERATED_HEADERS} - @echo installing ${GENERATED_HEADERS} in ${INCSDIR}/${HEADERS_SUBDIR} - @for i in ${GENERATED_HEADERS}; do \ - cmp -s $$i ${DESTDIR}${INCSDIR}/$$i || \ - ${INSTALL_DATA} $$i ${DESTDIR}${INCSDIR}/${HEADERS_SUBDIR}$$i;\ - done - -afterinstall: - @for i in ${SPECS}; do \ - echo installing $$i in ${X11BASE}/share/doc/x11proto; \ - ${INSTALL_DATA} ${.CURDIR}/specs/$$i \ - ${DESTDIR}${X11BASE}/share/doc/x11proto;\ - done - @for i in ${SIADDRESSES}; do \ - echo installing $$i in ${X11BASE}/share/doc/x11proto/SIAddresses; \ - ${INSTALL_DATA} ${.CURDIR}/specs/SIAddresses/$$i \ - ${DESTDIR}${X11BASE}/share/doc/x11proto/SIAddresses;\ - done - -clean-gh: - rm -f ${GENERATED_HEADERS} - -realinstall: install-gh - -clean: clean-gh - -.include <bsd.xorg.mk> diff --git a/proto/x11proto/Makefile.am b/proto/x11proto/Makefile.am deleted file mode 100644 index e9b30cf3b..000000000 --- a/proto/x11proto/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -SUBDIRS=specs - -xprotodir = $(includedir)/X11 -xproto_HEADERS = \ - ap_keysym.h \ - DECkeysym.h \ - HPkeysym.h \ - keysymdef.h \ - keysym.h \ - Sunkeysym.h \ - Xalloca.h \ - Xarch.h \ - Xatom.h \ - Xdefs.h \ - XF86keysym.h \ - Xfuncs.h \ - X.h \ - Xmd.h \ - Xosdefs.h \ - Xos.h \ - Xos_r.h \ - Xproto.h \ - Xprotostr.h \ - Xthreads.h \ - Xw32defs.h \ - XWDFile.h \ - Xwindows.h \ - Xwinsock.h - -nodist_xproto_HEADERS = \ - Xfuncproto.h \ - Xpoll.h - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = xproto.pc - - -MAINTAINERCLEANFILES = ChangeLog INSTALL - -.PHONY: ChangeLog INSTALL - -INSTALL: - $(INSTALL_CMD) - -ChangeLog: - $(CHANGELOG_CMD) - -dist-hook: ChangeLog INSTALL - diff --git a/proto/x11proto/Makefile.in b/proto/x11proto/Makefile.in deleted file mode 100644 index 94e80c2d8..000000000 --- a/proto/x11proto/Makefile.in +++ /dev/null @@ -1,603 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/Xfuncproto.h.in \ - $(srcdir)/Xpoll.h.in $(srcdir)/do-not-use-config.h.in \ - $(srcdir)/xproto.pc.in $(top_srcdir)/configure \ - $(xproto_HEADERS) AUTHORS COPYING ChangeLog config.guess \ - config.sub install-sh missing -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(install_sh) -d -CONFIG_HEADER = do-not-use-config.h Xfuncproto.h -CONFIG_CLEAN_FILES = Xpoll.h xproto.pc -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(xprotodir)" \ - "$(DESTDIR)$(xprotodir)" -pkgconfigDATA_INSTALL = $(INSTALL_DATA) -DATA = $(pkgconfig_DATA) -nodist_xprotoHEADERS_INSTALL = $(INSTALL_HEADER) -xprotoHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(nodist_xproto_HEADERS) $(xproto_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EXEEXT = @EXEEXT@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_FDS_BITS = @USE_FDS_BITS@ -VERSION = @VERSION@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -xprotodir = $(includedir)/X11 -xproto_HEADERS = \ - ap_keysym.h \ - DECkeysym.h \ - HPkeysym.h \ - keysymdef.h \ - keysym.h \ - Sunkeysym.h \ - Xalloca.h \ - Xarch.h \ - Xatom.h \ - Xdefs.h \ - XF86keysym.h \ - Xfuncs.h \ - X.h \ - Xmd.h \ - Xosdefs.h \ - Xos.h \ - Xos_r.h \ - Xproto.h \ - Xprotostr.h \ - Xthreads.h \ - Xw32defs.h \ - XWDFile.h \ - Xwindows.h \ - Xwinsock.h - -nodist_xproto_HEADERS = \ - Xfuncproto.h \ - Xpoll.h - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = xproto.pc -EXTRA_DIST = autogen.sh xproto.pc.in ChangeLog -CLEANFILES = ChangeLog -all: do-not-use-config.h Xfuncproto.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -am--refresh: - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -do-not-use-config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/do-not-use-config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status do-not-use-config.h -$(srcdir)/do-not-use-config.h.in: $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ - -Xfuncproto.h: stamp-h2 - @if test ! -f $@; then \ - rm -f stamp-h2; \ - $(MAKE) stamp-h2; \ - else :; fi - -stamp-h2: $(srcdir)/Xfuncproto.h.in $(top_builddir)/config.status - @rm -f stamp-h2 - cd $(top_builddir) && $(SHELL) ./config.status Xfuncproto.h - -distclean-hdr: - -rm -f do-not-use-config.h stamp-h1 Xfuncproto.h stamp-h2 -Xpoll.h: $(top_builddir)/config.status $(srcdir)/Xpoll.h.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -xproto.pc: $(top_builddir)/config.status $(srcdir)/xproto.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -uninstall-info-am: -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ - $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ - rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ - done -install-nodist_xprotoHEADERS: $(nodist_xproto_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(xprotodir)" || $(mkdir_p) "$(DESTDIR)$(xprotodir)" - @list='$(nodist_xproto_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(nodist_xprotoHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xprotodir)/$$f'"; \ - $(nodist_xprotoHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xprotodir)/$$f"; \ - done - -uninstall-nodist_xprotoHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nodist_xproto_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(xprotodir)/$$f'"; \ - rm -f "$(DESTDIR)$(xprotodir)/$$f"; \ - done -install-xprotoHEADERS: $(xproto_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(xprotodir)" || $(mkdir_p) "$(DESTDIR)$(xprotodir)" - @list='$(xproto_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(xprotoHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xprotodir)/$$f'"; \ - $(xprotoHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xprotodir)/$$f"; \ - done - -uninstall-xprotoHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(xproto_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(xprotodir)/$$f'"; \ - rm -f "$(DESTDIR)$(xprotodir)/$$f"; \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in Xfuncproto.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) do-not-use-config.h.in Xfuncproto.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in Xfuncproto.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) do-not-use-config.h.in Xfuncproto.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - $(mkdir_p) $(distdir)/. - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-am -all-am: Makefile $(DATA) $(HEADERS) do-not-use-config.h Xfuncproto.h -installdirs: - for dir in "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(xprotodir)" "$(DESTDIR)$(xprotodir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-nodist_xprotoHEADERS install-pkgconfigDATA \ - install-xprotoHEADERS - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am uninstall-nodist_xprotoHEADERS \ - uninstall-pkgconfigDATA uninstall-xprotoHEADERS - -.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ - clean-generic ctags dist dist-all dist-bzip2 dist-gzip \ - dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \ - distclean-generic distclean-hdr distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-exec install-exec-am install-info install-info-am \ - install-man install-nodist_xprotoHEADERS install-pkgconfigDATA \ - install-strip install-xprotoHEADERS installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \ - uninstall-nodist_xprotoHEADERS uninstall-pkgconfigDATA \ - uninstall-xprotoHEADERS - - -.PHONY: ChangeLog - -ChangeLog: - (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) - -dist-hook: ChangeLog -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/proto/x11proto/README b/proto/x11proto/README deleted file mode 100644 index 436f07b24..000000000 --- a/proto/x11proto/README +++ /dev/null @@ -1,32 +0,0 @@ - X Window System Core Protocol - -This package provides the headers and specification documents defining -the X Window System Core Protocol, Version 11. - -It also includes a number of headers that aren't purely protocol related, -but are depended upon by many other X Window System packages to provide -common definitions and porting layer. - -All questions regarding this software should be directed at the -Xorg mailing list: - - http://lists.freedesktop.org/mailman/listinfo/xorg - -Please submit bug reports to the Xorg bugzilla: - - https://bugs.freedesktop.org/enter_bug.cgi?product=xorg - -The master development code repository can be found at: - - git://anongit.freedesktop.org/git/xorg/proto/x11proto - - http://cgit.freedesktop.org/xorg/proto/x11proto - -For patch submission instructions, see: - - http://www.x.org/wiki/Development/Documentation/SubmittingPatches - -For more information on the git code manager, see: - - http://wiki.x.org/wiki/GitPage - diff --git a/proto/x11proto/Sunkeysym.h b/proto/x11proto/Sunkeysym.h deleted file mode 100644 index 78d1286bb..000000000 --- a/proto/x11proto/Sunkeysym.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 1991, Oracle and/or its affiliates. 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 (including the next - * paragraph) 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 OR COPYRIGHT HOLDERS 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. - */ -/************************************************************ - -Copyright 1991, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - -***********************************************************/ - -/* - * Floating Accent - */ - -#define SunXK_FA_Grave 0x1005FF00 -#define SunXK_FA_Circum 0x1005FF01 -#define SunXK_FA_Tilde 0x1005FF02 -#define SunXK_FA_Acute 0x1005FF03 -#define SunXK_FA_Diaeresis 0x1005FF04 -#define SunXK_FA_Cedilla 0x1005FF05 - -/* - * Miscellaneous Functions - */ - -#define SunXK_F36 0x1005FF10 /* Labeled F11 */ -#define SunXK_F37 0x1005FF11 /* Labeled F12 */ - -#define SunXK_Sys_Req 0x1005FF60 -#define SunXK_Print_Screen 0x0000FF61 /* Same as XK_Print */ - -/* - * International & Multi-Key Character Composition - */ - -#define SunXK_Compose 0x0000FF20 /* Same as XK_Multi_key */ -#define SunXK_AltGraph 0x0000FF7E /* Same as XK_Mode_switch */ - -/* - * Cursor Control - */ - -#define SunXK_PageUp 0x0000FF55 /* Same as XK_Prior */ -#define SunXK_PageDown 0x0000FF56 /* Same as XK_Next */ - -/* - * Open Look Functions - */ - -#define SunXK_Undo 0x0000FF65 /* Same as XK_Undo */ -#define SunXK_Again 0x0000FF66 /* Same as XK_Redo */ -#define SunXK_Find 0x0000FF68 /* Same as XK_Find */ -#define SunXK_Stop 0x0000FF69 /* Same as XK_Cancel */ -#define SunXK_Props 0x1005FF70 -#define SunXK_Front 0x1005FF71 -#define SunXK_Copy 0x1005FF72 -#define SunXK_Open 0x1005FF73 -#define SunXK_Paste 0x1005FF74 -#define SunXK_Cut 0x1005FF75 - -#define SunXK_PowerSwitch 0x1005FF76 -#define SunXK_AudioLowerVolume 0x1005FF77 -#define SunXK_AudioMute 0x1005FF78 -#define SunXK_AudioRaiseVolume 0x1005FF79 -#define SunXK_VideoDegauss 0x1005FF7A -#define SunXK_VideoLowerBrightness 0x1005FF7B -#define SunXK_VideoRaiseBrightness 0x1005FF7C -#define SunXK_PowerSwitchShift 0x1005FF7D diff --git a/proto/x11proto/X.h b/proto/x11proto/X.h deleted file mode 100644 index 5cf695d7b..000000000 --- a/proto/x11proto/X.h +++ /dev/null @@ -1,717 +0,0 @@ -/* Definitions for the X window system likely to be used by applications */ - -#ifndef X_H -#define X_H - -/*********************************************************** - -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -#define X_PROTOCOL 11 /* current protocol version */ -#define X_PROTOCOL_REVISION 0 /* current minor version */ - -/* Resources */ - -/* - * _XSERVER64 must ONLY be defined when compiling X server sources on - * systems where unsigned long is not 32 bits, must NOT be used in - * client or library code. - */ -#ifndef _XSERVER64 -# ifndef _XTYPEDEF_XID -# define _XTYPEDEF_XID -typedef unsigned long XID; -# endif -# ifndef _XTYPEDEF_MASK -# define _XTYPEDEF_MASK -typedef unsigned long Mask; -# endif -# ifndef _XTYPEDEF_ATOM -# define _XTYPEDEF_ATOM -typedef unsigned long Atom; /* Also in Xdefs.h */ -# endif -typedef unsigned long VisualID; -typedef unsigned long Time; -#else -# include <X11/Xmd.h> -# ifndef _XTYPEDEF_XID -# define _XTYPEDEF_XID -typedef CARD32 XID; -# endif -# ifndef _XTYPEDEF_MASK -# define _XTYPEDEF_MASK -typedef CARD32 Mask; -# endif -# ifndef _XTYPEDEF_ATOM -# define _XTYPEDEF_ATOM -typedef CARD32 Atom; -# endif -typedef CARD32 VisualID; -typedef CARD32 Time; -#endif - -typedef XID Window; -typedef XID Drawable; -#ifndef _XTYPEDEF_FONT -# define _XTYPEDEF_FONT -typedef XID Font; -#endif -typedef XID Pixmap; -typedef XID Cursor; -typedef XID Colormap; -typedef XID GContext; -typedef XID KeySym; - -typedef unsigned char KeyCode; - -/***************************************************************** - * RESERVED RESOURCE AND CONSTANT DEFINITIONS - *****************************************************************/ - -#ifndef None -#define None 0L /* universal null resource or null atom */ -#endif - -#define ParentRelative 1L /* background pixmap in CreateWindow - and ChangeWindowAttributes */ - -#define CopyFromParent 0L /* border pixmap in CreateWindow - and ChangeWindowAttributes - special VisualID and special window - class passed to CreateWindow */ - -#define PointerWindow 0L /* destination window in SendEvent */ -#define InputFocus 1L /* destination window in SendEvent */ - -#define PointerRoot 1L /* focus window in SetInputFocus */ - -#define AnyPropertyType 0L /* special Atom, passed to GetProperty */ - -#define AnyKey 0L /* special Key Code, passed to GrabKey */ - -#define AnyButton 0L /* special Button Code, passed to GrabButton */ - -#define AllTemporary 0L /* special Resource ID passed to KillClient */ - -#define CurrentTime 0L /* special Time */ - -#define NoSymbol 0L /* special KeySym */ - -/***************************************************************** - * EVENT DEFINITIONS - *****************************************************************/ - -/* Input Event Masks. Used as event-mask window attribute and as arguments - to Grab requests. Not to be confused with event names. */ - -#define NoEventMask 0L -#define KeyPressMask (1L<<0) -#define KeyReleaseMask (1L<<1) -#define ButtonPressMask (1L<<2) -#define ButtonReleaseMask (1L<<3) -#define EnterWindowMask (1L<<4) -#define LeaveWindowMask (1L<<5) -#define PointerMotionMask (1L<<6) -#define PointerMotionHintMask (1L<<7) -#define Button1MotionMask (1L<<8) -#define Button2MotionMask (1L<<9) -#define Button3MotionMask (1L<<10) -#define Button4MotionMask (1L<<11) -#define Button5MotionMask (1L<<12) -#define ButtonMotionMask (1L<<13) -#define KeymapStateMask (1L<<14) -#define ExposureMask (1L<<15) -#define VisibilityChangeMask (1L<<16) -#define StructureNotifyMask (1L<<17) -#define ResizeRedirectMask (1L<<18) -#define SubstructureNotifyMask (1L<<19) -#define SubstructureRedirectMask (1L<<20) -#define FocusChangeMask (1L<<21) -#define PropertyChangeMask (1L<<22) -#define ColormapChangeMask (1L<<23) -#define OwnerGrabButtonMask (1L<<24) - -/* Event names. Used in "type" field in XEvent structures. Not to be -confused with event masks above. They start from 2 because 0 and 1 -are reserved in the protocol for errors and replies. */ - -#define KeyPress 2 -#define KeyRelease 3 -#define ButtonPress 4 -#define ButtonRelease 5 -#define MotionNotify 6 -#define EnterNotify 7 -#define LeaveNotify 8 -#define FocusIn 9 -#define FocusOut 10 -#define KeymapNotify 11 -#define Expose 12 -#define GraphicsExpose 13 -#define NoExpose 14 -#define VisibilityNotify 15 -#define CreateNotify 16 -#define DestroyNotify 17 -#define UnmapNotify 18 -#define MapNotify 19 -#define MapRequest 20 -#define ReparentNotify 21 -#define ConfigureNotify 22 -#define ConfigureRequest 23 -#define GravityNotify 24 -#define ResizeRequest 25 -#define CirculateNotify 26 -#define CirculateRequest 27 -#define PropertyNotify 28 -#define SelectionClear 29 -#define SelectionRequest 30 -#define SelectionNotify 31 -#define ColormapNotify 32 -#define ClientMessage 33 -#define MappingNotify 34 -#define GenericEvent 35 -#define LASTEvent 36 /* must be bigger than any event # */ - - -/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer, - state in various key-, mouse-, and button-related events. */ - -#define ShiftMask (1<<0) -#define LockMask (1<<1) -#define ControlMask (1<<2) -#define Mod1Mask (1<<3) -#define Mod2Mask (1<<4) -#define Mod3Mask (1<<5) -#define Mod4Mask (1<<6) -#define Mod5Mask (1<<7) - -/* modifier names. Used to build a SetModifierMapping request or - to read a GetModifierMapping request. These correspond to the - masks defined above. */ -#define ShiftMapIndex 0 -#define LockMapIndex 1 -#define ControlMapIndex 2 -#define Mod1MapIndex 3 -#define Mod2MapIndex 4 -#define Mod3MapIndex 5 -#define Mod4MapIndex 6 -#define Mod5MapIndex 7 - - -/* button masks. Used in same manner as Key masks above. Not to be confused - with button names below. */ - -#define Button1Mask (1<<8) -#define Button2Mask (1<<9) -#define Button3Mask (1<<10) -#define Button4Mask (1<<11) -#define Button5Mask (1<<12) - -#define AnyModifier (1<<15) /* used in GrabButton, GrabKey */ - - -/* button names. Used as arguments to GrabButton and as detail in ButtonPress - and ButtonRelease events. Not to be confused with button masks above. - Note that 0 is already defined above as "AnyButton". */ - -#define Button1 1 -#define Button2 2 -#define Button3 3 -#define Button4 4 -#define Button5 5 - -/* Notify modes */ - -#define NotifyNormal 0 -#define NotifyGrab 1 -#define NotifyUngrab 2 -#define NotifyWhileGrabbed 3 - -#define NotifyHint 1 /* for MotionNotify events */ - -/* Notify detail */ - -#define NotifyAncestor 0 -#define NotifyVirtual 1 -#define NotifyInferior 2 -#define NotifyNonlinear 3 -#define NotifyNonlinearVirtual 4 -#define NotifyPointer 5 -#define NotifyPointerRoot 6 -#define NotifyDetailNone 7 - -/* Visibility notify */ - -#define VisibilityUnobscured 0 -#define VisibilityPartiallyObscured 1 -#define VisibilityFullyObscured 2 - -/* Circulation request */ - -#define PlaceOnTop 0 -#define PlaceOnBottom 1 - -/* protocol families */ - -#define FamilyInternet 0 /* IPv4 */ -#define FamilyDECnet 1 -#define FamilyChaos 2 -#define FamilyInternet6 6 /* IPv6 */ - -/* authentication families not tied to a specific protocol */ -#define FamilyServerInterpreted 5 - -/* Property notification */ - -#define PropertyNewValue 0 -#define PropertyDelete 1 - -/* Color Map notification */ - -#define ColormapUninstalled 0 -#define ColormapInstalled 1 - -/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */ - -#define GrabModeSync 0 -#define GrabModeAsync 1 - -/* GrabPointer, GrabKeyboard reply status */ - -#define GrabSuccess 0 -#define AlreadyGrabbed 1 -#define GrabInvalidTime 2 -#define GrabNotViewable 3 -#define GrabFrozen 4 - -/* AllowEvents modes */ - -#define AsyncPointer 0 -#define SyncPointer 1 -#define ReplayPointer 2 -#define AsyncKeyboard 3 -#define SyncKeyboard 4 -#define ReplayKeyboard 5 -#define AsyncBoth 6 -#define SyncBoth 7 - -/* Used in SetInputFocus, GetInputFocus */ - -#define RevertToNone (int)None -#define RevertToPointerRoot (int)PointerRoot -#define RevertToParent 2 - -/***************************************************************** - * ERROR CODES - *****************************************************************/ - -#define Success 0 /* everything's okay */ -#define BadRequest 1 /* bad request code */ -#define BadValue 2 /* int parameter out of range */ -#define BadWindow 3 /* parameter not a Window */ -#define BadPixmap 4 /* parameter not a Pixmap */ -#define BadAtom 5 /* parameter not an Atom */ -#define BadCursor 6 /* parameter not a Cursor */ -#define BadFont 7 /* parameter not a Font */ -#define BadMatch 8 /* parameter mismatch */ -#define BadDrawable 9 /* parameter not a Pixmap or Window */ -#define BadAccess 10 /* depending on context: - - key/button already grabbed - - attempt to free an illegal - cmap entry - - attempt to store into a read-only - color map entry. - - attempt to modify the access control - list from other than the local host. - */ -#define BadAlloc 11 /* insufficient resources */ -#define BadColor 12 /* no such colormap */ -#define BadGC 13 /* parameter not a GC */ -#define BadIDChoice 14 /* choice not in range or already used */ -#define BadName 15 /* font or color name doesn't exist */ -#define BadLength 16 /* Request length incorrect */ -#define BadImplementation 17 /* server is defective */ - -#define FirstExtensionError 128 -#define LastExtensionError 255 - -/***************************************************************** - * WINDOW DEFINITIONS - *****************************************************************/ - -/* Window classes used by CreateWindow */ -/* Note that CopyFromParent is already defined as 0 above */ - -#define InputOutput 1 -#define InputOnly 2 - -/* Window attributes for CreateWindow and ChangeWindowAttributes */ - -#define CWBackPixmap (1L<<0) -#define CWBackPixel (1L<<1) -#define CWBorderPixmap (1L<<2) -#define CWBorderPixel (1L<<3) -#define CWBitGravity (1L<<4) -#define CWWinGravity (1L<<5) -#define CWBackingStore (1L<<6) -#define CWBackingPlanes (1L<<7) -#define CWBackingPixel (1L<<8) -#define CWOverrideRedirect (1L<<9) -#define CWSaveUnder (1L<<10) -#define CWEventMask (1L<<11) -#define CWDontPropagate (1L<<12) -#define CWColormap (1L<<13) -#define CWCursor (1L<<14) - -/* ConfigureWindow structure */ - -#define CWX (1<<0) -#define CWY (1<<1) -#define CWWidth (1<<2) -#define CWHeight (1<<3) -#define CWBorderWidth (1<<4) -#define CWSibling (1<<5) -#define CWStackMode (1<<6) - - -/* Bit Gravity */ - -#define ForgetGravity 0 -#define NorthWestGravity 1 -#define NorthGravity 2 -#define NorthEastGravity 3 -#define WestGravity 4 -#define CenterGravity 5 -#define EastGravity 6 -#define SouthWestGravity 7 -#define SouthGravity 8 -#define SouthEastGravity 9 -#define StaticGravity 10 - -/* Window gravity + bit gravity above */ - -#define UnmapGravity 0 - -/* Used in CreateWindow for backing-store hint */ - -#define NotUseful 0 -#define WhenMapped 1 -#define Always 2 - -/* Used in GetWindowAttributes reply */ - -#define IsUnmapped 0 -#define IsUnviewable 1 -#define IsViewable 2 - -/* Used in ChangeSaveSet */ - -#define SetModeInsert 0 -#define SetModeDelete 1 - -/* Used in ChangeCloseDownMode */ - -#define DestroyAll 0 -#define RetainPermanent 1 -#define RetainTemporary 2 - -/* Window stacking method (in configureWindow) */ - -#define Above 0 -#define Below 1 -#define TopIf 2 -#define BottomIf 3 -#define Opposite 4 - -/* Circulation direction */ - -#define RaiseLowest 0 -#define LowerHighest 1 - -/* Property modes */ - -#define PropModeReplace 0 -#define PropModePrepend 1 -#define PropModeAppend 2 - -/***************************************************************** - * GRAPHICS DEFINITIONS - *****************************************************************/ - -/* graphics functions, as in GC.alu */ - -#define GXclear 0x0 /* 0 */ -#define GXand 0x1 /* src AND dst */ -#define GXandReverse 0x2 /* src AND NOT dst */ -#define GXcopy 0x3 /* src */ -#define GXandInverted 0x4 /* NOT src AND dst */ -#define GXnoop 0x5 /* dst */ -#define GXxor 0x6 /* src XOR dst */ -#define GXor 0x7 /* src OR dst */ -#define GXnor 0x8 /* NOT src AND NOT dst */ -#define GXequiv 0x9 /* NOT src XOR dst */ -#define GXinvert 0xa /* NOT dst */ -#define GXorReverse 0xb /* src OR NOT dst */ -#define GXcopyInverted 0xc /* NOT src */ -#define GXorInverted 0xd /* NOT src OR dst */ -#define GXnand 0xe /* NOT src OR NOT dst */ -#define GXset 0xf /* 1 */ - -/* LineStyle */ - -#define LineSolid 0 -#define LineOnOffDash 1 -#define LineDoubleDash 2 - -/* capStyle */ - -#define CapNotLast 0 -#define CapButt 1 -#define CapRound 2 -#define CapProjecting 3 - -/* joinStyle */ - -#define JoinMiter 0 -#define JoinRound 1 -#define JoinBevel 2 - -/* fillStyle */ - -#define FillSolid 0 -#define FillTiled 1 -#define FillStippled 2 -#define FillOpaqueStippled 3 - -/* fillRule */ - -#define EvenOddRule 0 -#define WindingRule 1 - -/* subwindow mode */ - -#define ClipByChildren 0 -#define IncludeInferiors 1 - -/* SetClipRectangles ordering */ - -#define Unsorted 0 -#define YSorted 1 -#define YXSorted 2 -#define YXBanded 3 - -/* CoordinateMode for drawing routines */ - -#define CoordModeOrigin 0 /* relative to the origin */ -#define CoordModePrevious 1 /* relative to previous point */ - -/* Polygon shapes */ - -#define Complex 0 /* paths may intersect */ -#define Nonconvex 1 /* no paths intersect, but not convex */ -#define Convex 2 /* wholly convex */ - -/* Arc modes for PolyFillArc */ - -#define ArcChord 0 /* join endpoints of arc */ -#define ArcPieSlice 1 /* join endpoints to center of arc */ - -/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into - GC.stateChanges */ - -#define GCFunction (1L<<0) -#define GCPlaneMask (1L<<1) -#define GCForeground (1L<<2) -#define GCBackground (1L<<3) -#define GCLineWidth (1L<<4) -#define GCLineStyle (1L<<5) -#define GCCapStyle (1L<<6) -#define GCJoinStyle (1L<<7) -#define GCFillStyle (1L<<8) -#define GCFillRule (1L<<9) -#define GCTile (1L<<10) -#define GCStipple (1L<<11) -#define GCTileStipXOrigin (1L<<12) -#define GCTileStipYOrigin (1L<<13) -#define GCFont (1L<<14) -#define GCSubwindowMode (1L<<15) -#define GCGraphicsExposures (1L<<16) -#define GCClipXOrigin (1L<<17) -#define GCClipYOrigin (1L<<18) -#define GCClipMask (1L<<19) -#define GCDashOffset (1L<<20) -#define GCDashList (1L<<21) -#define GCArcMode (1L<<22) - -#define GCLastBit 22 -/***************************************************************** - * FONTS - *****************************************************************/ - -/* used in QueryFont -- draw direction */ - -#define FontLeftToRight 0 -#define FontRightToLeft 1 - -#define FontChange 255 - -/***************************************************************** - * IMAGING - *****************************************************************/ - -/* ImageFormat -- PutImage, GetImage */ - -#define XYBitmap 0 /* depth 1, XYFormat */ -#define XYPixmap 1 /* depth == drawable depth */ -#define ZPixmap 2 /* depth == drawable depth */ - -/***************************************************************** - * COLOR MAP STUFF - *****************************************************************/ - -/* For CreateColormap */ - -#define AllocNone 0 /* create map with no entries */ -#define AllocAll 1 /* allocate entire map writeable */ - - -/* Flags used in StoreNamedColor, StoreColors */ - -#define DoRed (1<<0) -#define DoGreen (1<<1) -#define DoBlue (1<<2) - -/***************************************************************** - * CURSOR STUFF - *****************************************************************/ - -/* QueryBestSize Class */ - -#define CursorShape 0 /* largest size that can be displayed */ -#define TileShape 1 /* size tiled fastest */ -#define StippleShape 2 /* size stippled fastest */ - -/***************************************************************** - * KEYBOARD/POINTER STUFF - *****************************************************************/ - -#define AutoRepeatModeOff 0 -#define AutoRepeatModeOn 1 -#define AutoRepeatModeDefault 2 - -#define LedModeOff 0 -#define LedModeOn 1 - -/* masks for ChangeKeyboardControl */ - -#define KBKeyClickPercent (1L<<0) -#define KBBellPercent (1L<<1) -#define KBBellPitch (1L<<2) -#define KBBellDuration (1L<<3) -#define KBLed (1L<<4) -#define KBLedMode (1L<<5) -#define KBKey (1L<<6) -#define KBAutoRepeatMode (1L<<7) - -#define MappingSuccess 0 -#define MappingBusy 1 -#define MappingFailed 2 - -#define MappingModifier 0 -#define MappingKeyboard 1 -#define MappingPointer 2 - -/***************************************************************** - * SCREEN SAVER STUFF - *****************************************************************/ - -#define DontPreferBlanking 0 -#define PreferBlanking 1 -#define DefaultBlanking 2 - -#define DisableScreenSaver 0 -#define DisableScreenInterval 0 - -#define DontAllowExposures 0 -#define AllowExposures 1 -#define DefaultExposures 2 - -/* for ForceScreenSaver */ - -#define ScreenSaverReset 0 -#define ScreenSaverActive 1 - -/***************************************************************** - * HOSTS AND CONNECTIONS - *****************************************************************/ - -/* for ChangeHosts */ - -#define HostInsert 0 -#define HostDelete 1 - -/* for ChangeAccessControl */ - -#define EnableAccess 1 -#define DisableAccess 0 - -/* Display classes used in opening the connection - * Note that the statically allocated ones are even numbered and the - * dynamically changeable ones are odd numbered */ - -#define StaticGray 0 -#define GrayScale 1 -#define StaticColor 2 -#define PseudoColor 3 -#define TrueColor 4 -#define DirectColor 5 - - -/* Byte order used in imageByteOrder and bitmapBitOrder */ - -#define LSBFirst 0 -#define MSBFirst 1 - -#endif /* X_H */ diff --git a/proto/x11proto/XF86keysym.h b/proto/x11proto/XF86keysym.h deleted file mode 100644 index 8b5646ea1..000000000 --- a/proto/x11proto/XF86keysym.h +++ /dev/null @@ -1,220 +0,0 @@ -/* - * XFree86 vendor specific keysyms. - * - * The XFree86 keysym range is 0x10080001 - 0x1008FFFF. - * - * X.Org will not be adding to the XF86 set of keysyms, though they have - * been adopted and are considered a "standard" part of X keysym definitions. - * XFree86 never properly commented these keysyms, so we have done our - * best to explain the semantic meaning of these keys. - * - * XFree86 has removed their mail archives of the period, that might have - * shed more light on some of these definitions. Until/unless we resurrect - * these archives, these are from memory and usage. - */ - -/* - * ModeLock - * - * This one is old, and not really used any more since XKB offers this - * functionality. - */ - -#define XF86XK_ModeLock 0x1008FF01 /* Mode Switch Lock */ - -/* Backlight controls. */ -#define XF86XK_MonBrightnessUp 0x1008FF02 /* Monitor/panel brightness */ -#define XF86XK_MonBrightnessDown 0x1008FF03 /* Monitor/panel brightness */ -#define XF86XK_KbdLightOnOff 0x1008FF04 /* Keyboards may be lit */ -#define XF86XK_KbdBrightnessUp 0x1008FF05 /* Keyboards may be lit */ -#define XF86XK_KbdBrightnessDown 0x1008FF06 /* Keyboards may be lit */ - -/* - * Keys found on some "Internet" keyboards. - */ -#define XF86XK_Standby 0x1008FF10 /* System into standby mode */ -#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */ -#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */ -#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */ -#define XF86XK_AudioPlay 0x1008FF14 /* Start playing of audio > */ -#define XF86XK_AudioStop 0x1008FF15 /* Stop playing audio */ -#define XF86XK_AudioPrev 0x1008FF16 /* Previous track */ -#define XF86XK_AudioNext 0x1008FF17 /* Next track */ -#define XF86XK_HomePage 0x1008FF18 /* Display user's home page */ -#define XF86XK_Mail 0x1008FF19 /* Invoke user's mail program */ -#define XF86XK_Start 0x1008FF1A /* Start application */ -#define XF86XK_Search 0x1008FF1B /* Search */ -#define XF86XK_AudioRecord 0x1008FF1C /* Record audio application */ - -/* These are sometimes found on PDA's (e.g. Palm, PocketPC or elsewhere) */ -#define XF86XK_Calculator 0x1008FF1D /* Invoke calculator program */ -#define XF86XK_Memo 0x1008FF1E /* Invoke Memo taking program */ -#define XF86XK_ToDoList 0x1008FF1F /* Invoke To Do List program */ -#define XF86XK_Calendar 0x1008FF20 /* Invoke Calendar program */ -#define XF86XK_PowerDown 0x1008FF21 /* Deep sleep the system */ -#define XF86XK_ContrastAdjust 0x1008FF22 /* Adjust screen contrast */ -#define XF86XK_RockerUp 0x1008FF23 /* Rocker switches exist up */ -#define XF86XK_RockerDown 0x1008FF24 /* and down */ -#define XF86XK_RockerEnter 0x1008FF25 /* and let you press them */ - -/* Some more "Internet" keyboard symbols */ -#define XF86XK_Back 0x1008FF26 /* Like back on a browser */ -#define XF86XK_Forward 0x1008FF27 /* Like forward on a browser */ -#define XF86XK_Stop 0x1008FF28 /* Stop current operation */ -#define XF86XK_Refresh 0x1008FF29 /* Refresh the page */ -#define XF86XK_PowerOff 0x1008FF2A /* Power off system entirely */ -#define XF86XK_WakeUp 0x1008FF2B /* Wake up system from sleep */ -#define XF86XK_Eject 0x1008FF2C /* Eject device (e.g. DVD) */ -#define XF86XK_ScreenSaver 0x1008FF2D /* Invoke screensaver */ -#define XF86XK_WWW 0x1008FF2E /* Invoke web browser */ -#define XF86XK_Sleep 0x1008FF2F /* Put system to sleep */ -#define XF86XK_Favorites 0x1008FF30 /* Show favorite locations */ -#define XF86XK_AudioPause 0x1008FF31 /* Pause audio playing */ -#define XF86XK_AudioMedia 0x1008FF32 /* Launch media collection app */ -#define XF86XK_MyComputer 0x1008FF33 /* Display "My Computer" window */ -#define XF86XK_VendorHome 0x1008FF34 /* Display vendor home web site */ -#define XF86XK_LightBulb 0x1008FF35 /* Light bulb keys exist */ -#define XF86XK_Shop 0x1008FF36 /* Display shopping web site */ -#define XF86XK_History 0x1008FF37 /* Show history of web surfing */ -#define XF86XK_OpenURL 0x1008FF38 /* Open selected URL */ -#define XF86XK_AddFavorite 0x1008FF39 /* Add URL to favorites list */ -#define XF86XK_HotLinks 0x1008FF3A /* Show "hot" links */ -#define XF86XK_BrightnessAdjust 0x1008FF3B /* Invoke brightness adj. UI */ -#define XF86XK_Finance 0x1008FF3C /* Display financial site */ -#define XF86XK_Community 0x1008FF3D /* Display user's community */ -#define XF86XK_AudioRewind 0x1008FF3E /* "rewind" audio track */ -#define XF86XK_BackForward 0x1008FF3F /* ??? */ -#define XF86XK_Launch0 0x1008FF40 /* Launch Application */ -#define XF86XK_Launch1 0x1008FF41 /* Launch Application */ -#define XF86XK_Launch2 0x1008FF42 /* Launch Application */ -#define XF86XK_Launch3 0x1008FF43 /* Launch Application */ -#define XF86XK_Launch4 0x1008FF44 /* Launch Application */ -#define XF86XK_Launch5 0x1008FF45 /* Launch Application */ -#define XF86XK_Launch6 0x1008FF46 /* Launch Application */ -#define XF86XK_Launch7 0x1008FF47 /* Launch Application */ -#define XF86XK_Launch8 0x1008FF48 /* Launch Application */ -#define XF86XK_Launch9 0x1008FF49 /* Launch Application */ -#define XF86XK_LaunchA 0x1008FF4A /* Launch Application */ -#define XF86XK_LaunchB 0x1008FF4B /* Launch Application */ -#define XF86XK_LaunchC 0x1008FF4C /* Launch Application */ -#define XF86XK_LaunchD 0x1008FF4D /* Launch Application */ -#define XF86XK_LaunchE 0x1008FF4E /* Launch Application */ -#define XF86XK_LaunchF 0x1008FF4F /* Launch Application */ - -#define XF86XK_ApplicationLeft 0x1008FF50 /* switch to application, left */ -#define XF86XK_ApplicationRight 0x1008FF51 /* switch to application, right*/ -#define XF86XK_Book 0x1008FF52 /* Launch bookreader */ -#define XF86XK_CD 0x1008FF53 /* Launch CD/DVD player */ -#define XF86XK_Calculater 0x1008FF54 /* Launch Calculater */ -#define XF86XK_Clear 0x1008FF55 /* Clear window, screen */ -#define XF86XK_Close 0x1008FF56 /* Close window */ -#define XF86XK_Copy 0x1008FF57 /* Copy selection */ -#define XF86XK_Cut 0x1008FF58 /* Cut selection */ -#define XF86XK_Display 0x1008FF59 /* Output switch key */ -#define XF86XK_DOS 0x1008FF5A /* Launch DOS (emulation) */ -#define XF86XK_Documents 0x1008FF5B /* Open documents window */ -#define XF86XK_Excel 0x1008FF5C /* Launch spread sheet */ -#define XF86XK_Explorer 0x1008FF5D /* Launch file explorer */ -#define XF86XK_Game 0x1008FF5E /* Launch game */ -#define XF86XK_Go 0x1008FF5F /* Go to URL */ -#define XF86XK_iTouch 0x1008FF60 /* Logitch iTouch- don't use */ -#define XF86XK_LogOff 0x1008FF61 /* Log off system */ -#define XF86XK_Market 0x1008FF62 /* ?? */ -#define XF86XK_Meeting 0x1008FF63 /* enter meeting in calendar */ -#define XF86XK_MenuKB 0x1008FF65 /* distingush keyboard from PB */ -#define XF86XK_MenuPB 0x1008FF66 /* distinuish PB from keyboard */ -#define XF86XK_MySites 0x1008FF67 /* Favourites */ -#define XF86XK_New 0x1008FF68 /* New (folder, document... */ -#define XF86XK_News 0x1008FF69 /* News */ -#define XF86XK_OfficeHome 0x1008FF6A /* Office home (old Staroffice)*/ -#define XF86XK_Open 0x1008FF6B /* Open */ -#define XF86XK_Option 0x1008FF6C /* ?? */ -#define XF86XK_Paste 0x1008FF6D /* Paste */ -#define XF86XK_Phone 0x1008FF6E /* Launch phone; dial number */ -#define XF86XK_Q 0x1008FF70 /* Compaq's Q - don't use */ -#define XF86XK_Reply 0x1008FF72 /* Reply e.g., mail */ -#define XF86XK_Reload 0x1008FF73 /* Reload web page, file, etc. */ -#define XF86XK_RotateWindows 0x1008FF74 /* Rotate windows e.g. xrandr */ -#define XF86XK_RotationPB 0x1008FF75 /* don't use */ -#define XF86XK_RotationKB 0x1008FF76 /* don't use */ -#define XF86XK_Save 0x1008FF77 /* Save (file, document, state */ -#define XF86XK_ScrollUp 0x1008FF78 /* Scroll window/contents up */ -#define XF86XK_ScrollDown 0x1008FF79 /* Scrool window/contentd down */ -#define XF86XK_ScrollClick 0x1008FF7A /* Use XKB mousekeys instead */ -#define XF86XK_Send 0x1008FF7B /* Send mail, file, object */ -#define XF86XK_Spell 0x1008FF7C /* Spell checker */ -#define XF86XK_SplitScreen 0x1008FF7D /* Split window or screen */ -#define XF86XK_Support 0x1008FF7E /* Get support (??) */ -#define XF86XK_TaskPane 0x1008FF7F /* Show tasks */ -#define XF86XK_Terminal 0x1008FF80 /* Launch terminal emulator */ -#define XF86XK_Tools 0x1008FF81 /* toolbox of desktop/app. */ -#define XF86XK_Travel 0x1008FF82 /* ?? */ -#define XF86XK_UserPB 0x1008FF84 /* ?? */ -#define XF86XK_User1KB 0x1008FF85 /* ?? */ -#define XF86XK_User2KB 0x1008FF86 /* ?? */ -#define XF86XK_Video 0x1008FF87 /* Launch video player */ -#define XF86XK_WheelButton 0x1008FF88 /* button from a mouse wheel */ -#define XF86XK_Word 0x1008FF89 /* Launch word processor */ -#define XF86XK_Xfer 0x1008FF8A -#define XF86XK_ZoomIn 0x1008FF8B /* zoom in view, map, etc. */ -#define XF86XK_ZoomOut 0x1008FF8C /* zoom out view, map, etc. */ - -#define XF86XK_Away 0x1008FF8D /* mark yourself as away */ -#define XF86XK_Messenger 0x1008FF8E /* as in instant messaging */ -#define XF86XK_WebCam 0x1008FF8F /* Launch web camera app. */ -#define XF86XK_MailForward 0x1008FF90 /* Forward in mail */ -#define XF86XK_Pictures 0x1008FF91 /* Show pictures */ -#define XF86XK_Music 0x1008FF92 /* Launch music application */ - -#define XF86XK_Battery 0x1008FF93 /* Display battery information */ -#define XF86XK_Bluetooth 0x1008FF94 /* Enable/disable Bluetooth */ -#define XF86XK_WLAN 0x1008FF95 /* Enable/disable WLAN */ -#define XF86XK_UWB 0x1008FF96 /* Enable/disable UWB */ - -#define XF86XK_AudioForward 0x1008FF97 /* fast-forward audio track */ -#define XF86XK_AudioRepeat 0x1008FF98 /* toggle repeat mode */ -#define XF86XK_AudioRandomPlay 0x1008FF99 /* toggle shuffle mode */ -#define XF86XK_Subtitle 0x1008FF9A /* cycle through subtitle */ -#define XF86XK_AudioCycleTrack 0x1008FF9B /* cycle through audio tracks */ -#define XF86XK_CycleAngle 0x1008FF9C /* cycle through angles */ -#define XF86XK_FrameBack 0x1008FF9D /* video: go one frame back */ -#define XF86XK_FrameForward 0x1008FF9E /* video: go one frame forward */ -#define XF86XK_Time 0x1008FF9F /* display, or shows an entry for time seeking */ -#define XF86XK_Select 0x1008FFA0 /* Select button on joypads and remotes */ -#define XF86XK_View 0x1008FFA1 /* Show a view options/properties */ -#define XF86XK_TopMenu 0x1008FFA2 /* Go to a top-level menu in a video */ - -#define XF86XK_Red 0x1008FFA3 /* Red button */ -#define XF86XK_Green 0x1008FFA4 /* Green button */ -#define XF86XK_Yellow 0x1008FFA5 /* Yellow button */ -#define XF86XK_Blue 0x1008FFA6 /* Blue button */ - -#define XF86XK_Suspend 0x1008FFA7 /* Sleep to RAM */ -#define XF86XK_Hibernate 0x1008FFA8 /* Sleep to disk */ -#define XF86XK_TouchpadToggle 0x1008FFA9 /* Toggle between touchpad/trackstick */ -#define XF86XK_TouchpadOn 0x1008FFB0 /* The touchpad got switched on */ -#define XF86XK_TouchpadOff 0x1008FFB1 /* The touchpad got switched off */ - -#define XF86XK_AudioMicMute 0x1008FFB2 /* Mute the Mic from the system */ - -/* Keys for special action keys (hot keys) */ -/* Virtual terminals on some operating systems */ -#define XF86XK_Switch_VT_1 0x1008FE01 -#define XF86XK_Switch_VT_2 0x1008FE02 -#define XF86XK_Switch_VT_3 0x1008FE03 -#define XF86XK_Switch_VT_4 0x1008FE04 -#define XF86XK_Switch_VT_5 0x1008FE05 -#define XF86XK_Switch_VT_6 0x1008FE06 -#define XF86XK_Switch_VT_7 0x1008FE07 -#define XF86XK_Switch_VT_8 0x1008FE08 -#define XF86XK_Switch_VT_9 0x1008FE09 -#define XF86XK_Switch_VT_10 0x1008FE0A -#define XF86XK_Switch_VT_11 0x1008FE0B -#define XF86XK_Switch_VT_12 0x1008FE0C - -#define XF86XK_Ungrab 0x1008FE20 /* force ungrab */ -#define XF86XK_ClearGrab 0x1008FE21 /* kill application with grab */ -#define XF86XK_Next_VMode 0x1008FE22 /* next video mode available */ -#define XF86XK_Prev_VMode 0x1008FE23 /* prev. video mode available */ -#define XF86XK_LogWindowTree 0x1008FE24 /* print window tree to log */ -#define XF86XK_LogGrabInfo 0x1008FE25 /* print all active grabs to log */ diff --git a/proto/x11proto/XWDFile.h b/proto/x11proto/XWDFile.h deleted file mode 100644 index 50e17df3d..000000000 --- a/proto/x11proto/XWDFile.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - -Copyright 1985, 1986, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - -*/ - -/* - * XWDFile.h MIT Project Athena, X Window system window raster - * image dumper, dump file format header file. - * - * Author: Tony Della Fera, DEC - * 27-Jun-85 - * - * Modifier: William F. Wyatt, SAO - * 18-Nov-86 - version 6 for saving/restoring color maps - */ - -#ifndef XWDFILE_H -#define XWDFILE_H - -#include <X11/Xmd.h> - -#define XWD_FILE_VERSION 7 -#define sz_XWDheader 100 -#define sz_XWDColor 12 - -typedef CARD32 xwdval; /* for old broken programs */ - -/* Values in the file are most significant byte first. */ - -typedef struct _xwd_file_header { - /* header_size = SIZEOF(XWDheader) + length of null-terminated - * window name. */ - CARD32 header_size B32; - - CARD32 file_version B32; /* = XWD_FILE_VERSION above */ - CARD32 pixmap_format B32; /* ZPixmap or XYPixmap */ - CARD32 pixmap_depth B32; /* Pixmap depth */ - CARD32 pixmap_width B32; /* Pixmap width */ - CARD32 pixmap_height B32; /* Pixmap height */ - CARD32 xoffset B32; /* Bitmap x offset, normally 0 */ - CARD32 byte_order B32; /* of image data: MSBFirst, LSBFirst */ - - /* bitmap_unit applies to bitmaps (depth 1 format XY) only. - * It is the number of bits that each scanline is padded to. */ - CARD32 bitmap_unit B32; - - CARD32 bitmap_bit_order B32; /* bitmaps only: MSBFirst, LSBFirst */ - - /* bitmap_pad applies to pixmaps (non-bitmaps) only. - * It is the number of bits that each scanline is padded to. */ - CARD32 bitmap_pad B32; - - CARD32 bits_per_pixel B32; /* Bits per pixel */ - - /* bytes_per_line is pixmap_width padded to bitmap_unit (bitmaps) - * or bitmap_pad (pixmaps). It is the delta (in bytes) to get - * to the same x position on an adjacent row. */ - CARD32 bytes_per_line B32; - CARD32 visual_class B32; /* Class of colormap */ - CARD32 red_mask B32; /* Z red mask */ - CARD32 green_mask B32; /* Z green mask */ - CARD32 blue_mask B32; /* Z blue mask */ - CARD32 bits_per_rgb B32; /* Log2 of distinct color values */ - CARD32 colormap_entries B32; /* Number of entries in colormap; not used? */ - CARD32 ncolors B32; /* Number of XWDColor structures */ - CARD32 window_width B32; /* Window width */ - CARD32 window_height B32; /* Window height */ - CARD32 window_x B32; /* Window upper left X coordinate */ - CARD32 window_y B32; /* Window upper left Y coordinate */ - CARD32 window_bdrwidth B32; /* Window border width */ -} XWDFileHeader; - -/* Null-terminated window name follows the above structure. */ - -/* Next comes XWDColor structures, at offset XWDFileHeader.header_size in - * the file. XWDFileHeader.ncolors tells how many XWDColor structures - * there are. - */ - -typedef struct { - CARD32 pixel B32; - CARD16 red B16; - CARD16 green B16; - CARD16 blue B16; - CARD8 flags; - CARD8 pad; -} XWDColor; - -/* Last comes the image data in the format described by XWDFileHeader. */ - -#endif /* XWDFILE_H */ - diff --git a/proto/x11proto/Xalloca.h b/proto/x11proto/Xalloca.h deleted file mode 100644 index 1919884bb..000000000 --- a/proto/x11proto/Xalloca.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - -Copyright 1995, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 OPEN GROUP 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 name of The Open Group 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 Open Group. - -*/ -/* - * The purpose of this header is to define the macros ALLOCATE_LOCAL and - * DEALLOCATE_LOCAL appropriately for the platform being compiled on. - * These macros are used to make fast, function-local memory allocations. - * Their characteristics are as follows: - * - * void *ALLOCATE_LOCAL(int size) - * Returns a pointer to size bytes of memory, or NULL if the allocation - * failed. The memory must be freed with DEALLOCATE_LOCAL before the - * function that made the allocation returns. You should not ask for - * large blocks of memory with this function, since on many platforms - * the memory comes from the stack, which may have limited size. - * - * void DEALLOCATE_LOCAL(void *) - * Frees the memory allocated by ALLOCATE_LOCAL. Omission of this - * step may be harmless on some platforms, but will result in - * memory leaks or worse on others. - * - * Before including this file, you should define two macros, - * ALLOCATE_LOCAL_FALLBACK and DEALLOCATE_LOCAL_FALLBACK, that have the - * same characteristics as ALLOCATE_LOCAL and DEALLOCATE_LOCAL. The - * header uses the fallbacks if it doesn't know a "better" way to define - * ALLOCATE_LOCAL and DEALLOCATE_LOCAL. Typical usage would be: - * - * #define ALLOCATE_LOCAL_FALLBACK(_size) malloc(_size) - * #define DEALLOCATE_LOCAL_FALLBACK(_ptr) free(_ptr) - * #include "Xalloca.h" - */ - -#ifndef XALLOCA_H -#define XALLOCA_H 1 - -#ifndef INCLUDE_ALLOCA_H -/* Need to add more here to match Imake *.cf's */ -# if defined(HAVE_ALLOCA_H) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) -# define INCLUDE_ALLOCA_H -# endif -#endif - -#ifdef INCLUDE_ALLOCA_H -# include <alloca.h> -#endif - -#ifndef NO_ALLOCA -/* - * os-dependent definition of local allocation and deallocation - * If you want something other than (DE)ALLOCATE_LOCAL_FALLBACK - * for ALLOCATE/DEALLOCATE_LOCAL then you add that in here. - */ - - -# ifdef __GNUC__ -# ifndef alloca -# define alloca __builtin_alloca -# endif /* !alloca */ -# define ALLOCATE_LOCAL(size) alloca((int)(size)) -# else /* ! __GNUC__ */ - -/* - * warning: old mips alloca (pre 2.10) is unusable, new one is built in - * Test is easy, the new one is named __builtin_alloca and comes - * from alloca.h which #defines alloca. - */ -# if defined(__sun) || defined(alloca) -/* - * Some System V boxes extract alloca.o from /lib/libPW.a; if you - * decide that you don't want to use alloca, you might want to fix it here. - */ -/* alloca might be a macro taking one arg (hi, Sun!), so give it one. */ -# if !defined(__cplusplus) -# define __Xnullarg /* as nothing */ - extern void *alloca(__Xnullarg); -# endif -# define ALLOCATE_LOCAL(size) alloca((int)(size)) -# endif /* who does alloca */ -# endif /* __GNUC__ */ - -#endif /* NO_ALLOCA */ - -#if !defined(ALLOCATE_LOCAL) -# if defined(ALLOCATE_LOCAL_FALLBACK) && defined(DEALLOCATE_LOCAL_FALLBACK) -# define ALLOCATE_LOCAL(_size) ALLOCATE_LOCAL_FALLBACK(_size) -# define DEALLOCATE_LOCAL(_ptr) DEALLOCATE_LOCAL_FALLBACK(_ptr) -# else /* no fallbacks supplied; error */ -# define ALLOCATE_LOCAL(_size) ALLOCATE_LOCAL_FALLBACK undefined! -# define DEALLOCATE_LOCAL(_ptr) DEALLOCATE_LOCAL_FALLBACK undefined! -# endif /* defined(ALLOCATE_LOCAL_FALLBACK && DEALLOCATE_LOCAL_FALLBACK) */ -#else -# if !defined(DEALLOCATE_LOCAL) -# define DEALLOCATE_LOCAL(_ptr) do {} while(0) -# endif -#endif /* defined(ALLOCATE_LOCAL) */ - -#endif /* XALLOCA_H */ diff --git a/proto/x11proto/Xarch.h b/proto/x11proto/Xarch.h deleted file mode 100644 index f80c58099..000000000 --- a/proto/x11proto/Xarch.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef _XARCH_H_ -# define _XARCH_H_ - -/* - * Copyright 1997 Metro Link Incorporated - * - * All Rights Reserved - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the names of the above listed copyright holder(s) - * not be used in advertising or publicity pertaining to distribution of - * the software without specific, written prior permission. The above listed - * copyright holder(s) make(s) no representations about the suitability of - * this software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE - * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY - * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - - -/* - * Determine the machine's byte order. - */ - -/* See if it is set in the imake config first */ -# ifdef X_BYTE_ORDER - -# define X_BIG_ENDIAN 4321 -# define X_LITTLE_ENDIAN 1234 - -# else - -# if defined(SVR4) || defined(__SVR4) -# include <sys/types.h> -# include <sys/byteorder.h> -# elif defined(CSRG_BASED) -# if defined(__NetBSD__) || defined(__OpenBSD__) -# include <sys/types.h> -# endif -# include <machine/endian.h> -# elif defined(linux) -# if defined __STRICT_ANSI__ -# undef __STRICT_ANSI__ -# include <endian.h> -# define __STRICT_ANSI__ -# else -# include <endian.h> -# endif -/* 'endian.h' might have been included before 'Xarch.h' */ -# if !defined(LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN) -# define LITTLE_ENDIAN __LITTLE_ENDIAN -# endif -# if !defined(BIG_ENDIAN) && defined(__BIG_ENDIAN) -# define BIG_ENDIAN __BIG_ENDIAN -# endif -# if !defined(PDP_ENDIAN) && defined(__PDP_ENDIAN) -# define PDP_ENDIAN __PDP_ENDIAN -# endif -# if !defined(BYTE_ORDER) && defined(__BYTE_ORDER) -# define BYTE_ORDER __BYTE_ORDER -# endif -# endif - -# ifndef BYTE_ORDER -# define LITTLE_ENDIAN 1234 -# define BIG_ENDIAN 4321 - -# if defined(__sun) && defined(__SVR4) -# include <sys/isa_defs.h> -# ifdef _LITTLE_ENDIAN -# define BYTE_ORDER LITTLE_ENDIAN -# endif -# ifdef _BIG_ENDIAN -# define BYTE_ORDER BIG_ENDIAN -# endif -# endif /* sun */ -# endif /* BYTE_ORDER */ - -# define X_BYTE_ORDER BYTE_ORDER -# define X_BIG_ENDIAN BIG_ENDIAN -# define X_LITTLE_ENDIAN LITTLE_ENDIAN - -# endif /* not in imake config */ - -#endif /* _XARCH_H_ */ diff --git a/proto/x11proto/Xatom.h b/proto/x11proto/Xatom.h deleted file mode 100644 index 485a4236d..000000000 --- a/proto/x11proto/Xatom.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef XATOM_H -#define XATOM_H 1 - -/* THIS IS A GENERATED FILE - * - * Do not change! Changing this file implies a protocol change! - */ - -#define XA_PRIMARY ((Atom) 1) -#define XA_SECONDARY ((Atom) 2) -#define XA_ARC ((Atom) 3) -#define XA_ATOM ((Atom) 4) -#define XA_BITMAP ((Atom) 5) -#define XA_CARDINAL ((Atom) 6) -#define XA_COLORMAP ((Atom) 7) -#define XA_CURSOR ((Atom) 8) -#define XA_CUT_BUFFER0 ((Atom) 9) -#define XA_CUT_BUFFER1 ((Atom) 10) -#define XA_CUT_BUFFER2 ((Atom) 11) -#define XA_CUT_BUFFER3 ((Atom) 12) -#define XA_CUT_BUFFER4 ((Atom) 13) -#define XA_CUT_BUFFER5 ((Atom) 14) -#define XA_CUT_BUFFER6 ((Atom) 15) -#define XA_CUT_BUFFER7 ((Atom) 16) -#define XA_DRAWABLE ((Atom) 17) -#define XA_FONT ((Atom) 18) -#define XA_INTEGER ((Atom) 19) -#define XA_PIXMAP ((Atom) 20) -#define XA_POINT ((Atom) 21) -#define XA_RECTANGLE ((Atom) 22) -#define XA_RESOURCE_MANAGER ((Atom) 23) -#define XA_RGB_COLOR_MAP ((Atom) 24) -#define XA_RGB_BEST_MAP ((Atom) 25) -#define XA_RGB_BLUE_MAP ((Atom) 26) -#define XA_RGB_DEFAULT_MAP ((Atom) 27) -#define XA_RGB_GRAY_MAP ((Atom) 28) -#define XA_RGB_GREEN_MAP ((Atom) 29) -#define XA_RGB_RED_MAP ((Atom) 30) -#define XA_STRING ((Atom) 31) -#define XA_VISUALID ((Atom) 32) -#define XA_WINDOW ((Atom) 33) -#define XA_WM_COMMAND ((Atom) 34) -#define XA_WM_HINTS ((Atom) 35) -#define XA_WM_CLIENT_MACHINE ((Atom) 36) -#define XA_WM_ICON_NAME ((Atom) 37) -#define XA_WM_ICON_SIZE ((Atom) 38) -#define XA_WM_NAME ((Atom) 39) -#define XA_WM_NORMAL_HINTS ((Atom) 40) -#define XA_WM_SIZE_HINTS ((Atom) 41) -#define XA_WM_ZOOM_HINTS ((Atom) 42) -#define XA_MIN_SPACE ((Atom) 43) -#define XA_NORM_SPACE ((Atom) 44) -#define XA_MAX_SPACE ((Atom) 45) -#define XA_END_SPACE ((Atom) 46) -#define XA_SUPERSCRIPT_X ((Atom) 47) -#define XA_SUPERSCRIPT_Y ((Atom) 48) -#define XA_SUBSCRIPT_X ((Atom) 49) -#define XA_SUBSCRIPT_Y ((Atom) 50) -#define XA_UNDERLINE_POSITION ((Atom) 51) -#define XA_UNDERLINE_THICKNESS ((Atom) 52) -#define XA_STRIKEOUT_ASCENT ((Atom) 53) -#define XA_STRIKEOUT_DESCENT ((Atom) 54) -#define XA_ITALIC_ANGLE ((Atom) 55) -#define XA_X_HEIGHT ((Atom) 56) -#define XA_QUAD_WIDTH ((Atom) 57) -#define XA_WEIGHT ((Atom) 58) -#define XA_POINT_SIZE ((Atom) 59) -#define XA_RESOLUTION ((Atom) 60) -#define XA_COPYRIGHT ((Atom) 61) -#define XA_NOTICE ((Atom) 62) -#define XA_FONT_NAME ((Atom) 63) -#define XA_FAMILY_NAME ((Atom) 64) -#define XA_FULL_NAME ((Atom) 65) -#define XA_CAP_HEIGHT ((Atom) 66) -#define XA_WM_CLASS ((Atom) 67) -#define XA_WM_TRANSIENT_FOR ((Atom) 68) - -#define XA_LAST_PREDEFINED ((Atom) 68) -#endif /* XATOM_H */ diff --git a/proto/x11proto/Xdefs.h b/proto/x11proto/Xdefs.h deleted file mode 100644 index e25a20821..000000000 --- a/proto/x11proto/Xdefs.h +++ /dev/null @@ -1,108 +0,0 @@ -/*********************************************************** - -Copyright (c) 1999 The XFree86 Project Inc. - -All Rights Reserved. - -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 -OPEN GROUP 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 name of The XFree86 Project -Inc. 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 XFree86 Project Inc.. - -*/ - -/** - ** Types definitions shared between server and clients - **/ - -#ifndef _XDEFS_H -#define _XDEFS_H - -#ifdef _XSERVER64 -#include <X11/Xmd.h> -#endif - -#ifndef _XTYPEDEF_ATOM -# define _XTYPEDEF_ATOM -# ifndef _XSERVER64 -typedef unsigned long Atom; -# else -typedef CARD32 Atom; -# endif -#endif - -#ifndef Bool -# ifndef _XTYPEDEF_BOOL -# define _XTYPEDEF_BOOL -typedef int Bool; -# endif -#endif - -#ifndef _XTYPEDEF_POINTER -# define _XTYPEDEF_POINTER -typedef void *pointer; -#endif - -#ifndef _XTYPEDEF_CLIENTPTR -typedef struct _Client *ClientPtr; -# define _XTYPEDEF_CLIENTPTR -#endif - -#ifndef _XTYPEDEF_XID -# define _XTYPEDEF_XID -# ifndef _XSERVER64 -typedef unsigned long XID; -# else -typedef CARD32 XID; -# endif -#endif - -#ifndef _XTYPEDEF_MASK -# define _XTYPEDEF_MASK -# ifndef _XSERVER64 -typedef unsigned long Mask; -# else -typedef CARD32 Mask; -# endif -#endif - -#ifndef _XTYPEDEF_FONTPTR -# define _XTYPEDEF_FONTPTR -typedef struct _Font *FontPtr; /* also in fonts/include/font.h */ -#endif - -#ifndef _XTYPEDEF_FONT -# define _XTYPEDEF_FONT -typedef XID Font; -#endif - -#ifndef _XTYPEDEF_FSID -# ifndef _XSERVER64 -typedef unsigned long FSID; -# else -typedef CARD32 FSID; -# endif -#endif - -typedef FSID AccContext; - -/* OS independent time value - XXX Should probably go in Xos.h */ -typedef struct timeval **OSTimePtr; - - -typedef void (* BlockHandlerProcPtr)(void * /* blockData */, - OSTimePtr /* pTimeout */, - void * /* pReadmask */); - -#endif diff --git a/proto/x11proto/Xfuncproto.h.in b/proto/x11proto/Xfuncproto.h.in deleted file mode 100644 index b88493df2..000000000 --- a/proto/x11proto/Xfuncproto.h.in +++ /dev/null @@ -1,220 +0,0 @@ -/* - * -Copyright 1989, 1991, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - * - */ - -/* Definitions to make function prototypes manageable */ - -#ifndef _XFUNCPROTO_H_ -#define _XFUNCPROTO_H_ - -#ifndef NeedFunctionPrototypes -#define NeedFunctionPrototypes 1 -#endif /* NeedFunctionPrototypes */ - -#ifndef NeedVarargsPrototypes -#define NeedVarargsPrototypes 1 -#endif /* NeedVarargsPrototypes */ - -#if NeedFunctionPrototypes - -#ifndef NeedNestedPrototypes -#define NeedNestedPrototypes 1 -#endif /* NeedNestedPrototypes */ - -#ifndef _Xconst -#define _Xconst const -#endif /* _Xconst */ - -/* Function prototype configuration (see configure for more info) */ -#ifndef NARROWPROTO -#undef NARROWPROTO -#endif -#ifndef FUNCPROTO -#undef FUNCPROTO -#endif - -#ifndef NeedWidePrototypes -#ifdef NARROWPROTO -#define NeedWidePrototypes 0 -#else -#define NeedWidePrototypes 1 /* default to make interropt. easier */ -#endif -#endif /* NeedWidePrototypes */ - -#endif /* NeedFunctionPrototypes */ - -#ifndef _XFUNCPROTOBEGIN -#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */ -#define _XFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */ -#define _XFUNCPROTOEND } -#else -#define _XFUNCPROTOBEGIN -#define _XFUNCPROTOEND -#endif -#endif /* _XFUNCPROTOBEGIN */ - -/* http://clang.llvm.org/docs/LanguageExtensions.html#has-attribute */ -#ifndef __has_attribute -# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ -#endif -#ifndef __has_feature -# define __has_feature(x) 0 /* Compatibility with non-clang compilers. */ -#endif -#ifndef __has_extension -# define __has_extension(x) 0 /* Compatibility with non-clang compilers. */ -#endif - -/* Added in X11R6.9, so available in any version of modular xproto */ -#if __has_attribute(__sentinel__) || (defined(__GNUC__) && (__GNUC__ >= 4)) -# define _X_SENTINEL(x) __attribute__ ((__sentinel__(x))) -#else -# define _X_SENTINEL(x) -#endif /* GNUC >= 4 */ - -/* Added in X11R6.9, so available in any version of modular xproto */ -#if (__has_attribute(visibility) || (defined(__GNUC__) && (__GNUC__ >= 4))) \ - && !defined(__CYGWIN__) && !defined(__MINGW32__) -# define _X_EXPORT __attribute__((visibility("default"))) -# define _X_HIDDEN __attribute__((visibility("hidden"))) -# define _X_INTERNAL __attribute__((visibility("internal"))) -#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) -# define _X_EXPORT __global -# define _X_HIDDEN __hidden -# define _X_INTERNAL __hidden -#else /* not gcc >= 4 and not Sun Studio >= 8 */ -# define _X_EXPORT -# define _X_HIDDEN -# define _X_INTERNAL -#endif /* GNUC >= 4 */ - -/* Branch prediction hints for individual conditionals */ -/* requires xproto >= 7.0.9 */ -#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303) -# define _X_LIKELY(x) __builtin_expect(!!(x), 1) -# define _X_UNLIKELY(x) __builtin_expect(!!(x), 0) -#else /* not gcc >= 3.3 */ -# define _X_LIKELY(x) (x) -# define _X_UNLIKELY(x) (x) -#endif - -/* Bulk branch prediction hints via marking error path functions as "cold" */ -/* requires xproto >= 7.0.25 */ -#if __has_attribute(__cold__) || \ - (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403)) /* 4.3+ */ -# define _X_COLD __attribute__((__cold__)) -#else -# define _X_COLD /* nothing */ -#endif - -/* Added in X11R6.9, so available in any version of modular xproto */ -#if __has_attribute(deprecated) \ - || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \ - || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130)) -# define _X_DEPRECATED __attribute__((deprecated)) -#else /* not gcc >= 3.1 */ -# define _X_DEPRECATED -#endif - -/* requires xproto >= 7.0.30 */ -#if __has_extension(attribute_deprecated_with_message) || \ - (defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)))) -# define _X_DEPRECATED_MSG(_msg) __attribute__((deprecated(_msg))) -#else -# define _X_DEPRECATED_MSG(_msg) _X_DEPRECATED -#endif - -/* requires xproto >= 7.0.17 */ -#if __has_attribute(noreturn) \ - || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \ - || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) -# define _X_NORETURN __attribute((noreturn)) -#else -# define _X_NORETURN -#endif /* GNUC */ - -/* Added in X11R6.9, so available in any version of modular xproto */ -#if __has_attribute(__format__) \ - || defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 203) -# define _X_ATTRIBUTE_PRINTF(x,y) __attribute__((__format__(__printf__,x,y))) -#else /* not gcc >= 2.3 */ -# define _X_ATTRIBUTE_PRINTF(x,y) -#endif - -/* requires xproto >= 7.0.22 - since this uses either gcc or C99 variable - argument macros, must be only used inside #ifdef _X_NONNULL guards, as - many legacy X clients are compiled in C89 mode still. */ -#if __has_attribute(nonnull) \ - && defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L) /* C99 */ -#define _X_NONNULL(...) __attribute__((nonnull(__VA_ARGS__))) -#elif __has_attribute(nonnull) \ - || defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303) -#define _X_NONNULL(args...) __attribute__((nonnull(args))) -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L) /* C99 */ -#define _X_NONNULL(...) /* */ -#endif - -/* requires xproto >= 7.0.22 */ -#if __has_attribute(__unused__) \ - || defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205) -#define _X_UNUSED __attribute__((__unused__)) -#else -#define _X_UNUSED /* */ -#endif - -/* C99 keyword "inline" or equivalent extensions in pre-C99 compilers */ -/* requires xproto >= 7.0.9 - (introduced in 7.0.8 but didn't support all compilers until 7.0.9) */ -#if defined(inline) /* assume autoconf set it correctly */ || \ - (defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L)) /* C99 */ || \ - (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)) -# define _X_INLINE inline -#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) /* gcc w/C89+extensions */ -# define _X_INLINE __inline__ -#else -# define _X_INLINE -#endif - -/* C99 keyword "restrict" or equivalent extensions in pre-C99 compilers */ -/* requires xproto >= 7.0.21 */ -#ifndef _X_RESTRICT_KYWD -# if defined(restrict) /* assume autoconf set it correctly */ || \ - (defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L) /* C99 */ \ - && !defined(__cplusplus)) /* Workaround g++ issue on Solaris */ -# define _X_RESTRICT_KYWD restrict -# elif defined(__GNUC__) && !defined(__STRICT_ANSI__) /* gcc w/C89+extensions */ -# define _X_RESTRICT_KYWD __restrict__ -# else -# define _X_RESTRICT_KYWD -# endif -#endif - -/* requires xproto >= 7.0.30 */ -#if __has_attribute(no_sanitize_thread) -# define _X_NOTSAN __attribute__((no_sanitize_thread)) -#else -# define _X_NOTSAN -#endif - -#endif /* _XFUNCPROTO_H_ */ diff --git a/proto/x11proto/Xfuncs.h b/proto/x11proto/Xfuncs.h deleted file mode 100644 index b7c40294c..000000000 --- a/proto/x11proto/Xfuncs.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * -Copyright 1990, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - * - */ - -#ifndef _XFUNCS_H_ -# define _XFUNCS_H_ - -# include <X11/Xosdefs.h> - -/* the old Xfuncs.h, for pre-R6 */ -# if !(defined(XFree86LOADER) && defined(IN_MODULE)) - -# ifdef X_USEBFUNCS -void bcopy(); -void bzero(); -int bcmp(); -# else -# if defined(SYSV) && !defined(__SCO__) && !defined(__sun) && !defined(__UNIXWARE__) && !defined(_AIX) -# include <memory.h> -void bcopy(); -# define bzero(b,len) memset(b, 0, len) -# define bcmp(b1,b2,len) memcmp(b1, b2, len) -# else -# include <string.h> -# if defined(__SCO__) || defined(__sun) || defined(__UNIXWARE__) || defined(__CYGWIN__) || defined(_AIX) || defined(__APPLE__) -# include <strings.h> -# endif -# define _XFUNCS_H_INCLUDED_STRING_H -# endif -# endif /* X_USEBFUNCS */ - -/* the new Xfuncs.h */ - -/* the ANSI C way */ -# ifndef _XFUNCS_H_INCLUDED_STRING_H -# include <string.h> -# endif -# undef bzero -# define bzero(b,len) memset(b,0,len) - -# if defined WIN32 && defined __MINGW32__ -# define bcopy(b1,b2,len) memmove(b2, b1, (size_t)(len)) -# endif - -# endif /* !(defined(XFree86LOADER) && defined(IN_MODULE)) */ - -#endif /* _XFUNCS_H_ */ diff --git a/proto/x11proto/Xmd.h b/proto/x11proto/Xmd.h deleted file mode 100644 index 492465e6c..000000000 --- a/proto/x11proto/Xmd.h +++ /dev/null @@ -1,142 +0,0 @@ -/*********************************************************** - -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ -#ifndef XMD_H -# define XMD_H 1 -/* - * Xmd.h: MACHINE DEPENDENT DECLARATIONS. - */ - -/* - * Special per-machine configuration flags. - */ -# if defined(__sun) && defined(__SVR4) -# include <sys/isa_defs.h> /* Solaris: defines _LP64 if necessary */ -# endif - -# if defined (_LP64) || defined(__LP64__) || \ - defined(__alpha) || defined(__alpha__) || \ - defined(__ia64__) || defined(ia64) || \ - defined(__sparc64__) || \ - defined(__s390x__) || \ - defined(__amd64__) || defined(amd64) || \ - defined(__powerpc64__) -# if !defined(__ILP32__) /* amd64-x32 is 32bit */ -# define LONG64 /* 32/64-bit architecture */ -# endif /* !__ILP32__ */ -# endif - -/* - * Definition of macro used to set constants for size of network structures; - * machines with preprocessors that can't handle all of the sz_ symbols - * can define this macro to be sizeof(x) if and only if their compiler doesn't - * pad out structures (esp. the xTextElt structure which contains only two - * one-byte fields). Network structures should always define sz_symbols. - * - * The sz_ prefix is used instead of something more descriptive so that the - * symbols are no more than 32 characters long (which causes problems for some - * compilers and preprocessors). - * - * The extra indirection is to get macro arguments to expand correctly before - * the concatenation, rather than afterward. - */ -# define _SIZEOF(x) sz_##x -# define SIZEOF(x) _SIZEOF(x) - -/* - * Bitfield suffixes for the protocol structure elements, if you - * need them. Note that bitfields are not guaranteed to be signed - * (or even unsigned) according to ANSI C. - */ -# define B32 /* bitfield not needed on architectures with native 32-bit type */ -# define B16 /* bitfield not needed on architectures with native 16-bit type */ -# ifdef LONG64 -typedef long INT64; -typedef int INT32; -# else -typedef long INT32; -# endif -typedef short INT16; - -typedef signed char INT8; - -# ifdef LONG64 -typedef unsigned long CARD64; -typedef unsigned int CARD32; -# else -typedef unsigned long long CARD64; -typedef unsigned long CARD32; -# endif -typedef unsigned short CARD16; -typedef unsigned char CARD8; - -typedef CARD32 BITS32; -typedef CARD16 BITS16; - -typedef CARD8 BYTE; -typedef CARD8 BOOL; - -/* - * was definitions for sign-extending bitfields on architectures without - * native types smaller than 64-bit, now just backwards compatibility - */ -# define cvtINT8toInt(val) (val) -# define cvtINT16toInt(val) (val) -# define cvtINT32toInt(val) (val) -# define cvtINT8toShort(val) (val) -# define cvtINT16toShort(val) (val) -# define cvtINT32toShort(val) (val) -# define cvtINT8toLong(val) (val) -# define cvtINT16toLong(val) (val) -# define cvtINT32toLong(val) (val) - -/* - * this version should leave result of type (t *), but that should only be - * used when not in MUSTCOPY - */ -# define NEXTPTR(p,t) (((t *)(p)) + 1) - -#endif /* XMD_H */ diff --git a/proto/x11proto/Xos.h b/proto/x11proto/Xos.h deleted file mode 100644 index 28dfc673a..000000000 --- a/proto/x11proto/Xos.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - * - * The X Window System is a Trademark of The Open Group. - * - */ - -/* This is a collection of things to try and minimize system dependencies - * in a "significant" number of source files. - */ - -#ifndef _XOS_H_ -# define _XOS_H_ - -# include <X11/Xosdefs.h> - -/* - * Get major data types (esp. caddr_t) - */ - -# include <sys/types.h> - -# if defined(__SCO__) || defined(__UNIXWARE__) -# include <stdint.h> -# endif - - -/* - * Just about everyone needs the strings routines. We provide both forms here, - * index/rindex and strchr/strrchr, so any systems that don't provide them all - * need to have #defines here. - * - * These macros are defined this way, rather than, e.g.: - * #defined index(s,c) strchr(s,c) - * because someone might be using them as function pointers, and such - * a change would break compatibility for anyone who's relying on them - * being the way they currently are. So we're stuck with them this way, - * which can be really inconvenient. :-( - */ - -# include <string.h> -# if defined(__SCO__) || defined(__UNIXWARE__) || defined(__sun) || defined(__CYGWIN__) || defined(_AIX) || defined(__APPLE__) -# include <strings.h> -# else -# ifndef index -# define index(s,c) (strchr((s),(c))) -# endif -# ifndef rindex -# define rindex(s,c) (strrchr((s),(c))) -# endif -# endif - -/* - * Get open(2) constants - */ -# if defined(X_NOT_POSIX) -# include <fcntl.h> -# if defined(USL) || defined(__i386__) && (defined(SYSV) || defined(SVR4)) -# include <unistd.h> -# endif -# ifdef WIN32 -# include <X11/Xw32defs.h> -# else -# include <sys/file.h> -# endif -# else /* X_NOT_POSIX */ -# include <fcntl.h> -# include <unistd.h> -# endif /* X_NOT_POSIX else */ - -/* - * Get struct timeval and struct tm - */ - -# if defined(_POSIX_SOURCE) && defined(SVR4) -/* need to omit _POSIX_SOURCE in order to get what we want in SVR4 */ -# undef _POSIX_SOURCE -# include <sys/time.h> -# define _POSIX_SOURCE -# elif defined(WIN32) -# include <time.h> -# if !defined(_WINSOCKAPI_) && !defined(_WILLWINSOCK_) && !defined(_TIMEVAL_DEFINED) && !defined(_STRUCT_TIMEVAL) -struct timeval { - long tv_sec; /* seconds */ - long tv_usec; /* and microseconds */ -}; -# define _TIMEVAL_DEFINED -# endif -# include <sys/timeb.h> -# define gettimeofday(t) \ -{ \ - struct _timeb _gtodtmp; \ - _ftime (&_gtodtmp); \ - (t)->tv_sec = _gtodtmp.time; \ - (t)->tv_usec = _gtodtmp.millitm * 1000; \ -} -# else -# include <sys/time.h> -# include <time.h> -# endif /* defined(_POSIX_SOURCE) && defined(SVR4) */ - -/* define X_GETTIMEOFDAY macro, a portable gettimeofday() */ -# if defined(_XOPEN_XPG4) || defined(_XOPEN_UNIX) /* _XOPEN_UNIX is XPG4.2 */ -# define X_GETTIMEOFDAY(t) gettimeofday(t, (struct timezone*)0) -# else -# if defined(SVR4) || defined(__SVR4) || defined(WIN32) -# define X_GETTIMEOFDAY(t) gettimeofday(t) -# else -# define X_GETTIMEOFDAY(t) gettimeofday(t, (struct timezone*)0) -# endif -# endif /* XPG4 else */ - - -# ifdef __GNU__ -# define PATH_MAX 4096 -# define MAXPATHLEN 4096 -# define OPEN_MAX 256 /* We define a reasonable limit. */ -# endif - -/* use POSIX name for signal */ -# if defined(X_NOT_POSIX) && defined(SYSV) && !defined(SIGCHLD) -# define SIGCHLD SIGCLD -# endif - -# include <X11/Xarch.h> - -#endif /* _XOS_H_ */ diff --git a/proto/x11proto/Xos_r.h b/proto/x11proto/Xos_r.h deleted file mode 100644 index f963b6410..000000000 --- a/proto/x11proto/Xos_r.h +++ /dev/null @@ -1,1095 +0,0 @@ -/* -Copyright 1996, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. -*/ - -/* - * Various and sundry Thread-Safe functions used by X11, Motif, and CDE. - * - * Use this file in MT-safe code where you would have included - * <dirent.h> for readdir() - * <grp.h> for getgrgid() or getgrnam() - * <netdb.h> for gethostbyname(), gethostbyaddr(), or getservbyname() - * <pwd.h> for getpwnam() or getpwuid() - * <string.h> for strtok() - * <time.h> for asctime(), ctime(), localtime(), or gmtime() - * <unistd.h> for getlogin() or ttyname() - * or their thread-safe analogs. - * - * If you are on a platform that defines XTHREADS but does not have - * MT-safe system API (e.g. UnixWare) you must define _Xos_processLock - * and _Xos_processUnlock macros before including this header. - * - * For convenience XOS_USE_XLIB_LOCKING or XOS_USE_XT_LOCKING may be defined - * to obtain either Xlib-only or Xt-based versions of these macros. These - * macros won't result in truly thread-safe calls, but they are better than - * nothing. If you do not want locking in this situation define - * XOS_USE_NO_LOCKING. - * - * NOTE: On systems lacking appropriate _r functions Gethostbyname(), - * Gethostbyaddr(), and Getservbyname() do NOT copy the host or - * protocol lists! - * - * NOTE: On systems lacking appropriate _r functions Getgrgid() and - * Getgrnam() do NOT copy the list of group members! - * - * This header is nominally intended to simplify porting X11, Motif, and - * CDE; it may be useful to other people too. The structure below is - * complicated, mostly because P1003.1c (the IEEE POSIX Threads spec) - * went through lots of drafts, and some vendors shipped systems based - * on draft API that were changed later. Unfortunately POSIX did not - * provide a feature-test macro for distinguishing each of the drafts. - */ - -/* - * This header has several parts. Search for "Effective prototypes" - * to locate the beginning of a section. - */ - -/* This header can be included multiple times with different defines! */ -#ifndef _XOS_R_H_ -# define _XOS_R_H_ - -# include <X11/Xos.h> -# include <X11/Xfuncs.h> - -# ifndef X_NOT_POSIX -# ifdef _POSIX_SOURCE -# include <limits.h> -# else -# define _POSIX_SOURCE -# include <limits.h> -# undef _POSIX_SOURCE -# endif -# ifndef LINE_MAX -# define X_LINE_MAX 2048 -# else -# define X_LINE_MAX LINE_MAX -# endif -# endif -#endif /* _XOS_R_H */ - -#ifndef WIN32 - -#ifdef __cplusplus -extern "C" { -#endif - -# if defined(XOS_USE_XLIB_LOCKING) -# ifndef XAllocIDs /* Xlibint.h does not have multiple include protection */ -typedef struct _LockInfoRec *LockInfoPtr; -extern LockInfoPtr _Xglobal_lock; -# endif -# ifndef _Xos_isThreadInitialized -# define _Xos_isThreadInitialized (_Xglobal_lock) -# endif -# if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE) -# ifndef XAllocIDs /* Xlibint.h does not have multiple include protection */ -# include <X11/Xfuncproto.h> /* for NeedFunctionPrototypes */ -extern void (*_XLockMutex_fn)( -# if NeedFunctionPrototypes - LockInfoPtr /* lock */, char * /* file */, int /* line */ -# endif -); -extern void (*_XUnlockMutex_fn)( -# if NeedFunctionPrototypes - LockInfoPtr /* lock */, char * /* file */, int /* line */ -# endif -); -# endif -# ifndef _Xos_processLock -# define _Xos_processLock \ - (_XLockMutex_fn ? (*_XLockMutex_fn)(_Xglobal_lock,__FILE__,__LINE__) : 0) -# endif -# ifndef _Xos_processUnlock -# define _Xos_processUnlock \ - (_XUnlockMutex_fn ? (*_XUnlockMutex_fn)(_Xglobal_lock,__FILE__,__LINE__) : 0) -# endif -# else -# ifndef XAllocIDs /* Xlibint.h does not have multiple include protection */ -# include <X11/Xfuncproto.h> /* for NeedFunctionPrototypes */ -extern void (*_XLockMutex_fn)( -# if NeedFunctionPrototypes - LockInfoPtr /* lock */ -# endif -); -extern void (*_XUnlockMutex_fn)( -# if NeedFunctionPrototypes - LockInfoPtr /* lock */ -# endif -); -# endif -# ifndef _Xos_processLock -# define _Xos_processLock \ - (_XLockMutex_fn ? ((*_XLockMutex_fn)(_Xglobal_lock), 0) : 0) -# endif -# ifndef _Xos_processUnlock -# define _Xos_processUnlock \ - (_XUnlockMutex_fn ? ((*_XUnlockMutex_fn)(_Xglobal_lock), 0) : 0) -# endif -# endif -# elif defined(XOS_USE_XT_LOCKING) -# ifndef _XtThreadsI_h -extern void (*_XtProcessLock)(void); -# endif -# ifndef _XtintrinsicP_h -# include <X11/Xfuncproto.h> /* for NeedFunctionPrototypes */ -extern void XtProcessLock( -# if NeedFunctionPrototypes - void -# endif -); -extern void XtProcessUnlock( -# if NeedFunctionPrototypes - void -# endif -); -# endif -# ifndef _Xos_isThreadInitialized -# define _Xos_isThreadInitialized _XtProcessLock -# endif -# ifndef _Xos_processLock -# define _Xos_processLock XtProcessLock() -# endif -# ifndef _Xos_processUnlock -# define _Xos_processUnlock XtProcessUnlock() -# endif -# elif defined(XOS_USE_NO_LOCKING) -# ifndef _Xos_isThreadInitialized -# define _Xos_isThreadInitialized 0 -# endif -# ifndef _Xos_processLock -# define _Xos_processLock 0 -# endif -# ifndef _Xos_processUnlock -# define _Xos_processUnlock 0 -# endif -# endif - -#endif /* !defined WIN32 */ - -/* - * Solaris defines the POSIX thread-safe feature test macro, but - * uses the older SVR4 thread-safe functions unless the POSIX ones - * are specifically requested. Fix the feature test macro. - */ -#if defined(__sun) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && \ - (_POSIX_C_SOURCE - 0 < 199506L) && !defined(_POSIX_PTHREAD_SEMANTICS) -# undef _POSIX_THREAD_SAFE_FUNCTIONS -#endif - -/***** <pwd.h> wrappers *****/ - -/* - * Effective prototypes for <pwd.h> wrappers: - * - * #define X_INCLUDE_PWD_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xgetpwparams; - * - * struct passwd* _XGetpwnam(const char *name, _Xgetpwparams); - * struct passwd* _XGetpwuid(uid_t uid, _Xgetpwparams); - */ - -#if defined(X_INCLUDE_PWD_H) && !defined(_XOS_INCLUDED_PWD_H) -# include <pwd.h> -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_PWDAPI) -# define XOS_USE_MTSAFE_PWDAPI 1 -# endif -#endif - -#undef X_NEEDS_PWPARAMS -#if !defined(X_INCLUDE_PWD_H) || defined(_XOS_INCLUDED_PWD_H) -/* Do nothing */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -# if defined(X_NOT_POSIX) && !defined(__i386__) && !defined(SYSV) -extern struct passwd *getpwuid(), *getpwnam(); -# endif -typedef int _Xgetpwparams; /* dummy */ -# define _XGetpwuid(u,p) getpwuid((u)) -# define _XGetpwnam(u,p) getpwnam((u)) - -#elif !defined(XOS_USE_MTSAFE_PWDAPI) || defined(XNO_MTSAFE_PWDAPI) -/* UnixWare 2.0, or other systems with thread support but no _r API. */ -# define X_NEEDS_PWPARAMS -typedef struct { - struct passwd pws; - char pwbuf[1024]; - struct passwd* pwp; - size_t len; -} _Xgetpwparams; - -/* - * NetBSD and FreeBSD, at least, are missing several of the unixware passwd - * fields. - */ - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \ - defined(__APPLE__) || defined(__DragonFly__) -static __inline__ void _Xpw_copyPasswd(_Xgetpwparams p) -{ - memcpy(&(p).pws, (p).pwp, sizeof(struct passwd)); - - (p).pws.pw_name = (p).pwbuf; - (p).len = strlen((p).pwp->pw_name); - strcpy((p).pws.pw_name, (p).pwp->pw_name); - - (p).pws.pw_passwd = (p).pws.pw_name + (p).len + 1; - (p).len = strlen((p).pwp->pw_passwd); - strcpy((p).pws.pw_passwd,(p).pwp->pw_passwd); - - (p).pws.pw_class = (p).pws.pw_passwd + (p).len + 1; - (p).len = strlen((p).pwp->pw_class); - strcpy((p).pws.pw_class, (p).pwp->pw_class); - - (p).pws.pw_gecos = (p).pws.pw_class + (p).len + 1; - (p).len = strlen((p).pwp->pw_gecos); - strcpy((p).pws.pw_gecos, (p).pwp->pw_gecos); - - (p).pws.pw_dir = (p).pws.pw_gecos + (p).len + 1; - (p).len = strlen((p).pwp->pw_dir); - strcpy((p).pws.pw_dir, (p).pwp->pw_dir); - - (p).pws.pw_shell = (p).pws.pw_dir + (p).len + 1; - (p).len = strlen((p).pwp->pw_shell); - strcpy((p).pws.pw_shell, (p).pwp->pw_shell); - - (p).pwp = &(p).pws; -} - -#else -# define _Xpw_copyPasswd(p) \ - (memcpy(&(p).pws, (p).pwp, sizeof(struct passwd)), \ - ((p).pws.pw_name = (p).pwbuf), \ - ((p).len = strlen((p).pwp->pw_name)), \ - strcpy((p).pws.pw_name, (p).pwp->pw_name), \ - ((p).pws.pw_passwd = (p).pws.pw_name + (p).len + 1), \ - ((p).len = strlen((p).pwp->pw_passwd)), \ - strcpy((p).pws.pw_passwd,(p).pwp->pw_passwd), \ - ((p).pws.pw_age = (p).pws.pw_passwd + (p).len + 1), \ - ((p).len = strlen((p).pwp->pw_age)), \ - strcpy((p).pws.pw_age, (p).pwp->pw_age), \ - ((p).pws.pw_comment = (p).pws.pw_age + (p).len + 1), \ - ((p).len = strlen((p).pwp->pw_comment)), \ - strcpy((p).pws.pw_comment, (p).pwp->pw_comment), \ - ((p).pws.pw_gecos = (p).pws.pw_comment + (p).len + 1), \ - ((p).len = strlen((p).pwp->pw_gecos)), \ - strcpy((p).pws.pw_gecos, (p).pwp->pw_gecos), \ - ((p).pws.pw_dir = (p).pws.pw_comment + (p).len + 1), \ - ((p).len = strlen((p).pwp->pw_dir)), \ - strcpy((p).pws.pw_dir, (p).pwp->pw_dir), \ - ((p).pws.pw_shell = (p).pws.pw_dir + (p).len + 1), \ - ((p).len = strlen((p).pwp->pw_shell)), \ - strcpy((p).pws.pw_shell, (p).pwp->pw_shell), \ - ((p).pwp = &(p).pws), \ - 0 ) -#endif -# define _XGetpwuid(u,p) \ -( (_Xos_processLock), \ - (((p).pwp = getpwuid((u))) ? _Xpw_copyPasswd(p), 0 : 0), \ - (_Xos_processUnlock), \ - (p).pwp ) -# define _XGetpwnam(u,p) \ -( (_Xos_processLock), \ - (((p).pwp = getpwnam((u))) ? _Xpw_copyPasswd(p), 0 : 0), \ - (_Xos_processUnlock), \ - (p).pwp ) - -#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(__APPLE__) -# define X_NEEDS_PWPARAMS -typedef struct { - struct passwd pws; - char pwbuf[X_LINE_MAX]; -} _Xgetpwparams; -# if defined(_POSIX_REENTRANT_FUNCTIONS) || !defined(SVR4) -# define _XGetpwuid(u,p) \ -((getpwuid_r((u),&(p).pws,(p).pwbuf,sizeof((p).pwbuf)) == -1) ? NULL : &(p).pws) -# define _XGetpwnam(u,p) \ -((getpwnam_r((u),&(p).pws,(p).pwbuf,sizeof((p).pwbuf)) == -1) ? NULL : &(p).pws) -# else /* SVR4 */ -# define _XGetpwuid(u,p) \ -((getpwuid_r((u),&(p).pws,(p).pwbuf,sizeof((p).pwbuf)) == NULL) ? NULL : &(p).pws) -# define _XGetpwnam(u,p) \ -((getpwnam_r((u),&(p).pws,(p).pwbuf,sizeof((p).pwbuf)) == NULL) ? NULL : &(p).pws) -# endif /* SVR4 */ - -#else /* _POSIX_THREAD_SAFE_FUNCTIONS */ -# define X_NEEDS_PWPARAMS -typedef struct { - struct passwd pws; - char pwbuf[X_LINE_MAX]; - struct passwd* pwp; -} _Xgetpwparams; -typedef int _Xgetpwret; -# define _XGetpwuid(u,p) \ -((getpwuid_r((u),&(p).pws,(p).pwbuf,sizeof((p).pwbuf),&(p).pwp) == 0) ? \ - (p).pwp : NULL) -# define _XGetpwnam(u,p) \ -((getpwnam_r((u),&(p).pws,(p).pwbuf,sizeof((p).pwbuf),&(p).pwp) == 0) ? \ - (p).pwp : NULL) -#endif /* X_INCLUDE_PWD_H */ - -#if defined(X_INCLUDE_PWD_H) && !defined(_XOS_INCLUDED_PWD_H) -# define _XOS_INCLUDED_PWD_H -#endif - - -/***** <netdb.h> wrappers *****/ - -/* - * Effective prototypes for <netdb.h> wrappers: - * - * NOTE: On systems lacking the appropriate _r functions Gethostbyname(), - * Gethostbyaddr(), and Getservbyname() do NOT copy the host or - * protocol lists! - * - * #define X_INCLUDE_NETDB_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xgethostbynameparams; - * typedef ... _Xgetservbynameparams; - * - * struct hostent* _XGethostbyname(const char* name,_Xgethostbynameparams); - * struct hostent* _XGethostbyaddr(const char* addr, int len, int type, - * _Xgethostbynameparams); - * struct servent* _XGetservbyname(const char* name, const char* proto, - * _Xgetservbynameparams); - */ - -#undef XTHREADS_NEEDS_BYNAMEPARAMS -#if defined(X_INCLUDE_NETDB_H) && !defined(_XOS_INCLUDED_NETDB_H) \ - && !defined(WIN32) -# include <netdb.h> -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_NETDBAPI) -# define XOS_USE_MTSAFE_NETDBAPI 1 -# endif -#endif - -#if !defined(X_INCLUDE_NETDB_H) || defined(_XOS_INCLUDED_NETDB_H) -/* Do nothing. */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -typedef int _Xgethostbynameparams; /* dummy */ -typedef int _Xgetservbynameparams; /* dummy */ -# define _XGethostbyname(h,hp) gethostbyname((h)) -# define _XGethostbyaddr(a,al,t,hp) gethostbyaddr((a),(al),(t)) -# define _XGetservbyname(s,p,sp) getservbyname((s),(p)) - -#elif !defined(XOS_USE_MTSAFE_NETDBAPI) || defined(XNO_MTSAFE_NETDBAPI) -/* WARNING: The h_addr_list and s_aliases values are *not* copied! */ - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) -#include <sys/param.h> -#endif - -typedef struct { - struct hostent hent; - char h_name[MAXHOSTNAMELEN]; - struct hostent *hptr; -} _Xgethostbynameparams; -typedef struct { - struct servent sent; - char s_name[255]; - char s_proto[255]; - struct servent *sptr; -} _Xgetservbynameparams; - -# define XTHREADS_NEEDS_BYNAMEPARAMS - -# define _Xg_copyHostent(hp) \ - (memcpy(&(hp).hent, (hp).hptr, sizeof(struct hostent)), \ - strcpy((hp).h_name, (hp).hptr->h_name), \ - ((hp).hent.h_name = (hp).h_name), \ - ((hp).hptr = &(hp).hent), \ - 0 ) -# define _Xg_copyServent(sp) \ - (memcpy(&(sp).sent, (sp).sptr, sizeof(struct servent)), \ - strcpy((sp).s_name, (sp).sptr->s_name), \ - ((sp).sent.s_name = (sp).s_name), \ - strcpy((sp).s_proto, (sp).sptr->s_proto), \ - ((sp).sent.s_proto = (sp).s_proto), \ - ((sp).sptr = &(sp).sent), \ - 0 ) -# define _XGethostbyname(h,hp) \ - ((_Xos_processLock), \ - (((hp).hptr = gethostbyname((h))) ? _Xg_copyHostent(hp) : 0), \ - (_Xos_processUnlock), \ - (hp).hptr ) -# define _XGethostbyaddr(a,al,t,hp) \ - ((_Xos_processLock), \ - (((hp).hptr = gethostbyaddr((a),(al),(t))) ? _Xg_copyHostent(hp) : 0), \ - (_Xos_processUnlock), \ - (hp).hptr ) -# define _XGetservbyname(s,p,sp) \ - ((_Xos_processLock), \ - (((sp).sptr = getservbyname((s),(p))) ? _Xg_copyServent(sp) : 0), \ - (_Xos_processUnlock), \ - (sp).sptr ) - -#elif defined(XUSE_NETDB_R_API) -/* - * POSIX does not specify _r equivalents for <netdb.h> API, but some - * vendors provide them anyway. Use them only when explicitly asked. - */ -# ifdef _POSIX_REENTRANT_FUNCTIONS -# ifndef _POSIX_THREAD_SAFE_FUNCTIONS -# endif -# endif -# ifdef _POSIX_THREAD_SAFE_FUNCTIONS -# define X_POSIX_THREAD_SAFE_FUNCTIONS 1 -# endif - -# define XTHREADS_NEEDS_BYNAMEPARAMS - -# ifndef X_POSIX_THREAD_SAFE_FUNCTIONS -typedef struct { - struct hostent hent; - char hbuf[X_LINE_MAX]; - int herr; -} _Xgethostbynameparams; -typedef struct { - struct servent sent; - char sbuf[X_LINE_MAX]; -} _Xgetservbynameparams; -# define _XGethostbyname(h,hp) \ - gethostbyname_r((h),&(hp).hent,(hp).hbuf,sizeof((hp).hbuf),&(hp).herr) -# define _XGethostbyaddr(a,al,t,hp) \ - gethostbyaddr_r((a),(al),(t),&(hp).hent,(hp).hbuf,sizeof((hp).hbuf),&(hp).herr) -# define _XGetservbyname(s,p,sp) \ - getservbyname_r((s),(p),&(sp).sent,(sp).sbuf,sizeof((sp).sbuf)) -# else -typedef struct { - struct hostent hent; - struct hostent_data hdata; -} _Xgethostbynameparams; -typedef struct { - struct servent sent; - struct servent_data sdata; -} _Xgetservbynameparams; -# define _XGethostbyname(h,hp) \ - (bzero((char*)&(hp).hdata,sizeof((hp).hdata)), \ - ((gethostbyname_r((h),&(hp).hent,&(hp).hdata) == -1) ? NULL : &(hp).hent)) -# define _XGethostbyaddr(a,al,t,hp) \ - (bzero((char*)&(hp).hdata,sizeof((hp).hdata)), \ - ((gethostbyaddr_r((a),(al),(t),&(hp).hent,&(hp).hdata) == -1) ? NULL : &(hp).hent)) -# define _XGetservbyname(s,p,sp) \ - (bzero((char*)&(sp).sdata,sizeof((sp).sdata)), \ - ((getservbyname_r((s),(p),&(sp).sent,&(sp).sdata) == -1) ? NULL : &(sp).sent) ) -# endif -# ifdef X_POSIX_THREAD_SAFE_FUNCTIONS -# undef X_POSIX_THREAD_SAFE_FUNCTIONS -# endif - -#else -/* The regular API is assumed to be MT-safe under POSIX. */ -typedef int _Xgethostbynameparams; /* dummy */ -typedef int _Xgetservbynameparams; /* dummy */ -# define _XGethostbyname(h,hp) gethostbyname((h)) -# define _XGethostbyaddr(a,al,t,hp) gethostbyaddr((a),(al),(t)) -# define _XGetservbyname(s,p,sp) getservbyname((s),(p)) -#endif /* X_INCLUDE_NETDB_H */ - -#if defined(X_INCLUDE_NETDB_H) && !defined(_XOS_INCLUDED_NETDB_H) -# define _XOS_INCLUDED_NETDB_H -#endif - - -/***** <dirent.h> wrappers *****/ - -/* - * Effective prototypes for <dirent.h> wrappers: - * - * #define X_INCLUDE_DIRENT_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xreaddirparams; - * - * struct dirent *_XReaddir(DIR *dir_pointer, _Xreaddirparams); - */ - -#if defined(X_INCLUDE_DIRENT_H) && !defined(_XOS_INCLUDED_DIRENT_H) -# include <sys/types.h> -# if !defined(X_NOT_POSIX) || defined(SYSV) -# include <dirent.h> -# else -# include <sys/dir.h> -# ifndef dirent -# define dirent direct -# endif -# endif -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_DIRENTAPI) -# define XOS_USE_MTSAFE_DIRENTAPI 1 -# endif -#endif - -#if !defined(X_INCLUDE_DIRENT_H) || defined(_XOS_INCLUDED_DIRENT_H) -/* Do nothing. */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -typedef int _Xreaddirparams; /* dummy */ -# define _XReaddir(d,p) readdir(d) - -#elif !defined(XOS_USE_MTSAFE_DIRENTAPI) || defined(XNO_MTSAFE_DIRENTAPI) -/* Systems with thread support but no _r API. */ -typedef struct { - struct dirent *result; - struct dirent dir_entry; -# ifdef _POSIX_PATH_MAX - char buf[_POSIX_PATH_MAX]; -# elif defined(NAME_MAX) - char buf[NAME_MAX]; -# else - char buf[255]; -# endif -} _Xreaddirparams; - -# define _XReaddir(d,p) \ - ( (_Xos_processLock), \ - (((p).result = readdir((d))) ? \ - (memcpy(&((p).dir_entry), (p).result, (p).result->d_reclen), \ - ((p).result = &(p).dir_entry), 0) : \ - 0), \ - (_Xos_processUnlock), \ - (p).result ) - -#else -typedef struct { - struct dirent *result; - struct dirent dir_entry; -# ifdef _POSIX_PATH_MAX - char buf[_POSIX_PATH_MAX]; -# elif defined(NAME_MAX) - char buf[NAME_MAX]; -# else - char buf[255]; -# endif -} _Xreaddirparams; - -# if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(__APPLE__) -/* POSIX final API, returns (int)0 on success. */ -# define _XReaddir(d,p) \ - (readdir_r((d), &((p).dir_entry), &((p).result)) ? NULL : (p).result) -# elif defined(_POSIX_REENTRANT_FUNCTIONS) -/* POSIX draft API, returns (int)0 on success. */ -# define _XReaddir(d,p) \ - (readdir_r((d),&((p).dir_entry)) ? NULL : &((p).dir_entry)) -# elif defined(SVR4) -/* Pre-POSIX API, returns non-NULL on success. */ -# define _XReaddir(d,p) (readdir_r((d), &(p).dir_entry)) -# else -/* We have no idea what is going on. Fake it all using process locks. */ -# define _XReaddir(d,p) \ - ( (_Xos_processLock), \ - (((p).result = readdir((d))) ? \ - (memcpy(&((p).dir_entry), (p).result, (p).result->d_reclen), \ - ((p).result = &(p).dir_entry), 0) : \ - 0), \ - (_Xos_processUnlock), \ - (p).result ) -# endif -#endif /* X_INCLUDE_DIRENT_H */ - -#if defined(X_INCLUDE_DIRENT_H) && !defined(_XOS_INCLUDED_DIRENT_H) -# define _XOS_INCLUDED_DIRENT_H -#endif - - -/***** <unistd.h> wrappers *****/ - -/* - * Effective prototypes for <unistd.h> wrappers: - * - * #define X_INCLUDE_UNISTD_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xgetloginparams; - * typedef ... _Xttynameparams; - * - * char *_XGetlogin(_Xgetloginparams); - * char *_XTtyname(int, _Xttynameparams); - */ - -#if defined(X_INCLUDE_UNISTD_H) && !defined(_XOS_INCLUDED_UNISTD_H) -/* <unistd.h> already included by <X11/Xos.h> */ -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_UNISTDAPI) -# define XOS_USE_MTSAFE_UNISTDAPI 1 -# endif -#endif - -#if !defined(X_INCLUDE_UNISTD_H) || defined(_XOS_INCLUDED_UNISTD_H) -/* Do nothing. */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -typedef int _Xgetloginparams; /* dummy */ -typedef int _Xttynameparams; /* dummy */ -# define _XGetlogin(p) getlogin() -# define _XTtyname(f) ttyname((f)) - -#elif !defined(XOS_USE_MTSAFE_UNISTDAPI) || defined(XNO_MTSAFE_UNISTDAPI) -/* Systems with thread support but no _r API. */ -typedef struct { - char *result; -# if defined(MAXLOGNAME) - char buf[MAXLOGNAME]; -# elif defined(LOGIN_NAME_MAX) - char buf[LOGIN_NAME_MAX]; -# else - char buf[64]; -# endif -} _Xgetloginparams; -typedef struct { - char *result; -# ifdef TTY_NAME_MAX - char buf[TTY_NAME_MAX]; -# elif defined(_POSIX_TTY_NAME_MAX) - char buf[_POSIX_TTY_NAME_MAX]; -# elif defined(_POSIX_PATH_MAX) - char buf[_POSIX_PATH_MAX]; -# else - char buf[256]; -# endif -} _Xttynameparams; - -# define _XGetlogin(p) \ - ( (_Xos_processLock), \ - (((p).result = getlogin()) ? \ - (strncpy((p).buf, (p).result, sizeof((p).buf)), \ - ((p).buf[sizeof((p).buf)-1] = '\0'), \ - ((p).result = (p).buf), 0) : 0), \ - (_Xos_processUnlock), \ - (p).result ) -#define _XTtyname(f,p) \ - ( (_Xos_processLock), \ - (((p).result = ttyname(f)) ? \ - (strncpy((p).buf, (p).result, sizeof((p).buf)), \ - ((p).buf[sizeof((p).buf)-1] = '\0'), \ - ((p).result = (p).buf), 0) : 0), \ - (_Xos_processUnlock), \ - (p).result ) - -#elif defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(_POSIX_REENTRANT_FUNCTIONS) -/* POSIX API. - * - * extern int getlogin_r(char *, size_t); - * extern int ttyname_r(int, char *, size_t); - */ -typedef struct { -# if defined(MAXLOGNAME) - char buf[MAXLOGNAME]; -# elif defined(LOGIN_NAME_MAX) - char buf[LOGIN_NAME_MAX]; -# else - char buf[64]; -# endif -} _Xgetloginparams; -typedef struct { -# ifdef TTY_NAME_MAX - char buf[TTY_NAME_MAX]; -# elif defined(_POSIX_TTY_NAME_MAX) - char buf[_POSIX_TTY_NAME_MAX]; -# elif defined(_POSIX_PATH_MAX) - char buf[_POSIX_PATH_MAX]; -# else - char buf[256]; -# endif -} _Xttynameparams; - -# define _XGetlogin(p) (getlogin_r((p).buf, sizeof((p).buf)) ? NULL : (p).buf) -# define _XTtyname(f,p) \ - (ttyname_r((f), (p).buf, sizeof((p).buf)) ? NULL : (p).buf) - -#else -/* Pre-POSIX API. - * - * extern char *getlogin_r(char *, size_t); - * extern char *ttyname_r(int, char *, size_t); - */ -typedef struct { -# if defined(MAXLOGNAME) - char buf[MAXLOGNAME]; -# elif defined(LOGIN_NAME_MAX) - char buf[LOGIN_NAME_MAX]; -# else - char buf[64]; -# endif -} _Xgetloginparams; -typedef struct { -# ifdef TTY_NAME_MAX - char buf[TTY_NAME_MAX]; -# elif defined(_POSIX_TTY_NAME_MAX) - char buf[_POSIX_TTY_NAME_MAX]; -# elif defined(_POSIX_PATH_MAX) - char buf[_POSIX_PATH_MAX]; -# else - char buf[256]; -# endif -} _Xttynameparams; - -# define _XGetlogin(p) getlogin_r((p).buf, sizeof((p).buf)) -# define _XTtyname(f,p) ttyname_r((f), (p).buf, sizeof((p).buf)) -#endif /* X_INCLUDE_UNISTD_H */ - -#if defined(X_INCLUDE_UNISTD_H) && !defined(_XOS_INCLUDED_UNISTD_H) -# define _XOS_INCLUDED_UNISTD_H -#endif - - -/***** <string.h> wrappers *****/ - -/* - * Effective prototypes for <string.h> wrappers: - * - * #define X_INCLUDE_STRING_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xstrtokparams; - * - * char *_XStrtok(char *, const char*, _Xstrtokparams); - */ - -#if defined(X_INCLUDE_STRING_H) && !defined(_XOS_INCLUDED_STRING_H) -/* <string.h> has already been included by <X11/Xos.h> */ -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_STRINGAPI) -# define XOS_USE_MTSAFE_STRINGAPI 1 -# endif -#endif - -#if !defined(X_INCLUDE_STRING_H) || defined(_XOS_INCLUDED_STRING_H) -/* Do nothing. */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -typedef int _Xstrtokparams; /* dummy */ -# define _XStrtok(s1,s2,p) \ - ( p = 0, (void)p, strtok((s1),(s2)) ) - -#elif !defined(XOS_USE_MTSAFE_STRINGAPI) || defined(XNO_MTSAFE_STRINGAPI) -/* Systems with thread support but no _r API. */ -typedef char *_Xstrtokparams; -# define _XStrtok(s1,s2,p) \ - ( (_Xos_processLock), \ - ((p) = strtok((s1),(s2))), \ - (_Xos_processUnlock), \ - (p) ) - -#else -/* POSIX or pre-POSIX API. */ -typedef char * _Xstrtokparams; -# define _XStrtok(s1,s2,p) strtok_r((s1),(s2),&(p)) -#endif /* X_INCLUDE_STRING_H */ - - -/***** <time.h> wrappers *****/ - -/* - * Effective prototypes for <time.h> wrappers: - * - * #define X_INCLUDE_TIME_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xatimeparams; - * typedef ... _Xctimeparams; - * typedef ... _Xgtimeparams; - * typedef ... _Xltimeparams; - * - * char *_XAsctime(const struct tm *, _Xatimeparams); - * char *_XCtime(const time_t *, _Xctimeparams); - * struct tm *_XGmtime(const time_t *, _Xgtimeparams); - * struct tm *_XLocaltime(const time_t *, _Xltimeparams); - */ - -#if defined(X_INCLUDE_TIME_H) && !defined(_XOS_INCLUDED_TIME_H) -# include <time.h> -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_TIMEAPI) -# define XOS_USE_MTSAFE_TIMEAPI 1 -# endif -#endif - -#if !defined(X_INCLUDE_TIME_H) || defined(_XOS_INCLUDED_TIME_H) -/* Do nothing. */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -typedef int _Xatimeparams; /* dummy */ -# define _XAsctime(t,p) asctime((t)) -typedef int _Xctimeparams; /* dummy */ -# define _XCtime(t,p) ctime((t)) -typedef int _Xgtimeparams; /* dummy */ -# define _XGmtime(t,p) gmtime((t)) -typedef int _Xltimeparams; /* dummy */ -# define _XLocaltime(t,p) localtime((t)) - -#elif !defined(XOS_USE_MTSAFE_TIMEAPI) || defined(XNO_MTSAFE_TIMEAPI) -/* Systems with thread support but no _r API. */ -typedef struct { -# ifdef TIMELEN - char buf[TIMELEN]; -# else - char buf[26]; -# endif - char *result; -} _Xctimeparams, _Xatimeparams; -typedef struct { - struct tm buf; - struct tm *result; -} _Xgtimeparams, _Xltimeparams; -# define _XAsctime(t,p) \ - ( (_Xos_processLock), \ - (((p).result = asctime((t))) ? \ - (strncpy((p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \ - 0), \ - (_Xos_processUnlock), \ - (p).result ) -# define _XCtime(t,p) \ - ( (_Xos_processLock), \ - (((p).result = ctime((t))) ? \ - (strncpy((p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \ - 0), \ - (_Xos_processUnlock), \ - (p).result ) -# define _XGmtime(t,p) \ - ( (_Xos_processLock), \ - (((p).result = gmtime(t)) ? \ - (memcpy(&(p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \ - 0), \ - (_Xos_processUnlock), \ - (p).result ) -# define _XLocaltime(t,p) \ - ( (_Xos_processLock), \ - (((p).result = localtime(t)) ? \ - (memcpy(&(p).buf, (p).result, sizeof((p).buf)), (p).result = &(p).buf) : \ - 0), \ - (_Xos_processUnlock), \ - (p).result ) - -#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && defined(hpV4) -/* Returns (int)0 on success. - * - * extern int asctime_r(const struct tm *timeptr, char *buffer, int buflen); - * extern int ctime_r(const time_t *timer, char *buffer, int buflen); - * extern int gmtime_r(const time_t *timer, struct tm *result); - * extern int localtime_r(const time_t *timer, struct tm *result); - */ -# ifdef TIMELEN -typedef char _Xatimeparams[TIMELEN]; -typedef char _Xctimeparams[TIMELEN]; -# else -typedef char _Xatimeparams[26]; -typedef char _Xctimeparams[26]; -# endif -typedef struct tm _Xgtimeparams; -typedef struct tm _Xltimeparams; -# define _XAsctime(t,p) (asctime_r((t),(p),sizeof((p))) ? NULL : (p)) -# define _XCtime(t,p) (ctime_r((t),(p),sizeof((p))) ? NULL : (p)) -# define _XGmtime(t,p) (gmtime_r((t),&(p)) ? NULL : &(p)) -# define _XLocaltime(t,p) (localtime_r((t),&(p)) ? NULL : &(p)) - -#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && defined(__sun) -/* Returns NULL on failure. Solaris 2.5 - * - * extern char *asctime_r(const struct tm *tm,char *buf, int buflen); - * extern char *ctime_r(const time_t *clock, char *buf, int buflen); - * extern struct tm *gmtime_r(const time_t *clock, struct tm *res); - * extern struct tm *localtime_r(const time_t *clock, struct tm *res); - */ -# ifdef TIMELEN -typedef char _Xatimeparams[TIMELEN]; -typedef char _Xctimeparams[TIMELEN]; -# else -typedef char _Xatimeparams[26]; -typedef char _Xctimeparams[26]; -# endif -typedef struct tm _Xgtimeparams; -typedef struct tm _Xltimeparams; -# define _XAsctime(t,p) asctime_r((t),(p),sizeof((p))) -# define _XCtime(t,p) ctime_r((t),(p),sizeof((p))) -# define _XGmtime(t,p) gmtime_r((t),&(p)) -# define _XLocaltime(t,p) localtime_r((t),&(p)) - -#else /* defined(_POSIX_THREAD_SAFE_FUNCTIONS) */ -/* POSIX final API. - * extern char *asctime_r(const struct tm *timeptr, char *buffer); - * extern char *ctime_r(const time_t *timer, char *buffer); - * extern struct tm *gmtime_r(const time_t *timer, struct tm *result); - * extern struct tm *localtime_r(const time_t *timer, struct tm *result); - */ -# ifdef TIMELEN -typedef char _Xatimeparams[TIMELEN]; -typedef char _Xctimeparams[TIMELEN]; -# else -typedef char _Xatimeparams[26]; -typedef char _Xctimeparams[26]; -# endif -typedef struct tm _Xgtimeparams; -typedef struct tm _Xltimeparams; -# define _XAsctime(t,p) asctime_r((t),(p)) -# define _XCtime(t,p) ctime_r((t),(p)) -# define _XGmtime(t,p) gmtime_r((t),&(p)) -# define _XLocaltime(t,p) localtime_r((t),&(p)) -#endif /* X_INCLUDE_TIME_H */ - -#if defined(X_INCLUDE_TIME_H) && !defined(_XOS_INCLUDED_TIME_H) -# define _XOS_INCLUDED_TIME_H -#endif - - -/***** <grp.h> wrappers *****/ - -/* - * Effective prototypes for <grp.h> wrappers: - * - * NOTE: On systems lacking appropriate _r functions Getgrgid() and - * Getgrnam() do NOT copy the list of group members! - * - * Remember that fgetgrent(), setgrent(), getgrent(), and endgrent() - * are not included in POSIX. - * - * #define X_INCLUDE_GRP_H - * #define XOS_USE_..._LOCKING - * #include <X11/Xos_r.h> - * - * typedef ... _Xgetgrparams; - * - * struct group *_XGetgrgid(gid_t, _Xgetgrparams); - * struct group *_XGetgrnam(const char *, _Xgetgrparams); - */ - -#if defined(X_INCLUDE_GRP_H) && !defined(_XOS_INCLUDED_GRP_H) -# include <grp.h> -# if defined(XUSE_MTSAFE_API) || defined(XUSE_MTSAFE_GRPAPI) -# define XOS_USE_MTSAFE_GRPAPI 1 -# endif -#endif - -#if !defined(X_INCLUDE_GRP_H) || defined(_XOS_INCLUDED_GRP_H) -/* Do nothing. */ - -#elif !defined(XTHREADS) && !defined(X_FORCE_USE_MTSAFE_API) -/* Use regular, unsafe API. */ -typedef int _Xgetgrparams; /* dummy */ -#define _XGetgrgid(g,p) getgrgid((g)) -#define _XGetgrnam(n,p) getgrnam((n)) - -#elif !defined(XOS_USE_MTSAFE_GRPAPI) || defined(XNO_MTSAFE_GRPAPI) -/* Systems with thread support but no _r API. UnixWare 2.0. */ -typedef struct { - struct group grp; - char buf[X_LINE_MAX]; /* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */ - struct group *pgrp; - size_t len; -} _Xgetgrparams; -#ifdef SVR4 -/* Copy the gr_passwd field too. */ -# define _Xgrp_copyGroup(p) \ - ( memcpy(&(p).grp, (p).pgrp, sizeof(struct group)), \ - ((p).grp.gr_name = (p).buf), \ - ((p).len = strlen((p).pgrp->gr_name)), \ - strcpy((p).grp.gr_name, (p).pgrp->gr_name), \ - ((p).grp.gr_passwd = (p).grp.gr_name + (p).len + 1), \ - ((p).pgrp = &(p).grp), \ - 0 ) -#else -# define _Xgrp_copyGroup(p) \ - ( memcpy(&(p).grp, (p).pgrp, sizeof(struct group)), \ - ((p).grp.gr_name = (p).buf), \ - strcpy((p).grp.gr_name, (p).pgrp->gr_name), \ - ((p).pgrp = &(p).grp), \ - 0 ) -#endif -#define _XGetgrgid(g,p) \ - ( (_Xos_processLock), \ - (((p).pgrp = getgrgid((g))) ? _Xgrp_copyGroup(p) : 0), \ - (_Xos_processUnlock), \ - (p).pgrp ) -#define _XGetgrnam(n,p) \ - ( (_Xos_processLock), \ - (((p).pgrp = getgrnam((n))) ? _Xgrp_copyGroup(p) : 0), \ - (_Xos_processUnlock), \ - (p).pgrp ) - -#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && defined(__sun) -/* Non-POSIX API. Solaris. - * - * extern struct group *getgrgid_r(gid_t, struct group *, char *, int); - * extern struct group *getgrnam_r(const char *, struct group *, char *, int); - */ -typedef struct { - struct group grp; - char buf[X_LINE_MAX]; /* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */ -} _Xgetgrparams; -#define _XGetgrgid(g,p) getgrgid_r((g), &(p).grp, (p).buf, sizeof((p).buf)) -#define _XGetgrnam(n,p) getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf)) - -#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) -/* Non-POSIX API. - * extern int getgrgid_r(gid_t, struct group *, char *, int); - * extern int getgrnam_r(const char *, struct group *, char *, int); - */ -typedef struct { - struct group grp; - char buf[X_LINE_MAX]; /* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */ -} _Xgetgrparams; -#define _XGetgrgid(g,p) \ - ((getgrgid_r((g), &(p).grp, (p).buf, sizeof((p).buf)) ? NULL : &(p).grp)) -#define _XGetgrnam(n,p) \ - ((getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf)) ? NULL : &(p).grp)) - -#else -/* POSIX final API. - * - * int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **); - * int getgrnam_r(const char *, struct group *, char *, size_t, struct group **); - */ -typedef struct { - struct group grp; - char buf[X_LINE_MAX]; /* Should be sysconf(_SC_GETGR_R_SIZE_MAX)? */ - struct group *result; -} _Xgetgrparams; - -#define _XGetgrgid(g,p) \ - ((getgrgid_r((g), &(p).grp, (p).buf, sizeof((p).buf), &(p).result) ? \ - NULL : (p).result)) -#define _XGetgrnam(n,p) \ - ((getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf), &(p).result) ? \ - NULL : (p).result)) -#endif - -#if defined(X_INCLUDE_GRP_H) && !defined(_XOS_INCLUDED_GRP_H) -# define _XOS_INCLUDED_GRP_H -#endif - - -#ifdef __cplusplus -} /* Close scope of 'extern "C"' declaration which encloses file. */ -#endif diff --git a/proto/x11proto/Xosdefs.h b/proto/x11proto/Xosdefs.h deleted file mode 100644 index 33eaee436..000000000 --- a/proto/x11proto/Xosdefs.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * O/S-dependent (mis)feature macro definitions - * -Copyright 1991, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - */ - -#ifndef _XOSDEFS_H_ -# define _XOSDEFS_H_ - -/* - * X_NOT_POSIX means does not have POSIX header files. Lack of this - * symbol does NOT mean that the POSIX environment is the default. - * You may still have to define _POSIX_SOURCE to get it. - */ - - -# ifdef _SCO_DS -# ifndef __SCO__ -# define __SCO__ -# endif -# endif - -# ifdef __i386__ -# ifdef SYSV -# if !defined(__SCO__) && \ - !defined(__UNIXWARE__) && !defined(__sun) -# if !defined(_POSIX_SOURCE) -# define X_NOT_POSIX -# endif -# endif -# endif -# endif - -# ifdef __sun -/* Imake configs define SVR4 on Solaris, but cc & gcc only define __SVR4 - * This check allows non-Imake configured programs to build correctly. - */ -# if defined(__SVR4) && !defined(SVR4) -# define SVR4 1 -# endif -# ifdef SVR4 -/* define this to whatever it needs to be */ -# define X_POSIX_C_SOURCE 199300L -# endif -# endif - -# ifdef WIN32 -# ifndef _POSIX_ -# define X_NOT_POSIX -# endif -# endif - - -# ifdef __APPLE__ -# define NULL_NOT_ZERO - -/* Defining any of these will sanitize the namespace to JUST want is defined by - * that particular standard. If that happens, we don't get some expected - * prototypes, typedefs, etc (like fd_mask). We can define _DARWIN_C_SOURCE to - * loosen our belts a tad. - */ -# if defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) -# ifndef _DARWIN_C_SOURCE -# define _DARWIN_C_SOURCE -# endif -# endif - -# endif - -# ifdef __GNU__ -# ifndef PATH_MAX -# define PATH_MAX 4096 -# endif -# ifndef MAXPATHLEN -# define MAXPATHLEN 4096 -# endif -# endif - -# if defined(__SCO__) || defined(__UNIXWARE__) -# ifndef PATH_MAX -# define PATH_MAX 1024 -# endif -# ifndef MAXPATHLEN -# define MAXPATHLEN 1024 -# endif -# endif - -# if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) \ - || defined(__APPLE__) || defined(__DragonFly__) -# ifndef CSRG_BASED -# define CSRG_BASED -# endif -# endif - -#endif /* _XOSDEFS_H_ */ - diff --git a/proto/x11proto/Xpoll.h.in b/proto/x11proto/Xpoll.h.in deleted file mode 100644 index 9f127e106..000000000 --- a/proto/x11proto/Xpoll.h.in +++ /dev/null @@ -1,230 +0,0 @@ -/* - -Copyright 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 OPEN GROUP 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 name of The Open Group 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 Open Group. - -*/ - -/* - * Copyright © 2005 Daniel Stone - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Daniel Stone not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. Daniel Stone makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * DANIEL STONE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * DANIEL STONE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR - * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#ifndef _XPOLL_H_ -#define _XPOLL_H_ - -#if !defined(WIN32) || defined(__CYGWIN__) - -#ifndef USE_POLL - -#include <X11/Xos.h> - -#include <sys/select.h> /* Get the FD_* macros. */ - -#include <X11/Xmd.h> - -#ifdef CSRG_BASED -#include <sys/param.h> -# if BSD < 199103 -typedef long fd_mask; -# endif -#endif - -#if defined(FD_SETSIZE) && FD_SETSIZE < 512 -# define XFD_SETSIZE FD_SETSIZE -#else -# define XFD_SETSIZE 512 -# ifndef FD_SETSIZE -# define FD_SETSIZE XFD_SETSIZE -# endif -#endif - -#ifndef NBBY -#define NBBY 8 /* number of bits in a byte */ -#endif - -#ifndef NFDBITS -#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ -#endif - -#ifndef howmany -#define howmany(x,y) (((x)+((y)-1))/(y)) -#endif - -#if defined(BSD) && BSD < 198911 -typedef struct fd_set { - fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; -} fd_set; -#endif - -# define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t) - -#define __X_FDS_BITS @USE_FDS_BITS@ - -#ifndef __FDS_BITS -# define __FDS_BITS(p) ((p)->__X_FDS_BITS) -#endif - -#define __XFDS_BITS(p, n) (__FDS_BITS(p))[n] - -#ifndef FD_SET -#define FD_SET(n, p) (__XFDS_BITS(p, ((n)/NFDBITS)) |= ((fd_mask)1 << ((n) % NFDBITS))) -#endif -#ifndef FD_CLR -#define FD_CLR(n, p) (__XFDS_BITS((p), ((n)/NFDBITS)) &= ~((fd_mask)1 << ((n) % NFDBITS))) -#endif -#ifndef FD_ISSET -#define FD_ISSET(n, p) ((__XFDS_BITS((p), ((n)/NFDBITS))) & ((fd_mask)1 << ((n) % NFDBITS))) -#endif -#ifndef FD_ZERO -#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) -#endif - -/* - * The howmany(FD_SETSIZE, NFDBITS) computes the number of elements in the - * array. before accessing an element in the array we check it exists. - * If it does not exist then the compiler discards the code to access it. - */ -#define XFD_ANYSET(p) \ - ((howmany(FD_SETSIZE, NFDBITS) > 0 && (__XFDS_BITS(p, 0))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 1 && (__XFDS_BITS(p, 1))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 2 && (__XFDS_BITS(p, 2))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 3 && (__XFDS_BITS(p, 3))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 4 && (__XFDS_BITS(p, 4))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 5 && (__XFDS_BITS(p, 5))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 6 && (__XFDS_BITS(p, 6))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 7 && (__XFDS_BITS(p, 7))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 8 && (__XFDS_BITS(p, 8))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 9 && (__XFDS_BITS(p, 9))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 10 && (__XFDS_BITS(p, 10))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 11 && (__XFDS_BITS(p, 11))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 12 && (__XFDS_BITS(p, 12))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 13 && (__XFDS_BITS(p, 13))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 14 && (__XFDS_BITS(p, 14))) || \ - (howmany(FD_SETSIZE, NFDBITS) > 15 && (__XFDS_BITS(p, 15)))) - - -#define XFD_COPYSET(src,dst) { \ - int __i__; \ - for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \ - __XFDS_BITS((dst), __i__) = __XFDS_BITS((src), __i__); \ - } -#define XFD_ANDSET(dst,b1,b2) { \ - int __i__; \ - for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \ - __XFDS_BITS((dst), __i__) = ((__XFDS_BITS((b1), __i__)) & (__XFDS_BITS((b2), __i__))); \ - } -#define XFD_ORSET(dst,b1,b2) { \ - int __i__; \ - for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \ - __XFDS_BITS((dst), __i__) = ((__XFDS_BITS((b1), __i__)) | (__XFDS_BITS((b2), __i__))); \ - } -#define XFD_UNSET(dst,b1) { \ - int __i__; \ - for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \ - __XFDS_BITS((dst), __i__) &= ~(__XFDS_BITS((b1), __i__)); \ - } - -#else /* USE_POLL */ -#include <sys/poll.h> -#endif /* USE_POLL */ - -#else /* WIN32 */ - -#define XFD_SETSIZE 512 -#ifndef FD_SETSIZE -#define FD_SETSIZE XFD_SETSIZE -#endif -#include <X11/Xwinsock.h> - -#define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t) - -#define XFD_SETCOUNT(p) (((fd_set FAR *)(p))->fd_count) -#define XFD_FD(p,i) (((fd_set FAR *)(p))->fd_array[i]) -#define XFD_ANYSET(p) XFD_SETCOUNT(p) - -#define XFD_COPYSET(src,dst) { \ - u_int __i; \ - FD_ZERO(dst); \ - for (__i = 0; __i < XFD_SETCOUNT(src) ; __i++) { \ - XFD_FD(dst,__i) = XFD_FD(src,__i); \ - } \ - XFD_SETCOUNT(dst) = XFD_SETCOUNT(src); \ -} - -#define XFD_ANDSET(dst,b1,b2) { \ - u_int __i; \ - FD_ZERO(dst); \ - for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \ - if (FD_ISSET(XFD_FD(b1,__i), b2)) \ - FD_SET(XFD_FD(b1,__i), dst); \ - } \ -} - -#define XFD_ORSET(dst,b1,b2) { \ - u_int __i; \ - if (dst != b1) XFD_COPYSET(b1,dst); \ - for (__i = 0; __i < XFD_SETCOUNT(b2) ; __i++) { \ - if (!FD_ISSET(XFD_FD(b2,__i), dst)) \ - FD_SET(XFD_FD(b2,__i), dst); \ - } \ -} - -/* this one is really sub-optimal */ -#define XFD_UNSET(dst,b1) { \ - u_int __i; \ - for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \ - FD_CLR(XFD_FD(b1,__i), dst); \ - } \ -} - -/* we have to pay the price of having an array here, unlike with bitmasks - calling twice FD_SET with the same fd is not transparent, so be careful */ -#undef FD_SET -#define FD_SET(fd,set) do { \ - if (XFD_SETCOUNT(set) < FD_SETSIZE && !FD_ISSET(fd,set)) \ - XFD_FD(set,XFD_SETCOUNT(set)++)=(fd); \ -} while(0) - -#define getdtablesize() FD_SETSIZE - -#endif /* WIN32 */ - -#endif /* _XPOLL_H_ */ diff --git a/proto/x11proto/Xproto.h b/proto/x11proto/Xproto.h deleted file mode 100644 index 6cdea89cd..000000000 --- a/proto/x11proto/Xproto.h +++ /dev/null @@ -1,2157 +0,0 @@ -/* Definitions for the X window system used by server and c bindings */ - -/* - * This packet-construction scheme makes the following assumptions: - * - * 1. The compiler is able - * to generate code which addresses one- and two-byte quantities. - * In the worst case, this would be done with bit-fields. If bit-fields - * are used it may be necessary to reorder the request fields in this file, - * depending on the order in which the machine assigns bit fields to - * machine words. There may also be a problem with sign extension, - * as K+R specify that bitfields are always unsigned. - * - * 2. 2- and 4-byte fields in packet structures must be ordered by hand - * such that they are naturally-aligned, so that no compiler will ever - * insert padding bytes. - * - * 3. All packets are hand-padded to a multiple of 4 bytes, for - * the same reason. - */ - -#ifndef XPROTO_H -#define XPROTO_H - -/*********************************************************** - -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -#include <X11/Xmd.h> -#include <X11/Xprotostr.h> - -/* - * Define constants for the sizes of the network packets. The sz_ prefix is - * used instead of something more descriptive so that the symbols are no more - * than 32 characters in length (which causes problems for some compilers). - */ -#define sz_xSegment 8 -#define sz_xPoint 4 -#define sz_xRectangle 8 -#define sz_xArc 12 -#define sz_xConnClientPrefix 12 -#define sz_xConnSetupPrefix 8 -#define sz_xConnSetup 32 -#define sz_xPixmapFormat 8 -#define sz_xDepth 8 -#define sz_xVisualType 24 -#define sz_xWindowRoot 40 -#define sz_xTimecoord 8 -#define sz_xHostEntry 4 -#define sz_xCharInfo 12 -#define sz_xFontProp 8 -#define sz_xTextElt 2 -#define sz_xColorItem 12 -#define sz_xrgb 8 -#define sz_xGenericReply 32 -#define sz_xGetWindowAttributesReply 44 -#define sz_xGetGeometryReply 32 -#define sz_xQueryTreeReply 32 -#define sz_xInternAtomReply 32 -#define sz_xGetAtomNameReply 32 -#define sz_xGetPropertyReply 32 -#define sz_xListPropertiesReply 32 -#define sz_xGetSelectionOwnerReply 32 -#define sz_xGrabPointerReply 32 -#define sz_xQueryPointerReply 32 -#define sz_xGetMotionEventsReply 32 -#define sz_xTranslateCoordsReply 32 -#define sz_xGetInputFocusReply 32 -#define sz_xQueryKeymapReply 40 -#define sz_xQueryFontReply 60 -#define sz_xQueryTextExtentsReply 32 -#define sz_xListFontsReply 32 -#define sz_xGetFontPathReply 32 -#define sz_xGetImageReply 32 -#define sz_xListInstalledColormapsReply 32 -#define sz_xAllocColorReply 32 -#define sz_xAllocNamedColorReply 32 -#define sz_xAllocColorCellsReply 32 -#define sz_xAllocColorPlanesReply 32 -#define sz_xQueryColorsReply 32 -#define sz_xLookupColorReply 32 -#define sz_xQueryBestSizeReply 32 -#define sz_xQueryExtensionReply 32 -#define sz_xListExtensionsReply 32 -#define sz_xSetMappingReply 32 -#define sz_xGetKeyboardControlReply 52 -#define sz_xGetPointerControlReply 32 -#define sz_xGetScreenSaverReply 32 -#define sz_xListHostsReply 32 -#define sz_xSetModifierMappingReply 32 -#define sz_xError 32 -#define sz_xEvent 32 -#define sz_xKeymapEvent 32 -#define sz_xReq 4 -#define sz_xResourceReq 8 -#define sz_xCreateWindowReq 32 -#define sz_xChangeWindowAttributesReq 12 -#define sz_xChangeSaveSetReq 8 -#define sz_xReparentWindowReq 16 -#define sz_xConfigureWindowReq 12 -#define sz_xCirculateWindowReq 8 -#define sz_xInternAtomReq 8 -#define sz_xChangePropertyReq 24 -#define sz_xDeletePropertyReq 12 -#define sz_xGetPropertyReq 24 -#define sz_xSetSelectionOwnerReq 16 -#define sz_xConvertSelectionReq 24 -#define sz_xSendEventReq 44 -#define sz_xGrabPointerReq 24 -#define sz_xGrabButtonReq 24 -#define sz_xUngrabButtonReq 12 -#define sz_xChangeActivePointerGrabReq 16 -#define sz_xGrabKeyboardReq 16 -#define sz_xGrabKeyReq 16 -#define sz_xUngrabKeyReq 12 -#define sz_xAllowEventsReq 8 -#define sz_xGetMotionEventsReq 16 -#define sz_xTranslateCoordsReq 16 -#define sz_xWarpPointerReq 24 -#define sz_xSetInputFocusReq 12 -#define sz_xOpenFontReq 12 -#define sz_xQueryTextExtentsReq 8 -#define sz_xListFontsReq 8 -#define sz_xSetFontPathReq 8 -#define sz_xCreatePixmapReq 16 -#define sz_xCreateGCReq 16 -#define sz_xChangeGCReq 12 -#define sz_xCopyGCReq 16 -#define sz_xSetDashesReq 12 -#define sz_xSetClipRectanglesReq 12 -#define sz_xCopyAreaReq 28 -#define sz_xCopyPlaneReq 32 -#define sz_xPolyPointReq 12 -#define sz_xPolySegmentReq 12 -#define sz_xFillPolyReq 16 -#define sz_xPutImageReq 24 -#define sz_xGetImageReq 20 -#define sz_xPolyTextReq 16 -#define sz_xImageTextReq 16 -#define sz_xCreateColormapReq 16 -#define sz_xCopyColormapAndFreeReq 12 -#define sz_xAllocColorReq 16 -#define sz_xAllocNamedColorReq 12 -#define sz_xAllocColorCellsReq 12 -#define sz_xAllocColorPlanesReq 16 -#define sz_xFreeColorsReq 12 -#define sz_xStoreColorsReq 8 -#define sz_xStoreNamedColorReq 16 -#define sz_xQueryColorsReq 8 -#define sz_xLookupColorReq 12 -#define sz_xCreateCursorReq 32 -#define sz_xCreateGlyphCursorReq 32 -#define sz_xRecolorCursorReq 20 -#define sz_xQueryBestSizeReq 12 -#define sz_xQueryExtensionReq 8 -#define sz_xChangeKeyboardControlReq 8 -#define sz_xBellReq 4 -#define sz_xChangePointerControlReq 12 -#define sz_xSetScreenSaverReq 12 -#define sz_xChangeHostsReq 8 -#define sz_xListHostsReq 4 -#define sz_xChangeModeReq 4 -#define sz_xRotatePropertiesReq 12 -#define sz_xReply 32 -#define sz_xGrabKeyboardReply 32 -#define sz_xListFontsWithInfoReply 60 -#define sz_xSetPointerMappingReply 32 -#define sz_xGetKeyboardMappingReply 32 -#define sz_xGetPointerMappingReply 32 -#define sz_xGetModifierMappingReply 32 -#define sz_xListFontsWithInfoReq 8 -#define sz_xPolyLineReq 12 -#define sz_xPolyArcReq 12 -#define sz_xPolyRectangleReq 12 -#define sz_xPolyFillRectangleReq 12 -#define sz_xPolyFillArcReq 12 -#define sz_xPolyText8Req 16 -#define sz_xPolyText16Req 16 -#define sz_xImageText8Req 16 -#define sz_xImageText16Req 16 -#define sz_xSetPointerMappingReq 4 -#define sz_xForceScreenSaverReq 4 -#define sz_xSetCloseDownModeReq 4 -#define sz_xClearAreaReq 16 -#define sz_xSetAccessControlReq 4 -#define sz_xGetKeyboardMappingReq 8 -#define sz_xSetModifierMappingReq 4 -#define sz_xPropIconSize 24 -#define sz_xChangeKeyboardMappingReq 8 - - -/* For the purpose of the structure definitions in this file, -we must redefine the following types in terms of Xmd.h's types, which may -include bit fields. All of these are #undef'd at the end of this file, -restoring the definitions in X.h. */ - -#define Window CARD32 -#define Drawable CARD32 -#define Font CARD32 -#define Pixmap CARD32 -#define Cursor CARD32 -#define Colormap CARD32 -#define GContext CARD32 -#define Atom CARD32 -#define VisualID CARD32 -#define Time CARD32 -#define KeyCode CARD8 -#define KeySym CARD32 - -#define X_TCP_PORT 6000 /* add display number */ - -#define xTrue 1 -#define xFalse 0 - - -typedef CARD16 KeyButMask; - -/***************** - Connection setup structures. See Chapter 8: Connection Setup - of the X Window System Protocol specification for details. -*****************/ - -/* Client initiates handshake with this data, followed by the strings - * for the auth protocol & data. - */ -typedef struct { - CARD8 byteOrder; - BYTE pad; - CARD16 majorVersion B16, minorVersion B16; - CARD16 nbytesAuthProto B16; /* Authorization protocol */ - CARD16 nbytesAuthString B16; /* Authorization string */ - CARD16 pad2 B16; -} xConnClientPrefix; - -/* Server response to xConnClientPrefix. - * - * If success == Success, this is followed by xConnSetup and - * numRoots xWindowRoot structs. - * - * If success == Failure, this is followed by a reason string. - * - * The protocol also defines a case of success == Authenticate, but - * that doesn't seem to have ever been implemented by the X Consortium. - */ -typedef struct { - CARD8 success; - BYTE lengthReason; /*num bytes in string following if failure */ - CARD16 majorVersion B16, - minorVersion B16; - CARD16 length B16; /* 1/4 additional bytes in setup info */ -} xConnSetupPrefix; - - -typedef struct { - CARD32 release B32; - CARD32 ridBase B32, - ridMask B32; - CARD32 motionBufferSize B32; - CARD16 nbytesVendor B16; /* number of bytes in vendor string */ - CARD16 maxRequestSize B16; - CARD8 numRoots; /* number of roots structs to follow */ - CARD8 numFormats; /* number of pixmap formats */ - CARD8 imageByteOrder; /* LSBFirst, MSBFirst */ - CARD8 bitmapBitOrder; /* LeastSignificant, MostSign...*/ - CARD8 bitmapScanlineUnit, /* 8, 16, 32 */ - bitmapScanlinePad; /* 8, 16, 32 */ - KeyCode minKeyCode, maxKeyCode; - CARD32 pad2 B32; -} xConnSetup; - -typedef struct { - CARD8 depth; - CARD8 bitsPerPixel; - CARD8 scanLinePad; - CARD8 pad1; - CARD32 pad2 B32; -} xPixmapFormat; - -/* window root */ - -typedef struct { - CARD8 depth; - CARD8 pad1; - CARD16 nVisuals B16; /* number of xVisualType structures following */ - CARD32 pad2 B32; - } xDepth; - -typedef struct { - VisualID visualID B32; -#if defined(__cplusplus) || defined(c_plusplus) - CARD8 c_class; -#else - CARD8 class; -#endif - CARD8 bitsPerRGB; - CARD16 colormapEntries B16; - CARD32 redMask B32, greenMask B32, blueMask B32; - CARD32 pad B32; - } xVisualType; - -typedef struct { - Window windowId B32; - Colormap defaultColormap B32; - CARD32 whitePixel B32, blackPixel B32; - CARD32 currentInputMask B32; - CARD16 pixWidth B16, pixHeight B16; - CARD16 mmWidth B16, mmHeight B16; - CARD16 minInstalledMaps B16, maxInstalledMaps B16; - VisualID rootVisualID B32; - CARD8 backingStore; - BOOL saveUnders; - CARD8 rootDepth; - CARD8 nDepths; /* number of xDepth structures following */ -} xWindowRoot; - - -/***************************************************************** - * Structure Defns - * Structures needed for replies - *****************************************************************/ - -/* Used in GetMotionEvents */ - -typedef struct { - CARD32 time B32; - INT16 x B16, y B16; -} xTimecoord; - -typedef struct { - CARD8 family; - BYTE pad; - CARD16 length B16; -} xHostEntry; - -typedef struct { - INT16 leftSideBearing B16, - rightSideBearing B16, - characterWidth B16, - ascent B16, - descent B16; - CARD16 attributes B16; -} xCharInfo; - -typedef struct { - Atom name B32; - CARD32 value B32; -} xFontProp; - -/* - * non-aligned big-endian font ID follows this struct - */ -typedef struct { /* followed by string */ - CARD8 len; /* number of *characters* in string, or FontChange (255) - for font change, or 0 if just delta given */ - INT8 delta; -} xTextElt; - - -typedef struct { - CARD32 pixel B32; - CARD16 red B16, green B16, blue B16; - CARD8 flags; /* DoRed, DoGreen, DoBlue booleans */ - CARD8 pad; -} xColorItem; - - -typedef struct { - CARD16 red B16, green B16, blue B16, pad B16; -} xrgb; - -typedef CARD8 KEYCODE; - - -/***************** - * XRep: - * meant to be 32 byte quantity - *****************/ - -/* GenericReply is the common format of all replies. The "data" items - are specific to each individual reply type. */ - -typedef struct { - BYTE type; /* X_Reply */ - BYTE data1; /* depends on reply type */ - CARD16 sequenceNumber B16; /* of last request received by server */ - CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */ - CARD32 data00 B32; - CARD32 data01 B32; - CARD32 data02 B32; - CARD32 data03 B32; - CARD32 data04 B32; - CARD32 data05 B32; - } xGenericReply; - -/* Individual reply formats. */ - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 backingStore; - CARD16 sequenceNumber B16; - CARD32 length B32; /* NOT 0; this is an extra-large reply */ - VisualID visualID B32; -#if defined(__cplusplus) || defined(c_plusplus) - CARD16 c_class B16; -#else - CARD16 class B16; -#endif - CARD8 bitGravity; - CARD8 winGravity; - CARD32 backingBitPlanes B32; - CARD32 backingPixel B32; - BOOL saveUnder; - BOOL mapInstalled; - CARD8 mapState; - BOOL override; - Colormap colormap B32; - CARD32 allEventMasks B32; - CARD32 yourEventMask B32; - CARD16 doNotPropagateMask B16; - CARD16 pad B16; - } xGetWindowAttributesReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 depth; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - Window root B32; - INT16 x B16, y B16; - CARD16 width B16, height B16; - CARD16 borderWidth B16; - CARD16 pad1 B16; - CARD32 pad2 B32; - CARD32 pad3 B32; - } xGetGeometryReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - Window root B32, parent B32; - CARD16 nChildren B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - } xQueryTreeReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - Atom atom B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - } xInternAtomReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* of additional bytes */ - CARD16 nameLength B16; /* # of characters in name */ - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xGetAtomNameReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 format; - CARD16 sequenceNumber B16; - CARD32 length B32; /* of additional bytes */ - Atom propertyType B32; - CARD32 bytesAfter B32; - CARD32 nItems B32; /* # of 8, 16, or 32-bit entities in reply */ - CARD32 pad1 B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - } xGetPropertyReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nProperties B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xListPropertiesReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - Window owner B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - } xGetSelectionOwnerReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE status; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD32 pad1 B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - } xGrabPointerReply; - -typedef xGrabPointerReply xGrabKeyboardReply; - -typedef struct { - BYTE type; /* X_Reply */ - BOOL sameScreen; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - Window root B32, child B32; - INT16 rootX B16, rootY B16, winX B16, winY B16; - CARD16 mask B16; - CARD16 pad1 B16; - CARD32 pad B32; - } xQueryPointerReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 nEvents B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - } xGetMotionEventsReply; - -typedef struct { - BYTE type; /* X_Reply */ - BOOL sameScreen; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - Window child B32; - INT16 dstX B16, dstY B16; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - } xTranslateCoordsReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 revertTo; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - Window focus B32; - CARD32 pad1 B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - } xGetInputFocusReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 2, NOT 0; this is an extra-large reply */ - BYTE map[32]; - } xQueryKeymapReply; - -/* Warning: this MUST match (up to component renaming) xListFontsWithInfoReply */ -typedef struct _xQueryFontReply { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* definitely > 0, even if "nCharInfos" is 0 */ - xCharInfo minBounds; - CARD32 walign1 B32; - xCharInfo maxBounds; - CARD32 walign2 B32; - CARD16 minCharOrByte2 B16, maxCharOrByte2 B16; - CARD16 defaultChar B16; - CARD16 nFontProps B16; /* followed by this many xFontProp structures */ - CARD8 drawDirection; - CARD8 minByte1, maxByte1; - BOOL allCharsExist; - INT16 fontAscent B16, fontDescent B16; - CARD32 nCharInfos B32; /* followed by this many xCharInfo structures */ -} xQueryFontReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 drawDirection; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - INT16 fontAscent B16, fontDescent B16; - INT16 overallAscent B16, overallDescent B16; - INT32 overallWidth B32, overallLeft B32, overallRight B32; - CARD32 pad B32; - } xQueryTextExtentsReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nFonts B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xListFontsReply; - -/* Warning: this MUST match (up to component renaming) xQueryFontReply */ -typedef struct { - BYTE type; /* X_Reply */ - CARD8 nameLength; /* 0 indicates end-of-reply-sequence */ - CARD16 sequenceNumber B16; - CARD32 length B32; /* definitely > 0, even if "nameLength" is 0 */ - xCharInfo minBounds; - CARD32 walign1 B32; - xCharInfo maxBounds; - CARD32 walign2 B32; - CARD16 minCharOrByte2 B16, maxCharOrByte2 B16; - CARD16 defaultChar B16; - CARD16 nFontProps B16; /* followed by this many xFontProp structures */ - CARD8 drawDirection; - CARD8 minByte1, maxByte1; - BOOL allCharsExist; - INT16 fontAscent B16, fontDescent B16; - CARD32 nReplies B32; /* hint as to how many more replies might be coming */ -} xListFontsWithInfoReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nPaths B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xGetFontPathReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 depth; - CARD16 sequenceNumber B16; - CARD32 length B32; - VisualID visual B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xGetImageReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nColormaps B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xListInstalledColormapsReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD16 red B16, green B16, blue B16; - CARD16 pad2 B16; - CARD32 pixel B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - } xAllocColorReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD32 pixel B32; - CARD16 exactRed B16, exactGreen B16, exactBlue B16; - CARD16 screenRed B16, screenGreen B16, screenBlue B16; - CARD32 pad2 B32; - CARD32 pad3 B32; - } xAllocNamedColorReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nPixels B16, nMasks B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xAllocColorCellsReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nPixels B16; - CARD16 pad2 B16; - CARD32 redMask B32, greenMask B32, blueMask B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - } xAllocColorPlanesReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nColors B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xQueryColorsReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD16 exactRed B16, exactGreen B16, exactBlue B16; - CARD16 screenRed B16, screenGreen B16, screenBlue B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - } xLookupColorReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD16 width B16, height B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xQueryBestSizeReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - BOOL present; - CARD8 major_opcode; - CARD8 first_event; - CARD8 first_error; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xQueryExtensionReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 nExtensions; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xListExtensionsReply; - - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 success; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xSetMappingReply; -typedef xSetMappingReply xSetPointerMappingReply; -typedef xSetMappingReply xSetModifierMappingReply; - -typedef struct { - BYTE type; /* X_Reply */ - CARD8 nElts; /* how many elements does the map have */ - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xGetPointerMappingReply; - -typedef struct { - BYTE type; - CARD8 keySymsPerKeyCode; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; -} xGetKeyboardMappingReply; - -typedef struct { - BYTE type; - CARD8 numKeyPerModifier; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 pad1 B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xGetModifierMappingReply; - -typedef struct { - BYTE type; /* X_Reply */ - BOOL globalAutoRepeat; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 5 */ - CARD32 ledMask B32; - CARD8 keyClickPercent, bellPercent; - CARD16 bellPitch B16, bellDuration B16; - CARD16 pad B16; - BYTE map[32]; /* bit masks start here */ - } xGetKeyboardControlReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD16 accelNumerator B16, accelDenominator B16; - CARD16 threshold B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - } xGetPointerControlReply; - -typedef struct { - BYTE type; /* X_Reply */ - BYTE pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; /* 0 */ - CARD16 timeout B16, interval B16; - BOOL preferBlanking; - BOOL allowExposures; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - } xGetScreenSaverReply; - -typedef struct { - BYTE type; /* X_Reply */ - BOOL enabled; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 nHosts B16; - CARD16 pad1 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - } xListHostsReply; - - - - -/***************************************************************** - * Xerror - * All errors are 32 bytes - *****************************************************************/ - -typedef struct { - BYTE type; /* X_Error */ - BYTE errorCode; - CARD16 sequenceNumber B16; /* the nth request from this client */ - CARD32 resourceID B32; - CARD16 minorCode B16; - CARD8 majorCode; - BYTE pad1; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; -} xError; - -/***************************************************************** - * xEvent - * All events are 32 bytes - *****************************************************************/ - -typedef struct _xEvent { - union { - struct { - BYTE type; - BYTE detail; - CARD16 sequenceNumber B16; - } u; - struct { - CARD32 pad00 B32; - Time time B32; - Window root B32, event B32, child B32; - INT16 rootX B16, rootY B16, eventX B16, eventY B16; - KeyButMask state B16; - BOOL sameScreen; - BYTE pad1; - } keyButtonPointer; - struct { - CARD32 pad00 B32; - Time time B32; - Window root B32, event B32, child B32; - INT16 rootX B16, rootY B16, eventX B16, eventY B16; - KeyButMask state B16; - BYTE mode; /* really XMode */ - BYTE flags; /* sameScreen and focus booleans, packed together */ -#define ELFlagFocus (1<<0) -#define ELFlagSameScreen (1<<1) - } enterLeave; - struct { - CARD32 pad00 B32; - Window window B32; - BYTE mode; /* really XMode */ - BYTE pad1, pad2, pad3; - } focus; - struct { - CARD32 pad00 B32; - Window window B32; - CARD16 x B16, y B16, width B16, height B16; - CARD16 count B16; - CARD16 pad2 B16; - } expose; - struct { - CARD32 pad00 B32; - Drawable drawable B32; - CARD16 x B16, y B16, width B16, height B16; - CARD16 minorEvent B16; - CARD16 count B16; - BYTE majorEvent; - BYTE pad1, pad2, pad3; - } graphicsExposure; - struct { - CARD32 pad00 B32; - Drawable drawable B32; - CARD16 minorEvent B16; - BYTE majorEvent; - BYTE bpad; - } noExposure; - struct { - CARD32 pad00 B32; - Window window B32; - CARD8 state; - BYTE pad1, pad2, pad3; - } visibility; - struct { - CARD32 pad00 B32; - Window parent B32, window B32; - INT16 x B16, y B16; - CARD16 width B16, height B16, borderWidth B16; - BOOL override; - BYTE bpad; - } createNotify; -/* - * The event fields in the structures for DestroyNotify, UnmapNotify, - * MapNotify, ReparentNotify, ConfigureNotify, CirculateNotify, GravityNotify, - * must be at the same offset because server internal code is depending upon - * this to patch up the events before they are delivered. - * Also note that MapRequest, ConfigureRequest and CirculateRequest have - * the same offset for the event window. - */ - struct { - CARD32 pad00 B32; - Window event B32, window B32; - } destroyNotify; - struct { - CARD32 pad00 B32; - Window event B32, window B32; - BOOL fromConfigure; - BYTE pad1, pad2, pad3; - } unmapNotify; - struct { - CARD32 pad00 B32; - Window event B32, window B32; - BOOL override; - BYTE pad1, pad2, pad3; - } mapNotify; - struct { - CARD32 pad00 B32; - Window parent B32, window B32; - } mapRequest; - struct { - CARD32 pad00 B32; - Window event B32, window B32, parent B32; - INT16 x B16, y B16; - BOOL override; - BYTE pad1, pad2, pad3; - } reparent; - struct { - CARD32 pad00 B32; - Window event B32, window B32, aboveSibling B32; - INT16 x B16, y B16; - CARD16 width B16, height B16, borderWidth B16; - BOOL override; - BYTE bpad; - } configureNotify; - struct { - CARD32 pad00 B32; - Window parent B32, window B32, sibling B32; - INT16 x B16, y B16; - CARD16 width B16, height B16, borderWidth B16; - CARD16 valueMask B16; - CARD32 pad1 B32; - } configureRequest; - struct { - CARD32 pad00 B32; - Window event B32, window B32; - INT16 x B16, y B16; - CARD32 pad1 B32, pad2 B32, pad3 B32, pad4 B32; - } gravity; - struct { - CARD32 pad00 B32; - Window window B32; - CARD16 width B16, height B16; - } resizeRequest; - struct { -/* The event field in the circulate record is really the parent when this - is used as a CirculateRequest instead of a CirculateNotify */ - CARD32 pad00 B32; - Window event B32, window B32, parent B32; - BYTE place; /* Top or Bottom */ - BYTE pad1, pad2, pad3; - } circulate; - struct { - CARD32 pad00 B32; - Window window B32; - Atom atom B32; - Time time B32; - BYTE state; /* NewValue or Deleted */ - BYTE pad1; - CARD16 pad2 B16; - } property; - struct { - CARD32 pad00 B32; - Time time B32; - Window window B32; - Atom atom B32; - } selectionClear; - struct { - CARD32 pad00 B32; - Time time B32; - Window owner B32, requestor B32; - Atom selection B32, target B32, property B32; - } selectionRequest; - struct { - CARD32 pad00 B32; - Time time B32; - Window requestor B32; - Atom selection B32, target B32, property B32; - } selectionNotify; - struct { - CARD32 pad00 B32; - Window window B32; - Colormap colormap B32; -#if defined(__cplusplus) || defined(c_plusplus) - BOOL c_new; -#else - BOOL new; -#endif - BYTE state; /* Installed or UnInstalled */ - BYTE pad1, pad2; - } colormap; - struct { - CARD32 pad00 B32; - CARD8 request; - KeyCode firstKeyCode; - CARD8 count; - BYTE pad1; - } mappingNotify; - struct { - CARD32 pad00 B32; - Window window B32; - union { - struct { - Atom type B32; - INT32 longs0 B32; - INT32 longs1 B32; - INT32 longs2 B32; - INT32 longs3 B32; - INT32 longs4 B32; - } l; - struct { - Atom type B32; - INT16 shorts0 B16; - INT16 shorts1 B16; - INT16 shorts2 B16; - INT16 shorts3 B16; - INT16 shorts4 B16; - INT16 shorts5 B16; - INT16 shorts6 B16; - INT16 shorts7 B16; - INT16 shorts8 B16; - INT16 shorts9 B16; - } s; - struct { - Atom type B32; - INT8 bytes[20]; - } b; - } u; - } clientMessage; - } u; -} xEvent; - -/********************************************************* - * - * Generic event - * - * Those events are not part of the core protocol spec and can be used by - * various extensions. - * type is always GenericEvent - * extension is the minor opcode of the extension the event belongs to. - * evtype is the actual event type, unique __per extension__. - * - * GenericEvents can be longer than 32 bytes, with the length field - * specifying the number of 4 byte blocks after the first 32 bytes. - * - * - */ -typedef struct -{ - BYTE type; - CARD8 extension; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 evtype B16; - CARD16 pad2 B16; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; -} xGenericEvent; - - - -/* KeymapNotify events are not included in the above union because they - are different from all other events: they do not have a "detail" - or "sequenceNumber", so there is room for a 248-bit key mask. */ - -typedef struct { - BYTE type; - BYTE map[31]; - } xKeymapEvent; - -#define XEventSize (sizeof(xEvent)) - -/* XReply is the union of all the replies above whose "fixed part" -fits in 32 bytes. It does NOT include GetWindowAttributesReply, -QueryFontReply, QueryKeymapReply, or GetKeyboardControlReply -ListFontsWithInfoReply */ - -typedef union { - xGenericReply generic; - xGetGeometryReply geom; - xQueryTreeReply tree; - xInternAtomReply atom; - xGetAtomNameReply atomName; - xGetPropertyReply property; - xListPropertiesReply listProperties; - xGetSelectionOwnerReply selection; - xGrabPointerReply grabPointer; - xGrabKeyboardReply grabKeyboard; - xQueryPointerReply pointer; - xGetMotionEventsReply motionEvents; - xTranslateCoordsReply coords; - xGetInputFocusReply inputFocus; - xQueryTextExtentsReply textExtents; - xListFontsReply fonts; - xGetFontPathReply fontPath; - xGetImageReply image; - xListInstalledColormapsReply colormaps; - xAllocColorReply allocColor; - xAllocNamedColorReply allocNamedColor; - xAllocColorCellsReply colorCells; - xAllocColorPlanesReply colorPlanes; - xQueryColorsReply colors; - xLookupColorReply lookupColor; - xQueryBestSizeReply bestSize; - xQueryExtensionReply extension; - xListExtensionsReply extensions; - xSetModifierMappingReply setModifierMapping; - xGetModifierMappingReply getModifierMapping; - xSetPointerMappingReply setPointerMapping; - xGetKeyboardMappingReply getKeyboardMapping; - xGetPointerMappingReply getPointerMapping; - xGetPointerControlReply pointerControl; - xGetScreenSaverReply screenSaver; - xListHostsReply hosts; - xError error; - xEvent event; -} xReply; - - - -/***************************************************************** - * REQUESTS - *****************************************************************/ - - -/* Request structure */ - -typedef struct _xReq { - CARD8 reqType; - CARD8 data; /* meaning depends on request type */ - CARD16 length B16; /* length in 4 bytes quantities - of whole request, including this header */ -} xReq; - -/***************************************************************** - * structures that follow request. - *****************************************************************/ - -/* ResourceReq is used for any request which has a resource ID - (or Atom or Time) as its one and only argument. */ - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - CARD32 id B32; /* a Window, Drawable, Font, GContext, Pixmap, etc. */ - } xResourceReq; - -typedef struct { - CARD8 reqType; - CARD8 depth; - CARD16 length B16; - Window wid B32, parent B32; - INT16 x B16, y B16; - CARD16 width B16, height B16, borderWidth B16; -#if defined(__cplusplus) || defined(c_plusplus) - CARD16 c_class B16; -#else - CARD16 class B16; -#endif - VisualID visual B32; - CARD32 mask B32; -} xCreateWindowReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window window B32; - CARD32 valueMask B32; -} xChangeWindowAttributesReq; - -typedef struct { - CARD8 reqType; - BYTE mode; - CARD16 length B16; - Window window B32; -} xChangeSaveSetReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window window B32, parent B32; - INT16 x B16, y B16; -} xReparentWindowReq; - -typedef struct { - CARD8 reqType; - CARD8 pad; - CARD16 length B16; - Window window B32; - CARD16 mask B16; - CARD16 pad2 B16; -} xConfigureWindowReq; - -typedef struct { - CARD8 reqType; - CARD8 direction; - CARD16 length B16; - Window window B32; -} xCirculateWindowReq; - -typedef struct { /* followed by padded string */ - CARD8 reqType; - BOOL onlyIfExists; - CARD16 length B16; - CARD16 nbytes B16; /* number of bytes in string */ - CARD16 pad B16; -} xInternAtomReq; - -typedef struct { - CARD8 reqType; - CARD8 mode; - CARD16 length B16; - Window window B32; - Atom property B32, type B32; - CARD8 format; - BYTE pad[3]; - CARD32 nUnits B32; /* length of stuff following, depends on format */ -} xChangePropertyReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window window B32; - Atom property B32; -} xDeletePropertyReq; - -typedef struct { - CARD8 reqType; -#if defined(__cplusplus) || defined(c_plusplus) - BOOL c_delete; -#else - BOOL delete; -#endif - CARD16 length B16; - Window window B32; - Atom property B32, type B32; - CARD32 longOffset B32; - CARD32 longLength B32; -} xGetPropertyReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window window B32; - Atom selection B32; - Time time B32; -} xSetSelectionOwnerReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window requestor B32; - Atom selection B32, target B32, property B32; - Time time B32; - } xConvertSelectionReq; - -typedef struct { - CARD8 reqType; - BOOL propagate; - CARD16 length B16; - Window destination B32; - CARD32 eventMask B32; - xEvent event; -} xSendEventReq; - -typedef struct { - CARD8 reqType; - BOOL ownerEvents; - CARD16 length B16; - Window grabWindow B32; - CARD16 eventMask B16; - BYTE pointerMode, keyboardMode; - Window confineTo B32; - Cursor cursor B32; - Time time B32; -} xGrabPointerReq; - -typedef struct { - CARD8 reqType; - BOOL ownerEvents; - CARD16 length B16; - Window grabWindow B32; - CARD16 eventMask B16; - BYTE pointerMode, keyboardMode; - Window confineTo B32; - Cursor cursor B32; - CARD8 button; - BYTE pad; - CARD16 modifiers B16; -} xGrabButtonReq; - -typedef struct { - CARD8 reqType; - CARD8 button; - CARD16 length B16; - Window grabWindow B32; - CARD16 modifiers B16; - CARD16 pad B16; -} xUngrabButtonReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Cursor cursor B32; - Time time B32; - CARD16 eventMask B16; - CARD16 pad2 B16; -} xChangeActivePointerGrabReq; - -typedef struct { - CARD8 reqType; - BOOL ownerEvents; - CARD16 length B16; - Window grabWindow B32; - Time time B32; - BYTE pointerMode, keyboardMode; - CARD16 pad B16; -} xGrabKeyboardReq; - -typedef struct { - CARD8 reqType; - BOOL ownerEvents; - CARD16 length B16; - Window grabWindow B32; - CARD16 modifiers B16; - CARD8 key; - BYTE pointerMode, keyboardMode; - BYTE pad1, pad2, pad3; -} xGrabKeyReq; - -typedef struct { - CARD8 reqType; - CARD8 key; - CARD16 length B16; - Window grabWindow B32; - CARD16 modifiers B16; - CARD16 pad B16; -} xUngrabKeyReq; - -typedef struct { - CARD8 reqType; - CARD8 mode; - CARD16 length B16; - Time time B32; -} xAllowEventsReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window window B32; - Time start B32, stop B32; -} xGetMotionEventsReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window srcWid B32, dstWid B32; - INT16 srcX B16, srcY B16; -} xTranslateCoordsReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window srcWid B32, dstWid B32; - INT16 srcX B16, srcY B16; - CARD16 srcWidth B16, srcHeight B16; - INT16 dstX B16, dstY B16; -} xWarpPointerReq; - -typedef struct { - CARD8 reqType; - CARD8 revertTo; - CARD16 length B16; - Window focus B32; - Time time B32; -} xSetInputFocusReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Font fid B32; - CARD16 nbytes B16; - BYTE pad1, pad2; /* string follows on word boundary */ -} xOpenFontReq; - -typedef struct { - CARD8 reqType; - BOOL oddLength; - CARD16 length B16; - Font fid B32; - } xQueryTextExtentsReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - CARD16 maxNames B16; - CARD16 nbytes B16; /* followed immediately by string bytes */ -} xListFontsReq; - -typedef xListFontsReq xListFontsWithInfoReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - CARD16 nFonts B16; - BYTE pad1, pad2; /* LISTofSTRING8 follows on word boundary */ -} xSetFontPathReq; - -typedef struct { - CARD8 reqType; - CARD8 depth; - CARD16 length B16; - Pixmap pid B32; - Drawable drawable B32; - CARD16 width B16, height B16; -} xCreatePixmapReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - GContext gc B32; - Drawable drawable B32; - CARD32 mask B32; -} xCreateGCReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - GContext gc B32; - CARD32 mask B32; -} xChangeGCReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - GContext srcGC B32, dstGC B32; - CARD32 mask B32; -} xCopyGCReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - GContext gc B32; - CARD16 dashOffset B16; - CARD16 nDashes B16; /* length LISTofCARD8 of values following */ -} xSetDashesReq; - -typedef struct { - CARD8 reqType; - BYTE ordering; - CARD16 length B16; - GContext gc B32; - INT16 xOrigin B16, yOrigin B16; -} xSetClipRectanglesReq; - -typedef struct { - CARD8 reqType; - BOOL exposures; - CARD16 length B16; - Window window B32; - INT16 x B16, y B16; - CARD16 width B16, height B16; -} xClearAreaReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Drawable srcDrawable B32, dstDrawable B32; - GContext gc B32; - INT16 srcX B16, srcY B16, dstX B16, dstY B16; - CARD16 width B16, height B16; -} xCopyAreaReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Drawable srcDrawable B32, dstDrawable B32; - GContext gc B32; - INT16 srcX B16, srcY B16, dstX B16, dstY B16; - CARD16 width B16, height B16; - CARD32 bitPlane B32; -} xCopyPlaneReq; - -typedef struct { - CARD8 reqType; - BYTE coordMode; - CARD16 length B16; - Drawable drawable B32; - GContext gc B32; -} xPolyPointReq; - -typedef xPolyPointReq xPolyLineReq; /* same request structure */ - -/* The following used for PolySegment, PolyRectangle, PolyArc, PolyFillRectangle, PolyFillArc */ - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Drawable drawable B32; - GContext gc B32; -} xPolySegmentReq; - -typedef xPolySegmentReq xPolyArcReq; -typedef xPolySegmentReq xPolyRectangleReq; -typedef xPolySegmentReq xPolyFillRectangleReq; -typedef xPolySegmentReq xPolyFillArcReq; - -typedef struct _FillPolyReq { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Drawable drawable B32; - GContext gc B32; - BYTE shape; - BYTE coordMode; - CARD16 pad1 B16; -} xFillPolyReq; - - -typedef struct _PutImageReq { - CARD8 reqType; - CARD8 format; - CARD16 length B16; - Drawable drawable B32; - GContext gc B32; - CARD16 width B16, height B16; - INT16 dstX B16, dstY B16; - CARD8 leftPad; - CARD8 depth; - CARD16 pad B16; -} xPutImageReq; - -typedef struct { - CARD8 reqType; - CARD8 format; - CARD16 length B16; - Drawable drawable B32; - INT16 x B16, y B16; - CARD16 width B16, height B16; - CARD32 planeMask B32; -} xGetImageReq; - -/* the following used by PolyText8 and PolyText16 */ - -typedef struct { - CARD8 reqType; - CARD8 pad; - CARD16 length B16; - Drawable drawable B32; - GContext gc B32; - INT16 x B16, y B16; /* items (xTextElt) start after struct */ -} xPolyTextReq; - -typedef xPolyTextReq xPolyText8Req; -typedef xPolyTextReq xPolyText16Req; - -typedef struct { - CARD8 reqType; - BYTE nChars; - CARD16 length B16; - Drawable drawable B32; - GContext gc B32; - INT16 x B16, y B16; -} xImageTextReq; - -typedef xImageTextReq xImageText8Req; -typedef xImageTextReq xImageText16Req; - -typedef struct { - CARD8 reqType; - BYTE alloc; - CARD16 length B16; - Colormap mid B32; - Window window B32; - VisualID visual B32; -} xCreateColormapReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap mid B32; - Colormap srcCmap B32; -} xCopyColormapAndFreeReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap cmap B32; - CARD16 red B16, green B16, blue B16; - CARD16 pad2 B16; -} xAllocColorReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap cmap B32; - CARD16 nbytes B16; /* followed by structure */ - BYTE pad1, pad2; -} xAllocNamedColorReq; - -typedef struct { - CARD8 reqType; - BOOL contiguous; - CARD16 length B16; - Colormap cmap B32; - CARD16 colors B16, planes B16; -} xAllocColorCellsReq; - -typedef struct { - CARD8 reqType; - BOOL contiguous; - CARD16 length B16; - Colormap cmap B32; - CARD16 colors B16, red B16, green B16, blue B16; -} xAllocColorPlanesReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap cmap B32; - CARD32 planeMask B32; -} xFreeColorsReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap cmap B32; -} xStoreColorsReq; - -typedef struct { - CARD8 reqType; - CARD8 flags; /* DoRed, DoGreen, DoBlue, as in xColorItem */ - CARD16 length B16; - Colormap cmap B32; - CARD32 pixel B32; - CARD16 nbytes B16; /* number of name string bytes following structure */ - BYTE pad1, pad2; - } xStoreNamedColorReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap cmap B32; -} xQueryColorsReq; - -typedef struct { /* followed by string of length len */ - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Colormap cmap B32; - CARD16 nbytes B16; /* number of string bytes following structure*/ - BYTE pad1, pad2; -} xLookupColorReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Cursor cid B32; - Pixmap source B32, mask B32; - CARD16 foreRed B16, foreGreen B16, foreBlue B16; - CARD16 backRed B16, backGreen B16, backBlue B16; - CARD16 x B16, y B16; -} xCreateCursorReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Cursor cid B32; - Font source B32, mask B32; - CARD16 sourceChar B16, maskChar B16; - CARD16 foreRed B16, foreGreen B16, foreBlue B16; - CARD16 backRed B16, backGreen B16, backBlue B16; -} xCreateGlyphCursorReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Cursor cursor B32; - CARD16 foreRed B16, foreGreen B16, foreBlue B16; - CARD16 backRed B16, backGreen B16, backBlue B16; -} xRecolorCursorReq; - -typedef struct { - CARD8 reqType; -#if defined(__cplusplus) || defined(c_plusplus) - CARD8 c_class; -#else - CARD8 class; -#endif - CARD16 length B16; - Drawable drawable B32; - CARD16 width B16, height B16; -} xQueryBestSizeReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - CARD16 nbytes B16; /* number of string bytes following structure */ - BYTE pad1, pad2; -} xQueryExtensionReq; - -typedef struct { - CARD8 reqType; - CARD8 numKeyPerModifier; - CARD16 length B16; -} xSetModifierMappingReq; - -typedef struct { - CARD8 reqType; - CARD8 nElts; /* how many elements in the map */ - CARD16 length B16; -} xSetPointerMappingReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - KeyCode firstKeyCode; - CARD8 count; - CARD16 pad1 B16; -} xGetKeyboardMappingReq; - -typedef struct { - CARD8 reqType; - CARD8 keyCodes; - CARD16 length B16; - KeyCode firstKeyCode; - CARD8 keySymsPerKeyCode; - CARD16 pad1 B16; -} xChangeKeyboardMappingReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - CARD32 mask B32; -} xChangeKeyboardControlReq; - -typedef struct { - CARD8 reqType; - INT8 percent; /* -100 to 100 */ - CARD16 length B16; -} xBellReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - INT16 accelNum B16, accelDenum B16; - INT16 threshold B16; - BOOL doAccel, doThresh; -} xChangePointerControlReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - INT16 timeout B16, interval B16; - BYTE preferBlank, allowExpose; - CARD16 pad2 B16; -} xSetScreenSaverReq; - -typedef struct { - CARD8 reqType; - BYTE mode; - CARD16 length B16; - CARD8 hostFamily; - BYTE pad; - CARD16 hostLength B16; -} xChangeHostsReq; - -typedef struct { - CARD8 reqType; - BYTE pad; - CARD16 length B16; - } xListHostsReq; - -typedef struct { - CARD8 reqType; - BYTE mode; - CARD16 length B16; - } xChangeModeReq; - -typedef xChangeModeReq xSetAccessControlReq; -typedef xChangeModeReq xSetCloseDownModeReq; -typedef xChangeModeReq xForceScreenSaverReq; - -typedef struct { /* followed by LIST of ATOM */ - CARD8 reqType; - BYTE pad; - CARD16 length B16; - Window window B32; - CARD16 nAtoms B16; - INT16 nPositions B16; - } xRotatePropertiesReq; - - - -/* Reply codes */ - -#define X_Reply 1 /* Normal reply */ -#define X_Error 0 /* Error */ - -/* Request codes */ - -#define X_CreateWindow 1 -#define X_ChangeWindowAttributes 2 -#define X_GetWindowAttributes 3 -#define X_DestroyWindow 4 -#define X_DestroySubwindows 5 -#define X_ChangeSaveSet 6 -#define X_ReparentWindow 7 -#define X_MapWindow 8 -#define X_MapSubwindows 9 -#define X_UnmapWindow 10 -#define X_UnmapSubwindows 11 -#define X_ConfigureWindow 12 -#define X_CirculateWindow 13 -#define X_GetGeometry 14 -#define X_QueryTree 15 -#define X_InternAtom 16 -#define X_GetAtomName 17 -#define X_ChangeProperty 18 -#define X_DeleteProperty 19 -#define X_GetProperty 20 -#define X_ListProperties 21 -#define X_SetSelectionOwner 22 -#define X_GetSelectionOwner 23 -#define X_ConvertSelection 24 -#define X_SendEvent 25 -#define X_GrabPointer 26 -#define X_UngrabPointer 27 -#define X_GrabButton 28 -#define X_UngrabButton 29 -#define X_ChangeActivePointerGrab 30 -#define X_GrabKeyboard 31 -#define X_UngrabKeyboard 32 -#define X_GrabKey 33 -#define X_UngrabKey 34 -#define X_AllowEvents 35 -#define X_GrabServer 36 -#define X_UngrabServer 37 -#define X_QueryPointer 38 -#define X_GetMotionEvents 39 -#define X_TranslateCoords 40 -#define X_WarpPointer 41 -#define X_SetInputFocus 42 -#define X_GetInputFocus 43 -#define X_QueryKeymap 44 -#define X_OpenFont 45 -#define X_CloseFont 46 -#define X_QueryFont 47 -#define X_QueryTextExtents 48 -#define X_ListFonts 49 -#define X_ListFontsWithInfo 50 -#define X_SetFontPath 51 -#define X_GetFontPath 52 -#define X_CreatePixmap 53 -#define X_FreePixmap 54 -#define X_CreateGC 55 -#define X_ChangeGC 56 -#define X_CopyGC 57 -#define X_SetDashes 58 -#define X_SetClipRectangles 59 -#define X_FreeGC 60 -#define X_ClearArea 61 -#define X_CopyArea 62 -#define X_CopyPlane 63 -#define X_PolyPoint 64 -#define X_PolyLine 65 -#define X_PolySegment 66 -#define X_PolyRectangle 67 -#define X_PolyArc 68 -#define X_FillPoly 69 -#define X_PolyFillRectangle 70 -#define X_PolyFillArc 71 -#define X_PutImage 72 -#define X_GetImage 73 -#define X_PolyText8 74 -#define X_PolyText16 75 -#define X_ImageText8 76 -#define X_ImageText16 77 -#define X_CreateColormap 78 -#define X_FreeColormap 79 -#define X_CopyColormapAndFree 80 -#define X_InstallColormap 81 -#define X_UninstallColormap 82 -#define X_ListInstalledColormaps 83 -#define X_AllocColor 84 -#define X_AllocNamedColor 85 -#define X_AllocColorCells 86 -#define X_AllocColorPlanes 87 -#define X_FreeColors 88 -#define X_StoreColors 89 -#define X_StoreNamedColor 90 -#define X_QueryColors 91 -#define X_LookupColor 92 -#define X_CreateCursor 93 -#define X_CreateGlyphCursor 94 -#define X_FreeCursor 95 -#define X_RecolorCursor 96 -#define X_QueryBestSize 97 -#define X_QueryExtension 98 -#define X_ListExtensions 99 -#define X_ChangeKeyboardMapping 100 -#define X_GetKeyboardMapping 101 -#define X_ChangeKeyboardControl 102 -#define X_GetKeyboardControl 103 -#define X_Bell 104 -#define X_ChangePointerControl 105 -#define X_GetPointerControl 106 -#define X_SetScreenSaver 107 -#define X_GetScreenSaver 108 -#define X_ChangeHosts 109 -#define X_ListHosts 110 -#define X_SetAccessControl 111 -#define X_SetCloseDownMode 112 -#define X_KillClient 113 -#define X_RotateProperties 114 -#define X_ForceScreenSaver 115 -#define X_SetPointerMapping 116 -#define X_GetPointerMapping 117 -#define X_SetModifierMapping 118 -#define X_GetModifierMapping 119 -#define X_NoOperation 127 - -/* restore these definitions back to the typedefs in X.h */ -#undef Window -#undef Drawable -#undef Font -#undef Pixmap -#undef Cursor -#undef Colormap -#undef GContext -#undef Atom -#undef VisualID -#undef Time -#undef KeyCode -#undef KeySym - -#endif /* XPROTO_H */ diff --git a/proto/x11proto/Xprotostr.h b/proto/x11proto/Xprotostr.h deleted file mode 100644 index a9e854d37..000000000 --- a/proto/x11proto/Xprotostr.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef XPROTOSTRUCTS_H -#define XPROTOSTRUCTS_H - -/*********************************************************** - -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ -#include <X11/Xmd.h> - -/* Used by PolySegment */ - -typedef struct _xSegment { - INT16 x1 B16, y1 B16, x2 B16, y2 B16; -} xSegment; - -/* POINT */ - -typedef struct _xPoint { - INT16 x B16, y B16; -} xPoint; - -typedef struct _xRectangle { - INT16 x B16, y B16; - CARD16 width B16, height B16; -} xRectangle; - -/* ARC */ - -typedef struct _xArc { - INT16 x B16, y B16; - CARD16 width B16, height B16; - INT16 angle1 B16, angle2 B16; -} xArc; - -#endif /* XPROTOSTRUCTS_H */ diff --git a/proto/x11proto/Xthreads.h b/proto/x11proto/Xthreads.h deleted file mode 100644 index 2027127eb..000000000 --- a/proto/x11proto/Xthreads.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - * -Copyright 1993, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - * * - */ - -#ifndef _XTHREADS_H_ -# define _XTHREADS_H_ - -/* Redefine these to XtMalloc/XtFree or whatever you want before including - * this header file. - */ -# ifndef xmalloc -# define xmalloc malloc -# endif -# ifndef xfree -# define xfree free -# endif - -# ifdef CTHREADS -# include <cthreads.h> -typedef cthread_t xthread_t; -typedef struct condition xcondition_rec; -typedef struct mutex xmutex_rec; -# define xthread_init() cthread_init() -# define xthread_self cthread_self -# define xthread_fork(func,closure) cthread_fork(func,closure) -# define xthread_yield() cthread_yield() -# define xthread_exit(v) cthread_exit(v) -# define xthread_set_name(t,str) cthread_set_name(t,str) -# define xmutex_init(m) mutex_init(m) -# define xmutex_clear(m) mutex_clear(m) -# define xmutex_lock(m) mutex_lock(m) -# define xmutex_unlock(m) mutex_unlock(m) -# define xmutex_set_name(m,str) mutex_set_name(m,str) -# define xcondition_init(cv) condition_init(cv) -# define xcondition_clear(cv) condition_clear(cv) -# define xcondition_wait(cv,m) condition_wait(cv,m) -# define xcondition_signal(cv) condition_signal(cv) -# define xcondition_broadcast(cv) condition_broadcast(cv) -# define xcondition_set_name(cv,str) condition_set_name(cv,str) -# else /* !CTHREADS */ -# if defined(SVR4) -# include <thread.h> -# include <synch.h> -typedef thread_t xthread_t; -typedef thread_key_t xthread_key_t; -typedef cond_t xcondition_rec; -typedef mutex_t xmutex_rec; -# if defined(__UNIXWARE__) -extern xthread_t (*_x11_thr_self)(); -# define xthread_self (_x11_thr_self) -# else -# define xthread_self thr_self -# endif -# define xthread_fork(func,closure) thr_create(NULL,0,func,closure,THR_NEW_LWP|THR_DETACHED,NULL) -# define xthread_yield() thr_yield() -# define xthread_exit(v) thr_exit(v) -# define xthread_key_create(kp,d) thr_keycreate(kp,d) -# ifdef __sun -# define xthread_key_delete(k) 0 -# else -# define xthread_key_delete(k) thr_keydelete(k) -# endif -# define xthread_set_specific(k,v) thr_setspecific(k,v) -# define xthread_get_specific(k,vp) thr_getspecific(k,vp) -# define xmutex_init(m) mutex_init(m,USYNC_THREAD,0) -# define xmutex_clear(m) mutex_destroy(m) -# define xmutex_lock(m) mutex_lock(m) -# define xmutex_unlock(m) mutex_unlock(m) -# define xcondition_init(cv) cond_init(cv,USYNC_THREAD,0) -# define xcondition_clear(cv) cond_destroy(cv) -# define xcondition_wait(cv,m) cond_wait(cv,m) -# define xcondition_signal(cv) cond_signal(cv) -# define xcondition_broadcast(cv) cond_broadcast(cv) -# else /* !SVR4 */ -# ifdef WIN32 -# include <X11/Xwindows.h> -typedef DWORD xthread_t; -typedef DWORD xthread_key_t; -struct _xthread_waiter { - HANDLE sem; - struct _xthread_waiter *next; -}; -typedef struct { - CRITICAL_SECTION cs; - struct _xthread_waiter *waiters; -} xcondition_rec; -typedef CRITICAL_SECTION xmutex_rec; -extern void _Xthread_init(void); -# define xthread_init() _Xthread_init() -# define xthread_self GetCurrentThreadId -# define xthread_fork(func,closure) { \ - DWORD _tmptid; \ - CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, (LPVOID)closure, 0, \ - &_tmptid); \ -} -# define xthread_yield() Sleep(0) -# define xthread_exit(v) ExitThread((DWORD)(v)) -# define xthread_key_create(kp,d) *(kp) = TlsAlloc() -# define xthread_key_delete(k) TlsFree(k) -# define xthread_set_specific(k,v) TlsSetValue(k,v) -# define xthread_get_specific(k,vp) TlsGetValue(k) -# define xmutex_init(m) InitializeCriticalSection(m) -# define xmutex_clear(m) DeleteCriticalSection(m) -# define _XMUTEX_NESTS -# define xmutex_lock(m) EnterCriticalSection(m) -# define xmutex_unlock(m) LeaveCriticalSection(m) -# define xcondition_init(cv) { \ - InitializeCriticalSection(&(cv)->cs); \ - (cv)->waiters = NULL; \ -} -# define xcondition_clear(cv) DeleteCriticalSection(&(cv)->cs) -extern struct _xthread_waiter *_Xthread_waiter(); -# define xcondition_wait(cv,m) { \ - struct _xthread_waiter *_tmpthr = _Xthread_waiter(); \ - EnterCriticalSection(&(cv)->cs); \ - _tmpthr->next = (cv)->waiters; \ - (cv)->waiters = _tmpthr; \ - LeaveCriticalSection(&(cv)->cs); \ - LeaveCriticalSection(m); \ - WaitForSingleObject(_tmpthr->sem, INFINITE); \ - EnterCriticalSection(m); \ -} -# define xcondition_signal(cv) { \ - EnterCriticalSection(&(cv)->cs); \ - if ((cv)->waiters) { \ - ReleaseSemaphore((cv)->waiters->sem, 1, NULL); \ - (cv)->waiters = (cv)->waiters->next; \ - } \ - LeaveCriticalSection(&(cv)->cs); \ -} -# define xcondition_broadcast(cv) { \ - struct _xthread_waiter *_tmpthr; \ - EnterCriticalSection(&(cv)->cs); \ - for (_tmpthr = (cv)->waiters; _tmpthr; _tmpthr = _tmpthr->next) \ - ReleaseSemaphore(_tmpthr->sem, 1, NULL); \ - (cv)->waiters = NULL; \ - LeaveCriticalSection(&(cv)->cs); \ -} -# else /* !WIN32 */ -# ifdef USE_TIS_SUPPORT -/* - * TIS support is intended for thread safe libraries. - * This should not be used for general client programming. - */ -# include <tis.h> -typedef pthread_t xthread_t; -typedef pthread_key_t xthread_key_t; -typedef pthread_cond_t xcondition_rec; -typedef pthread_mutex_t xmutex_rec; -# define xthread_self tis_self -# define xthread_fork(func,closure) { pthread_t _tmpxthr; \ - pthread_create(&_tmpxthr,NULL,func,closure); } -# define xthread_yield() pthread_yield_np() -# define xthread_exit(v) pthread_exit(v) -# define xthread_key_create(kp,d) tis_key_create(kp,d) -# define xthread_key_delete(k) tis_key_delete(k) -# define xthread_set_specific(k,v) tis_setspecific(k,v) -# define xthread_get_specific(k,vp) *(vp) = tis_getspecific(k) -# define XMUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -# define xmutex_init(m) tis_mutex_init(m) -# define xmutex_clear(m) tis_mutex_destroy(m) -# define xmutex_lock(m) tis_mutex_lock(m) -# define xmutex_unlock(m) tis_mutex_unlock(m) -# define xcondition_init(c) tis_cond_init(c) -# define xcondition_clear(c) tis_cond_destroy(c) -# define xcondition_wait(c,m) tis_cond_wait(c,m) -# define xcondition_signal(c) tis_cond_signal(c) -# define xcondition_broadcast(c) tis_cond_broadcast(c) -# else -# ifdef USE_NBSD_THREADLIB -/* - * NetBSD threadlib support is intended for thread safe libraries. - * This should not be used for general client programming. - */ -# include <threadlib.h> -typedef thr_t xthread_t; -typedef thread_key_t xthread_key_t; -typedef cond_t xcondition_rec; -typedef mutex_t xmutex_rec; -# define xthread_self thr_self -# define xthread_fork(func,closure) { thr_t _tmpxthr; \ - /* XXX Create it detached? --thorpej */ \ - thr_create(&_tmpxthr,NULL,func,closure); } -# define xthread_yield() thr_yield() -# define xthread_exit(v) thr_exit(v) -# define xthread_key_create(kp,d) thr_keycreate(kp,d) -# define xthread_key_delete(k) thr_keydelete(k) -# define xthread_set_specific(k,v) thr_setspecific(k,v) -# define xthread_get_specific(k,vp) *(vp) = thr_getspecific(k) -# define XMUTEX_INITIALIZER MUTEX_INITIALIZER -# define xmutex_init(m) mutex_init(m, 0) -# define xmutex_clear(m) mutex_destroy(m) -# define xmutex_lock(m) mutex_lock(m) -# define xmutex_unlock(m) mutex_unlock(m) -# define xcondition_init(c) cond_init(c, 0, 0) -# define xcondition_clear(c) cond_destroy(c) -# define xcondition_wait(c,m) cond_wait(c,m) -# define xcondition_signal(c) cond_signal(c) -# define xcondition_broadcast(c) cond_broadcast(c) -# else -# include <pthread.h> -typedef pthread_t xthread_t; -typedef pthread_key_t xthread_key_t; -typedef pthread_cond_t xcondition_rec; -typedef pthread_mutex_t xmutex_rec; -# define xthread_self pthread_self -# define xthread_yield() pthread_yield() -# define xthread_exit(v) pthread_exit(v) -# define xthread_set_specific(k,v) pthread_setspecific(k,v) -# define xmutex_clear(m) pthread_mutex_destroy(m) -# define xmutex_lock(m) pthread_mutex_lock(m) -# define xmutex_unlock(m) pthread_mutex_unlock(m) -# ifndef XPRE_STANDARD_API -# define xthread_key_create(kp,d) pthread_key_create(kp,d) -# define xthread_key_delete(k) pthread_key_delete(k) -# define xthread_get_specific(k,vp) *(vp) = pthread_getspecific(k) -# define xthread_fork(func,closure) { pthread_t _tmpxthr; \ - pthread_create(&_tmpxthr,NULL,func,closure); } -# define XMUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -# define xmutex_init(m) pthread_mutex_init(m, NULL) -# define xcondition_init(c) pthread_cond_init(c, NULL) -# else /* XPRE_STANDARD_API */ -# define xthread_key_create(kp,d) pthread_keycreate(kp,d) -# define xthread_key_delete(k) 0 -# define xthread_get_specific(k,vp) pthread_getspecific(k,vp) -# define xthread_fork(func,closure) { pthread_t _tmpxthr; \ - pthread_create(&_tmpxthr,pthread_attr_default,func,closure); } -# define xmutex_init(m) pthread_mutex_init(m, pthread_mutexattr_default) -# define xcondition_init(c) pthread_cond_init(c, pthread_condattr_default) -# endif /* XPRE_STANDARD_API */ -# define xcondition_clear(c) pthread_cond_destroy(c) -# define xcondition_wait(c,m) pthread_cond_wait(c,m) -# define xcondition_signal(c) pthread_cond_signal(c) -# define xcondition_broadcast(c) pthread_cond_broadcast(c) -# if defined(_DECTHREADS_) -static xthread_t _X_no_thread_id; -# define xthread_have_id(id) !pthread_equal(id, _X_no_thread_id) -# define xthread_clear_id(id) id = _X_no_thread_id -# define xthread_equal(id1,id2) pthread_equal(id1, id2) -# endif /* _DECTHREADS_ */ -# if defined(__linux__) -# define xthread_have_id(id) !pthread_equal(id, 0) -# define xthread_clear_id(id) id = 0 -# define xthread_equal(id1,id2) pthread_equal(id1, id2) -# endif /* linux */ -# if defined(_CMA_VENDOR_) && defined(_CMA__IBM) && (_CMA_VENDOR_ == _CMA__IBM) -# ifdef DEBUG /* too much of a hack to enable normally */ -/* see also cma__obj_set_name() */ -# define xmutex_set_name(m,str) ((char**)(m)->field1)[5] = (str) -# define xcondition_set_name(cv,str) ((char**)(cv)->field1)[5] = (str) -# endif /* DEBUG */ -# endif /* _CMA_VENDOR_ == _CMA__IBM */ -# endif /* USE_NBSD_THREADLIB */ -# endif /* USE_TIS_SUPPORT */ -# endif /* WIN32 */ -# endif /* SVR4 */ -# endif /* CTHREADS */ -typedef xcondition_rec *xcondition_t; -typedef xmutex_rec *xmutex_t; -# ifndef xcondition_malloc -# define xcondition_malloc() (xcondition_t)xmalloc(sizeof(xcondition_rec)) -# endif -# ifndef xcondition_free -# define xcondition_free(c) xfree((char *)c) -# endif -# ifndef xmutex_malloc -# define xmutex_malloc() (xmutex_t)xmalloc(sizeof(xmutex_rec)) -# endif -# ifndef xmutex_free -# define xmutex_free(m) xfree((char *)m) -# endif -# ifndef xthread_have_id -# define xthread_have_id(id) id -# endif -# ifndef xthread_clear_id -# define xthread_clear_id(id) id = 0 -# endif -# ifndef xthread_equal -# define xthread_equal(id1,id2) ((id1) == (id2)) -# endif -/* aids understood by some debuggers */ -# ifndef xthread_set_name -# define xthread_set_name(t,str) -# endif -# ifndef xmutex_set_name -# define xmutex_set_name(m,str) -# endif -# ifndef xcondition_set_name -# define xcondition_set_name(cv,str) -# endif - -#endif /* _XTHREADS_H_ */ diff --git a/proto/x11proto/Xw32defs.h b/proto/x11proto/Xw32defs.h deleted file mode 100644 index b2e4b33ae..000000000 --- a/proto/x11proto/Xw32defs.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef _XW32DEFS_H -# define _XW32DEFS_H - -# ifdef __GNUC__ /* mingw is more close to unix than msvc */ -# if !defined(__daddr_t_defined) -typedef char *caddr_t; -# endif -# define lstat stat - -# else -typedef char *caddr_t; - -# define access _access -# define alloca _alloca -# define chdir _chdir -# define chmod _chmod -# define close _close -# define creat _creat -# define dup _dup -# define dup2 _dup2 -# define environ _environ -# define execl _execl -# define execle _execle -# define execlp _execlp -# define execlpe _execlpe -# define execv _execv -# define execve _execve -# define execvp _execvp -# define execvpe _execvpe -# define fdopen _fdopen -# define fileno _fileno -# define fstat _fstat -# define getcwd _getcwd -# define getpid _getpid -# define hypot _hypot -# define isascii __isascii -# define isatty _isatty -# define lseek _lseek -# define mkdir _mkdir -# define mktemp _mktemp -# define open _open -# define putenv _putenv -# define read _read -# define rmdir _rmdir -# define sleep(x) Sleep((x) * 1000) -# define stat _stat -# define sys_errlist _sys_errlist -# define sys_nerr _sys_nerr -# define umask _umask -# define unlink _unlink -# define write _write -# define random rand -# define srandom srand - -# define O_RDONLY _O_RDONLY -# define O_WRONLY _O_WRONLY -# define O_RDWR _O_RDWR -# define O_APPEND _O_APPEND -# define O_CREAT _O_CREAT -# define O_TRUNC _O_TRUNC -# define O_EXCL _O_EXCL -# define O_TEXT _O_TEXT -# define O_BINARY _O_BINARY -# define O_RAW _O_BINARY - -# define S_IFMT _S_IFMT -# define S_IFDIR _S_IFDIR -# define S_IFCHR _S_IFCHR -# define S_IFREG _S_IFREG -# define S_IREAD _S_IREAD -# define S_IWRITE _S_IWRITE -# define S_IEXEC _S_IEXEC - -# define F_OK 0 -# define X_OK 1 -# define W_OK 2 -# define R_OK 4 -# endif /* __GNUC__ */ -#endif diff --git a/proto/x11proto/Xwindows.h b/proto/x11proto/Xwindows.h deleted file mode 100644 index 70e1debd5..000000000 --- a/proto/x11proto/Xwindows.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - -Copyright 1996, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 MERCHANTABIL- -ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL- -ITY, 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 name of The Open Group 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 Open Group. - -*/ - -/* - * This header file has the sole purpose of allowing the inclusion of - * windows.h without getting any name conflicts with X headers code, by - * renaming or disabling the conflicting definitions from windows.h - */ - -/* - * Mingw.org versions of the Windows API headers actually avoid - * making the conflicting definitions if XFree86Server is defined, so we - * need to remember if that was defined and undefine it during including - * windows.h (so the conflicting definitions get wrapped correctly), and - * then redefine it afterwards. (This was never the correct thing to - * do as it's no help at all to X11 clients which also need to use the - * Win32 API) - */ -#undef _XFree86Server -#ifdef XFree86Server -# define _XFree86Server -# undef XFree86Server -#endif - -/* - * There doesn't seem to be a good way to wrap the min/max macros from - * windows.h, so we simply avoid defining them completely, allowing any - * pre-existing definition to stand. - * - */ -#define NOMINMAX - -/* - * mingw-w64 headers define BOOL as a typedef, protecting against macros - * mingw.org headers define BOOL in terms of WINBOOL - * ... so try to come up with something which works with both :-) - */ -#define _NO_BOOL_TYPEDEF -#define BOOL WINBOOL -#define INT32 wINT32 -#ifdef __x86_64__ -#define INT64 wINT64 -#define LONG64 wLONG64 -#endif -#undef Status -#define Status wStatus -#define ATOM wATOM -#define BYTE wBYTE -#define FreeResource wFreeResource -#include <windows.h> -#undef NOMINMAX -#undef Status -#define Status int -#undef BYTE -#undef BOOL -#undef INT32 -#undef INT64 -#undef LONG64 -#undef ATOM -#undef FreeResource -#undef CreateWindowA - -/* - * Older version of this header used to name the windows API bool type wBOOL, - * rather than more standard name WINBOOL - */ -#define wBOOL WINBOOL - -#ifdef RESOURCE_H -# undef RT_FONT -# undef RT_CURSOR -# define RT_FONT ((RESTYPE)4) -# define RT_CURSOR ((RESTYPE)5) -#endif - -#ifndef __CYGWIN__ -#define sleep(x) Sleep((x) * 1000) -#endif - -#if defined(WIN32) && (!defined(PATH_MAX) || PATH_MAX < 1024) -# undef PATH_MAX -# define PATH_MAX 1024 -#endif - -#ifdef _XFree86Server -# define XFree86Server -# undef _XFree86Server -#endif - diff --git a/proto/x11proto/Xwinsock.h b/proto/x11proto/Xwinsock.h deleted file mode 100644 index a81dd7a25..000000000 --- a/proto/x11proto/Xwinsock.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - -Copyright 1996, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 MERCHANTABIL- -ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL- -ITY, 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 name of The Open Group 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 Open Group. - -*/ - -/* - * This header file has for sole purpose to allow to include winsock.h - * without getting any name conflicts with our code. - * Conflicts come from the fact that including winsock.h actually pulls - * in the whole Windows API... - */ - -#undef _XFree86Server -#ifdef XFree86Server -# define _XFree86Server -# undef XFree86Server -#endif - -/* - * mingw-w64 headers define BOOL as a typedef, protecting against macros - * mingw.org headers define BOOL in terms of WINBOOL - * ... so try to come up with something which works with both :-) - */ -#define _NO_BOOL_TYPEDEF -#define BOOL WINBOOL -#define INT32 wINT32 -#undef Status -#define Status wStatus -#define ATOM wATOM -#define BYTE wBYTE -#define FreeResource wFreeResource -#include <winsock2.h> -#undef Status -#define Status int -#undef BYTE -#undef BOOL -#undef INT32 -#undef ATOM -#undef FreeResource -#undef CreateWindowA -#undef RT_FONT -#undef RT_CURSOR - -/* - * Older version of this header used to name the windows API bool type wBOOL, - * rather than more standard name WINBOOL - */ -#define wBOOL WINBOOL - -#ifdef _XFree86Server -# define XFree86Server -# undef _XFree86Server -#endif - diff --git a/proto/x11proto/aclocal.m4 b/proto/x11proto/aclocal.m4 deleted file mode 100644 index 1889347ec..000000000 --- a/proto/x11proto/aclocal.m4 +++ /dev/null @@ -1,860 +0,0 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.6])]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 7 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 3 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 12 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.58])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) -AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(SHELL) $(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -dnl Copyright 2005 Red Hat, Inc -dnl -dnl Permission to use, copy, modify, distribute, and sell this software and its -dnl documentation for any purpose is hereby granted without fee, provided that -dnl the above copyright notice appear in all copies and that both that -dnl copyright notice and this permission notice appear in supporting -dnl documentation. -dnl -dnl The above copyright notice and this permission notice shall be included -dnl in all copies or substantial portions of the Software. -dnl -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -dnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -dnl OTHER DEALINGS IN THE SOFTWARE. -dnl -dnl Except as contained in this notice, the name of the copyright holders shall -dnl not be used in advertising or otherwise to promote the sale, use or -dnl other dealings in this Software without prior written authorization -dnl from the copyright holders. -dnl - -# XORG_RELEASE_VERSION -# -------------------- -# Adds --with/without-release-string and changes the PACKAGE and -# PACKAGE_TARNAME to use "$PACKAGE{_TARNAME}-$RELEASE_VERSION". If -# no option is given, PACKAGE and PACKAGE_TARNAME are unchanged. Also -# defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use. - -AC_DEFUN([XORG_RELEASE_VERSION],[ - AC_ARG_WITH(release-version, - AC_HELP_STRING([--with-release-version=STRING], - [Use release version string in package name]), - [RELEASE_VERSION="$withval"], - [RELEASE_VERSION=""]) - if test "x$RELEASE_VERSION" != "x"; then - PACKAGE="$PACKAGE-$RELEASE_VERSION" - PACKAGE_TARNAME="$PACKAGE_TARNAME-$RELEASE_VERSION" - AC_MSG_NOTICE([Building with package name set to $PACKAGE]) - fi - AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR], - [`echo $PACKAGE_VERSION | cut -d . -f 1`], - [Major version of this package]) - PVM=`echo $PACKAGE_VERSION | cut -d . -f 2` - if test "x$PVM" = "x"; then - PVM="0" - fi - AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR], - [$PVM], - [Minor version of this package]) - PVP=`echo $PACKAGE_VERSION | cut -d . -f 3` - if test "x$PVP" = "x"; then - PVP="0" - fi - AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], - [$PVP], - [Patch version of this package]) -]) - diff --git a/proto/x11proto/ap_keysym.h b/proto/x11proto/ap_keysym.h deleted file mode 100644 index 9a1197117..000000000 --- a/proto/x11proto/ap_keysym.h +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************** -Copyright 1987 by Apollo Computer Inc., Chelmsford, Massachusetts. -Copyright 1989 by Hewlett-Packard Company. - - All Rights Reserved - -Permission to use, duplicate, change, and distribute this software and -its documentation for any purpose and without fee is granted, provided -that the above copyright notice appear in such copy and that this -copyright notice appear in all supporting documentation, and that the -names of Apollo Computer Inc., the Hewlett-Packard Company, or the X -Consortium not be used in advertising or publicity pertaining to -distribution of the software without written prior permission. - -HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD -TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. Hewlett-Packard shall not be liable for errors -contained herein or direct, indirect, special, incidental or -consequential damages in connection with the furnishing, -performance, or use of this material. - -This software is not subject to any license of the American -Telephone and Telegraph Company or of the Regents of the -University of California. -******************************************************************/ - -#define apXK_LineDel 0x1000FF00 -#define apXK_CharDel 0x1000FF01 -#define apXK_Copy 0x1000FF02 -#define apXK_Cut 0x1000FF03 -#define apXK_Paste 0x1000FF04 -#define apXK_Move 0x1000FF05 -#define apXK_Grow 0x1000FF06 -#define apXK_Cmd 0x1000FF07 -#define apXK_Shell 0x1000FF08 -#define apXK_LeftBar 0x1000FF09 -#define apXK_RightBar 0x1000FF0A -#define apXK_LeftBox 0x1000FF0B -#define apXK_RightBox 0x1000FF0C -#define apXK_UpBox 0x1000FF0D -#define apXK_DownBox 0x1000FF0E -#define apXK_Pop 0x1000FF0F -#define apXK_Read 0x1000FF10 -#define apXK_Edit 0x1000FF11 -#define apXK_Save 0x1000FF12 -#define apXK_Exit 0x1000FF13 -#define apXK_Repeat 0x1000FF14 - -#define apXK_KP_parenleft 0x1000FFA8 -#define apXK_KP_parenright 0x1000FFA9 diff --git a/proto/x11proto/compile b/proto/x11proto/compile deleted file mode 100644 index 531136b06..000000000 --- a/proto/x11proto/compile +++ /dev/null @@ -1,347 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2012-10-14.11; # UTC - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# Written by Tom Tromey <tromey@cygnus.com>. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to <bug-automake@gnu.org>. -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/proto/x11proto/config.guess b/proto/x11proto/config.guess deleted file mode 100644 index 917bbc50f..000000000 --- a/proto/x11proto/config.guess +++ /dev/null @@ -1,1463 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - -timestamp='2005-07-08' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include <stdio.h> /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <sys/systemcfg.h> - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <unistd.h> - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL - elif /bin/uname -X 2>/dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes <hewes@openmarket.com>. - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - *86) UNAME_PROCESSOR=i686 ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c <<EOF -#ifdef _SEQUENT_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include <sys/param.h> -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 <<EOF -$0: unable to guess system type - -This script, last modified $timestamp, has failed to recognize -the operating system you are using. It is advised that you -download the most up to date version of the config scripts from - - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess -and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub - -If the version you run ($0) is already up to date, please -send the following data and any information you think might be -pertinent to <config-patches@gnu.org> in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/proto/x11proto/config.sub b/proto/x11proto/config.sub deleted file mode 100644 index 1c366dfde..000000000 --- a/proto/x11proto/config.sub +++ /dev/null @@ -1,1579 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - -timestamp='2005-07-08' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | ms1 \ - | msp430 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m32c) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | ms1-* \ - | msp430-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - m32c-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16c) - basic_machine=cr16c-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/proto/x11proto/configure b/proto/x11proto/configure deleted file mode 100644 index be0ed0b12..000000000 --- a/proto/x11proto/configure +++ /dev/null @@ -1,4729 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for Xproto 7.0.10. -# -# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME='Xproto' -PACKAGE_TARNAME='xproto' -PACKAGE_VERSION='7.0.10' -PACKAGE_STRING='Xproto 7.0.10' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE USE_FDS_BITS LIBOBJS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures Xproto 7.0.10 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of Xproto 7.0.10:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-function-prototypes - force function prototypes (default: auto) - --enable-varargs-prototypes - varargs prototypes are supported (default: auto) - --enable-const-prototypes - const is supported (default: auto) - --enable-nested-prototypes - nested prototypes are supported (default: auto) - --enable-wide-prototypes - widen function prototypes (default: auto) - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-release-version=STRING - Use release version string in package name - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have - headers in a nonstandard directory <include dir> - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF -Xproto configure 7.0.10 -generated by GNU Autoconf 2.59 - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by Xproto $as_me 7.0.10, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - - - - - - - -am__api_version="1.9" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(SHELL) $(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='xproto' - VERSION='7.0.10' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - - - ac_config_headers="$ac_config_headers do-not-use-config.h" - - ac_config_headers="$ac_config_headers Xfuncproto.h" - - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - - - - -# Check for enable/disable options -# Check whether --enable-function-prototypes or --disable-function-prototypes was given. -if test "${enable_function_prototypes+set}" = set; then - enableval="$enable_function_prototypes" - FUNCPROTO=$enableval -else - FUNCPROTO=auto -fi; -# Check whether --enable-varargs-prototypes or --disable-varargs-prototypes was given. -if test "${enable_varargs_prototypes+set}" = set; then - enableval="$enable_varargs_prototypes" - VAPROTO=$enableval -else - VAPROTO=auto -fi; -# Check whether --enable-const-prototypes or --disable-const-prototypes was given. -if test "${enable_const_prototypes+set}" = set; then - enableval="$enable_const_prototypes" - CONSTPROTO=$enableval -else - CONSTPROTO=auto -fi; -# Check whether --enable-nested-prototypes or --disable-nested-prototypes was given. -if test "${enable_nested_prototypes+set}" = set; then - enableval="$enable_nested_prototypes" - NESTEDPROTO=$enableval -else - NESTEDPROTO=auto -fi; -# Check whether --enable-wide-prototypes or --disable-wide-prototypes was given. -if test "${enable_wide_prototypes+set}" = set; then - enableval="$enable_wide_prototypes" - WIDEPROTO=$enableval -else - WIDEPROTO=auto -fi; - - -# Handle Xpoll.h.in -fds_bits_found=false; - -if test "x$fds_bits_found" = xfalse ; then - DEPDIR="${am__leading_dot}deps" - - ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" - -fi; -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 - (eval $ac_compiler --version </dev/null >&5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 - (eval $ac_compiler -v </dev/null >&5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5 - (eval $ac_compiler -V </dev/null >&5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include <stdlib.h> -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -echo "$as_me:$LINENO: checking for fd_set.fds_bits" >&5 -echo $ECHO_N "checking for fd_set.fds_bits... $ECHO_C" >&6 -if test "${ac_cv_member_fd_set_fds_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include <sys/types.h> - #include <sys/select.h> - - -int -main () -{ -static fd_set ac_aggr; -if (ac_aggr.fds_bits) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_fd_set_fds_bits=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include <sys/types.h> - #include <sys/select.h> - - -int -main () -{ -static fd_set ac_aggr; -if (sizeof ac_aggr.fds_bits) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_fd_set_fds_bits=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_fd_set_fds_bits=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_fd_set_fds_bits" >&5 -echo "${ECHO_T}$ac_cv_member_fd_set_fds_bits" >&6 -if test $ac_cv_member_fd_set_fds_bits = yes; then - - fds_bits_found=plain - USE_FDS_BITS="fds_bits" - -fi - -fi - -if test "x$fds_bits_found" = xfalse ; then - echo "$as_me:$LINENO: checking for fd_set.__fds_bits" >&5 -echo $ECHO_N "checking for fd_set.__fds_bits... $ECHO_C" >&6 -if test "${ac_cv_member_fd_set___fds_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include <sys/types.h> - #include <sys/select.h> - - -int -main () -{ -static fd_set ac_aggr; -if (ac_aggr.__fds_bits) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_fd_set___fds_bits=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include <sys/types.h> - #include <sys/select.h> - - -int -main () -{ -static fd_set ac_aggr; -if (sizeof ac_aggr.__fds_bits) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_fd_set___fds_bits=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_fd_set___fds_bits=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_fd_set___fds_bits" >&5 -echo "${ECHO_T}$ac_cv_member_fd_set___fds_bits" >&6 -if test $ac_cv_member_fd_set___fds_bits = yes; then - - fds_bits_found=underscores - USE_FDS_BITS="__fds_bits" - -fi - -fi - -if test "x$fds_bits_found" = xfalse ; then - { { echo "$as_me:$LINENO: error: Could not determine how to access the fds_bits or equivalent - structure in fd_set on your platform." >&5 -echo "$as_me: error: Could not determine how to access the fds_bits or equivalent - structure in fd_set on your platform." >&2;} - { (exit 1); exit 1; }; } -fi - - - - -# Handle Xfuncproto.h -echo "$as_me:$LINENO: checking whether const prototypes are supported" >&5 -echo $ECHO_N "checking whether const prototypes are supported... $ECHO_C" >&6 -if test "x$CONSTPROTO" = xauto; then - case $host_os in - linux*) CONSTPROTO=yes ;; - freebsd*) CONSTPROTO=yes ;; - netbsd*) CONSTPROTO=yes ;; - openbsd*) CONSTPROTO=yes ;; - solaris*) CONSTPROTO=yes ;; - *) CONSTPROTO=no ;; - esac -fi -echo "$as_me:$LINENO: result: $CONSTPROTO" >&5 -echo "${ECHO_T}$CONSTPROTO" >&6 - -echo "$as_me:$LINENO: checking whether varargs prototypes are supported" >&5 -echo $ECHO_N "checking whether varargs prototypes are supported... $ECHO_C" >&6 -if test "x$VAPROTO" = xauto; then - case $host_os in - linux*) VAPROTO=yes ;; - freebsd*) VAPROTO=yes ;; - netbsd*) VAPROTO=yes ;; - openbsd*) VAPROTO=yes ;; - solaris*) VAPROTO=yes ;; - *) VAPROTO=no ;; - esac -fi -echo "$as_me:$LINENO: result: $VAPROTO" >&5 -echo "${ECHO_T}$VAPROTO" >&6 - -echo "$as_me:$LINENO: checking whether nested prototypes are supported" >&5 -echo $ECHO_N "checking whether nested prototypes are supported... $ECHO_C" >&6 -if test "x$NESTEDPROTO" = xauto; then - case $host_os in - linux*) NESTEDPROTO=yes ;; - freebsd*) NESTEDPROTO=yes ;; - netbsd*) NESTEDPROTO=yes ;; - openbsd*) NESTEDPROTO=yes ;; - solaris*) NESTEDPROTO=yes ;; - *) NESTEDPROTO=no ;; - esac -fi -echo "$as_me:$LINENO: result: $NESTEDPROTO" >&5 -echo "${ECHO_T}$NESTEDPROTO" >&6 - -echo "$as_me:$LINENO: checking whether to force function prototypes" >&5 -echo $ECHO_N "checking whether to force function prototypes... $ECHO_C" >&6 -if test "x$FUNCPROTO" = xauto; then - case $host_os in - linux*) FUNCPROTO=yes ;; - freebsd*) FUNCPROTO=yes ;; - netbsd*) FUNCPROTO=yes ;; - openbsd*) FUNCPROTO=yes ;; - *) - if test "x$VAPROTO" = xyes && test "x$NESTEDPROTO" = xyes; then - FUNCPROTO=yes - else - FUNCPROTO=no - fi - ;; - esac -fi -echo "$as_me:$LINENO: result: $FUNCPROTO" >&5 -echo "${ECHO_T}$FUNCPROTO" >&6 - -# Logic for this was taken from Imake.tmpl -if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes && test "x$NESTEDPROTO" = xyes && test "x$CONSTPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO 15 -_ACEOF - -else - if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes && test "x$NESTEDPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO 11 -_ACEOF - - else - if test "x$FUNCPROTO" = xyes && test "x$NESTEDPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO 9 -_ACEOF - - else - if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes && test "x$CONSTPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO 7 -_ACEOF - - else - if test "x$FUNCPROTO" = xyes && test "x$CONSTPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO 5 -_ACEOF - - else - if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO 3 -_ACEOF - - else - if test "x$FUNCPROTO" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define FUNCPROTO -_ACEOF - - fi - fi - fi - fi - fi - fi -fi - -echo "$as_me:$LINENO: checking whether to widen function prototypes" >&5 -echo $ECHO_N "checking whether to widen function prototypes... $ECHO_C" >&6 -if test "x$WIDEPROTO" = xauto; then - case $host_os in - linux*) WIDEPROTO=no ;; - freebsd*) WIDEPROTO=no ;; - netbsd*) WIDEPROTO=no ;; - openbsd*) WIDEPROTO=no ;; - *) WIDEPROTO=yes ;; - esac -fi -echo "$as_me:$LINENO: result: $WIDEPROTO" >&5 -echo "${ECHO_T}$WIDEPROTO" >&6 - -if test "x$WIDEPROTO" = xno; then - -cat >>confdefs.h <<\_ACEOF -#define NARROWPROTO -_ACEOF - -fi - - - -# Check whether --with-release-version or --without-release-version was given. -if test "${with_release_version+set}" = set; then - withval="$with_release_version" - RELEASE_VERSION="$withval" -else - RELEASE_VERSION="" -fi; - if test "x$RELEASE_VERSION" != "x"; then - PACKAGE="$PACKAGE-$RELEASE_VERSION" - PACKAGE_TARNAME="$PACKAGE_TARNAME-$RELEASE_VERSION" - { echo "$as_me:$LINENO: Building with package name set to $PACKAGE" >&5 -echo "$as_me: Building with package name set to $PACKAGE" >&6;} - fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1` -_ACEOF - - PVM=`echo $PACKAGE_VERSION | cut -d . -f 2` - if test "x$PVM" = "x"; then - PVM="0" - fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION_MINOR $PVM -_ACEOF - - PVP=`echo $PACKAGE_VERSION | cut -d . -f 3` - if test "x$PVP" = "x"; then - PVP="0" - fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION_PATCHLEVEL $PVP -_ACEOF - - - - ac_config_files="$ac_config_files Makefile Xpoll.h xproto.pc" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by Xproto $as_me 7.0.10, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to <bug-autoconf@gnu.org>." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -Xproto config.status 7.0.10 -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "Xpoll.h" ) CONFIG_FILES="$CONFIG_FILES Xpoll.h" ;; - "xproto.pc" ) CONFIG_FILES="$CONFIG_FILES xproto.pc" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "do-not-use-config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS do-not-use-config.h" ;; - "Xfuncproto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS Xfuncproto.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@USE_FDS_BITS@,$USE_FDS_BITS,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -# Compute $ac_file's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $ac_file | $ac_file:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/proto/x11proto/configure.ac b/proto/x11proto/configure.ac deleted file mode 100644 index 2b91a9d7b..000000000 --- a/proto/x11proto/configure.ac +++ /dev/null @@ -1,217 +0,0 @@ -AC_PREREQ([2.60]) -AC_INIT([Xproto], [7.0.31], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) -AM_INIT_AUTOMAKE([foreign dist-bzip2]) - -# Require xorg-macros minimum of 1.12 for DocBook external references -m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])]) -XORG_MACROS_VERSION(1.12) -XORG_DEFAULT_OPTIONS -XORG_ENABLE_SPECS -XORG_WITH_XMLTO(0.0.22) -XORG_WITH_FOP -XORG_WITH_XSLTPROC -XORG_CHECK_SGML_DOCTOOLS(1.8) - -AC_CONFIG_HEADERS([do-not-use-config.h]) -AC_CONFIG_HEADERS([Xfuncproto.h]) - -AC_CANONICAL_HOST - -m4_ifdef([AS_HELP_STRING], , [m4_define([AS_HELP_STRING], m4_defn([AC_HELP_STRING]))]) - -# Check for enable/disable options -AC_ARG_ENABLE(function-prototypes, - AS_HELP_STRING([--enable-function-prototypes], - [force function prototypes (default: auto)]), - [FUNCPROTO=$enableval], [FUNCPROTO=auto]) -AC_ARG_ENABLE(varargs-prototypes, - AS_HELP_STRING([--enable-varargs-prototypes], - [varargs prototypes are supported (default: auto)]), - [VAPROTO=$enableval], [VAPROTO=auto]) -AC_ARG_ENABLE(const-prototypes, - AS_HELP_STRING([--enable-const-prototypes], - [const is supported (default: auto)]), - [CONSTPROTO=$enableval], [CONSTPROTO=auto]) -AC_ARG_ENABLE(nested-prototypes, - AS_HELP_STRING([--enable-nested-prototypes], - [nested prototypes are supported (default: auto)]), - [NESTEDPROTO=$enableval], [NESTEDPROTO=auto]) -AC_ARG_ENABLE(wide-prototypes, - AS_HELP_STRING([--enable-wide-prototypes], - [widen function prototypes (default: auto)]), - [WIDEPROTO=$enableval], [WIDEPROTO=auto]) - - -AC_CHECK_HEADERS([sys/select.h sys/param.h sys/types.h sys/time.h]) - -# Handle Xpoll.h.in -# Avoid determining fds_bits on WIN32 hosts (not including cygwin) -case $host_os in - mingw*) fds_bits_found=true;; - *) fds_bits_found=false;; -esac - -if test "x$fds_bits_found" = xfalse ; then - AC_CHECK_MEMBER(fd_set.fds_bits, - [ - fds_bits_found=plain - USE_FDS_BITS="fds_bits" - ],, - [ - #ifdef HAVE_SYS_PARAM_H - #include <sys/param.h> - #endif - #ifdef HAVE_SYS_TYPES_H - #include <sys/types.h> - #endif - #ifdef HAVE_SYS_TIME_H - #include <sys/time.h> - #endif - #ifdef HAVE_SYS_SELECT_H - #include <sys/select.h> - #endif - ]) -fi - -if test "x$fds_bits_found" = xfalse ; then - AC_CHECK_MEMBER(fd_set.__fds_bits, - [ - fds_bits_found=underscores - USE_FDS_BITS="__fds_bits" - ],, - [ - #ifdef HAVE_SYS_PARAM_H - #include <sys/param.h> - #endif - #ifdef HAVE_SYS_TYPES_H - #include <sys/types.h> - #endif - #ifdef HAVE_SYS_TIME_H - #include <sys/time.h> - #endif - #ifdef HAVE_SYS_SELECT_H - #include <sys/select.h> - #endif - ]) -fi - -if test "x$fds_bits_found" = xfalse ; then - AC_MSG_ERROR([Could not determine how to access the fds_bits or equivalent - structure in fd_set on your platform.]) -fi - -AC_SUBST([USE_FDS_BITS]) - - -# Handle Xfuncproto.h -AC_MSG_CHECKING([whether const prototypes are supported]) -if test "x$CONSTPROTO" = xauto; then - case $host_os in - linux*) CONSTPROTO=yes ;; - freebsd*) CONSTPROTO=yes ;; - netbsd*) CONSTPROTO=yes ;; - openbsd*) CONSTPROTO=yes ;; - solaris*) CONSTPROTO=yes ;; - *) CONSTPROTO=no ;; - esac -fi -AC_MSG_RESULT([$CONSTPROTO]) - -AC_MSG_CHECKING([whether varargs prototypes are supported]) -if test "x$VAPROTO" = xauto; then - case $host_os in - linux*) VAPROTO=yes ;; - freebsd*) VAPROTO=yes ;; - netbsd*) VAPROTO=yes ;; - openbsd*) VAPROTO=yes ;; - solaris*) VAPROTO=yes ;; - *) VAPROTO=no ;; - esac -fi -AC_MSG_RESULT([$VAPROTO]) - -AC_MSG_CHECKING([whether nested prototypes are supported]) -if test "x$NESTEDPROTO" = xauto; then - case $host_os in - linux*) NESTEDPROTO=yes ;; - freebsd*) NESTEDPROTO=yes ;; - netbsd*) NESTEDPROTO=yes ;; - openbsd*) NESTEDPROTO=yes ;; - solaris*) NESTEDPROTO=yes ;; - *) NESTEDPROTO=no ;; - esac -fi -AC_MSG_RESULT([$NESTEDPROTO]) - -AC_MSG_CHECKING([whether to force function prototypes]) -if test "x$FUNCPROTO" = xauto; then - case $host_os in - linux*) FUNCPROTO=yes ;; - freebsd*) FUNCPROTO=yes ;; - netbsd*) FUNCPROTO=yes ;; - openbsd*) FUNCPROTO=yes ;; - *) - if test "x$VAPROTO" = xyes && test "x$NESTEDPROTO" = xyes; then - FUNCPROTO=yes - else - FUNCPROTO=no - fi - ;; - esac -fi -AC_MSG_RESULT([$FUNCPROTO]) - -# Logic for this was taken from Imake.tmpl -if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes && test "x$NESTEDPROTO" = xyes && test "x$CONSTPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [15], [FUNCPROTO]) -else - if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes && test "x$NESTEDPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [11], [FUNCPROTO]) - else - if test "x$FUNCPROTO" = xyes && test "x$NESTEDPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [9], [FUNCPROTO]) - else - if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes && test "x$CONSTPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [7], [FUNCPROTO]) - else - if test "x$FUNCPROTO" = xyes && test "x$CONSTPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [5], [FUNCPROTO]) - else - if test "x$FUNCPROTO" = xyes && test "x$VAPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [3], [FUNCPROTO]) - else - if test "x$FUNCPROTO" = xyes; then - AC_DEFINE(FUNCPROTO, [], [FUNCPROTO]) - fi - fi - fi - fi - fi - fi -fi - -AC_MSG_CHECKING([whether to widen function prototypes]) -if test "x$WIDEPROTO" = xauto; then - case $host_os in - linux*) WIDEPROTO=no ;; - freebsd*) WIDEPROTO=no ;; - netbsd*) WIDEPROTO=no ;; - openbsd*) WIDEPROTO=no ;; - *) WIDEPROTO=yes ;; - esac -fi -AC_MSG_RESULT([$WIDEPROTO]) - -if test "x$WIDEPROTO" = xno; then - AC_DEFINE(NARROWPROTO, [], [Narrow prototypes]) -fi - - -AC_CONFIG_FILES([Makefile - specs/Makefile - specs/SIAddresses/Makefile - Xpoll.h - xproto.pc]) -AC_OUTPUT diff --git a/proto/x11proto/do-not-use-config.h.in b/proto/x11proto/do-not-use-config.h.in deleted file mode 100644 index 25b8013a3..000000000 --- a/proto/x11proto/do-not-use-config.h.in +++ /dev/null @@ -1,79 +0,0 @@ -/* do-not-use-config.h.in. Generated from configure.ac by autoheader. */ - -/* FUNCPROTO */ -#undef FUNCPROTO - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the <sys/param.h> header file. */ -#undef HAVE_SYS_PARAM_H - -/* Define to 1 if you have the <sys/select.h> header file. */ -#undef HAVE_SYS_SELECT_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/time.h> header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Narrow prototypes */ -#undef NARROWPROTO - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Major version of this package */ -#undef PACKAGE_VERSION_MAJOR - -/* Minor version of this package */ -#undef PACKAGE_VERSION_MINOR - -/* Patch version of this package */ -#undef PACKAGE_VERSION_PATCHLEVEL - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION diff --git a/proto/x11proto/docbook.am b/proto/x11proto/docbook.am deleted file mode 100644 index bba4d5453..000000000 --- a/proto/x11proto/docbook.am +++ /dev/null @@ -1,105 +0,0 @@ -# -# Generate output formats for a single DocBook/XML with/without chapters -# -# Variables set by the calling Makefile: -# shelfdir: the location where the docs/specs are installed. Typically $(docdir) -# docbook: the main DocBook/XML file, no chapters, appendix or image files -# chapters: all files pulled in by an XInclude statement and images. -# - -# -# This makefile is intended for Users Documentation and Functional Specifications. -# Do not use for Developer Documentation which is not installed and does not require olink. -# Refer to http://www.x.org/releases/X11R7.6/doc/xorg-docs/ReleaseNotes.html#id2584393 -# for an explanation on documents classification. -# - -# DocBook/XML generated output formats to be installed -shelf_DATA = - -# DocBook/XML file with chapters, appendix and images it includes -dist_shelf_DATA = $(docbook) $(chapters) - -if HAVE_XMLTO -if HAVE_STYLESHEETS - -XMLTO_SEARCHPATH_FLAGS = \ - --searchpath "$(XORG_SGML_PATH)/X11" \ - --searchpath "$(abs_top_builddir)" -XMLTO_HTML_OLINK_FLAGS = \ - --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.html.xml \ - --stringparam current.docid="$(<:.xml=)" -XMLTO_HTML_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl -XMLTO_HTML_FLAGS = \ - $(XMLTO_SEARCHPATH_FLAGS) \ - $(XMLTO_HTML_STYLESHEET_FLAGS) \ - $(XMLTO_HTML_OLINK_FLAGS) - -shelf_DATA += $(docbook:.xml=.html) -%.html: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) xhtml-nochunks $< - -if HAVE_XMLTO_TEXT - -shelf_DATA += $(docbook:.xml=.txt) -%.txt: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $< -endif HAVE_XMLTO_TEXT - -if HAVE_FOP -XMLTO_FO_IMAGEPATH_FLAGS = --stringparam img.src.path=$(abs_builddir)/ -XMLTO_PDF_OLINK_FLAGS = \ - --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.pdf.xml \ - --stringparam current.docid="$(<:.xml=)" -XMLTO_FO_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl - -XMLTO_FO_FLAGS = \ - $(XMLTO_SEARCHPATH_FLAGS) \ - $(XMLTO_FO_STYLESHEET_FLAGS) \ - $(XMLTO_FO_IMAGEPATH_FLAGS) \ - $(XMLTO_PDF_OLINK_FLAGS) - -shelf_DATA += $(docbook:.xml=.pdf) -%.pdf: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop pdf $< - -shelf_DATA += $(docbook:.xml=.ps) -%.ps: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop ps $< -endif HAVE_FOP - -# Generate documents cross-reference target databases -if HAVE_XSLTPROC - -XSLT_SEARCHPATH_FLAGS = \ - --path "$(XORG_SGML_PATH)/X11" \ - --path "$(abs_top_builddir)" -XSLT_OLINK_FLAGS = \ - --stringparam targets.filename "$@" \ - --stringparam collect.xref.targets "only" \ - --stringparam olink.base.uri "$(@:.db=)" - -XSLT_HTML_FLAGS = \ - $(XSLT_SEARCHPATH_FLAGS) \ - $(XSLT_OLINK_FLAGS) \ - --nonet --xinclude \ - $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl -XSLT_PDF_FLAGS = \ - $(XSLT_SEARCHPATH_FLAGS) \ - $(XSLT_OLINK_FLAGS) \ - --nonet --xinclude \ - $(STYLESHEET_SRCDIR)/xorg-fo.xsl - -shelf_DATA += $(docbook:.xml=.html.db) -%.html.db: %.xml $(chapters) - $(AM_V_GEN)$(XSLTPROC) $(XSLT_HTML_FLAGS) $< - -shelf_DATA += $(docbook:.xml=.pdf.db) -%.pdf.db: %.xml $(chapters) - $(AM_V_GEN)$(XSLTPROC) $(XSLT_PDF_FLAGS) $< - -endif HAVE_XSLTPROC -endif HAVE_STYLESHEETS -endif HAVE_XMLTO - -CLEANFILES = $(shelf_DATA) diff --git a/proto/x11proto/install-sh b/proto/x11proto/install-sh deleted file mode 100644 index 4d4a9519e..000000000 --- a/proto/x11proto/install-sh +++ /dev/null @@ -1,323 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2005-05-14.22 - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# 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 -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -chmodcmd="$chmodprog 0755" -chowncmd= -chgrpcmd= -stripcmd= -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src= -dst= -dir_arg= -dstarg= -no_target_directory= - -usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: --c (ignored) --d create directories instead of installing files. --g GROUP $chgrpprog installed files to GROUP. --m MODE $chmodprog installed files to MODE. --o USER $chownprog installed files to USER. --s $stripprog installed files. --t DIRECTORY install into DIRECTORY. --T report an error if DSTFILE is a directory. ---help display this help and exit. ---version display version info and exit. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG -" - -while test -n "$1"; do - case $1 in - -c) shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - --help) echo "$usage"; exit $?;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t) dstarg=$2 - shift - shift - continue;; - - -T) no_target_directory=true - shift - continue;; - - --version) echo "$0 $scriptversion"; exit $?;; - - *) # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - test -n "$dir_arg$dstarg" && break - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dstarg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dstarg" - shift # fnord - fi - shift # arg - dstarg=$arg - done - break;; - esac -done - -if test -z "$1"; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src ;; - esac - - if test -n "$dir_arg"; then - dst=$src - src= - - if test -d "$dst"; then - mkdircmd=: - chmodcmd= - else - mkdircmd=$mkdirprog - fi - else - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dstarg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dstarg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst ;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dstarg: Is a directory" >&2 - exit 1 - fi - dst=$dst/`basename "$src"` - fi - fi - - # This sed command emulates the dirname command. - dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` - - # Make sure that the destination directory exists. - - # Skip lots of stat calls in the usual case. - if test ! -d "$dstdir"; then - defaultIFS=' - ' - IFS="${IFS-$defaultIFS}" - - oIFS=$IFS - # Some sh's can't handle IFS=/ for some reason. - IFS='%' - set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` - shift - IFS=$oIFS - - pathcomp= - - while test $# -ne 0 ; do - pathcomp=$pathcomp$1 - shift - if test ! -d "$pathcomp"; then - $mkdirprog "$pathcomp" - # mkdir can fail with a `File exist' error in case several - # install-sh are creating the directory concurrently. This - # is OK. - test -d "$pathcomp" || exit - fi - pathcomp=$pathcomp/ - done - fi - - if test -n "$dir_arg"; then - $doit $mkdircmd "$dst" \ - && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } - - else - dstfile=`basename "$dst"` - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - trap '(exit $?); exit' 1 2 13 15 - - # Copy the file name to the temp name. - $doit $cpprog "$src" "$dsttmp" && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && - - # Now rename the file to the real destination. - { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ - || { - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - if test -f "$dstdir/$dstfile"; then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ - || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ - || { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit 1 - } - else - : - fi - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - } - } - fi || { (exit 1); exit 1; } -done - -# The final little trick to "correctly" pass the exit status to the exit trap. -{ - (exit 0); exit 0 -} - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/proto/x11proto/keysym.h b/proto/x11proto/keysym.h deleted file mode 100644 index 4f584886c..000000000 --- a/proto/x11proto/keysym.h +++ /dev/null @@ -1,74 +0,0 @@ -/*********************************************************** - -Copyright 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -/* default keysyms */ -#define XK_MISCELLANY -#define XK_XKB_KEYS -#define XK_LATIN1 -#define XK_LATIN2 -#define XK_LATIN3 -#define XK_LATIN4 -#define XK_LATIN8 -#define XK_LATIN9 -#define XK_CAUCASUS -#define XK_GREEK -#define XK_KATAKANA -#define XK_ARABIC -#define XK_CYRILLIC -#define XK_HEBREW -#define XK_THAI -#define XK_KOREAN -#define XK_ARMENIAN -#define XK_GEORGIAN -#define XK_VIETNAMESE -#define XK_CURRENCY -#define XK_MATHEMATICAL -#define XK_BRAILLE -#define XK_SINHALA - -#include <X11/keysymdef.h> - diff --git a/proto/x11proto/keysymdef.h b/proto/x11proto/keysymdef.h deleted file mode 100644 index 147ecf552..000000000 --- a/proto/x11proto/keysymdef.h +++ /dev/null @@ -1,2497 +0,0 @@ -/*********************************************************** -Copyright 1987, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 OPEN GROUP 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 name of The Open Group 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 Open Group. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -/* - * The "X11 Window System Protocol" standard defines in Appendix A the - * keysym codes. These 29-bit integer values identify characters or - * functions associated with each key (e.g., via the visible - * engraving) of a keyboard layout. This file assigns mnemonic macro - * names for these keysyms. - * - * This file is also compiled (by src/util/makekeys.c in libX11) into - * hash tables that can be accessed with X11 library functions such as - * XStringToKeysym() and XKeysymToString(). - * - * Where a keysym corresponds one-to-one to an ISO 10646 / Unicode - * character, this is noted in a comment that provides both the U+xxxx - * Unicode position, as well as the official Unicode name of the - * character. - * - * Where the correspondence is either not one-to-one or semantically - * unclear, the Unicode position and name are enclosed in - * parentheses. Such legacy keysyms should be considered deprecated - * and are not recommended for use in future keyboard mappings. - * - * For any future extension of the keysyms with characters already - * found in ISO 10646 / Unicode, the following algorithm shall be - * used. The new keysym code position will simply be the character's - * Unicode number plus 0x01000000. The keysym values in the range - * 0x01000100 to 0x0110ffff are reserved to represent Unicode - * characters in the range U+0100 to U+10FFFF. - * - * While most newer Unicode-based X11 clients do already accept - * Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it - * will remain necessary for clients -- in the interest of - * compatibility with existing servers -- to also understand the - * existing legacy keysym values in the range 0x0100 to 0x20ff. - * - * Where several mnemonic names are defined for the same keysym in this - * file, all but the first one listed should be considered deprecated. - * - * Mnemonic names for keysyms are defined in this file with lines - * that match one of these Perl regular expressions: - * - * /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/ - * /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/ - * /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/ - * - * Before adding new keysyms, please do consider the following: In - * addition to the keysym names defined in this file, the - * XStringToKeysym() and XKeysymToString() functions will also handle - * any keysym string of the form "U0020" to "U007E" and "U00A0" to - * "U10FFFF" for all possible Unicode characters. In other words, - * every possible Unicode character has already a keysym string - * defined algorithmically, even if it is not listed here. Therefore, - * defining an additional keysym macro is only necessary where a - * non-hexadecimal mnemonic name is needed, or where the new keysym - * does not represent any existing Unicode character. - * - * When adding new keysyms to this file, do not forget to also update the - * following as needed: - * - * - the mappings in src/KeyBind.c in the repo - * git://anongit.freedesktop.org/xorg/lib/libX11.git - * - * - the protocol specification in specs/keysyms.xml - * in the repo git://anongit.freedesktop.org/xorg/proto/x11proto.git - * - */ - -#define XK_VoidSymbol 0xffffff /* Void symbol */ - -#ifdef XK_MISCELLANY -/* - * TTY function keys, cleverly chosen to map to ASCII, for convenience of - * programming, but could have been arbitrary (at the cost of lookup - * tables in client code). - */ - -#define XK_BackSpace 0xff08 /* Back space, back char */ -#define XK_Tab 0xff09 -#define XK_Linefeed 0xff0a /* Linefeed, LF */ -#define XK_Clear 0xff0b -#define XK_Return 0xff0d /* Return, enter */ -#define XK_Pause 0xff13 /* Pause, hold */ -#define XK_Scroll_Lock 0xff14 -#define XK_Sys_Req 0xff15 -#define XK_Escape 0xff1b -#define XK_Delete 0xffff /* Delete, rubout */ - - - -/* International & multi-key character composition */ - -#define XK_Multi_key 0xff20 /* Multi-key character compose */ -#define XK_Codeinput 0xff37 -#define XK_SingleCandidate 0xff3c -#define XK_MultipleCandidate 0xff3d -#define XK_PreviousCandidate 0xff3e - -/* Japanese keyboard support */ - -#define XK_Kanji 0xff21 /* Kanji, Kanji convert */ -#define XK_Muhenkan 0xff22 /* Cancel Conversion */ -#define XK_Henkan_Mode 0xff23 /* Start/Stop Conversion */ -#define XK_Henkan 0xff23 /* Alias for Henkan_Mode */ -#define XK_Romaji 0xff24 /* to Romaji */ -#define XK_Hiragana 0xff25 /* to Hiragana */ -#define XK_Katakana 0xff26 /* to Katakana */ -#define XK_Hiragana_Katakana 0xff27 /* Hiragana/Katakana toggle */ -#define XK_Zenkaku 0xff28 /* to Zenkaku */ -#define XK_Hankaku 0xff29 /* to Hankaku */ -#define XK_Zenkaku_Hankaku 0xff2a /* Zenkaku/Hankaku toggle */ -#define XK_Touroku 0xff2b /* Add to Dictionary */ -#define XK_Massyo 0xff2c /* Delete from Dictionary */ -#define XK_Kana_Lock 0xff2d /* Kana Lock */ -#define XK_Kana_Shift 0xff2e /* Kana Shift */ -#define XK_Eisu_Shift 0xff2f /* Alphanumeric Shift */ -#define XK_Eisu_toggle 0xff30 /* Alphanumeric toggle */ -#define XK_Kanji_Bangou 0xff37 /* Codeinput */ -#define XK_Zen_Koho 0xff3d /* Multiple/All Candidate(s) */ -#define XK_Mae_Koho 0xff3e /* Previous Candidate */ - -/* 0xff31 thru 0xff3f are under XK_KOREAN */ - -/* Cursor control & motion */ - -#define XK_Home 0xff50 -#define XK_Left 0xff51 /* Move left, left arrow */ -#define XK_Up 0xff52 /* Move up, up arrow */ -#define XK_Right 0xff53 /* Move right, right arrow */ -#define XK_Down 0xff54 /* Move down, down arrow */ -#define XK_Prior 0xff55 /* Prior, previous */ -#define XK_Page_Up 0xff55 -#define XK_Next 0xff56 /* Next */ -#define XK_Page_Down 0xff56 -#define XK_End 0xff57 /* EOL */ -#define XK_Begin 0xff58 /* BOL */ - - -/* Misc functions */ - -#define XK_Select 0xff60 /* Select, mark */ -#define XK_Print 0xff61 -#define XK_Execute 0xff62 /* Execute, run, do */ -#define XK_Insert 0xff63 /* Insert, insert here */ -#define XK_Undo 0xff65 -#define XK_Redo 0xff66 /* Redo, again */ -#define XK_Menu 0xff67 -#define XK_Find 0xff68 /* Find, search */ -#define XK_Cancel 0xff69 /* Cancel, stop, abort, exit */ -#define XK_Help 0xff6a /* Help */ -#define XK_Break 0xff6b -#define XK_Mode_switch 0xff7e /* Character set switch */ -#define XK_script_switch 0xff7e /* Alias for mode_switch */ -#define XK_Num_Lock 0xff7f - -/* Keypad functions, keypad numbers cleverly chosen to map to ASCII */ - -#define XK_KP_Space 0xff80 /* Space */ -#define XK_KP_Tab 0xff89 -#define XK_KP_Enter 0xff8d /* Enter */ -#define XK_KP_F1 0xff91 /* PF1, KP_A, ... */ -#define XK_KP_F2 0xff92 -#define XK_KP_F3 0xff93 -#define XK_KP_F4 0xff94 -#define XK_KP_Home 0xff95 -#define XK_KP_Left 0xff96 -#define XK_KP_Up 0xff97 -#define XK_KP_Right 0xff98 -#define XK_KP_Down 0xff99 -#define XK_KP_Prior 0xff9a -#define XK_KP_Page_Up 0xff9a -#define XK_KP_Next 0xff9b -#define XK_KP_Page_Down 0xff9b -#define XK_KP_End 0xff9c -#define XK_KP_Begin 0xff9d -#define XK_KP_Insert 0xff9e -#define XK_KP_Delete 0xff9f -#define XK_KP_Equal 0xffbd /* Equals */ -#define XK_KP_Multiply 0xffaa -#define XK_KP_Add 0xffab -#define XK_KP_Separator 0xffac /* Separator, often comma */ -#define XK_KP_Subtract 0xffad -#define XK_KP_Decimal 0xffae -#define XK_KP_Divide 0xffaf - -#define XK_KP_0 0xffb0 -#define XK_KP_1 0xffb1 -#define XK_KP_2 0xffb2 -#define XK_KP_3 0xffb3 -#define XK_KP_4 0xffb4 -#define XK_KP_5 0xffb5 -#define XK_KP_6 0xffb6 -#define XK_KP_7 0xffb7 -#define XK_KP_8 0xffb8 -#define XK_KP_9 0xffb9 - - - -/* - * Auxiliary functions; note the duplicate definitions for left and right - * function keys; Sun keyboards and a few other manufacturers have such - * function key groups on the left and/or right sides of the keyboard. - * We've not found a keyboard with more than 35 function keys total. - */ - -#define XK_F1 0xffbe -#define XK_F2 0xffbf -#define XK_F3 0xffc0 -#define XK_F4 0xffc1 -#define XK_F5 0xffc2 -#define XK_F6 0xffc3 -#define XK_F7 0xffc4 -#define XK_F8 0xffc5 -#define XK_F9 0xffc6 -#define XK_F10 0xffc7 -#define XK_F11 0xffc8 -#define XK_L1 0xffc8 -#define XK_F12 0xffc9 -#define XK_L2 0xffc9 -#define XK_F13 0xffca -#define XK_L3 0xffca -#define XK_F14 0xffcb -#define XK_L4 0xffcb -#define XK_F15 0xffcc -#define XK_L5 0xffcc -#define XK_F16 0xffcd -#define XK_L6 0xffcd -#define XK_F17 0xffce -#define XK_L7 0xffce -#define XK_F18 0xffcf -#define XK_L8 0xffcf -#define XK_F19 0xffd0 -#define XK_L9 0xffd0 -#define XK_F20 0xffd1 -#define XK_L10 0xffd1 -#define XK_F21 0xffd2 -#define XK_R1 0xffd2 -#define XK_F22 0xffd3 -#define XK_R2 0xffd3 -#define XK_F23 0xffd4 -#define XK_R3 0xffd4 -#define XK_F24 0xffd5 -#define XK_R4 0xffd5 -#define XK_F25 0xffd6 -#define XK_R5 0xffd6 -#define XK_F26 0xffd7 -#define XK_R6 0xffd7 -#define XK_F27 0xffd8 -#define XK_R7 0xffd8 -#define XK_F28 0xffd9 -#define XK_R8 0xffd9 -#define XK_F29 0xffda -#define XK_R9 0xffda -#define XK_F30 0xffdb -#define XK_R10 0xffdb -#define XK_F31 0xffdc -#define XK_R11 0xffdc -#define XK_F32 0xffdd -#define XK_R12 0xffdd -#define XK_F33 0xffde -#define XK_R13 0xffde -#define XK_F34 0xffdf -#define XK_R14 0xffdf -#define XK_F35 0xffe0 -#define XK_R15 0xffe0 - -/* Modifiers */ - -#define XK_Shift_L 0xffe1 /* Left shift */ -#define XK_Shift_R 0xffe2 /* Right shift */ -#define XK_Control_L 0xffe3 /* Left control */ -#define XK_Control_R 0xffe4 /* Right control */ -#define XK_Caps_Lock 0xffe5 /* Caps lock */ -#define XK_Shift_Lock 0xffe6 /* Shift lock */ - -#define XK_Meta_L 0xffe7 /* Left meta */ -#define XK_Meta_R 0xffe8 /* Right meta */ -#define XK_Alt_L 0xffe9 /* Left alt */ -#define XK_Alt_R 0xffea /* Right alt */ -#define XK_Super_L 0xffeb /* Left super */ -#define XK_Super_R 0xffec /* Right super */ -#define XK_Hyper_L 0xffed /* Left hyper */ -#define XK_Hyper_R 0xffee /* Right hyper */ -#endif /* XK_MISCELLANY */ - -/* - * Keyboard (XKB) Extension function and modifier keys - * (from Appendix C of "The X Keyboard Extension: Protocol Specification") - * Byte 3 = 0xfe - */ - -#ifdef XK_XKB_KEYS -#define XK_ISO_Lock 0xfe01 -#define XK_ISO_Level2_Latch 0xfe02 -#define XK_ISO_Level3_Shift 0xfe03 -#define XK_ISO_Level3_Latch 0xfe04 -#define XK_ISO_Level3_Lock 0xfe05 -#define XK_ISO_Level5_Shift 0xfe11 -#define XK_ISO_Level5_Latch 0xfe12 -#define XK_ISO_Level5_Lock 0xfe13 -#define XK_ISO_Group_Shift 0xff7e /* Alias for mode_switch */ -#define XK_ISO_Group_Latch 0xfe06 -#define XK_ISO_Group_Lock 0xfe07 -#define XK_ISO_Next_Group 0xfe08 -#define XK_ISO_Next_Group_Lock 0xfe09 -#define XK_ISO_Prev_Group 0xfe0a -#define XK_ISO_Prev_Group_Lock 0xfe0b -#define XK_ISO_First_Group 0xfe0c -#define XK_ISO_First_Group_Lock 0xfe0d -#define XK_ISO_Last_Group 0xfe0e -#define XK_ISO_Last_Group_Lock 0xfe0f - -#define XK_ISO_Left_Tab 0xfe20 -#define XK_ISO_Move_Line_Up 0xfe21 -#define XK_ISO_Move_Line_Down 0xfe22 -#define XK_ISO_Partial_Line_Up 0xfe23 -#define XK_ISO_Partial_Line_Down 0xfe24 -#define XK_ISO_Partial_Space_Left 0xfe25 -#define XK_ISO_Partial_Space_Right 0xfe26 -#define XK_ISO_Set_Margin_Left 0xfe27 -#define XK_ISO_Set_Margin_Right 0xfe28 -#define XK_ISO_Release_Margin_Left 0xfe29 -#define XK_ISO_Release_Margin_Right 0xfe2a -#define XK_ISO_Release_Both_Margins 0xfe2b -#define XK_ISO_Fast_Cursor_Left 0xfe2c -#define XK_ISO_Fast_Cursor_Right 0xfe2d -#define XK_ISO_Fast_Cursor_Up 0xfe2e -#define XK_ISO_Fast_Cursor_Down 0xfe2f -#define XK_ISO_Continuous_Underline 0xfe30 -#define XK_ISO_Discontinuous_Underline 0xfe31 -#define XK_ISO_Emphasize 0xfe32 -#define XK_ISO_Center_Object 0xfe33 -#define XK_ISO_Enter 0xfe34 - -#define XK_dead_grave 0xfe50 -#define XK_dead_acute 0xfe51 -#define XK_dead_circumflex 0xfe52 -#define XK_dead_tilde 0xfe53 -#define XK_dead_perispomeni 0xfe53 /* alias for dead_tilde */ -#define XK_dead_macron 0xfe54 -#define XK_dead_breve 0xfe55 -#define XK_dead_abovedot 0xfe56 -#define XK_dead_diaeresis 0xfe57 -#define XK_dead_abovering 0xfe58 -#define XK_dead_doubleacute 0xfe59 -#define XK_dead_caron 0xfe5a -#define XK_dead_cedilla 0xfe5b -#define XK_dead_ogonek 0xfe5c -#define XK_dead_iota 0xfe5d -#define XK_dead_voiced_sound 0xfe5e -#define XK_dead_semivoiced_sound 0xfe5f -#define XK_dead_belowdot 0xfe60 -#define XK_dead_hook 0xfe61 -#define XK_dead_horn 0xfe62 -#define XK_dead_stroke 0xfe63 -#define XK_dead_abovecomma 0xfe64 -#define XK_dead_psili 0xfe64 /* alias for dead_abovecomma */ -#define XK_dead_abovereversedcomma 0xfe65 -#define XK_dead_dasia 0xfe65 /* alias for dead_abovereversedcomma */ -#define XK_dead_doublegrave 0xfe66 -#define XK_dead_belowring 0xfe67 -#define XK_dead_belowmacron 0xfe68 -#define XK_dead_belowcircumflex 0xfe69 -#define XK_dead_belowtilde 0xfe6a -#define XK_dead_belowbreve 0xfe6b -#define XK_dead_belowdiaeresis 0xfe6c -#define XK_dead_invertedbreve 0xfe6d -#define XK_dead_belowcomma 0xfe6e -#define XK_dead_currency 0xfe6f - -/* extra dead elements for German T3 layout */ -#define XK_dead_lowline 0xfe90 -#define XK_dead_aboveverticalline 0xfe91 -#define XK_dead_belowverticalline 0xfe92 -#define XK_dead_longsolidusoverlay 0xfe93 - -/* dead vowels for universal syllable entry */ -#define XK_dead_a 0xfe80 -#define XK_dead_A 0xfe81 -#define XK_dead_e 0xfe82 -#define XK_dead_E 0xfe83 -#define XK_dead_i 0xfe84 -#define XK_dead_I 0xfe85 -#define XK_dead_o 0xfe86 -#define XK_dead_O 0xfe87 -#define XK_dead_u 0xfe88 -#define XK_dead_U 0xfe89 -#define XK_dead_small_schwa 0xfe8a -#define XK_dead_capital_schwa 0xfe8b - -#define XK_dead_greek 0xfe8c - -#define XK_First_Virtual_Screen 0xfed0 -#define XK_Prev_Virtual_Screen 0xfed1 -#define XK_Next_Virtual_Screen 0xfed2 -#define XK_Last_Virtual_Screen 0xfed4 -#define XK_Terminate_Server 0xfed5 - -#define XK_AccessX_Enable 0xfe70 -#define XK_AccessX_Feedback_Enable 0xfe71 -#define XK_RepeatKeys_Enable 0xfe72 -#define XK_SlowKeys_Enable 0xfe73 -#define XK_BounceKeys_Enable 0xfe74 -#define XK_StickyKeys_Enable 0xfe75 -#define XK_MouseKeys_Enable 0xfe76 -#define XK_MouseKeys_Accel_Enable 0xfe77 -#define XK_Overlay1_Enable 0xfe78 -#define XK_Overlay2_Enable 0xfe79 -#define XK_AudibleBell_Enable 0xfe7a - -#define XK_Pointer_Left 0xfee0 -#define XK_Pointer_Right 0xfee1 -#define XK_Pointer_Up 0xfee2 -#define XK_Pointer_Down 0xfee3 -#define XK_Pointer_UpLeft 0xfee4 -#define XK_Pointer_UpRight 0xfee5 -#define XK_Pointer_DownLeft 0xfee6 -#define XK_Pointer_DownRight 0xfee7 -#define XK_Pointer_Button_Dflt 0xfee8 -#define XK_Pointer_Button1 0xfee9 -#define XK_Pointer_Button2 0xfeea -#define XK_Pointer_Button3 0xfeeb -#define XK_Pointer_Button4 0xfeec -#define XK_Pointer_Button5 0xfeed -#define XK_Pointer_DblClick_Dflt 0xfeee -#define XK_Pointer_DblClick1 0xfeef -#define XK_Pointer_DblClick2 0xfef0 -#define XK_Pointer_DblClick3 0xfef1 -#define XK_Pointer_DblClick4 0xfef2 -#define XK_Pointer_DblClick5 0xfef3 -#define XK_Pointer_Drag_Dflt 0xfef4 -#define XK_Pointer_Drag1 0xfef5 -#define XK_Pointer_Drag2 0xfef6 -#define XK_Pointer_Drag3 0xfef7 -#define XK_Pointer_Drag4 0xfef8 -#define XK_Pointer_Drag5 0xfefd - -#define XK_Pointer_EnableKeys 0xfef9 -#define XK_Pointer_Accelerate 0xfefa -#define XK_Pointer_DfltBtnNext 0xfefb -#define XK_Pointer_DfltBtnPrev 0xfefc - -/* Single-Stroke Multiple-Character N-Graph Keysyms For The X Input Method */ - -#define XK_ch 0xfea0 -#define XK_Ch 0xfea1 -#define XK_CH 0xfea2 -#define XK_c_h 0xfea3 -#define XK_C_h 0xfea4 -#define XK_C_H 0xfea5 - -#endif /* XK_XKB_KEYS */ - -/* - * 3270 Terminal Keys - * Byte 3 = 0xfd - */ - -#ifdef XK_3270 -#define XK_3270_Duplicate 0xfd01 -#define XK_3270_FieldMark 0xfd02 -#define XK_3270_Right2 0xfd03 -#define XK_3270_Left2 0xfd04 -#define XK_3270_BackTab 0xfd05 -#define XK_3270_EraseEOF 0xfd06 -#define XK_3270_EraseInput 0xfd07 -#define XK_3270_Reset 0xfd08 -#define XK_3270_Quit 0xfd09 -#define XK_3270_PA1 0xfd0a -#define XK_3270_PA2 0xfd0b -#define XK_3270_PA3 0xfd0c -#define XK_3270_Test 0xfd0d -#define XK_3270_Attn 0xfd0e -#define XK_3270_CursorBlink 0xfd0f -#define XK_3270_AltCursor 0xfd10 -#define XK_3270_KeyClick 0xfd11 -#define XK_3270_Jump 0xfd12 -#define XK_3270_Ident 0xfd13 -#define XK_3270_Rule 0xfd14 -#define XK_3270_Copy 0xfd15 -#define XK_3270_Play 0xfd16 -#define XK_3270_Setup 0xfd17 -#define XK_3270_Record 0xfd18 -#define XK_3270_ChangeScreen 0xfd19 -#define XK_3270_DeleteWord 0xfd1a -#define XK_3270_ExSelect 0xfd1b -#define XK_3270_CursorSelect 0xfd1c -#define XK_3270_PrintScreen 0xfd1d -#define XK_3270_Enter 0xfd1e -#endif /* XK_3270 */ - -/* - * Latin 1 - * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF) - * Byte 3 = 0 - */ -#ifdef XK_LATIN1 -#define XK_space 0x0020 /* U+0020 SPACE */ -#define XK_exclam 0x0021 /* U+0021 EXCLAMATION MARK */ -#define XK_quotedbl 0x0022 /* U+0022 QUOTATION MARK */ -#define XK_numbersign 0x0023 /* U+0023 NUMBER SIGN */ -#define XK_dollar 0x0024 /* U+0024 DOLLAR SIGN */ -#define XK_percent 0x0025 /* U+0025 PERCENT SIGN */ -#define XK_ampersand 0x0026 /* U+0026 AMPERSAND */ -#define XK_apostrophe 0x0027 /* U+0027 APOSTROPHE */ -#define XK_quoteright 0x0027 /* deprecated */ -#define XK_parenleft 0x0028 /* U+0028 LEFT PARENTHESIS */ -#define XK_parenright 0x0029 /* U+0029 RIGHT PARENTHESIS */ -#define XK_asterisk 0x002a /* U+002A ASTERISK */ -#define XK_plus 0x002b /* U+002B PLUS SIGN */ -#define XK_comma 0x002c /* U+002C COMMA */ -#define XK_minus 0x002d /* U+002D HYPHEN-MINUS */ -#define XK_period 0x002e /* U+002E FULL STOP */ -#define XK_slash 0x002f /* U+002F SOLIDUS */ -#define XK_0 0x0030 /* U+0030 DIGIT ZERO */ -#define XK_1 0x0031 /* U+0031 DIGIT ONE */ -#define XK_2 0x0032 /* U+0032 DIGIT TWO */ -#define XK_3 0x0033 /* U+0033 DIGIT THREE */ -#define XK_4 0x0034 /* U+0034 DIGIT FOUR */ -#define XK_5 0x0035 /* U+0035 DIGIT FIVE */ -#define XK_6 0x0036 /* U+0036 DIGIT SIX */ -#define XK_7 0x0037 /* U+0037 DIGIT SEVEN */ -#define XK_8 0x0038 /* U+0038 DIGIT EIGHT */ -#define XK_9 0x0039 /* U+0039 DIGIT NINE */ -#define XK_colon 0x003a /* U+003A COLON */ -#define XK_semicolon 0x003b /* U+003B SEMICOLON */ -#define XK_less 0x003c /* U+003C LESS-THAN SIGN */ -#define XK_equal 0x003d /* U+003D EQUALS SIGN */ -#define XK_greater 0x003e /* U+003E GREATER-THAN SIGN */ -#define XK_question 0x003f /* U+003F QUESTION MARK */ -#define XK_at 0x0040 /* U+0040 COMMERCIAL AT */ -#define XK_A 0x0041 /* U+0041 LATIN CAPITAL LETTER A */ -#define XK_B 0x0042 /* U+0042 LATIN CAPITAL LETTER B */ -#define XK_C 0x0043 /* U+0043 LATIN CAPITAL LETTER C */ -#define XK_D 0x0044 /* U+0044 LATIN CAPITAL LETTER D */ -#define XK_E 0x0045 /* U+0045 LATIN CAPITAL LETTER E */ -#define XK_F 0x0046 /* U+0046 LATIN CAPITAL LETTER F */ -#define XK_G 0x0047 /* U+0047 LATIN CAPITAL LETTER G */ -#define XK_H 0x0048 /* U+0048 LATIN CAPITAL LETTER H */ -#define XK_I 0x0049 /* U+0049 LATIN CAPITAL LETTER I */ -#define XK_J 0x004a /* U+004A LATIN CAPITAL LETTER J */ -#define XK_K 0x004b /* U+004B LATIN CAPITAL LETTER K */ -#define XK_L 0x004c /* U+004C LATIN CAPITAL LETTER L */ -#define XK_M 0x004d /* U+004D LATIN CAPITAL LETTER M */ -#define XK_N 0x004e /* U+004E LATIN CAPITAL LETTER N */ -#define XK_O 0x004f /* U+004F LATIN CAPITAL LETTER O */ -#define XK_P 0x0050 /* U+0050 LATIN CAPITAL LETTER P */ -#define XK_Q 0x0051 /* U+0051 LATIN CAPITAL LETTER Q */ -#define XK_R 0x0052 /* U+0052 LATIN CAPITAL LETTER R */ -#define XK_S 0x0053 /* U+0053 LATIN CAPITAL LETTER S */ -#define XK_T 0x0054 /* U+0054 LATIN CAPITAL LETTER T */ -#define XK_U 0x0055 /* U+0055 LATIN CAPITAL LETTER U */ -#define XK_V 0x0056 /* U+0056 LATIN CAPITAL LETTER V */ -#define XK_W 0x0057 /* U+0057 LATIN CAPITAL LETTER W */ -#define XK_X 0x0058 /* U+0058 LATIN CAPITAL LETTER X */ -#define XK_Y 0x0059 /* U+0059 LATIN CAPITAL LETTER Y */ -#define XK_Z 0x005a /* U+005A LATIN CAPITAL LETTER Z */ -#define XK_bracketleft 0x005b /* U+005B LEFT SQUARE BRACKET */ -#define XK_backslash 0x005c /* U+005C REVERSE SOLIDUS */ -#define XK_bracketright 0x005d /* U+005D RIGHT SQUARE BRACKET */ -#define XK_asciicircum 0x005e /* U+005E CIRCUMFLEX ACCENT */ -#define XK_underscore 0x005f /* U+005F LOW LINE */ -#define XK_grave 0x0060 /* U+0060 GRAVE ACCENT */ -#define XK_quoteleft 0x0060 /* deprecated */ -#define XK_a 0x0061 /* U+0061 LATIN SMALL LETTER A */ -#define XK_b 0x0062 /* U+0062 LATIN SMALL LETTER B */ -#define XK_c 0x0063 /* U+0063 LATIN SMALL LETTER C */ -#define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */ -#define XK_e 0x0065 /* U+0065 LATIN SMALL LETTER E */ -#define XK_f 0x0066 /* U+0066 LATIN SMALL LETTER F */ -#define XK_g 0x0067 /* U+0067 LATIN SMALL LETTER G */ -#define XK_h 0x0068 /* U+0068 LATIN SMALL LETTER H */ -#define XK_i 0x0069 /* U+0069 LATIN SMALL LETTER I */ -#define XK_j 0x006a /* U+006A LATIN SMALL LETTER J */ -#define XK_k 0x006b /* U+006B LATIN SMALL LETTER K */ -#define XK_l 0x006c /* U+006C LATIN SMALL LETTER L */ -#define XK_m 0x006d /* U+006D LATIN SMALL LETTER M */ -#define XK_n 0x006e /* U+006E LATIN SMALL LETTER N */ -#define XK_o 0x006f /* U+006F LATIN SMALL LETTER O */ -#define XK_p 0x0070 /* U+0070 LATIN SMALL LETTER P */ -#define XK_q 0x0071 /* U+0071 LATIN SMALL LETTER Q */ -#define XK_r 0x0072 /* U+0072 LATIN SMALL LETTER R */ -#define XK_s 0x0073 /* U+0073 LATIN SMALL LETTER S */ -#define XK_t 0x0074 /* U+0074 LATIN SMALL LETTER T */ -#define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */ -#define XK_v 0x0076 /* U+0076 LATIN SMALL LETTER V */ -#define XK_w 0x0077 /* U+0077 LATIN SMALL LETTER W */ -#define XK_x 0x0078 /* U+0078 LATIN SMALL LETTER X */ -#define XK_y 0x0079 /* U+0079 LATIN SMALL LETTER Y */ -#define XK_z 0x007a /* U+007A LATIN SMALL LETTER Z */ -#define XK_braceleft 0x007b /* U+007B LEFT CURLY BRACKET */ -#define XK_bar 0x007c /* U+007C VERTICAL LINE */ -#define XK_braceright 0x007d /* U+007D RIGHT CURLY BRACKET */ -#define XK_asciitilde 0x007e /* U+007E TILDE */ - -#define XK_nobreakspace 0x00a0 /* U+00A0 NO-BREAK SPACE */ -#define XK_exclamdown 0x00a1 /* U+00A1 INVERTED EXCLAMATION MARK */ -#define XK_cent 0x00a2 /* U+00A2 CENT SIGN */ -#define XK_sterling 0x00a3 /* U+00A3 POUND SIGN */ -#define XK_currency 0x00a4 /* U+00A4 CURRENCY SIGN */ -#define XK_yen 0x00a5 /* U+00A5 YEN SIGN */ -#define XK_brokenbar 0x00a6 /* U+00A6 BROKEN BAR */ -#define XK_section 0x00a7 /* U+00A7 SECTION SIGN */ -#define XK_diaeresis 0x00a8 /* U+00A8 DIAERESIS */ -#define XK_copyright 0x00a9 /* U+00A9 COPYRIGHT SIGN */ -#define XK_ordfeminine 0x00aa /* U+00AA FEMININE ORDINAL INDICATOR */ -#define XK_guillemotleft 0x00ab /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ -#define XK_notsign 0x00ac /* U+00AC NOT SIGN */ -#define XK_hyphen 0x00ad /* U+00AD SOFT HYPHEN */ -#define XK_registered 0x00ae /* U+00AE REGISTERED SIGN */ -#define XK_macron 0x00af /* U+00AF MACRON */ -#define XK_degree 0x00b0 /* U+00B0 DEGREE SIGN */ -#define XK_plusminus 0x00b1 /* U+00B1 PLUS-MINUS SIGN */ -#define XK_twosuperior 0x00b2 /* U+00B2 SUPERSCRIPT TWO */ -#define XK_threesuperior 0x00b3 /* U+00B3 SUPERSCRIPT THREE */ -#define XK_acute 0x00b4 /* U+00B4 ACUTE ACCENT */ -#define XK_mu 0x00b5 /* U+00B5 MICRO SIGN */ -#define XK_paragraph 0x00b6 /* U+00B6 PILCROW SIGN */ -#define XK_periodcentered 0x00b7 /* U+00B7 MIDDLE DOT */ -#define XK_cedilla 0x00b8 /* U+00B8 CEDILLA */ -#define XK_onesuperior 0x00b9 /* U+00B9 SUPERSCRIPT ONE */ -#define XK_masculine 0x00ba /* U+00BA MASCULINE ORDINAL INDICATOR */ -#define XK_guillemotright 0x00bb /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ -#define XK_onequarter 0x00bc /* U+00BC VULGAR FRACTION ONE QUARTER */ -#define XK_onehalf 0x00bd /* U+00BD VULGAR FRACTION ONE HALF */ -#define XK_threequarters 0x00be /* U+00BE VULGAR FRACTION THREE QUARTERS */ -#define XK_questiondown 0x00bf /* U+00BF INVERTED QUESTION MARK */ -#define XK_Agrave 0x00c0 /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */ -#define XK_Aacute 0x00c1 /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */ -#define XK_Acircumflex 0x00c2 /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ -#define XK_Atilde 0x00c3 /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */ -#define XK_Adiaeresis 0x00c4 /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */ -#define XK_Aring 0x00c5 /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */ -#define XK_AE 0x00c6 /* U+00C6 LATIN CAPITAL LETTER AE */ -#define XK_Ccedilla 0x00c7 /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */ -#define XK_Egrave 0x00c8 /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */ -#define XK_Eacute 0x00c9 /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */ -#define XK_Ecircumflex 0x00ca /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ -#define XK_Ediaeresis 0x00cb /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */ -#define XK_Igrave 0x00cc /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */ -#define XK_Iacute 0x00cd /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */ -#define XK_Icircumflex 0x00ce /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ -#define XK_Idiaeresis 0x00cf /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */ -#define XK_ETH 0x00d0 /* U+00D0 LATIN CAPITAL LETTER ETH */ -#define XK_Eth 0x00d0 /* deprecated */ -#define XK_Ntilde 0x00d1 /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */ -#define XK_Ograve 0x00d2 /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */ -#define XK_Oacute 0x00d3 /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */ -#define XK_Ocircumflex 0x00d4 /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ -#define XK_Otilde 0x00d5 /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */ -#define XK_Odiaeresis 0x00d6 /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */ -#define XK_multiply 0x00d7 /* U+00D7 MULTIPLICATION SIGN */ -#define XK_Oslash 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */ -#define XK_Ooblique 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */ -#define XK_Ugrave 0x00d9 /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */ -#define XK_Uacute 0x00da /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */ -#define XK_Ucircumflex 0x00db /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ -#define XK_Udiaeresis 0x00dc /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */ -#define XK_Yacute 0x00dd /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */ -#define XK_THORN 0x00de /* U+00DE LATIN CAPITAL LETTER THORN */ -#define XK_Thorn 0x00de /* deprecated */ -#define XK_ssharp 0x00df /* U+00DF LATIN SMALL LETTER SHARP S */ -#define XK_agrave 0x00e0 /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */ -#define XK_aacute 0x00e1 /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */ -#define XK_acircumflex 0x00e2 /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */ -#define XK_atilde 0x00e3 /* U+00E3 LATIN SMALL LETTER A WITH TILDE */ -#define XK_adiaeresis 0x00e4 /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ -#define XK_aring 0x00e5 /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */ -#define XK_ae 0x00e6 /* U+00E6 LATIN SMALL LETTER AE */ -#define XK_ccedilla 0x00e7 /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ -#define XK_egrave 0x00e8 /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */ -#define XK_eacute 0x00e9 /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ -#define XK_ecircumflex 0x00ea /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */ -#define XK_ediaeresis 0x00eb /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */ -#define XK_igrave 0x00ec /* U+00EC LATIN SMALL LETTER I WITH GRAVE */ -#define XK_iacute 0x00ed /* U+00ED LATIN SMALL LETTER I WITH ACUTE */ -#define XK_icircumflex 0x00ee /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */ -#define XK_idiaeresis 0x00ef /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */ -#define XK_eth 0x00f0 /* U+00F0 LATIN SMALL LETTER ETH */ -#define XK_ntilde 0x00f1 /* U+00F1 LATIN SMALL LETTER N WITH TILDE */ -#define XK_ograve 0x00f2 /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */ -#define XK_oacute 0x00f3 /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */ -#define XK_ocircumflex 0x00f4 /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */ -#define XK_otilde 0x00f5 /* U+00F5 LATIN SMALL LETTER O WITH TILDE */ -#define XK_odiaeresis 0x00f6 /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */ -#define XK_division 0x00f7 /* U+00F7 DIVISION SIGN */ -#define XK_oslash 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */ -#define XK_ooblique 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */ -#define XK_ugrave 0x00f9 /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */ -#define XK_uacute 0x00fa /* U+00FA LATIN SMALL LETTER U WITH ACUTE */ -#define XK_ucircumflex 0x00fb /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */ -#define XK_udiaeresis 0x00fc /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ -#define XK_yacute 0x00fd /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */ -#define XK_thorn 0x00fe /* U+00FE LATIN SMALL LETTER THORN */ -#define XK_ydiaeresis 0x00ff /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */ -#endif /* XK_LATIN1 */ - -/* - * Latin 2 - * Byte 3 = 1 - */ - -#ifdef XK_LATIN2 -#define XK_Aogonek 0x01a1 /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */ -#define XK_breve 0x01a2 /* U+02D8 BREVE */ -#define XK_Lstroke 0x01a3 /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */ -#define XK_Lcaron 0x01a5 /* U+013D LATIN CAPITAL LETTER L WITH CARON */ -#define XK_Sacute 0x01a6 /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */ -#define XK_Scaron 0x01a9 /* U+0160 LATIN CAPITAL LETTER S WITH CARON */ -#define XK_Scedilla 0x01aa /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */ -#define XK_Tcaron 0x01ab /* U+0164 LATIN CAPITAL LETTER T WITH CARON */ -#define XK_Zacute 0x01ac /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */ -#define XK_Zcaron 0x01ae /* U+017D LATIN CAPITAL LETTER Z WITH CARON */ -#define XK_Zabovedot 0x01af /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */ -#define XK_aogonek 0x01b1 /* U+0105 LATIN SMALL LETTER A WITH OGONEK */ -#define XK_ogonek 0x01b2 /* U+02DB OGONEK */ -#define XK_lstroke 0x01b3 /* U+0142 LATIN SMALL LETTER L WITH STROKE */ -#define XK_lcaron 0x01b5 /* U+013E LATIN SMALL LETTER L WITH CARON */ -#define XK_sacute 0x01b6 /* U+015B LATIN SMALL LETTER S WITH ACUTE */ -#define XK_caron 0x01b7 /* U+02C7 CARON */ -#define XK_scaron 0x01b9 /* U+0161 LATIN SMALL LETTER S WITH CARON */ -#define XK_scedilla 0x01ba /* U+015F LATIN SMALL LETTER S WITH CEDILLA */ -#define XK_tcaron 0x01bb /* U+0165 LATIN SMALL LETTER T WITH CARON */ -#define XK_zacute 0x01bc /* U+017A LATIN SMALL LETTER Z WITH ACUTE */ -#define XK_doubleacute 0x01bd /* U+02DD DOUBLE ACUTE ACCENT */ -#define XK_zcaron 0x01be /* U+017E LATIN SMALL LETTER Z WITH CARON */ -#define XK_zabovedot 0x01bf /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */ -#define XK_Racute 0x01c0 /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */ -#define XK_Abreve 0x01c3 /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */ -#define XK_Lacute 0x01c5 /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */ -#define XK_Cacute 0x01c6 /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */ -#define XK_Ccaron 0x01c8 /* U+010C LATIN CAPITAL LETTER C WITH CARON */ -#define XK_Eogonek 0x01ca /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */ -#define XK_Ecaron 0x01cc /* U+011A LATIN CAPITAL LETTER E WITH CARON */ -#define XK_Dcaron 0x01cf /* U+010E LATIN CAPITAL LETTER D WITH CARON */ -#define XK_Dstroke 0x01d0 /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */ -#define XK_Nacute 0x01d1 /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */ -#define XK_Ncaron 0x01d2 /* U+0147 LATIN CAPITAL LETTER N WITH CARON */ -#define XK_Odoubleacute 0x01d5 /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ -#define XK_Rcaron 0x01d8 /* U+0158 LATIN CAPITAL LETTER R WITH CARON */ -#define XK_Uring 0x01d9 /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */ -#define XK_Udoubleacute 0x01db /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ -#define XK_Tcedilla 0x01de /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */ -#define XK_racute 0x01e0 /* U+0155 LATIN SMALL LETTER R WITH ACUTE */ -#define XK_abreve 0x01e3 /* U+0103 LATIN SMALL LETTER A WITH BREVE */ -#define XK_lacute 0x01e5 /* U+013A LATIN SMALL LETTER L WITH ACUTE */ -#define XK_cacute 0x01e6 /* U+0107 LATIN SMALL LETTER C WITH ACUTE */ -#define XK_ccaron 0x01e8 /* U+010D LATIN SMALL LETTER C WITH CARON */ -#define XK_eogonek 0x01ea /* U+0119 LATIN SMALL LETTER E WITH OGONEK */ -#define XK_ecaron 0x01ec /* U+011B LATIN SMALL LETTER E WITH CARON */ -#define XK_dcaron 0x01ef /* U+010F LATIN SMALL LETTER D WITH CARON */ -#define XK_dstroke 0x01f0 /* U+0111 LATIN SMALL LETTER D WITH STROKE */ -#define XK_nacute 0x01f1 /* U+0144 LATIN SMALL LETTER N WITH ACUTE */ -#define XK_ncaron 0x01f2 /* U+0148 LATIN SMALL LETTER N WITH CARON */ -#define XK_odoubleacute 0x01f5 /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */ -#define XK_rcaron 0x01f8 /* U+0159 LATIN SMALL LETTER R WITH CARON */ -#define XK_uring 0x01f9 /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */ -#define XK_udoubleacute 0x01fb /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */ -#define XK_tcedilla 0x01fe /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */ -#define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */ -#endif /* XK_LATIN2 */ - -/* - * Latin 3 - * Byte 3 = 2 - */ - -#ifdef XK_LATIN3 -#define XK_Hstroke 0x02a1 /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */ -#define XK_Hcircumflex 0x02a6 /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ -#define XK_Iabovedot 0x02a9 /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */ -#define XK_Gbreve 0x02ab /* U+011E LATIN CAPITAL LETTER G WITH BREVE */ -#define XK_Jcircumflex 0x02ac /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ -#define XK_hstroke 0x02b1 /* U+0127 LATIN SMALL LETTER H WITH STROKE */ -#define XK_hcircumflex 0x02b6 /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */ -#define XK_idotless 0x02b9 /* U+0131 LATIN SMALL LETTER DOTLESS I */ -#define XK_gbreve 0x02bb /* U+011F LATIN SMALL LETTER G WITH BREVE */ -#define XK_jcircumflex 0x02bc /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */ -#define XK_Cabovedot 0x02c5 /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */ -#define XK_Ccircumflex 0x02c6 /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ -#define XK_Gabovedot 0x02d5 /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */ -#define XK_Gcircumflex 0x02d8 /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ -#define XK_Ubreve 0x02dd /* U+016C LATIN CAPITAL LETTER U WITH BREVE */ -#define XK_Scircumflex 0x02de /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ -#define XK_cabovedot 0x02e5 /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */ -#define XK_ccircumflex 0x02e6 /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */ -#define XK_gabovedot 0x02f5 /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */ -#define XK_gcircumflex 0x02f8 /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */ -#define XK_ubreve 0x02fd /* U+016D LATIN SMALL LETTER U WITH BREVE */ -#define XK_scircumflex 0x02fe /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */ -#endif /* XK_LATIN3 */ - - -/* - * Latin 4 - * Byte 3 = 3 - */ - -#ifdef XK_LATIN4 -#define XK_kra 0x03a2 /* U+0138 LATIN SMALL LETTER KRA */ -#define XK_kappa 0x03a2 /* deprecated */ -#define XK_Rcedilla 0x03a3 /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */ -#define XK_Itilde 0x03a5 /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */ -#define XK_Lcedilla 0x03a6 /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */ -#define XK_Emacron 0x03aa /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */ -#define XK_Gcedilla 0x03ab /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */ -#define XK_Tslash 0x03ac /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */ -#define XK_rcedilla 0x03b3 /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */ -#define XK_itilde 0x03b5 /* U+0129 LATIN SMALL LETTER I WITH TILDE */ -#define XK_lcedilla 0x03b6 /* U+013C LATIN SMALL LETTER L WITH CEDILLA */ -#define XK_emacron 0x03ba /* U+0113 LATIN SMALL LETTER E WITH MACRON */ -#define XK_gcedilla 0x03bb /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */ -#define XK_tslash 0x03bc /* U+0167 LATIN SMALL LETTER T WITH STROKE */ -#define XK_ENG 0x03bd /* U+014A LATIN CAPITAL LETTER ENG */ -#define XK_eng 0x03bf /* U+014B LATIN SMALL LETTER ENG */ -#define XK_Amacron 0x03c0 /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */ -#define XK_Iogonek 0x03c7 /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */ -#define XK_Eabovedot 0x03cc /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */ -#define XK_Imacron 0x03cf /* U+012A LATIN CAPITAL LETTER I WITH MACRON */ -#define XK_Ncedilla 0x03d1 /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */ -#define XK_Omacron 0x03d2 /* U+014C LATIN CAPITAL LETTER O WITH MACRON */ -#define XK_Kcedilla 0x03d3 /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */ -#define XK_Uogonek 0x03d9 /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */ -#define XK_Utilde 0x03dd /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */ -#define XK_Umacron 0x03de /* U+016A LATIN CAPITAL LETTER U WITH MACRON */ -#define XK_amacron 0x03e0 /* U+0101 LATIN SMALL LETTER A WITH MACRON */ -#define XK_iogonek 0x03e7 /* U+012F LATIN SMALL LETTER I WITH OGONEK */ -#define XK_eabovedot 0x03ec /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */ -#define XK_imacron 0x03ef /* U+012B LATIN SMALL LETTER I WITH MACRON */ -#define XK_ncedilla 0x03f1 /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */ -#define XK_omacron 0x03f2 /* U+014D LATIN SMALL LETTER O WITH MACRON */ -#define XK_kcedilla 0x03f3 /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */ -#define XK_uogonek 0x03f9 /* U+0173 LATIN SMALL LETTER U WITH OGONEK */ -#define XK_utilde 0x03fd /* U+0169 LATIN SMALL LETTER U WITH TILDE */ -#define XK_umacron 0x03fe /* U+016B LATIN SMALL LETTER U WITH MACRON */ -#endif /* XK_LATIN4 */ - -/* - * Latin 8 - */ -#ifdef XK_LATIN8 -#define XK_Wcircumflex 0x1000174 /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */ -#define XK_wcircumflex 0x1000175 /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */ -#define XK_Ycircumflex 0x1000176 /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */ -#define XK_ycircumflex 0x1000177 /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */ -#define XK_Babovedot 0x1001e02 /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */ -#define XK_babovedot 0x1001e03 /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */ -#define XK_Dabovedot 0x1001e0a /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */ -#define XK_dabovedot 0x1001e0b /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */ -#define XK_Fabovedot 0x1001e1e /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */ -#define XK_fabovedot 0x1001e1f /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */ -#define XK_Mabovedot 0x1001e40 /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */ -#define XK_mabovedot 0x1001e41 /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */ -#define XK_Pabovedot 0x1001e56 /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */ -#define XK_pabovedot 0x1001e57 /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */ -#define XK_Sabovedot 0x1001e60 /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */ -#define XK_sabovedot 0x1001e61 /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */ -#define XK_Tabovedot 0x1001e6a /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */ -#define XK_tabovedot 0x1001e6b /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */ -#define XK_Wgrave 0x1001e80 /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */ -#define XK_wgrave 0x1001e81 /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */ -#define XK_Wacute 0x1001e82 /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */ -#define XK_wacute 0x1001e83 /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */ -#define XK_Wdiaeresis 0x1001e84 /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */ -#define XK_wdiaeresis 0x1001e85 /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */ -#define XK_Ygrave 0x1001ef2 /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */ -#define XK_ygrave 0x1001ef3 /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */ -#endif /* XK_LATIN8 */ - -/* - * Latin 9 - * Byte 3 = 0x13 - */ - -#ifdef XK_LATIN9 -#define XK_OE 0x13bc /* U+0152 LATIN CAPITAL LIGATURE OE */ -#define XK_oe 0x13bd /* U+0153 LATIN SMALL LIGATURE OE */ -#define XK_Ydiaeresis 0x13be /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */ -#endif /* XK_LATIN9 */ - -/* - * Katakana - * Byte 3 = 4 - */ - -#ifdef XK_KATAKANA -#define XK_overline 0x047e /* U+203E OVERLINE */ -#define XK_kana_fullstop 0x04a1 /* U+3002 IDEOGRAPHIC FULL STOP */ -#define XK_kana_openingbracket 0x04a2 /* U+300C LEFT CORNER BRACKET */ -#define XK_kana_closingbracket 0x04a3 /* U+300D RIGHT CORNER BRACKET */ -#define XK_kana_comma 0x04a4 /* U+3001 IDEOGRAPHIC COMMA */ -#define XK_kana_conjunctive 0x04a5 /* U+30FB KATAKANA MIDDLE DOT */ -#define XK_kana_middledot 0x04a5 /* deprecated */ -#define XK_kana_WO 0x04a6 /* U+30F2 KATAKANA LETTER WO */ -#define XK_kana_a 0x04a7 /* U+30A1 KATAKANA LETTER SMALL A */ -#define XK_kana_i 0x04a8 /* U+30A3 KATAKANA LETTER SMALL I */ -#define XK_kana_u 0x04a9 /* U+30A5 KATAKANA LETTER SMALL U */ -#define XK_kana_e 0x04aa /* U+30A7 KATAKANA LETTER SMALL E */ -#define XK_kana_o 0x04ab /* U+30A9 KATAKANA LETTER SMALL O */ -#define XK_kana_ya 0x04ac /* U+30E3 KATAKANA LETTER SMALL YA */ -#define XK_kana_yu 0x04ad /* U+30E5 KATAKANA LETTER SMALL YU */ -#define XK_kana_yo 0x04ae /* U+30E7 KATAKANA LETTER SMALL YO */ -#define XK_kana_tsu 0x04af /* U+30C3 KATAKANA LETTER SMALL TU */ -#define XK_kana_tu 0x04af /* deprecated */ -#define XK_prolongedsound 0x04b0 /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */ -#define XK_kana_A 0x04b1 /* U+30A2 KATAKANA LETTER A */ -#define XK_kana_I 0x04b2 /* U+30A4 KATAKANA LETTER I */ -#define XK_kana_U 0x04b3 /* U+30A6 KATAKANA LETTER U */ -#define XK_kana_E 0x04b4 /* U+30A8 KATAKANA LETTER E */ -#define XK_kana_O 0x04b5 /* U+30AA KATAKANA LETTER O */ -#define XK_kana_KA 0x04b6 /* U+30AB KATAKANA LETTER KA */ -#define XK_kana_KI 0x04b7 /* U+30AD KATAKANA LETTER KI */ -#define XK_kana_KU 0x04b8 /* U+30AF KATAKANA LETTER KU */ -#define XK_kana_KE 0x04b9 /* U+30B1 KATAKANA LETTER KE */ -#define XK_kana_KO 0x04ba /* U+30B3 KATAKANA LETTER KO */ -#define XK_kana_SA 0x04bb /* U+30B5 KATAKANA LETTER SA */ -#define XK_kana_SHI 0x04bc /* U+30B7 KATAKANA LETTER SI */ -#define XK_kana_SU 0x04bd /* U+30B9 KATAKANA LETTER SU */ -#define XK_kana_SE 0x04be /* U+30BB KATAKANA LETTER SE */ -#define XK_kana_SO 0x04bf /* U+30BD KATAKANA LETTER SO */ -#define XK_kana_TA 0x04c0 /* U+30BF KATAKANA LETTER TA */ -#define XK_kana_CHI 0x04c1 /* U+30C1 KATAKANA LETTER TI */ -#define XK_kana_TI 0x04c1 /* deprecated */ -#define XK_kana_TSU 0x04c2 /* U+30C4 KATAKANA LETTER TU */ -#define XK_kana_TU 0x04c2 /* deprecated */ -#define XK_kana_TE 0x04c3 /* U+30C6 KATAKANA LETTER TE */ -#define XK_kana_TO 0x04c4 /* U+30C8 KATAKANA LETTER TO */ -#define XK_kana_NA 0x04c5 /* U+30CA KATAKANA LETTER NA */ -#define XK_kana_NI 0x04c6 /* U+30CB KATAKANA LETTER NI */ -#define XK_kana_NU 0x04c7 /* U+30CC KATAKANA LETTER NU */ -#define XK_kana_NE 0x04c8 /* U+30CD KATAKANA LETTER NE */ -#define XK_kana_NO 0x04c9 /* U+30CE KATAKANA LETTER NO */ -#define XK_kana_HA 0x04ca /* U+30CF KATAKANA LETTER HA */ -#define XK_kana_HI 0x04cb /* U+30D2 KATAKANA LETTER HI */ -#define XK_kana_FU 0x04cc /* U+30D5 KATAKANA LETTER HU */ -#define XK_kana_HU 0x04cc /* deprecated */ -#define XK_kana_HE 0x04cd /* U+30D8 KATAKANA LETTER HE */ -#define XK_kana_HO 0x04ce /* U+30DB KATAKANA LETTER HO */ -#define XK_kana_MA 0x04cf /* U+30DE KATAKANA LETTER MA */ -#define XK_kana_MI 0x04d0 /* U+30DF KATAKANA LETTER MI */ -#define XK_kana_MU 0x04d1 /* U+30E0 KATAKANA LETTER MU */ -#define XK_kana_ME 0x04d2 /* U+30E1 KATAKANA LETTER ME */ -#define XK_kana_MO 0x04d3 /* U+30E2 KATAKANA LETTER MO */ -#define XK_kana_YA 0x04d4 /* U+30E4 KATAKANA LETTER YA */ -#define XK_kana_YU 0x04d5 /* U+30E6 KATAKANA LETTER YU */ -#define XK_kana_YO 0x04d6 /* U+30E8 KATAKANA LETTER YO */ -#define XK_kana_RA 0x04d7 /* U+30E9 KATAKANA LETTER RA */ -#define XK_kana_RI 0x04d8 /* U+30EA KATAKANA LETTER RI */ -#define XK_kana_RU 0x04d9 /* U+30EB KATAKANA LETTER RU */ -#define XK_kana_RE 0x04da /* U+30EC KATAKANA LETTER RE */ -#define XK_kana_RO 0x04db /* U+30ED KATAKANA LETTER RO */ -#define XK_kana_WA 0x04dc /* U+30EF KATAKANA LETTER WA */ -#define XK_kana_N 0x04dd /* U+30F3 KATAKANA LETTER N */ -#define XK_voicedsound 0x04de /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */ -#define XK_semivoicedsound 0x04df /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ -#define XK_kana_switch 0xff7e /* Alias for mode_switch */ -#endif /* XK_KATAKANA */ - -/* - * Arabic - * Byte 3 = 5 - */ - -#ifdef XK_ARABIC -#define XK_Farsi_0 0x10006f0 /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */ -#define XK_Farsi_1 0x10006f1 /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */ -#define XK_Farsi_2 0x10006f2 /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */ -#define XK_Farsi_3 0x10006f3 /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */ -#define XK_Farsi_4 0x10006f4 /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */ -#define XK_Farsi_5 0x10006f5 /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */ -#define XK_Farsi_6 0x10006f6 /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */ -#define XK_Farsi_7 0x10006f7 /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */ -#define XK_Farsi_8 0x10006f8 /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */ -#define XK_Farsi_9 0x10006f9 /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */ -#define XK_Arabic_percent 0x100066a /* U+066A ARABIC PERCENT SIGN */ -#define XK_Arabic_superscript_alef 0x1000670 /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */ -#define XK_Arabic_tteh 0x1000679 /* U+0679 ARABIC LETTER TTEH */ -#define XK_Arabic_peh 0x100067e /* U+067E ARABIC LETTER PEH */ -#define XK_Arabic_tcheh 0x1000686 /* U+0686 ARABIC LETTER TCHEH */ -#define XK_Arabic_ddal 0x1000688 /* U+0688 ARABIC LETTER DDAL */ -#define XK_Arabic_rreh 0x1000691 /* U+0691 ARABIC LETTER RREH */ -#define XK_Arabic_comma 0x05ac /* U+060C ARABIC COMMA */ -#define XK_Arabic_fullstop 0x10006d4 /* U+06D4 ARABIC FULL STOP */ -#define XK_Arabic_0 0x1000660 /* U+0660 ARABIC-INDIC DIGIT ZERO */ -#define XK_Arabic_1 0x1000661 /* U+0661 ARABIC-INDIC DIGIT ONE */ -#define XK_Arabic_2 0x1000662 /* U+0662 ARABIC-INDIC DIGIT TWO */ -#define XK_Arabic_3 0x1000663 /* U+0663 ARABIC-INDIC DIGIT THREE */ -#define XK_Arabic_4 0x1000664 /* U+0664 ARABIC-INDIC DIGIT FOUR */ -#define XK_Arabic_5 0x1000665 /* U+0665 ARABIC-INDIC DIGIT FIVE */ -#define XK_Arabic_6 0x1000666 /* U+0666 ARABIC-INDIC DIGIT SIX */ -#define XK_Arabic_7 0x1000667 /* U+0667 ARABIC-INDIC DIGIT SEVEN */ -#define XK_Arabic_8 0x1000668 /* U+0668 ARABIC-INDIC DIGIT EIGHT */ -#define XK_Arabic_9 0x1000669 /* U+0669 ARABIC-INDIC DIGIT NINE */ -#define XK_Arabic_semicolon 0x05bb /* U+061B ARABIC SEMICOLON */ -#define XK_Arabic_question_mark 0x05bf /* U+061F ARABIC QUESTION MARK */ -#define XK_Arabic_hamza 0x05c1 /* U+0621 ARABIC LETTER HAMZA */ -#define XK_Arabic_maddaonalef 0x05c2 /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */ -#define XK_Arabic_hamzaonalef 0x05c3 /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */ -#define XK_Arabic_hamzaonwaw 0x05c4 /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */ -#define XK_Arabic_hamzaunderalef 0x05c5 /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */ -#define XK_Arabic_hamzaonyeh 0x05c6 /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */ -#define XK_Arabic_alef 0x05c7 /* U+0627 ARABIC LETTER ALEF */ -#define XK_Arabic_beh 0x05c8 /* U+0628 ARABIC LETTER BEH */ -#define XK_Arabic_tehmarbuta 0x05c9 /* U+0629 ARABIC LETTER TEH MARBUTA */ -#define XK_Arabic_teh 0x05ca /* U+062A ARABIC LETTER TEH */ -#define XK_Arabic_theh 0x05cb /* U+062B ARABIC LETTER THEH */ -#define XK_Arabic_jeem 0x05cc /* U+062C ARABIC LETTER JEEM */ -#define XK_Arabic_hah 0x05cd /* U+062D ARABIC LETTER HAH */ -#define XK_Arabic_khah 0x05ce /* U+062E ARABIC LETTER KHAH */ -#define XK_Arabic_dal 0x05cf /* U+062F ARABIC LETTER DAL */ -#define XK_Arabic_thal 0x05d0 /* U+0630 ARABIC LETTER THAL */ -#define XK_Arabic_ra 0x05d1 /* U+0631 ARABIC LETTER REH */ -#define XK_Arabic_zain 0x05d2 /* U+0632 ARABIC LETTER ZAIN */ -#define XK_Arabic_seen 0x05d3 /* U+0633 ARABIC LETTER SEEN */ -#define XK_Arabic_sheen 0x05d4 /* U+0634 ARABIC LETTER SHEEN */ -#define XK_Arabic_sad 0x05d5 /* U+0635 ARABIC LETTER SAD */ -#define XK_Arabic_dad 0x05d6 /* U+0636 ARABIC LETTER DAD */ -#define XK_Arabic_tah 0x05d7 /* U+0637 ARABIC LETTER TAH */ -#define XK_Arabic_zah 0x05d8 /* U+0638 ARABIC LETTER ZAH */ -#define XK_Arabic_ain 0x05d9 /* U+0639 ARABIC LETTER AIN */ -#define XK_Arabic_ghain 0x05da /* U+063A ARABIC LETTER GHAIN */ -#define XK_Arabic_tatweel 0x05e0 /* U+0640 ARABIC TATWEEL */ -#define XK_Arabic_feh 0x05e1 /* U+0641 ARABIC LETTER FEH */ -#define XK_Arabic_qaf 0x05e2 /* U+0642 ARABIC LETTER QAF */ -#define XK_Arabic_kaf 0x05e3 /* U+0643 ARABIC LETTER KAF */ -#define XK_Arabic_lam 0x05e4 /* U+0644 ARABIC LETTER LAM */ -#define XK_Arabic_meem 0x05e5 /* U+0645 ARABIC LETTER MEEM */ -#define XK_Arabic_noon 0x05e6 /* U+0646 ARABIC LETTER NOON */ -#define XK_Arabic_ha 0x05e7 /* U+0647 ARABIC LETTER HEH */ -#define XK_Arabic_heh 0x05e7 /* deprecated */ -#define XK_Arabic_waw 0x05e8 /* U+0648 ARABIC LETTER WAW */ -#define XK_Arabic_alefmaksura 0x05e9 /* U+0649 ARABIC LETTER ALEF MAKSURA */ -#define XK_Arabic_yeh 0x05ea /* U+064A ARABIC LETTER YEH */ -#define XK_Arabic_fathatan 0x05eb /* U+064B ARABIC FATHATAN */ -#define XK_Arabic_dammatan 0x05ec /* U+064C ARABIC DAMMATAN */ -#define XK_Arabic_kasratan 0x05ed /* U+064D ARABIC KASRATAN */ -#define XK_Arabic_fatha 0x05ee /* U+064E ARABIC FATHA */ -#define XK_Arabic_damma 0x05ef /* U+064F ARABIC DAMMA */ -#define XK_Arabic_kasra 0x05f0 /* U+0650 ARABIC KASRA */ -#define XK_Arabic_shadda 0x05f1 /* U+0651 ARABIC SHADDA */ -#define XK_Arabic_sukun 0x05f2 /* U+0652 ARABIC SUKUN */ -#define XK_Arabic_madda_above 0x1000653 /* U+0653 ARABIC MADDAH ABOVE */ -#define XK_Arabic_hamza_above 0x1000654 /* U+0654 ARABIC HAMZA ABOVE */ -#define XK_Arabic_hamza_below 0x1000655 /* U+0655 ARABIC HAMZA BELOW */ -#define XK_Arabic_jeh 0x1000698 /* U+0698 ARABIC LETTER JEH */ -#define XK_Arabic_veh 0x10006a4 /* U+06A4 ARABIC LETTER VEH */ -#define XK_Arabic_keheh 0x10006a9 /* U+06A9 ARABIC LETTER KEHEH */ -#define XK_Arabic_gaf 0x10006af /* U+06AF ARABIC LETTER GAF */ -#define XK_Arabic_noon_ghunna 0x10006ba /* U+06BA ARABIC LETTER NOON GHUNNA */ -#define XK_Arabic_heh_doachashmee 0x10006be /* U+06BE ARABIC LETTER HEH DOACHASHMEE */ -#define XK_Farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */ -#define XK_Arabic_farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */ -#define XK_Arabic_yeh_baree 0x10006d2 /* U+06D2 ARABIC LETTER YEH BARREE */ -#define XK_Arabic_heh_goal 0x10006c1 /* U+06C1 ARABIC LETTER HEH GOAL */ -#define XK_Arabic_switch 0xff7e /* Alias for mode_switch */ -#endif /* XK_ARABIC */ - -/* - * Cyrillic - * Byte 3 = 6 - */ -#ifdef XK_CYRILLIC -#define XK_Cyrillic_GHE_bar 0x1000492 /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */ -#define XK_Cyrillic_ghe_bar 0x1000493 /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */ -#define XK_Cyrillic_ZHE_descender 0x1000496 /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */ -#define XK_Cyrillic_zhe_descender 0x1000497 /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */ -#define XK_Cyrillic_KA_descender 0x100049a /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */ -#define XK_Cyrillic_ka_descender 0x100049b /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */ -#define XK_Cyrillic_KA_vertstroke 0x100049c /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */ -#define XK_Cyrillic_ka_vertstroke 0x100049d /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */ -#define XK_Cyrillic_EN_descender 0x10004a2 /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */ -#define XK_Cyrillic_en_descender 0x10004a3 /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */ -#define XK_Cyrillic_U_straight 0x10004ae /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */ -#define XK_Cyrillic_u_straight 0x10004af /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */ -#define XK_Cyrillic_U_straight_bar 0x10004b0 /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */ -#define XK_Cyrillic_u_straight_bar 0x10004b1 /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */ -#define XK_Cyrillic_HA_descender 0x10004b2 /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */ -#define XK_Cyrillic_ha_descender 0x10004b3 /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */ -#define XK_Cyrillic_CHE_descender 0x10004b6 /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */ -#define XK_Cyrillic_che_descender 0x10004b7 /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */ -#define XK_Cyrillic_CHE_vertstroke 0x10004b8 /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */ -#define XK_Cyrillic_che_vertstroke 0x10004b9 /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */ -#define XK_Cyrillic_SHHA 0x10004ba /* U+04BA CYRILLIC CAPITAL LETTER SHHA */ -#define XK_Cyrillic_shha 0x10004bb /* U+04BB CYRILLIC SMALL LETTER SHHA */ - -#define XK_Cyrillic_SCHWA 0x10004d8 /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */ -#define XK_Cyrillic_schwa 0x10004d9 /* U+04D9 CYRILLIC SMALL LETTER SCHWA */ -#define XK_Cyrillic_I_macron 0x10004e2 /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */ -#define XK_Cyrillic_i_macron 0x10004e3 /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */ -#define XK_Cyrillic_O_bar 0x10004e8 /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */ -#define XK_Cyrillic_o_bar 0x10004e9 /* U+04E9 CYRILLIC SMALL LETTER BARRED O */ -#define XK_Cyrillic_U_macron 0x10004ee /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */ -#define XK_Cyrillic_u_macron 0x10004ef /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */ - -#define XK_Serbian_dje 0x06a1 /* U+0452 CYRILLIC SMALL LETTER DJE */ -#define XK_Macedonia_gje 0x06a2 /* U+0453 CYRILLIC SMALL LETTER GJE */ -#define XK_Cyrillic_io 0x06a3 /* U+0451 CYRILLIC SMALL LETTER IO */ -#define XK_Ukrainian_ie 0x06a4 /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */ -#define XK_Ukranian_je 0x06a4 /* deprecated */ -#define XK_Macedonia_dse 0x06a5 /* U+0455 CYRILLIC SMALL LETTER DZE */ -#define XK_Ukrainian_i 0x06a6 /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ -#define XK_Ukranian_i 0x06a6 /* deprecated */ -#define XK_Ukrainian_yi 0x06a7 /* U+0457 CYRILLIC SMALL LETTER YI */ -#define XK_Ukranian_yi 0x06a7 /* deprecated */ -#define XK_Cyrillic_je 0x06a8 /* U+0458 CYRILLIC SMALL LETTER JE */ -#define XK_Serbian_je 0x06a8 /* deprecated */ -#define XK_Cyrillic_lje 0x06a9 /* U+0459 CYRILLIC SMALL LETTER LJE */ -#define XK_Serbian_lje 0x06a9 /* deprecated */ -#define XK_Cyrillic_nje 0x06aa /* U+045A CYRILLIC SMALL LETTER NJE */ -#define XK_Serbian_nje 0x06aa /* deprecated */ -#define XK_Serbian_tshe 0x06ab /* U+045B CYRILLIC SMALL LETTER TSHE */ -#define XK_Macedonia_kje 0x06ac /* U+045C CYRILLIC SMALL LETTER KJE */ -#define XK_Ukrainian_ghe_with_upturn 0x06ad /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */ -#define XK_Byelorussian_shortu 0x06ae /* U+045E CYRILLIC SMALL LETTER SHORT U */ -#define XK_Cyrillic_dzhe 0x06af /* U+045F CYRILLIC SMALL LETTER DZHE */ -#define XK_Serbian_dze 0x06af /* deprecated */ -#define XK_numerosign 0x06b0 /* U+2116 NUMERO SIGN */ -#define XK_Serbian_DJE 0x06b1 /* U+0402 CYRILLIC CAPITAL LETTER DJE */ -#define XK_Macedonia_GJE 0x06b2 /* U+0403 CYRILLIC CAPITAL LETTER GJE */ -#define XK_Cyrillic_IO 0x06b3 /* U+0401 CYRILLIC CAPITAL LETTER IO */ -#define XK_Ukrainian_IE 0x06b4 /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */ -#define XK_Ukranian_JE 0x06b4 /* deprecated */ -#define XK_Macedonia_DSE 0x06b5 /* U+0405 CYRILLIC CAPITAL LETTER DZE */ -#define XK_Ukrainian_I 0x06b6 /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ -#define XK_Ukranian_I 0x06b6 /* deprecated */ -#define XK_Ukrainian_YI 0x06b7 /* U+0407 CYRILLIC CAPITAL LETTER YI */ -#define XK_Ukranian_YI 0x06b7 /* deprecated */ -#define XK_Cyrillic_JE 0x06b8 /* U+0408 CYRILLIC CAPITAL LETTER JE */ -#define XK_Serbian_JE 0x06b8 /* deprecated */ -#define XK_Cyrillic_LJE 0x06b9 /* U+0409 CYRILLIC CAPITAL LETTER LJE */ -#define XK_Serbian_LJE 0x06b9 /* deprecated */ -#define XK_Cyrillic_NJE 0x06ba /* U+040A CYRILLIC CAPITAL LETTER NJE */ -#define XK_Serbian_NJE 0x06ba /* deprecated */ -#define XK_Serbian_TSHE 0x06bb /* U+040B CYRILLIC CAPITAL LETTER TSHE */ -#define XK_Macedonia_KJE 0x06bc /* U+040C CYRILLIC CAPITAL LETTER KJE */ -#define XK_Ukrainian_GHE_WITH_UPTURN 0x06bd /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ -#define XK_Byelorussian_SHORTU 0x06be /* U+040E CYRILLIC CAPITAL LETTER SHORT U */ -#define XK_Cyrillic_DZHE 0x06bf /* U+040F CYRILLIC CAPITAL LETTER DZHE */ -#define XK_Serbian_DZE 0x06bf /* deprecated */ -#define XK_Cyrillic_yu 0x06c0 /* U+044E CYRILLIC SMALL LETTER YU */ -#define XK_Cyrillic_a 0x06c1 /* U+0430 CYRILLIC SMALL LETTER A */ -#define XK_Cyrillic_be 0x06c2 /* U+0431 CYRILLIC SMALL LETTER BE */ -#define XK_Cyrillic_tse 0x06c3 /* U+0446 CYRILLIC SMALL LETTER TSE */ -#define XK_Cyrillic_de 0x06c4 /* U+0434 CYRILLIC SMALL LETTER DE */ -#define XK_Cyrillic_ie 0x06c5 /* U+0435 CYRILLIC SMALL LETTER IE */ -#define XK_Cyrillic_ef 0x06c6 /* U+0444 CYRILLIC SMALL LETTER EF */ -#define XK_Cyrillic_ghe 0x06c7 /* U+0433 CYRILLIC SMALL LETTER GHE */ -#define XK_Cyrillic_ha 0x06c8 /* U+0445 CYRILLIC SMALL LETTER HA */ -#define XK_Cyrillic_i 0x06c9 /* U+0438 CYRILLIC SMALL LETTER I */ -#define XK_Cyrillic_shorti 0x06ca /* U+0439 CYRILLIC SMALL LETTER SHORT I */ -#define XK_Cyrillic_ka 0x06cb /* U+043A CYRILLIC SMALL LETTER KA */ -#define XK_Cyrillic_el 0x06cc /* U+043B CYRILLIC SMALL LETTER EL */ -#define XK_Cyrillic_em 0x06cd /* U+043C CYRILLIC SMALL LETTER EM */ -#define XK_Cyrillic_en 0x06ce /* U+043D CYRILLIC SMALL LETTER EN */ -#define XK_Cyrillic_o 0x06cf /* U+043E CYRILLIC SMALL LETTER O */ -#define XK_Cyrillic_pe 0x06d0 /* U+043F CYRILLIC SMALL LETTER PE */ -#define XK_Cyrillic_ya 0x06d1 /* U+044F CYRILLIC SMALL LETTER YA */ -#define XK_Cyrillic_er 0x06d2 /* U+0440 CYRILLIC SMALL LETTER ER */ -#define XK_Cyrillic_es 0x06d3 /* U+0441 CYRILLIC SMALL LETTER ES */ -#define XK_Cyrillic_te 0x06d4 /* U+0442 CYRILLIC SMALL LETTER TE */ -#define XK_Cyrillic_u 0x06d5 /* U+0443 CYRILLIC SMALL LETTER U */ -#define XK_Cyrillic_zhe 0x06d6 /* U+0436 CYRILLIC SMALL LETTER ZHE */ -#define XK_Cyrillic_ve 0x06d7 /* U+0432 CYRILLIC SMALL LETTER VE */ -#define XK_Cyrillic_softsign 0x06d8 /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */ -#define XK_Cyrillic_yeru 0x06d9 /* U+044B CYRILLIC SMALL LETTER YERU */ -#define XK_Cyrillic_ze 0x06da /* U+0437 CYRILLIC SMALL LETTER ZE */ -#define XK_Cyrillic_sha 0x06db /* U+0448 CYRILLIC SMALL LETTER SHA */ -#define XK_Cyrillic_e 0x06dc /* U+044D CYRILLIC SMALL LETTER E */ -#define XK_Cyrillic_shcha 0x06dd /* U+0449 CYRILLIC SMALL LETTER SHCHA */ -#define XK_Cyrillic_che 0x06de /* U+0447 CYRILLIC SMALL LETTER CHE */ -#define XK_Cyrillic_hardsign 0x06df /* U+044A CYRILLIC SMALL LETTER HARD SIGN */ -#define XK_Cyrillic_YU 0x06e0 /* U+042E CYRILLIC CAPITAL LETTER YU */ -#define XK_Cyrillic_A 0x06e1 /* U+0410 CYRILLIC CAPITAL LETTER A */ -#define XK_Cyrillic_BE 0x06e2 /* U+0411 CYRILLIC CAPITAL LETTER BE */ -#define XK_Cyrillic_TSE 0x06e3 /* U+0426 CYRILLIC CAPITAL LETTER TSE */ -#define XK_Cyrillic_DE 0x06e4 /* U+0414 CYRILLIC CAPITAL LETTER DE */ -#define XK_Cyrillic_IE 0x06e5 /* U+0415 CYRILLIC CAPITAL LETTER IE */ -#define XK_Cyrillic_EF 0x06e6 /* U+0424 CYRILLIC CAPITAL LETTER EF */ -#define XK_Cyrillic_GHE 0x06e7 /* U+0413 CYRILLIC CAPITAL LETTER GHE */ -#define XK_Cyrillic_HA 0x06e8 /* U+0425 CYRILLIC CAPITAL LETTER HA */ -#define XK_Cyrillic_I 0x06e9 /* U+0418 CYRILLIC CAPITAL LETTER I */ -#define XK_Cyrillic_SHORTI 0x06ea /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */ -#define XK_Cyrillic_KA 0x06eb /* U+041A CYRILLIC CAPITAL LETTER KA */ -#define XK_Cyrillic_EL 0x06ec /* U+041B CYRILLIC CAPITAL LETTER EL */ -#define XK_Cyrillic_EM 0x06ed /* U+041C CYRILLIC CAPITAL LETTER EM */ -#define XK_Cyrillic_EN 0x06ee /* U+041D CYRILLIC CAPITAL LETTER EN */ -#define XK_Cyrillic_O 0x06ef /* U+041E CYRILLIC CAPITAL LETTER O */ -#define XK_Cyrillic_PE 0x06f0 /* U+041F CYRILLIC CAPITAL LETTER PE */ -#define XK_Cyrillic_YA 0x06f1 /* U+042F CYRILLIC CAPITAL LETTER YA */ -#define XK_Cyrillic_ER 0x06f2 /* U+0420 CYRILLIC CAPITAL LETTER ER */ -#define XK_Cyrillic_ES 0x06f3 /* U+0421 CYRILLIC CAPITAL LETTER ES */ -#define XK_Cyrillic_TE 0x06f4 /* U+0422 CYRILLIC CAPITAL LETTER TE */ -#define XK_Cyrillic_U 0x06f5 /* U+0423 CYRILLIC CAPITAL LETTER U */ -#define XK_Cyrillic_ZHE 0x06f6 /* U+0416 CYRILLIC CAPITAL LETTER ZHE */ -#define XK_Cyrillic_VE 0x06f7 /* U+0412 CYRILLIC CAPITAL LETTER VE */ -#define XK_Cyrillic_SOFTSIGN 0x06f8 /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */ -#define XK_Cyrillic_YERU 0x06f9 /* U+042B CYRILLIC CAPITAL LETTER YERU */ -#define XK_Cyrillic_ZE 0x06fa /* U+0417 CYRILLIC CAPITAL LETTER ZE */ -#define XK_Cyrillic_SHA 0x06fb /* U+0428 CYRILLIC CAPITAL LETTER SHA */ -#define XK_Cyrillic_E 0x06fc /* U+042D CYRILLIC CAPITAL LETTER E */ -#define XK_Cyrillic_SHCHA 0x06fd /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */ -#define XK_Cyrillic_CHE 0x06fe /* U+0427 CYRILLIC CAPITAL LETTER CHE */ -#define XK_Cyrillic_HARDSIGN 0x06ff /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */ -#endif /* XK_CYRILLIC */ - -/* - * Greek - * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7) - * Byte 3 = 7 - */ - -#ifdef XK_GREEK -#define XK_Greek_ALPHAaccent 0x07a1 /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */ -#define XK_Greek_EPSILONaccent 0x07a2 /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */ -#define XK_Greek_ETAaccent 0x07a3 /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */ -#define XK_Greek_IOTAaccent 0x07a4 /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */ -#define XK_Greek_IOTAdieresis 0x07a5 /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ -#define XK_Greek_IOTAdiaeresis 0x07a5 /* old typo */ -#define XK_Greek_OMICRONaccent 0x07a7 /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */ -#define XK_Greek_UPSILONaccent 0x07a8 /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */ -#define XK_Greek_UPSILONdieresis 0x07a9 /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ -#define XK_Greek_OMEGAaccent 0x07ab /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */ -#define XK_Greek_accentdieresis 0x07ae /* U+0385 GREEK DIALYTIKA TONOS */ -#define XK_Greek_horizbar 0x07af /* U+2015 HORIZONTAL BAR */ -#define XK_Greek_alphaaccent 0x07b1 /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */ -#define XK_Greek_epsilonaccent 0x07b2 /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */ -#define XK_Greek_etaaccent 0x07b3 /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */ -#define XK_Greek_iotaaccent 0x07b4 /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */ -#define XK_Greek_iotadieresis 0x07b5 /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */ -#define XK_Greek_iotaaccentdieresis 0x07b6 /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ -#define XK_Greek_omicronaccent 0x07b7 /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */ -#define XK_Greek_upsilonaccent 0x07b8 /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */ -#define XK_Greek_upsilondieresis 0x07b9 /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ -#define XK_Greek_upsilonaccentdieresis 0x07ba /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ -#define XK_Greek_omegaaccent 0x07bb /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */ -#define XK_Greek_ALPHA 0x07c1 /* U+0391 GREEK CAPITAL LETTER ALPHA */ -#define XK_Greek_BETA 0x07c2 /* U+0392 GREEK CAPITAL LETTER BETA */ -#define XK_Greek_GAMMA 0x07c3 /* U+0393 GREEK CAPITAL LETTER GAMMA */ -#define XK_Greek_DELTA 0x07c4 /* U+0394 GREEK CAPITAL LETTER DELTA */ -#define XK_Greek_EPSILON 0x07c5 /* U+0395 GREEK CAPITAL LETTER EPSILON */ -#define XK_Greek_ZETA 0x07c6 /* U+0396 GREEK CAPITAL LETTER ZETA */ -#define XK_Greek_ETA 0x07c7 /* U+0397 GREEK CAPITAL LETTER ETA */ -#define XK_Greek_THETA 0x07c8 /* U+0398 GREEK CAPITAL LETTER THETA */ -#define XK_Greek_IOTA 0x07c9 /* U+0399 GREEK CAPITAL LETTER IOTA */ -#define XK_Greek_KAPPA 0x07ca /* U+039A GREEK CAPITAL LETTER KAPPA */ -#define XK_Greek_LAMDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */ -#define XK_Greek_LAMBDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */ -#define XK_Greek_MU 0x07cc /* U+039C GREEK CAPITAL LETTER MU */ -#define XK_Greek_NU 0x07cd /* U+039D GREEK CAPITAL LETTER NU */ -#define XK_Greek_XI 0x07ce /* U+039E GREEK CAPITAL LETTER XI */ -#define XK_Greek_OMICRON 0x07cf /* U+039F GREEK CAPITAL LETTER OMICRON */ -#define XK_Greek_PI 0x07d0 /* U+03A0 GREEK CAPITAL LETTER PI */ -#define XK_Greek_RHO 0x07d1 /* U+03A1 GREEK CAPITAL LETTER RHO */ -#define XK_Greek_SIGMA 0x07d2 /* U+03A3 GREEK CAPITAL LETTER SIGMA */ -#define XK_Greek_TAU 0x07d4 /* U+03A4 GREEK CAPITAL LETTER TAU */ -#define XK_Greek_UPSILON 0x07d5 /* U+03A5 GREEK CAPITAL LETTER UPSILON */ -#define XK_Greek_PHI 0x07d6 /* U+03A6 GREEK CAPITAL LETTER PHI */ -#define XK_Greek_CHI 0x07d7 /* U+03A7 GREEK CAPITAL LETTER CHI */ -#define XK_Greek_PSI 0x07d8 /* U+03A8 GREEK CAPITAL LETTER PSI */ -#define XK_Greek_OMEGA 0x07d9 /* U+03A9 GREEK CAPITAL LETTER OMEGA */ -#define XK_Greek_alpha 0x07e1 /* U+03B1 GREEK SMALL LETTER ALPHA */ -#define XK_Greek_beta 0x07e2 /* U+03B2 GREEK SMALL LETTER BETA */ -#define XK_Greek_gamma 0x07e3 /* U+03B3 GREEK SMALL LETTER GAMMA */ -#define XK_Greek_delta 0x07e4 /* U+03B4 GREEK SMALL LETTER DELTA */ -#define XK_Greek_epsilon 0x07e5 /* U+03B5 GREEK SMALL LETTER EPSILON */ -#define XK_Greek_zeta 0x07e6 /* U+03B6 GREEK SMALL LETTER ZETA */ -#define XK_Greek_eta 0x07e7 /* U+03B7 GREEK SMALL LETTER ETA */ -#define XK_Greek_theta 0x07e8 /* U+03B8 GREEK SMALL LETTER THETA */ -#define XK_Greek_iota 0x07e9 /* U+03B9 GREEK SMALL LETTER IOTA */ -#define XK_Greek_kappa 0x07ea /* U+03BA GREEK SMALL LETTER KAPPA */ -#define XK_Greek_lamda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */ -#define XK_Greek_lambda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */ -#define XK_Greek_mu 0x07ec /* U+03BC GREEK SMALL LETTER MU */ -#define XK_Greek_nu 0x07ed /* U+03BD GREEK SMALL LETTER NU */ -#define XK_Greek_xi 0x07ee /* U+03BE GREEK SMALL LETTER XI */ -#define XK_Greek_omicron 0x07ef /* U+03BF GREEK SMALL LETTER OMICRON */ -#define XK_Greek_pi 0x07f0 /* U+03C0 GREEK SMALL LETTER PI */ -#define XK_Greek_rho 0x07f1 /* U+03C1 GREEK SMALL LETTER RHO */ -#define XK_Greek_sigma 0x07f2 /* U+03C3 GREEK SMALL LETTER SIGMA */ -#define XK_Greek_finalsmallsigma 0x07f3 /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */ -#define XK_Greek_tau 0x07f4 /* U+03C4 GREEK SMALL LETTER TAU */ -#define XK_Greek_upsilon 0x07f5 /* U+03C5 GREEK SMALL LETTER UPSILON */ -#define XK_Greek_phi 0x07f6 /* U+03C6 GREEK SMALL LETTER PHI */ -#define XK_Greek_chi 0x07f7 /* U+03C7 GREEK SMALL LETTER CHI */ -#define XK_Greek_psi 0x07f8 /* U+03C8 GREEK SMALL LETTER PSI */ -#define XK_Greek_omega 0x07f9 /* U+03C9 GREEK SMALL LETTER OMEGA */ -#define XK_Greek_switch 0xff7e /* Alias for mode_switch */ -#endif /* XK_GREEK */ - -/* - * Technical - * (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html) - * Byte 3 = 8 - */ - -#ifdef XK_TECHNICAL -#define XK_leftradical 0x08a1 /* U+23B7 RADICAL SYMBOL BOTTOM */ -#define XK_topleftradical 0x08a2 /*(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)*/ -#define XK_horizconnector 0x08a3 /*(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)*/ -#define XK_topintegral 0x08a4 /* U+2320 TOP HALF INTEGRAL */ -#define XK_botintegral 0x08a5 /* U+2321 BOTTOM HALF INTEGRAL */ -#define XK_vertconnector 0x08a6 /*(U+2502 BOX DRAWINGS LIGHT VERTICAL)*/ -#define XK_topleftsqbracket 0x08a7 /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */ -#define XK_botleftsqbracket 0x08a8 /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */ -#define XK_toprightsqbracket 0x08a9 /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */ -#define XK_botrightsqbracket 0x08aa /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */ -#define XK_topleftparens 0x08ab /* U+239B LEFT PARENTHESIS UPPER HOOK */ -#define XK_botleftparens 0x08ac /* U+239D LEFT PARENTHESIS LOWER HOOK */ -#define XK_toprightparens 0x08ad /* U+239E RIGHT PARENTHESIS UPPER HOOK */ -#define XK_botrightparens 0x08ae /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */ -#define XK_leftmiddlecurlybrace 0x08af /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */ -#define XK_rightmiddlecurlybrace 0x08b0 /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */ -#define XK_topleftsummation 0x08b1 -#define XK_botleftsummation 0x08b2 -#define XK_topvertsummationconnector 0x08b3 -#define XK_botvertsummationconnector 0x08b4 -#define XK_toprightsummation 0x08b5 -#define XK_botrightsummation 0x08b6 -#define XK_rightmiddlesummation 0x08b7 -#define XK_lessthanequal 0x08bc /* U+2264 LESS-THAN OR EQUAL TO */ -#define XK_notequal 0x08bd /* U+2260 NOT EQUAL TO */ -#define XK_greaterthanequal 0x08be /* U+2265 GREATER-THAN OR EQUAL TO */ -#define XK_integral 0x08bf /* U+222B INTEGRAL */ -#define XK_therefore 0x08c0 /* U+2234 THEREFORE */ -#define XK_variation 0x08c1 /* U+221D PROPORTIONAL TO */ -#define XK_infinity 0x08c2 /* U+221E INFINITY */ -#define XK_nabla 0x08c5 /* U+2207 NABLA */ -#define XK_approximate 0x08c8 /* U+223C TILDE OPERATOR */ -#define XK_similarequal 0x08c9 /* U+2243 ASYMPTOTICALLY EQUAL TO */ -#define XK_ifonlyif 0x08cd /* U+21D4 LEFT RIGHT DOUBLE ARROW */ -#define XK_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */ -#define XK_identical 0x08cf /* U+2261 IDENTICAL TO */ -#define XK_radical 0x08d6 /* U+221A SQUARE ROOT */ -#define XK_includedin 0x08da /* U+2282 SUBSET OF */ -#define XK_includes 0x08db /* U+2283 SUPERSET OF */ -#define XK_intersection 0x08dc /* U+2229 INTERSECTION */ -#define XK_union 0x08dd /* U+222A UNION */ -#define XK_logicaland 0x08de /* U+2227 LOGICAL AND */ -#define XK_logicalor 0x08df /* U+2228 LOGICAL OR */ -#define XK_partialderivative 0x08ef /* U+2202 PARTIAL DIFFERENTIAL */ -#define XK_function 0x08f6 /* U+0192 LATIN SMALL LETTER F WITH HOOK */ -#define XK_leftarrow 0x08fb /* U+2190 LEFTWARDS ARROW */ -#define XK_uparrow 0x08fc /* U+2191 UPWARDS ARROW */ -#define XK_rightarrow 0x08fd /* U+2192 RIGHTWARDS ARROW */ -#define XK_downarrow 0x08fe /* U+2193 DOWNWARDS ARROW */ -#endif /* XK_TECHNICAL */ - -/* - * Special - * (from the DEC VT100 Special Graphics Character Set) - * Byte 3 = 9 - */ - -#ifdef XK_SPECIAL -#define XK_blank 0x09df -#define XK_soliddiamond 0x09e0 /* U+25C6 BLACK DIAMOND */ -#define XK_checkerboard 0x09e1 /* U+2592 MEDIUM SHADE */ -#define XK_ht 0x09e2 /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */ -#define XK_ff 0x09e3 /* U+240C SYMBOL FOR FORM FEED */ -#define XK_cr 0x09e4 /* U+240D SYMBOL FOR CARRIAGE RETURN */ -#define XK_lf 0x09e5 /* U+240A SYMBOL FOR LINE FEED */ -#define XK_nl 0x09e8 /* U+2424 SYMBOL FOR NEWLINE */ -#define XK_vt 0x09e9 /* U+240B SYMBOL FOR VERTICAL TABULATION */ -#define XK_lowrightcorner 0x09ea /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */ -#define XK_uprightcorner 0x09eb /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */ -#define XK_upleftcorner 0x09ec /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */ -#define XK_lowleftcorner 0x09ed /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */ -#define XK_crossinglines 0x09ee /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ -#define XK_horizlinescan1 0x09ef /* U+23BA HORIZONTAL SCAN LINE-1 */ -#define XK_horizlinescan3 0x09f0 /* U+23BB HORIZONTAL SCAN LINE-3 */ -#define XK_horizlinescan5 0x09f1 /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */ -#define XK_horizlinescan7 0x09f2 /* U+23BC HORIZONTAL SCAN LINE-7 */ -#define XK_horizlinescan9 0x09f3 /* U+23BD HORIZONTAL SCAN LINE-9 */ -#define XK_leftt 0x09f4 /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ -#define XK_rightt 0x09f5 /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */ -#define XK_bott 0x09f6 /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */ -#define XK_topt 0x09f7 /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ -#define XK_vertbar 0x09f8 /* U+2502 BOX DRAWINGS LIGHT VERTICAL */ -#endif /* XK_SPECIAL */ - -/* - * Publishing - * (these are probably from a long forgotten DEC Publishing - * font that once shipped with DECwrite) - * Byte 3 = 0x0a - */ - -#ifdef XK_PUBLISHING -#define XK_emspace 0x0aa1 /* U+2003 EM SPACE */ -#define XK_enspace 0x0aa2 /* U+2002 EN SPACE */ -#define XK_em3space 0x0aa3 /* U+2004 THREE-PER-EM SPACE */ -#define XK_em4space 0x0aa4 /* U+2005 FOUR-PER-EM SPACE */ -#define XK_digitspace 0x0aa5 /* U+2007 FIGURE SPACE */ -#define XK_punctspace 0x0aa6 /* U+2008 PUNCTUATION SPACE */ -#define XK_thinspace 0x0aa7 /* U+2009 THIN SPACE */ -#define XK_hairspace 0x0aa8 /* U+200A HAIR SPACE */ -#define XK_emdash 0x0aa9 /* U+2014 EM DASH */ -#define XK_endash 0x0aaa /* U+2013 EN DASH */ -#define XK_signifblank 0x0aac /*(U+2423 OPEN BOX)*/ -#define XK_ellipsis 0x0aae /* U+2026 HORIZONTAL ELLIPSIS */ -#define XK_doubbaselinedot 0x0aaf /* U+2025 TWO DOT LEADER */ -#define XK_onethird 0x0ab0 /* U+2153 VULGAR FRACTION ONE THIRD */ -#define XK_twothirds 0x0ab1 /* U+2154 VULGAR FRACTION TWO THIRDS */ -#define XK_onefifth 0x0ab2 /* U+2155 VULGAR FRACTION ONE FIFTH */ -#define XK_twofifths 0x0ab3 /* U+2156 VULGAR FRACTION TWO FIFTHS */ -#define XK_threefifths 0x0ab4 /* U+2157 VULGAR FRACTION THREE FIFTHS */ -#define XK_fourfifths 0x0ab5 /* U+2158 VULGAR FRACTION FOUR FIFTHS */ -#define XK_onesixth 0x0ab6 /* U+2159 VULGAR FRACTION ONE SIXTH */ -#define XK_fivesixths 0x0ab7 /* U+215A VULGAR FRACTION FIVE SIXTHS */ -#define XK_careof 0x0ab8 /* U+2105 CARE OF */ -#define XK_figdash 0x0abb /* U+2012 FIGURE DASH */ -#define XK_leftanglebracket 0x0abc /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/ -#define XK_decimalpoint 0x0abd /*(U+002E FULL STOP)*/ -#define XK_rightanglebracket 0x0abe /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/ -#define XK_marker 0x0abf -#define XK_oneeighth 0x0ac3 /* U+215B VULGAR FRACTION ONE EIGHTH */ -#define XK_threeeighths 0x0ac4 /* U+215C VULGAR FRACTION THREE EIGHTHS */ -#define XK_fiveeighths 0x0ac5 /* U+215D VULGAR FRACTION FIVE EIGHTHS */ -#define XK_seveneighths 0x0ac6 /* U+215E VULGAR FRACTION SEVEN EIGHTHS */ -#define XK_trademark 0x0ac9 /* U+2122 TRADE MARK SIGN */ -#define XK_signaturemark 0x0aca /*(U+2613 SALTIRE)*/ -#define XK_trademarkincircle 0x0acb -#define XK_leftopentriangle 0x0acc /*(U+25C1 WHITE LEFT-POINTING TRIANGLE)*/ -#define XK_rightopentriangle 0x0acd /*(U+25B7 WHITE RIGHT-POINTING TRIANGLE)*/ -#define XK_emopencircle 0x0ace /*(U+25CB WHITE CIRCLE)*/ -#define XK_emopenrectangle 0x0acf /*(U+25AF WHITE VERTICAL RECTANGLE)*/ -#define XK_leftsinglequotemark 0x0ad0 /* U+2018 LEFT SINGLE QUOTATION MARK */ -#define XK_rightsinglequotemark 0x0ad1 /* U+2019 RIGHT SINGLE QUOTATION MARK */ -#define XK_leftdoublequotemark 0x0ad2 /* U+201C LEFT DOUBLE QUOTATION MARK */ -#define XK_rightdoublequotemark 0x0ad3 /* U+201D RIGHT DOUBLE QUOTATION MARK */ -#define XK_prescription 0x0ad4 /* U+211E PRESCRIPTION TAKE */ -#define XK_permille 0x0ad5 /* U+2030 PER MILLE SIGN */ -#define XK_minutes 0x0ad6 /* U+2032 PRIME */ -#define XK_seconds 0x0ad7 /* U+2033 DOUBLE PRIME */ -#define XK_latincross 0x0ad9 /* U+271D LATIN CROSS */ -#define XK_hexagram 0x0ada -#define XK_filledrectbullet 0x0adb /*(U+25AC BLACK RECTANGLE)*/ -#define XK_filledlefttribullet 0x0adc /*(U+25C0 BLACK LEFT-POINTING TRIANGLE)*/ -#define XK_filledrighttribullet 0x0add /*(U+25B6 BLACK RIGHT-POINTING TRIANGLE)*/ -#define XK_emfilledcircle 0x0ade /*(U+25CF BLACK CIRCLE)*/ -#define XK_emfilledrect 0x0adf /*(U+25AE BLACK VERTICAL RECTANGLE)*/ -#define XK_enopencircbullet 0x0ae0 /*(U+25E6 WHITE BULLET)*/ -#define XK_enopensquarebullet 0x0ae1 /*(U+25AB WHITE SMALL SQUARE)*/ -#define XK_openrectbullet 0x0ae2 /*(U+25AD WHITE RECTANGLE)*/ -#define XK_opentribulletup 0x0ae3 /*(U+25B3 WHITE UP-POINTING TRIANGLE)*/ -#define XK_opentribulletdown 0x0ae4 /*(U+25BD WHITE DOWN-POINTING TRIANGLE)*/ -#define XK_openstar 0x0ae5 /*(U+2606 WHITE STAR)*/ -#define XK_enfilledcircbullet 0x0ae6 /*(U+2022 BULLET)*/ -#define XK_enfilledsqbullet 0x0ae7 /*(U+25AA BLACK SMALL SQUARE)*/ -#define XK_filledtribulletup 0x0ae8 /*(U+25B2 BLACK UP-POINTING TRIANGLE)*/ -#define XK_filledtribulletdown 0x0ae9 /*(U+25BC BLACK DOWN-POINTING TRIANGLE)*/ -#define XK_leftpointer 0x0aea /*(U+261C WHITE LEFT POINTING INDEX)*/ -#define XK_rightpointer 0x0aeb /*(U+261E WHITE RIGHT POINTING INDEX)*/ -#define XK_club 0x0aec /* U+2663 BLACK CLUB SUIT */ -#define XK_diamond 0x0aed /* U+2666 BLACK DIAMOND SUIT */ -#define XK_heart 0x0aee /* U+2665 BLACK HEART SUIT */ -#define XK_maltesecross 0x0af0 /* U+2720 MALTESE CROSS */ -#define XK_dagger 0x0af1 /* U+2020 DAGGER */ -#define XK_doubledagger 0x0af2 /* U+2021 DOUBLE DAGGER */ -#define XK_checkmark 0x0af3 /* U+2713 CHECK MARK */ -#define XK_ballotcross 0x0af4 /* U+2717 BALLOT X */ -#define XK_musicalsharp 0x0af5 /* U+266F MUSIC SHARP SIGN */ -#define XK_musicalflat 0x0af6 /* U+266D MUSIC FLAT SIGN */ -#define XK_malesymbol 0x0af7 /* U+2642 MALE SIGN */ -#define XK_femalesymbol 0x0af8 /* U+2640 FEMALE SIGN */ -#define XK_telephone 0x0af9 /* U+260E BLACK TELEPHONE */ -#define XK_telephonerecorder 0x0afa /* U+2315 TELEPHONE RECORDER */ -#define XK_phonographcopyright 0x0afb /* U+2117 SOUND RECORDING COPYRIGHT */ -#define XK_caret 0x0afc /* U+2038 CARET */ -#define XK_singlelowquotemark 0x0afd /* U+201A SINGLE LOW-9 QUOTATION MARK */ -#define XK_doublelowquotemark 0x0afe /* U+201E DOUBLE LOW-9 QUOTATION MARK */ -#define XK_cursor 0x0aff -#endif /* XK_PUBLISHING */ - -/* - * APL - * Byte 3 = 0x0b - */ - -#ifdef XK_APL -#define XK_leftcaret 0x0ba3 /*(U+003C LESS-THAN SIGN)*/ -#define XK_rightcaret 0x0ba6 /*(U+003E GREATER-THAN SIGN)*/ -#define XK_downcaret 0x0ba8 /*(U+2228 LOGICAL OR)*/ -#define XK_upcaret 0x0ba9 /*(U+2227 LOGICAL AND)*/ -#define XK_overbar 0x0bc0 /*(U+00AF MACRON)*/ -#define XK_downtack 0x0bc2 /* U+22A4 DOWN TACK */ -#define XK_upshoe 0x0bc3 /*(U+2229 INTERSECTION)*/ -#define XK_downstile 0x0bc4 /* U+230A LEFT FLOOR */ -#define XK_underbar 0x0bc6 /*(U+005F LOW LINE)*/ -#define XK_jot 0x0bca /* U+2218 RING OPERATOR */ -#define XK_quad 0x0bcc /* U+2395 APL FUNCTIONAL SYMBOL QUAD */ -#define XK_uptack 0x0bce /* U+22A5 UP TACK */ -#define XK_circle 0x0bcf /* U+25CB WHITE CIRCLE */ -#define XK_upstile 0x0bd3 /* U+2308 LEFT CEILING */ -#define XK_downshoe 0x0bd6 /*(U+222A UNION)*/ -#define XK_rightshoe 0x0bd8 /*(U+2283 SUPERSET OF)*/ -#define XK_leftshoe 0x0bda /*(U+2282 SUBSET OF)*/ -#define XK_lefttack 0x0bdc /* U+22A3 LEFT TACK */ -#define XK_righttack 0x0bfc /* U+22A2 RIGHT TACK */ -#endif /* XK_APL */ - -/* - * Hebrew - * Byte 3 = 0x0c - */ - -#ifdef XK_HEBREW -#define XK_hebrew_doublelowline 0x0cdf /* U+2017 DOUBLE LOW LINE */ -#define XK_hebrew_aleph 0x0ce0 /* U+05D0 HEBREW LETTER ALEF */ -#define XK_hebrew_bet 0x0ce1 /* U+05D1 HEBREW LETTER BET */ -#define XK_hebrew_beth 0x0ce1 /* deprecated */ -#define XK_hebrew_gimel 0x0ce2 /* U+05D2 HEBREW LETTER GIMEL */ -#define XK_hebrew_gimmel 0x0ce2 /* deprecated */ -#define XK_hebrew_dalet 0x0ce3 /* U+05D3 HEBREW LETTER DALET */ -#define XK_hebrew_daleth 0x0ce3 /* deprecated */ -#define XK_hebrew_he 0x0ce4 /* U+05D4 HEBREW LETTER HE */ -#define XK_hebrew_waw 0x0ce5 /* U+05D5 HEBREW LETTER VAV */ -#define XK_hebrew_zain 0x0ce6 /* U+05D6 HEBREW LETTER ZAYIN */ -#define XK_hebrew_zayin 0x0ce6 /* deprecated */ -#define XK_hebrew_chet 0x0ce7 /* U+05D7 HEBREW LETTER HET */ -#define XK_hebrew_het 0x0ce7 /* deprecated */ -#define XK_hebrew_tet 0x0ce8 /* U+05D8 HEBREW LETTER TET */ -#define XK_hebrew_teth 0x0ce8 /* deprecated */ -#define XK_hebrew_yod 0x0ce9 /* U+05D9 HEBREW LETTER YOD */ -#define XK_hebrew_finalkaph 0x0cea /* U+05DA HEBREW LETTER FINAL KAF */ -#define XK_hebrew_kaph 0x0ceb /* U+05DB HEBREW LETTER KAF */ -#define XK_hebrew_lamed 0x0cec /* U+05DC HEBREW LETTER LAMED */ -#define XK_hebrew_finalmem 0x0ced /* U+05DD HEBREW LETTER FINAL MEM */ -#define XK_hebrew_mem 0x0cee /* U+05DE HEBREW LETTER MEM */ -#define XK_hebrew_finalnun 0x0cef /* U+05DF HEBREW LETTER FINAL NUN */ -#define XK_hebrew_nun 0x0cf0 /* U+05E0 HEBREW LETTER NUN */ -#define XK_hebrew_samech 0x0cf1 /* U+05E1 HEBREW LETTER SAMEKH */ -#define XK_hebrew_samekh 0x0cf1 /* deprecated */ -#define XK_hebrew_ayin 0x0cf2 /* U+05E2 HEBREW LETTER AYIN */ -#define XK_hebrew_finalpe 0x0cf3 /* U+05E3 HEBREW LETTER FINAL PE */ -#define XK_hebrew_pe 0x0cf4 /* U+05E4 HEBREW LETTER PE */ -#define XK_hebrew_finalzade 0x0cf5 /* U+05E5 HEBREW LETTER FINAL TSADI */ -#define XK_hebrew_finalzadi 0x0cf5 /* deprecated */ -#define XK_hebrew_zade 0x0cf6 /* U+05E6 HEBREW LETTER TSADI */ -#define XK_hebrew_zadi 0x0cf6 /* deprecated */ -#define XK_hebrew_qoph 0x0cf7 /* U+05E7 HEBREW LETTER QOF */ -#define XK_hebrew_kuf 0x0cf7 /* deprecated */ -#define XK_hebrew_resh 0x0cf8 /* U+05E8 HEBREW LETTER RESH */ -#define XK_hebrew_shin 0x0cf9 /* U+05E9 HEBREW LETTER SHIN */ -#define XK_hebrew_taw 0x0cfa /* U+05EA HEBREW LETTER TAV */ -#define XK_hebrew_taf 0x0cfa /* deprecated */ -#define XK_Hebrew_switch 0xff7e /* Alias for mode_switch */ -#endif /* XK_HEBREW */ - -/* - * Thai - * Byte 3 = 0x0d - */ - -#ifdef XK_THAI -#define XK_Thai_kokai 0x0da1 /* U+0E01 THAI CHARACTER KO KAI */ -#define XK_Thai_khokhai 0x0da2 /* U+0E02 THAI CHARACTER KHO KHAI */ -#define XK_Thai_khokhuat 0x0da3 /* U+0E03 THAI CHARACTER KHO KHUAT */ -#define XK_Thai_khokhwai 0x0da4 /* U+0E04 THAI CHARACTER KHO KHWAI */ -#define XK_Thai_khokhon 0x0da5 /* U+0E05 THAI CHARACTER KHO KHON */ -#define XK_Thai_khorakhang 0x0da6 /* U+0E06 THAI CHARACTER KHO RAKHANG */ -#define XK_Thai_ngongu 0x0da7 /* U+0E07 THAI CHARACTER NGO NGU */ -#define XK_Thai_chochan 0x0da8 /* U+0E08 THAI CHARACTER CHO CHAN */ -#define XK_Thai_choching 0x0da9 /* U+0E09 THAI CHARACTER CHO CHING */ -#define XK_Thai_chochang 0x0daa /* U+0E0A THAI CHARACTER CHO CHANG */ -#define XK_Thai_soso 0x0dab /* U+0E0B THAI CHARACTER SO SO */ -#define XK_Thai_chochoe 0x0dac /* U+0E0C THAI CHARACTER CHO CHOE */ -#define XK_Thai_yoying 0x0dad /* U+0E0D THAI CHARACTER YO YING */ -#define XK_Thai_dochada 0x0dae /* U+0E0E THAI CHARACTER DO CHADA */ -#define XK_Thai_topatak 0x0daf /* U+0E0F THAI CHARACTER TO PATAK */ -#define XK_Thai_thothan 0x0db0 /* U+0E10 THAI CHARACTER THO THAN */ -#define XK_Thai_thonangmontho 0x0db1 /* U+0E11 THAI CHARACTER THO NANGMONTHO */ -#define XK_Thai_thophuthao 0x0db2 /* U+0E12 THAI CHARACTER THO PHUTHAO */ -#define XK_Thai_nonen 0x0db3 /* U+0E13 THAI CHARACTER NO NEN */ -#define XK_Thai_dodek 0x0db4 /* U+0E14 THAI CHARACTER DO DEK */ -#define XK_Thai_totao 0x0db5 /* U+0E15 THAI CHARACTER TO TAO */ -#define XK_Thai_thothung 0x0db6 /* U+0E16 THAI CHARACTER THO THUNG */ -#define XK_Thai_thothahan 0x0db7 /* U+0E17 THAI CHARACTER THO THAHAN */ -#define XK_Thai_thothong 0x0db8 /* U+0E18 THAI CHARACTER THO THONG */ -#define XK_Thai_nonu 0x0db9 /* U+0E19 THAI CHARACTER NO NU */ -#define XK_Thai_bobaimai 0x0dba /* U+0E1A THAI CHARACTER BO BAIMAI */ -#define XK_Thai_popla 0x0dbb /* U+0E1B THAI CHARACTER PO PLA */ -#define XK_Thai_phophung 0x0dbc /* U+0E1C THAI CHARACTER PHO PHUNG */ -#define XK_Thai_fofa 0x0dbd /* U+0E1D THAI CHARACTER FO FA */ -#define XK_Thai_phophan 0x0dbe /* U+0E1E THAI CHARACTER PHO PHAN */ -#define XK_Thai_fofan 0x0dbf /* U+0E1F THAI CHARACTER FO FAN */ -#define XK_Thai_phosamphao 0x0dc0 /* U+0E20 THAI CHARACTER PHO SAMPHAO */ -#define XK_Thai_moma 0x0dc1 /* U+0E21 THAI CHARACTER MO MA */ -#define XK_Thai_yoyak 0x0dc2 /* U+0E22 THAI CHARACTER YO YAK */ -#define XK_Thai_rorua 0x0dc3 /* U+0E23 THAI CHARACTER RO RUA */ -#define XK_Thai_ru 0x0dc4 /* U+0E24 THAI CHARACTER RU */ -#define XK_Thai_loling 0x0dc5 /* U+0E25 THAI CHARACTER LO LING */ -#define XK_Thai_lu 0x0dc6 /* U+0E26 THAI CHARACTER LU */ -#define XK_Thai_wowaen 0x0dc7 /* U+0E27 THAI CHARACTER WO WAEN */ -#define XK_Thai_sosala 0x0dc8 /* U+0E28 THAI CHARACTER SO SALA */ -#define XK_Thai_sorusi 0x0dc9 /* U+0E29 THAI CHARACTER SO RUSI */ -#define XK_Thai_sosua 0x0dca /* U+0E2A THAI CHARACTER SO SUA */ -#define XK_Thai_hohip 0x0dcb /* U+0E2B THAI CHARACTER HO HIP */ -#define XK_Thai_lochula 0x0dcc /* U+0E2C THAI CHARACTER LO CHULA */ -#define XK_Thai_oang 0x0dcd /* U+0E2D THAI CHARACTER O ANG */ -#define XK_Thai_honokhuk 0x0dce /* U+0E2E THAI CHARACTER HO NOKHUK */ -#define XK_Thai_paiyannoi 0x0dcf /* U+0E2F THAI CHARACTER PAIYANNOI */ -#define XK_Thai_saraa 0x0dd0 /* U+0E30 THAI CHARACTER SARA A */ -#define XK_Thai_maihanakat 0x0dd1 /* U+0E31 THAI CHARACTER MAI HAN-AKAT */ -#define XK_Thai_saraaa 0x0dd2 /* U+0E32 THAI CHARACTER SARA AA */ -#define XK_Thai_saraam 0x0dd3 /* U+0E33 THAI CHARACTER SARA AM */ -#define XK_Thai_sarai 0x0dd4 /* U+0E34 THAI CHARACTER SARA I */ -#define XK_Thai_saraii 0x0dd5 /* U+0E35 THAI CHARACTER SARA II */ -#define XK_Thai_saraue 0x0dd6 /* U+0E36 THAI CHARACTER SARA UE */ -#define XK_Thai_sarauee 0x0dd7 /* U+0E37 THAI CHARACTER SARA UEE */ -#define XK_Thai_sarau 0x0dd8 /* U+0E38 THAI CHARACTER SARA U */ -#define XK_Thai_sarauu 0x0dd9 /* U+0E39 THAI CHARACTER SARA UU */ -#define XK_Thai_phinthu 0x0dda /* U+0E3A THAI CHARACTER PHINTHU */ -#define XK_Thai_maihanakat_maitho 0x0dde -#define XK_Thai_baht 0x0ddf /* U+0E3F THAI CURRENCY SYMBOL BAHT */ -#define XK_Thai_sarae 0x0de0 /* U+0E40 THAI CHARACTER SARA E */ -#define XK_Thai_saraae 0x0de1 /* U+0E41 THAI CHARACTER SARA AE */ -#define XK_Thai_sarao 0x0de2 /* U+0E42 THAI CHARACTER SARA O */ -#define XK_Thai_saraaimaimuan 0x0de3 /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */ -#define XK_Thai_saraaimaimalai 0x0de4 /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */ -#define XK_Thai_lakkhangyao 0x0de5 /* U+0E45 THAI CHARACTER LAKKHANGYAO */ -#define XK_Thai_maiyamok 0x0de6 /* U+0E46 THAI CHARACTER MAIYAMOK */ -#define XK_Thai_maitaikhu 0x0de7 /* U+0E47 THAI CHARACTER MAITAIKHU */ -#define XK_Thai_maiek 0x0de8 /* U+0E48 THAI CHARACTER MAI EK */ -#define XK_Thai_maitho 0x0de9 /* U+0E49 THAI CHARACTER MAI THO */ -#define XK_Thai_maitri 0x0dea /* U+0E4A THAI CHARACTER MAI TRI */ -#define XK_Thai_maichattawa 0x0deb /* U+0E4B THAI CHARACTER MAI CHATTAWA */ -#define XK_Thai_thanthakhat 0x0dec /* U+0E4C THAI CHARACTER THANTHAKHAT */ -#define XK_Thai_nikhahit 0x0ded /* U+0E4D THAI CHARACTER NIKHAHIT */ -#define XK_Thai_leksun 0x0df0 /* U+0E50 THAI DIGIT ZERO */ -#define XK_Thai_leknung 0x0df1 /* U+0E51 THAI DIGIT ONE */ -#define XK_Thai_leksong 0x0df2 /* U+0E52 THAI DIGIT TWO */ -#define XK_Thai_leksam 0x0df3 /* U+0E53 THAI DIGIT THREE */ -#define XK_Thai_leksi 0x0df4 /* U+0E54 THAI DIGIT FOUR */ -#define XK_Thai_lekha 0x0df5 /* U+0E55 THAI DIGIT FIVE */ -#define XK_Thai_lekhok 0x0df6 /* U+0E56 THAI DIGIT SIX */ -#define XK_Thai_lekchet 0x0df7 /* U+0E57 THAI DIGIT SEVEN */ -#define XK_Thai_lekpaet 0x0df8 /* U+0E58 THAI DIGIT EIGHT */ -#define XK_Thai_lekkao 0x0df9 /* U+0E59 THAI DIGIT NINE */ -#endif /* XK_THAI */ - -/* - * Korean - * Byte 3 = 0x0e - */ - -#ifdef XK_KOREAN - -#define XK_Hangul 0xff31 /* Hangul start/stop(toggle) */ -#define XK_Hangul_Start 0xff32 /* Hangul start */ -#define XK_Hangul_End 0xff33 /* Hangul end, English start */ -#define XK_Hangul_Hanja 0xff34 /* Start Hangul->Hanja Conversion */ -#define XK_Hangul_Jamo 0xff35 /* Hangul Jamo mode */ -#define XK_Hangul_Romaja 0xff36 /* Hangul Romaja mode */ -#define XK_Hangul_Codeinput 0xff37 /* Hangul code input mode */ -#define XK_Hangul_Jeonja 0xff38 /* Jeonja mode */ -#define XK_Hangul_Banja 0xff39 /* Banja mode */ -#define XK_Hangul_PreHanja 0xff3a /* Pre Hanja conversion */ -#define XK_Hangul_PostHanja 0xff3b /* Post Hanja conversion */ -#define XK_Hangul_SingleCandidate 0xff3c /* Single candidate */ -#define XK_Hangul_MultipleCandidate 0xff3d /* Multiple candidate */ -#define XK_Hangul_PreviousCandidate 0xff3e /* Previous candidate */ -#define XK_Hangul_Special 0xff3f /* Special symbols */ -#define XK_Hangul_switch 0xff7e /* Alias for mode_switch */ - -/* Hangul Consonant Characters */ -#define XK_Hangul_Kiyeog 0x0ea1 -#define XK_Hangul_SsangKiyeog 0x0ea2 -#define XK_Hangul_KiyeogSios 0x0ea3 -#define XK_Hangul_Nieun 0x0ea4 -#define XK_Hangul_NieunJieuj 0x0ea5 -#define XK_Hangul_NieunHieuh 0x0ea6 -#define XK_Hangul_Dikeud 0x0ea7 -#define XK_Hangul_SsangDikeud 0x0ea8 -#define XK_Hangul_Rieul 0x0ea9 -#define XK_Hangul_RieulKiyeog 0x0eaa -#define XK_Hangul_RieulMieum 0x0eab -#define XK_Hangul_RieulPieub 0x0eac -#define XK_Hangul_RieulSios 0x0ead -#define XK_Hangul_RieulTieut 0x0eae -#define XK_Hangul_RieulPhieuf 0x0eaf -#define XK_Hangul_RieulHieuh 0x0eb0 -#define XK_Hangul_Mieum 0x0eb1 -#define XK_Hangul_Pieub 0x0eb2 -#define XK_Hangul_SsangPieub 0x0eb3 -#define XK_Hangul_PieubSios 0x0eb4 -#define XK_Hangul_Sios 0x0eb5 -#define XK_Hangul_SsangSios 0x0eb6 -#define XK_Hangul_Ieung 0x0eb7 -#define XK_Hangul_Jieuj 0x0eb8 -#define XK_Hangul_SsangJieuj 0x0eb9 -#define XK_Hangul_Cieuc 0x0eba -#define XK_Hangul_Khieuq 0x0ebb -#define XK_Hangul_Tieut 0x0ebc -#define XK_Hangul_Phieuf 0x0ebd -#define XK_Hangul_Hieuh 0x0ebe - -/* Hangul Vowel Characters */ -#define XK_Hangul_A 0x0ebf -#define XK_Hangul_AE 0x0ec0 -#define XK_Hangul_YA 0x0ec1 -#define XK_Hangul_YAE 0x0ec2 -#define XK_Hangul_EO 0x0ec3 -#define XK_Hangul_E 0x0ec4 -#define XK_Hangul_YEO 0x0ec5 -#define XK_Hangul_YE 0x0ec6 -#define XK_Hangul_O 0x0ec7 -#define XK_Hangul_WA 0x0ec8 -#define XK_Hangul_WAE 0x0ec9 -#define XK_Hangul_OE 0x0eca -#define XK_Hangul_YO 0x0ecb -#define XK_Hangul_U 0x0ecc -#define XK_Hangul_WEO 0x0ecd -#define XK_Hangul_WE 0x0ece -#define XK_Hangul_WI 0x0ecf -#define XK_Hangul_YU 0x0ed0 -#define XK_Hangul_EU 0x0ed1 -#define XK_Hangul_YI 0x0ed2 -#define XK_Hangul_I 0x0ed3 - -/* Hangul syllable-final (JongSeong) Characters */ -#define XK_Hangul_J_Kiyeog 0x0ed4 -#define XK_Hangul_J_SsangKiyeog 0x0ed5 -#define XK_Hangul_J_KiyeogSios 0x0ed6 -#define XK_Hangul_J_Nieun 0x0ed7 -#define XK_Hangul_J_NieunJieuj 0x0ed8 -#define XK_Hangul_J_NieunHieuh 0x0ed9 -#define XK_Hangul_J_Dikeud 0x0eda -#define XK_Hangul_J_Rieul 0x0edb -#define XK_Hangul_J_RieulKiyeog 0x0edc -#define XK_Hangul_J_RieulMieum 0x0edd -#define XK_Hangul_J_RieulPieub 0x0ede -#define XK_Hangul_J_RieulSios 0x0edf -#define XK_Hangul_J_RieulTieut 0x0ee0 -#define XK_Hangul_J_RieulPhieuf 0x0ee1 -#define XK_Hangul_J_RieulHieuh 0x0ee2 -#define XK_Hangul_J_Mieum 0x0ee3 -#define XK_Hangul_J_Pieub 0x0ee4 -#define XK_Hangul_J_PieubSios 0x0ee5 -#define XK_Hangul_J_Sios 0x0ee6 -#define XK_Hangul_J_SsangSios 0x0ee7 -#define XK_Hangul_J_Ieung 0x0ee8 -#define XK_Hangul_J_Jieuj 0x0ee9 -#define XK_Hangul_J_Cieuc 0x0eea -#define XK_Hangul_J_Khieuq 0x0eeb -#define XK_Hangul_J_Tieut 0x0eec -#define XK_Hangul_J_Phieuf 0x0eed -#define XK_Hangul_J_Hieuh 0x0eee - -/* Ancient Hangul Consonant Characters */ -#define XK_Hangul_RieulYeorinHieuh 0x0eef -#define XK_Hangul_SunkyeongeumMieum 0x0ef0 -#define XK_Hangul_SunkyeongeumPieub 0x0ef1 -#define XK_Hangul_PanSios 0x0ef2 -#define XK_Hangul_KkogjiDalrinIeung 0x0ef3 -#define XK_Hangul_SunkyeongeumPhieuf 0x0ef4 -#define XK_Hangul_YeorinHieuh 0x0ef5 - -/* Ancient Hangul Vowel Characters */ -#define XK_Hangul_AraeA 0x0ef6 -#define XK_Hangul_AraeAE 0x0ef7 - -/* Ancient Hangul syllable-final (JongSeong) Characters */ -#define XK_Hangul_J_PanSios 0x0ef8 -#define XK_Hangul_J_KkogjiDalrinIeung 0x0ef9 -#define XK_Hangul_J_YeorinHieuh 0x0efa - -/* Korean currency symbol */ -#define XK_Korean_Won 0x0eff /*(U+20A9 WON SIGN)*/ - -#endif /* XK_KOREAN */ - -/* - * Armenian - */ - -#ifdef XK_ARMENIAN -#define XK_Armenian_ligature_ew 0x1000587 /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */ -#define XK_Armenian_full_stop 0x1000589 /* U+0589 ARMENIAN FULL STOP */ -#define XK_Armenian_verjaket 0x1000589 /* U+0589 ARMENIAN FULL STOP */ -#define XK_Armenian_separation_mark 0x100055d /* U+055D ARMENIAN COMMA */ -#define XK_Armenian_but 0x100055d /* U+055D ARMENIAN COMMA */ -#define XK_Armenian_hyphen 0x100058a /* U+058A ARMENIAN HYPHEN */ -#define XK_Armenian_yentamna 0x100058a /* U+058A ARMENIAN HYPHEN */ -#define XK_Armenian_exclam 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */ -#define XK_Armenian_amanak 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */ -#define XK_Armenian_accent 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */ -#define XK_Armenian_shesht 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */ -#define XK_Armenian_question 0x100055e /* U+055E ARMENIAN QUESTION MARK */ -#define XK_Armenian_paruyk 0x100055e /* U+055E ARMENIAN QUESTION MARK */ -#define XK_Armenian_AYB 0x1000531 /* U+0531 ARMENIAN CAPITAL LETTER AYB */ -#define XK_Armenian_ayb 0x1000561 /* U+0561 ARMENIAN SMALL LETTER AYB */ -#define XK_Armenian_BEN 0x1000532 /* U+0532 ARMENIAN CAPITAL LETTER BEN */ -#define XK_Armenian_ben 0x1000562 /* U+0562 ARMENIAN SMALL LETTER BEN */ -#define XK_Armenian_GIM 0x1000533 /* U+0533 ARMENIAN CAPITAL LETTER GIM */ -#define XK_Armenian_gim 0x1000563 /* U+0563 ARMENIAN SMALL LETTER GIM */ -#define XK_Armenian_DA 0x1000534 /* U+0534 ARMENIAN CAPITAL LETTER DA */ -#define XK_Armenian_da 0x1000564 /* U+0564 ARMENIAN SMALL LETTER DA */ -#define XK_Armenian_YECH 0x1000535 /* U+0535 ARMENIAN CAPITAL LETTER ECH */ -#define XK_Armenian_yech 0x1000565 /* U+0565 ARMENIAN SMALL LETTER ECH */ -#define XK_Armenian_ZA 0x1000536 /* U+0536 ARMENIAN CAPITAL LETTER ZA */ -#define XK_Armenian_za 0x1000566 /* U+0566 ARMENIAN SMALL LETTER ZA */ -#define XK_Armenian_E 0x1000537 /* U+0537 ARMENIAN CAPITAL LETTER EH */ -#define XK_Armenian_e 0x1000567 /* U+0567 ARMENIAN SMALL LETTER EH */ -#define XK_Armenian_AT 0x1000538 /* U+0538 ARMENIAN CAPITAL LETTER ET */ -#define XK_Armenian_at 0x1000568 /* U+0568 ARMENIAN SMALL LETTER ET */ -#define XK_Armenian_TO 0x1000539 /* U+0539 ARMENIAN CAPITAL LETTER TO */ -#define XK_Armenian_to 0x1000569 /* U+0569 ARMENIAN SMALL LETTER TO */ -#define XK_Armenian_ZHE 0x100053a /* U+053A ARMENIAN CAPITAL LETTER ZHE */ -#define XK_Armenian_zhe 0x100056a /* U+056A ARMENIAN SMALL LETTER ZHE */ -#define XK_Armenian_INI 0x100053b /* U+053B ARMENIAN CAPITAL LETTER INI */ -#define XK_Armenian_ini 0x100056b /* U+056B ARMENIAN SMALL LETTER INI */ -#define XK_Armenian_LYUN 0x100053c /* U+053C ARMENIAN CAPITAL LETTER LIWN */ -#define XK_Armenian_lyun 0x100056c /* U+056C ARMENIAN SMALL LETTER LIWN */ -#define XK_Armenian_KHE 0x100053d /* U+053D ARMENIAN CAPITAL LETTER XEH */ -#define XK_Armenian_khe 0x100056d /* U+056D ARMENIAN SMALL LETTER XEH */ -#define XK_Armenian_TSA 0x100053e /* U+053E ARMENIAN CAPITAL LETTER CA */ -#define XK_Armenian_tsa 0x100056e /* U+056E ARMENIAN SMALL LETTER CA */ -#define XK_Armenian_KEN 0x100053f /* U+053F ARMENIAN CAPITAL LETTER KEN */ -#define XK_Armenian_ken 0x100056f /* U+056F ARMENIAN SMALL LETTER KEN */ -#define XK_Armenian_HO 0x1000540 /* U+0540 ARMENIAN CAPITAL LETTER HO */ -#define XK_Armenian_ho 0x1000570 /* U+0570 ARMENIAN SMALL LETTER HO */ -#define XK_Armenian_DZA 0x1000541 /* U+0541 ARMENIAN CAPITAL LETTER JA */ -#define XK_Armenian_dza 0x1000571 /* U+0571 ARMENIAN SMALL LETTER JA */ -#define XK_Armenian_GHAT 0x1000542 /* U+0542 ARMENIAN CAPITAL LETTER GHAD */ -#define XK_Armenian_ghat 0x1000572 /* U+0572 ARMENIAN SMALL LETTER GHAD */ -#define XK_Armenian_TCHE 0x1000543 /* U+0543 ARMENIAN CAPITAL LETTER CHEH */ -#define XK_Armenian_tche 0x1000573 /* U+0573 ARMENIAN SMALL LETTER CHEH */ -#define XK_Armenian_MEN 0x1000544 /* U+0544 ARMENIAN CAPITAL LETTER MEN */ -#define XK_Armenian_men 0x1000574 /* U+0574 ARMENIAN SMALL LETTER MEN */ -#define XK_Armenian_HI 0x1000545 /* U+0545 ARMENIAN CAPITAL LETTER YI */ -#define XK_Armenian_hi 0x1000575 /* U+0575 ARMENIAN SMALL LETTER YI */ -#define XK_Armenian_NU 0x1000546 /* U+0546 ARMENIAN CAPITAL LETTER NOW */ -#define XK_Armenian_nu 0x1000576 /* U+0576 ARMENIAN SMALL LETTER NOW */ -#define XK_Armenian_SHA 0x1000547 /* U+0547 ARMENIAN CAPITAL LETTER SHA */ -#define XK_Armenian_sha 0x1000577 /* U+0577 ARMENIAN SMALL LETTER SHA */ -#define XK_Armenian_VO 0x1000548 /* U+0548 ARMENIAN CAPITAL LETTER VO */ -#define XK_Armenian_vo 0x1000578 /* U+0578 ARMENIAN SMALL LETTER VO */ -#define XK_Armenian_CHA 0x1000549 /* U+0549 ARMENIAN CAPITAL LETTER CHA */ -#define XK_Armenian_cha 0x1000579 /* U+0579 ARMENIAN SMALL LETTER CHA */ -#define XK_Armenian_PE 0x100054a /* U+054A ARMENIAN CAPITAL LETTER PEH */ -#define XK_Armenian_pe 0x100057a /* U+057A ARMENIAN SMALL LETTER PEH */ -#define XK_Armenian_JE 0x100054b /* U+054B ARMENIAN CAPITAL LETTER JHEH */ -#define XK_Armenian_je 0x100057b /* U+057B ARMENIAN SMALL LETTER JHEH */ -#define XK_Armenian_RA 0x100054c /* U+054C ARMENIAN CAPITAL LETTER RA */ -#define XK_Armenian_ra 0x100057c /* U+057C ARMENIAN SMALL LETTER RA */ -#define XK_Armenian_SE 0x100054d /* U+054D ARMENIAN CAPITAL LETTER SEH */ -#define XK_Armenian_se 0x100057d /* U+057D ARMENIAN SMALL LETTER SEH */ -#define XK_Armenian_VEV 0x100054e /* U+054E ARMENIAN CAPITAL LETTER VEW */ -#define XK_Armenian_vev 0x100057e /* U+057E ARMENIAN SMALL LETTER VEW */ -#define XK_Armenian_TYUN 0x100054f /* U+054F ARMENIAN CAPITAL LETTER TIWN */ -#define XK_Armenian_tyun 0x100057f /* U+057F ARMENIAN SMALL LETTER TIWN */ -#define XK_Armenian_RE 0x1000550 /* U+0550 ARMENIAN CAPITAL LETTER REH */ -#define XK_Armenian_re 0x1000580 /* U+0580 ARMENIAN SMALL LETTER REH */ -#define XK_Armenian_TSO 0x1000551 /* U+0551 ARMENIAN CAPITAL LETTER CO */ -#define XK_Armenian_tso 0x1000581 /* U+0581 ARMENIAN SMALL LETTER CO */ -#define XK_Armenian_VYUN 0x1000552 /* U+0552 ARMENIAN CAPITAL LETTER YIWN */ -#define XK_Armenian_vyun 0x1000582 /* U+0582 ARMENIAN SMALL LETTER YIWN */ -#define XK_Armenian_PYUR 0x1000553 /* U+0553 ARMENIAN CAPITAL LETTER PIWR */ -#define XK_Armenian_pyur 0x1000583 /* U+0583 ARMENIAN SMALL LETTER PIWR */ -#define XK_Armenian_KE 0x1000554 /* U+0554 ARMENIAN CAPITAL LETTER KEH */ -#define XK_Armenian_ke 0x1000584 /* U+0584 ARMENIAN SMALL LETTER KEH */ -#define XK_Armenian_O 0x1000555 /* U+0555 ARMENIAN CAPITAL LETTER OH */ -#define XK_Armenian_o 0x1000585 /* U+0585 ARMENIAN SMALL LETTER OH */ -#define XK_Armenian_FE 0x1000556 /* U+0556 ARMENIAN CAPITAL LETTER FEH */ -#define XK_Armenian_fe 0x1000586 /* U+0586 ARMENIAN SMALL LETTER FEH */ -#define XK_Armenian_apostrophe 0x100055a /* U+055A ARMENIAN APOSTROPHE */ -#endif /* XK_ARMENIAN */ - -/* - * Georgian - */ - -#ifdef XK_GEORGIAN -#define XK_Georgian_an 0x10010d0 /* U+10D0 GEORGIAN LETTER AN */ -#define XK_Georgian_ban 0x10010d1 /* U+10D1 GEORGIAN LETTER BAN */ -#define XK_Georgian_gan 0x10010d2 /* U+10D2 GEORGIAN LETTER GAN */ -#define XK_Georgian_don 0x10010d3 /* U+10D3 GEORGIAN LETTER DON */ -#define XK_Georgian_en 0x10010d4 /* U+10D4 GEORGIAN LETTER EN */ -#define XK_Georgian_vin 0x10010d5 /* U+10D5 GEORGIAN LETTER VIN */ -#define XK_Georgian_zen 0x10010d6 /* U+10D6 GEORGIAN LETTER ZEN */ -#define XK_Georgian_tan 0x10010d7 /* U+10D7 GEORGIAN LETTER TAN */ -#define XK_Georgian_in 0x10010d8 /* U+10D8 GEORGIAN LETTER IN */ -#define XK_Georgian_kan 0x10010d9 /* U+10D9 GEORGIAN LETTER KAN */ -#define XK_Georgian_las 0x10010da /* U+10DA GEORGIAN LETTER LAS */ -#define XK_Georgian_man 0x10010db /* U+10DB GEORGIAN LETTER MAN */ -#define XK_Georgian_nar 0x10010dc /* U+10DC GEORGIAN LETTER NAR */ -#define XK_Georgian_on 0x10010dd /* U+10DD GEORGIAN LETTER ON */ -#define XK_Georgian_par 0x10010de /* U+10DE GEORGIAN LETTER PAR */ -#define XK_Georgian_zhar 0x10010df /* U+10DF GEORGIAN LETTER ZHAR */ -#define XK_Georgian_rae 0x10010e0 /* U+10E0 GEORGIAN LETTER RAE */ -#define XK_Georgian_san 0x10010e1 /* U+10E1 GEORGIAN LETTER SAN */ -#define XK_Georgian_tar 0x10010e2 /* U+10E2 GEORGIAN LETTER TAR */ -#define XK_Georgian_un 0x10010e3 /* U+10E3 GEORGIAN LETTER UN */ -#define XK_Georgian_phar 0x10010e4 /* U+10E4 GEORGIAN LETTER PHAR */ -#define XK_Georgian_khar 0x10010e5 /* U+10E5 GEORGIAN LETTER KHAR */ -#define XK_Georgian_ghan 0x10010e6 /* U+10E6 GEORGIAN LETTER GHAN */ -#define XK_Georgian_qar 0x10010e7 /* U+10E7 GEORGIAN LETTER QAR */ -#define XK_Georgian_shin 0x10010e8 /* U+10E8 GEORGIAN LETTER SHIN */ -#define XK_Georgian_chin 0x10010e9 /* U+10E9 GEORGIAN LETTER CHIN */ -#define XK_Georgian_can 0x10010ea /* U+10EA GEORGIAN LETTER CAN */ -#define XK_Georgian_jil 0x10010eb /* U+10EB GEORGIAN LETTER JIL */ -#define XK_Georgian_cil 0x10010ec /* U+10EC GEORGIAN LETTER CIL */ -#define XK_Georgian_char 0x10010ed /* U+10ED GEORGIAN LETTER CHAR */ -#define XK_Georgian_xan 0x10010ee /* U+10EE GEORGIAN LETTER XAN */ -#define XK_Georgian_jhan 0x10010ef /* U+10EF GEORGIAN LETTER JHAN */ -#define XK_Georgian_hae 0x10010f0 /* U+10F0 GEORGIAN LETTER HAE */ -#define XK_Georgian_he 0x10010f1 /* U+10F1 GEORGIAN LETTER HE */ -#define XK_Georgian_hie 0x10010f2 /* U+10F2 GEORGIAN LETTER HIE */ -#define XK_Georgian_we 0x10010f3 /* U+10F3 GEORGIAN LETTER WE */ -#define XK_Georgian_har 0x10010f4 /* U+10F4 GEORGIAN LETTER HAR */ -#define XK_Georgian_hoe 0x10010f5 /* U+10F5 GEORGIAN LETTER HOE */ -#define XK_Georgian_fi 0x10010f6 /* U+10F6 GEORGIAN LETTER FI */ -#endif /* XK_GEORGIAN */ - -/* - * Azeri (and other Turkic or Caucasian languages) - */ - -#ifdef XK_CAUCASUS -/* latin */ -#define XK_Xabovedot 0x1001e8a /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */ -#define XK_Ibreve 0x100012c /* U+012C LATIN CAPITAL LETTER I WITH BREVE */ -#define XK_Zstroke 0x10001b5 /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */ -#define XK_Gcaron 0x10001e6 /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */ -#define XK_Ocaron 0x10001d1 /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */ -#define XK_Obarred 0x100019f /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */ -#define XK_xabovedot 0x1001e8b /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */ -#define XK_ibreve 0x100012d /* U+012D LATIN SMALL LETTER I WITH BREVE */ -#define XK_zstroke 0x10001b6 /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */ -#define XK_gcaron 0x10001e7 /* U+01E7 LATIN SMALL LETTER G WITH CARON */ -#define XK_ocaron 0x10001d2 /* U+01D2 LATIN SMALL LETTER O WITH CARON */ -#define XK_obarred 0x1000275 /* U+0275 LATIN SMALL LETTER BARRED O */ -#define XK_SCHWA 0x100018f /* U+018F LATIN CAPITAL LETTER SCHWA */ -#define XK_schwa 0x1000259 /* U+0259 LATIN SMALL LETTER SCHWA */ -#define XK_EZH 0x10001b7 /* U+01B7 LATIN CAPITAL LETTER EZH */ -#define XK_ezh 0x1000292 /* U+0292 LATIN SMALL LETTER EZH */ -/* those are not really Caucasus */ -/* For Inupiak */ -#define XK_Lbelowdot 0x1001e36 /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */ -#define XK_lbelowdot 0x1001e37 /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */ -#endif /* XK_CAUCASUS */ - -/* - * Vietnamese - */ - -#ifdef XK_VIETNAMESE -#define XK_Abelowdot 0x1001ea0 /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */ -#define XK_abelowdot 0x1001ea1 /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */ -#define XK_Ahook 0x1001ea2 /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */ -#define XK_ahook 0x1001ea3 /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */ -#define XK_Acircumflexacute 0x1001ea4 /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */ -#define XK_acircumflexacute 0x1001ea5 /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */ -#define XK_Acircumflexgrave 0x1001ea6 /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */ -#define XK_acircumflexgrave 0x1001ea7 /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */ -#define XK_Acircumflexhook 0x1001ea8 /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */ -#define XK_acircumflexhook 0x1001ea9 /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */ -#define XK_Acircumflextilde 0x1001eaa /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */ -#define XK_acircumflextilde 0x1001eab /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */ -#define XK_Acircumflexbelowdot 0x1001eac /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */ -#define XK_acircumflexbelowdot 0x1001ead /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */ -#define XK_Abreveacute 0x1001eae /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */ -#define XK_abreveacute 0x1001eaf /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */ -#define XK_Abrevegrave 0x1001eb0 /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */ -#define XK_abrevegrave 0x1001eb1 /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */ -#define XK_Abrevehook 0x1001eb2 /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */ -#define XK_abrevehook 0x1001eb3 /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */ -#define XK_Abrevetilde 0x1001eb4 /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */ -#define XK_abrevetilde 0x1001eb5 /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */ -#define XK_Abrevebelowdot 0x1001eb6 /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */ -#define XK_abrevebelowdot 0x1001eb7 /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */ -#define XK_Ebelowdot 0x1001eb8 /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */ -#define XK_ebelowdot 0x1001eb9 /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */ -#define XK_Ehook 0x1001eba /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */ -#define XK_ehook 0x1001ebb /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */ -#define XK_Etilde 0x1001ebc /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */ -#define XK_etilde 0x1001ebd /* U+1EBD LATIN SMALL LETTER E WITH TILDE */ -#define XK_Ecircumflexacute 0x1001ebe /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */ -#define XK_ecircumflexacute 0x1001ebf /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */ -#define XK_Ecircumflexgrave 0x1001ec0 /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */ -#define XK_ecircumflexgrave 0x1001ec1 /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */ -#define XK_Ecircumflexhook 0x1001ec2 /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */ -#define XK_ecircumflexhook 0x1001ec3 /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */ -#define XK_Ecircumflextilde 0x1001ec4 /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */ -#define XK_ecircumflextilde 0x1001ec5 /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */ -#define XK_Ecircumflexbelowdot 0x1001ec6 /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */ -#define XK_ecircumflexbelowdot 0x1001ec7 /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */ -#define XK_Ihook 0x1001ec8 /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */ -#define XK_ihook 0x1001ec9 /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */ -#define XK_Ibelowdot 0x1001eca /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */ -#define XK_ibelowdot 0x1001ecb /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */ -#define XK_Obelowdot 0x1001ecc /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */ -#define XK_obelowdot 0x1001ecd /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */ -#define XK_Ohook 0x1001ece /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */ -#define XK_ohook 0x1001ecf /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */ -#define XK_Ocircumflexacute 0x1001ed0 /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */ -#define XK_ocircumflexacute 0x1001ed1 /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */ -#define XK_Ocircumflexgrave 0x1001ed2 /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */ -#define XK_ocircumflexgrave 0x1001ed3 /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */ -#define XK_Ocircumflexhook 0x1001ed4 /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */ -#define XK_ocircumflexhook 0x1001ed5 /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */ -#define XK_Ocircumflextilde 0x1001ed6 /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */ -#define XK_ocircumflextilde 0x1001ed7 /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */ -#define XK_Ocircumflexbelowdot 0x1001ed8 /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */ -#define XK_ocircumflexbelowdot 0x1001ed9 /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */ -#define XK_Ohornacute 0x1001eda /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */ -#define XK_ohornacute 0x1001edb /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */ -#define XK_Ohorngrave 0x1001edc /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */ -#define XK_ohorngrave 0x1001edd /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */ -#define XK_Ohornhook 0x1001ede /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */ -#define XK_ohornhook 0x1001edf /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */ -#define XK_Ohorntilde 0x1001ee0 /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */ -#define XK_ohorntilde 0x1001ee1 /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */ -#define XK_Ohornbelowdot 0x1001ee2 /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */ -#define XK_ohornbelowdot 0x1001ee3 /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */ -#define XK_Ubelowdot 0x1001ee4 /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */ -#define XK_ubelowdot 0x1001ee5 /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */ -#define XK_Uhook 0x1001ee6 /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */ -#define XK_uhook 0x1001ee7 /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */ -#define XK_Uhornacute 0x1001ee8 /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */ -#define XK_uhornacute 0x1001ee9 /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */ -#define XK_Uhorngrave 0x1001eea /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */ -#define XK_uhorngrave 0x1001eeb /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */ -#define XK_Uhornhook 0x1001eec /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */ -#define XK_uhornhook 0x1001eed /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */ -#define XK_Uhorntilde 0x1001eee /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */ -#define XK_uhorntilde 0x1001eef /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */ -#define XK_Uhornbelowdot 0x1001ef0 /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */ -#define XK_uhornbelowdot 0x1001ef1 /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */ -#define XK_Ybelowdot 0x1001ef4 /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */ -#define XK_ybelowdot 0x1001ef5 /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */ -#define XK_Yhook 0x1001ef6 /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */ -#define XK_yhook 0x1001ef7 /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */ -#define XK_Ytilde 0x1001ef8 /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */ -#define XK_ytilde 0x1001ef9 /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */ -#define XK_Ohorn 0x10001a0 /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */ -#define XK_ohorn 0x10001a1 /* U+01A1 LATIN SMALL LETTER O WITH HORN */ -#define XK_Uhorn 0x10001af /* U+01AF LATIN CAPITAL LETTER U WITH HORN */ -#define XK_uhorn 0x10001b0 /* U+01B0 LATIN SMALL LETTER U WITH HORN */ - -#endif /* XK_VIETNAMESE */ - -#ifdef XK_CURRENCY -#define XK_EcuSign 0x10020a0 /* U+20A0 EURO-CURRENCY SIGN */ -#define XK_ColonSign 0x10020a1 /* U+20A1 COLON SIGN */ -#define XK_CruzeiroSign 0x10020a2 /* U+20A2 CRUZEIRO SIGN */ -#define XK_FFrancSign 0x10020a3 /* U+20A3 FRENCH FRANC SIGN */ -#define XK_LiraSign 0x10020a4 /* U+20A4 LIRA SIGN */ -#define XK_MillSign 0x10020a5 /* U+20A5 MILL SIGN */ -#define XK_NairaSign 0x10020a6 /* U+20A6 NAIRA SIGN */ -#define XK_PesetaSign 0x10020a7 /* U+20A7 PESETA SIGN */ -#define XK_RupeeSign 0x10020a8 /* U+20A8 RUPEE SIGN */ -#define XK_WonSign 0x10020a9 /* U+20A9 WON SIGN */ -#define XK_NewSheqelSign 0x10020aa /* U+20AA NEW SHEQEL SIGN */ -#define XK_DongSign 0x10020ab /* U+20AB DONG SIGN */ -#define XK_EuroSign 0x20ac /* U+20AC EURO SIGN */ -#endif /* XK_CURRENCY */ - -#ifdef XK_MATHEMATICAL -/* one, two and three are defined above. */ -#define XK_zerosuperior 0x1002070 /* U+2070 SUPERSCRIPT ZERO */ -#define XK_foursuperior 0x1002074 /* U+2074 SUPERSCRIPT FOUR */ -#define XK_fivesuperior 0x1002075 /* U+2075 SUPERSCRIPT FIVE */ -#define XK_sixsuperior 0x1002076 /* U+2076 SUPERSCRIPT SIX */ -#define XK_sevensuperior 0x1002077 /* U+2077 SUPERSCRIPT SEVEN */ -#define XK_eightsuperior 0x1002078 /* U+2078 SUPERSCRIPT EIGHT */ -#define XK_ninesuperior 0x1002079 /* U+2079 SUPERSCRIPT NINE */ -#define XK_zerosubscript 0x1002080 /* U+2080 SUBSCRIPT ZERO */ -#define XK_onesubscript 0x1002081 /* U+2081 SUBSCRIPT ONE */ -#define XK_twosubscript 0x1002082 /* U+2082 SUBSCRIPT TWO */ -#define XK_threesubscript 0x1002083 /* U+2083 SUBSCRIPT THREE */ -#define XK_foursubscript 0x1002084 /* U+2084 SUBSCRIPT FOUR */ -#define XK_fivesubscript 0x1002085 /* U+2085 SUBSCRIPT FIVE */ -#define XK_sixsubscript 0x1002086 /* U+2086 SUBSCRIPT SIX */ -#define XK_sevensubscript 0x1002087 /* U+2087 SUBSCRIPT SEVEN */ -#define XK_eightsubscript 0x1002088 /* U+2088 SUBSCRIPT EIGHT */ -#define XK_ninesubscript 0x1002089 /* U+2089 SUBSCRIPT NINE */ -#define XK_partdifferential 0x1002202 /* U+2202 PARTIAL DIFFERENTIAL */ -#define XK_emptyset 0x1002205 /* U+2205 NULL SET */ -#define XK_elementof 0x1002208 /* U+2208 ELEMENT OF */ -#define XK_notelementof 0x1002209 /* U+2209 NOT AN ELEMENT OF */ -#define XK_containsas 0x100220B /* U+220B CONTAINS AS MEMBER */ -#define XK_squareroot 0x100221A /* U+221A SQUARE ROOT */ -#define XK_cuberoot 0x100221B /* U+221B CUBE ROOT */ -#define XK_fourthroot 0x100221C /* U+221C FOURTH ROOT */ -#define XK_dintegral 0x100222C /* U+222C DOUBLE INTEGRAL */ -#define XK_tintegral 0x100222D /* U+222D TRIPLE INTEGRAL */ -#define XK_because 0x1002235 /* U+2235 BECAUSE */ -#define XK_approxeq 0x1002248 /* U+2245 ALMOST EQUAL TO */ -#define XK_notapproxeq 0x1002247 /* U+2247 NOT ALMOST EQUAL TO */ -#define XK_notidentical 0x1002262 /* U+2262 NOT IDENTICAL TO */ -#define XK_stricteq 0x1002263 /* U+2263 STRICTLY EQUIVALENT TO */ -#endif /* XK_MATHEMATICAL */ - -#ifdef XK_BRAILLE -#define XK_braille_dot_1 0xfff1 -#define XK_braille_dot_2 0xfff2 -#define XK_braille_dot_3 0xfff3 -#define XK_braille_dot_4 0xfff4 -#define XK_braille_dot_5 0xfff5 -#define XK_braille_dot_6 0xfff6 -#define XK_braille_dot_7 0xfff7 -#define XK_braille_dot_8 0xfff8 -#define XK_braille_dot_9 0xfff9 -#define XK_braille_dot_10 0xfffa -#define XK_braille_blank 0x1002800 /* U+2800 BRAILLE PATTERN BLANK */ -#define XK_braille_dots_1 0x1002801 /* U+2801 BRAILLE PATTERN DOTS-1 */ -#define XK_braille_dots_2 0x1002802 /* U+2802 BRAILLE PATTERN DOTS-2 */ -#define XK_braille_dots_12 0x1002803 /* U+2803 BRAILLE PATTERN DOTS-12 */ -#define XK_braille_dots_3 0x1002804 /* U+2804 BRAILLE PATTERN DOTS-3 */ -#define XK_braille_dots_13 0x1002805 /* U+2805 BRAILLE PATTERN DOTS-13 */ -#define XK_braille_dots_23 0x1002806 /* U+2806 BRAILLE PATTERN DOTS-23 */ -#define XK_braille_dots_123 0x1002807 /* U+2807 BRAILLE PATTERN DOTS-123 */ -#define XK_braille_dots_4 0x1002808 /* U+2808 BRAILLE PATTERN DOTS-4 */ -#define XK_braille_dots_14 0x1002809 /* U+2809 BRAILLE PATTERN DOTS-14 */ -#define XK_braille_dots_24 0x100280a /* U+280a BRAILLE PATTERN DOTS-24 */ -#define XK_braille_dots_124 0x100280b /* U+280b BRAILLE PATTERN DOTS-124 */ -#define XK_braille_dots_34 0x100280c /* U+280c BRAILLE PATTERN DOTS-34 */ -#define XK_braille_dots_134 0x100280d /* U+280d BRAILLE PATTERN DOTS-134 */ -#define XK_braille_dots_234 0x100280e /* U+280e BRAILLE PATTERN DOTS-234 */ -#define XK_braille_dots_1234 0x100280f /* U+280f BRAILLE PATTERN DOTS-1234 */ -#define XK_braille_dots_5 0x1002810 /* U+2810 BRAILLE PATTERN DOTS-5 */ -#define XK_braille_dots_15 0x1002811 /* U+2811 BRAILLE PATTERN DOTS-15 */ -#define XK_braille_dots_25 0x1002812 /* U+2812 BRAILLE PATTERN DOTS-25 */ -#define XK_braille_dots_125 0x1002813 /* U+2813 BRAILLE PATTERN DOTS-125 */ -#define XK_braille_dots_35 0x1002814 /* U+2814 BRAILLE PATTERN DOTS-35 */ -#define XK_braille_dots_135 0x1002815 /* U+2815 BRAILLE PATTERN DOTS-135 */ -#define XK_braille_dots_235 0x1002816 /* U+2816 BRAILLE PATTERN DOTS-235 */ -#define XK_braille_dots_1235 0x1002817 /* U+2817 BRAILLE PATTERN DOTS-1235 */ -#define XK_braille_dots_45 0x1002818 /* U+2818 BRAILLE PATTERN DOTS-45 */ -#define XK_braille_dots_145 0x1002819 /* U+2819 BRAILLE PATTERN DOTS-145 */ -#define XK_braille_dots_245 0x100281a /* U+281a BRAILLE PATTERN DOTS-245 */ -#define XK_braille_dots_1245 0x100281b /* U+281b BRAILLE PATTERN DOTS-1245 */ -#define XK_braille_dots_345 0x100281c /* U+281c BRAILLE PATTERN DOTS-345 */ -#define XK_braille_dots_1345 0x100281d /* U+281d BRAILLE PATTERN DOTS-1345 */ -#define XK_braille_dots_2345 0x100281e /* U+281e BRAILLE PATTERN DOTS-2345 */ -#define XK_braille_dots_12345 0x100281f /* U+281f BRAILLE PATTERN DOTS-12345 */ -#define XK_braille_dots_6 0x1002820 /* U+2820 BRAILLE PATTERN DOTS-6 */ -#define XK_braille_dots_16 0x1002821 /* U+2821 BRAILLE PATTERN DOTS-16 */ -#define XK_braille_dots_26 0x1002822 /* U+2822 BRAILLE PATTERN DOTS-26 */ -#define XK_braille_dots_126 0x1002823 /* U+2823 BRAILLE PATTERN DOTS-126 */ -#define XK_braille_dots_36 0x1002824 /* U+2824 BRAILLE PATTERN DOTS-36 */ -#define XK_braille_dots_136 0x1002825 /* U+2825 BRAILLE PATTERN DOTS-136 */ -#define XK_braille_dots_236 0x1002826 /* U+2826 BRAILLE PATTERN DOTS-236 */ -#define XK_braille_dots_1236 0x1002827 /* U+2827 BRAILLE PATTERN DOTS-1236 */ -#define XK_braille_dots_46 0x1002828 /* U+2828 BRAILLE PATTERN DOTS-46 */ -#define XK_braille_dots_146 0x1002829 /* U+2829 BRAILLE PATTERN DOTS-146 */ -#define XK_braille_dots_246 0x100282a /* U+282a BRAILLE PATTERN DOTS-246 */ -#define XK_braille_dots_1246 0x100282b /* U+282b BRAILLE PATTERN DOTS-1246 */ -#define XK_braille_dots_346 0x100282c /* U+282c BRAILLE PATTERN DOTS-346 */ -#define XK_braille_dots_1346 0x100282d /* U+282d BRAILLE PATTERN DOTS-1346 */ -#define XK_braille_dots_2346 0x100282e /* U+282e BRAILLE PATTERN DOTS-2346 */ -#define XK_braille_dots_12346 0x100282f /* U+282f BRAILLE PATTERN DOTS-12346 */ -#define XK_braille_dots_56 0x1002830 /* U+2830 BRAILLE PATTERN DOTS-56 */ -#define XK_braille_dots_156 0x1002831 /* U+2831 BRAILLE PATTERN DOTS-156 */ -#define XK_braille_dots_256 0x1002832 /* U+2832 BRAILLE PATTERN DOTS-256 */ -#define XK_braille_dots_1256 0x1002833 /* U+2833 BRAILLE PATTERN DOTS-1256 */ -#define XK_braille_dots_356 0x1002834 /* U+2834 BRAILLE PATTERN DOTS-356 */ -#define XK_braille_dots_1356 0x1002835 /* U+2835 BRAILLE PATTERN DOTS-1356 */ -#define XK_braille_dots_2356 0x1002836 /* U+2836 BRAILLE PATTERN DOTS-2356 */ -#define XK_braille_dots_12356 0x1002837 /* U+2837 BRAILLE PATTERN DOTS-12356 */ -#define XK_braille_dots_456 0x1002838 /* U+2838 BRAILLE PATTERN DOTS-456 */ -#define XK_braille_dots_1456 0x1002839 /* U+2839 BRAILLE PATTERN DOTS-1456 */ -#define XK_braille_dots_2456 0x100283a /* U+283a BRAILLE PATTERN DOTS-2456 */ -#define XK_braille_dots_12456 0x100283b /* U+283b BRAILLE PATTERN DOTS-12456 */ -#define XK_braille_dots_3456 0x100283c /* U+283c BRAILLE PATTERN DOTS-3456 */ -#define XK_braille_dots_13456 0x100283d /* U+283d BRAILLE PATTERN DOTS-13456 */ -#define XK_braille_dots_23456 0x100283e /* U+283e BRAILLE PATTERN DOTS-23456 */ -#define XK_braille_dots_123456 0x100283f /* U+283f BRAILLE PATTERN DOTS-123456 */ -#define XK_braille_dots_7 0x1002840 /* U+2840 BRAILLE PATTERN DOTS-7 */ -#define XK_braille_dots_17 0x1002841 /* U+2841 BRAILLE PATTERN DOTS-17 */ -#define XK_braille_dots_27 0x1002842 /* U+2842 BRAILLE PATTERN DOTS-27 */ -#define XK_braille_dots_127 0x1002843 /* U+2843 BRAILLE PATTERN DOTS-127 */ -#define XK_braille_dots_37 0x1002844 /* U+2844 BRAILLE PATTERN DOTS-37 */ -#define XK_braille_dots_137 0x1002845 /* U+2845 BRAILLE PATTERN DOTS-137 */ -#define XK_braille_dots_237 0x1002846 /* U+2846 BRAILLE PATTERN DOTS-237 */ -#define XK_braille_dots_1237 0x1002847 /* U+2847 BRAILLE PATTERN DOTS-1237 */ -#define XK_braille_dots_47 0x1002848 /* U+2848 BRAILLE PATTERN DOTS-47 */ -#define XK_braille_dots_147 0x1002849 /* U+2849 BRAILLE PATTERN DOTS-147 */ -#define XK_braille_dots_247 0x100284a /* U+284a BRAILLE PATTERN DOTS-247 */ -#define XK_braille_dots_1247 0x100284b /* U+284b BRAILLE PATTERN DOTS-1247 */ -#define XK_braille_dots_347 0x100284c /* U+284c BRAILLE PATTERN DOTS-347 */ -#define XK_braille_dots_1347 0x100284d /* U+284d BRAILLE PATTERN DOTS-1347 */ -#define XK_braille_dots_2347 0x100284e /* U+284e BRAILLE PATTERN DOTS-2347 */ -#define XK_braille_dots_12347 0x100284f /* U+284f BRAILLE PATTERN DOTS-12347 */ -#define XK_braille_dots_57 0x1002850 /* U+2850 BRAILLE PATTERN DOTS-57 */ -#define XK_braille_dots_157 0x1002851 /* U+2851 BRAILLE PATTERN DOTS-157 */ -#define XK_braille_dots_257 0x1002852 /* U+2852 BRAILLE PATTERN DOTS-257 */ -#define XK_braille_dots_1257 0x1002853 /* U+2853 BRAILLE PATTERN DOTS-1257 */ -#define XK_braille_dots_357 0x1002854 /* U+2854 BRAILLE PATTERN DOTS-357 */ -#define XK_braille_dots_1357 0x1002855 /* U+2855 BRAILLE PATTERN DOTS-1357 */ -#define XK_braille_dots_2357 0x1002856 /* U+2856 BRAILLE PATTERN DOTS-2357 */ -#define XK_braille_dots_12357 0x1002857 /* U+2857 BRAILLE PATTERN DOTS-12357 */ -#define XK_braille_dots_457 0x1002858 /* U+2858 BRAILLE PATTERN DOTS-457 */ -#define XK_braille_dots_1457 0x1002859 /* U+2859 BRAILLE PATTERN DOTS-1457 */ -#define XK_braille_dots_2457 0x100285a /* U+285a BRAILLE PATTERN DOTS-2457 */ -#define XK_braille_dots_12457 0x100285b /* U+285b BRAILLE PATTERN DOTS-12457 */ -#define XK_braille_dots_3457 0x100285c /* U+285c BRAILLE PATTERN DOTS-3457 */ -#define XK_braille_dots_13457 0x100285d /* U+285d BRAILLE PATTERN DOTS-13457 */ -#define XK_braille_dots_23457 0x100285e /* U+285e BRAILLE PATTERN DOTS-23457 */ -#define XK_braille_dots_123457 0x100285f /* U+285f BRAILLE PATTERN DOTS-123457 */ -#define XK_braille_dots_67 0x1002860 /* U+2860 BRAILLE PATTERN DOTS-67 */ -#define XK_braille_dots_167 0x1002861 /* U+2861 BRAILLE PATTERN DOTS-167 */ -#define XK_braille_dots_267 0x1002862 /* U+2862 BRAILLE PATTERN DOTS-267 */ -#define XK_braille_dots_1267 0x1002863 /* U+2863 BRAILLE PATTERN DOTS-1267 */ -#define XK_braille_dots_367 0x1002864 /* U+2864 BRAILLE PATTERN DOTS-367 */ -#define XK_braille_dots_1367 0x1002865 /* U+2865 BRAILLE PATTERN DOTS-1367 */ -#define XK_braille_dots_2367 0x1002866 /* U+2866 BRAILLE PATTERN DOTS-2367 */ -#define XK_braille_dots_12367 0x1002867 /* U+2867 BRAILLE PATTERN DOTS-12367 */ -#define XK_braille_dots_467 0x1002868 /* U+2868 BRAILLE PATTERN DOTS-467 */ -#define XK_braille_dots_1467 0x1002869 /* U+2869 BRAILLE PATTERN DOTS-1467 */ -#define XK_braille_dots_2467 0x100286a /* U+286a BRAILLE PATTERN DOTS-2467 */ -#define XK_braille_dots_12467 0x100286b /* U+286b BRAILLE PATTERN DOTS-12467 */ -#define XK_braille_dots_3467 0x100286c /* U+286c BRAILLE PATTERN DOTS-3467 */ -#define XK_braille_dots_13467 0x100286d /* U+286d BRAILLE PATTERN DOTS-13467 */ -#define XK_braille_dots_23467 0x100286e /* U+286e BRAILLE PATTERN DOTS-23467 */ -#define XK_braille_dots_123467 0x100286f /* U+286f BRAILLE PATTERN DOTS-123467 */ -#define XK_braille_dots_567 0x1002870 /* U+2870 BRAILLE PATTERN DOTS-567 */ -#define XK_braille_dots_1567 0x1002871 /* U+2871 BRAILLE PATTERN DOTS-1567 */ -#define XK_braille_dots_2567 0x1002872 /* U+2872 BRAILLE PATTERN DOTS-2567 */ -#define XK_braille_dots_12567 0x1002873 /* U+2873 BRAILLE PATTERN DOTS-12567 */ -#define XK_braille_dots_3567 0x1002874 /* U+2874 BRAILLE PATTERN DOTS-3567 */ -#define XK_braille_dots_13567 0x1002875 /* U+2875 BRAILLE PATTERN DOTS-13567 */ -#define XK_braille_dots_23567 0x1002876 /* U+2876 BRAILLE PATTERN DOTS-23567 */ -#define XK_braille_dots_123567 0x1002877 /* U+2877 BRAILLE PATTERN DOTS-123567 */ -#define XK_braille_dots_4567 0x1002878 /* U+2878 BRAILLE PATTERN DOTS-4567 */ -#define XK_braille_dots_14567 0x1002879 /* U+2879 BRAILLE PATTERN DOTS-14567 */ -#define XK_braille_dots_24567 0x100287a /* U+287a BRAILLE PATTERN DOTS-24567 */ -#define XK_braille_dots_124567 0x100287b /* U+287b BRAILLE PATTERN DOTS-124567 */ -#define XK_braille_dots_34567 0x100287c /* U+287c BRAILLE PATTERN DOTS-34567 */ -#define XK_braille_dots_134567 0x100287d /* U+287d BRAILLE PATTERN DOTS-134567 */ -#define XK_braille_dots_234567 0x100287e /* U+287e BRAILLE PATTERN DOTS-234567 */ -#define XK_braille_dots_1234567 0x100287f /* U+287f BRAILLE PATTERN DOTS-1234567 */ -#define XK_braille_dots_8 0x1002880 /* U+2880 BRAILLE PATTERN DOTS-8 */ -#define XK_braille_dots_18 0x1002881 /* U+2881 BRAILLE PATTERN DOTS-18 */ -#define XK_braille_dots_28 0x1002882 /* U+2882 BRAILLE PATTERN DOTS-28 */ -#define XK_braille_dots_128 0x1002883 /* U+2883 BRAILLE PATTERN DOTS-128 */ -#define XK_braille_dots_38 0x1002884 /* U+2884 BRAILLE PATTERN DOTS-38 */ -#define XK_braille_dots_138 0x1002885 /* U+2885 BRAILLE PATTERN DOTS-138 */ -#define XK_braille_dots_238 0x1002886 /* U+2886 BRAILLE PATTERN DOTS-238 */ -#define XK_braille_dots_1238 0x1002887 /* U+2887 BRAILLE PATTERN DOTS-1238 */ -#define XK_braille_dots_48 0x1002888 /* U+2888 BRAILLE PATTERN DOTS-48 */ -#define XK_braille_dots_148 0x1002889 /* U+2889 BRAILLE PATTERN DOTS-148 */ -#define XK_braille_dots_248 0x100288a /* U+288a BRAILLE PATTERN DOTS-248 */ -#define XK_braille_dots_1248 0x100288b /* U+288b BRAILLE PATTERN DOTS-1248 */ -#define XK_braille_dots_348 0x100288c /* U+288c BRAILLE PATTERN DOTS-348 */ -#define XK_braille_dots_1348 0x100288d /* U+288d BRAILLE PATTERN DOTS-1348 */ -#define XK_braille_dots_2348 0x100288e /* U+288e BRAILLE PATTERN DOTS-2348 */ -#define XK_braille_dots_12348 0x100288f /* U+288f BRAILLE PATTERN DOTS-12348 */ -#define XK_braille_dots_58 0x1002890 /* U+2890 BRAILLE PATTERN DOTS-58 */ -#define XK_braille_dots_158 0x1002891 /* U+2891 BRAILLE PATTERN DOTS-158 */ -#define XK_braille_dots_258 0x1002892 /* U+2892 BRAILLE PATTERN DOTS-258 */ -#define XK_braille_dots_1258 0x1002893 /* U+2893 BRAILLE PATTERN DOTS-1258 */ -#define XK_braille_dots_358 0x1002894 /* U+2894 BRAILLE PATTERN DOTS-358 */ -#define XK_braille_dots_1358 0x1002895 /* U+2895 BRAILLE PATTERN DOTS-1358 */ -#define XK_braille_dots_2358 0x1002896 /* U+2896 BRAILLE PATTERN DOTS-2358 */ -#define XK_braille_dots_12358 0x1002897 /* U+2897 BRAILLE PATTERN DOTS-12358 */ -#define XK_braille_dots_458 0x1002898 /* U+2898 BRAILLE PATTERN DOTS-458 */ -#define XK_braille_dots_1458 0x1002899 /* U+2899 BRAILLE PATTERN DOTS-1458 */ -#define XK_braille_dots_2458 0x100289a /* U+289a BRAILLE PATTERN DOTS-2458 */ -#define XK_braille_dots_12458 0x100289b /* U+289b BRAILLE PATTERN DOTS-12458 */ -#define XK_braille_dots_3458 0x100289c /* U+289c BRAILLE PATTERN DOTS-3458 */ -#define XK_braille_dots_13458 0x100289d /* U+289d BRAILLE PATTERN DOTS-13458 */ -#define XK_braille_dots_23458 0x100289e /* U+289e BRAILLE PATTERN DOTS-23458 */ -#define XK_braille_dots_123458 0x100289f /* U+289f BRAILLE PATTERN DOTS-123458 */ -#define XK_braille_dots_68 0x10028a0 /* U+28a0 BRAILLE PATTERN DOTS-68 */ -#define XK_braille_dots_168 0x10028a1 /* U+28a1 BRAILLE PATTERN DOTS-168 */ -#define XK_braille_dots_268 0x10028a2 /* U+28a2 BRAILLE PATTERN DOTS-268 */ -#define XK_braille_dots_1268 0x10028a3 /* U+28a3 BRAILLE PATTERN DOTS-1268 */ -#define XK_braille_dots_368 0x10028a4 /* U+28a4 BRAILLE PATTERN DOTS-368 */ -#define XK_braille_dots_1368 0x10028a5 /* U+28a5 BRAILLE PATTERN DOTS-1368 */ -#define XK_braille_dots_2368 0x10028a6 /* U+28a6 BRAILLE PATTERN DOTS-2368 */ -#define XK_braille_dots_12368 0x10028a7 /* U+28a7 BRAILLE PATTERN DOTS-12368 */ -#define XK_braille_dots_468 0x10028a8 /* U+28a8 BRAILLE PATTERN DOTS-468 */ -#define XK_braille_dots_1468 0x10028a9 /* U+28a9 BRAILLE PATTERN DOTS-1468 */ -#define XK_braille_dots_2468 0x10028aa /* U+28aa BRAILLE PATTERN DOTS-2468 */ -#define XK_braille_dots_12468 0x10028ab /* U+28ab BRAILLE PATTERN DOTS-12468 */ -#define XK_braille_dots_3468 0x10028ac /* U+28ac BRAILLE PATTERN DOTS-3468 */ -#define XK_braille_dots_13468 0x10028ad /* U+28ad BRAILLE PATTERN DOTS-13468 */ -#define XK_braille_dots_23468 0x10028ae /* U+28ae BRAILLE PATTERN DOTS-23468 */ -#define XK_braille_dots_123468 0x10028af /* U+28af BRAILLE PATTERN DOTS-123468 */ -#define XK_braille_dots_568 0x10028b0 /* U+28b0 BRAILLE PATTERN DOTS-568 */ -#define XK_braille_dots_1568 0x10028b1 /* U+28b1 BRAILLE PATTERN DOTS-1568 */ -#define XK_braille_dots_2568 0x10028b2 /* U+28b2 BRAILLE PATTERN DOTS-2568 */ -#define XK_braille_dots_12568 0x10028b3 /* U+28b3 BRAILLE PATTERN DOTS-12568 */ -#define XK_braille_dots_3568 0x10028b4 /* U+28b4 BRAILLE PATTERN DOTS-3568 */ -#define XK_braille_dots_13568 0x10028b5 /* U+28b5 BRAILLE PATTERN DOTS-13568 */ -#define XK_braille_dots_23568 0x10028b6 /* U+28b6 BRAILLE PATTERN DOTS-23568 */ -#define XK_braille_dots_123568 0x10028b7 /* U+28b7 BRAILLE PATTERN DOTS-123568 */ -#define XK_braille_dots_4568 0x10028b8 /* U+28b8 BRAILLE PATTERN DOTS-4568 */ -#define XK_braille_dots_14568 0x10028b9 /* U+28b9 BRAILLE PATTERN DOTS-14568 */ -#define XK_braille_dots_24568 0x10028ba /* U+28ba BRAILLE PATTERN DOTS-24568 */ -#define XK_braille_dots_124568 0x10028bb /* U+28bb BRAILLE PATTERN DOTS-124568 */ -#define XK_braille_dots_34568 0x10028bc /* U+28bc BRAILLE PATTERN DOTS-34568 */ -#define XK_braille_dots_134568 0x10028bd /* U+28bd BRAILLE PATTERN DOTS-134568 */ -#define XK_braille_dots_234568 0x10028be /* U+28be BRAILLE PATTERN DOTS-234568 */ -#define XK_braille_dots_1234568 0x10028bf /* U+28bf BRAILLE PATTERN DOTS-1234568 */ -#define XK_braille_dots_78 0x10028c0 /* U+28c0 BRAILLE PATTERN DOTS-78 */ -#define XK_braille_dots_178 0x10028c1 /* U+28c1 BRAILLE PATTERN DOTS-178 */ -#define XK_braille_dots_278 0x10028c2 /* U+28c2 BRAILLE PATTERN DOTS-278 */ -#define XK_braille_dots_1278 0x10028c3 /* U+28c3 BRAILLE PATTERN DOTS-1278 */ -#define XK_braille_dots_378 0x10028c4 /* U+28c4 BRAILLE PATTERN DOTS-378 */ -#define XK_braille_dots_1378 0x10028c5 /* U+28c5 BRAILLE PATTERN DOTS-1378 */ -#define XK_braille_dots_2378 0x10028c6 /* U+28c6 BRAILLE PATTERN DOTS-2378 */ -#define XK_braille_dots_12378 0x10028c7 /* U+28c7 BRAILLE PATTERN DOTS-12378 */ -#define XK_braille_dots_478 0x10028c8 /* U+28c8 BRAILLE PATTERN DOTS-478 */ -#define XK_braille_dots_1478 0x10028c9 /* U+28c9 BRAILLE PATTERN DOTS-1478 */ -#define XK_braille_dots_2478 0x10028ca /* U+28ca BRAILLE PATTERN DOTS-2478 */ -#define XK_braille_dots_12478 0x10028cb /* U+28cb BRAILLE PATTERN DOTS-12478 */ -#define XK_braille_dots_3478 0x10028cc /* U+28cc BRAILLE PATTERN DOTS-3478 */ -#define XK_braille_dots_13478 0x10028cd /* U+28cd BRAILLE PATTERN DOTS-13478 */ -#define XK_braille_dots_23478 0x10028ce /* U+28ce BRAILLE PATTERN DOTS-23478 */ -#define XK_braille_dots_123478 0x10028cf /* U+28cf BRAILLE PATTERN DOTS-123478 */ -#define XK_braille_dots_578 0x10028d0 /* U+28d0 BRAILLE PATTERN DOTS-578 */ -#define XK_braille_dots_1578 0x10028d1 /* U+28d1 BRAILLE PATTERN DOTS-1578 */ -#define XK_braille_dots_2578 0x10028d2 /* U+28d2 BRAILLE PATTERN DOTS-2578 */ -#define XK_braille_dots_12578 0x10028d3 /* U+28d3 BRAILLE PATTERN DOTS-12578 */ -#define XK_braille_dots_3578 0x10028d4 /* U+28d4 BRAILLE PATTERN DOTS-3578 */ -#define XK_braille_dots_13578 0x10028d5 /* U+28d5 BRAILLE PATTERN DOTS-13578 */ -#define XK_braille_dots_23578 0x10028d6 /* U+28d6 BRAILLE PATTERN DOTS-23578 */ -#define XK_braille_dots_123578 0x10028d7 /* U+28d7 BRAILLE PATTERN DOTS-123578 */ -#define XK_braille_dots_4578 0x10028d8 /* U+28d8 BRAILLE PATTERN DOTS-4578 */ -#define XK_braille_dots_14578 0x10028d9 /* U+28d9 BRAILLE PATTERN DOTS-14578 */ -#define XK_braille_dots_24578 0x10028da /* U+28da BRAILLE PATTERN DOTS-24578 */ -#define XK_braille_dots_124578 0x10028db /* U+28db BRAILLE PATTERN DOTS-124578 */ -#define XK_braille_dots_34578 0x10028dc /* U+28dc BRAILLE PATTERN DOTS-34578 */ -#define XK_braille_dots_134578 0x10028dd /* U+28dd BRAILLE PATTERN DOTS-134578 */ -#define XK_braille_dots_234578 0x10028de /* U+28de BRAILLE PATTERN DOTS-234578 */ -#define XK_braille_dots_1234578 0x10028df /* U+28df BRAILLE PATTERN DOTS-1234578 */ -#define XK_braille_dots_678 0x10028e0 /* U+28e0 BRAILLE PATTERN DOTS-678 */ -#define XK_braille_dots_1678 0x10028e1 /* U+28e1 BRAILLE PATTERN DOTS-1678 */ -#define XK_braille_dots_2678 0x10028e2 /* U+28e2 BRAILLE PATTERN DOTS-2678 */ -#define XK_braille_dots_12678 0x10028e3 /* U+28e3 BRAILLE PATTERN DOTS-12678 */ -#define XK_braille_dots_3678 0x10028e4 /* U+28e4 BRAILLE PATTERN DOTS-3678 */ -#define XK_braille_dots_13678 0x10028e5 /* U+28e5 BRAILLE PATTERN DOTS-13678 */ -#define XK_braille_dots_23678 0x10028e6 /* U+28e6 BRAILLE PATTERN DOTS-23678 */ -#define XK_braille_dots_123678 0x10028e7 /* U+28e7 BRAILLE PATTERN DOTS-123678 */ -#define XK_braille_dots_4678 0x10028e8 /* U+28e8 BRAILLE PATTERN DOTS-4678 */ -#define XK_braille_dots_14678 0x10028e9 /* U+28e9 BRAILLE PATTERN DOTS-14678 */ -#define XK_braille_dots_24678 0x10028ea /* U+28ea BRAILLE PATTERN DOTS-24678 */ -#define XK_braille_dots_124678 0x10028eb /* U+28eb BRAILLE PATTERN DOTS-124678 */ -#define XK_braille_dots_34678 0x10028ec /* U+28ec BRAILLE PATTERN DOTS-34678 */ -#define XK_braille_dots_134678 0x10028ed /* U+28ed BRAILLE PATTERN DOTS-134678 */ -#define XK_braille_dots_234678 0x10028ee /* U+28ee BRAILLE PATTERN DOTS-234678 */ -#define XK_braille_dots_1234678 0x10028ef /* U+28ef BRAILLE PATTERN DOTS-1234678 */ -#define XK_braille_dots_5678 0x10028f0 /* U+28f0 BRAILLE PATTERN DOTS-5678 */ -#define XK_braille_dots_15678 0x10028f1 /* U+28f1 BRAILLE PATTERN DOTS-15678 */ -#define XK_braille_dots_25678 0x10028f2 /* U+28f2 BRAILLE PATTERN DOTS-25678 */ -#define XK_braille_dots_125678 0x10028f3 /* U+28f3 BRAILLE PATTERN DOTS-125678 */ -#define XK_braille_dots_35678 0x10028f4 /* U+28f4 BRAILLE PATTERN DOTS-35678 */ -#define XK_braille_dots_135678 0x10028f5 /* U+28f5 BRAILLE PATTERN DOTS-135678 */ -#define XK_braille_dots_235678 0x10028f6 /* U+28f6 BRAILLE PATTERN DOTS-235678 */ -#define XK_braille_dots_1235678 0x10028f7 /* U+28f7 BRAILLE PATTERN DOTS-1235678 */ -#define XK_braille_dots_45678 0x10028f8 /* U+28f8 BRAILLE PATTERN DOTS-45678 */ -#define XK_braille_dots_145678 0x10028f9 /* U+28f9 BRAILLE PATTERN DOTS-145678 */ -#define XK_braille_dots_245678 0x10028fa /* U+28fa BRAILLE PATTERN DOTS-245678 */ -#define XK_braille_dots_1245678 0x10028fb /* U+28fb BRAILLE PATTERN DOTS-1245678 */ -#define XK_braille_dots_345678 0x10028fc /* U+28fc BRAILLE PATTERN DOTS-345678 */ -#define XK_braille_dots_1345678 0x10028fd /* U+28fd BRAILLE PATTERN DOTS-1345678 */ -#define XK_braille_dots_2345678 0x10028fe /* U+28fe BRAILLE PATTERN DOTS-2345678 */ -#define XK_braille_dots_12345678 0x10028ff /* U+28ff BRAILLE PATTERN DOTS-12345678 */ -#endif /* XK_BRAILLE */ - -/* - * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf) - * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html - */ - -#ifdef XK_SINHALA -#define XK_Sinh_ng 0x1000d82 /* U+0D82 SINHALA ANUSVARAYA */ -#define XK_Sinh_h2 0x1000d83 /* U+0D83 SINHALA VISARGAYA */ -#define XK_Sinh_a 0x1000d85 /* U+0D85 SINHALA AYANNA */ -#define XK_Sinh_aa 0x1000d86 /* U+0D86 SINHALA AAYANNA */ -#define XK_Sinh_ae 0x1000d87 /* U+0D87 SINHALA AEYANNA */ -#define XK_Sinh_aee 0x1000d88 /* U+0D88 SINHALA AEEYANNA */ -#define XK_Sinh_i 0x1000d89 /* U+0D89 SINHALA IYANNA */ -#define XK_Sinh_ii 0x1000d8a /* U+0D8A SINHALA IIYANNA */ -#define XK_Sinh_u 0x1000d8b /* U+0D8B SINHALA UYANNA */ -#define XK_Sinh_uu 0x1000d8c /* U+0D8C SINHALA UUYANNA */ -#define XK_Sinh_ri 0x1000d8d /* U+0D8D SINHALA IRUYANNA */ -#define XK_Sinh_rii 0x1000d8e /* U+0D8E SINHALA IRUUYANNA */ -#define XK_Sinh_lu 0x1000d8f /* U+0D8F SINHALA ILUYANNA */ -#define XK_Sinh_luu 0x1000d90 /* U+0D90 SINHALA ILUUYANNA */ -#define XK_Sinh_e 0x1000d91 /* U+0D91 SINHALA EYANNA */ -#define XK_Sinh_ee 0x1000d92 /* U+0D92 SINHALA EEYANNA */ -#define XK_Sinh_ai 0x1000d93 /* U+0D93 SINHALA AIYANNA */ -#define XK_Sinh_o 0x1000d94 /* U+0D94 SINHALA OYANNA */ -#define XK_Sinh_oo 0x1000d95 /* U+0D95 SINHALA OOYANNA */ -#define XK_Sinh_au 0x1000d96 /* U+0D96 SINHALA AUYANNA */ -#define XK_Sinh_ka 0x1000d9a /* U+0D9A SINHALA KAYANNA */ -#define XK_Sinh_kha 0x1000d9b /* U+0D9B SINHALA MAHA. KAYANNA */ -#define XK_Sinh_ga 0x1000d9c /* U+0D9C SINHALA GAYANNA */ -#define XK_Sinh_gha 0x1000d9d /* U+0D9D SINHALA MAHA. GAYANNA */ -#define XK_Sinh_ng2 0x1000d9e /* U+0D9E SINHALA KANTAJA NAASIKYAYA */ -#define XK_Sinh_nga 0x1000d9f /* U+0D9F SINHALA SANYAKA GAYANNA */ -#define XK_Sinh_ca 0x1000da0 /* U+0DA0 SINHALA CAYANNA */ -#define XK_Sinh_cha 0x1000da1 /* U+0DA1 SINHALA MAHA. CAYANNA */ -#define XK_Sinh_ja 0x1000da2 /* U+0DA2 SINHALA JAYANNA */ -#define XK_Sinh_jha 0x1000da3 /* U+0DA3 SINHALA MAHA. JAYANNA */ -#define XK_Sinh_nya 0x1000da4 /* U+0DA4 SINHALA TAALUJA NAASIKYAYA */ -#define XK_Sinh_jnya 0x1000da5 /* U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA */ -#define XK_Sinh_nja 0x1000da6 /* U+0DA6 SINHALA SANYAKA JAYANNA */ -#define XK_Sinh_tta 0x1000da7 /* U+0DA7 SINHALA TTAYANNA */ -#define XK_Sinh_ttha 0x1000da8 /* U+0DA8 SINHALA MAHA. TTAYANNA */ -#define XK_Sinh_dda 0x1000da9 /* U+0DA9 SINHALA DDAYANNA */ -#define XK_Sinh_ddha 0x1000daa /* U+0DAA SINHALA MAHA. DDAYANNA */ -#define XK_Sinh_nna 0x1000dab /* U+0DAB SINHALA MUURDHAJA NAYANNA */ -#define XK_Sinh_ndda 0x1000dac /* U+0DAC SINHALA SANYAKA DDAYANNA */ -#define XK_Sinh_tha 0x1000dad /* U+0DAD SINHALA TAYANNA */ -#define XK_Sinh_thha 0x1000dae /* U+0DAE SINHALA MAHA. TAYANNA */ -#define XK_Sinh_dha 0x1000daf /* U+0DAF SINHALA DAYANNA */ -#define XK_Sinh_dhha 0x1000db0 /* U+0DB0 SINHALA MAHA. DAYANNA */ -#define XK_Sinh_na 0x1000db1 /* U+0DB1 SINHALA DANTAJA NAYANNA */ -#define XK_Sinh_ndha 0x1000db3 /* U+0DB3 SINHALA SANYAKA DAYANNA */ -#define XK_Sinh_pa 0x1000db4 /* U+0DB4 SINHALA PAYANNA */ -#define XK_Sinh_pha 0x1000db5 /* U+0DB5 SINHALA MAHA. PAYANNA */ -#define XK_Sinh_ba 0x1000db6 /* U+0DB6 SINHALA BAYANNA */ -#define XK_Sinh_bha 0x1000db7 /* U+0DB7 SINHALA MAHA. BAYANNA */ -#define XK_Sinh_ma 0x1000db8 /* U+0DB8 SINHALA MAYANNA */ -#define XK_Sinh_mba 0x1000db9 /* U+0DB9 SINHALA AMBA BAYANNA */ -#define XK_Sinh_ya 0x1000dba /* U+0DBA SINHALA YAYANNA */ -#define XK_Sinh_ra 0x1000dbb /* U+0DBB SINHALA RAYANNA */ -#define XK_Sinh_la 0x1000dbd /* U+0DBD SINHALA DANTAJA LAYANNA */ -#define XK_Sinh_va 0x1000dc0 /* U+0DC0 SINHALA VAYANNA */ -#define XK_Sinh_sha 0x1000dc1 /* U+0DC1 SINHALA TAALUJA SAYANNA */ -#define XK_Sinh_ssha 0x1000dc2 /* U+0DC2 SINHALA MUURDHAJA SAYANNA */ -#define XK_Sinh_sa 0x1000dc3 /* U+0DC3 SINHALA DANTAJA SAYANNA */ -#define XK_Sinh_ha 0x1000dc4 /* U+0DC4 SINHALA HAYANNA */ -#define XK_Sinh_lla 0x1000dc5 /* U+0DC5 SINHALA MUURDHAJA LAYANNA */ -#define XK_Sinh_fa 0x1000dc6 /* U+0DC6 SINHALA FAYANNA */ -#define XK_Sinh_al 0x1000dca /* U+0DCA SINHALA AL-LAKUNA */ -#define XK_Sinh_aa2 0x1000dcf /* U+0DCF SINHALA AELA-PILLA */ -#define XK_Sinh_ae2 0x1000dd0 /* U+0DD0 SINHALA AEDA-PILLA */ -#define XK_Sinh_aee2 0x1000dd1 /* U+0DD1 SINHALA DIGA AEDA-PILLA */ -#define XK_Sinh_i2 0x1000dd2 /* U+0DD2 SINHALA IS-PILLA */ -#define XK_Sinh_ii2 0x1000dd3 /* U+0DD3 SINHALA DIGA IS-PILLA */ -#define XK_Sinh_u2 0x1000dd4 /* U+0DD4 SINHALA PAA-PILLA */ -#define XK_Sinh_uu2 0x1000dd6 /* U+0DD6 SINHALA DIGA PAA-PILLA */ -#define XK_Sinh_ru2 0x1000dd8 /* U+0DD8 SINHALA GAETTA-PILLA */ -#define XK_Sinh_e2 0x1000dd9 /* U+0DD9 SINHALA KOMBUVA */ -#define XK_Sinh_ee2 0x1000dda /* U+0DDA SINHALA DIGA KOMBUVA */ -#define XK_Sinh_ai2 0x1000ddb /* U+0DDB SINHALA KOMBU DEKA */ -#define XK_Sinh_o2 0x1000ddc /* U+0DDC SINHALA KOMBUVA HAA AELA-PILLA*/ -#define XK_Sinh_oo2 0x1000ddd /* U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA*/ -#define XK_Sinh_au2 0x1000dde /* U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA */ -#define XK_Sinh_lu2 0x1000ddf /* U+0DDF SINHALA GAYANUKITTA */ -#define XK_Sinh_ruu2 0x1000df2 /* U+0DF2 SINHALA DIGA GAETTA-PILLA */ -#define XK_Sinh_luu2 0x1000df3 /* U+0DF3 SINHALA DIGA GAYANUKITTA */ -#define XK_Sinh_kunddaliya 0x1000df4 /* U+0DF4 SINHALA KUNDDALIYA */ -#endif /* XK_SINHALA */ diff --git a/proto/x11proto/missing b/proto/x11proto/missing deleted file mode 100644 index 894e786e1..000000000 --- a/proto/x11proto/missing +++ /dev/null @@ -1,360 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2005-06-08.21 - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Send bug reports to <bug-automake@gnu.org>." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). -case "$1" in - lex|yacc) - # Not GNU programs, they don't have --version. - ;; - - tar) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/proto/x11proto/specs/Makefile.am b/proto/x11proto/specs/Makefile.am deleted file mode 100644 index c7c4fe5ea..000000000 --- a/proto/x11proto/specs/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -SUBDIRS = SIAddresses - -if ENABLE_SPECS - -# Main DocBook/XML files (DOCTYPE book) -docbook = x11protocol.xml - -# Included chapters, appendix, images -chapters = \ - encoding.xml \ - glossary.xml \ - keysyms.xml \ - sect1-9.xml - -# The location where the DocBook/XML files and their generated formats are installed -shelfdir = $(docdir) - -# Generate DocBook/XML output formats with or without stylesheets -include $(top_srcdir)/docbook.am - -endif ENABLE_SPECS diff --git a/proto/x11proto/specs/SIAddresses/IPv6.txt b/proto/x11proto/specs/SIAddresses/IPv6.txt deleted file mode 100644 index 4b69a997b..000000000 --- a/proto/x11proto/specs/SIAddresses/IPv6.txt +++ /dev/null @@ -1,11 +0,0 @@ -ServerInterpreted address definition for type "IPv6": - -The X.org Architecture Task Force reserves the ServerInterpreted -address type of "IPv6" for use with IPv6 literal address formats. -The syntax for the value will be defined as specified in RFC 3513 -and the IETF RFC to be published based on the current draft at -http://www.ietf.org/internet-drafts/draft-ietf-ipv6-scoping-arch-00.txt -This address type specification will be formally issued once the -IETF IPv6 Working Group issues the corresponding RFC. - -Version 0.9, March 2004 diff --git a/proto/x11proto/specs/SIAddresses/Makefile.am b/proto/x11proto/specs/SIAddresses/Makefile.am deleted file mode 100644 index 662776a98..000000000 --- a/proto/x11proto/specs/SIAddresses/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -dist_noinst_DATA = \ - hostname.txt \ - IPv6.txt \ - localuser.txt \ - README - diff --git a/proto/x11proto/specs/SIAddresses/README b/proto/x11proto/specs/SIAddresses/README deleted file mode 100644 index 8858529c5..000000000 --- a/proto/x11proto/specs/SIAddresses/README +++ /dev/null @@ -1,4 +0,0 @@ -This directory contains the specifications of address types for the -ServerInterpreted address family used in the ChangeHost and ListHosts -requests in the X11 Protocol. See Chapter 9 of the X11 Protocol spec -for more information. diff --git a/proto/x11proto/specs/SIAddresses/hostname.txt b/proto/x11proto/specs/SIAddresses/hostname.txt deleted file mode 100644 index 64023d7f3..000000000 --- a/proto/x11proto/specs/SIAddresses/hostname.txt +++ /dev/null @@ -1,11 +0,0 @@ -ServerInterpreted address definition for type "hostname": - -A ServerInterpreted address with type "hostname" shall have a value -representing a hostname as defined in IETF RFC 2396. Due to Mobile IP -and dynamic DNS, the name service should be consulted at connection -authentication time. Clients supporting Internationalized Domain -Names must convert to ASCII Compatible Encoding as specified in the -relevant IETF RFC's before use in the X11 protocol. Note that this -definition of hostname does not allow use of literal IP addresses. - -Version 1.0, March 2004 diff --git a/proto/x11proto/specs/SIAddresses/localuser.txt b/proto/x11proto/specs/SIAddresses/localuser.txt deleted file mode 100644 index e67ff01de..000000000 --- a/proto/x11proto/specs/SIAddresses/localuser.txt +++ /dev/null @@ -1,20 +0,0 @@ -Server-interpreted Authentication Types "localuser" and "localgroup": - -On systems which can determine in a secure fashion the credentials of a client -process, the "localuser" and "localgroup" authentication methods provide access -based on those credentials. The format of the values provided is platform -specific. For POSIX & UNIX platforms, if the value starts with the character -'#', the rest of the string shall be treated as a decimal uid or gid, otherwise -the string is defined as a user name or group name. - -Systems offering this MUST not simply trust a user supplied value (such as an -environment variable or IDENT protocol response). It is expected many systems -will only support this for clients running on the same host using a local IPC -transport. - -Examples: - xhost +SI:localuser:alanc - xhost +SI:localuser:#1234 - xhost +SI:localgroup:wheel - xhost +SI:localgroup:#0 - diff --git a/proto/x11proto/specs/encoding.xml b/proto/x11proto/specs/encoding.xml deleted file mode 100644 index 0c6ef028e..000000000 --- a/proto/x11proto/specs/encoding.xml +++ /dev/null @@ -1,3268 +0,0 @@ -<appendix id="protocol_encoding"> -<title>Protocol Encoding</title> -<!-- - The sections in this appendix correspond to their - number counterparts in the protocol document. ---> -<sect1 id='Syntactic_Conventions_b'> -<title>Syntactic Conventions</title> - -<para> -All numbers are in decimal, -unless prefixed with #x, in which case they are in hexadecimal (base 16). -</para> - -<para> -The general syntax used to describe requests, replies, errors, events, and -compound types is: -</para> - -<literallayout class="monospaced"> - <emphasis role='bold'>NameofThing</emphasis> - encode-form - ... - encode-form -</literallayout> - -<para> -Each encode-form describes a single component. -</para> -<para> -For components described in the protocol as: -</para> -<literallayout class="monospaced"> - name: TYPE -</literallayout> - -<para> -the encode-form is: -</para> - -<literallayout class="monospaced"> - N TYPE name -</literallayout> - -<para> -N is the number of bytes occupied in the data stream, -and TYPE is the interpretation of those bytes. -For example, -</para> - -<literallayout class="monospaced"> - depth: CARD8 -</literallayout> - -<para> -becomes: -</para> - -<literallayout class="monospaced"> - 1 CARD8 depth -</literallayout> - -<para> -For components with a static numeric value the encode-form is: -</para> - -<literallayout class="monospaced"> - N value name -</literallayout> - -<para> -The value is always interpreted as an N-byte unsigned integer. -For example, -the first two bytes of a -<emphasis role='bold'>Window</emphasis> -error are always zero (indicating an -error in general) and three (indicating the -<emphasis role='bold'>Window</emphasis> -error in particular): -</para> - -<literallayout class="monospaced"> - 1 0 Error - 1 3 code -</literallayout> - -<para> -For components described in the protocol as: -</para> - -<para> -name: -{ <emphasis role='bold'>Name1</emphasis>,..., -<emphasis role='bold'>NameI</emphasis>} -</para> - -<para> -the encode-form is: -</para> - -<literallayout class="monospaced"> - N name - value1 Name1 - ... - valueI NameI -</literallayout> - -<para> -The value is always interpreted as an N-byte unsigned integer. -Note that the size of N is sometimes larger than that strictly required -to encode the values. -For example: -</para> - -<para> -class: -{ <emphasis role='bold'>InputOutput</emphasis>, -<emphasis role='bold'>InputOnly</emphasis>, -<emphasis role='bold'>CopyFromParent</emphasis> } -</para> - -<para> -becomes: -</para> - -<literallayout class="monospaced"> -2 class - 0 CopyFromParent - 1 InputOutput - 2 InputOnly -</literallayout> - -<para> -For components described in the protocol as: -</para> - -<para> -NAME: TYPE or -<emphasis role='bold'>Alternative1 ...or</emphasis> -<emphasis role='bold'>AlternativeI</emphasis> -</para> - -<para> -the encode-form is: -</para> - -<literallayout class="monospaced"> -N TYPE NAME - value1 Alternative1 - ... - valueI AlternativeI -</literallayout> - -<para> -The alternative values are guaranteed not to conflict with the encoding -of TYPE. -For example: -</para> - -<para> -destination: WINDOW or -<emphasis role='bold'>PointerWindow</emphasis> -or -<emphasis role='bold'>InputFocus</emphasis> -</para> - -<para> -becomes: -</para> - -<literallayout class="monospaced"> -4 WINDOW destination - 0 PointerWindow - 1 InputFocus -</literallayout> - -<para> -For components described in the protocol as: -</para> - -<literallayout class="monospaced"> - value-mask: BITMASK -</literallayout> - -<para> -the encode-form is: -</para> - -<literallayout class="monospaced"> -N BITMASK value-mask - mask1 mask-name1 - ... - maskI mask-nameI -</literallayout> - -<para> -The individual bits in the mask are specified and named, -and N is 2 or 4. -The most-significant bit in a BITMASK is reserved for use in defining -chained (multiword) bitmasks, as extensions augment existing core requests. -The precise interpretation of this bit is not yet defined here, -although a probable mechanism is that a 1-bit indicates that another N bytes -of bitmask follows, with bits within the overall mask still interpreted -from least-significant to most-significant with an N-byte unit, -with N-byte units -interpreted in stream order, and with the overall mask being byte-swapped -in individual N-byte units. -</para> - -<para> -For LISTofVALUE encodings, the request is followed by a section of the form: -</para> - -<literallayout class="monospaced"> - VALUEs - encode-form - ... - encode-form -</literallayout> - -<para> -listing an encode-form for each VALUE. -The NAME in each encode-form keys to the corresponding BITMASK bit. -The encoding of a VALUE always occupies four bytes, -but the number of bytes specified in the encoding-form indicates how -many of the least-significant bytes are actually used; -the remaining bytes are unused and their values do not matter. -</para> - -<para> -In various cases, the number of bytes occupied by a component will be -specified -by a lowercase single-letter variable name instead of a specific numeric -value, and often some other component will have its value specified as a -simple numeric expression involving these variables. -Components specified with such expressions are always interpreted -as unsigned integers. -The scope of such variables is always just the enclosing request, reply, -error, event, or compound type structure. -For example: -</para> - -<literallayout class="monospaced"> -2 3+n request length -4n LISTofPOINT points -</literallayout> - -<para> -For unused bytes (the values of the bytes are undefined and do no matter), -the encode-form is: -</para> - -<literallayout class="monospaced"> - N unused -</literallayout> - -<para> -<!-- .LP --> -If the number of unused bytes is variable, the encode-form typically is: -</para> - -<literallayout class="monospaced"> - p unused, p=pad(E) -</literallayout> - -<para> -where E is some expression, -<phrase id="encoding:pad"> -<indexterm zone="encoding:pad" significance="preferred"><primary>Padding</primary></indexterm> -and pad(E) is the number of bytes needed to round E up to a multiple of four. -</phrase> -</para> - -<literallayout class="monospaced"> - pad(E) = (4 - (E mod 4)) mod 4 -</literallayout> -</sect1> - -<sect1 id='Encoding::Common_Types'> -<title>Common Types</title> -<indexterm zone="Encoding::Common_Types"><primary>Types</primary><secondary>encoding</secondary></indexterm> - -<variablelist> - <varlistentry> - <term>LISTofFOO</term> - <listitem> - <para> -In this document the LISTof notation strictly means some number of repetitions -of the FOO encoding; -the actual length of the list is encoded elsewhere. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term>SETofFOO</term> - <listitem> - <para> -A set is always represented by a bitmask, with a 1-bit indicating presence in -the set. - </para> - </listitem> - </varlistentry> -</variablelist> - -<informaltable frame='none'> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -BITMASK: CARD32 - </entry> - </row> - <row> - <entry> -WINDOW: CARD32 - </entry> - </row> - <row> - <entry> -PIXMAP: CARD32 - </entry> - </row> - <row> - <entry> -CURSOR: CARD32 - </entry> - </row> - <row> - <entry> -FONT: CARD32 - </entry> - </row> - <row> - <entry> -GCONTEXT: CARD32 - </entry> - </row> - <row> - <entry> -COLORMAP: CARD32 - </entry> - </row> - <row> - <entry> -DRAWABLE: CARD32 - </entry> - </row> - <row> - <entry> -FONTABLE: CARD32 - </entry> - </row> - <row> - <entry> -ATOM: CARD32 - </entry> - </row> - <row> - <entry> -VISUALID: CARD32 - </entry> - </row> - <row> - <entry> -BYTE: 8-bit value - </entry> - </row> - <row> - <entry> -INT8: 8-bit signed integer - </entry> - </row> - <row> - <entry> -INT16: 16-bit signed integer - </entry> - </row> - <row> - <entry> -INT32: 32-bit signed integer - </entry> - </row> - <row> - <entry> -CARD8: 8-bit unsigned integer - </entry> - </row> - <row> - <entry> -CARD16: 16-bit unsigned integer - </entry> - </row> - <row> - <entry> -CARD32: 32-bit unsigned integer - </entry> - </row> - <row> - <entry> -TIMESTAMP: CARD32 - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - - -<literallayout class="monospaced"> -BITGRAVITY - 0 Forget - 1 NorthWest - 2 North - 3 NorthEast - 4 West - 5 Center - 6 East - 7 SouthWest - 8 South - 9 SouthEast - 10 Static - -WINGRAVITY - 0 Unmap - 1 NorthWest - 2 North - 3 NorthEast - 4 West - 5 Center - 6 East - 7 SouthWest - 8 South - 9 SouthEast - 10 Static - -BOOL - 0 False - 1 True - -SETofEVENT - #x00000001 KeyPress - #x00000002 KeyRelease - #x00000004 ButtonPress - #x00000008 ButtonRelease - #x00000010 EnterWindow - #x00000020 LeaveWindow - #x00000040 PointerMotion - #x00000080 PointerMotionHint - #x00000100 Button1Motion - #x00000200 Button2Motion - #x00000400 Button3Motion - #x00000800 Button4Motion - #x00001000 Button5Motion - #x00002000 ButtonMotion - #x00004000 KeymapState - #x00008000 Exposure - #x00010000 VisibilityChange - #x00020000 StructureNotify - #x00040000 ResizeRedirect - #x00080000 SubstructureNotify - #x00100000 SubstructureRedirect - #x00200000 FocusChange - #x00400000 PropertyChange - #x00800000 ColormapChange - #x01000000 OwnerGrabButton - #xFE000000 unused but must be zero - -SETofPOINTEREVENT - encodings are the same as for SETofEVENT, except with - #xFFFF8003 unused but must be zero - -SETofDEVICEEVENT - encodings are the same as for SETofEVENT, except with - #xFFFFC0B0 unused but must be zero - -KEYSYM: CARD32 -KEYCODE: CARD8 -BUTTON: CARD8 - -SETofKEYBUTMASK - #x0001 Shift - #x0002 Lock - #x0004 Control - #x0008 Mod1 - #x0010 Mod2 - #x0020 Mod3 - #x0040 Mod4 - #x0080 Mod5 - #x0100 Button1 - #x0200 Button2 - #x0400 Button3 - #x0800 Button4 - #x1000 Button5 - #xE000 unused but must be zero - -SETofKEYMASK - encodings are the same as for SETofKEYBUTMASK, except with - #xFF00 unused but must be zero -STRING8: LISTofCARD8 -STRING16: LISTofCHAR2B - -CHAR2B - 1 CARD8 byte1 - 1 CARD8 byte2 - -POINT - 2 INT16 x - 2 INT16 y - -RECTANGLE - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - -ARC - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 INT16 angle1 - 2 INT16 angle2 - -HOST - 1 family - 0 Internet - 1 DECnet - 2 Chaos - 5 ServerInterpreted - 6 InternetV6 - 1 unused - 2 n length of address - n LISTofBYTE address - p unused, p=pad(n) - -STR - 1 n length of name in bytes - n STRING8 name - -</literallayout> -</sect1> - -<sect1 id='Encoding::Errors'> -<title>Errors</title> -<indexterm zone="Encoding::Errors"><primary>Error report</primary><secondary>encoding</secondary></indexterm> - -<literallayout class="monospaced"> -<emphasis role='bold'>Request</emphasis> - 1 0 Error - 1 1 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Value</emphasis> - 1 0 Error - 1 2 code - 2 CARD16 sequence number - 4 <32-bits> bad value - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Window</emphasis> - 1 0 Error - 1 3 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Pixmap</emphasis> - 1 0 Error - 1 4 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Atom</emphasis> - 1 0 Error - 1 5 code - 2 CARD16 sequence number - 4 CARD32 bad atom id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Cursor</emphasis> - 1 0 Error - 1 6 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Font</emphasis> - 1 0 Error - 1 7 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Match</emphasis> - 1 0 Error - 1 8 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Drawable</emphasis> - 1 0 Error - 1 9 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Access</emphasis> - 1 0 Error - 1 10 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Alloc</emphasis> - 1 0 Error - 1 11 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Colormap</emphasis> - 1 0 Error - 1 12 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>GContext</emphasis> - 1 0 Error - 1 13 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>IDChoice</emphasis> - 1 0 Error - 1 14 code - 2 CARD16 sequence number - 4 CARD32 bad resource id - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Name</emphasis> - 1 0 Error - 1 15 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Length</emphasis> - 1 0 Error - 1 16 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused - -<emphasis role='bold'>Implementation</emphasis> - 1 0 Error - 1 17 code - 2 CARD16 sequence number - 4 unused - 2 CARD16 minor opcode - 1 CARD8 major opcode - 21 unused -</literallayout> -</sect1> - -<sect1 id='Encoding::Keyboards'> -<title>Keyboards</title> - -<para> -KEYCODE values are always greater than 7 (and less than 256). -</para> - -<para> -KEYSYM values with the bit #x10000000 set are reserved as vendor-specific. -</para> - -<para> -The names and encodings of the standard KEYSYM values are contained in -<link linkend="keysym_encoding">Appendix A, Keysym Encoding</link>. -</para> -</sect1> - -<sect1 id='Encoding::Pointers'> -<title>Pointers</title> - -<para> -BUTTON values are numbered starting with one. -</para> - -</sect1> -<sect1 id='Encoding::Predefined_Atoms'> -<title>Predefined Atoms</title> -<indexterm zone="Encoding::Predefined_Atoms"><primary>Atom</primary><secondary>predefined</secondary></indexterm> - -<literallayout class="monospaced"> -PRIMARY 1 WM_NORMAL_HINTS 40 -SECONDARY 2 WM_SIZE_HINTS 41 -ARC 3 WM_ZOOM_HINTS 42 -ATOM 4 MIN_SPACE 43 -BITMAP 5 NORM_SPACE 44 -CARDINAL 6 MAX_SPACE 45 -COLORMAP 7 END_SPACE 46 -CURSOR 8 SUPERSCRIPT_X 47 -CUT_BUFFER0 9 SUPERSCRIPT_Y 48 -CUT_BUFFER1 10 SUBSCRIPT_X 49 -CUT_BUFFER2 11 SUBSCRIPT_Y 50 -CUT_BUFFER3 12 UNDERLINE_POSITION 51 -CUT_BUFFER4 13 UNDERLINE_THICKNESS 52 -CUT_BUFFER5 14 STRIKEOUT_ASCENT 53 -CUT_BUFFER6 15 STRIKEOUT_DESCENT 54 -CUT_BUFFER7 16 ITALIC_ANGLE 55 -DRAWABLE 17 X_HEIGHT 56 -FONT 18 QUAD_WIDTH 57 -INTEGER 19 WEIGHT 58 -PIXMAP 20 POINT_SIZE 59 -POINT 21 RESOLUTION 60 -RECTANGLE 22 COPYRIGHT 61 -RESOURCE_MANAGER 23 NOTICE 62 -RGB_COLOR_MAP 24 FONT_NAME 63 -RGB_BEST_MAP 25 FAMILY_NAME 64 -RGB_BLUE_MAP 26 FULL_NAME 65 -RGB_DEFAULT_MAP 27 CAP_HEIGHT 66 -RGB_GRAY_MAP 28 WM_CLASS 67 -RGB_GREEN_MAP 29 WM_TRANSIENT_FOR 68 -RGB_RED_MAP 30 -STRING 31 -VISUALID 32 -WINDOW 33 -WM_COMMAND 34 -WM_HINTS 35 -WM_CLIENT_MACHINE 36 -WM_ICON_NAME 37 -WM_ICON_SIZE 38 -WM_NAME 39 -</literallayout> -</sect1> - -<sect1 id='Encoding::Connection_Setup'> -<title>Connection Setup</title> - -<para> -For TCP connections, -displays on a given host are numbered starting from 0, -and the server for display N listens and accepts connections on port 6000 + N. -For DECnet connections, -displays on a given host are numbered starting from 0, -and the server for display N listens and accepts connections on the object -name obtained by concatenating "X$X" with the decimal representation of N, -for example, X$X0 and X$X1. -</para> - -<para> -Information sent by the client at connection setup: -</para> - -<literallayout class="monospaced"> - 1 byte-order - #x42 MSB first - #x6C LSB first - 1 unused - 2 CARD16 protocol-major-version - 2 CARD16 protocol-minor-version - 2 n length of authorization-protocol-name - 2 d length of authorization-protocol-data - 2 unused - n STRING8 authorization-protocol-name - p unused, p=pad(n) - d STRING8 authorization-protocol-data - q unused, q=pad(d) -</literallayout> - -<para> -Except where explicitly noted in the protocol, -all 16-bit and 32-bit quantities sent by the client must be transmitted -with the specified byte order, -and all 16-bit and 32-bit quantities returned by the server will be transmitted -with this byte order. -</para> - -<para> -Information received by the client if the connection is refused: -</para> - -<literallayout class="monospaced"> - 1 0 Failed - 1 n length of reason in bytes - 2 CARD16 protocol-major-version - 2 CARD16 protocol-minor-version - 2 (n+p)/4 length in 4-byte units of "additional data" - n STRING8 reason - p unused, p=pad(n) -</literallayout> - -<para> -Information received by the client if further authentication is required: -</para> - -<literallayout class="monospaced"> - 1 2 Authenticate - 5 unused - 2 (n+p)/4 length in 4-byte units of "additional data" - n STRING8 reason - p unused, p=pad(n) -</literallayout> - -<para> -Information received by the client if the connection is accepted: -</para> - -<literallayout class="monospaced"> - 1 1 Success - 1 unused - 2 CARD16 protocol-major-version - 2 CARD16 protocol-minor-version - 2 8+2n+(v+p+m)/4 length in 4-byte units of - "additional data" - 4 CARD32 release-number - 4 CARD32 resource-id-base - 4 CARD32 resource-id-mask - 4 CARD32 motion-buffer-size - 2 v length of vendor - 2 CARD16 maximum-request-length - 1 CARD8 number of SCREENs in roots - 1 n number for FORMATs in - pixmap-formats - 1 image-byte-order - 0 LSBFirst - 1 MSBFirst - 1 bitmap-format-bit-order - 0 LeastSignificant - 1 MostSignificant - 1 CARD8 bitmap-format-scanline-unit - 1 CARD8 bitmap-format-scanline-pad - 1 KEYCODE min-keycode - 1 KEYCODE max-keycode - 4 unused - v STRING8 vendor - p unused, p=pad(v) - 8n LISTofFORMAT pixmap-formats - m LISTofSCREEN roots (m is always a multiple of 4) -</literallayout> - -<literallayout class="monospaced"> -FORMAT - 1 CARD8 depth - 1 CARD8 bits-per-pixel - 1 CARD8 scanline-pad - 5 unused -</literallayout> - -<literallayout class="monospaced"> -SCREEN - 4 WINDOW root - 4 COLORMAP default-colormap - 4 CARD32 white-pixel - 4 CARD32 black-pixel - 4 SETofEVENT current-input-masks - 2 CARD16 width-in-pixels - 2 CARD16 height-in-pixels - 2 CARD16 width-in-millimeters - 2 CARD16 height-in-millimeters - 2 CARD16 min-installed-maps - 2 CARD16 max-installed-maps - 4 VISUALID root-visual - 1 backing-stores - 0 Never - 1 WhenMapped - 2 Always - 1 BOOL save-unders - 1 CARD8 root-depth - 1 CARD8 number of DEPTHs in allowed-depths - n LISTofDEPTH allowed-depths (n is always a - multiple of 4) -</literallayout> - -<literallayout class="monospaced"> -DEPTH - 1 CARD8 depth - 1 unused - 2 n number of VISUALTYPES in visuals - 4 unused - 24n LISTofVISUALTYPE visuals -</literallayout> - -<literallayout class="monospaced"> -VISUALTYPE - 4 VISUALID visual-id - 1 class - 0 StaticGray - 1 GrayScale - 2 StaticColor - 3 PseudoColor - 4 TrueColor - 5 DirectColor - 1 CARD8 bits-per-rgb-value - 2 CARD16 colormap-entries - 4 CARD32 red-mask - 4 CARD32 green-mask - 4 CARD32 blue-mask - 4 unused -</literallayout> -</sect1> - -<sect1 id='Encoding::Requests'> -<title>Requests</title> -<indexterm zone="Encoding::Requests"><primary>Request</primary><secondary>encoding</secondary></indexterm> - -<literallayout class="monospaced"> -<link linkend="requests:CreateWindow"><emphasis role='bold'>CreateWindow</emphasis></link> - 1 1 opcode - 1 CARD8 depth - 2 8+n request length - 4 WINDOW wid - 4 WINDOW parent - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 border-width - 2 class - 0 CopyFromParent - 1 InputOutput - 2 InputOnly - 4 VISUALID visual - 0 CopyFromParent - 4 BITMASK value-mask (has n bits set to 1) - #x00000001 background-pixmap - #x00000002 background-pixel - #x00000004 border-pixmap - #x00000008 border-pixel - #x00000010 bit-gravity - #x00000020 win-gravity - #x00000040 backing-store - #x00000080 backing-planes - #x00000100 backing-pixel - #x00000200 override-redirect - #x00000400 save-under - #x00000800 event-mask - #x00001000 do-not-propagate-mask - #x00002000 colormap - #x00004000 cursor - 4n LISTofVALUE value-list - - VALUEs - 4 PIXMAP background-pixmap - 0 None - 1 ParentRelative - 4 CARD32 background-pixel - 4 PIXMAP border-pixmap - 0 CopyFromParent - 4 CARD32 border-pixel - 1 BITGRAVITY bit-gravity - 1 WINGRAVITY win-gravity - 1 backing-store - 0 NotUseful - 1 WhenMapped - 2 Always - 4 CARD32 backing-planes - 4 CARD32 backing-pixel - 1 BOOL override-redirect - 1 BOOL save-under - 4 SETofEVENT event-mask - 4 SETofDEVICEEVENT do-not-propagate-mask - 4 COLORMAP colormap - 0 CopyFromParent - 4 CURSOR cursor - 0 None - -<link linkend="requests:ChangeWindowAttributes"><emphasis role='bold'>ChangeWindowAttributes</emphasis></link> - 1 2 opcode - 1 unused - 2 3+n request length - 4 WINDOW window - 4 BITMASK value-mask (has n bits set to 1) - encodings are the same as for CreateWindow - 4n LISTofVALUE value-list - encodings are the same as for CreateWindow - -<link linkend="requests:GetWindowAttributes"><emphasis role='bold'>GetWindowAttributes</emphasis></link> - 1 3 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -▶ - 1 1 Reply - 1 backing-store - 0 NotUseful - 1 WhenMapped - 2 Always - 2 CARD16 sequence number - 4 3 reply length - 4 VISUALID visual - 2 class - 1 InputOutput - 2 InputOnly - 1 BITGRAVITY bit-gravity - 1 WINGRAVITY win-gravity - 4 CARD32 backing-planes - 4 CARD32 backing-pixel - 1 BOOL save-under - 1 BOOL map-is-installed - 1 map-state - 0 Unmapped - 1 Unviewable - 2 Viewable - 1 BOOL override-redirect - 4 COLORMAP colormap - 0 None - 4 SETofEVENT all-event-masks - 4 SETofEVENT your-event-mask - 2 SETofDEVICEEVENT do-not-propagate-mask - 2 unused - -<link linkend="requests:DestroyWindow"><emphasis role='bold'>DestroyWindow</emphasis></link> - 1 4 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -<link linkend="requests:DestroySubwindows"><emphasis role='bold'>DestroySubwindows</emphasis></link> - 1 5 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -<link linkend="requests:ChangeSaveSet"><emphasis role='bold'>ChangeSaveSet</emphasis></link> - 1 6 opcode - 1 mode - 0 Insert - 1 Delete - 2 2 request length - 4 WINDOW window - -<link linkend="requests:ReparentWindow"><emphasis role='bold'>ReparentWindow</emphasis></link> - 1 7 opcode - 1 unused - 2 4 request length - 4 WINDOW window - 4 WINDOW parent - 2 INT16 x - 2 INT16 y - -<link linkend="requests:MapWindow"><emphasis role='bold'>MapWindow</emphasis></link> - 1 8 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -<link linkend="requests:MapSubwindows"><emphasis role='bold'>MapSubwindows</emphasis></link> - 1 9 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -<link linkend="requests:UnmapWindow"><emphasis role='bold'>UnmapWindow</emphasis></link> - 1 10 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -<link linkend="requests:UnmapSubwindows"><emphasis role='bold'>UnmapSubwindows</emphasis></link> - 1 11 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -<link linkend="requests:ConfigureWindow"><emphasis role='bold'>ConfigureWindow</emphasis></link> - 1 12 opcode - 1 unused - 2 3+n request length - 4 WINDOW window - 2 BITMASK value-mask (has n bits set to 1) - #x0001 x - #x0002 y - #x0004 width - #x0008 height - #x0010 border-width - #x0020 sibling - #x0040 stack-mode - 2 unused - 4n LISTofVALUE value-list - - VALUEs - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 border-width - 4 WINDOW sibling - 1 stack-mode - 0 Above - 1 Below - 2 TopIf - 3 BottomIf - 4 Opposite - -<link linkend="requests:CirculateWindow"><emphasis role='bold'>CirculateWindow</emphasis></link> - 1 13 opcode - 1 direction - 0 RaiseLowest - 1 LowerHighest - 2 2 request length - 4 WINDOW window - -<link linkend="requests:GetGeometry"><emphasis role='bold'>GetGeometry</emphasis></link> - 1 14 opcode - 1 unused - 2 2 request length - 4 DRAWABLE drawable - -▶ - 1 1 Reply - 1 CARD8 depth - 2 CARD16 sequence number - 4 0 reply length - 4 WINDOW root - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 border-width - 10 unused - -<link linkend="requests:QueryTree"><emphasis role='bold'>QueryTree</emphasis></link> - 1 15 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 n reply length - 4 WINDOW root - 4 WINDOW parent - 0 None - 2 n number of WINDOWs in children - 14 unused - 4n LISTofWINDOW children - -<link linkend="requests:InternAtom"><emphasis role='bold'>InternAtom</emphasis></link> - 1 16 opcode - 1 BOOL only-if-exists - 2 2+(n+p)/4 request length - 2 n length of name - 2 unused - n STRING8 name - p unused, p=pad(n) - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 4 ATOM atom - 0 None - 20 unused - -<link linkend="requests:GetAtomName"><emphasis role='bold'>GetAtomName</emphasis></link> - 1 17 opcode - 1 unused - 2 2 request length - 4 ATOM atom - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 2 n length of name - 22 unused - n STRING8 name - p unused, p=pad(n) - -<link linkend="requests:ChangeProperty"><emphasis role='bold'>ChangeProperty</emphasis></link> - 1 18 opcode - 1 mode - 0 Replace - 1 Prepend - 2 Append - 2 6+(n+p)/4 request length - 4 WINDOW window - 4 ATOM property - 4 ATOM type - 1 CARD8 format - 3 unused - 4 CARD32 length of data in format units - (= n for format = 8) - (= n/2 for format = 16) - (= n/4 for format = 32) - n LISTofBYTE data - (n is a multiple of 2 for format = 16) - (n is a multiple of 4 for format = 32) - p unused, p=pad(n) - - -<link linkend="requests:DeleteProperty"><emphasis role='bold'>DeleteProperty</emphasis></link> - 1 19 opcode - 1 unused - 2 3 request length - 4 WINDOW window - 4 ATOM property - -<link linkend="requests:GetProperty"><emphasis role='bold'>GetProperty</emphasis></link> - 1 20 opcode - 1 BOOL delete - 2 6 request length - 4 WINDOW window - 4 ATOM property - 4 ATOM type - 0 AnyPropertyType - 4 CARD32 long-offset - 4 CARD32 long-length - -▶ - 1 1 Reply - 1 CARD8 format - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 4 ATOM type - 0 None - 4 CARD32 bytes-after - 4 CARD32 length of value in format units - (= 0 for format = 0) - (= n for format = 8) - (= n/2 for format = 16) - (= n/4 for format = 32) - 12 unused - n LISTofBYTE value - (n is zero for format = 0) - (n is a multiple of 2 for format = 16) - (n is a multiple of 4 for format = 32) - p unused, p=pad(n) - -<link linkend="requests:ListProperties"><emphasis role='bold'>ListProperties</emphasis></link> - 1 21 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 n reply length - 2 n number of ATOMs in atoms - 22 unused - 4n LISTofATOM atoms - -<link linkend="requests:SetSelectionOwner"><emphasis role='bold'>SetSelectionOwner</emphasis></link> - 1 22 opcode - 1 unused - 2 4 request length - 4 WINDOW owner - 0 None - 4 ATOM selection - 4 TIMESTAMP time - 0 CurrentTime - -<link linkend="requests:GetSelectionOwner"><emphasis role='bold'>GetSelectionOwner</emphasis></link> - 1 23 opcode - 1 unused - 2 2 request length - 4 ATOM selection - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 4 WINDOW owner - 0 None - 20 unused - -<link linkend="requests:ConvertSelection"><emphasis role='bold'>ConvertSelection</emphasis></link> - 1 24 opcode - 1 unused - 2 6 request length - 4 WINDOW requestor - 4 ATOM selection - 4 ATOM target - 4 ATOM property - 0 None - 4 TIMESTAMP time - 0 CurrentTime - -<link linkend="requests:SendEvent"><emphasis role='bold'>SendEvent</emphasis></link> - 1 25 opcode - 1 BOOL propagate - 2 11 requestlength - 4 WINDOW destination - 0 PointerWindow - 1 InputFocus - 4 SETofEVENT event-mask - 32 event - standard event format (see <link linkend='Events'>the Events section</link>) - -<link linkend="requests:GrabPointer"><emphasis role='bold'>GrabPointer</emphasis></link> - 1 26 opcode - 1 BOOL owner-events - 2 6 request length - 4 WINDOW grab-window - 2 SETofPOINTEREVENT event-mask - 1 pointer-mode - 0 Synchronous - 1 Asynchronous - 1 keyboard-mode - 0 Synchronous - 1 Asynchronous - 4 WINDOW confine-to - 0 None - 4 CURSOR cursor - 0 None - 4 TIMESTAMP time - 0 CurrentTime - -▶ - 1 1 Reply - 1 status - 0 Success - 1 AlreadyGrabbed - 2 InvalidTime - 3 NotViewable - 4 Frozen - 2 CARD16 sequence number - 4 0 reply length - 24 unused - -<link linkend="requests:UngrabPointer"><emphasis role='bold'>UngrabPointer</emphasis></link> - 1 27 opcode - 1 unused - 2 2 request length - 4 TIMESTAMP time - 0 CurrentTime - -<link linkend="requests:GrabButton"><emphasis role='bold'>GrabButton</emphasis></link> - 1 28 opcode - 1 BOOL owner-events - 2 6 request length - 4 WINDOW grab-window - 2 SETofPOINTEREVENT event-mask - 1 pointer-mode - 0 Synchronous - 1 Asynchronous - 1 keyboard-mode - 0 Synchronous - 1 Asynchronous - 4 WINDOW confine-to - 0 None - 4 CURSOR cursor - 0 None - 1 BUTTON button - 0 AnyButton - 1 unused - 2 SETofKEYMASK modifiers - #x8000 AnyModifier - -<link linkend="requests:UngrabButton"><emphasis role='bold'>UngrabButton</emphasis></link> - 1 29 opcode - 1 BUTTON button - 0 AnyButton - 2 3 request length - 4 WINDOW grab-window - 2 SETofKEYMASK modifiers - #x8000 AnyModifier - 2 unused - -<link linkend="requests:ChangeActivePointerGrab"><emphasis role='bold'>ChangeActivePointerGrab</emphasis></link> - 1 30 opcode - 1 unused - 2 4 request length - 4 CURSOR cursor - 0 None - 4 TIMESTAMP time - 0 CurrentTime - 2 SETofPOINTEREVENT event-mask - 2 unused - -<link linkend="requests:GrabKeyboard"><emphasis role='bold'>GrabKeyboard</emphasis></link> - 1 31 opcode - 1 BOOL owner-events - 2 4 request length - 4 WINDOW grab-window - 4 TIMESTAMP time - 0 CurrentTime - 1 pointer-mode - 0 Synchronous - 1 Asynchronous - 1 keyboard-mode - 0 Synchronous - 1 Asynchronous - 2 unused - -▶ - 1 1 Reply - 1 status - 0 Success - 1 AlreadyGrabbed - 2 InvalidTime - 3 NotViewable - 4 Frozen - 2 CARD16 sequence number - 4 0 reply length - 24 unused - -<link linkend="requests:UngrabKeyboard"><emphasis role='bold'>UngrabKeyboard</emphasis></link> - 1 32 opcode - 1 unused - 2 2 request length - 4 TIMESTAMP time - 0 CurrentTime - -<link linkend="requests:GrabKey"><emphasis role='bold'>GrabKey</emphasis></link> - 1 33 opcode - 1 BOOL owner-events - 2 4 request length - 4 WINDOW grab-window - 2 SETofKEYMASK modifiers - #x8000 AnyModifier - 1 KEYCODE key - 0 AnyKey - 1 pointer-mode - 0 Synchronous - 1 Asynchronous - 1 keyboard-mode - 0 Synchronous - 1 Asynchronous - 3 unused - -<link linkend="requests:UngrabKey"><emphasis role='bold'>UngrabKey</emphasis></link> - 1 34 opcode - 1 KEYCODE key - 0 AnyKey - 2 3 request length - 4 WINDOW grab-window - 2 SETofKEYMASK modifiers - #x8000 AnyModifier - 2 unused - -<link linkend="requests:AllowEvents"><emphasis role='bold'>AllowEvents</emphasis></link> - 1 35 opcode - 1 mode - 0 AsyncPointer - 1 SyncPointer - 2 ReplayPointer - 3 AsyncKeyboard - 4 SyncKeyboard - 5 ReplayKeyboard - 6 AsyncBoth - 7 SyncBoth - 2 2 request length - 4 TIMESTAMP time - 0 CurrentTime - -<link linkend="requests:GrabServer"><emphasis role='bold'>GrabServer</emphasis></link> - 1 36 opcode - 1 unused - 2 1 request length - -<link linkend="requests:UngrabServer"><emphasis role='bold'>UngrabServer</emphasis></link> - 1 37 opcode - 1 unused - 2 1 request length - -<link linkend="requests:QueryPointer"><emphasis role='bold'>QueryPointer</emphasis></link> - 1 38 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -▶ - 1 1 Reply - 1 BOOL same-screen - 2 CARD16 sequence number - 4 0 reply length - 4 WINDOW root - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 win-x - 2 INT16 win-y - 2 SETofKEYBUTMASK mask - 6 unused - -<link linkend="requests:GetMotionEvents"><emphasis role='bold'>GetMotionEvents</emphasis></link> - 1 39 opcode - 1 unused - 2 4 request length - 4 WINDOW window - 4 TIMESTAMP start - 0 CurrentTime - 4 TIMESTAMP stop - 0 CurrentTime - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 2n reply length - 4 n number of TIMECOORDs in events - 20 unused - 8n LISTofTIMECOORD events - - TIMECOORD - 4 TIMESTAMP time - 2 INT16 x - 2 INT16 y - -<link linkend="requests:TranslateCoordinates"><emphasis role='bold'>TranslateCoordinates</emphasis></link> - 1 40 opcode - 1 unused - 2 4 request length - 4 WINDOW src-window - 4 WINDOW dst-window - 2 INT16 src-x - 2 INT16 src-y -▶ - 1 1 Reply - 1 BOOL same-screen - 2 CARD16 sequence number - 4 0 reply length - 4 WINDOW child - 0 None - 2 INT16 dst-x - 2 INT16 dst-y - 16 unused - -<link linkend="requests:WarpPointer"><emphasis role='bold'>WarpPointer</emphasis></link> - 1 41 opcode - 1 unused - 2 6 request length - 4 WINDOW src-window - 0 None - 4 WINDOW dst-window - 0 None - 2 INT16 src-x - 2 INT16 src-y - 2 CARD16 src-width - 2 CARD16 src-height - 2 INT16 dst-x - 2 INT16 dst-y - -<link linkend="requests:SetInputFocus"><emphasis role='bold'>SetInputFocus</emphasis></link> - 1 42 opcode - 1 revert-to - 0 None - 1 PointerRoot - 2 Parent - 2 3 request length - 4 WINDOW focus - 0 None - 1 PointerRoot - 4 TIMESTAMP time - 0 CurrentTime - -<link linkend="requests:GetInputFocus"><emphasis role='bold'>GetInputFocus</emphasis></link> - 1 43 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 revert-to - 0 None - 1 PointerRoot - 2 Parent - 2 CARD16 sequence number - 4 0 reply length - 4 WINDOW focus - 0 None - 1 PointerRoot - 20 unused - -<link linkend="requests:QueryKeymap"><emphasis role='bold'>QueryKeymap</emphasis></link> - 1 44 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 2 reply length - 32 LISTofCARD8 keys - -<link linkend="requests:OpenFont"><emphasis role='bold'>OpenFont</emphasis></link> - 1 45 opcode - 1 unused - 2 3+(n+p)/4 request length - 4 FONT fid - 2 n length of name - 2 unused - n STRING8 name - p unused, p=pad(n) - -<link linkend="requests:CloseFont"><emphasis role='bold'>CloseFont</emphasis></link> - 1 46 opcode - 1 unused - 2 2 request length - 4 FONT font - -<link linkend="requests:QueryFont"><emphasis role='bold'>QueryFont</emphasis></link> - 1 47 opcode - 1 unused - 2 2 request length - 4 FONTABLE font - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 7+2n+3m reply length - 12 CHARINFO min-bounds - 4 unused - 12 CHARINFO max-bounds - 4 unused - 2 CARD16 min-char-or-byte2 - 2 CARD16 max-char-or-byte2 - 2 CARD16 default-char - 2 n number of FONTPROPs in properties - 1 draw-direction - 0 LeftToRight - 1 RightToLeft - 1 CARD8 min-byte1 - 1 CARD8 max-byte1 - 1 BOOL all-chars-exist - 2 INT16 font-ascent - 2 INT16 font-descent - 4 m number of CHARINFOs in char-infos - 8n LISTofFONTPROP properties - 12m LISTofCHARINFO char-infos - - FONTPROP - 4 ATOM name - 4 <32-bits> value - - CHARINFO - 2 INT16 left-side-bearing - 2 INT16 right-side-bearing - 2 INT16 character-width - 2 INT16 ascent - 2 INT16 descent - 2 CARD16 attributes - -<link linkend="requests:QueryTextExtents"><emphasis role='bold'>QueryTextExtents</emphasis></link> - 1 48 opcode - 1 BOOL odd length, True if p = 2 - 2 2+(2n+p)/4 request length - 4 FONTABLE font - 2n STRING16 string - p unused, p=pad(2n) - -▶ - 1 1 Reply - 1 draw-direction - 0 LeftToRight - 1 RightToLeft - 2 CARD16 sequence number - 4 0 reply length - 2 INT16 font-ascent - 2 INT16 font-descent - 2 INT16 overall-ascent - 2 INT16 overall-descent - 4 INT32 overall-width - 4 INT32 overall-left - 4 INT32 overall-right - 4 unused - -<link linkend="requests:ListFonts"><emphasis role='bold'>ListFonts</emphasis></link> - 1 49 opcode - 1 unused - 2 2+(n+p)/4 request length - 2 CARD16 max-names - 2 n length of pattern - n STRING8 pattern - p unused, p=pad(n) - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 2 CARD16 number of STRs in names - 22 unused - n LISTofSTR names - p unused, p=pad(n) - -<link linkend="requests:ListFontsWithInfo"><emphasis role='bold'>ListFontsWithInfo</emphasis></link> - 1 50 opcode - 1 unused - 2 2+(n+p)/4 request length - 2 CARD16 max-names - 2 n length of pattern - n STRING8 pattern - p unused, p=pad(n) - -▶ (except for last in series) - 1 1 Reply - 1 n length of name in bytes - 2 CARD16 sequence number - 4 7+2m+(n+p)/4 reply length - 12 CHARINFO min-bounds - 4 unused - 12 CHARINFO max-bounds - 4 unused - 2 CARD16 min-char-or-byte2 - 2 CARD16 max-char-or-byte2 - 2 CARD16 default-char - 2 m number of FONTPROPs in properties - 1 draw-direction - 0 LeftToRight - 1 RightToLeft - 1 CARD8 min-byte1 - 1 CARD8 max-byte1 - 1 BOOL all-chars-exist - 2 INT16 font-ascent - 2 INT16 font-descent - 4 CARD32 replies-hint - 8m LISTofFONTPROP properties - n STRING8 name - p unused, p=pad(n) - - FONTPROP - encodings are the same as for QueryFont - - CHARINFO - encodings are the same as for QueryFont - -▶ (last in series) - 1 1 Reply - 1 0 last-reply indicator - 2 CARD16 sequence number - 4 7 reply length - 52 unused - -<link linkend="requests:SetFontPath"><emphasis role='bold'>SetFontPath</emphasis></link> - 1 51 opcode - 1 unused - 2 2+(n+p)/4 request length - 2 CARD16 number of STRs in path - 2 unused - n LISTofSTR path - p unused, p=pad(n) - -<link linkend="requests:GetFontPath"><emphasis role='bold'>GetFontPath</emphasis></link> - 1 52 opcode - 1 unused - 2 1 request list - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 2 CARD16 number of STRs in path - 22 unused - n LISTofSTR path - p unused, p=pad(n) - -<link linkend="requests:CreatePixmap"><emphasis role='bold'>CreatePixmap</emphasis></link> - 1 53 opcode - 1 CARD8 depth - 2 4 request length - 4 PIXMAP pid - 4 DRAWABLE drawable - 2 CARD16 width - 2 CARD16 height - -<link linkend="requests:FreePixmap"><emphasis role='bold'>FreePixmap</emphasis></link> - 1 54 opcode - 1 unused - 2 2 request length - 4 PIXMAP pixmap - -<link linkend="requests:CreateGC"><emphasis role='bold'>CreateGC</emphasis></link> - 1 55 opcode - 1 unused - 2 4+n request length - 4 GCONTEXT cid - 4 DRAWABLE drawable - 4 BITMASK value-mask (has n bits set to 1) - #x00000001 function - #x00000002 plane-mask - #x00000004 foreground - #x00000008 background - #x00000010 line-width - #x00000020 line-style - #x00000040 cap-style - #x00000080 join-style - #x00000100 fill-style - #x00000200 fill-rule - #x00000400 tile - #x00000800 stipple - #x00001000 tile-stipple-x-origin - #x00002000 tile-stipple-y-origin - #x00004000 font - #x00008000 subwindow-mode - #x00010000 graphics-exposures - #x00020000 clip-x-origin - #x00040000 clip-y-origin - #x00080000 clip-mask - #x00100000 dash-offset - #x00200000 dashes - #x00400000 arc-mode - 4n LISTofVALUE value-list - - VALUEs - 1 function - 0 Clear - 1 And - 2 AndReverse - 3 Copy - 4 AndInverted - 5 NoOp - 6 Xor - 7 Or - 8 Nor - 9 Equiv - 10 Invert - 11 OrReverse - 12 CopyInverted - 13 OrInverted - 14 Nand - 15 Set - 4 CARD32 plane-mask - 4 CARD32 foreground - 4 CARD32 background - 2 CARD16 line-width - 1 line-style - 0 Solid - 1 OnOffDash - 2 DoubleDash - 1 cap-style - 0 NotLast - 1 Butt - 2 Round - 3 Projecting - 1 join-style - 0 Miter - 1 Round - 2 Bevel - 1 fill-style - 0 Solid - 1 Tiled - 2 Stippled - 3 OpaqueStippled - 1 fill-rule - 0 EvenOdd - 1 Winding - 4 PIXMAP tile - 4 PIXMAP stipple - 2 INT16 tile-stipple-x-origin - 2 INT16 tile-stipple-y-origin - 4 FONT font - 1 subwindow-mode - 0 ClipByChildren - 1 IncludeInferiors - 1 BOOL graphics-exposures - 2 INT16 clip-x-origin - 2 INT16 clip-y-origin - 4 PIXMAP clip-mask - 0 None - 2 CARD16 dash-offset - 1 CARD8 dashes - 1 arc-mode - 0 Chord - 1 PieSlice - -<link linkend="requests:ChangeGC"><emphasis role='bold'>ChangeGC</emphasis></link> - 1 56 opcode - 1 unused - 2 3+n request length - 4 GCONTEXT gc - 4 BITMASK value-mask (has n bits set to 1) - encodings are the same as for CreateGC - 4n LISTofVALUE value-list - encodings are the same as for CreateGC - -<link linkend="requests:CopyGC"><emphasis role='bold'>CopyGC</emphasis></link> - 1 57 opcode - 1 unused - 2 4 request length - 4 GCONTEXT src-gc - 4 GCONTEXT dst-gc - 4 BITMASK value-mask - encodings are the same as for CreateGC - -<link linkend="requests:SetDashes"><emphasis role='bold'>SetDashes</emphasis></link> - 1 58 opcode - 1 unused - 2 3+(n+p)/4 request length - 4 GCONTEXT gc - 2 CARD16 dash-offset - 2 n length of dashes - n LISTofCARD8 dashes - p unused, p=pad(n) - -<link linkend="requests:SetClipRectangles"><emphasis role='bold'>SetClipRectangles</emphasis></link> - 1 59 opcode - 1 ordering - 0 UnSorted - 1 YSorted - 2 YXSorted - 3 YXBanded - 2 3+2n request length - 4 GCONTEXT gc - 2 INT16 clip-x-origin - 2 INT16 clip-y-origin - 8n LISTofRECTANGLE rectangles - -<link linkend="requests:FreeGC"><emphasis role='bold'>FreeGC</emphasis></link> - 1 60 opcode - 1 unused - 2 2 request length - 4 GCONTEXT gc - -<link linkend="requests:ClearArea"><emphasis role='bold'>ClearArea</emphasis></link> - 1 61 opcode - 1 BOOL exposures - 2 4 request length - 4 WINDOW window - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - -<link linkend="requests:CopyArea"><emphasis role='bold'>CopyArea</emphasis></link> - 1 62 opcode - 1 unused - 2 7 request length - 4 DRAWABLE src-drawable - 4 DRAWABLE dst-drawable - 4 GCONTEXT gc - 2 INT16 src-x - 2 INT16 src-y - 2 INT16 dst-x - 2 INT16 dst-y - 2 CARD16 width - 2 CARD16 height - -<link linkend="requests:CopyPlane"><emphasis role='bold'>CopyPlane</emphasis></link> - 1 63 opcode - 1 unused - 2 8 request length - 4 DRAWABLE src-drawable - 4 DRAWABLE dst-drawable - 4 GCONTEXT gc - 2 INT16 src-x - 2 INT16 src-y - 2 INT16 dst-x - 2 INT16 dst-y - 2 CARD16 width - 2 CARD16 height - 4 CARD32 bit-plane - -<link linkend="requests:PolyPoint"><emphasis role='bold'>PolyPoint</emphasis></link> - 1 64 opcode - 1 coordinate-mode - 0 Origin - 1 Previous - 2 3+n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 4n LISTofPOINT points - -<link linkend="requests:PolyLine"><emphasis role='bold'>PolyLine</emphasis></link> - 1 65 opcode - 1 coordinate-mode - 0 Origin - 1 Previous - 2 3+n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 4n LISTofPOINT points - -<link linkend="requests:PolySegment"><emphasis role='bold'>PolySegment</emphasis></link> - 1 66 opcode - 1 unused - 2 3+2n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 8n LISTofSEGMENT segments - - SEGMENT - 2 INT16 x1 - 2 INT16 y1 - 2 INT16 x2 - 2 INT16 y2 - -<link linkend="requests:PolyRectangle"><emphasis role='bold'>PolyRectangle</emphasis></link> - 1 67 opcode - 1 unused - 2 3+2n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 8n LISTofRECTANGLE rectangles - -<link linkend="requests:PolyArc"><emphasis role='bold'>PolyArc</emphasis></link> - 1 68 opcode - 1 unused - 2 3+3n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 12n LISTofARC arcs - -<link linkend="requests:FillPoly"><emphasis role='bold'>FillPoly</emphasis></link> - 1 69 opcode - 1 unused - 2 4+n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 1 shape - 0 Complex - 1 Nonconvex - 2 Convex - 1 coordinate-mode - 0 Origin - 1 Previous - 2 unused - 4n LISTofPOINT points - -<link linkend="requests:PolyFillRectangle"><emphasis role='bold'>PolyFillRectangle</emphasis></link> - 1 70 opcode - 1 unused - 2 3+2n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 8n LISTofRECTANGLE rectangles - -<link linkend="requests:PolyFillArc"><emphasis role='bold'>PolyFillArc</emphasis></link> - 1 71 opcode - 1 unused - 2 3+3n request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 12n LISTofARC arcs - -<link linkend="requests:PutImage"><emphasis role='bold'>PutImage</emphasis></link> - 1 72 opcode - 1 format - 0 Bitmap - 1 XYPixmap - 2 ZPixmap - 2 6+(n+p)/4 request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 2 CARD16 width - 2 CARD16 height - 2 INT16 dst-x - 2 INT16 dst-y - 1 CARD8 left-pad - 1 CARD8 depth - 2 unused - n LISTofBYTE data - p unused, p=pad(n) - -<link linkend="requests:GetImage"><emphasis role='bold'>GetImage</emphasis></link> - 1 73 opcode - 1 format - 1 XYPixmap - 2 ZPixmap - 2 5 request length - 4 DRAWABLE drawable - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 4 CARD32 plane-mask - -▶ - 1 1 Reply - 1 CARD8 depth - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 4 VISUALID visual - 0 None - 20 unused - n LISTofBYTE data - p unused, p=pad(n) - -<link linkend="requests:PolyText8"><emphasis role='bold'>PolyText8</emphasis></link> - 1 74 opcode - 1 unused - 2 4+(n+p)/4 request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 2 INT16 x - 2 INT16 y - n LISTofTEXTITEM8 items - p unused, p=pad(n) (p is always 0 - or 1) - - TEXTITEM8 - 1 m length of string (cannot be 255) - 1 INT8 delta - m STRING8 string - or - 1 255 font-shift indicator - 1 font byte 3 (most-significant) - 1 font byte 2 - 1 font byte 1 - 1 font byte 0 (least-significant) - -<link linkend="requests:PolyText16"><emphasis role='bold'>PolyText16</emphasis></link> - 1 75 opcode - 1 unused - 2 4+(n+p)/4 request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 2 INT16 x - 2 INT16 y - n LISTofTEXTITEM16 items - p unused, p=pad(n) (p must be 0 or - 1) - - TEXTITEM16 - 1 m number of CHAR2Bs in string - (cannot be 255) - 1 INT8 delta - 2m STRING16 string - or - 1 255 font-shift indicator - 1 font byte 3 (most-significant) - 1 font byte 2 - 1 font byte 1 - 1 font byte 0 (least-significant) - -<link linkend="requests:ImageText8"><emphasis role='bold'>ImageText8</emphasis></link> - 1 76 opcode - 1 n length of string - 2 4+(n+p)/4 request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 2 INT16 x - 2 INT16 y - n STRING8 string - p unused, p=pad(n) - -<link linkend="requests:ImageText16"><emphasis role='bold'>ImageText16</emphasis></link> - 1 77 opcode - 1 n number of CHAR2Bs in string - 2 4+(2n+p)/4 request length - 4 DRAWABLE drawable - 4 GCONTEXT gc - 2 INT16 x - 2 INT16 y - 2n STRING16 string - p unused, p=pad(2n) - -<link linkend="requests:CreateColormap"><emphasis role='bold'>CreateColormap</emphasis></link> - 1 78 opcode - 1 alloc - 0 None - 1 All - 2 4 request length - 4 COLORMAP mid - 4 WINDOW window - 4 VISUALID visual - -<link linkend="requests:FreeColormap"><emphasis role='bold'>FreeColormap</emphasis></link> - 1 79 opcode - 1 unused - 2 2 request length - 4 COLORMAP cmap - -<link linkend="requests:CopyColormapAndFree"><emphasis role='bold'>CopyColormapAndFree</emphasis></link> - 1 80 opcode - 1 unused - 2 3 request length - 4 COLORMAP mid - 4 COLORMAP src-cmap - -<link linkend="requests:InstallColormap"><emphasis role='bold'>InstallColormap</emphasis></link> - 1 81 opcode - 1 unused - 2 2 request length - 4 COLORMAP cmap - -<link linkend="requests:UninstallColormap"><emphasis role='bold'>UninstallColormap</emphasis></link> - 1 82 opcode - 1 unused - 2 2 request length - 4 COLORMAP cmap - -<link linkend="requests:ListInstalledColormaps"><emphasis role='bold'>ListInstalledColormaps</emphasis></link> - 1 83 opcode - 1 unused - 2 2 request length - 4 WINDOW window - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 n reply length - 2 n number of COLORMAPs in cmaps - 22 unused - 4n LISTofCOLORMAP cmaps - -<link linkend="requests:AllocColor"><emphasis role='bold'>AllocColor</emphasis></link> - 1 84 opcode - 1 unused - 2 4 request length - 4 COLORMAP cmap - 2 CARD16 red - 2 CARD16 green - 2 CARD16 blue - 2 unused - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 2 CARD16 red - 2 CARD16 green - 2 CARD16 blue - 2 unused - 4 CARD32 pixel - 12 unused - -<link linkend="requests:AllocNamedColor"><emphasis role='bold'>AllocNamedColor</emphasis></link> - 1 85 opcode - 1 unused - 2 3+(n+p)/4 request length - 4 COLORMAP cmap - 2 n length of name - 2 unused - n STRING8 name - p unused, p=pad(n) - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 4 CARD32 pixel - 2 CARD16 exact-red - 2 CARD16 exact-green - 2 CARD16 exact-blue - 2 CARD16 visual-red - 2 CARD16 visual-green - 2 CARD16 visual-blue - 8 unused - -<link linkend="requests:AllocColorCells"><emphasis role='bold'>AllocColorCells</emphasis></link> - 1 86 opcode - 1 BOOL contiguous - 2 3 request length - 4 COLORMAP cmap - 2 CARD16 colors - 2 CARD16 planes - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 n+m reply length - 2 n number of CARD32s in pixels - 2 m number of CARD32s in masks - 20 unused - 4n LISTofCARD32 pixels - 4m LISTofCARD32 masks - -<link linkend="requests:AllocColorPlanes"><emphasis role='bold'>AllocColorPlanes</emphasis></link> - 1 87 opcode - 1 BOOL contiguous - 2 4 request length - 4 COLORMAP cmap - 2 CARD16 colors - 2 CARD16 reds - 2 CARD16 greens - 2 CARD16 blues - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 n reply length - 2 n number of CARD32s in pixels - 2 unused - 4 CARD32 red-mask - 4 CARD32 green-mask - 4 CARD32 blue-mask - 8 unused - 4n LISTofCARD32 pixels - -<link linkend="requests:FreeColors"><emphasis role='bold'>FreeColors</emphasis></link> - 1 88 opcode - 1 unused - 2 3+n request length - 4 COLORMAP cmap - 4 CARD32 plane-mask - 4n LISTofCARD32 pixels - -<link linkend="requests:StoreColors"><emphasis role='bold'>StoreColors</emphasis></link> - 1 89 opcode - 1 unused - 2 2+3n request length - 4 COLORMAP cmap - 12n LISTofCOLORITEM items - - COLORITEM - 4 CARD32 pixel - 2 CARD16 red - 2 CARD16 green - 2 CARD16 blue - 1 do-red, do-green, do-blue - #x01 do-red (1 is True, 0 is False) - #x02 do-green (1 is True, 0 is False) - #x04 do-blue (1 is True, 0 is False) - #xF8 unused - 1 unused - -<link linkend="requests:StoreNamedColor"><emphasis role='bold'>StoreNamedColor</emphasis></link> - 1 90 opcode - 1 do-red, do-green, do-blue - #x01 do-red (1 is True, 0 is False) - #x02 do-green (1 is True, 0 is False) - #x04 do-blue (1 is True, 0 is False) - #xF8 unused - 2 4+(n+p)/4 request length - 4 COLORMAP cmap - 4 CARD32 pixel - 2 n length of name - 2 unused - n STRING8 name - p unused, p=pad(n) - -<link linkend="requests:QueryColors"><emphasis role='bold'>QueryColors</emphasis></link> - 1 91 opcode - 1 unused - 2 2+n request length - 4 COLORMAP cmap - 4n LISTofCARD32 pixels - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 2n reply length - 2 n number of RGBs in colors - 22 unused - 8n LISTofRGB colors - - RGB - 2 CARD16 red - 2 CARD16 green - 2 CARD16 blue - 2 unused - -<link linkend="requests:LookupColor"><emphasis role='bold'>LookupColor</emphasis></link> - 1 92 opcode - 1 unused - 2 3+(n+p)/4 request length - 4 COLORMAP cmap - 2 n length of name - 2 unused - n STRING8 name - p unused, p=pad(n) - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 2 CARD16 exact-red - 2 CARD16 exact-green - 2 CARD16 exact-blue - 2 CARD16 visual-red - 2 CARD16 visual-green - 2 CARD16 visual-blue - 12 unused - -<link linkend="requests:CreateCursor"><emphasis role='bold'>CreateCursor</emphasis></link> - 1 93 opcode - 1 unused - 2 8 request length - 4 CURSOR cid - 4 PIXMAP source - 4 PIXMAP mask - 0 None - 2 CARD16 fore-red - 2 CARD16 fore-green - 2 CARD16 fore-blue - 2 CARD16 back-red - 2 CARD16 back-green - 2 CARD16 back-blue - 2 CARD16 x - 2 CARD16 y - -<link linkend="requests:CreateGlyphCursor"><emphasis role='bold'>CreateGlyphCursor</emphasis></link> - 1 94 opcode - 1 unused - 2 8 request length - 4 CURSOR cid - 4 FONT source-font - 4 FONT mask-font - 0 None - 2 CARD16 source-char - 2 CARD16 mask-char - 2 CARD16 fore-red - 2 CARD16 fore-green - 2 CARD16 fore-blue - 2 CARD16 back-red - 2 CARD16 back-green - 2 CARD16 back-blue - -<link linkend="requests:FreeCursor"><emphasis role='bold'>FreeCursor</emphasis></link> - 1 95 opcode - 1 unused - 2 2 request length - 4 CURSOR cursor - -<link linkend="requests:RecolorCursor"><emphasis role='bold'>RecolorCursor</emphasis></link> - 1 96 opcode - 1 unused - 2 5 request length - 4 CURSOR cursor - 2 CARD16 fore-red - 2 CARD16 fore-green - 2 CARD16 fore-blue - 2 CARD16 back-red - 2 CARD16 back-green - 2 CARD16 back-blue - -<link linkend="requests:QueryBestSize"><emphasis role='bold'>QueryBestSize</emphasis></link> - 1 97 opcode - 1 class - 0 Cursor - 1 Tile - 2 Stipple - 2 3 request length - 4 DRAWABLE drawable - 2 CARD16 width - 2 CARD16 height - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 2 CARD16 width - 2 CARD16 height - 20 unused - -<link linkend="requests:QueryExtension"><emphasis role='bold'>QueryExtension</emphasis></link> - 1 98 opcode - 1 unused - 2 2+(n+p)/4 request length - 2 n length of name - 2 unused - n STRING8 name - p unused, p=pad(n) - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 1 BOOL present - 1 CARD8 major-opcode - 1 CARD8 first-event - 1 CARD8 first-error - 20 unused - -<link linkend="requests:ListExtensions"><emphasis role='bold'>ListExtensions</emphasis></link> - 1 99 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 CARD8 number of STRs in names - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 24 unused - n LISTofSTR names - p unused, p=pad(n) - -<link linkend="requests:ChangeKeyboardMapping"><emphasis role='bold'>ChangeKeyboardMapping</emphasis></link> - 1 100 opcode - 1 n keycode-count - 2 2+nm request length - 1 KEYCODE first-keycode - 1 m keysyms-per-keycode - 2 unused - 4nm LISTofKEYSYM keysyms - -<link linkend="requests:GetKeyboardMapping"><emphasis role='bold'>GetKeyboardMapping</emphasis></link> - 1 101 opcode - 1 unused - 2 2 request length - 1 KEYCODE first-keycode - 1 m count - 2 unused - -▶ - 1 1 Reply - 1 n keysyms-per-keycode - 2 CARD16 sequence number - 4 nm reply length (m = count field - from the request) - 24 unused - 4nm LISTofKEYSYM keysyms - -<link linkend="requests:ChangeKeyboardControl"><emphasis role='bold'>ChangeKeyboardControl</emphasis></link> - 1 102 opcode - 1 unused - 2 2+n request length - 4 BITMASK value-mask (has n bits set to 1) - #x0001 key-click-percent - #x0002 bell-percent - #x0004 bell-pitch - #x0008 bell-duration - #x0010 led - #x0020 led-mode - #x0040 key - #x0080 auto-repeat-mode - 4n LISTofVALUE value-list - - VALUEs - 1 INT8 key-click-percent - 1 INT8 bell-percent - 2 INT16 bell-pitch - 2 INT16 bell-duration - 1 CARD8 led - 1 led-mode - 0 Off - 1 On - 1 KEYCODE key - 1 auto-repeat-mode - 0 Off - 1 On - 2 Default - -<link linkend="requests:GetKeyboardControl"><emphasis role='bold'>GetKeyboardControl</emphasis></link> - 1 103 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 global-auto-repeat - 0 Off - 1 On - 2 CARD16 sequence number - 4 5 reply length - 4 CARD32 led-mask - 1 CARD8 key-click-percent - 1 CARD8 bell-percent - 2 CARD16 bell-pitch - 2 CARD16 bell-duration - 2 unused - 32 LISTofCARD8 auto-repeats - -<link linkend="requests:Bell"><emphasis role='bold'>Bell</emphasis></link> - 1 104 opcode - 1 INT8 percent - 2 1 request length - -<link linkend="requests:ChangePointerControl"><emphasis role='bold'>ChangePointerControl</emphasis></link> - 1 105 opcode - 1 unused - 2 3 request length - 2 INT16 acceleration-numerator - 2 INT16 acceleration-denominator - 2 INT16 threshold - 1 BOOL do-acceleration - 1 BOOL do-threshold - -<link linkend="requests:GetPointerControl"><emphasis role='bold'>GetPointerControl</emphasis></link> - 1 106 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 2 CARD16 acceleration-numerator - 2 CARD16 acceleration-denominator - 2 CARD16 threshold - 18 unused - -<link linkend="requests:SetScreenSaver"><emphasis role='bold'>SetScreenSaver</emphasis></link> - 1 107 opcode - 1 unused - 2 3 request length - 2 INT16 timeout - 2 INT16 interval - 1 prefer-blanking - 0 No - 1 Yes - 2 Default - 1 allow-exposures - 0 No - 1 Yes - 2 Default - 2 unused - -<link linkend="requests:GetScreenSaver"><emphasis role='bold'>GetScreenSaver</emphasis></link> - 1 108 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 unused - 2 CARD16 sequence number - 4 0 reply length - 2 CARD16 timeout - 2 CARD16 interval - 1 prefer-blanking - 0 No - 1 Yes - 1 allow-exposures - 0 No - 1 Yes - 18 unused - -<link linkend="requests:ChangeHosts"><emphasis role='bold'>ChangeHosts</emphasis></link> - 1 109 opcode - 1 mode - 0 Insert - 1 Delete - 2 2+(n+p)/4 request length - 1 family - 0 Internet - 1 DECnet - 2 Chaos - 1 unused - 2 n length of address - n LISTofCARD8 address - p unused, p=pad(n) - -<link linkend="requests:ListHosts"><emphasis role='bold'>ListHosts</emphasis></link> - 1 110 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 mode - 0 Disabled - 1 Enabled - 2 CARD16 sequence number - 4 n/4 reply length - 2 CARD16 number of HOSTs in hosts - 22 unused - n LISTofHOST hosts (n always a multiple of 4) - -<link linkend="requests:SetAccessControl"><emphasis role='bold'>SetAccessControl</emphasis></link> - 1 111 opcode - 1 mode - 0 Disable - 1 Enable - 2 1 request length - -<link linkend="requests:SetCloseDownMode"><emphasis role='bold'>SetCloseDownMode</emphasis></link> - 1 112 opcode - 1 mode - 0 Destroy - 1 RetainPermanent - 2 RetainTemporary - 2 1 request length - -<link linkend="requests:KillClient"><emphasis role='bold'>KillClient</emphasis></link> - 1 113 opcode - 1 unused - 2 2 request length - 4 CARD32 resource - 0 AllTemporary - -<link linkend="requests:RotateProperties"><emphasis role='bold'>RotateProperties</emphasis></link> - 1 114 opcode - 1 unused - 2 3+n request length - 4 WINDOW window - 2 n number of properties - 2 INT16 delta - 4n LISTofATOM properties - -<link linkend="requests:ForceScreenSaver"><emphasis role='bold'>ForceScreenSaver</emphasis></link> - 1 115 opcode - 1 mode - 0 Reset - 1 Activate - 2 1 request length - -<link linkend="requests:SetPointerMapping"><emphasis role='bold'>SetPointerMapping</emphasis></link> - 1 116 opcode - 1 n length of map - 2 1+(n+p)/4 request length - n LISTofCARD8 map - p unused, p=pad(n) - -▶ - 1 1 Reply - 1 status - 0 Success - 1 Busy - 2 CARD16 sequence number - 4 0 reply length - 24 unused - -<link linkend="requests:GetPointerMapping"><emphasis role='bold'>GetPointerMapping</emphasis></link> - 1 117 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 n length of map - 2 CARD16 sequence number - 4 (n+p)/4 reply length - 24 unused - n LISTofCARD8 map - p unused, p=pad(n) - -<link linkend="requests:SetModifierMapping"><emphasis role='bold'>SetModifierMapping</emphasis></link> - 1 118 opcode - 1 n keycodes-per-modifier - 2 1+2n request length - 8n LISTofKEYCODE keycodes - -▶ - 1 1 Reply - 1 status - 0 Success - 1 Busy - 2 Failed - 2 CARD16 sequence number - 4 0 reply length - 24 unused - -<link linkend="requests:GetModifierMapping"><emphasis role='bold'>GetModifierMapping</emphasis></link> - 1 119 opcode - 1 unused - 2 1 request length - -▶ - 1 1 Reply - 1 n keycodes-per-modifier - 2 CARD16 sequence number - 4 2n reply length - 24 unused - 8n LISTofKEYCODE keycodes - -<link linkend="requests:NoOperation"><emphasis role='bold'>NoOperation</emphasis></link> - 1 127 opcode - 1 unused - 2 1+n request length - 4n unused -</literallayout> -</sect1> - -<sect1 id='Encoding::Events'> -<title>Events</title> -<indexterm zone="Encoding::Events"><primary>Event</primary><secondary>encoding</secondary></indexterm> - -<literallayout class="monospaced"> -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link> - 1 2 code - 1 KEYCODE detail - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 BOOL same-screen - 1 unused - -<link linkend="events:KeyRelease"><emphasis role='bold'>KeyRelease</emphasis></link> - 1 3 code - 1 KEYCODE detail - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 BOOL same-screen - 1 unused - -<link linkend="events:ButtonPress"><emphasis role='bold'>ButtonPress</emphasis></link> - 1 4 code - 1 BUTTON detail - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 BOOL same-screen - 1 unused - -<link linkend="events:ButtonRelease"><emphasis role='bold'>ButtonRelease</emphasis></link> - 1 5 code - 1 BUTTON detail - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 BOOL same-screen - 1 unused - -<link linkend="events:MotionNotify"><emphasis role='bold'>MotionNotify</emphasis></link> - 1 6 code - 1 detail - 0 Normal - 1 Hint - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 BOOL same-screen - 1 unused - -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link> - 1 7 code - 1 detail - 0 Ancestor - 1 Virtual - 2 Inferior - 3 Nonlinear - 4 NonlinearVirtual - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 mode - 0 Normal - 1 Grab - 2 Ungrab - 1 same-screen, focus - #x01 focus (1 is True, 0 is False) - #x02 same-screen (1 is True, 0 is False) - #xFC unused - -<link linkend="events:LeaveNotify"><emphasis role='bold'>LeaveNotify</emphasis></link> - 1 8 code - 1 detail - 0 Ancestor - 1 Virtual - 2 Inferior - 3 Nonlinear - 4 NonlinearVirtual - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW root - 4 WINDOW event - 4 WINDOW child - 0 None - 2 INT16 root-x - 2 INT16 root-y - 2 INT16 event-x - 2 INT16 event-y - 2 SETofKEYBUTMASK state - 1 mode - 0 Normal - 1 Grab - 2 Ungrab - 1 same-screen, focus - #x01 focus (1 is True, 0 is False) - #x02 same-screen (1 is True, 0 is False) - #xFC unused - -<link linkend="events:FocusIn"><emphasis role='bold'>FocusIn</emphasis></link> - 1 9 code - 1 detail - 0 Ancestor - 1 Virtual - 2 Inferior - 3 Nonlinear - 4 NonlinearVirtual - 5 Pointer - 6 PointerRoot - 7 None - 2 CARD16 sequence number - 4 WINDOW event - 1 mode - 0 Normal - 1 Grab - 2 Ungrab - 3 WhileGrabbed - 23 unused - -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link> - 1 10 code - 1 detail - 0 Ancestor - 1 Virtual - 2 Inferior - 3 Nonlinear - 4 NonlinearVirtual - 5 Pointer - 6 PointerRoot - 7 None - 2 CARD16 sequence number - 4 WINDOW event - 1 mode - 0 Normal - 1 Grab - 2 Ungrab - 3 WhileGrabbed - 23 unused - -<link linkend="events:KeymapNotify"><emphasis role='bold'>KeymapNotify</emphasis></link> - 1 11 code - 31 LISTofCARD8 keys (byte for keycodes 0-7 is - omitted) - -<link linkend="events:Expose"><emphasis role='bold'>Expose</emphasis></link> - 1 12 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW window - 2 CARD16 x - 2 CARD16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 count - 14 unused - -<link linkend="events:GraphicsExposure"><emphasis role='bold'>GraphicsExposure</emphasis></link> - 1 13 code - 1 unused - 2 CARD16 sequence number - 4 DRAWABLE drawable - 2 CARD16 x - 2 CARD16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 minor-opcode - 2 CARD16 count - 1 CARD8 major-opcode - 11 unused - -<link linkend="events:NoExposure"><emphasis role='bold'>NoExposure</emphasis></link> - 1 14 code - 1 unused - 2 CARD16 sequence number - 4 DRAWABLE drawable - 2 CARD16 minor-opcode - 1 CARD8 major-opcode - 21 unused - -<link linkend="events:VisibilityNotify"><emphasis role='bold'>VisibilityNotify</emphasis></link> - 1 15 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW window - 1 state - 0 Unobscured - 1 PartiallyObscured - 2 FullyObscured - 23 unused - -<link linkend="events:CreateNotify"><emphasis role='bold'>CreateNotify</emphasis></link> - 1 16 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW parent - 4 WINDOW window - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 border-width - 1 BOOL override-redirect - 9 unused - -<link linkend="events:DestroyNotify"><emphasis role='bold'>DestroyNotify</emphasis></link> - 1 17 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 20 unused - -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link> - 1 18 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 1 BOOL from-configure - 19 unused - -<link linkend="events:MapNotify"><emphasis role='bold'>MapNotify</emphasis></link> - 1 19 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 1 BOOL override-redirect - 19 unused - -<link linkend="events:MapRequest"><emphasis role='bold'>MapRequest</emphasis></link> - 1 20 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW parent - 4 WINDOW window - 20 unused - -<link linkend="events:ReparentNotify"><emphasis role='bold'>ReparentNotify</emphasis></link> - 1 21 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 4 WINDOW parent - 2 INT16 x - 2 INT16 y - 1 BOOL override-redirect - 11 unused - -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link> - 1 22 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 4 WINDOW above-sibling - 0 None - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 border-width - 1 BOOL override-redirect - 5 unused - -<link linkend="events:ConfigureRequest"><emphasis role='bold'>ConfigureRequest</emphasis></link> - 1 23 code - 1 stack-mode - 0 Above - 1 Below - 2 TopIf - 3 BottomIf - 4 Opposite - 2 CARD16 sequence number - 4 WINDOW parent - 4 WINDOW window - 4 WINDOW sibling - 0 None - 2 INT16 x - 2 INT16 y - 2 CARD16 width - 2 CARD16 height - 2 CARD16 border-width - 2 BITMASK value-mask - #x0001 x - #x0002 y - #x0004 width - #x0008 height - #x0010 border-width - #x0020 sibling - #x0040 stack-mode - 4 unused - -<link linkend="events:GravityNotify"><emphasis role='bold'>GravityNotify</emphasis></link> - 1 24 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 2 INT16 x - 2 INT16 y - 16 unused - -<link linkend="events:ResizeRequest"><emphasis role='bold'>ResizeRequest</emphasis></link> - 1 25 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW window - 2 CARD16 width - 2 CARD16 height - 20 unused - -<link linkend="events:CirculateNotify"><emphasis role='bold'>CirculateNotify</emphasis></link> - 1 26 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW event - 4 WINDOW window - 4 WINDOW unused - 1 place - 0 Top - 1 Bottom - 15 unused - -<link linkend="events:CirculateRequest"><emphasis role='bold'>CirculateRequest</emphasis></link> - 1 27 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW parent - 4 WINDOW window - 4 unused - 1 place - 0 Top - 1 Bottom - 15 unused - -<link linkend="events:PropertyNotify"><emphasis role='bold'>PropertyNotify</emphasis></link> - 1 28 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW window - 4 ATOM atom - 4 TIMESTAMP time - 1 state - 0 NewValue - 1 Deleted - 15 unused - -<link linkend="events:SelectionClear"><emphasis role='bold'>SelectionClear</emphasis></link> - 1 29 code - 1 unused - 2 CARD16 sequence number - 4 TIMESTAMP time - 4 WINDOW owner - 4 ATOM selection - 16 unused - -<link linkend="events:SelectionRequest"><emphasis role='bold'>SelectionRequest</emphasis></link> - 1 30 code - 1 unused - 2 CARD16 sequence number - 4 TIMESTAMP time - 0 CurrentTime - 4 WINDOW owner - 4 WINDOW requestor - 4 ATOM selection - 4 ATOM target - 4 ATOM property - 0 None - 4 unused - -<link linkend="events:SelectionNotify"><emphasis role='bold'>SelectionNotify</emphasis></link> - 1 31 code - 1 unused - 2 CARD16 sequence number - 4 TIMESTAMP time - 0 CurrentTime - 4 WINDOW requestor - 4 ATOM selection - 4 ATOM target - 4 ATOM property - 0 None - 8 unused - -<link linkend="events:ColormapNotify"><emphasis role='bold'>ColormapNotify</emphasis></link> - 1 32 code - 1 unused - 2 CARD16 sequence number - 4 WINDOW window - 4 COLORMAP colormap - 0 None - 1 BOOL new - 1 state - 0 Uninstalled - 1 Installed - 18 unused - -<link linkend="events:ClientMessage"><emphasis role='bold'>ClientMessage</emphasis></link> - 1 33 code - 1 CARD8 format - 2 CARD16 sequence number - 4 WINDOW window - 4 ATOM type - 20 data - -<link linkend="events:MappingNotify"><emphasis role='bold'>MappingNotify</emphasis></link> - 1 34 code - 1 unused - 2 CARD16 sequence number - 1 request - 0 Modifier - 1 Keyboard - 2 Pointer - 1 KEYCODE first-keycode - 1 CARD8 count - 25 unused -</literallayout> - -</sect1> -</appendix> diff --git a/proto/x11proto/specs/glossary.xml b/proto/x11proto/specs/glossary.xml deleted file mode 100644 index 61233e3c4..000000000 --- a/proto/x11proto/specs/glossary.xml +++ /dev/null @@ -1,1320 +0,0 @@ -<glossary id='glossary'> -<title>Glossary</title> - - -<glossentry id="glossary:Access_control_list"> - <glossterm>Access control list</glossterm> - <indexterm zone="glossary:Access_control_list" significance="preferred"><primary>Access control list</primary></indexterm> - <glossdef> - <para> -X maintains a list of hosts from which client programs can be run. -By default, -only programs on the local host and hosts specified in an initial list read -by the server can use the display. -Clients on the local host can change this access control list. -Some server implementations can also implement other authorization mechanisms -in addition to or in place of this mechanism. -The action of this mechanism can be conditional based on the authorization -protocol name and data received by the server at connection setup. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Active_grab"> - <glossterm>Active grab</glossterm> - <indexterm zone="glossary:Active_grab" significance="preferred"><primary>Active grab</primary></indexterm> - <glossdef> - <para> -A grab is active when the pointer or keyboard is actually owned by -the single grabbing client. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Ancestors"> - <glossterm>Ancestors</glossterm> - <indexterm zone="glossary:Ancestors" significance="preferred"><primary>Ancestors</primary></indexterm> - <glossdef> - <para> -If W is an <glossterm linkend="glossary:Inferiors">inferior</glossterm> of A, then A is an ancestor of W. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Atom"> - <glossterm>Atom</glossterm> - <indexterm zone="glossary:Atom" significance="preferred"><primary>Atom</primary></indexterm> - <glossdef> - <para> -An atom is a unique ID corresponding to a string name. -Atoms are used to identify properties, types, and selections. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Background"> - <glossterm>Background</glossterm> - <indexterm zone="glossary:Background" significance="preferred"><primary>Background</primary></indexterm> - <glossdef> - <para> -An -<glossterm linkend="glossary:InputOutput_window"><emphasis role='bold'>InputOutput</emphasis></glossterm> -window can have a background, which is defined as a pixmap. -When regions of the window have their contents lost or invalidated, -the server will automatically tile those regions with the background. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Backing_store"> - <glossterm>Backing store</glossterm> - <indexterm zone="glossary:Backing_store" significance="preferred"><primary>Backing store</primary></indexterm> - <glossdef> - <para> -When a server maintains the contents of a window, -the pixels saved off screen are known as a backing store. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Bit_gravity"> - <glossterm>Bit gravity</glossterm> - <indexterm zone="glossary:Bit_gravity" significance="preferred"><primary>Bit</primary><secondary>gravity</secondary></indexterm> - <glossdef> - <para> -When a window is resized, -the contents of the window are not necessarily discarded. -It is possible to request that the server relocate the previous contents -to some region of the window (though no guarantees are made). -This attraction of window contents for some location of -a window is known as bit gravity. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Bit_plane"> - <glossterm>Bit plane</glossterm> - <indexterm zone="glossary:Bit_plane" significance="preferred"><primary>Bit</primary><secondary>plane</secondary></indexterm> - <glossdef> - <para> -When a pixmap or window is thought of as a stack of bitmaps, -each bitmap is called a bit plane or plane. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Bitmap"> - <glossterm>Bitmap</glossterm> - <indexterm zone="glossary:Bitmap" significance="preferred"><primary>Bitmap</primary></indexterm> - <glossdef> - <para> -A bitmap is a <glossterm linkend="glossary:Pixmap">pixmap</glossterm> of depth one. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Border"> - <glossterm>Border</glossterm> - <indexterm zone="glossary:Border" significance="preferred"><primary>Border</primary></indexterm> - <glossdef> - <para> -An -<glossterm linkend="glossary:InputOutput_window"><emphasis role='bold'>InputOutput</emphasis></glossterm> -window can have a border of equal thickness on all four sides of the window. -A pixmap defines the contents of the border, -and the server automatically maintains the contents of the border. -Exposure events are never generated for border regions. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Button_grabbing"> - <glossterm>Button grabbing</glossterm> - <indexterm zone="glossary:Button_grabbing" significance="preferred"><primary>Button</primary><secondary>grabbing</secondary></indexterm> - <glossdef> - <para> -Buttons on the pointer may be passively grabbed by a client. -When the button is pressed, -the pointer is then actively grabbed by the client. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Byte_order"> - <glossterm>Byte order</glossterm> - <indexterm zone="glossary:Byte_order" significance="preferred"><primary>Byte order</primary></indexterm> - <glossdef> - <para> -For image (pixmap/bitmap) data, -the server defines the byte order, -and clients with different native byte ordering must swap bytes as necessary. -For all other parts of the protocol, -the client defines the byte order, -and the server swaps bytes as necessary. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Children"> - <glossterm>Children</glossterm> - <indexterm zone="glossary:Children" significance="preferred"><primary>Children</primary></indexterm> - <indexterm zone="glossary:Children" significance="preferred"><primary>Window</primary><secondary>children</secondary></indexterm> - <glossdef> - <para> -The children of a window are its first-level subwindows. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Client"> - <glossterm>Client</glossterm> - <indexterm zone="glossary:Client" significance="preferred"><primary>Client</primary></indexterm> - <glossdef> - <para> -An application program connects to the window system server by some -interprocess communication path, such as a TCP connection or a -shared memory buffer. -This program is referred to as a client of the window system server. -More precisely, -the client is the communication path itself; -a program with multiple paths open to the server is viewed as -multiple clients by the protocol. -Resource lifetimes are controlled by connection lifetimes, -not by program lifetimes. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Clipping_region"> - <glossterm>Clipping region</glossterm> - <indexterm zone="glossary:Clipping_region" significance="preferred"><primary>Clipping region</primary></indexterm> - <glossdef> - <para> -In a <glossterm linkend="glossary:Graphics_context">graphics context</glossterm>, -a bitmap or list of rectangles can be specified -to restrict output to a particular region of the window. -The image defined by the bitmap or rectangles is called a clipping region. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Colormap"> - <glossterm>Colormap</glossterm> - <indexterm zone="glossary:Colormap" significance="preferred"><primary>Colormap</primary></indexterm> - <glossdef> - <para> -A colormap consists of a set of entries defining color values. -The colormap associated with a window is used to display the contents of -the window; each pixel value indexes the colormap to produce RGB values -that drive the guns of a monitor. -Depending on hardware limitations, -one or more colormaps may be installed at one time, -so that windows associated with those maps display with correct colors. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Connection"> - <glossterm>Connection</glossterm> - <indexterm zone="glossary:Connection" significance="preferred"><primary>Connection</primary></indexterm> - <glossdef> - <para> -The interprocess communication path between the server and client -program is known as a connection. -A client program typically (but not necessarily) has one -connection to the server over which requests and events are sent. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Containment"> - <glossterm>Containment</glossterm> - <indexterm zone="glossary:Containment" significance="preferred"><primary>Containment</primary></indexterm> - <glossdef> - <para> -A window <quote>contains</quote> the pointer if the window is viewable and the -<glossterm linkend="glossary:Hotspot">hotspot</glossterm> of the cursor is -within a visible region of the window or a -visible region of one of its inferiors. -The border of the window is included as part of the window for containment. -The pointer is <quote>in</quote> a window if the window contains the pointer -but no inferior contains the pointer. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Coordinate_system"> - <glossterm>Coordinate system</glossterm> - <indexterm zone="glossary:Coordinate_system" significance="preferred"><primary>Coordinate system</primary></indexterm> - <glossdef> - <para> -The coordinate system has the X axis horizontal and the Y axis vertical, -with the origin [0, 0] at the upper left. -Coordinates are integral, -in terms of pixels, -and coincide with pixel centers. -Each window and pixmap has its own coordinate system. -For a window, -the origin is inside the border at the inside upper left. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Cursor"> - <glossterm>Cursor</glossterm> - <indexterm zone="glossary:Cursor" significance="preferred"><primary>Cursor</primary></indexterm> - <glossdef> - <para> -A cursor is the visible shape of the pointer on a screen. -It consists of a <glossterm linkend="glossary:Hotspot">hotspot</glossterm>, -a source bitmap, a shape bitmap, and a pair of colors. -The cursor defined for a window controls the visible appearance -when the pointer is in that window. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Depth"> - <glossterm>Depth</glossterm> - <indexterm zone="glossary:Depth" significance="preferred"><primary>Depth</primary></indexterm> - <glossdef> - <para> -The depth of a window or pixmap is the number of bits per pixel that it has. -The depth of a graphics context is the depth of the drawables it can be -used in conjunction with for graphics output. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Device"> - <glossterm>Device</glossterm> - <indexterm zone="glossary:Device" significance="preferred"><primary>Device</primary></indexterm> - <glossdef> - <para> -Keyboards, mice, tablets, track-balls, button boxes, and so on are all -collectively known as input devices. -The core protocol only deals with two devices, -<quote>the keyboard</quote> and <quote>the pointer.</quote> -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:DirectColor"> - <glossterm>DirectColor</glossterm> - <indexterm zone="glossary:DirectColor" significance="preferred"><primary>DirectColor</primary></indexterm> - <glossdef> - <para> -<emphasis role='bold'>DirectColor</emphasis> -is a class of colormap in which a pixel value is decomposed into three -separate subfields for indexing. -The first subfield indexes an array to produce red intensity values. -The second subfield indexes a second array to produce blue intensity values. -The third subfield indexes a third array to produce green intensity values. -The RGB values can be changed dynamically. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Display"> - <glossterm>Display</glossterm> - <indexterm zone="glossary:Display" significance="preferred"><primary>Display</primary></indexterm> - <glossdef> - <para> -A server, together with its screens and input devices, is called a display. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Drawable"> - <glossterm>Drawable</glossterm> - <indexterm zone="glossary:Drawable" significance="preferred"><primary>Drawable</primary></indexterm> - <glossdef> - <para> -Both windows and pixmaps can be used as sources and destinations in -graphics operations. -These windows and pixmaps are collectively known as drawables. -However, an -<glossterm linkend="glossary:InputOnly_window"><emphasis role='bold'>InputOnly</emphasis></glossterm> -window cannot be used as a source or destination in a graphics operation. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Event"> - <glossterm>Event</glossterm> - <indexterm zone="glossary:Event" significance="preferred"><primary>Event</primary></indexterm> - <glossdef> - <para> -Clients are informed of information asynchronously by means of events. -These events can be generated either asynchronously from devices -or as side effects of client requests. -Events are grouped into types. -The server never sends events to a client unless the -client has specificially asked to be informed of that type of event. -However, other clients can force events to be sent to other clients. -Events are typically reported relative to a window. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Event_mask"> - <glossterm>Event mask</glossterm> - <indexterm zone="glossary:Event_mask" significance="preferred"><primary>Event</primary><secondary>mask</secondary></indexterm> - <glossdef> - <para> -Events are requested relative to a window. -The set of event types that a client requests relative to a window -is described by using an event mask. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Event_synchronization"> - <glossterm>Event synchronization</glossterm> - <indexterm zone="glossary:Event_synchronization" significance="preferred"><primary>Event</primary><secondary>synchronization</secondary></indexterm> - <glossdef> - <para> -There are certain race conditions possible when demultiplexing device -events to clients (in particular deciding where pointer and keyboard -events should be sent when in the middle of window management -operations). -The event synchronization mechanism allows synchronous processing -of device events. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Event_propagation"> - <glossterm>Event propagation</glossterm> - <indexterm zone="glossary:Event_propagation" significance="preferred"><primary>Event</primary><secondary>propagation</secondary></indexterm> - <glossdef> - <para> -Device-related events propagate from the source window to ancestor -windows until some client has expressed interest in handling that type -of event or until the event is discarded explicitly. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Event_source"> - <glossterm>Event source</glossterm> - <indexterm zone="glossary:Event_source" significance="preferred"><primary>Event</primary><secondary>source</secondary></indexterm> - <glossdef> - <para> -The window the pointer is in is the source of a device-related -event. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Exposure_event"> - <glossterm>Exposure event</glossterm> - <indexterm zone="glossary:Exposure_event" significance="preferred"><primary>Event</primary><secondary>Exposure</secondary></indexterm> - <glossdef> - <para> -Servers do not guarantee to preserve the contents of windows when -windows are obscured or reconfigured. -Exposure events are sent to clients to inform them when contents -of regions of windows have been lost. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Extension"> - <glossterm>Extension</glossterm> - <indexterm zone="glossary:Extension" significance="preferred"><primary>Extension</primary></indexterm> - <glossdef> - <para> -Named extensions to the core protocol can be defined to extend the -system. -Extension to output requests, resources, and event types are -all possible and are expected. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Focus_window"> - <glossterm>Focus window</glossterm> - <indexterm zone="glossary:Focus_window" significance="preferred"><primary>Focus window</primary></indexterm> - <glossdef> - <para> -The focus window is another term for the <glossterm linkend="glossary:Input_focus">input focus</glossterm>. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Font"> - <glossterm>Font</glossterm> - <indexterm zone="glossary:Font" significance="preferred"><primary>Font</primary></indexterm> - <glossdef> - <para> -A font is a matrix of glyphs (typically characters). -The protocol does no translation or interpretation of character sets. -The client simply indicates values used to index the glyph array. -A font contains additional metric information to determine interglyph -and interline spacing. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:GC"> - <glossterm>GC, GContext</glossterm> - <indexterm zone="glossary:GC" significance="preferred"><primary>GC</primary><seealso>Graphics context</seealso></indexterm> - <indexterm zone="glossary:GC" significance="preferred"><primary>GContext</primary><seealso>Graphics context</seealso></indexterm> - <glossdef> - <para> -GC and gcontext are abbreviations for <glossterm linkend="glossary:Graphics_context">graphics context</glossterm>. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Glyph"> - <glossterm>Glyph</glossterm> - <indexterm zone="glossary:Glyph" significance="preferred"><primary>Glyph</primary></indexterm> - <glossdef> - <para> -A glyph is an image, typically of a character, in a font. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Grab"> - <glossterm>Grab</glossterm> - <indexterm zone="glossary:Grab" significance="preferred"><primary>Grab</primary><seealso>Active grab</seealso><seealso>Passive grab</seealso></indexterm> - <glossdef> - <para> -Keyboard keys, the keyboard, pointer buttons, the pointer, and the -server can be grabbed for exclusive use by a client. -In general, -these facilities are not intended to be used by normal applications -but are intended for various input and window managers to implement -various styles of user interfaces. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Graphics_context"> - <glossterm>Graphics context</glossterm> - <indexterm zone="glossary:Graphics_context" significance="preferred"><primary>Graphics context</primary></indexterm> - <glossdef> - <para> -Various information for graphics output is stored in a graphics context -such as foreground pixel, background pixel, line width, -<glossterm linkend="glossary:Clipping_region">clipping region</glossterm>, -and so on. -A graphics context can only be used with drawables that have the same root -and the same depth as the graphics context. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Gravity"> - <glossterm>Gravity</glossterm> - <indexterm zone="glossary:Gravity" significance="preferred"><primary>Gravity</primary></indexterm> - <glossdef> - <para> -See <glossterm linkend="glossary:Bit_gravity">bit gravity</glossterm> -and <glossterm linkend="glossary:Window_gravity">window gravity</glossterm>. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:GrayScale"> - <glossterm>GrayScale</glossterm> - <indexterm zone="glossary:GrayScale" significance="preferred"><primary>GrayScale</primary></indexterm> - <glossdef> - <para> -<emphasis role='bold'>GrayScale</emphasis> -can be viewed as a degenerate case of -<glossterm linkend="glossary:PseudoColor"><emphasis role='bold'>PseudoColor</emphasis></glossterm>, -in which the red, green, and blue values in any given colormap entry are equal, -thus producing shades of gray. -The gray values can be changed dynamically. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Hotspot"> - <glossterm>Hotspot</glossterm> - <indexterm zone="glossary:Hotspot" significance="preferred"><primary>Hotspot</primary></indexterm> - <glossdef> - <para> -A cursor has an associated hotspot that defines the point in the -cursor corresponding to the coordinates reported for the pointer. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Identifier"> - <glossterm>Identifier</glossterm> - <indexterm zone="glossary:Identifier" significance="preferred"><primary>Identifier</primary></indexterm> - <glossdef> - <para> -An identifier is a unique value associated with a resource that clients use -to name that resource. -The identifier can be used over any connection. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Inferiors"> - <glossterm>Inferiors</glossterm> - <indexterm zone="glossary:Inferiors" significance="preferred"><primary>Inferiors</primary></indexterm> - <glossdef> - <para> -The inferiors of a window are all of the subwindows nested below it: -the children, the children's children, and so on. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Input_focus"> - <glossterm>Input focus</glossterm> - <indexterm zone="glossary:Input_focus" significance="preferred"><primary>Input focus</primary></indexterm> - <glossdef> - <para> -The input focus is normally a window defining the scope for -processing of keyboard input. -If a generated keyboard event would normally be reported to this window -or one of its inferiors, -the event is reported normally. -Otherwise, the event is reported with respect to -the focus window. -The input focus also can be set such that all -keyboard events are discarded and such that the focus -window is dynamically taken to be the root window of whatever screen -the pointer is on at each keyboard event. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Input_manager"> - <glossterm>Input manager</glossterm> - <indexterm zone="glossary:Input_manager" significance="preferred"><primary>Input manager</primary></indexterm> - <glossdef> - <para> -Control over keyboard input is typically provided by an input manager client. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:InputOnly_window"> - <glossterm>InputOnly window</glossterm> - <indexterm zone="glossary:InputOnly_window" significance="preferred"><primary>Window</primary><secondary>InputOnly</secondary></indexterm> - <glossdef> - <para> -An -<emphasis role='bold'>InputOnly</emphasis> -window is a window that cannot be used for graphics requests. -<emphasis role='bold'>InputOnly</emphasis> -windows are invisible and can be used to control such things -as cursors, input event generation, and grabbing. -<emphasis role='bold'>InputOnly</emphasis> -windows cannot have -<emphasis role='bold'>InputOutput</emphasis> -windows as inferiors. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:InputOutput_window"> - <glossterm>InputOutput window</glossterm> - <indexterm zone="glossary:InputOutput_window" significance="preferred"><primary>Window</primary><secondary>InputOutput</secondary></indexterm> - <glossdef> - <para> -An -<emphasis role='bold'>InputOutput</emphasis> -window is the normal kind of opaque window, used for both input and output. -<emphasis role='bold'>InputOutput</emphasis> -windows can have both -<emphasis role='bold'>InputOutput</emphasis> -and -<emphasis role='bold'>InputOnly</emphasis> -windows as inferiors. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Key_grabbing"> - <glossterm>Key grabbing</glossterm> - <indexterm zone="glossary:Key_grabbing" significance="preferred"><primary>Key</primary><secondary>grabbing</secondary></indexterm> - <glossdef> - <para> -Keys on the keyboard can be passively grabbed by a client. -When the key is pressed, -the keyboard is then actively grabbed by the client. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Keyboard_grabbing"> - <glossterm>Keyboard grabbing</glossterm> - <indexterm zone="glossary:Keyboard_grabbing" significance="preferred"><primary>Keyboard</primary><secondary>grabbing</secondary></indexterm> - <glossdef> - <para> -A client can actively grab control of the keyboard, and key events -will be sent to that client rather than the client the events would -normally have been sent to. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Keysym"> - <glossterm>Keysym</glossterm> - <indexterm zone="glossary:Keysym" significance="preferred"><primary>Keysym</primary></indexterm> - <glossdef> - <para> -An encoding of a symbol on a keycap on a keyboard. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Mapped"> - <glossterm>Mapped</glossterm> - <indexterm zone="glossary:Mapped" significance="preferred"><primary>Mapped window</primary></indexterm> - <glossdef> - <para> -A window is said to be mapped if a map call has been performed on it. -Unmapped windows and their inferiors are never viewable or visible. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Modifier_keys"> - <glossterm>Modifier keys</glossterm> - <indexterm zone="glossary:Modifier_keys" significance="preferred"><primary>Modifier keys</primary></indexterm> - <indexterm zone="glossary:Modifier_keys"><primary>Key</primary><secondary>modifier</secondary><see>Modifier keys</see></indexterm> - <glossdef> - <para> -Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple, CapsLock, -ShiftLock, and similar keys are called modifier keys. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Monochrome"> - <glossterm>Monochrome</glossterm> - <indexterm zone="glossary:Monochrome" significance="preferred"><primary>Monochrome</primary></indexterm> - <glossdef> - <para> -Monochrome is a special case of -<glossterm linkend="glossary:StaticGray"><emphasis role='bold'>StaticGray</emphasis></glossterm> -in which there are only two colormap entries. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Obscure"> - <glossterm>Obscure</glossterm> - <indexterm zone="glossary:Obscure" significance="preferred"><primary>Obscure</primary></indexterm> - <glossdef> - <para> -A window is obscured if some other window obscures it. -Window A obscures window B if both are viewable -<glossterm linkend="glossary:InputOutput_window"><emphasis role='bold'>InputOutput</emphasis></glossterm> -windows, A is higher in the global stacking order, -and the rectangle defined by the outside edges of A intersects -the rectangle defined by the outside edges of B. -Note the distinction between obscure and occludes. -Also note that window borders are included in the calculation -and that a window can be obscured and yet still have visible regions. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Occlude"> - <glossterm>Occlude</glossterm> - <indexterm zone="glossary:Occlude" significance="preferred"><primary>Occlude</primary></indexterm> - <glossdef> - <para> -A window is occluded if some other window occludes it. -Window A occludes window B if both are mapped, A is higher in the global -stacking order, and the rectangle defined by the outside edges of A -intersects the rectangle defined by the outside edges of B. -Note the distinction between occludes and obscures. -Also note that window borders are included in the calculation. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Padding"> - <glossterm>Padding</glossterm> - <indexterm zone="glossary:Padding" significance="preferred"><primary>Padding</primary></indexterm> - <glossdef> - <para> -Some padding bytes are inserted in the data stream to maintain -alignment of the protocol requests on natural boundaries. -This increases ease of portability to some machine architectures. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Parent_window"> - <glossterm>Parent window</glossterm> - <indexterm zone="glossary:Parent_window" significance="preferred"><primary>Window</primary><secondary>parent</secondary></indexterm> - <glossdef> - <para> -If C is a <glossterm linkend="glossary:Children">child</glossterm> of P, -then P is the parent of C. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Passive_grab"> - <glossterm>Passive grab</glossterm> - <indexterm zone="glossary:Passive_grab" significance="preferred"><primary>Passive grab</primary></indexterm> - <glossdef> - <para> -Grabbing a key or button is a passive grab. -The grab activates when the key or button is actually pressed. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Pixel_value"> - <glossterm>Pixel value</glossterm> - <indexterm zone="glossary:Pixel_value" significance="preferred"><primary>Pixel value</primary></indexterm> - <glossdef> - <para> -A pixel is an N-bit value, where N is the number of bit planes used -in a particular window or pixmap (that is, -N is the depth of the window or pixmap). -For a window, -a pixel value indexes a colormap to derive an actual color to be displayed. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Pixmap"> - <glossterm>Pixmap</glossterm> - <indexterm zone="glossary:Pixmap" significance="preferred"><primary>Pixmap</primary></indexterm> - <glossdef> - <para> -A pixmap is a three-dimensional array of bits. -A pixmap is normally thought of as a two-dimensional array of pixels, -where each pixel can be a value from 0 to (2^N)-1 -and where N is the depth (z axis) of the pixmap. -A pixmap can also be thought of as a stack of N bitmaps. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Plane"> - <glossterm>Plane</glossterm> - <indexterm zone="glossary:Plane" significance="preferred"><primary>Plane</primary></indexterm> - <glossdef> - <para> -When a pixmap or window is thought of as a stack of bitmaps, -each bitmap is called a plane or bit plane. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Plane_mask"> - <glossterm>Plane mask</glossterm> - <indexterm zone="glossary:Plane_mask" significance="preferred"><primary>Plane</primary><secondary>mask</secondary></indexterm> - <glossdef> - <para> -Graphics operations can be restricted to only affect a subset of bit -planes of a destination. -A plane mask is a bit mask describing which planes are to be modified. -The plane mask is stored in a graphics context. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Pointer"> - <glossterm>Pointer</glossterm> - <indexterm zone="glossary:Pointer" significance="preferred"><primary>Pointer</primary></indexterm> - <glossdef> - <para> -The pointer is the pointing device attached to the cursor -and tracked on the screens. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Pointer_grabbing"> - <glossterm>Pointer grabbing</glossterm> - <indexterm zone="glossary:Pointer_grabbing" significance="preferred"><primary>Pointer</primary><secondary>grabbing</secondary></indexterm> - <glossdef> - <para> -A client can actively grab control of the pointer. -Then button and motion events will be sent to that client -rather than the client the events would normally have been sent to. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Pointing_device"> - <glossterm>Pointing device</glossterm> - <indexterm zone="glossary:Pointing_device" significance="preferred"><primary>Pointing device</primary></indexterm> - <glossdef> - <para> -A pointing device is typically a mouse, tablet, or some other -device with effective dimensional motion. -There is only one visible cursor defined by the core protocol, -and it tracks whatever pointing device is attached as the pointer. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Property"> - <glossterm>Property</glossterm> - <indexterm zone="glossary:Property" significance="preferred"><primary>Property</primary></indexterm> - <glossdef> - <para> -Windows may have associated properties, -which consist of a name, a type, a data format, and some data. -The protocol places no interpretation on properties. -They are intended as a general-purpose naming mechanism for clients. -For example, clients might use properties to share information such as resize -hints, program names, and icon formats with a window manager. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Property_list"> - <glossterm>Property list</glossterm> - <indexterm zone="glossary:Property_list" significance="preferred"><primary>Property list</primary></indexterm> - <glossdef> - <para> -The property list of a window is the list of properties that have -been defined for the window. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:PseudoColor"> - <glossterm>PseudoColor</glossterm> - <indexterm zone="glossary:PseudoColor" significance="preferred"><primary>PseudoColor</primary></indexterm> - <glossdef> - <para> -<emphasis role='bold'>PseudoColor</emphasis> -is a class of colormap in which a pixel value indexes the colormap to -produce independent red, green, and blue values; -that is, the colormap is viewed as an array of triples (RGB values). -The RGB values can be changed dynamically. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Redirecting_control"> - <glossterm>Redirecting control</glossterm> - <indexterm zone="glossary:Redirecting_control" significance="preferred"><primary>Redirecting control</primary></indexterm> - <glossdef> - <para> -Window managers (or client programs) may want to enforce window layout -policy in various ways. -When a client attempts to change the size or position of a window, -the operation may be redirected to a specified client -rather than the operation actually being performed. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Reply"> - <glossterm>Reply</glossterm> - <indexterm zone="glossary:Reply" significance="preferred"><primary>Reply</primary></indexterm> - <glossdef> - <para> -Information requested by a client program is sent back to the client -with a reply. -Both events and replies are multiplexed on the same connection. -Most requests do not generate replies, -although some requests generate multiple replies. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Request"> - <glossterm>Request</glossterm> - <indexterm zone="glossary:Request" significance="preferred"><primary>Request</primary></indexterm> - <glossdef> - <para> -A command to the server is called a request. -It is a single block of data sent over a connection. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Resource"> - <glossterm>Resource</glossterm> - <indexterm zone="glossary:Resource" significance="preferred"><primary>Resource</primary></indexterm> - <glossdef> - <para> -Windows, pixmaps, cursors, fonts, graphics contexts, and colormaps are -known as resources. -They all have unique identifiers associated with them for naming purposes. -The lifetime of a resource usually is bounded by the lifetime of the connection -over which the resource was created. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:RGB_values"> - <glossterm>RGB values</glossterm> - <indexterm zone="glossary:RGB_values" significance="preferred"><primary>RGB values</primary></indexterm> - <glossdef> - <para> -Red, green, and blue (RGB) intensity values are used to define color. -These values are always represented as 16-bit unsigned numbers, -with 0 being the minimum intensity and 65535 being the maximum intensity. -The server scales the values to match the display hardware. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Root"> - <glossterm>Root</glossterm> - <indexterm zone="glossary:Root" significance="preferred"><primary>Root</primary></indexterm> - <glossdef> - <para> -The root of a pixmap, colormap, or graphics context is the same as the root of -whatever drawable was used when the pixmap, colormap, or graphics context was -created. -The root of a window is the root window under which the window was created. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Root_window"> - <glossterm>Root window</glossterm> - <indexterm zone="glossary:Root_window" significance="preferred"><primary>Window</primary><secondary>root</secondary></indexterm> - <glossdef> - <para> -Each screen has a root window covering it. -It cannot be reconfigured or unmapped, -but it otherwise acts as a full-fledged window. -A root window has no parent. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Save_set"> - <glossterm>Save set</glossterm> - <indexterm zone="glossary:Save_set" significance="preferred"><primary>Save set</primary></indexterm> - <glossdef> - <para> -The save set of a client is a list of other clients' windows that, -if they are inferiors of one of the client's windows at connection close, -should not be destroyed and that should be remapped if currently unmapped. -Save sets are typically used by window managers to avoid -lost windows if the manager terminates abnormally. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Scanline"> - <glossterm>Scanline</glossterm> - <indexterm zone="glossary:Scanline" significance="preferred"><primary>Scanline</primary></indexterm> - <glossdef> - <para> -A scanline is a list of pixel or bit values viewed as a horizontal -row (all values having the same y coordinate) of an image, with the -values ordered by increasing x coordinate. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Scanline_order"> - <glossterm>Scanline order</glossterm> - <indexterm zone="glossary:Scanline_order" significance="preferred"><primary>Scanline order</primary></indexterm> - <glossdef> - <para> -An image represented in scanline order contains scanlines ordered by -increasing y coordinate. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Screen"> - <glossterm>Screen</glossterm> - <indexterm zone="glossary:Screen" significance="preferred"><primary>Screen</primary></indexterm> - <glossdef> - <para> -A server can provide several independent screens, -which typically have physically independent monitors. -This would be the expected configuration when there is only a single keyboard -and pointer shared among the screens. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Selection"> - <glossterm>Selection</glossterm> - <indexterm zone="glossary:Selection" significance="preferred"><primary>Selection</primary></indexterm> - <glossdef> - <para> -A selection can be thought of as an indirect property with dynamic -type; that is, rather than having the property stored in the server, -it is maintained by some client (the <quote>owner</quote>). -A selection is global in nature and is thought of as belonging to the user -(although maintained by clients), rather than as being private to a particular -window subhierarchy or a particular set of clients. -When a client asks for the contents of a selection, -it specifies a selection <quote>target type</quote>. -This target type can be used to control the transmitted representation of the -contents. -For example, -if the selection is <quote>the last thing the user clicked on</quote> -and that is currently an image, then the target type might specify -whether the contents of the image should be sent in XY format or Z format. -The target type can also be used to control the class of contents transmitted; -for example, asking for the <quote>looks</quote> (fonts, line -spacing, indentation, and so on) of a paragraph selection rather than the -text of the paragraph. -The target type can also be used for other purposes. -The protocol does not constrain the semantics. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Server"> - <glossterm>Server</glossterm> - <indexterm zone="glossary:Server" significance="preferred"><primary>Server</primary></indexterm> - <glossdef> - <para> -The server provides the basic windowing mechanism. -It handles connections from clients, -multiplexes graphics requests onto the screens, -and demultiplexes input back to the appropriate clients. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Server_grabbing"> - <glossterm>Server grabbing</glossterm> - <indexterm zone="glossary:Server_grabbing" significance="preferred"><primary>Server</primary><secondary>grabbing</secondary></indexterm> - <glossdef> - <para> -The server can be grabbed by a single client for exclusive use. -This prevents processing of any requests from other client connections until -the grab is completed. -This is typically only a transient state for -such things as rubber-banding, pop-up menus, or to execute requests -indivisibly. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Sibling"> - <glossterm>Sibling</glossterm> - <indexterm zone="glossary:Sibling" significance="preferred"><primary>Sibling</primary></indexterm> - <glossdef> - <para> -Children of the same parent window are known as sibling windows. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Stacking_order"> - <glossterm>Stacking order</glossterm> - <indexterm zone="glossary:Stacking_order" significance="preferred"><primary>Stacking order</primary></indexterm> - <glossdef> - <para> -Sibling windows may stack on top of each other. -Windows above other windows both obscure and occlude those lower windows. -This is similar to paper on a desk. -The relationship between sibling windows is known as the stacking order. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:StaticColor"> - <glossterm>StaticColor</glossterm> - <indexterm zone="glossary:StaticColor" significance="preferred"><primary>StaticColor</primary></indexterm> - <glossdef> - <para> -<emphasis role='bold'>StaticColor</emphasis> -can be viewed as a degenerate case of -<glossterm linkend="glossary:PseudoColor"><emphasis role='bold'>PseudoColor</emphasis></glossterm> -in which the RGB values are predefined and read-only. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:StaticGray"> - <glossterm>StaticGray</glossterm> - <indexterm zone="glossary:StaticGray" significance="preferred"><primary>StaticGray</primary></indexterm> - <glossdef> - <para> -<emphasis role='bold'>StaticGray</emphasis> -can be viewed as a degenerate case of -<glossterm linkend="glossary:GrayScale"><emphasis role='bold'>GrayScale</emphasis></glossterm> -in which the gray values are predefined and read-only. -The values are typically linear or near-linear increasing ramps. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Stipple"> - <glossterm>Stipple</glossterm> - <indexterm zone="glossary:Stipple" significance="preferred"><primary>Stipple</primary></indexterm> - <glossdef> - <para> -A stipple pattern is a bitmap that is used to tile a region that will serve -as an additional clip mask for a fill operation with the foreground -color. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:String_Equivalence"> - <glossterm>String Equivalence</glossterm> - <indexterm zone="glossary:String_Equivalence" significance="preferred"><primary>String Equivalence</primary></indexterm> - <glossdef> - <para> -Two ISO Latin-1 STRING8 values are considered equal if they are the same -length and if corresponding bytes are either equal or are equivalent as -follows: decimal values 65 to 90 inclusive (characters <quote>A</quote> to <quote>Z</quote>) are -pairwise equivalent to decimal values 97 to 122 inclusive -(characters <quote>a</quote> to <quote>z</quote>), decimal values 192 to 214 inclusive -(characters <quote>A grave</quote> to <quote>O diaeresis</quote>) are pairwise equivalent to decimal -values 224 to 246 inclusive (characters <quote>a grave</quote> to <quote>o diaeresis</quote>), -and decimal values 216 to 222 inclusive (characters <quote>O oblique</quote> to <quote>THORN</quote>) -are pairwise equivalent to decimal values 246 to 254 inclusive -(characters <quote>o oblique</quote> to <quote>thorn</quote>). -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Tile"> - <glossterm>Tile</glossterm> - <indexterm zone="glossary:Tile" significance="preferred"><primary>Tile</primary></indexterm> - <glossdef> - <para> -A pixmap can be replicated in two dimensions to tile a region. -The pixmap itself is also known as a tile. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Timestamp"> - <glossterm>Timestamp</glossterm> - <indexterm zone="glossary:Timestamp" significance="preferred"><primary>Timestamp</primary></indexterm> - <indexterm zone="glossary:Timestamp" significance="preferred"><primary>CurrentTime</primary></indexterm> - <glossdef> - <para> -A timestamp is a time value, expressed in milliseconds. -It typically is the time since the last -server reset. -Timestamp values wrap around (after about 49.7 days). -The server, given its current time is represented by timestamp T, -always interprets timestamps from clients by treating half of the -timestamp space as being earlier in time than T and half of the -timestamp space as being later in time than T. -One timestamp value (named -<emphasis role='bold'>CurrentTime</emphasis>) -is never generated by the server. -This value is reserved for use in requests to represent the current -server time. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:TrueColor"> - <glossterm>TrueColor</glossterm> - <indexterm zone="glossary:TrueColor" significance="preferred"><primary>TrueColor</primary></indexterm> - <glossdef> - <para> -<emphasis role='bold'>TrueColor</emphasis> -can be viewed as a degenerate case of -<glossterm linkend="glossary:DirectColor"><emphasis role='bold'>DirectColor</emphasis></glossterm> -in which the subfields in the pixel value directly encode -the corresponding RGB values; that is, the colormap has predefined -read-only RGB values. -The values are typically linear or near-linear increasing ramps. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Type"> - <glossterm>Type</glossterm> - <indexterm zone="glossary:Type" significance="preferred"><primary>Type</primary></indexterm> - <glossdef> - <para> -A type is an arbitrary atom used to identify the interpretation of -property data. -Types are completely uninterpreted by the server -and are solely for the benefit of clients. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Viewable"> - <glossterm>Viewable</glossterm> - <indexterm zone="glossary:Viewable" significance="preferred"><primary>Viewable</primary></indexterm> - <glossdef> - <para> -A window is viewable if it and all of its ancestors are mapped. -This does not imply that any portion of the window is actually visible. -Graphics requests can be performed on a window when it is not viewable, -but output will not be retained unless the server is maintaining -backing store. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Visible"> - <glossterm>Visible</glossterm> - <indexterm zone="glossary:Visible" significance="preferred"><primary>Visible</primary></indexterm> - <glossdef> - <para> -A region of a window is visible if someone looking at the screen can -actually see it; -that is, the window is viewable and the region is not occluded by any -other window. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Window_gravity"> - <glossterm>Window gravity</glossterm> - <indexterm zone="glossary:Window_gravity" significance="preferred"><primary>Window</primary><secondary>gravity</secondary></indexterm> - <glossdef> - <para> -When windows are resized, -subwindows may be repositioned automatically relative to some position -in the window. -This attraction of a subwindow to some part of its parent is known -as window gravity. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:Window_manager"> - <glossterm>Window manager</glossterm> - <indexterm zone="glossary:Window_manager" significance="preferred"><primary>Window</primary><secondary>manager</secondary></indexterm> - <glossdef> - <para> -Manipulation of windows on the screen and much of the user interface -(policy) is typically provided by a window manager client. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:XYFormat"> - <glossterm>XYFormat</glossterm> - <indexterm zone="glossary:XYFormat" significance="preferred"><primary>XYFormat</primary></indexterm> - <glossdef> - <para> -The data for a pixmap is said to be in XY format if it is organized as -a set of bitmaps representing individual bit planes, with the planes -appearing from most-significant to least-significant in bit order. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -<glossentry id="glossary:ZFormat"> - <glossterm>ZFormat</glossterm> - <indexterm zone="glossary:ZFormat" significance="preferred"><primary>ZFormat</primary></indexterm> - <glossdef> - <para> -The data for a pixmap is said to be in Z format if it is organized as -a set of pixel values in scanline order. -<!-- .KE --> - </para> - </glossdef> -</glossentry> -</glossary> diff --git a/proto/x11proto/specs/keysyms.xml b/proto/x11proto/specs/keysyms.xml deleted file mode 100644 index e2fa0d099..000000000 --- a/proto/x11proto/specs/keysyms.xml +++ /dev/null @@ -1,6050 +0,0 @@ -<appendix id="keysym_encoding"> -<title>KEYSYM Encoding</title> -<indexterm zone="keysym_encoding"><primary>Types</primary><secondary>KEYSYM</secondary></indexterm> -<indexterm zone="keysym_encoding"><primary>Keysym</primary></indexterm> - -<para> -KEYSYM values are 32-bit integers that encode the symbols on the -keycaps of a keyboard. The three most significant bits are always -zero, which leaves a 29-bit number space. For convenience, KEYSYM -values can be viewed as split into four bytes: -</para> - -<itemizedlist> - <listitem> - <para> -Byte 1 is the most significant eight bits (three zero bits and -the most-significant five bits of the 29-bit effective value) - </para> - </listitem> - <listitem> - <para> -Byte 2 is the next most-significant eight bits - </para> - </listitem> - <listitem> - <para> -Byte 3 is the next most-significant eight bits - </para> - </listitem> - <listitem> - <para> -Byte 4 is the least-significant eight bits - </para> - </listitem> -</itemizedlist> - -<para> -There are six categories of KEYSYM values. -</para> - -<sect1 id='Special_KEYSYMs'> -<title>Special KEYSYMs</title> -<para> -There are two special values: -<keysym>NoSymbol</keysym> -and -<keysym>VoidSymbol</keysym>. -They are used to indicate the absence of symbols (see -<link linkend='Keyboards'>Section 5, Keyboards</link>). -</para> - -<informaltable frame="topbot"> - <?dbfo keep-together="always" ?> - <tgroup cols='6' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='1.0*'/> - <colspec colname='c3' colwidth='1.0*'/> - <colspec colname='c4' colwidth='1.0*'/> - <colspec colname='c5' colwidth='1.0*'/> - <colspec colname='c6' colwidth='1.0*'/> - <thead> - <row rowsep='1'> - <entry>Byte 1</entry> - <entry>Byte 2</entry> - <entry>Byte 3</entry> - <entry>Byte 4</entry> - <entry>Hex. value</entry> - <entry>Name</entry> - </row> - </thead> - <tbody> - <row> - <entry>0</entry> - <entry>0</entry> - <entry>0</entry> - <entry>0</entry> - <entry>#x00000000</entry> - <entry><keysym>NoSymbol</keysym></entry> - </row> - <row> - <entry>0</entry> - <entry>255</entry> - <entry>255</entry> - <entry>255</entry> - <entry>#x00FFFFFF</entry> - <entry><keysym>VoidSymbol</keysym></entry> - </row> - </tbody> - </tgroup> -</informaltable> -</sect1> - -<sect1 id='Latin_1_KEYSYMs'> -<title>Latin-1 KEYSYMs</title> - -<para> -The Latin-1 KEYSYMs occupy the range #x0020 to #x007E and #x00A0 to -#00FF and represent the ISO 10646 / Unicode characters U+0020 to -U+007E and U+00A0 to U+00FF, respectively. -</para> -</sect1> - -<sect1 id='Unicode_KEYSYMs'> -<title>Unicode KEYSYMs</title> -<indexterm zone="Unicode_KEYSYMs"><primary>Keysym</primary><secondary>Unicode</secondary></indexterm> - -<para> -These occupy the range #x01000100 to #x0110FFFF and represent the ISO -10646 / Unicode characters U+0100 to U+10FFFF, respectively. The -numeric value of a Unicode KEYSYM is the Unicode position of the -corresponding character plus #x01000000. In the interest of backwards -compatibility, clients should be able to process both the Unicode -KEYSYM and the Legacy KEYSYM for those characters where both exist. -</para> -<para> -Dead keys, which place an accent on the next character entered, shall -be encoded as Function KEYSYMs, and not as the Unicode KEYSYM -corresponding to an equivalent combining character. Where a keycap -indicates a specific function with a graphical symbol that is also -available in Unicode (e.g., an upwards arrow for the cursor up -function), the appropriate Function KEYSYM should be used, and not -the Unicode KEYSYM corresponding to the depicted symbol. -</para> -</sect1> -<sect1 id='Function_KEYSYMs'> -<title>Function KEYSYMs</title> - -<para> -These represent keycap symbols that do not directly represent elements -of a coded character set. Instead, they typically identify a software -function, mode, or operation (e.g., cursor up, caps lock, insert) that -can be activated using a dedicated key. Function KEYSYMs have zero -values for bytes 1 and 2. Byte 3 distinguishes between several 8-bit -sets within which byte 4 identifies the individual function key. -</para> - -<informaltable frame="topbot"> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='1.0*'/> - <thead> - <row rowsep='1'> - <entry>Byte 3</entry> - <entry>Byte 4</entry> - </row> - </thead> - <tbody> - <row> - <entry>255</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>254</entry> - <entry>Keyboard (XKB) Extension</entry> - </row> - <row> - <entry>253</entry> - <entry>3270</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -Within a national market, keyboards tend to be comparatively standard -with respect to the character keys, but they can differ significantly -on the miscellaneous function keys. Some have function keys left over -from early timesharing days, others were designed for a specific -application, such as text processing, web browsing, or accessing -audiovisual data. The symbols on the keycaps can differ significantly -between manufacturers and national markets, even where they denote the -same software function (e.g., Ctrl in the U.S. versus Strg in Germany) -</para> -<para> -<!-- .LP --> -There are two ways of thinking about how to define KEYSYMs for such a -world: -</para> -<itemizedlist> - <listitem> - <para> -The Engraving approach - </para> - </listitem> - <listitem> - <para> -The Common approach - </para> - </listitem> -</itemizedlist> -<para> -<!-- .LP --> -The Engraving approach is to create a KEYSYM for every unique key -engraving. This is effectively taking the union of all key engravings -on all keyboards. For example, some keyboards label function keys -across the top as F1 through Fn, and others label them as PF1 through -PFn. These would be different keys under the Engraving -approach. Likewise, Lock would differ from Shift Lock, which is -different from the up-arrow symbol that has the effect of changing -lowercase to uppercase. There are lots of other aliases such as Del, -DEL, Delete, Remove, and so forth. The Engraving approach makes it -easy to decide if a new entry should be added to the KEYSYM set: if it -does not exactly match an existing one, then a new one is created. -</para> -<para> -<!-- .LP --> -The Common approach tries to capture all of the keys present on an -interesting number of keyboards, folding likely aliases into the same -KEYSYM. For example, Del, DEL, and Delete are all merged into a single -KEYSYM. Vendors can augment the KEYSYM set (using the vendor-specific -encoding space) to include all of their unique keys that were not -included in the standard set. Each vendor decides which of its keys -map into the standard KEYSYMs, which presumably can be overridden by a -user. It is more difficult to implement this approach, because -judgment is required about when a sufficient set of keyboards -implements an engraving to justify making it a KEYSYM in the standard -set and about which engravings should be merged into a single -KEYSYM. -</para> -<para> -<!-- .LP --> -Although neither scheme is perfect or elegant, the Common approach has -been selected because it makes it easier to write a portable -application. Having the Delete functionality merged into a single -KEYSYM allows an application to implement a deletion function and -expect reasonable bindings on a wide set of workstations. Under the -Common approach, application writers are still free to look for and -interpret vendor-specific KEYSYMs, but because they are in the -extended set, the application developer is more conscious that they -are writing the application in a nonportable fashion. -</para> -<para> -<!-- .LP --> -The Keyboard set is a miscellaneous collection of commonly occurring -keys on keyboards. Within this set, the numeric keypad symbols are -generally duplicates of symbols found on keys on the main part of the -keyboard, but they are distinguished here because they often have a -distinguishable semantics associated with them. -</para> - -<informaltable frame="topbot"> - <tgroup cols='3' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='3.0*'/> - <colspec colname='c3' colwidth='1.0*'/> - <thead> - <row rowsep="1"> - <entry>KEYSYM value</entry> - <entry>Name</entry> - <entry>Set</entry> - </row> - </thead> - <tbody> - <row> - <entry>#xFF08</entry> - <entry>BACKSPACE, BACK SPACE, BACK CHAR</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF09</entry> - <entry>TAB</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF0A</entry> - <entry>LINEFEED, LF</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF0B</entry> - <entry>CLEAR</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF0D</entry> - <entry>RETURN, ENTER</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF13</entry> - <entry>PAUSE, HOLD</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF14</entry> - <entry>SCROLL LOCK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF15</entry> - <entry>SYS REQ, SYSTEM REQUEST</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF1B</entry> - <entry>ESCAPE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF20</entry> - <entry>MULTI-KEY CHARACTER PREFACE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF21</entry> - <entry>KANJI, KANJI CONVERT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF22</entry> - <entry>MUHENKAN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF23</entry> - <entry>HENKAN MODE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF24</entry> - <entry>ROMAJI</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF25</entry> - <entry>HIRAGANA</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF26</entry> - <entry>KATAKANA</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF27</entry> - <entry>HIRAGANA/KATAKANA TOGGLE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF28</entry> - <entry>ZENKAKU</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF29</entry> - <entry>HANKAKU</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF2A</entry> - <entry>ZENKAKU/HANKAKU TOGGLE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF2B</entry> - <entry>TOUROKU</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF2C</entry> - <entry>MASSYO</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF2D</entry> - <entry>KANA LOCK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF2E</entry> - <entry>KANA SHIFT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF2F</entry> - <entry>EISU SHIFT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF30</entry> - <entry>EISU TOGGLE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF31</entry> - <entry>HANGUL START/STOP (TOGGLE)</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF32</entry> - <entry>HANGUL START</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF33</entry> - <entry>HANGUL END, ENGLISH START</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF34</entry> - <entry>START HANGUL/HANJA CONVERSION</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF35</entry> - <entry>HANGUL JAMO MODE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF36</entry> - <entry>HANGUL ROMAJA MODE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF37</entry> - <entry>HANGUL CODE INPUT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF38</entry> - <entry>HANGUL JEONJA MODE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF39</entry> - <entry>HANGUL BANJA MODE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF3A</entry> - <entry>HANGUL PREHANJA CONVERSION</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF3B</entry> - <entry>HANGUL POSTHANJA CONVERSION</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF3C</entry> - <entry>HANGUL SINGLE CANDIDATE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF3D</entry> - <entry>HANGUL MULTIPLE CANDIDATE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF3E</entry> - <entry>HANGUL PREVIOUS CANDIDATE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF3F</entry> - <entry>HANGUL SPECIAL SYMBOLS</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF50</entry> - <entry>HOME</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF51</entry> - <entry>LEFT, MOVE LEFT, LEFT ARROW</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF52</entry> - <entry>UP, MOVE UP, UP ARROW</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF53</entry> - <entry>RIGHT, MOVE RIGHT, RIGHT ARROW</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF54</entry> - <entry>DOWN, MOVE DOWN, DOWN ARROW</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF55</entry> - <entry>PRIOR, PREVIOUS, PAGE UP</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF56</entry> - <entry>NEXT, PAGE DOWN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF57</entry> - <entry>END, EOL</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF58</entry> - <entry>BEGIN, BOL</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF60</entry> - <entry>SELECT, MARK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF61</entry> - <entry>PRINT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF62</entry> - <entry>EXECUTE, RUN, DO</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF63</entry> - <entry>INSERT, INSERT HERE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF65</entry> - <entry>UNDO, OOPS</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF66</entry> - <entry>REDO, AGAIN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF67</entry> - <entry>MENU</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF68</entry> - <entry>FIND, SEARCH</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF69</entry> - <entry>CANCEL, STOP, ABORT, EXIT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF6A</entry> - <entry>HELP</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF6B</entry> - <entry>BREAK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF7E</entry> - <entry>MODE SWITCH, SCRIPT SWITCH, CHARACTER SET SWITCH</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF7F</entry> - <entry>NUM LOCK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF80</entry> - <entry>KEYPAD SPACE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF89</entry> - <entry>KEYPAD TAB</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF8D</entry> - <entry>KEYPAD ENTER</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF91</entry> - <entry>KEYPAD F1, PF1, A</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF92</entry> - <entry>KEYPAD F2, PF2, B</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF93</entry> - <entry>KEYPAD F3, PF3, C</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF94</entry> - <entry>KEYPAD F4, PF4, D</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF95</entry> - <entry>KEYPAD HOME</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF96</entry> - <entry>KEYPAD LEFT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF97</entry> - <entry>KEYPAD UP</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF98</entry> - <entry>KEYPAD RIGHT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF99</entry> - <entry>KEYPAD DOWN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF9A</entry> - <entry>KEYPAD PRIOR, PAGE UP</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF9B</entry> - <entry>KEYPAD NEXT, PAGE DOWN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF9C</entry> - <entry>KEYPAD END</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF9D</entry> - <entry>KEYPAD BEGIN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF9E</entry> - <entry>KEYPAD INSERT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFF9F</entry> - <entry>KEYPAD DELETE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFAA</entry> - <entry>KEYPAD MULTIPLICATION SIGN, ASTERISK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFAB</entry> - <entry>KEYPAD PLUS SIGN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFAC</entry> - <entry>KEYPAD SEPARATOR, COMMA</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFAD</entry> - <entry>KEYPAD MINUS SIGN, HYPHEN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFAE</entry> - <entry>KEYPAD DECIMAL POINT, FULL STOP</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFAF</entry> - <entry>KEYPAD DIVISION SIGN, SOLIDUS</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB0</entry> - <entry>KEYPAD DIGIT ZERO</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB1</entry> - <entry>KEYPAD DIGIT ONE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB2</entry> - <entry>KEYPAD DIGIT TWO</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB3</entry> - <entry>KEYPAD DIGIT THREE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB4</entry> - <entry>KEYPAD DIGIT FOUR</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB5</entry> - <entry>KEYPAD DIGIT FIVE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB6</entry> - <entry>KEYPAD DIGIT SIX</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB7</entry> - <entry>KEYPAD DIGIT SEVEN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB8</entry> - <entry>KEYPAD DIGIT EIGHT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFB9</entry> - <entry>KEYPAD DIGIT NINE</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFBD</entry> - <entry>KEYPAD EQUALS SIGN</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFBE</entry> - <entry>F1</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFBF</entry> - <entry>F2</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC0</entry> - <entry>F3</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC1</entry> - <entry>F4</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC2</entry> - <entry>F5</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC3</entry> - <entry>F6</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC4</entry> - <entry>F7</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC5</entry> - <entry>F8</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC6</entry> - <entry>F9</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC7</entry> - <entry>F10</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC8</entry> - <entry>F11, L1</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFC9</entry> - <entry>F12, L2</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFCA</entry> - <entry>F13, L3</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFCB</entry> - <entry>F14, L4</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFCC</entry> - <entry>F15, L5</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFCD</entry> - <entry>F16, L6</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFCE</entry> - <entry>F17, L7</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFCF</entry> - <entry>F18, L8</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD0</entry> - <entry>F19, L9</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD1</entry> - <entry>F20, L10</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD2</entry> - <entry>F21, R1</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD3</entry> - <entry>F22, R2</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD4</entry> - <entry>F23, R3</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD5</entry> - <entry>F24, R4</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD6</entry> - <entry>F25, R5</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD7</entry> - <entry>F26, R6</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD8</entry> - <entry>F27, R7</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFD9</entry> - <entry>F28, R8</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFDA</entry> - <entry>F29, R9</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFDB</entry> - <entry>F30, R10</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFDC</entry> - <entry>F31, R11</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFDD</entry> - <entry>F32, R12</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFDE</entry> - <entry>F33, R13</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFDF</entry> - <entry>F34, R14</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE0</entry> - <entry>F35, R15</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE1</entry> - <entry>LEFT SHIFT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE2</entry> - <entry>RIGHT SHIFT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE3</entry> - <entry>LEFT CONTROL</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE4</entry> - <entry>RIGHT CONTROL</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE5</entry> - <entry>CAPS LOCK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE6</entry> - <entry>SHIFT LOCK</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE7</entry> - <entry>LEFT META</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE8</entry> - <entry>RIGHT META</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFE9</entry> - <entry>LEFT ALT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFEA</entry> - <entry>RIGHT ALT</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFEB</entry> - <entry>LEFT SUPER</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFEC</entry> - <entry>RIGHT SUPER</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFED</entry> - <entry>LEFT HYPER</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFEE</entry> - <entry>RIGHT HYPER</entry> - <entry>Keyboard</entry> - </row> - <row> - <entry>#xFFFF</entry> - <entry>DELETE, RUBOUT</entry> - <entry>Keyboard</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -The Keyboard (XKB) Extension set, which provides among other things -a range of dead keys, is defined in "The X Keyboard Extension: -Protocol Specification", Appendix C. <!-- xref --> -</para> - -<para> -The 3270 set defines additional keys that are specific to IBM 3270 -terminals. -</para> - -<informaltable frame="topbot"> - <tgroup cols='3' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*' /> - <colspec colname='c2' colwidth='3.0*' /> - <colspec colname='c3' colwidth='1.0*' /> - <thead> - <row rowsep="1"> - <entry>KEYSYM value</entry> - <entry>Name</entry> - <entry>Set</entry> - </row> - </thead> - <tbody> - <row> - <entry>#xFD01</entry> - <entry>3270 DUPLICATE</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD02</entry> - <entry>3270 FIELDMARK</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD03</entry> - <entry>3270 RIGHT2</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD04</entry> - <entry>3270 LEFT2</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD05</entry> - <entry>3270 BACKTAB</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD06</entry> - <entry>3270 ERASEEOF</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD07</entry> - <entry>3270 ERASEINPUT</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD08</entry> - <entry>3270 RESET</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD09</entry> - <entry>3270 QUIT</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD0A</entry> - <entry>3270 PA1</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD0B</entry> - <entry>3270 PA2</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD0C</entry> - <entry>3270 PA3</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD0D</entry> - <entry>3270 TEST</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD0E</entry> - <entry>3270 ATTN</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD0F</entry> - <entry>3270 CURSORBLINK</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD10</entry> - <entry>3270 ALTCURSOR</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD11</entry> - <entry>3270 KEYCLICK</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD12</entry> - <entry>3270 JUMP</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD13</entry> - <entry>3270 IDENT</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD14</entry> - <entry>3270 RULE</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD15</entry> - <entry>3270 COPY</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD16</entry> - <entry>3270 PLAY</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD17</entry> - <entry>3270 SETUP</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD18</entry> - <entry>3270 RECORD</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD19</entry> - <entry>3270 CHANGESCREEN</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD1A</entry> - <entry>3270 DELETEWORD</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD1B</entry> - <entry>3270 EXSELECT</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD1C</entry> - <entry>3270 CURSORSELECT</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD1D</entry> - <entry>3270 PRINTSCREEN</entry> - <entry>3270</entry> - </row> - <row> - <entry>#xFD1E</entry> - <entry>3270 ENTER</entry> - <entry>3270</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -</sect1> - -<sect1 id='Vendor_KEYSYMs'> -<title>Vendor KEYSYMs</title> - -<para> -The KEYSYM number range #x10000000 to #x1FFFFFFF is available for -vendor-specific extentions. Among these, the range #x11000000 to -#x1100FFFF is designated for keypad KEYSYMs. -</para> -</sect1> - -<sect1 id='Legacy_KEYSYMs'> -<title>Legacy KEYSYMs</title> - -<para> -These date from the time before ISO 10646 / Unicode was -available. They represent characters from a number of different older -8-bit coded character sets and have zero values for bytes 1 and -2. Byte 3 indicates a coded character set and byte 4 is the 8-bit -value of the particular character within that set. -</para> - -<informaltable frame="topbot"> - <tgroup cols='4' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*' /> - <colspec colname='c2' colwidth='2.0*' /> - <colspec colname='c3' colwidth='1.0*' /> - <colspec colname='c4' colwidth='1.0*' /> - <thead> - <row rowsep="1"> - <entry>Byte 3</entry> - <entry>Byte 4</entry> - <entry>Byte 3</entry> - <entry>Byte 4</entry> - </row> - </thead> - <tbody> - <row> - <entry>1</entry> - <entry>Latin-2</entry> - <entry>11</entry> - <entry>APL</entry> - </row> - <row> - <entry>2</entry> - <entry>Latin-3</entry> - <entry>12</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>3</entry> - <entry>Latin-4</entry> - <entry>13</entry> - <entry>Thai</entry> - </row> - <row> - <entry>4</entry> - <entry>Kana</entry> - <entry>14</entry> - <entry>Korean</entry> - </row> - <row> - <entry>5</entry> - <entry>Arabic</entry> - <entry>15</entry> - <entry>Latin-5</entry> - </row> - <row> - <entry>6</entry> - <entry>Cyrillic</entry> - <entry>16</entry> - <entry>Latin-6</entry> - </row> - <row> - <entry>7</entry> - <entry>Greek</entry> - <entry>17</entry> - <entry>Latin-7</entry> - </row> - <row> - <entry>8</entry> - <entry>Technical</entry> - <entry>18</entry> - <entry>Latin-8</entry> - </row> - <row> - <entry>9</entry> - <entry>Special</entry> - <entry>19</entry> - <entry>Latin-9</entry> - </row> - <row> - <entry>10</entry> - <entry>Publishing</entry> - <entry>32</entry> - <entry>Currency</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -Each character set contains gaps where codes have been removed that -were duplicates with codes in previous character sets (that is, -character sets with lesser byte 3 value). -</para> - -<para> -The Latin, Arabic, Cyrillic, Greek, Hebrew, and Thai sets were taken -from the early drafts of the relevant ISO 8859 parts available at the -time. However, in the case of the Cyrillic and Greek sets, these -turned out differently in the final versions of the ISO standard. The -Technical, Special, and Publishing sets are based on Digital Equipment -Corporation standards, as no equivalent international standards were -available at the time. -</para> - -<para> -The table below lists all standardized Legacy KEYSYMs, along with the -name used in the source document. Where there exists an unambiguous -equivalent in Unicode, as it is the case with all ISO 8859 characters, -it is given in the second column as a cross reference. Where there is -no Unicode number provided, the exact semantics of the KEYSYM may have -been lost and a Unicode KEYSYM should be used instead, if available. -</para> - -<para> -As support of Unicode KEYSYMs increases, some or all of the Legacy -KEYSYMs may be phased out and withdrawn in future versions of this -standard. Most KEYSYMs in the sets Technical, Special, Publishing, APL -and Currency (with the exception of #x20AC) were probably never used -in practice, and were not supported by pre-Unicode fonts. In -particular, the Currency set, which was copied from Unicode, has -already been deprecated by the introduction of the Unicode KEYSYMs. -</para> - -<informaltable frame="topbot"> - <tgroup cols='4' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*' /> - <colspec colname='c2' colwidth='1.0*' /> - <colspec colname='c3' colwidth='5.0*' /> - <colspec colname='c4' colwidth='1.0*' /> - <thead> - <row rowsep="1"> - <entry>KEYSYM value</entry> - <entry>Unicode value</entry> - <entry>Name</entry> - <entry>Set</entry> - </row> - </thead> - <tbody> - <row> - <entry>#x01A1</entry> - <entry>U+0104</entry> - <entry>LATIN CAPITAL LETTER A WITH OGONEK</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01A2</entry> - <entry>U+02D8</entry> - <entry>BREVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01A3</entry> - <entry>U+0141</entry> - <entry>LATIN CAPITAL LETTER L WITH STROKE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01A5</entry> - <entry>U+013D</entry> - <entry>LATIN CAPITAL LETTER L WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01A6</entry> - <entry>U+015A</entry> - <entry>LATIN CAPITAL LETTER S WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01A9</entry> - <entry>U+0160</entry> - <entry>LATIN CAPITAL LETTER S WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01AA</entry> - <entry>U+015E</entry> - <entry>LATIN CAPITAL LETTER S WITH CEDILLA</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01AB</entry> - <entry>U+0164</entry> - <entry>LATIN CAPITAL LETTER T WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01AC</entry> - <entry>U+0179</entry> - <entry>LATIN CAPITAL LETTER Z WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01AE</entry> - <entry>U+017D</entry> - <entry>LATIN CAPITAL LETTER Z WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01AF</entry> - <entry>U+017B</entry> - <entry>LATIN CAPITAL LETTER Z WITH DOT ABOVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B1</entry> - <entry>U+0105</entry> - <entry>LATIN SMALL LETTER A WITH OGONEK</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B2</entry> - <entry>U+02DB</entry> - <entry>OGONEK</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B3</entry> - <entry>U+0142</entry> - <entry>LATIN SMALL LETTER L WITH STROKE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B5</entry> - <entry>U+013E</entry> - <entry>LATIN SMALL LETTER L WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B6</entry> - <entry>U+015B</entry> - <entry>LATIN SMALL LETTER S WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B7</entry> - <entry>U+02C7</entry> - <entry>CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01B9</entry> - <entry>U+0161</entry> - <entry>LATIN SMALL LETTER S WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01BA</entry> - <entry>U+015F</entry> - <entry>LATIN SMALL LETTER S WITH CEDILLA</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01BB</entry> - <entry>U+0165</entry> - <entry>LATIN SMALL LETTER T WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01BC</entry> - <entry>U+017A</entry> - <entry>LATIN SMALL LETTER Z WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01BD</entry> - <entry>U+02DD</entry> - <entry>DOUBLE ACUTE ACCENT</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01BE</entry> - <entry>U+017E</entry> - <entry>LATIN SMALL LETTER Z WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01BF</entry> - <entry>U+017C</entry> - <entry>LATIN SMALL LETTER Z WITH DOT ABOVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01C0</entry> - <entry>U+0154</entry> - <entry>LATIN CAPITAL LETTER R WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01C3</entry> - <entry>U+0102</entry> - <entry>LATIN CAPITAL LETTER A WITH BREVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01C5</entry> - <entry>U+0139</entry> - <entry>LATIN CAPITAL LETTER L WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01C6</entry> - <entry>U+0106</entry> - <entry>LATIN CAPITAL LETTER C WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01C8</entry> - <entry>U+010C</entry> - <entry>LATIN CAPITAL LETTER C WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01CA</entry> - <entry>U+0118</entry> - <entry>LATIN CAPITAL LETTER E WITH OGONEK</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01CC</entry> - <entry>U+011A</entry> - <entry>LATIN CAPITAL LETTER E WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01CF</entry> - <entry>U+010E</entry> - <entry>LATIN CAPITAL LETTER D WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01D0</entry> - <entry>U+0110</entry> - <entry>LATIN CAPITAL LETTER D WITH STROKE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01D1</entry> - <entry>U+0143</entry> - <entry>LATIN CAPITAL LETTER N WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01D2</entry> - <entry>U+0147</entry> - <entry>LATIN CAPITAL LETTER N WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01D5</entry> - <entry>U+0150</entry> - <entry>LATIN CAPITAL LETTER O WITH DOUBLE ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01D8</entry> - <entry>U+0158</entry> - <entry>LATIN CAPITAL LETTER R WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01D9</entry> - <entry>U+016E</entry> - <entry>LATIN CAPITAL LETTER U WITH RING ABOVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01DB</entry> - <entry>U+0170</entry> - <entry>LATIN CAPITAL LETTER U WITH DOUBLE ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01DE</entry> - <entry>U+0162</entry> - <entry>LATIN CAPITAL LETTER T WITH CEDILLA</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01E0</entry> - <entry>U+0155</entry> - <entry>LATIN SMALL LETTER R WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01E3</entry> - <entry>U+0103</entry> - <entry>LATIN SMALL LETTER A WITH BREVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01E5</entry> - <entry>U+013A</entry> - <entry>LATIN SMALL LETTER L WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01E6</entry> - <entry>U+0107</entry> - <entry>LATIN SMALL LETTER C WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01E8</entry> - <entry>U+010D</entry> - <entry>LATIN SMALL LETTER C WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01EA</entry> - <entry>U+0119</entry> - <entry>LATIN SMALL LETTER E WITH OGONEK</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01EC</entry> - <entry>U+011B</entry> - <entry>LATIN SMALL LETTER E WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01EF</entry> - <entry>U+010F</entry> - <entry>LATIN SMALL LETTER D WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01F0</entry> - <entry>U+0111</entry> - <entry>LATIN SMALL LETTER D WITH STROKE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01F1</entry> - <entry>U+0144</entry> - <entry>LATIN SMALL LETTER N WITH ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01F2</entry> - <entry>U+0148</entry> - <entry>LATIN SMALL LETTER N WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01F5</entry> - <entry>U+0151</entry> - <entry>LATIN SMALL LETTER O WITH DOUBLE ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01F8</entry> - <entry>U+0159</entry> - <entry>LATIN SMALL LETTER R WITH CARON</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01F9</entry> - <entry>U+016F</entry> - <entry>LATIN SMALL LETTER U WITH RING ABOVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01FB</entry> - <entry>U+0171</entry> - <entry>LATIN SMALL LETTER U WITH DOUBLE ACUTE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01FE</entry> - <entry>U+0163</entry> - <entry>LATIN SMALL LETTER T WITH CEDILLA</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x01FF</entry> - <entry>U+02D9</entry> - <entry>DOT ABOVE</entry> - <entry>Latin-2</entry> - </row> - <row> - <entry>#x02A1</entry> - <entry>U+0126</entry> - <entry>LATIN CAPITAL LETTER H WITH STROKE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02A6</entry> - <entry>U+0124</entry> - <entry>LATIN CAPITAL LETTER H WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02A9</entry> - <entry>U+0130</entry> - <entry>LATIN CAPITAL LETTER I WITH DOT ABOVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02AB</entry> - <entry>U+011E</entry> - <entry>LATIN CAPITAL LETTER G WITH BREVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02AC</entry> - <entry>U+0134</entry> - <entry>LATIN CAPITAL LETTER J WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02B1</entry> - <entry>U+0127</entry> - <entry>LATIN SMALL LETTER H WITH STROKE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02B6</entry> - <entry>U+0125</entry> - <entry>LATIN SMALL LETTER H WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02B9</entry> - <entry>U+0131</entry> - <entry>LATIN SMALL LETTER DOTLESS I</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02BB</entry> - <entry>U+011F</entry> - <entry>LATIN SMALL LETTER G WITH BREVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02BC</entry> - <entry>U+0135</entry> - <entry>LATIN SMALL LETTER J WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02C5</entry> - <entry>U+010A</entry> - <entry>LATIN CAPITAL LETTER C WITH DOT ABOVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02C6</entry> - <entry>U+0108</entry> - <entry>LATIN CAPITAL LETTER C WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02D5</entry> - <entry>U+0120</entry> - <entry>LATIN CAPITAL LETTER G WITH DOT ABOVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02D8</entry> - <entry>U+011C</entry> - <entry>LATIN CAPITAL LETTER G WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02DD</entry> - <entry>U+016C</entry> - <entry>LATIN CAPITAL LETTER U WITH BREVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02DE</entry> - <entry>U+015C</entry> - <entry>LATIN CAPITAL LETTER S WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02E5</entry> - <entry>U+010B</entry> - <entry>LATIN SMALL LETTER C WITH DOT ABOVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02E6</entry> - <entry>U+0109</entry> - <entry>LATIN SMALL LETTER C WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02F5</entry> - <entry>U+0121</entry> - <entry>LATIN SMALL LETTER G WITH DOT ABOVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02F8</entry> - <entry>U+011D</entry> - <entry>LATIN SMALL LETTER G WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02FD</entry> - <entry>U+016D</entry> - <entry>LATIN SMALL LETTER U WITH BREVE</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x02FE</entry> - <entry>U+015D</entry> - <entry>LATIN SMALL LETTER S WITH CIRCUMFLEX</entry> - <entry>Latin-3</entry> - </row> - <row> - <entry>#x03A2</entry> - <entry>U+0138</entry> - <entry>LATIN SMALL LETTER KRA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03A3</entry> - <entry>U+0156</entry> - <entry>LATIN CAPITAL LETTER R WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03A5</entry> - <entry>U+0128</entry> - <entry>LATIN CAPITAL LETTER I WITH TILDE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03A6</entry> - <entry>U+013B</entry> - <entry>LATIN CAPITAL LETTER L WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03AA</entry> - <entry>U+0112</entry> - <entry>LATIN CAPITAL LETTER E WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03AB</entry> - <entry>U+0122</entry> - <entry>LATIN CAPITAL LETTER G WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03AC</entry> - <entry>U+0166</entry> - <entry>LATIN CAPITAL LETTER T WITH STROKE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03B3</entry> - <entry>U+0157</entry> - <entry>LATIN SMALL LETTER R WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03B5</entry> - <entry>U+0129</entry> - <entry>LATIN SMALL LETTER I WITH TILDE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03B6</entry> - <entry>U+013C</entry> - <entry>LATIN SMALL LETTER L WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03BA</entry> - <entry>U+0113</entry> - <entry>LATIN SMALL LETTER E WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03BB</entry> - <entry>U+0123</entry> - <entry>LATIN SMALL LETTER G WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03BC</entry> - <entry>U+0167</entry> - <entry>LATIN SMALL LETTER T WITH STROKE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03BD</entry> - <entry>U+014A</entry> - <entry>LATIN CAPITAL LETTER ENG</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03BF</entry> - <entry>U+014B</entry> - <entry>LATIN SMALL LETTER ENG</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03C0</entry> - <entry>U+0100</entry> - <entry>LATIN CAPITAL LETTER A WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03C7</entry> - <entry>U+012E</entry> - <entry>LATIN CAPITAL LETTER I WITH OGONEK</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03CC</entry> - <entry>U+0116</entry> - <entry>LATIN CAPITAL LETTER E WITH DOT ABOVE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03CF</entry> - <entry>U+012A</entry> - <entry>LATIN CAPITAL LETTER I WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03D1</entry> - <entry>U+0145</entry> - <entry>LATIN CAPITAL LETTER N WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03D2</entry> - <entry>U+014C</entry> - <entry>LATIN CAPITAL LETTER O WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03D3</entry> - <entry>U+0136</entry> - <entry>LATIN CAPITAL LETTER K WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03D9</entry> - <entry>U+0172</entry> - <entry>LATIN CAPITAL LETTER U WITH OGONEK</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03DD</entry> - <entry>U+0168</entry> - <entry>LATIN CAPITAL LETTER U WITH TILDE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03DE</entry> - <entry>U+016A</entry> - <entry>LATIN CAPITAL LETTER U WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03E0</entry> - <entry>U+0101</entry> - <entry>LATIN SMALL LETTER A WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03E7</entry> - <entry>U+012F</entry> - <entry>LATIN SMALL LETTER I WITH OGONEK</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03EC</entry> - <entry>U+0117</entry> - <entry>LATIN SMALL LETTER E WITH DOT ABOVE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03EF</entry> - <entry>U+012B</entry> - <entry>LATIN SMALL LETTER I WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03F1</entry> - <entry>U+0146</entry> - <entry>LATIN SMALL LETTER N WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03F2</entry> - <entry>U+014D</entry> - <entry>LATIN SMALL LETTER O WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03F3</entry> - <entry>U+0137</entry> - <entry>LATIN SMALL LETTER K WITH CEDILLA</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03F9</entry> - <entry>U+0173</entry> - <entry>LATIN SMALL LETTER U WITH OGONEK</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03FD</entry> - <entry>U+0169</entry> - <entry>LATIN SMALL LETTER U WITH TILDE</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x03FE</entry> - <entry>U+016B</entry> - <entry>LATIN SMALL LETTER U WITH MACRON</entry> - <entry>Latin-4</entry> - </row> - <row> - <entry>#x047E</entry> - <entry>U+203E</entry> - <entry>OVERLINE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A1</entry> - <entry>U+3002</entry> - <entry>KANA FULL STOP</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A2</entry> - <entry>U+300C</entry> - <entry>KANA OPENING BRACKET</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A3</entry> - <entry>U+300D</entry> - <entry>KANA CLOSING BRACKET</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A4</entry> - <entry>U+3001</entry> - <entry>KANA COMMA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A5</entry> - <entry>U+30FB</entry> - <entry>KANA CONJUNCTIVE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A6</entry> - <entry>U+30F2</entry> - <entry>KANA LETTER WO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A7</entry> - <entry>U+30A1</entry> - <entry>KANA LETTER SMALL A</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A8</entry> - <entry>U+30A3</entry> - <entry>KANA LETTER SMALL I</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04A9</entry> - <entry>U+30A5</entry> - <entry>KANA LETTER SMALL U</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04AA</entry> - <entry>U+30A7</entry> - <entry>KANA LETTER SMALL E</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04AB</entry> - <entry>U+30A9</entry> - <entry>KANA LETTER SMALL O</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04AC</entry> - <entry>U+30E3</entry> - <entry>KANA LETTER SMALL YA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04AD</entry> - <entry>U+30E5</entry> - <entry>KANA LETTER SMALL YU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04AE</entry> - <entry>U+30E7</entry> - <entry>KANA LETTER SMALL YO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04AF</entry> - <entry>U+30C3</entry> - <entry>KANA LETTER SMALL TSU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B0</entry> - <entry>U+30FC</entry> - <entry>PROLONGED SOUND SYMBOL</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B1</entry> - <entry>U+30A2</entry> - <entry>KANA LETTER A</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B2</entry> - <entry>U+30A4</entry> - <entry>KANA LETTER I</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B3</entry> - <entry>U+30A6</entry> - <entry>KANA LETTER U</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B4</entry> - <entry>U+30A8</entry> - <entry>KANA LETTER E</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B5</entry> - <entry>U+30AA</entry> - <entry>KANA LETTER O</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B6</entry> - <entry>U+30AB</entry> - <entry>KANA LETTER KA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B7</entry> - <entry>U+30AD</entry> - <entry>KANA LETTER KI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B8</entry> - <entry>U+30AF</entry> - <entry>KANA LETTER KU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04B9</entry> - <entry>U+30B1</entry> - <entry>KANA LETTER KE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04BA</entry> - <entry>U+30B3</entry> - <entry>KANA LETTER KO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04BB</entry> - <entry>U+30B5</entry> - <entry>KANA LETTER SA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04BC</entry> - <entry>U+30B7</entry> - <entry>KANA LETTER SHI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04BD</entry> - <entry>U+30B9</entry> - <entry>KANA LETTER SU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04BE</entry> - <entry>U+30BB</entry> - <entry>KANA LETTER SE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04BF</entry> - <entry>U+30BD</entry> - <entry>KANA LETTER SO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C0</entry> - <entry>U+30BF</entry> - <entry>KANA LETTER TA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C1</entry> - <entry>U+30C1</entry> - <entry>KANA LETTER CHI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C2</entry> - <entry>U+30C4</entry> - <entry>KANA LETTER TSU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C3</entry> - <entry>U+30C6</entry> - <entry>KANA LETTER TE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C4</entry> - <entry>U+30C8</entry> - <entry>KANA LETTER TO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C5</entry> - <entry>U+30CA</entry> - <entry>KANA LETTER NA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C6</entry> - <entry>U+30CB</entry> - <entry>KANA LETTER NI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C7</entry> - <entry>U+30CC</entry> - <entry>KANA LETTER NU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C8</entry> - <entry>U+30CD</entry> - <entry>KANA LETTER NE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04C9</entry> - <entry>U+30CE</entry> - <entry>KANA LETTER NO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04CA</entry> - <entry>U+30CF</entry> - <entry>KANA LETTER HA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04CB</entry> - <entry>U+30D2</entry> - <entry>KANA LETTER HI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04CC</entry> - <entry>U+30D5</entry> - <entry>KANA LETTER FU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04CD</entry> - <entry>U+30D8</entry> - <entry>KANA LETTER HE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04CE</entry> - <entry>U+30DB</entry> - <entry>KANA LETTER HO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04CF</entry> - <entry>U+30DE</entry> - <entry>KANA LETTER MA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D0</entry> - <entry>U+30DF</entry> - <entry>KANA LETTER MI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D1</entry> - <entry>U+30E0</entry> - <entry>KANA LETTER MU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D2</entry> - <entry>U+30E1</entry> - <entry>KANA LETTER ME</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D3</entry> - <entry>U+30E2</entry> - <entry>KANA LETTER MO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D4</entry> - <entry>U+30E4</entry> - <entry>KANA LETTER YA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D5</entry> - <entry>U+30E6</entry> - <entry>KANA LETTER YU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D6</entry> - <entry>U+30E8</entry> - <entry>KANA LETTER YO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D7</entry> - <entry>U+30E9</entry> - <entry>KANA LETTER RA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D8</entry> - <entry>U+30EA</entry> - <entry>KANA LETTER RI</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04D9</entry> - <entry>U+30EB</entry> - <entry>KANA LETTER RU</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04DA</entry> - <entry>U+30EC</entry> - <entry>KANA LETTER RE</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04DB</entry> - <entry>U+30ED</entry> - <entry>KANA LETTER RO</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04DC</entry> - <entry>U+30EF</entry> - <entry>KANA LETTER WA</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04DD</entry> - <entry>U+30F3</entry> - <entry>KANA LETTER N</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04DE</entry> - <entry>U+309B</entry> - <entry>VOICED SOUND SYMBOL</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x04DF</entry> - <entry>U+309C</entry> - <entry>SEMIVOICED SOUND SYMBOL</entry> - <entry>Kana</entry> - </row> - <row> - <entry>#x05AC</entry> - <entry>U+060C</entry> - <entry>ARABIC COMMA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05BB</entry> - <entry>U+061B</entry> - <entry>ARABIC SEMICOLON</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05BF</entry> - <entry>U+061F</entry> - <entry>ARABIC QUESTION MARK</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C1</entry> - <entry>U+0621</entry> - <entry>ARABIC LETTER HAMZA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C2</entry> - <entry>U+0622</entry> - <entry>ARABIC LETTER ALEF WITH MADDA ABOVE</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C3</entry> - <entry>U+0623</entry> - <entry>ARABIC LETTER ALEF WITH HAMZA ABOVE</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C4</entry> - <entry>U+0624</entry> - <entry>ARABIC LETTER WAW WITH HAMZA ABOVE</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C5</entry> - <entry>U+0625</entry> - <entry>ARABIC LETTER ALEF WITH HAMZA BELOW</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C6</entry> - <entry>U+0626</entry> - <entry>ARABIC LETTER YEH WITH HAMZA ABOVE</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C7</entry> - <entry>U+0627</entry> - <entry>ARABIC LETTER ALEF</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C8</entry> - <entry>U+0628</entry> - <entry>ARABIC LETTER BEH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05C9</entry> - <entry>U+0629</entry> - <entry>ARABIC LETTER TEH MARBUTA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05CA</entry> - <entry>U+062A</entry> - <entry>ARABIC LETTER TEH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05CB</entry> - <entry>U+062B</entry> - <entry>ARABIC LETTER THEH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05CC</entry> - <entry>U+062C</entry> - <entry>ARABIC LETTER JEEM</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05CD</entry> - <entry>U+062D</entry> - <entry>ARABIC LETTER HAH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05CE</entry> - <entry>U+062E</entry> - <entry>ARABIC LETTER KHAH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05CF</entry> - <entry>U+062F</entry> - <entry>ARABIC LETTER DAL</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D0</entry> - <entry>U+0630</entry> - <entry>ARABIC LETTER THAL</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D1</entry> - <entry>U+0631</entry> - <entry>ARABIC LETTER REH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D2</entry> - <entry>U+0632</entry> - <entry>ARABIC LETTER ZAIN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D3</entry> - <entry>U+0633</entry> - <entry>ARABIC LETTER SEEN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D4</entry> - <entry>U+0634</entry> - <entry>ARABIC LETTER SHEEN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D5</entry> - <entry>U+0635</entry> - <entry>ARABIC LETTER SAD</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D6</entry> - <entry>U+0636</entry> - <entry>ARABIC LETTER DAD</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D7</entry> - <entry>U+0637</entry> - <entry>ARABIC LETTER TAH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D8</entry> - <entry>U+0638</entry> - <entry>ARABIC LETTER ZAH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05D9</entry> - <entry>U+0639</entry> - <entry>ARABIC LETTER AIN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05DA</entry> - <entry>U+063A</entry> - <entry>ARABIC LETTER GHAIN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E0</entry> - <entry>U+0640</entry> - <entry>ARABIC TATWEEL</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E1</entry> - <entry>U+0641</entry> - <entry>ARABIC LETTER FEH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E2</entry> - <entry>U+0642</entry> - <entry>ARABIC LETTER QAF</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E3</entry> - <entry>U+0643</entry> - <entry>ARABIC LETTER KAF</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E4</entry> - <entry>U+0644</entry> - <entry>ARABIC LETTER LAM</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E5</entry> - <entry>U+0645</entry> - <entry>ARABIC LETTER MEEM</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E6</entry> - <entry>U+0646</entry> - <entry>ARABIC LETTER NOON</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E7</entry> - <entry>U+0647</entry> - <entry>ARABIC LETTER HEH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E8</entry> - <entry>U+0648</entry> - <entry>ARABIC LETTER WAW</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05E9</entry> - <entry>U+0649</entry> - <entry>ARABIC LETTER ALEF MAKSURA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05EA</entry> - <entry>U+064A</entry> - <entry>ARABIC LETTER YEH</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05EB</entry> - <entry>U+064B</entry> - <entry>ARABIC FATHATAN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05EC</entry> - <entry>U+064C</entry> - <entry>ARABIC DAMMATAN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05ED</entry> - <entry>U+064D</entry> - <entry>ARABIC KASRATAN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05EE</entry> - <entry>U+064E</entry> - <entry>ARABIC FATHA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05EF</entry> - <entry>U+064F</entry> - <entry>ARABIC DAMMA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05F0</entry> - <entry>U+0650</entry> - <entry>ARABIC KASRA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05F1</entry> - <entry>U+0651</entry> - <entry>ARABIC SHADDA</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x05F2</entry> - <entry>U+0652</entry> - <entry>ARABIC SUKUN</entry> - <entry>Arabic</entry> - </row> - <row> - <entry>#x06A1</entry> - <entry>U+0452</entry> - <entry>CYRILLIC SMALL LETTER DJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A2</entry> - <entry>U+0453</entry> - <entry>CYRILLIC SMALL LETTER GJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A3</entry> - <entry>U+0451</entry> - <entry>CYRILLIC SMALL LETTER IO</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A4</entry> - <entry>U+0454</entry> - <entry>CYRILLIC SMALL LETTER UKRAINIAN IE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A5</entry> - <entry>U+0455</entry> - <entry>CYRILLIC SMALL LETTER DZE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A6</entry> - <entry>U+0456</entry> - <entry>CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A7</entry> - <entry>U+0457</entry> - <entry>CYRILLIC SMALL LETTER YI</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A8</entry> - <entry>U+0458</entry> - <entry>CYRILLIC SMALL LETTER JE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06A9</entry> - <entry>U+0459</entry> - <entry>CYRILLIC SMALL LETTER LJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06AA</entry> - <entry>U+045A</entry> - <entry>CYRILLIC SMALL LETTER NJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06AB</entry> - <entry>U+045B</entry> - <entry>CYRILLIC SMALL LETTER TSHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06AC</entry> - <entry>U+045C</entry> - <entry>CYRILLIC SMALL LETTER KJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06AD</entry> - <entry>U+0491</entry> - <entry>CYRILLIC SMALL LETTER GHE WITH UPTURN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06AE</entry> - <entry>U+045E</entry> - <entry>CYRILLIC SMALL LETTER SHORT U</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06AF</entry> - <entry>U+045F</entry> - <entry>CYRILLIC SMALL LETTER DZHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B0</entry> - <entry>U+2116</entry> - <entry>NUMERO SIGN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B1</entry> - <entry>U+0402</entry> - <entry>CYRILLIC CAPITAL LETTER DJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B2</entry> - <entry>U+0403</entry> - <entry>CYRILLIC CAPITAL LETTER GJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B3</entry> - <entry>U+0401</entry> - <entry>CYRILLIC CAPITAL LETTER IO</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B4</entry> - <entry>U+0404</entry> - <entry>CYRILLIC CAPITAL LETTER UKRAINIAN IE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B5</entry> - <entry>U+0405</entry> - <entry>CYRILLIC CAPITAL LETTER DZE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B6</entry> - <entry>U+0406</entry> - <entry>CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B7</entry> - <entry>U+0407</entry> - <entry>CYRILLIC CAPITAL LETTER YI</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B8</entry> - <entry>U+0408</entry> - <entry>CYRILLIC CAPITAL LETTER JE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06B9</entry> - <entry>U+0409</entry> - <entry>CYRILLIC CAPITAL LETTER LJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06BA</entry> - <entry>U+040A</entry> - <entry>CYRILLIC CAPITAL LETTER NJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06BB</entry> - <entry>U+040B</entry> - <entry>CYRILLIC CAPITAL LETTER TSHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06BC</entry> - <entry>U+040C</entry> - <entry>CYRILLIC CAPITAL LETTER KJE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06BD</entry> - <entry>U+0490</entry> - <entry>CYRILLIC CAPITAL LETTER GHE WITH UPTURN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06BE</entry> - <entry>U+040E</entry> - <entry>CYRILLIC CAPITAL LETTER SHORT U</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06BF</entry> - <entry>U+040F</entry> - <entry>CYRILLIC CAPITAL LETTER DZHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C0</entry> - <entry>U+044E</entry> - <entry>CYRILLIC SMALL LETTER YU</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C1</entry> - <entry>U+0430</entry> - <entry>CYRILLIC SMALL LETTER A</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C2</entry> - <entry>U+0431</entry> - <entry>CYRILLIC SMALL LETTER BE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C3</entry> - <entry>U+0446</entry> - <entry>CYRILLIC SMALL LETTER TSE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C4</entry> - <entry>U+0434</entry> - <entry>CYRILLIC SMALL LETTER DE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C5</entry> - <entry>U+0435</entry> - <entry>CYRILLIC SMALL LETTER IE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C6</entry> - <entry>U+0444</entry> - <entry>CYRILLIC SMALL LETTER EF</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C7</entry> - <entry>U+0433</entry> - <entry>CYRILLIC SMALL LETTER GHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C8</entry> - <entry>U+0445</entry> - <entry>CYRILLIC SMALL LETTER HA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06C9</entry> - <entry>U+0438</entry> - <entry>CYRILLIC SMALL LETTER I</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06CA</entry> - <entry>U+0439</entry> - <entry>CYRILLIC SMALL LETTER SHORT I</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06CB</entry> - <entry>U+043A</entry> - <entry>CYRILLIC SMALL LETTER KA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06CC</entry> - <entry>U+043B</entry> - <entry>CYRILLIC SMALL LETTER EL</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06CD</entry> - <entry>U+043C</entry> - <entry>CYRILLIC SMALL LETTER EM</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06CE</entry> - <entry>U+043D</entry> - <entry>CYRILLIC SMALL LETTER EN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06CF</entry> - <entry>U+043E</entry> - <entry>CYRILLIC SMALL LETTER O</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D0</entry> - <entry>U+043F</entry> - <entry>CYRILLIC SMALL LETTER PE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D1</entry> - <entry>U+044F</entry> - <entry>CYRILLIC SMALL LETTER YA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D2</entry> - <entry>U+0440</entry> - <entry>CYRILLIC SMALL LETTER ER</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D3</entry> - <entry>U+0441</entry> - <entry>CYRILLIC SMALL LETTER ES</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D4</entry> - <entry>U+0442</entry> - <entry>CYRILLIC SMALL LETTER TE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D5</entry> - <entry>U+0443</entry> - <entry>CYRILLIC SMALL LETTER U</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D6</entry> - <entry>U+0436</entry> - <entry>CYRILLIC SMALL LETTER ZHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D7</entry> - <entry>U+0432</entry> - <entry>CYRILLIC SMALL LETTER VE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D8</entry> - <entry>U+044C</entry> - <entry>CYRILLIC SMALL LETTER SOFT SIGN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06D9</entry> - <entry>U+044B</entry> - <entry>CYRILLIC SMALL LETTER YERU</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06DA</entry> - <entry>U+0437</entry> - <entry>CYRILLIC SMALL LETTER ZE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06DB</entry> - <entry>U+0448</entry> - <entry>CYRILLIC SMALL LETTER SHA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06DC</entry> - <entry>U+044D</entry> - <entry>CYRILLIC SMALL LETTER E</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06DD</entry> - <entry>U+0449</entry> - <entry>CYRILLIC SMALL LETTER SHCHA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06DE</entry> - <entry>U+0447</entry> - <entry>CYRILLIC SMALL LETTER CHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06DF</entry> - <entry>U+044A</entry> - <entry>CYRILLIC SMALL LETTER HARD SIGN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E0</entry> - <entry>U+042E</entry> - <entry>CYRILLIC CAPITAL LETTER YU</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E1</entry> - <entry>U+0410</entry> - <entry>CYRILLIC CAPITAL LETTER A</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E2</entry> - <entry>U+0411</entry> - <entry>CYRILLIC CAPITAL LETTER BE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E3</entry> - <entry>U+0426</entry> - <entry>CYRILLIC CAPITAL LETTER TSE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E4</entry> - <entry>U+0414</entry> - <entry>CYRILLIC CAPITAL LETTER DE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E5</entry> - <entry>U+0415</entry> - <entry>CYRILLIC CAPITAL LETTER IE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E6</entry> - <entry>U+0424</entry> - <entry>CYRILLIC CAPITAL LETTER EF</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E7</entry> - <entry>U+0413</entry> - <entry>CYRILLIC CAPITAL LETTER GHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E8</entry> - <entry>U+0425</entry> - <entry>CYRILLIC CAPITAL LETTER HA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06E9</entry> - <entry>U+0418</entry> - <entry>CYRILLIC CAPITAL LETTER I</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06EA</entry> - <entry>U+0419</entry> - <entry>CYRILLIC CAPITAL LETTER SHORT I</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06EB</entry> - <entry>U+041A</entry> - <entry>CYRILLIC CAPITAL LETTER KA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06EC</entry> - <entry>U+041B</entry> - <entry>CYRILLIC CAPITAL LETTER EL</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06ED</entry> - <entry>U+041C</entry> - <entry>CYRILLIC CAPITAL LETTER EM</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06EE</entry> - <entry>U+041D</entry> - <entry>CYRILLIC CAPITAL LETTER EN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06EF</entry> - <entry>U+041E</entry> - <entry>CYRILLIC CAPITAL LETTER O</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F0</entry> - <entry>U+041F</entry> - <entry>CYRILLIC CAPITAL LETTER PE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F1</entry> - <entry>U+042F</entry> - <entry>CYRILLIC CAPITAL LETTER YA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F2</entry> - <entry>U+0420</entry> - <entry>CYRILLIC CAPITAL LETTER ER</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F3</entry> - <entry>U+0421</entry> - <entry>CYRILLIC CAPITAL LETTER ES</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F4</entry> - <entry>U+0422</entry> - <entry>CYRILLIC CAPITAL LETTER TE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F5</entry> - <entry>U+0423</entry> - <entry>CYRILLIC CAPITAL LETTER U</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F6</entry> - <entry>U+0416</entry> - <entry>CYRILLIC CAPITAL LETTER ZHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F7</entry> - <entry>U+0412</entry> - <entry>CYRILLIC CAPITAL LETTER VE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F8</entry> - <entry>U+042C</entry> - <entry>CYRILLIC CAPITAL LETTER SOFT SIGN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06F9</entry> - <entry>U+042B</entry> - <entry>CYRILLIC CAPITAL LETTER YERU</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06FA</entry> - <entry>U+0417</entry> - <entry>CYRILLIC CAPITAL LETTER ZE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06FB</entry> - <entry>U+0428</entry> - <entry>CYRILLIC CAPITAL LETTER SHA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06FC</entry> - <entry>U+042D</entry> - <entry>CYRILLIC CAPITAL LETTER E</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06FD</entry> - <entry>U+0429</entry> - <entry>CYRILLIC CAPITAL LETTER SHCHA</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06FE</entry> - <entry>U+0427</entry> - <entry>CYRILLIC CAPITAL LETTER CHE</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x06FF</entry> - <entry>U+042A</entry> - <entry>CYRILLIC CAPITAL LETTER HARD SIGN</entry> - <entry>Cyrillic</entry> - </row> - <row> - <entry>#x07A1</entry> - <entry>U+0386</entry> - <entry>GREEK CAPITAL LETTER ALPHA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A2</entry> - <entry>U+0388</entry> - <entry>GREEK CAPITAL LETTER EPSILON WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A3</entry> - <entry>U+0389</entry> - <entry>GREEK CAPITAL LETTER ETA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A4</entry> - <entry>U+038A</entry> - <entry>GREEK CAPITAL LETTER IOTA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A5</entry> - <entry>U+03AA</entry> - <entry>GREEK CAPITAL LETTER IOTA WITH DIALYTIKA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A7</entry> - <entry>U+038C</entry> - <entry>GREEK CAPITAL LETTER OMICRON WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A8</entry> - <entry>U+038E</entry> - <entry>GREEK CAPITAL LETTER UPSILON WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07A9</entry> - <entry>U+03AB</entry> - <entry>GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07AB</entry> - <entry>U+038F</entry> - <entry>GREEK CAPITAL LETTER OMEGA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07AE</entry> - <entry>U+0385</entry> - <entry>GREEK DIALYTIKA TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07AF</entry> - <entry>U+2015</entry> - <entry>HORIZONTAL BAR</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B1</entry> - <entry>U+03AC</entry> - <entry>GREEK SMALL LETTER ALPHA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B2</entry> - <entry>U+03AD</entry> - <entry>GREEK SMALL LETTER EPSILON WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B3</entry> - <entry>U+03AE</entry> - <entry>GREEK SMALL LETTER ETA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B4</entry> - <entry>U+03AF</entry> - <entry>GREEK SMALL LETTER IOTA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B5</entry> - <entry>U+03CA</entry> - <entry>GREEK SMALL LETTER IOTA WITH DIALYTIKA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B6</entry> - <entry>U+0390</entry> - <entry>GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B7</entry> - <entry>U+03CC</entry> - <entry>GREEK SMALL LETTER OMICRON WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B8</entry> - <entry>U+03CD</entry> - <entry>GREEK SMALL LETTER UPSILON WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07B9</entry> - <entry>U+03CB</entry> - <entry>GREEK SMALL LETTER UPSILON WITH DIALYTIKA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07BA</entry> - <entry>U+03B0</entry> - <entry>GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07BB</entry> - <entry>U+03CE</entry> - <entry>GREEK SMALL LETTER OMEGA WITH TONOS</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C1</entry> - <entry>U+0391</entry> - <entry>GREEK CAPITAL LETTER ALPHA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C2</entry> - <entry>U+0392</entry> - <entry>GREEK CAPITAL LETTER BETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C3</entry> - <entry>U+0393</entry> - <entry>GREEK CAPITAL LETTER GAMMA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C4</entry> - <entry>U+0394</entry> - <entry>GREEK CAPITAL LETTER DELTA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C5</entry> - <entry>U+0395</entry> - <entry>GREEK CAPITAL LETTER EPSILON</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C6</entry> - <entry>U+0396</entry> - <entry>GREEK CAPITAL LETTER ZETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C7</entry> - <entry>U+0397</entry> - <entry>GREEK CAPITAL LETTER ETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C8</entry> - <entry>U+0398</entry> - <entry>GREEK CAPITAL LETTER THETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07C9</entry> - <entry>U+0399</entry> - <entry>GREEK CAPITAL LETTER IOTA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07CA</entry> - <entry>U+039A</entry> - <entry>GREEK CAPITAL LETTER KAPPA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07CB</entry> - <entry>U+039B</entry> - <entry>GREEK CAPITAL LETTER LAMDA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07CC</entry> - <entry>U+039C</entry> - <entry>GREEK CAPITAL LETTER MU</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07CD</entry> - <entry>U+039D</entry> - <entry>GREEK CAPITAL LETTER NU</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07CE</entry> - <entry>U+039E</entry> - <entry>GREEK CAPITAL LETTER XI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07CF</entry> - <entry>U+039F</entry> - <entry>GREEK CAPITAL LETTER OMICRON</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D0</entry> - <entry>U+03A0</entry> - <entry>GREEK CAPITAL LETTER PI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D1</entry> - <entry>U+03A1</entry> - <entry>GREEK CAPITAL LETTER RHO</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D2</entry> - <entry>U+03A3</entry> - <entry>GREEK CAPITAL LETTER SIGMA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D4</entry> - <entry>U+03A4</entry> - <entry>GREEK CAPITAL LETTER TAU</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D5</entry> - <entry>U+03A5</entry> - <entry>GREEK CAPITAL LETTER UPSILON</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D6</entry> - <entry>U+03A6</entry> - <entry>GREEK CAPITAL LETTER PHI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D7</entry> - <entry>U+03A7</entry> - <entry>GREEK CAPITAL LETTER CHI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D8</entry> - <entry>U+03A8</entry> - <entry>GREEK CAPITAL LETTER PSI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07D9</entry> - <entry>U+03A9</entry> - <entry>GREEK CAPITAL LETTER OMEGA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E1</entry> - <entry>U+03B1</entry> - <entry>GREEK SMALL LETTER ALPHA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E2</entry> - <entry>U+03B2</entry> - <entry>GREEK SMALL LETTER BETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E3</entry> - <entry>U+03B3</entry> - <entry>GREEK SMALL LETTER GAMMA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E4</entry> - <entry>U+03B4</entry> - <entry>GREEK SMALL LETTER DELTA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E5</entry> - <entry>U+03B5</entry> - <entry>GREEK SMALL LETTER EPSILON</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E6</entry> - <entry>U+03B6</entry> - <entry>GREEK SMALL LETTER ZETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E7</entry> - <entry>U+03B7</entry> - <entry>GREEK SMALL LETTER ETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E8</entry> - <entry>U+03B8</entry> - <entry>GREEK SMALL LETTER THETA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07E9</entry> - <entry>U+03B9</entry> - <entry>GREEK SMALL LETTER IOTA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07EA</entry> - <entry>U+03BA</entry> - <entry>GREEK SMALL LETTER KAPPA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07EB</entry> - <entry>U+03BB</entry> - <entry>GREEK SMALL LETTER LAMDA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07EC</entry> - <entry>U+03BC</entry> - <entry>GREEK SMALL LETTER MU</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07ED</entry> - <entry>U+03BD</entry> - <entry>GREEK SMALL LETTER NU</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07EE</entry> - <entry>U+03BE</entry> - <entry>GREEK SMALL LETTER XI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07EF</entry> - <entry>U+03BF</entry> - <entry>GREEK SMALL LETTER OMICRON</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F0</entry> - <entry>U+03C0</entry> - <entry>GREEK SMALL LETTER PI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F1</entry> - <entry>U+03C1</entry> - <entry>GREEK SMALL LETTER RHO</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F2</entry> - <entry>U+03C3</entry> - <entry>GREEK SMALL LETTER SIGMA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F3</entry> - <entry>U+03C2</entry> - <entry>GREEK SMALL LETTER FINAL SIGMA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F4</entry> - <entry>U+03C4</entry> - <entry>GREEK SMALL LETTER TAU</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F5</entry> - <entry>U+03C5</entry> - <entry>GREEK SMALL LETTER UPSILON</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F6</entry> - <entry>U+03C6</entry> - <entry>GREEK SMALL LETTER PHI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F7</entry> - <entry>U+03C7</entry> - <entry>GREEK SMALL LETTER CHI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F8</entry> - <entry>U+03C8</entry> - <entry>GREEK SMALL LETTER PSI</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x07F9</entry> - <entry>U+03C9</entry> - <entry>GREEK SMALL LETTER OMEGA</entry> - <entry>Greek</entry> - </row> - <row> - <entry>#x08A1</entry> - <entry>U+23B7</entry> - <entry>LEFT RADICAL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A2</entry> - <entry>-</entry> - <entry>TOP LEFT RADICAL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A3</entry> - <entry>-</entry> - <entry>HORIZONTAL CONNECTOR</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A4</entry> - <entry>U+2320</entry> - <entry>TOP INTEGRAL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A5</entry> - <entry>U+2321</entry> - <entry>BOTTOM INTEGRAL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A6</entry> - <entry>-</entry> - <entry>VERTICAL CONNECTOR</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A7</entry> - <entry>U+23A1</entry> - <entry>TOP LEFT SQUARE BRACKET</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A8</entry> - <entry>U+23A3</entry> - <entry>BOTTOM LEFT SQUARE BRACKET</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08A9</entry> - <entry>U+23A4</entry> - <entry>TOP RIGHT SQUARE BRACKET</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08AA</entry> - <entry>U+23A6</entry> - <entry>BOTTOM RIGHT SQUARE BRACKET</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08AB</entry> - <entry>U+239B</entry> - <entry>TOP LEFT PARENTHESIS</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08AC</entry> - <entry>U+239D</entry> - <entry>BOTTOM LEFT PARENTHESIS</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08AD</entry> - <entry>U+239E</entry> - <entry>TOP RIGHT PARENTHESIS</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08AE</entry> - <entry>U+23A0</entry> - <entry>BOTTOM RIGHT PARENTHESIS</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08AF</entry> - <entry>U+23A8</entry> - <entry>LEFT MIDDLE CURLY BRACE</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B0</entry> - <entry>U+23AC</entry> - <entry>RIGHT MIDDLE CURLY BRACE</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B1</entry> - <entry>-</entry> - <entry>TOP LEFT SUMMATION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B2</entry> - <entry>-</entry> - <entry>BOTTOM LEFT SUMMATION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B3</entry> - <entry>-</entry> - <entry>TOP VERTICAL SUMMATION CONNECTOR</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B4</entry> - <entry>-</entry> - <entry>BOTTOM VERTICAL SUMMATION CONNECTOR</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B5</entry> - <entry>-</entry> - <entry>TOP RIGHT SUMMATION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B6</entry> - <entry>-</entry> - <entry>BOTTOM RIGHT SUMMATION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08B7</entry> - <entry>-</entry> - <entry>RIGHT MIDDLE SUMMATION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08BC</entry> - <entry>U+2264</entry> - <entry>LESS THAN OR EQUAL SIGN</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08BD</entry> - <entry>U+2260</entry> - <entry>NOT EQUAL SIGN</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08BE</entry> - <entry>U+2265</entry> - <entry>GREATER THAN OR EQUAL SIGN</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08BF</entry> - <entry>U+222B</entry> - <entry>INTEGRAL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08C0</entry> - <entry>U+2234</entry> - <entry>THEREFORE</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08C1</entry> - <entry>U+221D</entry> - <entry>VARIATION, PROPORTIONAL TO</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08C2</entry> - <entry>U+221E</entry> - <entry>INFINITY</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08C5</entry> - <entry>U+2207</entry> - <entry>NABLA, DEL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08C8</entry> - <entry>U+223C</entry> - <entry>IS APPROXIMATE TO</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08C9</entry> - <entry>U+2243</entry> - <entry>SIMILAR OR EQUAL TO</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08CD</entry> - <entry>U+21D4</entry> - <entry>IF AND ONLY IF</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08CE</entry> - <entry>U+21D2</entry> - <entry>IMPLIES</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08CF</entry> - <entry>U+2261</entry> - <entry>IDENTICAL TO</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08D6</entry> - <entry>U+221A</entry> - <entry>RADICAL</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08DA</entry> - <entry>U+2282</entry> - <entry>IS INCLUDED IN</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08DB</entry> - <entry>U+2283</entry> - <entry>INCLUDES</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08DC</entry> - <entry>U+2229</entry> - <entry>INTERSECTION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08DD</entry> - <entry>U+222A</entry> - <entry>UNION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08DE</entry> - <entry>U+2227</entry> - <entry>LOGICAL AND</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08DF</entry> - <entry>U+2228</entry> - <entry>LOGICAL OR</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08EF</entry> - <entry>U+2202</entry> - <entry>PARTIAL DERIVATIVE</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08F6</entry> - <entry>U+0192</entry> - <entry>FUNCTION</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08FB</entry> - <entry>U+2190</entry> - <entry>LEFT ARROW</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08FC</entry> - <entry>U+2191</entry> - <entry>UPWARD ARROW</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08FD</entry> - <entry>U+2192</entry> - <entry>RIGHT ARROW</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x08FE</entry> - <entry>U+2193</entry> - <entry>DOWNWARD ARROW</entry> - <entry>Technical</entry> - </row> - <row> - <entry>#x09DF</entry> - <entry>-</entry> - <entry>BLANK</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E0</entry> - <entry>U+25C6</entry> - <entry>SOLID DIAMOND</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E1</entry> - <entry>U+2592</entry> - <entry>CHECKERBOARD</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E2</entry> - <entry>U+2409</entry> - <entry>"HT"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E3</entry> - <entry>U+240C</entry> - <entry>"FF"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E4</entry> - <entry>U+240D</entry> - <entry>"CR"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E5</entry> - <entry>U+240A</entry> - <entry>"LF"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E8</entry> - <entry>U+2424</entry> - <entry>"NL"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09E9</entry> - <entry>U+240B</entry> - <entry>"VT"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09EA</entry> - <entry>U+2518</entry> - <entry>LOWER-RIGHT CORNER</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09EB</entry> - <entry>U+2510</entry> - <entry>UPPER-RIGHT CORNER</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09EC</entry> - <entry>U+250C</entry> - <entry>UPPER-LEFT CORNER</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09ED</entry> - <entry>U+2514</entry> - <entry>LOWER-LEFT CORNER</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09EE</entry> - <entry>U+253C</entry> - <entry>CROSSING-LINES</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09EF</entry> - <entry>U+23BA</entry> - <entry>HORIZONTAL LINE, SCAN 1</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F0</entry> - <entry>U+23BB</entry> - <entry>HORIZONTAL LINE, SCAN 3</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F1</entry> - <entry>U+2500</entry> - <entry>HORIZONTAL LINE, SCAN 5</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F2</entry> - <entry>U+23BC</entry> - <entry>HORIZONTAL LINE, SCAN 7</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F3</entry> - <entry>U+23BD</entry> - <entry>HORIZONTAL LINE, SCAN 9</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F4</entry> - <entry>U+251C</entry> - <entry>LEFT "T"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F5</entry> - <entry>U+2524</entry> - <entry>RIGHT "T"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F6</entry> - <entry>U+2534</entry> - <entry>BOTTOM "T"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F7</entry> - <entry>U+252C</entry> - <entry>TOP "T"</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x09F8</entry> - <entry>U+2502</entry> - <entry>VERTICAL BAR</entry> - <entry>Special</entry> - </row> - <row> - <entry>#x0AA1</entry> - <entry>U+2003</entry> - <entry>EM SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA2</entry> - <entry>U+2002</entry> - <entry>EN SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA3</entry> - <entry>U+2004</entry> - <entry>3/EM SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA4</entry> - <entry>U+2005</entry> - <entry>4/EM SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA5</entry> - <entry>U+2007</entry> - <entry>DIGIT SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA6</entry> - <entry>U+2008</entry> - <entry>PUNCTUATION SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA7</entry> - <entry>U+2009</entry> - <entry>THIN SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA8</entry> - <entry>U+200A</entry> - <entry>HAIR SPACE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AA9</entry> - <entry>U+2014</entry> - <entry>EM DASH</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AAA</entry> - <entry>U+2013</entry> - <entry>EN DASH</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AAC</entry> - <entry>-</entry> - <entry>SIGNIFICANT BLANK SYMBOL</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AAE</entry> - <entry>U+2026</entry> - <entry>ELLIPSIS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AAF</entry> - <entry>U+2025</entry> - <entry>DOUBLE BASELINE DOT</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB0</entry> - <entry>U+2153</entry> - <entry>VULGAR FRACTION ONE THIRD</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB1</entry> - <entry>U+2154</entry> - <entry>VULGAR FRACTION TWO THIRDS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB2</entry> - <entry>U+2155</entry> - <entry>VULGAR FRACTION ONE FIFTH</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB3</entry> - <entry>U+2156</entry> - <entry>VULGAR FRACTION TWO FIFTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB4</entry> - <entry>U+2157</entry> - <entry>VULGAR FRACTION THREE FIFTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB5</entry> - <entry>U+2158</entry> - <entry>VULGAR FRACTION FOUR FIFTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB6</entry> - <entry>U+2159</entry> - <entry>VULGAR FRACTION ONE SIXTH</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB7</entry> - <entry>U+215A</entry> - <entry>VULGAR FRACTION FIVE SIXTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AB8</entry> - <entry>U+2105</entry> - <entry>CARE OF</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ABB</entry> - <entry>U+2012</entry> - <entry>FIGURE DASH</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ABC</entry> - <entry>-</entry> - <entry>LEFT ANGLE BRACKET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ABD</entry> - <entry>-</entry> - <entry>DECIMAL POINT</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ABE</entry> - <entry>-</entry> - <entry>RIGHT ANGLE BRACKET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ABF</entry> - <entry>-</entry> - <entry>MARKER</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AC3</entry> - <entry>U+215B</entry> - <entry>VULGAR FRACTION ONE EIGHTH</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AC4</entry> - <entry>U+215C</entry> - <entry>VULGAR FRACTION THREE EIGHTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AC5</entry> - <entry>U+215D</entry> - <entry>VULGAR FRACTION FIVE EIGHTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AC6</entry> - <entry>U+215E</entry> - <entry>VULGAR FRACTION SEVEN EIGHTHS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AC9</entry> - <entry>U+2122</entry> - <entry>TRADEMARK SIGN</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ACA</entry> - <entry>-</entry> - <entry>SIGNATURE MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ACB</entry> - <entry>-</entry> - <entry>TRADEMARK SIGN IN CIRCLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ACC</entry> - <entry>-</entry> - <entry>LEFT OPEN TRIANGLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ACD</entry> - <entry>-</entry> - <entry>RIGHT OPEN TRIANGLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ACE</entry> - <entry>-</entry> - <entry>EM OPEN CIRCLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ACF</entry> - <entry>-</entry> - <entry>EM OPEN RECTANGLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD0</entry> - <entry>U+2018</entry> - <entry>LEFT SINGLE QUOTATION MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD1</entry> - <entry>U+2019</entry> - <entry>RIGHT SINGLE QUOTATION MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD2</entry> - <entry>U+201C</entry> - <entry>LEFT DOUBLE QUOTATION MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD3</entry> - <entry>U+201D</entry> - <entry>RIGHT DOUBLE QUOTATION MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD4</entry> - <entry>U+211E</entry> - <entry>PRESCRIPTION, TAKE, RECIPE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD5</entry> - <entry>U+2030</entry> - <entry>PER MILLE SIGN</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD6</entry> - <entry>U+2032</entry> - <entry>MINUTES</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD7</entry> - <entry>U+2033</entry> - <entry>SECONDS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AD9</entry> - <entry>U+271D</entry> - <entry>LATIN CROSS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ADA</entry> - <entry>-</entry> - <entry>HEXAGRAM</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ADB</entry> - <entry>-</entry> - <entry>FILLED RECTANGLE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ADC</entry> - <entry>-</entry> - <entry>FILLED LEFT TRIANGLE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ADD</entry> - <entry>-</entry> - <entry>FILLED RIGHT TRIANGLE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ADE</entry> - <entry>-</entry> - <entry>EM FILLED CIRCLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0ADF</entry> - <entry>-</entry> - <entry>EM FILLED RECTANGLE</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE0</entry> - <entry>-</entry> - <entry>EN OPEN CIRCLE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE1</entry> - <entry>-</entry> - <entry>EN OPEN SQUARE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE2</entry> - <entry>-</entry> - <entry>OPEN RECTANGULAR BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE3</entry> - <entry>-</entry> - <entry>OPEN TRIANGULAR BULLET UP</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE4</entry> - <entry>-</entry> - <entry>OPEN TRIANGULAR BULLET DOWN</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE5</entry> - <entry>-</entry> - <entry>OPEN STAR</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE6</entry> - <entry>-</entry> - <entry>EN FILLED CIRCLE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE7</entry> - <entry>-</entry> - <entry>EN FILLED SQUARE BULLET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE8</entry> - <entry>-</entry> - <entry>FILLED TRIANGULAR BULLET UP</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AE9</entry> - <entry>-</entry> - <entry>FILLED TRIANGULAR BULLET DOWN</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AEA</entry> - <entry>-</entry> - <entry>LEFT POINTER</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AEB</entry> - <entry>-</entry> - <entry>RIGHT POINTER</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AEC</entry> - <entry>U+2663</entry> - <entry>CLUB</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AED</entry> - <entry>U+2666</entry> - <entry>DIAMOND</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AEE</entry> - <entry>U+2665</entry> - <entry>HEART</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF0</entry> - <entry>U+2720</entry> - <entry>MALTESE CROSS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF1</entry> - <entry>U+2020</entry> - <entry>DAGGER</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF2</entry> - <entry>U+2021</entry> - <entry>DOUBLE DAGGER</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF3</entry> - <entry>U+2713</entry> - <entry>CHECK MARK, TICK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF4</entry> - <entry>U+2717</entry> - <entry>BALLOT CROSS</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF5</entry> - <entry>U+266F</entry> - <entry>MUSICAL SHARP</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF6</entry> - <entry>U+266D</entry> - <entry>MUSICAL FLAT</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF7</entry> - <entry>U+2642</entry> - <entry>MALE SYMBOL</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF8</entry> - <entry>U+2640</entry> - <entry>FEMALE SYMBOL</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AF9</entry> - <entry>U+260E</entry> - <entry>TELEPHONE SYMBOL</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AFA</entry> - <entry>U+2315</entry> - <entry>TELEPHONE RECORDER SYMBOL</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AFB</entry> - <entry>U+2117</entry> - <entry>PHONOGRAPH COPYRIGHT SIGN</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AFC</entry> - <entry>U+2038</entry> - <entry>CARET</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AFD</entry> - <entry>U+201A</entry> - <entry>SINGLE LOW QUOTATION MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AFE</entry> - <entry>U+201E</entry> - <entry>DOUBLE LOW QUOTATION MARK</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0AFF</entry> - <entry>-</entry> - <entry>CURSOR</entry> - <entry>Publish</entry> - </row> - <row> - <entry>#x0BA3</entry> - <entry>-</entry> - <entry>LEFT CARET</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BA6</entry> - <entry>-</entry> - <entry>RIGHT CARET</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BA8</entry> - <entry>-</entry> - <entry>DOWN CARET</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BA9</entry> - <entry>-</entry> - <entry>UP CARET</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BC0</entry> - <entry>-</entry> - <entry>OVERBAR</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BC2</entry> - <entry>U+22A5</entry> - <entry>DOWN TACK</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BC3</entry> - <entry>-</entry> - <entry>UP SHOE (CAP)</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BC4</entry> - <entry>U+230A</entry> - <entry>DOWN STILE</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BC6</entry> - <entry>-</entry> - <entry>UNDERBAR</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BCA</entry> - <entry>U+2218</entry> - <entry>JOT</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BCC</entry> - <entry>U+2395</entry> - <entry>QUAD</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BCE</entry> - <entry>U+22A4</entry> - <entry>UP TACK</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BCF</entry> - <entry>U+25CB</entry> - <entry>CIRCLE</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BD3</entry> - <entry>U+2308</entry> - <entry>UP STILE</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BD6</entry> - <entry>-</entry> - <entry>DOWN SHOE (CUP)</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BD8</entry> - <entry>-</entry> - <entry>RIGHT SHOE</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BDA</entry> - <entry>-</entry> - <entry>LEFT SHOE</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BDC</entry> - <entry>U+22A2</entry> - <entry>LEFT TACK</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0BFC</entry> - <entry>U+22A3</entry> - <entry>RIGHT TACK</entry> - <entry>APL</entry> - </row> - <row> - <entry>#x0CDF</entry> - <entry>U+2017</entry> - <entry>DOUBLE LOW LINE</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE0</entry> - <entry>U+05D0</entry> - <entry>HEBREW LETTER ALEF</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE1</entry> - <entry>U+05D1</entry> - <entry>HEBREW LETTER BET</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE2</entry> - <entry>U+05D2</entry> - <entry>HEBREW LETTER GIMEL</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE3</entry> - <entry>U+05D3</entry> - <entry>HEBREW LETTER DALET</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE4</entry> - <entry>U+05D4</entry> - <entry>HEBREW LETTER HE</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE5</entry> - <entry>U+05D5</entry> - <entry>HEBREW LETTER VAV</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE6</entry> - <entry>U+05D6</entry> - <entry>HEBREW LETTER ZAYIN</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE7</entry> - <entry>U+05D7</entry> - <entry>HEBREW LETTER HET</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE8</entry> - <entry>U+05D8</entry> - <entry>HEBREW LETTER TET</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CE9</entry> - <entry>U+05D9</entry> - <entry>HEBREW LETTER YOD</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CEA</entry> - <entry>U+05DA</entry> - <entry>HEBREW LETTER FINAL KAF</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CEB</entry> - <entry>U+05DB</entry> - <entry>HEBREW LETTER KAF</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CEC</entry> - <entry>U+05DC</entry> - <entry>HEBREW LETTER LAMED</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CED</entry> - <entry>U+05DD</entry> - <entry>HEBREW LETTER FINAL MEM</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CEE</entry> - <entry>U+05DE</entry> - <entry>HEBREW LETTER MEM</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CEF</entry> - <entry>U+05DF</entry> - <entry>HEBREW LETTER FINAL NUN</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF0</entry> - <entry>U+05E0</entry> - <entry>HEBREW LETTER NUN</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF1</entry> - <entry>U+05E1</entry> - <entry>HEBREW LETTER SAMEKH</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF2</entry> - <entry>U+05E2</entry> - <entry>HEBREW LETTER AYIN</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF3</entry> - <entry>U+05E3</entry> - <entry>HEBREW LETTER FINAL PE</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF4</entry> - <entry>U+05E4</entry> - <entry>HEBREW LETTER PE</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF5</entry> - <entry>U+05E5</entry> - <entry>HEBREW LETTER FINAL TSADI</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF6</entry> - <entry>U+05E6</entry> - <entry>HEBREW LETTER TSADI</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF7</entry> - <entry>U+05E7</entry> - <entry>HEBREW LETTER QOF</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF8</entry> - <entry>U+05E8</entry> - <entry>HEBREW LETTER RESH</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CF9</entry> - <entry>U+05E9</entry> - <entry>HEBREW LETTER SHIN</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0CFA</entry> - <entry>U+05EA</entry> - <entry>HEBREW LETTER TAV</entry> - <entry>Hebrew</entry> - </row> - <row> - <entry>#x0DA1</entry> - <entry>U+0E01</entry> - <entry>THAI CHARACTER KO KAI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA2</entry> - <entry>U+0E02</entry> - <entry>THAI CHARACTER KHO KHAI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA3</entry> - <entry>U+0E03</entry> - <entry>THAI CHARACTER KHO KHUAT</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA4</entry> - <entry>U+0E04</entry> - <entry>THAI CHARACTER KHO KHWAI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA5</entry> - <entry>U+0E05</entry> - <entry>THAI CHARACTER KHO KHON</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA6</entry> - <entry>U+0E06</entry> - <entry>THAI CHARACTER KHO RAKHANG</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA7</entry> - <entry>U+0E07</entry> - <entry>THAI CHARACTER NGO NGU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA8</entry> - <entry>U+0E08</entry> - <entry>THAI CHARACTER CHO CHAN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DA9</entry> - <entry>U+0E09</entry> - <entry>THAI CHARACTER CHO CHING</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DAA</entry> - <entry>U+0E0A</entry> - <entry>THAI CHARACTER CHO CHANG</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DAB</entry> - <entry>U+0E0B</entry> - <entry>THAI CHARACTER SO SO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DAC</entry> - <entry>U+0E0C</entry> - <entry>THAI CHARACTER CHO CHOE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DAD</entry> - <entry>U+0E0D</entry> - <entry>THAI CHARACTER YO YING</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DAE</entry> - <entry>U+0E0E</entry> - <entry>THAI CHARACTER DO CHADA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DAF</entry> - <entry>U+0E0F</entry> - <entry>THAI CHARACTER TO PATAK</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB0</entry> - <entry>U+0E10</entry> - <entry>THAI CHARACTER THO THAN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB1</entry> - <entry>U+0E11</entry> - <entry>THAI CHARACTER THO NANGMONTHO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB2</entry> - <entry>U+0E12</entry> - <entry>THAI CHARACTER THO PHUTHAO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB3</entry> - <entry>U+0E13</entry> - <entry>THAI CHARACTER NO NEN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB4</entry> - <entry>U+0E14</entry> - <entry>THAI CHARACTER DO DEK</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB5</entry> - <entry>U+0E15</entry> - <entry>THAI CHARACTER TO TAO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB6</entry> - <entry>U+0E16</entry> - <entry>THAI CHARACTER THO THUNG</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB7</entry> - <entry>U+0E17</entry> - <entry>THAI CHARACTER THO THAHAN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB8</entry> - <entry>U+0E18</entry> - <entry>THAI CHARACTER THO THONG</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DB9</entry> - <entry>U+0E19</entry> - <entry>THAI CHARACTER NO NU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DBA</entry> - <entry>U+0E1A</entry> - <entry>THAI CHARACTER BO BAIMAI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DBB</entry> - <entry>U+0E1B</entry> - <entry>THAI CHARACTER PO PLA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DBC</entry> - <entry>U+0E1C</entry> - <entry>THAI CHARACTER PHO PHUNG</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DBD</entry> - <entry>U+0E1D</entry> - <entry>THAI CHARACTER FO FA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DBE</entry> - <entry>U+0E1E</entry> - <entry>THAI CHARACTER PHO PHAN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DBF</entry> - <entry>U+0E1F</entry> - <entry>THAI CHARACTER FO FAN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC0</entry> - <entry>U+0E20</entry> - <entry>THAI CHARACTER PHO SAMPHAO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC1</entry> - <entry>U+0E21</entry> - <entry>THAI CHARACTER MO MA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC2</entry> - <entry>U+0E22</entry> - <entry>THAI CHARACTER YO YAK</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC3</entry> - <entry>U+0E23</entry> - <entry>THAI CHARACTER RO RUA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC4</entry> - <entry>U+0E24</entry> - <entry>THAI CHARACTER RU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC5</entry> - <entry>U+0E25</entry> - <entry>THAI CHARACTER LO LING</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC6</entry> - <entry>U+0E26</entry> - <entry>THAI CHARACTER LU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC7</entry> - <entry>U+0E27</entry> - <entry>THAI CHARACTER WO WAEN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC8</entry> - <entry>U+0E28</entry> - <entry>THAI CHARACTER SO SALA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DC9</entry> - <entry>U+0E29</entry> - <entry>THAI CHARACTER SO RUSI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DCA</entry> - <entry>U+0E2A</entry> - <entry>THAI CHARACTER SO SUA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DCB</entry> - <entry>U+0E2B</entry> - <entry>THAI CHARACTER HO HIP</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DCC</entry> - <entry>U+0E2C</entry> - <entry>THAI CHARACTER LO CHULA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DCD</entry> - <entry>U+0E2D</entry> - <entry>THAI CHARACTER O ANG</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DCE</entry> - <entry>U+0E2E</entry> - <entry>THAI CHARACTER HO NOKHUK</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DCF</entry> - <entry>U+0E2F</entry> - <entry>THAI CHARACTER PAIYANNOI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD0</entry> - <entry>U+0E30</entry> - <entry>THAI CHARACTER SARA A</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD1</entry> - <entry>U+0E31</entry> - <entry>THAI CHARACTER MAI HAN-AKAT</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD2</entry> - <entry>U+0E32</entry> - <entry>THAI CHARACTER SARA AA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD3</entry> - <entry>U+0E33</entry> - <entry>THAI CHARACTER SARA AM</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD4</entry> - <entry>U+0E34</entry> - <entry>THAI CHARACTER SARA I</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD5</entry> - <entry>U+0E35</entry> - <entry>THAI CHARACTER SARA II</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD6</entry> - <entry>U+0E36</entry> - <entry>THAI CHARACTER SARA UE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD7</entry> - <entry>U+0E37</entry> - <entry>THAI CHARACTER SARA UEE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD8</entry> - <entry>U+0E38</entry> - <entry>THAI CHARACTER SARA U</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DD9</entry> - <entry>U+0E39</entry> - <entry>THAI CHARACTER SARA UU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DDA</entry> - <entry>U+0E3A</entry> - <entry>THAI CHARACTER PHINTHU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DDF</entry> - <entry>U+0E3F</entry> - <entry>THAI CURRENCY SYMBOL BAHT</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE0</entry> - <entry>U+0E40</entry> - <entry>THAI CHARACTER SARA E</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE1</entry> - <entry>U+0E41</entry> - <entry>THAI CHARACTER SARA AE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE2</entry> - <entry>U+0E42</entry> - <entry>THAI CHARACTER SARA O</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE3</entry> - <entry>U+0E43</entry> - <entry>THAI CHARACTER SARA AI MAIMUAN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE4</entry> - <entry>U+0E44</entry> - <entry>THAI CHARACTER SARA AI MAIMALAI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE5</entry> - <entry>U+0E45</entry> - <entry>THAI CHARACTER LAKKHANGYAO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE6</entry> - <entry>U+0E46</entry> - <entry>THAI CHARACTER MAIYAMOK</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE7</entry> - <entry>U+0E47</entry> - <entry>THAI CHARACTER MAITAIKHU</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE8</entry> - <entry>U+0E48</entry> - <entry>THAI CHARACTER MAI EK</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DE9</entry> - <entry>U+0E49</entry> - <entry>THAI CHARACTER MAI THO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DEA</entry> - <entry>U+0E4A</entry> - <entry>THAI CHARACTER MAI TRI</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DEB</entry> - <entry>U+0E4B</entry> - <entry>THAI CHARACTER MAI CHATTAWA</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DEC</entry> - <entry>U+0E4C</entry> - <entry>THAI CHARACTER THANTHAKHAT</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DED</entry> - <entry>U+0E4D</entry> - <entry>THAI CHARACTER NIKHAHIT</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF0</entry> - <entry>U+0E50</entry> - <entry>THAI DIGIT ZERO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF1</entry> - <entry>U+0E51</entry> - <entry>THAI DIGIT ONE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF2</entry> - <entry>U+0E52</entry> - <entry>THAI DIGIT TWO</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF3</entry> - <entry>U+0E53</entry> - <entry>THAI DIGIT THREE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF4</entry> - <entry>U+0E54</entry> - <entry>THAI DIGIT FOUR</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF5</entry> - <entry>U+0E55</entry> - <entry>THAI DIGIT FIVE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF6</entry> - <entry>U+0E56</entry> - <entry>THAI DIGIT SIX</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF7</entry> - <entry>U+0E57</entry> - <entry>THAI DIGIT SEVEN</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF8</entry> - <entry>U+0E58</entry> - <entry>THAI DIGIT EIGHT</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0DF9</entry> - <entry>U+0E59</entry> - <entry>THAI DIGIT NINE</entry> - <entry>Thai</entry> - </row> - <row> - <entry>#x0EA1</entry> - <entry>-</entry> - <entry>HANGUL KIYEOG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA2</entry> - <entry>-</entry> - <entry>HANGUL SSANG KIYEOG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA3</entry> - <entry>-</entry> - <entry>HANGUL KIYEOG SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA4</entry> - <entry>-</entry> - <entry>HANGUL NIEUN</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA5</entry> - <entry>-</entry> - <entry>HANGUL NIEUN JIEUJ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA6</entry> - <entry>-</entry> - <entry>HANGUL NIEUN HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA7</entry> - <entry>-</entry> - <entry>HANGUL DIKEUD</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA8</entry> - <entry>-</entry> - <entry>HANGUL SSANG DIKEUD</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EA9</entry> - <entry>-</entry> - <entry>HANGUL RIEUL</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EAA</entry> - <entry>-</entry> - <entry>HANGUL RIEUL KIYEOG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EAB</entry> - <entry>-</entry> - <entry>HANGUL RIEUL MIEUM</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EAC</entry> - <entry>-</entry> - <entry>HANGUL RIEUL PIEUB</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EAD</entry> - <entry>-</entry> - <entry>HANGUL RIEUL SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EAE</entry> - <entry>-</entry> - <entry>HANGUL RIEUL TIEUT</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EAF</entry> - <entry>-</entry> - <entry>HANGUL RIEUL PHIEUF</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB0</entry> - <entry>-</entry> - <entry>HANGUL RIEUL HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB1</entry> - <entry>-</entry> - <entry>HANGUL MIEUM</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB2</entry> - <entry>-</entry> - <entry>HANGUL PIEUB</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB3</entry> - <entry>-</entry> - <entry>HANGUL SSANG PIEUB</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB4</entry> - <entry>-</entry> - <entry>HANGUL PIEUB SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB5</entry> - <entry>-</entry> - <entry>HANGUL SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB6</entry> - <entry>-</entry> - <entry>HANGUL SSANG SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB7</entry> - <entry>-</entry> - <entry>HANGUL IEUNG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB8</entry> - <entry>-</entry> - <entry>HANGUL JIEUJ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EB9</entry> - <entry>-</entry> - <entry>HANGUL SSANG JIEUJ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EBA</entry> - <entry>-</entry> - <entry>HANGUL CIEUC</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EBB</entry> - <entry>-</entry> - <entry>HANGUL KHIEUQ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EBC</entry> - <entry>-</entry> - <entry>HANGUL TIEUT</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EBD</entry> - <entry>-</entry> - <entry>HANGUL PHIEUF</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EBE</entry> - <entry>-</entry> - <entry>HANGUL HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EBF</entry> - <entry>-</entry> - <entry>HANGUL A</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC0</entry> - <entry>-</entry> - <entry>HANGUL AE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC1</entry> - <entry>-</entry> - <entry>HANGUL YA</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC2</entry> - <entry>-</entry> - <entry>HANGUL YAE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC3</entry> - <entry>-</entry> - <entry>HANGUL EO</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC4</entry> - <entry>-</entry> - <entry>HANGUL E</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC5</entry> - <entry>-</entry> - <entry>HANGUL YEO</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC6</entry> - <entry>-</entry> - <entry>HANGUL YE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC7</entry> - <entry>-</entry> - <entry>HANGUL O</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC8</entry> - <entry>-</entry> - <entry>HANGUL WA</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EC9</entry> - <entry>-</entry> - <entry>HANGUL WAE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ECA</entry> - <entry>-</entry> - <entry>HANGUL OE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ECB</entry> - <entry>-</entry> - <entry>HANGUL YO</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ECC</entry> - <entry>-</entry> - <entry>HANGUL U</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ECD</entry> - <entry>-</entry> - <entry>HANGUL WEO</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ECE</entry> - <entry>-</entry> - <entry>HANGUL WE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ECF</entry> - <entry>-</entry> - <entry>HANGUL WI</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED0</entry> - <entry>-</entry> - <entry>HANGUL YU</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED1</entry> - <entry>-</entry> - <entry>HANGUL EU</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED2</entry> - <entry>-</entry> - <entry>HANGUL YI</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED3</entry> - <entry>-</entry> - <entry>HANGUL I</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED4</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG KIYEOG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED5</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG SSANG KIYEOG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED6</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG KIYEOG SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED7</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG NIEUN</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED8</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG NIEUN JIEUJ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0ED9</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG NIEUN HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EDA</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG DIKEUD</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EDB</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EDC</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL KIYEOG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EDD</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL MIEUM</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EDE</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL PIEUB</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EDF</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE0</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL TIEUT</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE1</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL PHIEUF</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE2</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG RIEUL HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE3</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG MIEUM</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE4</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG PIEUB</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE5</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG PIEUB SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE6</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE7</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG SSANG SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE8</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG IEUNG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EE9</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG JIEUJ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EEA</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG CIEUC</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EEB</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG KHIEUQ</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EEC</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG TIEUT</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EED</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG PHIEUF</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EEE</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EEF</entry> - <entry>-</entry> - <entry>HANGUL RIEUL YEORIN HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF0</entry> - <entry>-</entry> - <entry>HANGUL SUNKYEONGEUM MIEUM</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF1</entry> - <entry>-</entry> - <entry>HANGUL SUNKYEONGEUM PIEUB</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF2</entry> - <entry>-</entry> - <entry>HANGUL PAN SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF3</entry> - <entry>-</entry> - <entry>HANGUL KKOGJI DALRIN IEUNG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF4</entry> - <entry>-</entry> - <entry>HANGUL SUNKYEONGEUM PHIEUF</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF5</entry> - <entry>-</entry> - <entry>HANGUL YEORIN HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF6</entry> - <entry>-</entry> - <entry>HANGUL ARAE A</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF7</entry> - <entry>-</entry> - <entry>HANGUL ARAE AE</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF8</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG PAN SIOS</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EF9</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG KKOGJI DALRIN IEUNG</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EFA</entry> - <entry>-</entry> - <entry>HANGUL JONG SEONG YEORIN HIEUH</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x0EFF</entry> - <entry>-</entry> - <entry>KOREAN WON</entry> - <entry>Korean</entry> - </row> - <row> - <entry>#x13BC</entry> - <entry>U+0152</entry> - <entry>LATIN CAPITAL LIGATURE OE</entry> - <entry>Latin-9</entry> - </row> - <row> - <entry>#x13BD</entry> - <entry>U+0153</entry> - <entry>LATIN SMALL LIGATURE OE</entry> - <entry>Latin-9</entry> - </row> - <row> - <entry>#x13BE</entry> - <entry>U+0178</entry> - <entry>LATIN CAPITAL LETTER Y WITH DIAERESIS</entry> - <entry>Latin-9</entry> - </row> - <row> - <entry>#x20A0</entry> - <entry>-</entry> - <entry>CURRENCY ECU SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A1</entry> - <entry>-</entry> - <entry>CURRENCY COLON SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A2</entry> - <entry>-</entry> - <entry>CURRENCY CRUZEIRO SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A3</entry> - <entry>-</entry> - <entry>CURRENCY FRENCH FRANC SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A4</entry> - <entry>-</entry> - <entry>CURRENCY LIRA SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A5</entry> - <entry>-</entry> - <entry>CURRENCY MILL SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A6</entry> - <entry>-</entry> - <entry>CURRENCY NAIRA SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A7</entry> - <entry>-</entry> - <entry>CURRENCY PESETA SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A8</entry> - <entry>-</entry> - <entry>CURRENCY RUPEE SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20A9</entry> - <entry>-</entry> - <entry>CURRENCY WON SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20AA</entry> - <entry>-</entry> - <entry>CURRENCY NEW SHEQEL SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20AB</entry> - <entry>-</entry> - <entry>CURRENCY DONG SIGN</entry> - <entry>Currency</entry> - </row> - <row> - <entry>#x20AC</entry> - <entry>U+20AC</entry> - <entry>CURRENCY EURO SIGN</entry> - <entry>Currency</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -</sect1> -</appendix> diff --git a/proto/x11proto/specs/sect1-9.xml b/proto/x11proto/specs/sect1-9.xml deleted file mode 100644 index f8e8b7c9a..000000000 --- a/proto/x11proto/specs/sect1-9.xml +++ /dev/null @@ -1,15309 +0,0 @@ -<part id="sect1-9"> -<preface id="acknowledgements"> -<title>Acknowledgements</title> -<para> -The primary contributers to the X11 protocol are: -</para> - -<itemizedlist> -<listitem><para>Dave Carver (Digital HPW)</para></listitem> -<listitem><para>Branko Gerovac (Digital HPW)</para></listitem> -<listitem><para>Jim Gettys (MIT/Project Athena, Digital)</para></listitem> -<listitem><para>Phil Karlton (Digital WSL)</para></listitem> -<listitem><para>Scott McGregor (Digital SSG)</para></listitem> -<listitem><para>Ram Rao (Digital UEG)</para></listitem> -<listitem><para>David Rosenthal (Sun)</para></listitem> -<listitem><para>Dave Winchell (Digital UEG)</para></listitem> -</itemizedlist> - -<para> -The implementors of initial server who provided useful -input are: -</para> - -<itemizedlist> -<listitem><para>Susan Angebranndt (Digital)</para></listitem> -<listitem><para>Raymond Drewry (Digital)</para></listitem> -<listitem><para>Todd Newman (Digital)</para></listitem> -</itemizedlist> - -<para> -The invited reviewers who provided useful input are: -</para> - -<itemizedlist> -<listitem><para>Andrew Cherenson (Berkeley)</para></listitem> -<listitem><para>Burns Fisher (Digital)</para></listitem> -<listitem><para>Dan Garfinkel (HP)</para></listitem> -<listitem><para>Leo Hourvitz (Next)</para></listitem> -<listitem><para>Brock Krizan (HP)</para></listitem> -<listitem><para>David Laidlaw (Stellar)</para></listitem> -<listitem><para>Dave Mellinger (Interleaf)</para></listitem> -<listitem><para>Ron Newman (MIT)</para></listitem> -<listitem><para>John Ousterhout (Berkeley)</para></listitem> -<listitem><para>Andrew Palay (ITC CMU)</para></listitem> -<listitem><para>Ralph Swick (MIT)</para></listitem> -<listitem><para>Craig Taylor (Sun)</para></listitem> -<listitem><para>Jeffery Vroom (Stellar)</para></listitem> -</itemizedlist> - -<para> -Thanks go to Al Mento of Digital's UEG Documentation Group for -formatting this document. -</para> - -<para> -This document does not attempt to provide the rationale or pragmatics required -to fully understand the protocol or to place it in perspective within a -complete system. -</para> - -<para> -The protocol contains many management mechanisms that are not intended for -normal applications. -Not all mechanisms are needed to build a particular user interface. -It is important to keep in mind that the protocol is intended to -provide mechanism, not policy. -</para> - -<para> -Robert W. Scheifler -</para> -<para> -X Consortium, Inc. -</para> -</preface> - -<chapter id='Protocol_Formats'> - <title>Protocol Formats</title> - - <section id="request_format"> - <title>Request Format</title> - <indexterm zone="request_format" significance="preferred"><primary>Request</primary><secondary>format</secondary></indexterm> - <para> -Every request contains an 8-bit <firstterm id="major_opcode">major opcode</firstterm> -<indexterm zone="major_opcode" significance="preferred"><primary>Opcode</primary><secondary>major</secondary></indexterm> -and a 16-bit <firstterm id="request_length">length field</firstterm> -<indexterm zone="request_length" significance="preferred"><primary>Request</primary><secondary>length</secondary></indexterm> -expressed in units of four bytes. -Every request consists of four bytes of a header -(containing the major opcode, the length field, and a data byte) -followed by zero or more additional bytes of data. -The length field defines the total length of the request, including the header. -The length field in a request must equal the minimum length required to contain -the request. -If the specified length is smaller or larger than the required length, -an error is generated. -Unused bytes in a request are not required to be zero. -Major opcodes 128 through 255 are reserved for -<firstterm id="extension">extensions</firstterm>. -<indexterm zone="extension"><primary>Extension</primary></indexterm> -Extensions are intended to contain multiple requests, -so extension requests typically have an additional -<firstterm id="minor_opcode">minor opcode</firstterm> encoded -in the second data byte in the request header. -<indexterm zone="minor_opcode" significance="preferred"><primary>Opcode</primary><secondary>minor</secondary></indexterm> -However, the placement and interpretation of this minor opcode and of all -other fields in extension requests are not defined by the core protocol. -Every request on a given connection is implicitly assigned a -<firstterm id="sequence_number">sequence number</firstterm>, -<indexterm zone="sequence_number" significance="preferred"><primary>Sequence number</primary></indexterm> -starting with one, that is used in replies, errors, and events. - </para> - </section> - - <section id="reply_format"> - <title>Reply Format</title> - <indexterm zone="reply_format" significance="preferred"><primary>Reply</primary><secondary>format</secondary></indexterm> - <para> -Every <firstterm>reply</firstterm> contains a 32-bit length field -expressed in units of four bytes. -Every reply consists of 32 bytes followed by zero or more additional bytes of -data, as specified in the length field. -Unused bytes within a reply are not guaranteed to be zero. -Every reply also contains the least significant 16 bits of the sequence number -of the corresponding request. - </para> - </section> - - <section id="error_format"> - <title>Error Format</title> - <indexterm zone="error_format" significance="preferred"><primary>Error report</primary><secondary>format</secondary></indexterm> - <para> -Error reports are 32 bytes long. -Every error includes an 8-bit error code. -<phrase id="errors:extensions"> -Error codes 128 through 255 are reserved for extensions. -</phrase> -<indexterm zone="errors:extensions" significance="preferred"><primary>Error Codes</primary><secondary>extensions</secondary></indexterm> -<indexterm zone="errors:extensions" significance="preferred"><primary>Extension</primary><secondary>error codes</secondary></indexterm> -Every error also includes the major and minor opcodes of the failed request -and the least significant 16 bits of the sequence number of the request. -For the following errors (see <link linkend='Errors'>section 4</link>), -the failing resource ID is also returned: -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Pixmap</emphasis> -and -<emphasis role='bold'>Window</emphasis>. -For -<emphasis role='bold'>Atom</emphasis> -errors, the failing atom is returned. -For -<emphasis role='bold'>Value</emphasis> -errors, the failing value is returned. -Other core errors return no additional data. -Unused bytes within an error are not guaranteed to be zero. - </para> - </section> - - <section id="event_format"> - <title>Event Format</title> - <indexterm zone="event_format" significance="preferred"><primary>Event</primary><secondary>format</secondary></indexterm> - <para> -<firstterm>Events</firstterm> are 32 bytes long. -Unused bytes within an event are not guaranteed to be zero. -Every event contains an 8-bit type code. -The most significant bit in this code is set if the event was generated from a -<link linkend="requests:SendEvent"><emphasis role='bold'>SendEvent</emphasis></link> -request. -<phrase id="events:extensions"> -Event codes 64 through 127 are reserved for extensions, although the core -protocol does not define a mechanism for selecting interest in such events. -</phrase> -<indexterm zone="events:extensions" significance="preferred"><primary>Event</primary><secondary>extension</secondary></indexterm> -<indexterm zone="events:extensions" significance="preferred"><primary>Extension</primary><secondary>event</secondary></indexterm> -Every core event (with the exception of -<link linkend="events:KeymapNotify"><emphasis role='bold'>KeymapNotify</emphasis></link>) -also contains the least significant 16 bits of the sequence number of the last -request issued by the client that was (or is currently being) processed by -the server. - </para> - </section> -</chapter> - -<chapter id='Syntactic_Conventions'> -<title>Syntactic Conventions</title> -<!-- .XS --> -<!-- (SN Syntactic Conventions --> -<!-- .XE --> -<para> -<!-- .LP --> -The rest of this document uses the following syntactic conventions. -</para> -<itemizedlist> - <listitem> - <para> -The syntax {...} encloses a set of alternatives. - </para> - </listitem> - <listitem> - <para> -The syntax [...] encloses a set of structure components. - </para> - </listitem> - <listitem> - <para> -In general, TYPEs are in uppercase and -<emphasis role='bold'>AlternativeValues</emphasis> -are capitalized. - </para> - </listitem> - <listitem> - <para> -Requests in <link linkend='Requests'>section 9</link> are described -in the following format: -<literallayout class="monospaced"> -<emphasis role='bold'>RequestName</emphasis> - <emphasis remap='I'>arg1</emphasis>: type1 - ... - <emphasis remap='I'>argN</emphasis>: typeN - ▶ - result1: type1 - ... - resultM: typeM - - Errors: kind1, ..., kindK - - Description. -</literallayout> - </para> - <para> -If no ▶ is present in the description, -then the request has no reply (it is asynchronous), -although errors may still be reported. -If ▶+ is used, -then one or more replies can be generated for a single request. - </para> - </listitem> - <listitem> - <para> -Events in <link linkend='Events'>section 11</link> are described -in the following format: -<literallayout class="monospaced"> -<emphasis role='bold'>EventName</emphasis> - <emphasis remap='I'>value1</emphasis>: type1 - ... - <emphasis remap='I'>valueN</emphasis>: typeN - - Description. -</literallayout> - </para> - </listitem> -</itemizedlist> -</chapter> - -<chapter id='Common_Types'> -<title>Common Types</title> -<!-- .XS --> -<!-- (SN Common Types --> -<!-- .XE --> -<informaltable frame="topbot"> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Name</entry> - <entry>Value</entry> - </row> - </thead> - <tbody> - <row> - <entry id="types:LISTofFOO">LISTofFOO<indexterm zone="types:LISTofFOO" significance="preferred"><primary>Types</primary><secondary>LISTofFOO</secondary></indexterm></entry> - <entry> - -A type name of the form LISTofFOO means a counted list of elements of type -FOO. -The size of the length field may vary (it is not necessarily the same -size as a FOO), and in some cases, it may be implicit. -It is fully specified in Appendix B. -Except where explicitly noted, -zero-length lists are legal. - </entry> - </row> - <row> - <entry><para id="types:BITMASK">BITMASK<indexterm zone="types:BITMASK" significance="preferred"><primary>Types</primary><secondary>BITMASK</secondary></indexterm></para><para id="types:LISTofVALUE">LISTofVALUE<indexterm zone="types:LISTofVALUE" significance="preferred"><primary>Types</primary><secondary>LISTofVALUE</secondary></indexterm></para></entry> - <entry> -<para> -The types BITMASK and LISTofVALUE are somewhat special. -Various requests contain arguments of the form: -</para> -<para> -<emphasis remap='I'>value-mask</emphasis>: BITMASK -</para> -<para> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -</para> -<para> -These are used to allow the client to specify a subset of a heterogeneous -collection of optional arguments. -The value-mask specifies which arguments are to be provided; -each such argument is assigned a unique bit position. -The representation of the BITMASK will typically contain more bits than -there are defined arguments. -The unused bits in the value-mask must be zero (or the server generates a -<emphasis role='bold'>Value</emphasis> -error). -The value-list contains one value for each bit set to 1 in the mask, -from least significant to most significant bit in the mask. -Each value is represented with four bytes, -but the actual value occupies only the least significant bytes as required. -The values of the unused bytes do not matter. -</para> - </entry> - </row> - <row> - <entry id="types:OR">OR<indexterm zone="types:OR" significance="preferred"><primary>Types</primary><secondary>OR</secondary></indexterm></entry> - <entry> -A type of the form "T1 or ... or Tn" means the union of the indicated types. -A single-element type is given as the element without enclosing braces. - </entry> - </row> - <row> - <entry id="types:WINDOW">WINDOW<indexterm zone="types:WINDOW" significance="preferred"><primary>Types</primary><secondary>WINDOW</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:PIXMAP">PIXMAP<indexterm zone="types:PIXMAP" significance="preferred"><primary>Types</primary><secondary>PIXMAP</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:CURSOR">CURSOR<indexterm zone="types:CURSOR" significance="preferred"><primary>Types</primary><secondary>CURSOR</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:FONT">FONT<indexterm zone="types:FONT" significance="preferred"><primary>Types</primary><secondary>FONT</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:GCONTEXT">GCONTEXT<indexterm zone="types:GCONTEXT" significance="preferred"><primary>Types</primary><secondary>GCONTEXT</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:COLORMAP">COLORMAP<indexterm zone="types:COLORMAP" significance="preferred"><primary>Types</primary><secondary>COLORMAP</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:DRAWABLE">DRAWABLE<indexterm zone="types:DRAWABLE" significance="preferred"><primary>Types</primary><secondary>DRAWABLE</secondary></indexterm></entry> - <entry>WINDOW or PIXMAP</entry> - </row> - <row> - <entry id="types:FONTABLE">FONTABLE<indexterm zone="types:FONTABLE" significance="preferred"><primary>Types</primary><secondary>FONTABLE</secondary></indexterm></entry> - <entry>FONT or GCONTEXT</entry> - </row> - <row> - <entry id="types:ATOM">ATOM<indexterm zone="types:ATOM" significance="preferred"><primary>Types</primary><secondary>ATOM</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:VISUALID">VISUALID<indexterm zone="types:VISUALID" significance="preferred"><primary>Types</primary><secondary>VISUALID</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:VALUE">VALUE<indexterm zone="types:VALUE" significance="preferred"><primary>Types</primary><secondary>VALUE</secondary></indexterm></entry> - <entry>32-bit quantity (used only in LISTofVALUE)</entry> - </row> - <row> - <entry id="types:BYTE">BYTE<indexterm zone="types:BYTE" significance="preferred"><primary>Types</primary><secondary>BYTE</secondary></indexterm></entry> - <entry>8-bit value</entry> - </row> - <row> - <entry id="types:INT8">INT8<indexterm zone="types:INT8" significance="preferred"><primary>Types</primary><secondary>INT8</secondary></indexterm></entry> - <entry>8-bit signed integer</entry> - </row> - <row> - <entry id="types:INT16">INT16<indexterm zone="types:INT16" significance="preferred"><primary>Types</primary><secondary>INT16</secondary></indexterm></entry> - <entry>16-bit signed integer</entry> - </row> - <row> - <entry id="types:INT32">INT32<indexterm zone="types:INT32" significance="preferred"><primary>Types</primary><secondary>INT32</secondary></indexterm></entry> - <entry>32-bit signed integer</entry> - </row> - <row> - <entry id="types:CARD8">CARD8<indexterm zone="types:CARD8" significance="preferred"><primary>Types</primary><secondary>CARD8</secondary></indexterm></entry> - <entry>8-bit unsigned integer</entry> - </row> - <row> - <entry id="types:CARD16">CARD16<indexterm zone="types:CARD16" significance="preferred"><primary>Types</primary><secondary>CARD16</secondary></indexterm></entry> - <entry>16-bit unsigned integer</entry> - </row> - <row> - <entry id="types:CARD32">CARD32<indexterm zone="types:CARD32" significance="preferred"><primary>Types</primary><secondary>CARD32</secondary></indexterm></entry> - <entry>32-bit unsigned integer</entry> - </row> - <row> - <entry id="types:TIMESTAMP">TIMESTAMP<indexterm zone="types:TIMESTAMP" significance="preferred"><primary>Types</primary><secondary>TIMESTAMP</secondary></indexterm></entry> - <entry>CARD32</entry> - </row> - <row> - <entry id="types:BITGRAVITY">BITGRAVITY<indexterm zone="types:BITGRAVITY" significance="preferred"><primary>Types</primary><secondary>BITGRAVITY</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>Forget</emphasis>, -<emphasis role='bold'>Static</emphasis>, -<emphasis role='bold'>NorthWest</emphasis>, -<emphasis role='bold'>North</emphasis>, -<emphasis role='bold'>NorthEast</emphasis>, -<emphasis role='bold'>West</emphasis>, -<emphasis role='bold'>Center</emphasis>, -<emphasis role='bold'>East</emphasis>, -<emphasis role='bold'>SouthWest</emphasis>, -<emphasis role='bold'>South</emphasis>, -<emphasis role='bold'>SouthEast</emphasis> } - </entry> - </row> - <row> - <entry id="types:WINGRAVITY">WINGRAVITY<indexterm zone="types:WINGRAVITY" significance="preferred"><primary>Types</primary><secondary>WINGRAVITY</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>Unmap</emphasis>, -<emphasis role='bold'>Static</emphasis>, -<emphasis role='bold'>NorthWest</emphasis>, -<emphasis role='bold'>North</emphasis>, -<emphasis role='bold'>NorthEast</emphasis>, -<emphasis role='bold'>West</emphasis>, -<emphasis role='bold'>Center</emphasis>, -<emphasis role='bold'>East</emphasis>, -<emphasis role='bold'>SouthWest</emphasis>, -<emphasis role='bold'>South</emphasis>, -<emphasis role='bold'>SouthEast</emphasis> } - </entry> - </row> - <row> - <entry id="types:BOOL">BOOL<indexterm zone="types:BOOL" significance="preferred"><primary>Types</primary><secondary>BOOL</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>True</emphasis>, -<emphasis role='bold'>False</emphasis> } - </entry> - </row> - <row> - <entry id="types:EVENT">EVENT<indexterm zone="types:EVENT" significance="preferred"><primary>Types</primary><secondary>EVENT</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>KeyPress</emphasis>, -<emphasis role='bold'>KeyRelease</emphasis>, -<emphasis role='bold'>OwnerGrabButton</emphasis>, -<emphasis role='bold'>ButtonPress</emphasis>, -<emphasis role='bold'>ButtonRelease</emphasis>, -<emphasis role='bold'>EnterWindow</emphasis>, -<emphasis role='bold'>LeaveWindow</emphasis>, -<emphasis role='bold'>PointerMotion</emphasis>, -<emphasis role='bold'>PointerMotionHint</emphasis>, -<emphasis role='bold'>Button1Motion</emphasis>, -<emphasis role='bold'>Button2Motion</emphasis>, -<emphasis role='bold'>Button3Motion</emphasis>, -<emphasis role='bold'>Button4Motion</emphasis>, -<emphasis role='bold'>Button5Motion</emphasis>, -<emphasis role='bold'>ButtonMotion</emphasis>, -<emphasis role='bold'>Exposure</emphasis>, -<emphasis role='bold'>VisibilityChange</emphasis>, -<emphasis role='bold'>StructureNotify</emphasis>, -<emphasis role='bold'>ResizeRedirect</emphasis>, -<emphasis role='bold'>SubstructureNotify</emphasis>, -<emphasis role='bold'>SubstructureRedirect</emphasis>, -<emphasis role='bold'>FocusChange</emphasis>, -<emphasis role='bold'>PropertyChange</emphasis>, -<emphasis role='bold'>ColormapChange</emphasis>, -<emphasis role='bold'>KeymapState</emphasis> } - </entry> - </row> - <row> - <entry id="types:POINTEREVENT">POINTEREVENT<indexterm zone="types:POINTEREVENT" significance="preferred"><primary>Types</primary><secondary>POINTEREVENT</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>ButtonPress</emphasis>, -<emphasis role='bold'>ButtonRelease</emphasis>, -<emphasis role='bold'>EnterWindow</emphasis>, -<emphasis role='bold'>LeaveWindow</emphasis>, -<emphasis role='bold'>PointerMotion</emphasis>, -<emphasis role='bold'>PointerMotionHint</emphasis>, -<emphasis role='bold'>Button1Motion</emphasis>, -<emphasis role='bold'>Button2Motion</emphasis>, -<emphasis role='bold'>Button3Motion</emphasis>, -<emphasis role='bold'>Button4Motion</emphasis>, -<emphasis role='bold'>Button5Motion</emphasis>, -<emphasis role='bold'>ButtonMotion</emphasis>, -<emphasis role='bold'>KeymapState</emphasis> } - </entry> - </row> - <row> - <entry id="types:DEVICEEVENT">DEVICEEVENT<indexterm zone="types:DEVICEEVENT" significance="preferred"><primary>Types</primary><secondary>DEVICEEVENT</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>KeyPress</emphasis>, -<emphasis role='bold'>KeyRelease</emphasis>, -<emphasis role='bold'>ButtonPress</emphasis>, -<emphasis role='bold'>ButtonRelease</emphasis>, -<emphasis role='bold'>PointerMotion</emphasis>, -<emphasis role='bold'>Button1Motion</emphasis>, -<emphasis role='bold'>Button2Motion</emphasis>, -<emphasis role='bold'>Button3Motion</emphasis>, -<emphasis role='bold'>Button4Motion</emphasis>, -<emphasis role='bold'>Button5Motion</emphasis>, -<emphasis role='bold'>ButtonMotion</emphasis> } - </entry> - </row> - <row> - <entry id="types:KEYSYM">KEYSYM<indexterm zone="types:KEYSYM" significance="preferred"><primary>Types</primary><secondary>KEYSYM</secondary></indexterm></entry> - <entry>32-bit value (top three bits guaranteed to be zero)</entry> - </row> - <row> - <entry id="types:KEYCODE">KEYCODE<indexterm zone="types:KEYCODE" significance="preferred"><primary>Types</primary><secondary>KEYCODE</secondary></indexterm></entry> - <entry>CARD8</entry> - </row> - <row> - <entry id="types:BUTTON">BUTTON<indexterm zone="types:BUTTON" significance="preferred"><primary>Types</primary><secondary>BUTTON</secondary></indexterm></entry> - <entry>CARD8</entry> - </row> - <row> - <entry id="types:KEYMASK">KEYMASK<indexterm zone="types:KEYMASK" significance="preferred"><primary>Types</primary><secondary>KEYMASK</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>Shift</emphasis>, -<emphasis role='bold'>Lock</emphasis>, -<emphasis role='bold'>Control</emphasis>, -<emphasis role='bold'>Mod1</emphasis>, -<emphasis role='bold'>Mod2</emphasis>, -<emphasis role='bold'>Mod3</emphasis>, -<emphasis role='bold'>Mod4</emphasis>, -<emphasis role='bold'>Mod5</emphasis> } - </entry> - </row> - <row> - <entry id="types:BUTMASK">BUTMASK<indexterm zone="types:BUTMASK" significance="preferred"><primary>Types</primary><secondary>BUTMASK</secondary></indexterm></entry> - <entry> -{ <emphasis role='bold'>Button1</emphasis>, -<emphasis role='bold'>Button2</emphasis>, -<emphasis role='bold'>Button3</emphasis>, -<emphasis role='bold'>Button4</emphasis>, -<emphasis role='bold'>Button5</emphasis> } - </entry> - </row> - <row> - <entry id="types:KEYBUTMASK">KEYBUTMASK<indexterm zone="types:KEYBUTMASK" significance="preferred"><primary>Types</primary><secondary>KEYBUTMASK</secondary></indexterm></entry> - <entry>KEYMASK or BUTMASK</entry> - </row> - <row> - <entry id="types:STRING8">STRING8<indexterm zone="types:STRING8" significance="preferred"><primary>Types</primary><secondary>STRING8</secondary></indexterm></entry> - <entry>LISTofCARD8</entry> - </row> - <row> - <entry id="types:STRING16">STRING16<indexterm zone="types:STRING16" significance="preferred"><primary>Types</primary><secondary>STRING16</secondary></indexterm></entry> - <entry>LISTofCHAR2B</entry> - </row> - <row> - <entry id="types:CHAR2B">CHAR2B<indexterm zone="types:CHAR2B" significance="preferred"><primary>Types</primary><secondary>CHAR2B</secondary></indexterm></entry> - <entry>[byte1, byte2: CARD8]</entry> - </row> - <row> - <entry id="types:POINT">POINT<indexterm zone="types:POINT" significance="preferred"><primary>Types</primary><secondary>POINT</secondary></indexterm></entry> - <entry>[x, y: INT16]</entry> - </row> - <row> - <entry id="types:RECTANGLE">RECTANGLE<indexterm zone="types:RECTANGLE" significance="preferred"><primary>Types</primary><secondary>RECTANGLE</secondary></indexterm></entry> - <entry> -<para>[x, y: INT16,</para> -<para>width, height: CARD16]</para> - </entry> - </row> - <row> - <entry id="types:ARC">ARC<indexterm zone="types:ARC" significance="preferred"><primary>Types</primary><secondary>ARC</secondary></indexterm></entry> - <entry> -<para>[x, y: INT16,</para> -<para>width, height: CARD16,</para> -<para>angle1, angle2: INT16]</para> - </entry> - </row> - <row> - <entry id="types:HOST">HOST<indexterm zone="types:HOST" significance="preferred"><primary>Types</primary><secondary>HOST</secondary></indexterm></entry> - <entry> -<para> -[family: -{ <emphasis role='bold'>Internet</emphasis>, -<emphasis role='bold'>InternetV6</emphasis>, -<emphasis role='bold'>ServerInterpreted</emphasis>, -<emphasis role='bold'>DECnet</emphasis>, -<emphasis role='bold'>Chaos</emphasis> } -</para> -<para>address: LISTofBYTE]</para> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -The [x,y] coordinates of a RECTANGLE specify the upper-left corner. -</para> - -<para> -The primary interpretation of large characters in a STRING16 is that they -are composed of two bytes used to index a two-dimensional matrix, -hence, the use of CHAR2B rather than CARD16. -This corresponds to the JIS/ISO method of indexing 2-byte characters. -It is expected that most large fonts will be defined with 2-byte -matrix indexing. -For large fonts constructed with linear indexing, -a CHAR2B can be interpreted as a 16-bit number by treating byte1 as -the most significant byte. -This means that clients should always transmit such -16-bit character values most significant byte first, as the server will never -byte-swap CHAR2B quantities. -</para> - -<para> -The length, format, and interpretation of a HOST address are specific to the -family (see -<link linkend="requests:ChangeHosts"><emphasis role='bold'>ChangeHosts</emphasis></link> -request). -</para> -</chapter> - -<chapter id='Errors'> -<title>Errors</title> -<!-- .XS --> -<!-- (SN Errors --> -<!-- .XE --> -<para> -<!-- .LP --> -In general, when a request terminates with an error, -the request has no side effects (that is, there is no partial execution). -The only requests for which this is not true are -<link linkend="requests:ChangeWindowAttributes"><emphasis role='bold'>ChangeWindowAttributes</emphasis></link>, -<link linkend="requests:ChangeGC"><emphasis role='bold'>ChangeGC</emphasis></link>, -<link linkend="requests:PolyText8"><emphasis role='bold'>PolyText8</emphasis></link>, -<link linkend="requests:PolyText16"><emphasis role='bold'>PolyText16</emphasis></link>, -<link linkend="requests:FreeColors"><emphasis role='bold'>FreeColors</emphasis></link>, -<link linkend="requests:StoreColors"><emphasis role='bold'>StoreColors</emphasis></link> -and -<link linkend="requests:ChangeKeyboardControl"><emphasis role='bold'>ChangeKeyboardControl</emphasis></link>. -</para> - -<para> -The following error codes result from various requests as follows: -</para> - -<informaltable frame="topbot"> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Error</entry> - <entry>Description</entry> - </row> - </thead> - <tbody> - <row> - <entry id="errors:Access"><emphasis role='bold'>Access</emphasis><indexterm zone="errors:Access" significance="preferred"><primary>Error Codes</primary><secondary>Access</secondary></indexterm></entry> - <entry> -An attempt is made to grab a key/button combination already grabbed by another -client. -An attempt is made to free a colormap entry not allocated by the client -or to free an entry in a colormap that was created with all entries writable. -An attempt is made to store into a read-only or an unallocated colormap entry. -An attempt is made to modify the access control list from other than the local -host (or otherwise authorized client). -An attempt is made to select an event type that only one client can -select at a time when another client has already selected it. - </entry> - </row> - <row> - <entry id="errors:Alloc"><emphasis role='bold'>Alloc</emphasis><indexterm zone="errors:Alloc" significance="preferred"><primary>Error Codes</primary><secondary>Alloc</secondary></indexterm></entry> - <entry> -The server failed to allocate the requested resource. -Note that the explicit listing of -<emphasis role='bold'>Alloc</emphasis> -errors in request only covers allocation errors at a very coarse level -and is not intended to cover all cases -of a server running out of allocation space in the middle of service. -The semantics when a server runs out of allocation space are left unspecified, -but a server may generate an -<emphasis role='bold'>Alloc</emphasis> -error on any request for this reason, -and clients should be prepared to receive such errors and handle -or discard them. - </entry> - </row> - <row> - <entry id="errors:Atom"><emphasis role='bold'>Atom</emphasis><indexterm zone="errors:Atom" significance="preferred"><primary>Error Codes</primary><secondary>Atom</secondary></indexterm></entry> - <entry> -A value for an ATOM argument does not name a defined ATOM. - </entry> - </row> - <row> - <entry id="errors:Colormap"><emphasis role='bold'>Colormap</emphasis><indexterm zone="errors:Colormap" significance="preferred"><primary>Error Codes</primary><secondary>Colormap</secondary></indexterm></entry> - <entry> -A value for a COLORMAP argument does not name a defined COLORMAP. - </entry> - </row> - <row> - <entry id="errors:Cursor"><emphasis role='bold'>Cursor</emphasis><indexterm zone="errors:Cursor" significance="preferred"><primary>Error Codes</primary><secondary>Cursor</secondary></indexterm></entry> - <entry> -A value for a CURSOR argument does not name a defined CURSOR. - </entry> - </row> - <row> - <entry id="errors:Drawable"><emphasis role='bold'>Drawable</emphasis><indexterm zone="errors:Drawable" significance="preferred"><primary>Error Codes</primary><secondary>Drawable</secondary></indexterm></entry> - <entry> -A value for a DRAWABLE argument does not name a defined WINDOW -or PIXMAP. - </entry> - </row> - <row> - <entry id="errors:Font"><emphasis role='bold'>Font</emphasis><indexterm zone="errors:Font" significance="preferred"><primary>Error Codes</primary><secondary>Font</secondary></indexterm></entry> - <entry> -A value for a FONT argument does not name a defined FONT. -A value for a FONTABLE argument does not name a defined FONT or a -defined GCONTEXT. - </entry> - </row> - <row> - <entry id="errors:GContext"><emphasis role='bold'>GContext</emphasis><indexterm zone="errors:GContext" significance="preferred"><primary>Error Codes</primary><secondary>GContext</secondary></indexterm></entry> - <entry> -A value for a GCONTEXT argument does not name a defined GCONTEXT. - </entry> - </row> - <row> - <entry id="errors:IDChoice"><emphasis role='bold'>IDChoice</emphasis><indexterm zone="errors:IDChoice" significance="preferred"><primary>Error Codes</primary><secondary>IDChoice</secondary></indexterm></entry> - <entry> -The value chosen for a resource identifier either is not included -in the range assigned to the client or is already in use. - </entry> - </row> - <row> - <entry id="errors:Implementation"><emphasis role='bold'>Implementation</emphasis><indexterm zone="errors:Implementation" significance="preferred"><primary>Error Codes</primary><secondary>Implementation</secondary></indexterm></entry> - <entry> -The server does not implement some aspect of the request. -A server that generates this error for a core request is deficient. -As such, this error is not listed for any of the requests, -but clients should be prepared to receive such errors -and handle or discard them. - </entry> - </row> - <row> - <entry id="errors:Length"><emphasis role='bold'>Length</emphasis><indexterm zone="errors:Length" significance="preferred"><primary>Error Codes</primary><secondary>Length</secondary></indexterm></entry> - <entry> -The length of a request is shorter or longer than that required -to minimally contain the arguments. -The length of a request exceeds the maximum length accepted by the -server. - </entry> - </row> - <row> - <entry id="errors:Match"><emphasis role='bold'>Match</emphasis><indexterm zone="errors:Match" significance="preferred"><primary>Error Codes</primary><secondary>Match</secondary></indexterm></entry> - <entry> -An -<emphasis role='bold'>InputOnly</emphasis> -window is used as a DRAWABLE. -In a graphics request, the GCONTEXT argument does not have the same -root and depth as the destination DRAWABLE argument. -Some argument (or pair of arguments) has the correct type and range, -but it fails to match in some other way required by the request. - </entry> - </row> - <row> - <entry id="errors:Name"><emphasis role='bold'>Name</emphasis><indexterm zone="errors:Name" significance="preferred"><primary>Error Codes</primary><secondary>Name</secondary></indexterm></entry> - <entry> -A font or color of the specified name does not exist. - </entry> - </row> - <row> - <entry id="errors:Pixmap"><emphasis role='bold'>Pixmap</emphasis><indexterm zone="errors:Pixmap" significance="preferred"><primary>Error Codes</primary><secondary>Pixmap</secondary></indexterm></entry> - <entry> -A value for a PIXMAP argument does not name a defined PIXMAP. - </entry> - </row> - <row> - <entry id="errors:Request"><emphasis role='bold'>Request</emphasis><indexterm zone="errors:Request" significance="preferred"><primary>Error Codes</primary><secondary>Request</secondary></indexterm></entry> - <entry> -The major or minor opcode does not specify a valid request. - </entry> - </row> - <row> - <entry id="errors:Value"><emphasis role='bold'>Value</emphasis><indexterm zone="errors:Value" significance="preferred"><primary>Error Codes</primary><secondary>Value</secondary></indexterm></entry> - <entry> -Some numeric value falls outside the range of values accepted by the request. -Unless a specific range is specified for an argument, -the full range defined by the argument's type is accepted. -Any argument defined as a set of alternatives typically can generate -this error (due to the encoding). - </entry> - </row> - <row> - <entry id="errors:Window"><emphasis role='bold'>Window</emphasis><indexterm zone="errors:Window" significance="preferred"><primary>Error Codes</primary><secondary>Window</secondary></indexterm></entry> - <entry> -A value for a WINDOW argument does not name a defined WINDOW. - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<note><para> -The -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Pixmap</emphasis> -and -<emphasis role='bold'>Window</emphasis> -errors are also used when the argument type is extended by union with a -set of fixed alternatives, for example, <WINDOW or -<emphasis role='bold'>PointerRoot</emphasis> -or -<emphasis role='bold'>None</emphasis>>. -</para></note> -</chapter> - -<chapter id='Keyboards'> -<title>Keyboards</title> -<indexterm zone="Keyboards"><primary>Keyboard</primary></indexterm> -<!-- .XS --> -<!-- (SN Keyboards --> -<!-- .XE --> -<para id="keycode"> -A KEYCODE represents a physical (or logical) key. -<indexterm zone="keycode"><primary>Types</primary><secondary>KEYCODE</secondary></indexterm> -<indexterm zone="keycode" significance="preferred"><primary>Keycode</primary></indexterm> -Keycodes lie in the inclusive range [8,255]. -A keycode value carries no intrinsic information, -although server implementors may attempt to encode geometry information -(for example, matrix) to be interpreted in a server-dependent fashion. -The mapping between keys and keycodes cannot be changed using the -protocol. -</para> -<para id="keysym"> -A KEYSYM is an encoding of a symbol on the cap of a key. -<indexterm zone="keysym"><primary>Types</primary><secondary>KEYSYM</secondary></indexterm> -<indexterm zone="keysym"><primary>Keysym</primary></indexterm> -The set of defined KEYSYMs include the character sets Latin-1, Latin-2, -Latin-3, Latin-4, Kana, Arabic, Cyrillic, Greek, Tech, Special, Publish, APL, -Hebrew, Thai, and Korean as well as a set of symbols common on keyboards -(Return, Help, Tab, -and so on). -KEYSYMs with the most significant bit (of the 29 bits) set are reserved -as vendor-specific. -</para> -<para> -A list of KEYSYMs is associated with each KEYCODE. -The list is intended to convey the set of symbols on the corresponding key. -If the list (ignoring trailing -<keysym>NoSymbol</keysym> -entries) is a single KEYSYM "<emphasis remap='I'>K</emphasis>", -then the list is treated as if it were -the list "<emphasis remap='I'>K</emphasis> <keysym>NoSymbol</keysym> -<emphasis remap='I'>K</emphasis> <keysym>NoSymbol</keysym>". -If the list (ignoring trailing <keysym>NoSymbol</keysym> entries) -is a pair of KEYSYMs -"<emphasis remap='I'>K1 K2</emphasis>", then the list is treated as -if it were the list -"<emphasis remap='I'>K1 K2 K1 K2</emphasis>". -If the list (ignoring trailing -<keysym>NoSymbol</keysym> -entries) is -a triple of KEYSYMs "<emphasis remap='I'>K1 K2 K3</emphasis>", -then the list is treated as if it were the list " -<emphasis remap='I'>K1 K2 K3</emphasis> <keysym>NoSymbol</keysym>". -When an explicit "void" element is desired in the list, -the value -<keysym>VoidSymbol</keysym> -can be used. -</para> -<para> -<!-- .LP --> -The first four elements of the list are split into two groups of KEYSYMs. -Group 1 contains the first and second KEYSYMs, Group 2 contains the third and -fourth KEYSYMs. -Within each group, -if the second element of the group is -<keysym>NoSymbol</keysym>, -then the group should be treated as if the second element were the -same as the first element, except when the first element is an alphabetic -KEYSYM "<emphasis remap='I'>K</emphasis>" for which both lowercase -and uppercase forms are defined. -In that case, the group should be treated as if the first element were the -lowercase form of "<emphasis remap='I'>K</emphasis>" and the second -element were the uppercase form -of "<emphasis remap='I'>K</emphasis>". -</para> - -<para id="keysym_from_keypress"> -The standard rules for obtaining a KEYSYM from a -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link> -<indexterm zone="keysym_from_keypress"><primary>KeyPress</primary></indexterm> -event make use of only the Group 1 and Group 2 KEYSYMs; no interpretation of -other KEYSYMs in the list is defined. The modifier state determines which -group to use. Switching between groups is controlled by the KEYSYM named -MODE SWITCH, by attaching that KEYSYM to some KEYCODE and attaching that -KEYCODE to any one of the modifiers -<emphasis role='bold'>Mod1</emphasis> -through -<emphasis role='bold'>Mod5</emphasis>. -This modifier is -<indexterm zone="group_modifier" significance="preferred"><primary>modifier</primary><secondary>group</secondary></indexterm> -called the "<firstterm id="group_modifier">group modifier</firstterm>". For any KEYCODE, Group 1 is used when the -group modifier is off, and Group 2 is used when the group modifier is on. -</para> - -<para id="modifier:lock"> -The -<emphasis role='bold'>Lock</emphasis> -<indexterm zone="modifier:lock" significance="preferred"><primary>modifier</primary><secondary>Lock</secondary></indexterm> -modifier is interpreted as CapsLock when the KEYSYM named CAPS -LOCK is attached to some KEYCODE and that KEYCODE is attached to the -<emphasis role='bold'>Lock</emphasis> -modifier. The -<emphasis role='bold'>Lock</emphasis> -modifier is interpreted as ShiftLock when the KEYSYM -named SHIFT LOCK is attached to some KEYCODE and that KEYCODE is attached -to the -<emphasis role='bold'>Lock</emphasis> -modifier. If the -<emphasis role='bold'>Lock</emphasis> -modifier could be interpreted as both -CapsLock and ShiftLock, the CapsLock interpretation is used. -</para> - -<para id="modifier:numlock"> -<!-- .LP --> -The operation of "keypad" keys is controlled by the KEYSYM named NUM LOCK, -by attaching that KEYSYM to some KEYCODE and attaching that KEYCODE to any -one of the modifiers -<emphasis role='bold'>Mod1</emphasis> -through -<emphasis role='bold'>Mod5</emphasis>. -This modifier is called the -<indexterm zone="modifier:lock" significance="preferred"><primary>modifier</primary><secondary>NumLock</secondary></indexterm> -"numlock modifier". The standard KEYSYMs with the prefix KEYPAD in their -name are called "keypad" KEYSYMs; these are KEYSYMS with numeric value in -the hexadecimal range #xFF80 to #xFFBD inclusive. In addition, -vendor-specific KEYSYMS in the hexadecimal range #x11000000 to #x1100FFFF -are also keypad KEYSYMs. -</para> -<para> -<!-- .LP --> -Within a group, the choice of KEYSYM is determined by applying the first -rule that is satisfied from the following list: -</para> - -<itemizedlist> - <listitem> - <para> -The numlock modifier is on and the second KEYSYM is a keypad KEYSYM. In -this case, if the -<emphasis role='bold'>Shift</emphasis> -modifier is on, or if the -<emphasis role='bold'>Lock</emphasis> -modifier is on and -is interpreted as ShiftLock, then the first KEYSYM is used; otherwise, the -second KEYSYM is used. - </para> - </listitem> - <listitem> - <para> -The -<emphasis role='bold'>Shift</emphasis> -and -<emphasis role='bold'>Lock</emphasis> -modifiers are both off. In this case, the first -KEYSYM is used. - </para> - </listitem> - <listitem> - <para> -The -<emphasis role='bold'>Shift</emphasis> -modifier is off, and the -<emphasis role='bold'>Lock</emphasis> -modifier is on and is -interpreted as CapsLock. In this case, the first KEYSYM is used, but if -that KEYSYM is lowercase alphabetic, then the corresponding uppercase -KEYSYM is used instead. - </para> - </listitem> - <listitem> - <para> -The -<emphasis role='bold'>Shift</emphasis> -modifier is on, and the -<emphasis role='bold'>Lock</emphasis> -modifier is on and is interpreted -as CapsLock. In this case, the second KEYSYM is used, but if that KEYSYM -is lowercase alphabetic, then the corresponding uppercase KEYSYM is used -instead. - </para> - </listitem> - <listitem> - <para> -The -<emphasis role='bold'>Shift</emphasis> -modifier is on, or the -<emphasis role='bold'>Lock</emphasis> -modifier is on and is interpreted -as ShiftLock, or both. In this case, the second KEYSYM is used. - </para> - </listitem> -</itemizedlist> - -<para> -<!-- .LP --> -The mapping between KEYCODEs and KEYSYMs is not used directly by the server; -it is merely stored for reading and writing by clients. -</para> -</chapter> - -<chapter id='Pointers'> -<title>Pointers</title> -<!-- .XS --> -<!-- (SN Pointers --> -<!-- .XE --> -<para id="pointers:buttons"> -Buttons are always numbered starting with one. -<indexterm zone="pointers:buttons"><primary>Button</primary><secondary>number</secondary></indexterm> -</para> -</chapter> - -<chapter id='Predefined_Atoms'> -<title>Predefined Atoms</title> -<!-- .XS --> -<!-- (SN Predefined Atoms --> -<!-- .XE --> -<para> -<!-- .LP --> -<indexterm zone="Predefined_Atoms"><primary>Atom</primary><secondary>predefined</secondary></indexterm> -Predefined atoms are not strictly necessary and may not be useful in all -environments, but they will eliminate many -<link linkend="requests:InternAtom"><emphasis role='bold'>InternAtom</emphasis></link> -requests in most applications. -Note that they are predefined only in the sense of having numeric values, -not in the sense of having required semantics. -The core protocol imposes no semantics on these names, -but semantics are specified in other X Window System standards, -such as the -<citetitle>Inter-Client Communication Conventions Manual</citetitle> -and the <citetitle>X Logical Font Description Conventions</citetitle>. -</para> - -<para> -The following names have predefined atom values. -Note that uppercase and lowercase matter. -</para> - -<simplelist type='vert' columns='3'> - <member>ARC</member> - <member>ATOM</member> - <member>BITMAP</member> - <member>CAP_HEIGHT</member> - <member>CARDINAL</member> - <member>COLORMAP</member> - <member>COPYRIGHT</member> - <member>CURSOR</member> - <member>CUT_BUFFER0</member> - <member>CUT_BUFFER1</member> - <member>CUT_BUFFER2</member> - <member>CUT_BUFFER3</member> - <member>CUT_BUFFER4</member> - <member>CUT_BUFFER5</member> - <member>CUT_BUFFER6</member> - <member>CUT_BUFFER7</member> - <member>DRAWABLE</member> - <member>END_SPACE</member> - <member>FAMILY_NAME</member> - <member>FONT</member> - <member>FONT_NAME</member> - <member>FULL_NAME</member> - <member>INTEGER</member> - <member>ITALIC_ANGLE</member> - <member>MAX_SPACE</member> - <member>MIN_SPACE</member> - <member>NORM_SPACE</member> - <member>NOTICE</member> - <member>PIXMAP</member> - <member>POINT</member> - <member>POINT_SIZE</member> - <member>PRIMARY</member> - <member>QUAD_WIDTH</member> - <member>RECTANGLE</member> - <member>RESOLUTION</member> - <member>RESOURCE_MANAGER</member> - <member>RGB_BEST_MAP</member> - <member>RGB_BLUE_MAP</member> - <member>RGB_COLOR_MAP</member> - <member>RGB_DEFAULT_MAP</member> - <member>RGB_GRAY_MAP</member> - <member>RGB_GREEN_MAP</member> - <member>RGB_RED_MAP</member> - <member>SECONDARY</member> - <member>STRIKEOUT_ASCENT</member> - <member>STRIKEOUT_DESCENT</member> - <member>STRING</member> - <member>SUBSCRIPT_X</member> - <member>SUBSCRIPT_Y</member> - <member>SUPERSCRIPT_X</member> - <member>SUPERSCRIPT_Y</member> - <member>UNDERLINE_POSITION</member> - <member>UNDERLINE_THICKNESS</member> - <member>VISUALID</member> - <member>WEIGHT</member> - <member>WINDOW</member> - <member>WM_CLASS</member> - <member>WM_CLIENT_MACHINE</member> - <member>WM_COMMAND</member> - <member>WM_HINTS</member> - <member>WM_ICON_NAME</member> - <member>WM_ICON_SIZE</member> - <member>WM_NAME</member> - <member>WM_NORMAL_HINTS</member> - <member>WM_SIZE_HINTS</member> - <member>WM_TRANSIENT_FOR</member> - <member>WM_ZOOM_HINTS</member> - <member>X_HEIGHT</member> -</simplelist> - -<para> -<!-- .LP --> -To avoid conflicts with possible future names for which semantics might be -imposed (either at the protocol level or in terms of higher level user -interface models), -names beginning with an underscore should be used for atoms -that are private to a particular vendor or organization. -To guarantee no conflicts between vendors and organizations, -additional prefixes need to be used. -However, the protocol does not define the mechanism for choosing such prefixes. -For names private to a single application or end user but stored in globally -accessible locations, -it is suggested that two leading underscores be used to avoid conflicts with -other names. -</para> -</chapter> - -<chapter id='Connection_Setup'> - <title>Connection Setup</title> - <indexterm zone="Connection_Setup"><primary>Connection</primary></indexterm> - - <para> -For remote clients, -the X protocol can be built on top of any reliable byte stream. - </para> - - <section id="connection_initiation"> - <title>Connection Initiation</title> - <indexterm zone="connection_initiation"><primary>Connection</primary><secondary>opening</secondary></indexterm> - - <para id="byte-order"> -The client must send an initial byte of data to identify the byte order to be -employed. -<indexterm zone="byte-order"><primary>Byte order</primary></indexterm> -The value of the byte must be octal 102 or 154. -The value 102 (ASCII uppercase B) means values are transmitted most significant -byte first, and value 154 (ASCII lowercase l) means values are transmitted -least significant byte first. -Except where explicitly noted in the protocol, -all 16-bit and 32-bit quantities sent by the client must be transmitted with -this byte order, -and all 16-bit and 32-bit quantities returned by the server will be transmitted -with this byte order. - </para> - <para> -Following the byte-order byte, -the client sends the following information at connection setup: - </para> - <blockquote> - <para> -protocol-major-version: CARD16 - </para> - <para> -protocol-minor-version: CARD16 - </para> - <para> -authorization-protocol-name: STRING8 - </para> - <para> -authorization-protocol-data: STRING8 - </para> - </blockquote> - <para> -The version numbers indicate what version of the protocol the client -expects the server to implement. - </para> - <para id="authorization"> -The authorization name indicates what authorization (and authentication) -protocol the client -expects the server to use, and the data is specific to that protocol. -<indexterm zone="authorization" significance="preferred"><primary>Authorization</primary></indexterm> -Specification of valid authorization mechanisms is not part of the core -X protocol. -A server that does not implement the protocol the client expects -or that only implements the host-based mechanism may simply ignore this -information. -If both name and data strings are empty, -this is to be interpreted as "no explicit authorization." - </para> - </section> - - <section id="server_response"> - <title>Server Response</title> - - <para> -The client receives the following information at connection setup: - </para> - -<itemizedlist> - <listitem> - <para> -success: -{ <emphasis role='bold'>Failed</emphasis>, -<emphasis role='bold'>Success</emphasis>, -<emphasis role='bold'>Authenticate</emphasis>} - </para> - </listitem> -</itemizedlist> - - <para> -The client receives the following additional data if the returned success -value is -<emphasis role='bold'>Failed</emphasis>, -and the connection is not successfully established: - </para> - -<blockquote> - <para> -protocol-major-version: CARD16 - </para> - <para> -protocol-minor-version: CARD16 - </para> - <para> -reason: STRING8 - </para> -</blockquote> - - <para> -The client receives the following additional data if the returned success -value is -<emphasis role='bold'>Authenticate</emphasis>, -and further authentication negotiation is required: - </para> - -<blockquote> - <para> -reason: STRING8 - </para> -</blockquote> - - <para> -The contents of the reason string are specific to the authorization -protocol in use. The semantics of this authentication negotiation are -not constrained, except that the negotiation must eventually terminate -with a reply from the server containing a success value of -<emphasis role='bold'>Failed</emphasis> -or -<emphasis role='bold'>Success</emphasis>. - </para> - - <para> -The client receives the following additional data if the returned success -value is -<emphasis role='bold'>Success</emphasis>, -and the connection is successfully established: - </para> - -<blockquote> - <para> -protocol-major-version: CARD16 - </para> - <para> -<!-- .br --> -protocol-minor-version: CARD16 - </para> - <para> -<!-- .br --> -vendor: STRING8 - </para> - <para> -<!-- .br --> -release-number: CARD32 - </para> - <para> -<!-- .br --> -resource-id-base, resource-id-mask: CARD32 - </para> - <para> -<!-- .br --> -image-byte-order: -{ <emphasis role='bold'>LSBFirst</emphasis>, -<emphasis role='bold'>MSBFirst</emphasis> } - </para> - <para> -<!-- .br --> -bitmap-scanline-unit: {8, 16, 32} - </para> - <para> -<!-- .br --> -bitmap-scanline-pad: {8, 16, 32} - </para> - <para> -<!-- .br --> -bitmap-bit-order: -{ <emphasis role='bold'>LeastSignificant</emphasis>, -<emphasis role='bold'>MostSignificant</emphasis> } - </para> - <para> -<!-- .br --> -pixmap-formats: LISTofFORMAT - </para> - <para> -<!-- .br --> -roots: LISTofSCREEN - </para> - <para> -<!-- .br --> -motion-buffer-size: CARD32 - </para> - <para> -<!-- .br --> -maximum-request-length: CARD16 - </para> - <para> -<!-- .br --> -min-keycode, max-keycode: KEYCODE - </para> - <para> -where: - </para> - <blockquote> -<informaltable frame="none"> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry>FORMAT:</entry> - <entry>[depth: CARD8,</entry> - </row> - <row> - <entry></entry> - <entry> -bits-per-pixel: {1, 4, 8, 16, 24, 32} - </entry> - </row> - <row> - <entry></entry> - <entry> -scanline-pad: {8, 16, 32}] - </entry> - </row> - <row> - <entry>SCREEN:</entry> - <entry>[root: WINDOW</entry> - </row> - <row> - <entry></entry> - <entry>width-in-pixels, height-in-pixels: CARD16</entry> - </row> - <row> - <entry></entry> - <entry>width-in-millimeters, height-in-millimeters: CARD16</entry> - </row> - <row> - <entry></entry> - <entry>allowed-depths: LISTofDEPTH</entry> - </row> - <row> - <entry></entry> - <entry>root-depth: CARD8</entry> - </row> - <row> - <entry></entry> - <entry>root-visual: VISUALID</entry> - </row> - <row> - <entry></entry> - <entry>default-colormap: COLORMAP</entry> - </row> - <row> - <entry></entry> - <entry>white-pixel, black-pixel: CARD32</entry> - </row> - <row> - <entry></entry> - <entry>min-installed-maps, max-installed-maps: CARD16</entry> - </row> - <row> - <entry></entry> - <entry>backing-stores: {Never, WhenMapped, Always}</entry> - </row> - <row> - <entry></entry> - <entry>save-unders: BOOL</entry> - </row> - <row> - <entry></entry> - <entry>current-input-masks: SETofEVENT]</entry> - </row> - <row> - <entry>DEPTH:</entry> - <entry>[depth: CARD8</entry> - </row> - <row> - <entry></entry> - <entry>visuals: LISTofVISUALTYPE]</entry> - </row> - <row> - <entry>VISUALTYPE:</entry> - <entry>[visual-id: VISUALID</entry> - </row> - <row> - <entry></entry> - <entry> -class: {StaticGray, StaticColor, TrueColor, GrayScale, -PseudoColor, DirectColor} - </entry> - </row> - <row> - <entry></entry> - <entry>red-mask, green-mask, blue-mask: CARD32</entry> - </row> - <row> - <entry></entry> - <entry>bits-per-rgb-value: CARD8</entry> - </row> - <row> - <entry></entry> - <entry>colormap-entries: CARD16]</entry> - </row> - </tbody> - </tgroup> -</informaltable> - </blockquote> -</blockquote> - </section> - - <section id="server_information"> - <title>Server Information</title> - - <para> -The information that is global to the server is: - </para> - - <para> -The protocol version numbers are an escape hatch in case future revisions of -the protocol are necessary. -In general, -the major version would increment for incompatible changes, -and the minor version would increment for small upward compatible changes. -Barring changes, -the major version will be 11, and the minor version will be 0. -The protocol version numbers returned indicate the protocol the server -actually supports. -This might not equal the version sent by the client. -The server can (but need not) refuse connections from clients that offer a -different version than the server supports. -A server can (but need not) support more than one version simultaneously. - </para> - <para> -The vendor string gives some identification of the owner of the server -implementation. -The vendor controls the semantics of the release number. - </para> - <para id="resource-id-mask"> -The resource-id-mask contains a single contiguous set of bits (at least 18). -The client allocates resource IDs for types WINDOW, PIXMAP, -CURSOR, FONT, GCONTEXT, and COLORMAP by choosing a value with only -some subset of these bits set and ORing it with resource-id-base. -<indexterm zone="resource-id-mask"><primary>Resource</primary><secondary>ID</secondary></indexterm> -Only values constructed in this way can be used to name newly created -resources over this connection. -Resource IDs never have the top three bits set. -The client is not restricted to linear or contiguous allocation -of resource IDs. -Once an ID has been freed, -it can be reused. -An ID must be unique with respect to the IDs of all other resources, -not just other resources of the same type. -However, note that the value spaces of resource identifiers, -atoms, visualids, and keysyms are distinguished by context, and -as such, are not required to be disjoint; for example, a given numeric value -might be both a valid window ID, a valid atom, and a valid keysym. - </para> - <para> -Although the server is in general responsible for byte-swapping data to -match the client, -images are always transmitted and received in formats (including byte order) -specified by the server. -The byte order for images is given by image-byte-order and applies to each -scanline unit in XY format (bitmap format) and to each pixel value in Z format. - </para> - <para id="bitmap-format"> -A bitmap is represented in <glossterm linkend="glossary:Scanline_order">scanline order</glossterm>. -<indexterm zone="bitmap-format"><primary>Bitmap</primary><secondary>format</secondary></indexterm> -Each <glossterm linkend="glossary:Scanline">scanline</glossterm> -is padded to a multiple of bits as given by bitmap-scanline-pad. -The pad bits are of arbitrary value. -The scanline is quantized in multiples of bits as given by bitmap-scanline-unit. -The bitmap-scanline-unit is always less than or equal to the -bitmap-scanline-pad. -Within each unit, -the leftmost bit in the bitmap is either the least significant -or most significant bit in the unit, as given by bitmap-bit-order. -<indexterm zone="bitmap-format"><primary>XYFormat</primary></indexterm> -If a pixmap is represented in XY format, -each plane is represented as a bitmap, and the planes appear from -most significant to least significant in bit order with no padding -between planes. - </para> - <para id="pixmap-formats"> -Pixmap-formats contains one entry for each -<glossterm linkend="glossary:Depth">depth</glossterm> value. -<indexterm zone="pixmap-formats"><primary>Pixmap</primary><secondary>format</secondary></indexterm> -<indexterm zone="pixmap-formats"><primary>ZFormat</primary></indexterm> -The entry describes the <glossterm linkend="glossary:ZFormat">Z format</glossterm> -used to represent images of that depth. -An entry for a depth is included if any screen supports that depth, -and all screens supporting that depth must support only that Z format for that -depth. -In Z format, -the pixels are in scanline order, left to right within a scanline. -The number of bits used to hold each pixel is given by bits-per-pixel. -Bits-per-pixel may be larger than strictly required by the depth, -in which case the least significant bits are used to hold -the pixmap data, and the values of the unused high-order bits are -undefined. -When the bits-per-pixel is 4, -the order of nibbles in the byte is the same as the image byte-order. -When the bits-per-pixel is 1, -the format is identical for bitmap format. -Each scanline is padded to a multiple of bits as given by scanline-pad. -When bits-per-pixel is 1, -this will be identical to bitmap-scanline-pad. - </para> - <para> -How a pointing device roams the screens is up to the server -implementation and is transparent to the protocol. -No geometry is defined among screens. - </para> - <para> -The server may retain the recent history of pointer motion and do so to a -finer granularity than is reported by -<link linkend="events:MotionNotify"><emphasis role='bold'>MotionNotify</emphasis></link> -events. -The -<link linkend="requests:GetMotionEvents"><emphasis role='bold'>GetMotionEvents</emphasis></link> -request makes such history available. -The motion-buffer-size gives the approximate maximum number -of elements in the history buffer. - </para> - <para id="Maximum-request-length"> -Maximum-request-length specifies the maximum length of a request -accepted by the server, in 4-byte units. -<indexterm zone="Maximum-request-length"><primary>Request</primary><secondary>length</secondary></indexterm> -That is, length is the maximum value that can appear in the length field of a -request. -Requests larger than this maximum generate a -<emphasis role='bold'>Length</emphasis> -error, -and the server will read and simply discard the entire request. -Maximum-request-length will always be at least 4096 -(that is, requests of length up to and including 16384 bytes -will be accepted by all servers). - </para> - <para id="keycode_range"> -<indexterm zone="keycode_range"><primary>Types</primary><secondary>KEYCODE</secondary></indexterm> -<indexterm zone="keycode_range"><primary>Keycode</primary></indexterm> -Min-keycode and max-keycode specify the smallest and largest keycode -values transmitted by the server. -Min-keycode is never less than 8, -and max-keycode is never greater than 255. -Not all keycodes in this range are required to have corresponding keys. - </para> - </section> - - <section id="screen_information"> - <title>Screen Information</title> - <indexterm zone="screen_information"><primary>Screen</primary></indexterm> - - <para> -The information that applies per screen is: - </para> - - <para> -The allowed-depths specifies what pixmap and window depths are supported. -Pixmaps are supported for each depth listed, -and windows of that depth are supported if at least one visual type is listed -for the depth. -A pixmap depth of one is always supported and listed, -but windows of depth one might not be supported. -A depth of zero is never listed, -but zero-depth -<emphasis role='bold'>InputOnly</emphasis> -windows are always supported. - </para> - <para> -Root-depth and root-visual specify the depth and visual type of the -root window. -Width-in-pixels and height-in-pixels specify the size of -the root window (which cannot be changed). -The class of the root window is always -<emphasis role='bold'>InputOutput</emphasis>. -Width-in-millimeters and height-in-millimeters can be used to determine the -physical size and the aspect ratio. - </para> - <para> -The default-colormap is the one initially associated with the root window. -Clients with minimal color requirements creating windows of -the same depth as the root may want to allocate from this map by -default. - </para> - <para> -Black-pixel and white-pixel can be used in implementing a monochrome -application. -These pixel values are for permanently allocated entries in the -default-colormap. -The actual RGB values may be settable on some screens -and, in any case, may not actually be black and white. -The names are intended to convey the expected relative intensity of the colors. - </para> - <para> -The border of the root window is initially a pixmap filled with the black-pixel. -The initial background of the root window is a pixmap filled with some -unspecified two-color pattern using black-pixel and white-pixel. - </para> - <para> -Min-installed-maps specifies the number of maps that can be guaranteed -to be installed simultaneously (with -<link linkend="requests:InstallColormap"><emphasis role='bold'>InstallColormap</emphasis></link>), -regardless of the number of entries allocated in each map. -Max-installed-maps specifies the maximum number of maps that might possibly be -installed simultaneously, depending on their allocations. -Multiple static-visual colormaps with identical contents but differing in -resource ID should be considered as a single map for the purposes of this -number. -For the typical case of a single hardware colormap, both values will be 1. - </para> - <para id="Backing-stores"> -<indexterm zone="Backing-stores"><primary>Backing store</primary></indexterm> -Backing-stores indicates when the server supports backing stores for -this screen, although it may be storage limited in the number of -windows it can support at once. -If save-unders is -<emphasis role='bold'>True</emphasis>, -the server can support the save-under mode in -<link linkend="requests:CreateWindow"><emphasis role='bold'>CreateWindow</emphasis></link> -and -<link linkend="requests:ChangeWindowAttributes"><emphasis role='bold'>ChangeWindowAttributes</emphasis></link>, -although again it may be storage limited. - </para> - <para> -The current-input-events is what -<link linkend="requests:GetWindowAttributes"><emphasis role='bold'>GetWindowAttributes</emphasis></link> -would return for the all-event-masks for the root window. - </para> - </section> - - <section id="visual_information"> - <title>Visual Information</title> - <indexterm zone="visual_information" significance="preferred"><primary>Visual</primary><secondary>information</secondary></indexterm> - - <para> -The information that applies per visual-type is: - </para> - - <para> -A given visual type might be listed for more than one depth or for -more than one screen. - </para> - - <para id="colormap_types"> -<indexterm zone="colormap_types" significance="preferred"><primary>Colormap</primary><secondary>types</secondary></indexterm> -<indexterm zone="colormap_types"><primary>Pixel value</primary></indexterm> -For -<emphasis role='bold'>PseudoColor</emphasis>, -a pixel value indexes a colormap to produce independent RGB values; -the RGB values can be changed dynamically. -<emphasis role='bold'>GrayScale</emphasis> -is treated in the same way as -<emphasis role='bold'>PseudoColor</emphasis> -except which primary drives the screen is undefined; -thus, the client should always store the -same value for red, green, and blue in colormaps. -For -<emphasis role='bold'>DirectColor</emphasis>, -a pixel value is decomposed into separate RGB subfields, -and each subfield separately indexes the colormap for the corresponding value. -The RGB values can be changed dynamically. -<emphasis role='bold'>TrueColor</emphasis> -is treated in the same way as -<emphasis role='bold'>DirectColor</emphasis> -except the colormap has predefined read-only RGB values. -These values are server-dependent but provide linear or near-linear -increasing ramps in each primary. -<emphasis role='bold'>StaticColor</emphasis> -is treated in the same way as -<emphasis role='bold'>PseudoColor</emphasis> -except the colormap has predefined read-only RGB values, -which are server-dependent. -<emphasis role='bold'>StaticGray</emphasis> -is treated in the same way as -<emphasis role='bold'>StaticColor</emphasis> -except the red, green, and blue values are equal for any -single pixel value, resulting in shades of gray. -<emphasis role='bold'>StaticGray</emphasis> -with a two-entry colormap can be thought of as monochrome. - </para> - - <para> -The red-mask, green-mask, and blue-mask are only defined for -<emphasis role='bold'>DirectColor</emphasis> -and -<emphasis role='bold'>TrueColor</emphasis>. -Each has one contiguous set of bits set to 1 with no intersections. -Usually each mask has the same number of bits set to 1. - </para> - - <para> -The bits-per-rgb-value specifies the log base 2 of the number of -distinct color intensity values (individually) of red, green, and blue. -This number need not bear any relation to the number of colormap entries. -Actual RGB values are always passed in the protocol within a -16-bit spectrum, with 0 being minimum intensity and 65535 being the -maximum intensity. -On hardware that provides a linear zero-based intensity ramp, -the following relationship exists: - </para> - - <para> -<literallayout class="monospaced"> - hw-intensity = protocol-intensity / (65536 / total-hw-intensities) -</literallayout> - </para> - - <para> -Colormap entries are indexed from 0. -The colormap-entries defines the number of available colormap entries in a -newly created colormap. -For -<emphasis role='bold'>DirectColor</emphasis> -and -<emphasis role='bold'>TrueColor</emphasis>, -this will usually be 2 to the power of the maximum number of bits set to 1 in -red-mask, green-mask, and blue-mask. - </para> - </section> -</chapter> - -<chapter id='Requests'> - <title>Requests</title> - <section id="requests:CreateWindow"> - <title>CreateWindow</title> - <indexterm zone="requests:CreateWindow" significance="preferred"><primary>CreateWindow</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>wid</emphasis>, <emphasis remap='I'>parent</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>class</emphasis>: -{ <emphasis role='bold'>InputOutput</emphasis>, -<emphasis role='bold'>InputOnly</emphasis>, -<emphasis role='bold'>CopyFromParent</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>depth</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>visual</emphasis>: VISUALID or -<emphasis role='bold'>CopyFromParent</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>, <emphasis remap='I'>border-width</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Pixmap</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request creates an unmapped window and assigns the identifier wid to it. -</para> -<para> -A class of -<emphasis role='bold'>CopyFromParent</emphasis> -means the class is taken from the parent. -A depth of zero for class -<emphasis role='bold'>InputOutput</emphasis> -or -<emphasis role='bold'>CopyFromParent</emphasis> -means the depth is taken from the parent. -A visual of -<emphasis role='bold'>CopyFromParent</emphasis> -means the visual type is taken from the parent. -For class -<emphasis role='bold'>InputOutput</emphasis>, -the visual type and depth must be a combination supported for the screen -(or a -<emphasis role='bold'>Match</emphasis> -error results). -The depth need not be the same as the parent, -but the parent must not be of class -<emphasis role='bold'>InputOnly</emphasis> -(or a -<emphasis role='bold'>Match</emphasis> -error results). -For class -<emphasis role='bold'>InputOnly</emphasis>, -the depth must be zero (or a -<emphasis role='bold'>Match</emphasis> -error results), and the visual must be one supported for the screen (or a -<emphasis role='bold'>Match</emphasis> -error results). -However, the parent can have any depth and class. -</para> -<para> -The server essentially acts as if -<emphasis role='bold'>InputOnly</emphasis> -windows do not exist for the purposes of graphics requests, -exposure processing, and -<link linkend="events:VisibilityNotify"><emphasis role='bold'>VisibilityNotify</emphasis></link> -events. -An -<emphasis role='bold'>InputOnly</emphasis> -window cannot be used as a drawable (as a source or destination for graphics -requests). -<emphasis role='bold'>InputOnly</emphasis> -and -<emphasis role='bold'>InputOutput</emphasis> -windows act identically in other respects-properties, -grabs, input control, and so on. -</para> -<para> -The coordinate system has the X axis horizontal and the Y axis vertical -with the origin [0, 0] at the upper-left corner. -Coordinates are integral, -in terms of pixels, -and coincide with pixel centers. -Each window and pixmap has its own coordinate system. -For a window, -the origin is inside the border at the inside, upper-left corner. -</para> -<para> -The x and y coordinates -for the window are relative to the parent's origin -and specify the position of the upper-left outer corner of the window -(not the origin). -The width and height specify the inside size (not including the border) -and must be nonzero (or a -<emphasis role='bold'>Value</emphasis> -error results). -The border-width for an -<emphasis role='bold'>InputOnly</emphasis> -window must be zero (or a -<emphasis role='bold'>Match</emphasis> -error results). -</para> -<para> -The window is placed on top in the stacking order with respect to siblings. -</para> -<para> -The value-mask and value-list specify attributes of the window that are -to be explicitly initialized. -The possible values are: -</para> -<informaltable frame='topbot'> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Attribute</entry> - <entry>Type</entry> - </row> - </thead> - <tbody> - <row> - <entry>background-pixmap</entry> - <entry> -PIXMAP or -<emphasis role='bold'>None</emphasis> -or -<emphasis role='bold'>ParentRelative</emphasis> - </entry> - </row> - <row> - <entry>background-pixel</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>border-pixmap</entry> - <entry> -PIXMAP or -<emphasis role='bold'>CopyFromParent</emphasis> - </entry> - </row> - <row> - <entry>border-pixel</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>bit-gravity</entry> - <entry>BITGRAVITY</entry> - </row> - <row> - <entry>win-gravity</entry> - <entry>WINGRAVITY</entry> - </row> - <row> - <entry>backing-store</entry> - <entry> -{ <emphasis role='bold'>NotUseful</emphasis>, -<emphasis role='bold'>WhenMapped</emphasis>, -<emphasis role='bold'>Always</emphasis> } - </entry> - </row> - <row> - <entry>backing-planes</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>backing-pixel</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>save-under</entry> - <entry>BOOL</entry> - </row> - <row> - <entry>event-mask</entry> - <entry>SETofEVENT</entry> - </row> - <row> - <entry>do-not-propagate-mask</entry> - <entry>SETofDEVICEEVENT</entry> - </row> - <row> - <entry>override-redirect</entry> - <entry>BOOL</entry> - </row> - <row> - <entry>colormap</entry> - <entry> -COLORMAP or -<emphasis role='bold'>CopyFromParent</emphasis> - </entry> - </row> - <row> - <entry>cursor</entry> - <entry> -CURSOR or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -The default values when attributes are not explicitly initialized -are: -</para> - -<informaltable frame='topbot'> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Attribute</entry> - <entry>Default</entry> - </row> - </thead> - <tbody> - <row> - <entry>background-pixmap</entry> - <entry> -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry>border-pixmap</entry> - <entry> -<emphasis role='bold'>CopyFromParent</emphasis> - </entry> - </row> - <row> - <entry>bit-gravity</entry> - <entry> -<emphasis role='bold'>Forget</emphasis> - </entry> - </row> - <row> - <entry>win-gravity</entry> - <entry> -<emphasis role='bold'>NorthWest</emphasis> - </entry> - </row> - <row> - <entry>backing-store</entry> - <entry> -<emphasis role='bold'>NotUseful</emphasis> - </entry> - </row> - <row> - <entry>backing-planes</entry> - <entry>all ones</entry> - </row> - <row> - <entry>backing-pixel</entry> - <entry>zero</entry> - </row> - <row> - <entry>save-under</entry> - <entry> -<emphasis role='bold'>False</emphasis> - </entry> - </row> - <row> - <entry>event-mask</entry> - <entry>{} (empty set)</entry> - </row> - <row> - <entry>do-not-propagate-mask</entry> - <entry>{} (empty set)</entry> - </row> - <row> - <entry>override-redirect</entry> - <entry> -<emphasis role='bold'>False</emphasis> - </entry> - </row> - <row> - <entry>colormap</entry> - <entry> -<emphasis role='bold'>CopyFromParent</emphasis> - </entry> - </row> - <row rowsep='1'> - <entry>cursor</entry> - <entry> -<emphasis role='bold'>None</emphasis> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -Only the following attributes are defined for -<emphasis role='bold'>InputOnly</emphasis> -windows: -</para> - -<itemizedlist> - <listitem> - <para> -win-gravity - </para> - </listitem> - <listitem> - <para> -event-mask - </para> - </listitem> - <listitem> - <para> -do-not-propagate-mask - </para> - </listitem> - <listitem> - <para> -override-redirect - </para> - </listitem> - <listitem> - <para> -cursor - </para> - </listitem> -</itemizedlist> - -<para> -It is a -<emphasis role='bold'>Match</emphasis> -error to specify any other attributes for -<emphasis role='bold'>InputOnly</emphasis> -windows. -</para> -<para id="requests:CreateWindow:background"> -<indexterm zone="requests:CreateWindow:background"><primary>Background</primary></indexterm> -If background-pixmap is given, -it overrides the default background-pixmap. -The background pixmap and the window must have the -same root and the same depth (or a -<emphasis role='bold'>Match</emphasis> -error results). -Any size pixmap can be used, although some sizes may be faster than others. -If background -<emphasis role='bold'>None</emphasis> -is specified, the window has no defined background. -If background -<emphasis role='bold'>ParentRelative</emphasis> -is specified, the parent's background is used, -but the window must have the same depth as the parent (or a -<emphasis role='bold'>Match</emphasis> -error results). -If the parent has background -<emphasis role='bold'>None</emphasis>, -then the window will also have background -<emphasis role='bold'>None</emphasis>. -A copy of the parent's background is not made. -The parent's background is reexamined each time the window background is -required. -If background-pixel is given, it overrides the default -background-pixmap and any background-pixmap given explicitly, -and a pixmap of undefined size filled with background-pixel is used for the -background. -Range checking is not performed on the background-pixel value; -it is simply truncated to the appropriate number of bits. -For a -<emphasis role='bold'>ParentRelative</emphasis> -background, -the background tile origin always aligns with the parent's background tile -origin. -Otherwise, the background tile origin is always the window origin. -</para> -<para> -When no valid contents are available for regions of a window -and the regions are either visible or the server is maintaining backing store, -the server automatically tiles the regions with the window's background -unless the window has a background of -<emphasis role='bold'>None</emphasis>. -If the background is -<emphasis role='bold'>None</emphasis>, -the previous screen contents from other windows of the same depth as the window -are simply left in place if the contents come from the parent of the window -or an inferior of the parent; -otherwise, the initial contents of the exposed regions are undefined. -Exposure events are then generated for the regions, even if the background is -<emphasis role='bold'>None</emphasis>. -</para> -<para> -The border tile origin is always the same as the background tile origin. -If border-pixmap is given, -it overrides the default border-pixmap. -The border pixmap and the window must have the same root -and the same depth (or a -<emphasis role='bold'>Match</emphasis> -error results). -Any size pixmap can be used, -although some sizes may be faster than others. -If -<emphasis role='bold'>CopyFromParent</emphasis> -is given, the parent's border pixmap is copied (subsequent changes to -the parent's border attribute do not affect the child), -but the window must have the same depth as the parent (or a -<emphasis role='bold'>Match</emphasis> -error results). -The pixmap might be copied by sharing the same pixmap object between the -child and parent or by making a complete copy of the pixmap contents. -If border-pixel is given, -it overrides the default border-pixmap and any border-pixmap given explicitly, -and a pixmap of undefined size filled with border-pixel is used for the border. -Range checking is not performed on the border-pixel value; -it is simply truncated to the appropriate number of bits. -</para> -<para> -Output to a window is always clipped to the inside of the window, -so that the border is never affected. -</para> -<para> -The bit-gravity defines which region of the window should be retained -if the window is resized, and win-gravity defines how the window should -be repositioned if the parent is resized (see -<link linkend="requests:ConfigureWindow"><emphasis role='bold'>ConfigureWindow</emphasis></link> -request). -</para> -<para> -A backing-store of -<emphasis role='bold'>WhenMapped</emphasis> -advises the server that maintaining contents of obscured regions -when the window is mapped would be beneficial. -A backing-store of -<emphasis role='bold'>Always</emphasis> -advises the server that maintaining contents even when the window is -unmapped would be beneficial. -In this case, -the server may generate an exposure event when the window is created. -A value of -<emphasis role='bold'>NotUseful</emphasis> -advises the server that maintaining contents is unnecessary, -although a server may still choose to maintain contents while the window -is mapped. -Note that if the server maintains contents, -then the server should maintain complete contents -not just the region within the parent boundaries, -even if the window is larger than its parent. -While the server maintains contents, -exposure events will not normally be generated, -but the server may stop maintaining contents at any time. -</para> -<para> -If save-under is -<emphasis role='bold'>True</emphasis>, -the server is advised that when this window is -mapped, saving the contents of windows it obscures would be beneficial. -</para> -<para> -When the contents of obscured regions of a window are being maintained, -regions obscured by noninferior windows are included in the -destination (and source, when the window is the source) of graphics -requests, but regions obscured by inferior windows are not included. -</para> -<para> -The backing-planes indicates (with bits set to 1) which bit planes -of the window hold dynamic data that must be preserved in backing-stores -and during save-unders. -The backing-pixel specifies what value to use in planes not -covered by backing-planes. -The server is free to save only the specified bit planes in the backing-store -or save-under and regenerate the remaining planes with the specified pixel -value. -Any bits beyond the specified depth of the window in these -values are simply ignored. -</para> -<para id="requests:CreateWindow:event-mask"> -<indexterm zone="requests:CreateWindow:event-mask"><primary>Event</primary><secondary>mask</secondary></indexterm> -<indexterm zone="requests:CreateWindow:event-mask"><primary>Event</primary><secondary>propagation</secondary></indexterm> -The event-mask defines which events the client is interested in for -this window (or for some event types, inferiors of the window). -The do-not-propagate-mask defines which events should not be propagated to -ancestor windows when no client has the event type selected in this -window. -</para> -<para> -The override-redirect specifies whether map and configure requests on this -window should override a -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent, typically to inform a window manager not to tamper with -the window. -</para> -<para> -The colormap specifies the colormap that best reflects the true -colors of the window. -Servers capable of supporting multiple hardware colormaps may use this -information, and window managers may use it for -<link linkend="requests:InstallColormap"><emphasis role='bold'>InstallColormap</emphasis></link> -requests. -The colormap must have the same visual type and root as the window (or a -<emphasis role='bold'>Match</emphasis> -error results). -If -<emphasis role='bold'>CopyFromParent</emphasis> -is specified, -the parent's colormap is copied (subsequent changes to the parent's -colormap attribute do not affect the child). -However, the window must have the same visual type as the parent (or a -<emphasis role='bold'>Match</emphasis> -error results), and the parent must not have a colormap of -<emphasis role='bold'>None</emphasis> -(or a -<emphasis role='bold'>Match</emphasis> -error results). -For an explanation of -<emphasis role='bold'>None</emphasis>, -see <link linkend="requests:FreeColormap"><emphasis role='bold'>FreeColormap</emphasis></link> -request. -The colormap is copied by sharing the colormap object between the child -and the parent, -not by making a complete copy of the colormap contents. -</para> -<para> -If a cursor is specified, -it will be used whenever the pointer is in the window. -If -<emphasis role='bold'>None</emphasis> -is specified, -the parent's cursor will be used when the pointer is in the window, -and any change in the parent's cursor will cause an immediate change -in the displayed cursor. -</para> -<para> -This request generates a -<link linkend="events:CreateNotify"><emphasis role='bold'>CreateNotify</emphasis></link> -event. -</para> -<para> -The background and border pixmaps and the cursor may be freed -immediately if no further explicit references to them are to be made. -</para> -<para> -Subsequent drawing into the background or border pixmap has an -undefined effect on the window state. -The server might or might not make a copy of the pixmap. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeWindowAttributes"> - <title>ChangeWindowAttributes</title> - <indexterm zone="requests:ChangeWindowAttributes" significance="preferred"><primary>ChangeWindowAttributes</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Pixmap</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The value-mask and value-list specify which attributes are to be changed. -The values and restrictions are the same as for -<link linkend="requests:CreateWindow"><emphasis role='bold'>CreateWindow</emphasis></link>. -</para> -<para> -Setting a new background, whether by background-pixmap or -background-pixel, overrides any previous background. -Setting a new border, whether by border-pixel or border-pixmap, -overrides any previous border. -</para> -<para> -Changing the background does not cause the window contents to be changed. -Setting the border or changing the background such that the -border tile origin changes causes the border to be repainted. -Changing the background of a root window to -<emphasis role='bold'>None</emphasis> -or -<emphasis role='bold'>ParentRelative</emphasis> -restores the default background pixmap. -Changing the border of a root window to -<emphasis role='bold'>CopyFromParent</emphasis> -restores the default border pixmap. -</para> -<para> -Changing the win-gravity does not affect the current position of the -window. -</para> -<para> -Changing the backing-store of an obscured window to -<emphasis role='bold'>WhenMapped</emphasis> -or -<emphasis role='bold'>Always</emphasis> -or changing the backing-planes, backing-pixel, or save-under of -a mapped window may have no immediate effect. -</para> -<para> -Multiple clients can select input on the same window; -their event-masks are disjoint. -When an event is generated, -it will be reported to all interested clients. -However, only one client at a time can select for -<emphasis role='bold'>SubstructureRedirect</emphasis>, -only one client at a time can select for -<emphasis role='bold'>ResizeRedirect</emphasis>, -and only one client at a time can select for -<link linkend="events:ButtonPress"><emphasis role='bold'>ButtonPress</emphasis></link>. -An attempt to violate these restrictions results in an -<emphasis role='bold'>Access</emphasis> -error. -</para> -<para> -There is only one do-not-propagate-mask for a window, not one per -client. -</para> -<para> -Changing the colormap of a window (by defining a new map, not by -changing the contents of the existing map) generates a -<link linkend="events:ColormapNotify"><emphasis role='bold'>ColormapNotify</emphasis></link> -event. -Changing the colormap of a visible window might have no immediate effect -on the screen (see -<link linkend="requests:InstallColormap"><emphasis role='bold'>InstallColormap</emphasis></link> -request). -</para> -<para> -Changing the cursor of a root window to -<emphasis role='bold'>None</emphasis> -restores the default cursor. -</para> -<para> -The order in which attributes are verified and altered is server-dependent. -If an error is generated, -a subset of the attributes may have been altered. -<!-- .sp --> -</para> - </section> - <section id="requests:GetWindowAttributes"> - <title>GetWindowAttributes</title> - <indexterm zone="requests:GetWindowAttributes" significance="preferred"><primary>GetWindowAttributes</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -visual: VISUALID - </entry> - </row> - <row> - <entry> -class: -{ <emphasis role='bold'>InputOutput</emphasis>, -<emphasis role='bold'>InputOnly</emphasis>} - </entry> - </row> - <row> - <entry> -bit-gravity: BITGRAVITY - </entry> - </row> - <row> - <entry> -win-gravity: WINGRAVITY - </entry> - </row> - <row> - <entry> -backing-store: -{ <emphasis role='bold'>NotUseful</emphasis>, -<emphasis role='bold'>WhenMapped</emphasis>, -<emphasis role='bold'>Always</emphasis>} - </entry> - </row> - <row> - <entry> -backing-planes: CARD32 - </entry> - </row> - <row> - <entry> -backing-pixel: CARD32 - </entry> - </row> - <row> - <entry> -save-under: BOOL - </entry> - </row> - <row> - <entry> -colormap: COLORMAP or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -map-is-installed: BOOL - </entry> - </row> - <row> - <entry> -map-state: -{ <emphasis role='bold'>Unmapped</emphasis>, -<emphasis role='bold'>Unviewable</emphasis>, -<emphasis role='bold'>Viewable</emphasis>} - </entry> - </row> - <row> - <entry> -all-event-masks, your-event-mask: SETofEVENT - </entry> - </row> - <row> - <entry> -do-not-propagate-mask: SETofDEVICEEVENT - </entry> - </row> - <row> - <entry> -override-redirect: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current attributes of the window. -A window is -<emphasis role='bold'>Unviewable</emphasis> -if it is mapped but some ancestor is unmapped. -All-event-masks is the inclusive-OR of all event masks selected on the window -by clients. -Your-event-mask is the event mask selected by the querying client. -<!-- .sp --> -</para> - </section> - <section id="requests:DestroyWindow"> - <title>DestroyWindow</title> - <indexterm zone="requests:DestroyWindow" significance="preferred"><primary>DestroyWindow</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the argument window is mapped, -an -<link linkend="requests:UnmapWindow"><emphasis role='bold'>UnmapWindow</emphasis></link> -request is performed automatically. -The window and all inferiors are then destroyed, and a -<link linkend="events:DestroyNotify"><emphasis role='bold'>DestroyNotify</emphasis></link> -event is generated for each window. -The ordering of the -<emphasis role='bold'>DestroyNotify</emphasis> -events is such that for any given window, -<emphasis role='bold'>DestroyNotify</emphasis> -is generated on all inferiors of the window before being generated on -the window itself. -The ordering among siblings and across subhierarchies is not otherwise -constrained. -</para> -<para> -Normal exposure processing on formerly obscured windows is performed. -</para> -<para> -If the window is a root window, -this request has no effect. -<!-- .sp --> -</para> - </section> - <section id="requests:DestroySubwindows"> - <title>DestroySubwindows</title> - <indexterm zone="requests:DestroySubwindows" significance="preferred"><primary>DestroySubwindows</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request performs a -<link linkend="requests:DestroyWindow"><emphasis role='bold'>DestroyWindow</emphasis></link> -request on all children of the window, in bottom-to-top stacking order. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeSaveSet"> - <title>ChangeSaveSet</title> - <indexterm zone="requests:ChangeSaveSet" significance="preferred"><primary>ChangeSaveSet</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Insert</emphasis>, -<emphasis role='bold'>Delete</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -Errors: -<!-- .in +.2i --> -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request adds or removes the specified window from the client's -save-set. -The window must have been created by some other client (or a -<emphasis role='bold'>Match</emphasis> -error results). -For further information about the use of the save-set, -see <link linkend='Connection_Close'>section 10</link>. -</para> -<para> -When windows are destroyed, -the server automatically removes them from the save-set. -<!-- .sp --> -</para> - </section> - <section id="requests:ReparentWindow"> - <title>ReparentWindow</title> - <indexterm zone="requests:ReparentWindow" significance="preferred"><primary>ReparentWindow</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>, <emphasis remap='I'>parent</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the window is mapped, -an -<link linkend="requests:UnmapWindow"><emphasis role='bold'>UnmapWindow</emphasis></link> -request is performed automatically first. -The window is then removed from its current position in the hierarchy -and is inserted as a child of the specified parent. -The x and y coordinates are relative to the parent's origin -and specify the new position of the upper-left outer corner of the -window. -The window is placed on top in the stacking order with respect -to siblings. -A -<link linkend="events:ReparentNotify"><emphasis role='bold'>ReparentNotify</emphasis></link> -event is then generated. -The override-redirect attribute of the window is passed on in this event; -a value of -<emphasis role='bold'>True</emphasis> -indicates that a window manager should not tamper with this window. -Finally, if the window was originally mapped, a -<link linkend="requests:MapWindow"><emphasis role='bold'>MapWindow</emphasis></link> -request is performed automatically. -</para> -<para> -Normal exposure processing on formerly obscured windows is performed. -The server might not generate exposure events for regions from the -initial unmap that are immediately obscured by the final map. -</para> -<para> -A -<emphasis role='bold'>Match</emphasis> -error is generated if: -<!-- .IP bu 5 --> -The new parent is not on the same screen as the old parent. -<!-- .IP bu 5 --> -The new parent is the window itself or an inferior of the window. -<!-- .IP bu 5 --> -The new parent is -<emphasis role='bold'>InputOnly</emphasis>, -and the window is not. -<!-- .IP bu 5 --> -The window has a -<emphasis role='bold'>ParentRelative</emphasis> -background, and the new parent is not the same depth as the window. -<!-- .sp --> -</para> - </section> - <section id="requests:MapWindow"> - <title>MapWindow</title> - <indexterm zone="requests:MapWindow" significance="preferred"><primary>MapWindow</primary></indexterm> - <indexterm zone="requests:MapWindow"><primary>Mapped window</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the window is already mapped, this request has no effect. -</para> -<para> -If the override-redirect attribute of the window is -<emphasis role='bold'>False</emphasis> -and some other client has selected -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent, then a -<link linkend="events:MapRequest"><emphasis role='bold'>MapRequest</emphasis></link> -event is generated, but the window remains unmapped. -Otherwise, the window is mapped, -and a -<link linkend="events:MapNotify"><emphasis role='bold'>MapNotify</emphasis></link> -event is generated. -</para> -<para> -If the window is now viewable and its contents have been discarded, -the window is tiled with its background (if no background is defined, -the existing screen contents are not altered), and zero or more exposure -events are generated. -If a backing-store has been maintained while the window was unmapped, -no exposure events are generated. -If a backing-store will now be maintained, -a full-window exposure is always generated. -Otherwise, only visible regions may be reported. -Similar tiling and exposure take place for any newly viewable inferiors. -<!-- .sp --> -</para> - </section> - <section id="requests:MapSubwindows"> - <title>MapSubwindows</title> - <indexterm zone="requests:MapSubwindows" significance="preferred"><primary>MapSubwindows</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request performs a -<link linkend="requests:MapWindow"><emphasis role='bold'>MapWindow</emphasis></link> -request on all unmapped children of the window, -in top-to-bottom stacking order. -<!-- .sp --> -</para> - </section> - <section id="requests:UnmapWindow"> - <title>UnmapWindow</title> - <indexterm zone="requests:UnmapWindow" significance="preferred"><primary>UnmapWindow</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the window is already unmapped, this request has no effect. -Otherwise, the window is unmapped, and an -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link> -event is generated. -Normal exposure processing on formerly obscured windows is performed. -<!-- .sp --> -</para> - </section> - <section id="requests:UnmapSubwindows"> - <title>UnmapSubwindows</title> - <indexterm zone="requests:UnmapSubwindows" significance="preferred"><primary>UnmapSubwindows</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request performs an -<link linkend="requests:UnmapWindow"><emphasis role='bold'>UnmapWindow</emphasis></link> -request on all mapped children of the window, -in bottom-to-top stacking order. -<!-- .sp --> -</para> - </section> - <section id="requests:ConfigureWindow"> - <title>ConfigureWindow</title> - <indexterm zone="requests:ConfigureWindow" significance="preferred"><primary>ConfigureWindow</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes the configuration of the window. -The value-mask and value-list specify which values are to be given. -The possible values are: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Attribute</entry> - <entry>Type</entry> - </row> - </thead> - <tbody> - <row> - <entry>x</entry> - <entry>INT16</entry> - </row> - <row> - <entry>y</entry> - <entry>INT16</entry> - </row> - <row> - <entry>width</entry> - <entry>CARD16</entry> - </row> - <row> - <entry>height</entry> - <entry>CARD16</entry> - </row> - <row> - <entry>border-width</entry> - <entry>CARD16</entry> - </row> - <row> - <entry>sibling</entry> - <entry>WINDOW</entry> - </row> - <row> - <entry>stack-mode</entry> - <entry> -{ <emphasis role='bold'>Above</emphasis>, -<emphasis role='bold'>Below</emphasis>, -<emphasis role='bold'>TopIf</emphasis>, -<emphasis role='bold'>BottomIf</emphasis>, -<emphasis role='bold'>Opposite</emphasis> } - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -The x and y coordinates are relative to the parent's origin -and specify the position of the upper-left outer corner of the window. -The width and height specify the inside size, not including the border, and -must be nonzero (or a -<emphasis role='bold'>Value</emphasis> -error results). -Those values not specified are taken from the existing geometry of the window. -Note that changing just the border-width leaves the outer-left corner -of the window in a fixed position but moves the absolute position of the -window's origin. -It is a -<emphasis role='bold'>Match</emphasis> -error to attempt to make the border-width of an -<emphasis role='bold'>InputOnly</emphasis> -window nonzero. -</para> -<para> -If the override-redirect attribute of the window is -<emphasis role='bold'>False</emphasis> -and some other client has selected -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent, a -<link linkend="events:ConfigureRequest"><emphasis role='bold'>ConfigureRequest</emphasis></link> -event is generated, and no further processing is performed. -Otherwise, the following is performed: -</para> -<para> -If some other client has selected -<emphasis role='bold'>ResizeRedirect</emphasis> -on the window and the inside width or height of the window is being changed, -a -<link linkend="events:ResizeRequest"><emphasis role='bold'>ResizeRequest</emphasis></link> -event is generated, -and the current inside width and height are used instead. -Note that the override-redirect attribute of the window has no effect on -<emphasis role='bold'>ResizeRedirect</emphasis> -and that -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent has precedence over -<emphasis role='bold'>ResizeRedirect</emphasis> -on the window. -</para> -<para id="requests:ConfigureWindow:gravity"> -<indexterm zone="requests:ConfigureWindow:gravity"><primary>Gravity</primary></indexterm> -<indexterm zone="requests:ConfigureWindow:gravity"><primary>Bit</primary><secondary>gravity</secondary></indexterm> -<indexterm zone="requests:ConfigureWindow:gravity"><primary>Window</primary><secondary>gravity</secondary></indexterm> -The geometry of the window is changed as specified, -the window is restacked among siblings, and a -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link> -event is generated if the state of the window actually changes. -If the inside width or height of the window has actually changed, -then children of the window are affected, -according to their win-gravity. -Exposure processing is performed on formerly obscured windows -(including the window itself and its inferiors if regions of them were -obscured but now are not). -Exposure processing is also performed on any new regions of the window -(as a result of increasing the width or height) -and on any regions where window contents are lost. -</para> -<para> -If the inside width or height of a window is not changed -but the window is moved or its border is changed, -then the contents of the window are not lost but move with the window. -Changing the inside width or height of the window causes its contents to be -moved or lost, depending on the bit-gravity of the window. -It also causes children to be reconfigured, depending on their win-gravity. -For a change of width and height of W and H, -we define the [x, y] pairs as: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Direction</entry> - <entry>Deltas</entry> - </row> - </thead> - <tbody> - <row> - <entry> -<emphasis role='bold'>NorthWest</emphasis> - </entry> - <entry>[0, 0]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>North</emphasis> - </entry> - <entry>[W/2, 0]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>NorthEast</emphasis> - </entry> - <entry>[W, 0]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>West</emphasis> - </entry> - <entry>[0, H/2]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Center</emphasis> - </entry> - <entry>[W/2, H/2]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>East</emphasis> - </entry> - <entry>[W, H/2]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>SouthWest</emphasis> - </entry> - <entry>[0, H]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>South</emphasis> - </entry> - <entry>[W/2, H]</entry> - </row> - <row> - <entry> -<emphasis role='bold'>SouthEast</emphasis> - </entry> - <entry>[W, H]</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -When a window with one of these bit-gravities is resized, -the corresponding pair defines the change in position of each pixel in the -window. -When a window with one of these win-gravities has its parent window resized, -the corresponding pair defines the change in position -of the window within the parent. -This repositioning generates a -<link linkend="events:GravityNotify"><emphasis role='bold'>GravityNotify</emphasis></link> -event. -<emphasis role='bold'>GravityNotify</emphasis> -events are generated after the -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link> -event is generated. -</para> -<para> -A gravity of -<emphasis role='bold'>Static</emphasis> -indicates that the contents or origin should not move relative to the origin -of the root window. -If the change in size of the window is coupled with a change -in position of [X, Y], -then for bit-gravity the change in position of each pixel is [-X, -Y] and for -win-gravity the change in position of a child when its parent is so -resized is [-X, -Y]. -Note that -<emphasis role='bold'>Static</emphasis> -gravity still only takes effect when the width or height of the -window is changed, not when the window is simply moved. -</para> -<para> -A bit-gravity of -<emphasis role='bold'>Forget</emphasis> -indicates that the window contents are always discarded after a size change, -even if backing-store or save-under has been requested. -The window is tiled with its background (except, if no background is defined, -the existing screen contents are not altered) -and zero or more exposure events are generated. -</para> -<para> -The contents and borders of inferiors are not affected by their parent's -bit-gravity. -A server is permitted to ignore the specified bit-gravity and use -<emphasis role='bold'>Forget</emphasis> -instead. -</para> -<para> -A win-gravity of -<emphasis role='bold'>Unmap</emphasis> -is like -<emphasis role='bold'>NorthWest</emphasis>, -but the child is also unmapped when the parent is resized, -and an -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link> -event is generated. -<emphasis role='bold'>UnmapNotify</emphasis> -events are generated after the -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link> -event is generated. -</para> -<para> -If a sibling and a stack-mode are specified, -the window is restacked as follows: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='3.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>Above</emphasis> - </entry> - <entry> -The window is placed just above the sibling. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Below</emphasis> - </entry> - <entry> -The window is placed just below the sibling. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>TopIf</emphasis> - </entry> - <entry> -If the sibling occludes the window, -then the window is placed at the top of the stack. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>BottomIf</emphasis> - </entry> - <entry> -If the window occludes the sibling, -then the window is placed at the bottom of the stack. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Opposite</emphasis> - </entry> - <entry> -If the sibling occludes the window, -then the window is placed at the top of the stack. -Otherwise, if the window occludes the sibling, -then the window is placed at the bottom of the stack. - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -If a stack-mode is specified but no sibling is specified, -the window is restacked as follows: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='3.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>Above</emphasis> - </entry> - <entry> -The window is placed at the top of the stack. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Below</emphasis> - </entry> - <entry> -The window is placed at the bottom of the stack. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>TopIf</emphasis> - </entry> - <entry> -If any sibling occludes the window, -then the window is placed at the top of the stack. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>BottomIf</emphasis> - </entry> - <entry> -If the window occludes any sibling, -then the window is placed at the bottom of the stack. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Opposite</emphasis> - </entry> - <entry> -If any sibling occludes the window, -then the window is placed at the top of the stack. -Otherwise, if the window occludes any sibling, -then the window is placed at the bottom of the stack. - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -It is a -<emphasis role='bold'>Match</emphasis> -error if a sibling is specified without a stack-mode -or if the window is not actually a sibling. -</para> -<para> -Note that the computations for -<emphasis role='bold'>BottomIf</emphasis>, -<emphasis role='bold'>TopIf</emphasis>, -and -<emphasis role='bold'>Opposite</emphasis> -are performed with respect to the window's final geometry (as controlled by -the other arguments to the request), not to its initial geometry. -</para> -<para> -Attempts to configure a root window have no effect. -</para> - - </section> - <section id="requests:CirculateWindow"> - <title>CirculateWindow</title> - <indexterm zone="requests:CirculateWindow" significance="preferred"><primary>CirculateWindow</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>direction</emphasis>: -{ <emphasis role='bold'>RaiseLowest</emphasis>, -<emphasis role='bold'>LowerHighest</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If some other client has selected -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the window, then a -<link linkend="events:CirculateRequest"><emphasis role='bold'>CirculateRequest</emphasis></link> -event is generated, and no further processing is performed. -Otherwise, the following is performed, and then a -<link linkend="events:CirculateNotify"><emphasis role='bold'>CirculateNotify</emphasis></link> -event is generated if the window is actually restacked. -</para> -<para> -For -<emphasis role='bold'>RaiseLowest</emphasis>, -<emphasis role='bold'>CirculateWindow</emphasis> -raises the lowest mapped child (if any) that is -occluded by another child to the top of the stack. -For -<emphasis role='bold'>LowerHighest</emphasis>, -<emphasis role='bold'>CirculateWindow</emphasis> -lowers the highest mapped child (if any) that occludes another child to -the bottom of the stack. -Exposure processing is performed on formerly obscured windows. -<!-- .sp --> -</para> - </section> - <section id="requests:GetGeometry"> - <title>GetGeometry</title> - <indexterm zone="requests:GetGeometry" significance="preferred"><primary>GetGeometry</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -root: WINDOW - </entry> - </row> - <row> - <entry> -depth: CARD8 - </entry> - </row> - <row> - <entry> -x, y: INT16 - </entry> - </row> - <row> - <entry> -width, height, border-width: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the root and current geometry of the drawable. -The depth is the number of bits per pixel for the object. -The x, y, and border-width will always be zero for pixmaps. -For a window, -the x and y coordinates specify the upper-left outer corner of the window -relative to its parent's origin, -and the width and height specify the inside size, not including the border. -</para> -<para> -It is legal to pass an -<emphasis role='bold'>InputOnly</emphasis> -window as a drawable to this request. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryTree"> - <title>QueryTree</title> - <indexterm zone="requests:QueryTree" significance="preferred"><primary>QueryTree</primary></indexterm> - <indexterm zone="requests:QueryTree"><primary>Children</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -root: WINDOW - </entry> - </row> - <row> - <entry> -parent: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -children: LISTofWINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the root, the parent, and the children of the window. -The children are listed in bottom-to-top stacking order. -<!-- .sp --> -</para> - </section> - <section id="requests:InternAtom"> - <title>InternAtom</title> - <indexterm zone="requests:InternAtom" significance="preferred"><primary>InternAtom</primary></indexterm> - <indexterm zone="requests:InternAtom"><primary>Atom</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>name</emphasis>: STRING8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>only-if-exists</emphasis>: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -atom: ATOM or -<emphasis role='bold'>None</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the atom for the given name. -If only-if-exists is -<emphasis role='bold'>False</emphasis>, -then the atom is created if it does not exist. -The string should use the ISO Latin-1 encoding. -Uppercase and lowercase matter. -</para> -<para> -The lifetime of an atom is not tied to the interning client. -Atoms remain defined until server reset (see <link linkend='Connection_Close'>section 10</link>). -<!-- .sp --> -</para> - </section> - <section id="requests:GetAtomName"> - <title>GetAtomName</title> - <indexterm zone="requests:GetAtomName" significance="preferred"><primary>GetAtomName</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>atom</emphasis>: ATOM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -name: STRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the name for the given atom. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeProperty"> - <title>ChangeProperty</title> - <indexterm zone="requests:ChangeProperty" significance="preferred"><primary>ChangeProperty</primary></indexterm> - <indexterm zone="requests:ChangeProperty"><primary>Property</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>property</emphasis>, <emphasis remap='I'>type</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>format</emphasis>: {8, 16, 32} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Replace</emphasis>, -<emphasis role='bold'>Prepend</emphasis>, -<emphasis role='bold'>Append</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>data</emphasis>: LISTofINT8 or LISTofINT16 or LISTofINT32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request alters the property for the specified window. -The type is uninterpreted by the server. -The format specifies whether the data should be viewed as a list of 8-bit, -16-bit, or 32-bit quantities so that the server can correctly byte-swap -as necessary. -</para> -<para> -If the mode is -<emphasis role='bold'>Replace</emphasis>, -the previous property value is discarded. -If the mode is -<emphasis role='bold'>Prepend</emphasis> -or -<emphasis role='bold'>Append</emphasis>, -then the type and format must match the existing property value (or a -<emphasis role='bold'>Match</emphasis> -error results). -If the property is undefined, -it is treated as defined with the correct type -and format with zero-length data. -For -<emphasis role='bold'>Prepend</emphasis>, -the data is tacked on to the beginning of the existing data, and for -<emphasis role='bold'>Append</emphasis>, -it is tacked on to the end of the existing data. -</para> -<para> -This request generates a -<link linkend="events:PropertyNotify"><emphasis role='bold'>PropertyNotify</emphasis></link> -event on the window. -</para> -<para> -The lifetime of a property is not tied to the storing client. -Properties remain until explicitly deleted, until the window is destroyed, -or until server reset (see <link linkend='Connection_Close'>section 10</link>). -</para> -<para> -The maximum size of a property is server-dependent and may vary dynamically. -<!-- .sp --> -</para> - </section> - <section id="requests:DeleteProperty"> - <title>DeleteProperty</title> - <indexterm zone="requests:DeleteProperty" significance="preferred"><primary>DeleteProperty</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>property</emphasis>: ATOM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request deletes the property from the specified window -if the property exists and generates a -<link linkend="events:PropertyNotify"><emphasis role='bold'>PropertyNotify</emphasis></link> -event on the window unless the property does not exist. -<!-- .sp --> -</para> - </section> - <section id="requests:GetProperty"> - <title>GetProperty</title> - <indexterm zone="requests:GetProperty" significance="preferred"><primary>GetProperty</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>property</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>type</emphasis>: ATOM or -<emphasis role='bold'>AnyPropertyType</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>long-offset</emphasis>, <emphasis remap='I'>long-length</emphasis>: CARD32 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>delete</emphasis>: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -type: ATOM or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -format: {0, 8, 16, 32} - </entry> - </row> - <row> - <entry> -bytes-after: CARD32 - </entry> - </row> - <row> - <entry> -value: LISTofINT8 or LISTofINT16 or LISTofINT32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the specified property does not exist for the specified window, -then the return type is -<emphasis role='bold'>None</emphasis>, -the format and bytes-after are zero, -and the value is empty. -The delete argument is ignored in this case. -If the specified property exists but its type does not match the specified type, -then the return type is the actual type of the property, -the format is the actual format of the property (never zero), -the bytes-after is the length of the property in bytes -(even if the format is 16 or 32), -and the value is empty. -The delete argument is ignored in this case. -If the specified property exists and either -<emphasis role='bold'>AnyPropertyType</emphasis> -is specified or the specified type matches the actual type of the property, -then the return type is the actual type of the property, -the format is the actual format of the property (never zero), -and the bytes-after and value are as follows, given: -<literallayout class="monospaced"> - N = actual length of the stored property in bytes - (even if the format is 16 or 32) - I = 4 * long-offset - T = N - I - L = MINIMUM(T, 4 * long-length) - A = N - (I + L) -</literallayout> -</para> -<para> -The returned value starts at byte index I in the property (indexing from 0), -and its length in bytes is L. -However, it is a -<emphasis role='bold'>Value</emphasis> -error if long-offset is given such that L is negative. -The value of bytes-after is A, -giving the number of trailing unread bytes in the stored -property. -If delete is -<emphasis role='bold'>True</emphasis> -and the bytes-after is zero, -the property is also deleted from the window, -and a -<link linkend="events:PropertyNotify"><emphasis role='bold'>PropertyNotify</emphasis></link> -event is generated on the window. -<!-- .sp --> -</para> - </section> - <section id="requests:RotateProperties"> - <title>RotateProperties</title> - <indexterm zone="requests:RotateProperties" significance="preferred"><primary>RotateProperties</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>delta</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>properties</emphasis>: LISTofATOM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the property names in the list are viewed as being numbered starting -from zero, and there are N property names in the list, -then the value associated with property name I becomes the value -associated with property name (I + delta) mod N, for all I from zero to N - 1. -The effect is to rotate the states by delta places around the virtual ring -of property names (right for positive delta, left for negative delta). -</para> -<para> -If delta mod N is nonzero, -a -<link linkend="events:PropertyNotify"><emphasis role='bold'>PropertyNotify</emphasis></link> -event is generated for each property in the order listed. -</para> -<para> -If an atom occurs more than once in the list or no property with that -name is defined for the window, -a -<emphasis role='bold'>Match</emphasis> -error is generated. -If an -<emphasis role='bold'>Atom</emphasis> -or -<emphasis role='bold'>Match</emphasis> -error is generated, no properties are changed. -<!-- .sp --> -</para> - </section> - <section id="requests:ListProperties"> - <title>ListProperties</title> - <indexterm zone="requests:ListProperties" significance="preferred"><primary>ListProperties</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -atoms: LISTofATOM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the atoms of properties currently defined on the window. -<!-- .sp --> -</para> - </section> - <section id="requests:SetSelectionOwner"> - <title>SetSelectionOwner</title> - <indexterm zone="requests:SetSelectionOwner" significance="preferred"><primary>SetSelectionOwner</primary></indexterm> - <indexterm zone="requests:SetSelectionOwner"><primary>Selection</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>selection</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>owner</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes the owner, owner window, -and last-change time of the specified selection. -This request has no effect if the specified time is earlier -than the current last-change time of the specified selection or is -later than the current server time. -Otherwise, the last-change time is set to the specified time -with -<emphasis role='bold'>CurrentTime</emphasis> -replaced by the current server time. -If the owner window is specified as -<emphasis role='bold'>None</emphasis>, -then the owner of the selection becomes -<emphasis role='bold'>None</emphasis> -(that is, no owner). -Otherwise, the owner of the selection becomes the client executing the request. -If the new owner (whether a client or -<emphasis role='bold'>None</emphasis>) -is not the same as the current owner -and the current owner is not -<emphasis role='bold'>None</emphasis>, -then the current owner is sent a -<link linkend="events:SelectionClear"><emphasis role='bold'>SelectionClear</emphasis></link> -event. -</para> -<para> -If the client that is the owner of a selection is later terminated -(that is, its connection is closed) or if the owner window it has -specified in the request is later destroyed, -then the owner of the selection automatically reverts to -<emphasis role='bold'>None</emphasis>, -but the last-change time is not affected. -</para> -<para> -The selection atom is uninterpreted by the server. -The owner window is returned by the -<link linkend="requests:GetSelectionOwner"><emphasis role='bold'>GetSelectionOwner</emphasis></link> -request and is reported in -<link linkend="events:SelectionRequest"><emphasis role='bold'>SelectionRequest</emphasis></link> -and -<link linkend="events:SelectionClear"><emphasis role='bold'>SelectionClear</emphasis></link> -events. -</para> -<para> -Selections are global to the server. -<!-- .sp --> -</para> - </section> - <section id="requests:GetSelectionOwner"> - <title>GetSelectionOwner</title> - <indexterm zone="requests:GetSelectionOwner" significance="preferred"><primary>GetSelectionOwner</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>selection</emphasis>: ATOM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -owner: WINDOW or -<emphasis role='bold'>None</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current owner window of the specified selection, -if any. -If -<emphasis role='bold'>None</emphasis> -is returned, then there is no owner for the selection. -<!-- .sp --> -</para> - </section> - <section id="requests:ConvertSelection"> - <title>ConvertSelection</title> - <indexterm zone="requests:ConvertSelection" significance="preferred"><primary>ConvertSelection</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>selection</emphasis>, <emphasis remap='I'>target</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>property</emphasis>: ATOM or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>requestor</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Atom</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the specified selection has an owner, -the server sends a -<link linkend="events:SelectionRequest"><emphasis role='bold'>SelectionRequest</emphasis></link> -event to that owner. -If no owner for the specified selection exists, -the server generates a -<link linkend="events:SelectionNotify"><emphasis role='bold'>SelectionNotify</emphasis></link> -event to the requestor with property -<emphasis role='bold'>None</emphasis>. -The arguments are passed on unchanged in either of the events. -<!-- .sp --> -</para> - </section> - <section id="requests:SendEvent"> - <title>SendEvent</title> - <indexterm zone="requests:SendEvent" significance="preferred"><primary>SendEvent</primary></indexterm> - <indexterm zone="requests:SendEvent" significance="preferred"><primary>Event</primary><secondary>sending</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>destination</emphasis>: WINDOW or -<emphasis role='bold'>PointerWindow</emphasis> -or -<emphasis role='bold'>InputFocus</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>propagate</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>event-mask</emphasis>: SETofEVENT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>event</emphasis>: <normal-event-format> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If -<emphasis role='bold'>PointerWindow</emphasis> -is specified, -destination is replaced with the window that the pointer is in. -If -<emphasis role='bold'>InputFocus</emphasis> -is specified and the focus window contains the pointer, -destination is replaced with the window that the pointer is in. -Otherwise, destination is replaced with the focus window. -</para> -<para> -If the event-mask is the empty set, -then the event is sent to the client that created the destination window. -If that client no longer exists, no event is sent. -</para> -<para> -If propagate is -<emphasis role='bold'>False</emphasis>, -then the event is sent to every client selecting -on destination any of the event types in event-mask. -</para> -<para> -If propagate is -<emphasis role='bold'>True</emphasis> -and no clients have selected on destination any -of the event types in event-mask, -then destination is replaced with the -closest ancestor of destination for which some client has selected a -type in event-mask and no intervening window has that type in its -do-not-propagate-mask. -If no such window exists or if the window is an ancestor of the focus window -and -<emphasis role='bold'>InputFocus</emphasis> -was originally specified as the destination, -then the event is not sent to any clients. -Otherwise, the event is reported to every client selecting on the final -destination any of the types specified in event-mask. -</para> -<para> -The event code must be one of the core events or one of the events -defined by an extension (or a -<emphasis role='bold'>Value</emphasis> -error results) so that the server can correctly byte-swap the -contents as necessary. -The contents of the event are otherwise unaltered and unchecked -by the server except to force on the most significant bit of the event code -and to set the sequence number in the event correctly. -</para> -<para> -Active grabs are ignored for this request. -<!-- .sp --> -</para> - </section> - <section id="requests:GrabPointer"> - <title>GrabPointer</title> - <indexterm zone="requests:GrabPointer" significance="preferred"><primary>GrabPointer</primary></indexterm> - <indexterm zone="requests:GrabPointer"><primary>Active grab</primary><secondary>pointer</secondary></indexterm> - <indexterm zone="requests:GrabPointer"><primary>Pointer</primary><secondary>grabbing</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>grab-window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>owner-events</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>event-mask</emphasis>: SETofPOINTEREVENT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pointer-mode</emphasis>, <emphasis remap='I'>keyboard-mode</emphasis>: -{ <emphasis role='bold'>Synchronous</emphasis>, -<emphasis role='bold'>Asynchronous</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>confine-to</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>cursor</emphasis>: CURSOR or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -status: -{ <emphasis role='bold'>Success</emphasis>, -<emphasis role='bold'>AlreadyGrabbed</emphasis>, -<emphasis role='bold'>Frozen</emphasis>, -<emphasis role='bold'>InvalidTime</emphasis>, -<emphasis role='bold'>NotViewable</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request actively grabs control of the pointer. -Further pointer events are only reported to the grabbing client. -The request overrides any active pointer grab by this client. -</para> -<para> -If owner-events is -<emphasis role='bold'>False</emphasis>, -all generated pointer events are reported with respect to grab-window -and are only reported if selected by event-mask. -If owner-events is -<emphasis role='bold'>True</emphasis> -and a generated pointer event would normally be reported to this client, -it is reported normally. -Otherwise, the event is reported with respect to the grab-window and is -only reported if selected by event-mask. -For either value of owner-events, -unreported events are simply discarded. -</para> -<para> -If pointer-mode is -<emphasis role='bold'>Asynchronous</emphasis>, -pointer event processing continues normally. -If the pointer is currently frozen by this client, -then processing of pointer events is resumed. -If pointer-mode is -<emphasis role='bold'>Synchronous</emphasis>, -the state of the pointer (as seen by means of the protocol) appears to freeze, -and no further pointer events are generated by the server until the -grabbing client issues a releasing -<link linkend="requests:AllowEvents"><emphasis role='bold'>AllowEvents</emphasis></link> -request or until the pointer grab is released. -Actual pointer changes are not lost while the pointer is frozen. -They are simply queued for later processing. -</para> -<para> -If keyboard-mode is -<emphasis role='bold'>Asynchronous</emphasis>, -keyboard event processing is unaffected by activation of the grab. -If keyboard-mode is -<emphasis role='bold'>Synchronous</emphasis>, -the state of the keyboard (as seen by means of the protocol) appears to freeze, -and no further keyboard events are generated by the server until the grabbing -client issues a releasing -<emphasis role='bold'>AllowEvents</emphasis> -request or until the pointer grab is released. -Actual keyboard changes are not lost while the keyboard is frozen. -They are simply queued for later processing. -</para> -<para> -If a cursor is specified, -then it is displayed regardless of what window the pointer is in. -If no cursor is specified, -then when the pointer is in grab-window or one of its subwindows, -the normal cursor for that window is displayed. -Otherwise, the cursor for grab-window is displayed. -</para> -<para> -If a confine-to window is specified, -then the pointer will be restricted to stay contained in that window. -The confine-to window need have no relationship to the grab-window. -If the pointer is not initially in the confine-to window, -then it is warped automatically to the closest edge -(and enter/leave events are generated normally) just before the grab activates. -If the confine-to window is subsequently reconfigured, -the pointer will be warped automatically as necessary to -keep it contained in the window. -</para> -<para> -This request generates -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link> -and -<link linkend="events:LeaveNotify"><emphasis role='bold'>LeaveNotify</emphasis></link> -events. -</para> -<para> -The request fails with status -<emphasis role='bold'>AlreadyGrabbed</emphasis> -if the pointer is actively grabbed by some other client. -The request fails with status -<emphasis role='bold'>Frozen</emphasis> -if the pointer is frozen by an active grab of another client. -The request fails with status -<emphasis role='bold'>NotViewable</emphasis> -if grab-window or confine-to window is not viewable -or if the confine-to window lies completely outside the boundaries -of the root window. -The request fails with status -<emphasis role='bold'>InvalidTime</emphasis> -if the specified time is earlier than the last-pointer-grab time or later than -the current server time. -Otherwise, the last-pointer-grab time is set to the specified time, with -<emphasis role='bold'>CurrentTime</emphasis> -replaced by the current server time. -<!-- .sp --> -</para> - </section> - <section id="requests:UngrabPointer"> - <title>UngrabPointer</title> - <indexterm zone="requests:UngrabPointer" significance="preferred"><primary>UngrabPointer</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request releases the pointer if this client has it actively grabbed (from -either -<link linkend="requests:GrabPointer"><emphasis role='bold'>GrabPointer</emphasis></link> -or -<link linkend="requests:GrabButton"><emphasis role='bold'>GrabButton</emphasis></link> -or from a normal button press) and releases any queued events. -The request has no effect if the specified time is earlier than -the last-pointer-grab time or is later than the current server time. -</para> -<para> -This request generates -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link> -and -<link linkend="events:LeaveNotify"><emphasis role='bold'>LeaveNotify</emphasis></link> -events. -</para> -<para> -An -<link linkend="requests:UngrabPointer"><emphasis role='bold'>UngrabPointer</emphasis></link> -request is performed automatically if the event window or -confine-to window for an active pointer grab becomes not viewable -or if window reconfiguration causes the confine-to window to lie -completely outside the boundaries of the root window. -<!-- .sp --> -</para> - </section> - <section id="requests:GrabButton"> - <title>GrabButton</title> - <indexterm zone="requests:GrabButton" significance="preferred"><primary>GrabButton</primary></indexterm> - <indexterm zone="requests:GrabButton"><primary>Button</primary><secondary>grabbing</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>modifiers</emphasis>: SETofKEYMASK or -<emphasis role='bold'>AnyModifier</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>button</emphasis>: BUTTON or -<emphasis role='bold'>AnyButton</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>grab-window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>owner-events</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>event-mask</emphasis>: SETofPOINTEREVENT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pointer-mode</emphasis>, <emphasis remap='I'>keyboard-mode</emphasis>: -{ <emphasis role='bold'>Synchronous</emphasis>, -<emphasis role='bold'>Asynchronous</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>confine-to</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>cursor</emphasis>: CURSOR or -<emphasis role='bold'>None</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request establishes a passive grab. -<indexterm zone="requests:GrabButton"><primary>Passive grab</primary><secondary>pointer</secondary></indexterm> -In the future, -the pointer is actively grabbed as described in -<link linkend="requests:GrabPointer"><emphasis role='bold'>GrabPointer</emphasis></link>, -the last-pointer-grab time is set to the time at which the button was -pressed (as transmitted in the -<link linkend="events:ButtonPress"><emphasis role='bold'>ButtonPress</emphasis></link> -event), and the -<emphasis role='bold'>ButtonPress</emphasis> -event is reported if all of the following conditions are true: -<!-- .IP bu 5 --> -The pointer is not grabbed and the specified button is logically pressed -when the specified modifier keys are logically down, -and no other buttons or modifier keys are logically down. -<!-- .IP bu 5 --> -The grab-window contains the pointer. -<!-- .IP bu 5 --> -The confine-to window (if any) is viewable. -<!-- .IP bu 5 --> -A passive grab on the same button/key combination does not exist -on any ancestor of grab-window. -</para> -<para> -The interpretation of the remaining arguments is the same as for -<link linkend="requests:GrabPointer"><emphasis role='bold'>GrabPointer</emphasis></link>. -The active grab is terminated automatically when -the logical state of the pointer has all buttons released, -independent of the logical state of modifier keys. -Note that the logical state of a device (as seen by means of the protocol) -may lag the physical state if device event processing is frozen. -</para> -<para> -This request overrides all previous passive grabs by the same client on -the same button/key combinations on the same window. -A modifier of -<emphasis role='bold'>AnyModifier</emphasis> -is equivalent to issuing the request for all possible modifier combinations -(including the combination of no modifiers). -It is not required that all specified modifiers have currently assigned -keycodes. -A button of -<emphasis role='bold'>AnyButton</emphasis> -is equivalent to issuing the request for all possible buttons. -Otherwise, it is not required that the button specified currently be assigned -to a physical button. -</para> -<para> -An -<emphasis role='bold'>Access</emphasis> -error is generated if some other client has already issued a -<emphasis role='bold'>GrabButton</emphasis> -request with the same button/key combination on the same window. -When using -<emphasis role='bold'>AnyModifier</emphasis> -or -<emphasis role='bold'>AnyButton</emphasis>, -the request fails completely (no grabs are established), and an -<emphasis role='bold'>Access</emphasis> -error is generated if there is a conflicting grab for any combination. -The request has no effect on an active grab. -<!-- .sp --> -</para> - </section> - <section id="requests:UngrabButton"> - <title>UngrabButton</title> - <indexterm zone="requests:UngrabButton" significance="preferred"><primary>UngrabButton</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>modifiers</emphasis>: SETofKEYMASK or -<emphasis role='bold'>AnyModifier</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>button</emphasis>: BUTTON or -<emphasis role='bold'>AnyButton</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>grab-window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request releases the passive button/key combination -on the specified window if it was grabbed by this client. -A modifiers argument of -<emphasis role='bold'>AnyModifier</emphasis> -is equivalent to issuing the request for all possible modifier -combinations (including the combination of no modifiers). -A button of -<emphasis role='bold'>AnyButton</emphasis> -is equivalent to issuing the request for all possible buttons. -The request has no effect on an active grab. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeActivePointerGrab"> - <title>ChangeActivePointerGrab</title> - <indexterm zone="requests:ChangeActivePointerGrab" significance="preferred"><primary>ChangeActivePointerGrab</primary></indexterm> - <indexterm zone="requests:ChangeActivePointerGrab"><primary>Active grab</primary><secondary>pointer</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event-mask</emphasis>: SETofPOINTEREVENT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>cursor</emphasis>: CURSOR or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes the specified dynamic parameters if the pointer is -actively grabbed by the client and the specified time is no earlier than the -last-pointer-grab time and no later than the current server time. -The interpretation of event-mask and cursor are the same as in -<link linkend="requests:GrabPointer"><emphasis role='bold'>GrabPointer</emphasis></link>. -This request has no effect on the parameters of any passive grabs established -with -<link linkend="requests:GrabButton"><emphasis role='bold'>GrabButton</emphasis></link>. -<!-- .sp --> -</para> - </section> - <section id="requests:GrabKeyboard"> - <title>GrabKeyboard</title> - <indexterm zone="requests:GrabKeyboard" significance="preferred"><primary>GrabKeyboard</primary></indexterm> - <indexterm zone="requests:GrabKeyboard"><primary>Active grab</primary><secondary>keyboard</secondary></indexterm> - <indexterm zone="requests:GrabKeyboard"><primary>Keyboard</primary><secondary>grabbing</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>grab-window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>owner-events</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pointer-mode</emphasis>, <emphasis remap='I'>keyboard-mode</emphasis>: -{ <emphasis role='bold'>Synchronous</emphasis>, -<emphasis role='bold'>Asynchronous</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -status: -{ <emphasis role='bold'>Success</emphasis>, -<emphasis role='bold'>AlreadyGrabbed</emphasis>, -<emphasis role='bold'>Frozen</emphasis>, -<emphasis role='bold'>InvalidTime</emphasis>, -<emphasis role='bold'>NotViewable</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request actively grabs control of the keyboard. -Further key events are reported only to the grabbing client. -This request overrides any active keyboard grab by this client. -</para> -<para> -If owner-events is -<emphasis role='bold'>False</emphasis>, -all generated key events are reported with respect to grab-window. -If owner-events is -<emphasis role='bold'>True</emphasis> -and if a generated key event would normally be reported to this client, -it is reported normally. -Otherwise, the event is reported with respect to the grab-window. -Both -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link> -and -<link linkend="events:KeyRelease"><emphasis role='bold'>KeyRelease</emphasis></link> -events are always reported, -independent of any event selection made by the client. -</para> -<para> -If keyboard-mode is -<emphasis role='bold'>Asynchronous</emphasis>, -keyboard event processing continues normally. -If the keyboard is currently frozen by this client, -then processing of keyboard events is resumed. -If keyboard-mode is -<emphasis role='bold'>Synchronous</emphasis>, -the state of the keyboard (as seen by means of the protocol) appears to freeze. -No further keyboard events are generated by the server until the -grabbing client issues a releasing -<link linkend="requests:AllowEvents"><emphasis role='bold'>AllowEvents</emphasis></link> -request or until the keyboard grab is released. -Actual keyboard changes are not lost while the keyboard is frozen. -They are simply queued for later processing. -</para> -<para> -If pointer-mode is -<emphasis role='bold'>Asynchronous</emphasis>, -pointer event processing is unaffected by activation of the grab. -If pointer-mode is -<emphasis role='bold'>Synchronous</emphasis>, -the state of the pointer (as seen by means of the protocol) appears to freeze. -No further pointer events are generated by the server -until the grabbing client issues a releasing -<link linkend="requests:AllowEvents"><emphasis role='bold'>AllowEvents</emphasis></link> -request or until the keyboard grab is released. -Actual pointer changes are not lost while the pointer is frozen. -They are simply queued for later processing. -</para> -<para> -This request generates -<link linkend="events:FocusIn"><emphasis role='bold'>FocusIn</emphasis></link> -and -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link> -events. -</para> -<para> -The request fails with status -<emphasis role='bold'>AlreadyGrabbed</emphasis> -if the keyboard is actively grabbed by some other client. -The request fails with status -<emphasis role='bold'>Frozen</emphasis> -if the keyboard is frozen by an active grab of another client. -The request fails with status -<emphasis role='bold'>NotViewable</emphasis> -if grab-window is not viewable. -The request fails with status -<emphasis role='bold'>InvalidTime</emphasis> -if the specified time is earlier than the last-keyboard-grab time -or later than the current server time. -Otherwise, the last-keyboard-grab time is set to the specified time with -<emphasis role='bold'>CurrentTime</emphasis> -replaced by the current server time. -<!-- .sp --> -</para> - </section> - <section id="requests:UngrabKeyboard"> - <title>UngrabKeyboard</title> - <indexterm zone="requests:UngrabKeyboard" significance="preferred"><primary>UngrabKeyboard</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request releases the keyboard if this client has it actively grabbed -(as a result of either -<link linkend="requests:GrabKeyboard"><emphasis role='bold'>GrabKeyboard</emphasis></link> -or -<link linkend="requests:GrabKey"><emphasis role='bold'>GrabKey</emphasis></link>) -and releases any queued events. -The request has no effect if the specified time is earlier than the -last-keyboard-grab time or is later than the current server time. -</para> -<para> -This request generates -<link linkend="events:FocusIn"><emphasis role='bold'>FocusIn</emphasis></link> -and -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link> -events. -</para> -<para> -An -<link linkend="requests:UngrabKeyboard"><emphasis role='bold'>UngrabKeyboard</emphasis></link> -is performed automatically if the event window for an active keyboard grab -becomes not viewable. -<!-- .sp --> -</para> - </section> - <section id="requests:GrabKey"> - <title>GrabKey</title> - <indexterm zone="requests:GrabKey" significance="preferred"><primary>GrabKey</primary></indexterm> - <indexterm zone="requests:GrabKey"><primary>Key</primary><secondary>grabbing</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>key</emphasis>: KEYCODE or -<emphasis role='bold'>AnyKey</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>modifiers</emphasis>: SETofKEYMASK or -<emphasis role='bold'>AnyModifier</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>grab-window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>owner-events</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pointer-mode</emphasis>, <emphasis remap='I'>keyboard-mode</emphasis>: -{ <emphasis role='bold'>Synchronous</emphasis>, -<emphasis role='bold'>Asynchronous</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request establishes a passive grab on the keyboard. -<indexterm zone="requests:GrabKey"><primary>Passive grab</primary><secondary>keyboard</secondary></indexterm> -In the future, -the keyboard is actively grabbed as described in -<link linkend="requests:GrabKeyboard"><emphasis role='bold'>GrabKeyboard</emphasis></link>, -the last-keyboard-grab time is set to the time at which the key was pressed -(as transmitted in the -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link> -event), and the -<emphasis role='bold'>KeyPress</emphasis> -event is reported if all of the following conditions are true: -<!-- .IP bu 5 --> -The keyboard is not grabbed and the specified key -(which can itself be a modifier key) is logically pressed -when the specified modifier keys are logically down, -and no other modifier keys are logically down. -<!-- .IP bu 5 --> -Either the grab-window is an ancestor of (or is) the focus window, -or the grab-window is a descendent of the focus window and contains the pointer. -<!-- .IP bu 5 --> -A passive grab on the same key combination does not exist -on any ancestor of grab-window. -</para> -<para> -The interpretation of the remaining arguments is the same as for -<link linkend="requests:GrabKeyboard"><emphasis role='bold'>GrabKeyboard</emphasis></link>. -The active grab is terminated automatically when the logical state -of the keyboard has the specified key released, -independent of the logical state of modifier keys. -Note that the logical state of a device (as seen by means of the protocol) -may lag the physical state if device event processing is frozen. -</para> -<para> -This request overrides all previous passive grabs by the same client -on the same key combinations on the same window. -A modifier of -<emphasis role='bold'>AnyModifier</emphasis> -is equivalent to issuing the request for all possible modifier combinations -(including the combination of no modifiers). -It is not required that all modifiers specified have -currently assigned keycodes. -A key of -<emphasis role='bold'>AnyKey</emphasis> -is equivalent to issuing the request for all possible keycodes. -Otherwise, the key must be in the range specified by min-keycode -and max-keycode in the connection setup (or a -<emphasis role='bold'>Value</emphasis> -error results). -</para> -<para> -An -<emphasis role='bold'>Access</emphasis> -error is generated if some other client has issued a -<emphasis role='bold'>GrabKey</emphasis> -with the same key combination on the same window. -When using -<emphasis role='bold'>AnyModifier</emphasis> -or -<emphasis role='bold'>AnyKey</emphasis>, -the request fails completely (no grabs are established), -and an -<emphasis role='bold'>Access</emphasis> -error is generated if there is a conflicting grab for any combination. -<!-- .sp --> -</para> - </section> - <section id="requests:UngrabKey"> - <title>UngrabKey</title> - <indexterm zone="requests:UngrabKey" significance="preferred"><primary>UngrabKey</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>key</emphasis>: KEYCODE or -<emphasis role='bold'>AnyKey</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>modifiers</emphasis>: SETofKEYMASK or -<emphasis role='bold'>AnyModifier</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>grab-window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request releases the key combination on the specified window -if it was grabbed by this client. -A modifiers argument of -<emphasis role='bold'>AnyModifier</emphasis> -is equivalent to issuing the request for all possible modifier combinations -(including the combination of no modifiers). -A key of -<emphasis role='bold'>AnyKey</emphasis> -is equivalent to issuing the request for all possible keycodes. -This request has no effect on an active grab. -<!-- .sp --> -</para> - </section> - <section id="requests:AllowEvents"> - <title>AllowEvents</title> - <indexterm zone="requests:AllowEvents" significance="preferred"><primary>AllowEvents</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>AsyncPointer</emphasis>, -<emphasis role='bold'>SyncPointer</emphasis>, -<emphasis role='bold'>ReplayPointer</emphasis>, -<emphasis role='bold'>AsyncKeyboard</emphasis>, - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>SyncKeyboard</emphasis>, -<emphasis role='bold'>ReplayKeyboard</emphasis>, -<emphasis role='bold'>AsyncBoth</emphasis>, -<emphasis role='bold'>SyncBoth</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request releases some queued events if the client has caused a device to -freeze. -The request has no effect if the specified time is earlier -than the last-grab time of the most recent active grab for the client -or if the specified time is later than the current server time. -</para> -<para> -For -<emphasis role='bold'>AsyncPointer</emphasis>, -if the pointer is frozen by the client, -pointer event processing continues normally. -If the pointer is frozen twice by the client on behalf of two separate grabs, -<emphasis role='bold'>AsyncPointer</emphasis> -thaws for both. -<emphasis role='bold'>AsyncPointer</emphasis> -has no effect if the pointer is not frozen by the client, -but the pointer need not be grabbed by the client. -</para> -<para> -For -<emphasis role='bold'>SyncPointer</emphasis>, -if the pointer is frozen and actively grabbed by the client, -pointer event processing continues normally until the next -<link linkend="events:ButtonPress"><emphasis role='bold'>ButtonPress</emphasis></link> -or -<link linkend="events:ButtonRelease"><emphasis role='bold'>ButtonRelease</emphasis></link> -event is reported to the client, -at which time the pointer again appears to freeze. -However, if the reported event causes the pointer grab to be released, -then the pointer does not freeze. -<emphasis role='bold'>SyncPointer</emphasis> -has no effect if the pointer is not frozen by the -client or if the pointer is not grabbed by the client. -</para> -<para> -For -<emphasis role='bold'>ReplayPointer</emphasis>, -if the pointer is actively grabbed by the client and -is frozen as the result of an event having been sent to the client -(either from the activation of a -<link linkend="requests:GrabButton"><emphasis role='bold'>GrabButton</emphasis></link> -or from a previous -<emphasis role='bold'>AllowEvents</emphasis> -with mode -<emphasis role='bold'>SyncPointer</emphasis> -but not from a -<link linkend="requests:GrabPointer"><emphasis role='bold'>GrabPointer</emphasis></link>), -then the pointer grab is released and that event is completely reprocessed, -this time ignoring any passive grabs at or above (towards the root) -the grab-window of the grab just released. -The request has no effect if the pointer is not grabbed by the client -or if the pointer is not frozen as the result of an event. -</para> -<para> -For -<emphasis role='bold'>AsyncKeyboard</emphasis>, -if the keyboard is frozen by the client, -keyboard event processing continues normally. -If the keyboard is frozen twice by the client on behalf of two separate grabs, -<emphasis role='bold'>AsyncKeyboard</emphasis> -thaws for both. -<emphasis role='bold'>AsyncKeyboard</emphasis> -has no effect if the keyboard is not frozen by the client, -but the keyboard need not be grabbed by the client. -</para> -<para> -For -<emphasis role='bold'>SyncKeyboard</emphasis>, -if the keyboard is frozen and actively grabbed by the client, -keyboard event processing continues normally until the next -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link> -or -<link linkend="events:KeyRelease"><emphasis role='bold'>KeyRelease</emphasis></link> -event is reported to the client, -at which time the keyboard again appears to freeze. -However, if the reported event causes the keyboard grab to be released, -then the keyboard does not freeze. -<emphasis role='bold'>SyncKeyboard</emphasis> -has no effect if the keyboard is not frozen by the client or -if the keyboard is not grabbed by the client. -</para> -<para> -For -<emphasis role='bold'>ReplayKeyboard</emphasis>, -if the keyboard is actively grabbed by the client -and is frozen as the result of an event having been sent to the client -(either from the activation of a -<link linkend="requests:GrabKey"><emphasis role='bold'>GrabKey</emphasis></link> -or from a previous -<emphasis role='bold'>AllowEvents</emphasis> -with mode -<emphasis role='bold'>SyncKeyboard</emphasis> -but not from a -<link linkend="requests:GrabKeyboard"><emphasis role='bold'>GrabKeyboard</emphasis></link>), -then the keyboard grab is released and that event is completely reprocessed, -this time ignoring any passive grabs at or above (towards the root) -the grab-window of the grab just released. -The request has no effect if the keyboard is not grabbed by the client -or if the keyboard is not frozen as the result of an event. -</para> -<para> -For -<emphasis role='bold'>SyncBoth</emphasis>, -if both pointer and keyboard are frozen by the client, -event processing (for both devices) continues normally until the next -<link linkend="events:ButtonPress"><emphasis role='bold'>ButtonPress</emphasis></link>, -<link linkend="events:ButtonRelease"><emphasis role='bold'>ButtonRelease</emphasis></link>, -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link>, -or -<link linkend="events:KeyRelease"><emphasis role='bold'>KeyRelease</emphasis></link> -event is reported to the client for a grabbed device -(button event for the pointer, key event for the keyboard), -at which time the devices again appear to freeze. -However, if the reported event causes the grab to be released, -then the devices do not freeze (but if the other device is still -grabbed, then a subsequent event for it will still cause both devices -to freeze). -<emphasis role='bold'>SyncBoth</emphasis> -has no effect unless both pointer and keyboard are frozen by the client. -If the pointer or keyboard is frozen twice by the client on behalf -of two separate grabs, -<emphasis role='bold'>SyncBoth</emphasis> -thaws for both (but a subsequent freeze for -<emphasis role='bold'>SyncBoth</emphasis> -will only freeze each device once). -</para> -<para> -For -<emphasis role='bold'>AsyncBoth</emphasis>, -if the pointer and the keyboard are frozen by the client, -event processing for both devices continues normally. -If a device is frozen twice by the client on behalf of two separate grabs, -<emphasis role='bold'>AsyncBoth</emphasis> -thaws for both. -<emphasis role='bold'>AsyncBoth</emphasis> -has no effect unless both pointer and keyboard are frozen by the client. -</para> -<para> -<emphasis role='bold'>AsyncPointer</emphasis>, -<emphasis role='bold'>SyncPointer</emphasis>, -and -<emphasis role='bold'>ReplayPointer</emphasis> -have no effect on processing of keyboard events. -<emphasis role='bold'>AsyncKeyboard</emphasis>, -<emphasis role='bold'>SyncKeyboard</emphasis>, -and -<emphasis role='bold'>ReplayKeyboard</emphasis> -have no effect on processing of pointer events. -</para> -<para> -It is possible for both a pointer grab and a keyboard grab to be active -simultaneously (by the same or different clients). -When a device is frozen on behalf of either grab, -no event processing is performed for the device. -It is possible for a single device to be frozen because of both grabs. -In this case, the freeze must be released on behalf of both grabs -before events can again be processed. -If a device is frozen twice by a single client, then a single -<emphasis role='bold'>AllowEvents</emphasis> -releases both. -<!-- .sp --> -</para> - </section> - <section id="requests:GrabServer"> - <title>GrabServer</title> - <indexterm zone="requests:GrabServer" significance="preferred"><primary>GrabServer</primary></indexterm> - <indexterm zone="requests:GrabServer"><primary>Server</primary><secondary>grabbing</secondary></indexterm> -<para> -This request disables processing of requests and close-downs on all -connections other than the one this request arrived on. -<!-- .sp --> -</para> - </section> - <section id="requests:UngrabServer"> - <title>UngrabServer</title> - <indexterm zone="requests:UngrabServer" significance="preferred"><primary>UngrabServer</primary></indexterm> -<para> -This request restarts processing of requests and close-downs -on other connections. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryPointer"> - <title>QueryPointer</title> - <indexterm zone="requests:QueryPointer" significance="preferred"><primary>QueryPointer</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -root: WINDOW - </entry> - </row> - <row> - <entry> -child: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -same-screen: BOOL - </entry> - </row> - <row> - <entry> -root-x, root-y, win-x, win-y: INT16 - </entry> - </row> - <row> - <entry> -mask: SETofKEYBUTMASK -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The root window the pointer is logically on and the pointer coordinates -relative to the root's origin are returned. -If same-screen is -<emphasis role='bold'>False</emphasis>, -then the pointer is not on the same screen as the argument window, -child is -<emphasis role='bold'>None</emphasis>, -and win-x and win-y are zero. -If same-screen is -<emphasis role='bold'>True</emphasis>, -then win-x and win-y are the pointer coordinates relative to the -argument window's origin, and child is the child containing the -pointer, if any. -The current logical state of the modifier keys and the buttons -are also returned. -Note that the logical state of a device (as seen by means of the protocol) -may lag the physical state if device event processing is frozen. -<!-- .sp --> -</para> - </section> - <section id="requests:GetMotionEvents"> - <title>GetMotionEvents</title> - <indexterm zone="requests:GetMotionEvents" significance="preferred"><primary>GetMotionEvents</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>start</emphasis>, -<emphasis remap='I'>stop</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -events: LISTofTIMECOORD -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -where: - </entry> - </row> - <row> - <entry> -TIMECOORD: [x, y: INT16 - </entry> - </row> - <row> - <entry> - time: TIMESTAMP] -<!-- .TE --> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns all events in the motion history buffer that fall -between the specified start and stop times (inclusive) -and that have coordinates that lie within (including borders) -the specified window at its present placement. -The x and y coordinates are reported relative to the origin of the window. -</para> -<para> -If the start time is later than the stop time or if the start time is -in the future, no events are returned. -If the stop time is in the future, it is equivalent to specifying -<emphasis role='bold'>CurrentTime</emphasis>. -<!-- .sp --> -</para> - </section> - <section id="requests:TranslateCoordinates"> - <title>TranslateCoordinates</title> - <indexterm zone="requests:TranslateCoordinates" significance="preferred"><primary>TranslateCoordinates</primary></indexterm> - <indexterm zone="glossary:Coordinate_system"><primary>Coordinate system</primary><secondary>translating</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>src-window</emphasis>, <emphasis remap='I'>dst-window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>src-x</emphasis>, <emphasis remap='I'>src-y</emphasis>: INT16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -same-screen: BOOL - </entry> - </row> - <row> - <entry> -child: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -dst-x, dst-y: INT16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The src-x and src-y coordinates are taken relative to src-window's -origin and are returned as dst-x and dst-y coordinates relative to -dst-window's origin. -If same-screen is -<emphasis role='bold'>False</emphasis>, -then src-window and dst-window are on different screens, -and dst-x and dst-y are zero. -If the coordinates are contained in a mapped child of dst-window, -then that child is returned. -<!-- .sp --> -</para> - </section> - <section id="requests:WarpPointer"> - <title>WarpPointer</title> - <indexterm zone="requests:WarpPointer" significance="preferred"><primary>WarpPointer</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>src-window</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dst-window</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>src-x</emphasis>, <emphasis remap='I'>src-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>src-width</emphasis>, <emphasis remap='I'>src-height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dst-x</emphasis>, <emphasis remap='I'>dst-y</emphasis>: INT16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If dst-window is -<emphasis role='bold'>None</emphasis>, -this request moves the pointer by offsets [dst-x, dst-y] -relative to the current position of the pointer. -If dst-window is a window, -this request moves the pointer to [dst-x, dst-y] relative to dst-window's -origin. -However, if src-window is not -<emphasis role='bold'>None</emphasis>, -the move only takes place if src-window contains the pointer -and the pointer is contained in the specified rectangle of src-window. -</para> -<para> -The src-x and src-y coordinates are relative to src-window's origin. -If src-height is zero, -it is replaced with the current height of src-window minus src-y. -If src-width is zero, -it is replaced with the current width of src-window minus src-x. -</para> -<para> -This request cannot be used to move the pointer outside the confine-to -window of an active pointer grab. -An attempt will only move the pointer as far as the closest edge -of the confine-to window. -</para> -<para> -This request will generate events just as if the user had instantaneously -moved the pointer. -<!-- .sp --> -</para> - </section> - <section id="requests:SetInputFocus"> - <title>SetInputFocus</title> - <indexterm zone="requests:SetInputFocus" significance="preferred"><primary>SetInputFocus</primary></indexterm> - <indexterm zone="requests:SetInputFocus"><primary>Input focus</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>focus</emphasis>: WINDOW or -<emphasis role='bold'>PointerRoot</emphasis> -or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>revert-to</emphasis>: -{ <emphasis role='bold'>Parent</emphasis>, -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>None</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes the input focus and the last-focus-change time. -The request has no effect if the specified time is earlier than the current -last-focus-change time or is later than the current server time. -Otherwise, the last-focus-change time is set to the specified time -with -<emphasis role='bold'>CurrentTime</emphasis> -replaced by the current server time. -</para> -<para> -If -<emphasis role='bold'>None</emphasis> -is specified as the focus, -all keyboard events are discarded until a new focus window is set. -In this case, the revert-to argument is ignored. -</para> -<para> -If a window is specified as the focus, -it becomes the keyboard's focus window. -If a generated keyboard event would normally be reported to -this window or one of its inferiors, the event is reported normally. -Otherwise, the event is reported with respect to the focus window. -</para> -<para> -If -<emphasis role='bold'>PointerRoot</emphasis> -is specified as the focus, -the focus window is dynamically taken to be the root window of whatever screen -the pointer is on at each keyboard event. -In this case, -the revert-to argument is ignored. -</para> -<para> -This request generates -<link linkend="events:FocusIn"><emphasis role='bold'>FocusIn</emphasis></link> -and -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link> -events. -</para> -<para> -The specified focus window must be viewable at the time of the request (or a -<emphasis role='bold'>Match</emphasis> -error results). -If the focus window later becomes not viewable, -the new focus window depends on the revert-to argument. -If revert-to is -<emphasis role='bold'>Parent</emphasis>, -the focus reverts to the parent (or the closest viewable ancestor) -and the new revert-to value is taken to be -<emphasis role='bold'>None</emphasis>. -If revert-to is -<emphasis role='bold'>PointerRoot</emphasis> -or -<emphasis role='bold'>None</emphasis>, -the focus reverts to that value. -When the focus reverts, -<link linkend="events:FocusIn"><emphasis role='bold'>FocusIn</emphasis></link> -and -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link> -events are generated, -but the last-focus-change time is not affected. -<!-- .sp --> -</para> - </section> - <section id="requests:GetInputFocus"> - <title>GetInputFocus</title> - <indexterm zone="requests:GetInputFocus" significance="preferred"><primary>GetInputFocus</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -focus: WINDOW or -<emphasis role='bold'>PointerRoot</emphasis> -or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -revert-to: -{ <emphasis role='bold'>Parent</emphasis>, -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>None</emphasis>} -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current focus state. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryKeymap"> - <title>QueryKeymap</title> - <indexterm zone="requests:QueryKeymap" significance="preferred"><primary>QueryKeymap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -keys: LISTofCARD8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns a bit vector for the logical state of the keyboard. -Each bit set to 1 indicates that the corresponding key is currently pressed. -The vector is represented as 32 bytes. -Byte N (from 0) contains the bits for keys 8N to 8N + 7 -with the least significant bit in the byte representing key 8N. -Note that the logical state of a device (as seen by means of the protocol) -may lag the physical state if device event processing is frozen. -<!-- .sp --> -</para> - </section> - <section id="requests:OpenFont"> - <title>OpenFont</title> - <indexterm zone="requests:OpenFont" significance="preferred"><primary>OpenFont</primary></indexterm> - <indexterm zone="requests:OpenFont"><primary>Font</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>fid</emphasis>: FONT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>name</emphasis>: STRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Name</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request loads the specified font, if necessary, -and associates identifier fid with it. -The font name should use the ISO Latin-1 encoding, -and uppercase and lowercase do not matter. -When the characters <quote>?</quote> and <quote>*</quote> are used in a font name, a -pattern match is performed and any matching font is used. -In the pattern, -the <quote>?</quote> character (octal value 77) will match any single character, -and the <quote>*</quote> character (octal value 52) will match any number -of characters. -A structured format for font names is specified in the -X.Org standard <citetitle>X Logical Font Description Conventions</citetitle>. -</para> -<para> -Fonts are not associated with a particular screen -and can be stored as a component of any graphics context. -<!-- .sp --> -</para> - </section> - <section id="requests:CloseFont"> - <title>CloseFont</title> - <indexterm zone="requests:CloseFont" significance="preferred"><primary>CloseFont</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>font</emphasis>: FONT -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Font</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request deletes the association between the resource ID and the font. -The font itself will be freed when no other resource references it. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryFont"> - <title>QueryFont</title> - <indexterm zone="requests:QueryFont" significance="preferred"><primary>QueryFont</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='3' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='1.0*'/> - <colspec colname='c3' colwidth='1.0*'/> - <spanspec spanname='all' namest='c1' nameend='c3'/> - <tbody> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -<emphasis remap='I'>font</emphasis>: FONTABLE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry spanname='all'> - ▶ - </entry> - </row> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -font-info: FONTINFO - </entry> - </row> - <row> - <entry spanname='all'> -char-infos: LISTofCHARINFO -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry valign='top' morerows='18'> -<!-- .in +.2i --> -where: - </entry> - </row> - <row> - <entry valign='top' morerows='9'> -FONTINFO: - </entry> - <entry> -[draw-direction: -{ <emphasis role='bold'>LeftToRight</emphasis>, -<emphasis role='bold'>RightToLeft</emphasis> } - </entry> - </row> - <row> - <entry> -min-char-or-byte2, max-char-or-byte2: CARD16 - </entry> - </row> - <row> - <entry> -min-byte1, max-byte1: CARD8 - </entry> - </row> - <row> - <entry> -all-chars-exist: BOOL - </entry> - </row> - <row> - <entry> -default-char: CARD16 - </entry> - </row> - <row> - <entry> -min-bounds: CHARINFO - </entry> - </row> - <row> - <entry> -max-bounds: CHARINFO - </entry> - </row> - <row> - <entry> -font-ascent: INT16 - </entry> - </row> - <row> - <entry> -font-descent: INT16 - </entry> - </row> - <row> - <entry> -properties: LISTofFONTPROP] - </entry> - </row> - <row> - <entry valign='top' morerows='1'> -FONTPROP: - </entry> - <entry> -[name: ATOM - </entry> - </row> - <row> - <entry> -value: <32-bit-value>] - </entry> - </row> - <row> - <entry valign='top' morerows='5'> -CHARINFO: - </entry> - <entry> -[left-side-bearing: INT16 - </entry> - </row> - <row> - <entry> -right-side-bearing: INT16 - </entry> - </row> - <row> - <entry> -character-width: INT16 - </entry> - </row> - <row> - <entry> -ascent: INT16 - </entry> - </row> - <row> - <entry> -descent: INT16 - </entry> - </row> - <row> - <entry> -attributes: CARD16] - </entry> - </row> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Font</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns logical information about a font. -If a gcontext is given for font, -the currently contained font is used. -</para> -<para> -The draw-direction is just a hint -and indicates whether most char-infos have a positive, -<emphasis role='bold'>LeftToRight</emphasis>, -or a negative, -<emphasis role='bold'>RightToLeft</emphasis>, -character-width metric. -The core protocol defines no support for vertical text. -</para> -<para> -If min-byte1 and max-byte1 are both zero, -then min-char-or-byte2 specifies the linear character index corresponding -to the first element of char-infos, -and max-char-or-byte2 specifies the linear character index of the last element. -If either min-byte1 or max-byte1 are nonzero, -then both min-char-or-byte2 and max-char-or-byte2 will be less than 256, -and the 2-byte character index values corresponding to char-infos element N -(counting from 0) are: -<literallayout class="monospaced"> - byte1 = N/D + min-byte1 - byte2 = N\\D + min-char-or-byte2 -</literallayout> -</para> -<para> -where: -<literallayout class="monospaced"> - D = max-char-or-byte2 - min-char-or-byte2 + 1 - / = integer division - \\ = integer modulus -</literallayout> -</para> -<para> -If char-infos has length zero, -then min-bounds and max-bounds will be identical, -and the effective char-infos is one filled with this char-info, of length: -<literallayout class="monospaced"> - L = D * (max-byte1 - min-byte1 + 1) -</literallayout> -</para> -<para> -That is, -all glyphs in the specified linear or matrix range have the same information, -as given by min-bounds (and max-bounds). -If all-chars-exist is -<emphasis role='bold'>True</emphasis>, -then all characters in char-infos have nonzero bounding boxes. -</para> -<para> -The default-char specifies the character that will be used when an -undefined or nonexistent character is used. -Note that default-char is a CARD16, not CHAR2B. -For a font using 2-byte matrix format, -the default-char has byte1 in the most significant byte -and byte2 in the least significant byte. -If the default-char itself specifies an undefined or nonexistent character, -then no printing is performed for an undefined or nonexistent character. -</para> -<para> -The min-bounds and max-bounds contain the minimum and maximum values of -each individual CHARINFO component over all char-infos (ignoring -nonexistent characters). -The bounding box of the font (that is, the -smallest rectangle enclosing the shape obtained by superimposing all -characters at the same origin [x,y]) has its upper-left coordinate at: -<literallayout class="monospaced"> - [x + min-bounds.left-side-bearing, y - max-bounds.ascent] -</literallayout> -with a width of: -<literallayout class="monospaced"> - max-bounds.right-side-bearing - min-bounds.left-side-bearing -</literallayout> -</para> -<para> -and a height of: -<literallayout class="monospaced"> - max-bounds.ascent + max-bounds.descent -</literallayout> -</para> -<para> -The font-ascent is the logical extent of the font above the baseline -and is used for determining line spacing. -Specific characters may extend beyond this. -The font-descent is the logical extent of the font at or below the baseline -and is used for determining line spacing. -Specific characters may extend beyond this. -If the baseline is at Y-coordinate y, -then the logical extent of the font is inclusive -between the Y-coordinate values (y - font-ascent) and (y + font-descent - 1). -</para> -<para> -A font is not guaranteed to have any properties. -The interpretation of the property value (for example, INT32, CARD32) -must be derived from <emphasis remap='I'>a priori</emphasis> knowledge of the property. -A basic set of font properties is specified in the X.Org -standard <citetitle>X Logical Font Description Conventions</citetitle>. -</para> -<para> -For a character origin at [x,y], -the bounding box of a character (that is, -the smallest rectangle enclosing the character's shape), described in -terms of CHARINFO components, is a rectangle with its upper-left corner at: -<literallayout class="monospaced"> - [x + left-side-bearing, y - ascent] -</literallayout> -</para> -<para> -with a width of: -<literallayout class="monospaced"> - right-side-bearing - left-side-bearing -</literallayout> -</para> -<para> -and a height of: -<literallayout class="monospaced"> - ascent + descent -</literallayout> -</para> -<para> -and the origin for the next character is defined to be: -<literallayout class="monospaced"> - [x + character-width, y] -</literallayout> -</para> -<para> -Note that the baseline is logically viewed as being just below -nondescending characters (when descent is zero, only pixels with -Y-coordinates less than y are drawn) and that the origin is logically -viewed as being coincident with the left edge of a nonkerned character -(when left-side-bearing is zero, no pixels with X-coordinate less than -x are drawn). -</para> -<para> -Note that CHARINFO metric values can be negative. -</para> -<para> -A nonexistent character is represented with all CHARINFO components -zero. -</para> -<para> -The interpretation of the per-character attributes field is -server-dependent. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryTextExtents"> - <title>QueryTextExtents</title> - <indexterm zone="requests:QueryTextExtents" significance="preferred"><primary>QueryTextExtents</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>font</emphasis>: FONTABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>string</emphasis>: STRING16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -draw-direction: -{ <emphasis role='bold'>LeftToRight</emphasis>, -<emphasis role='bold'>RightToLeft</emphasis>} - </entry> - </row> - <row> - <entry> -font-ascent: INT16 - </entry> - </row> - <row> - <entry> -font-descent: INT16 - </entry> - </row> - <row> - <entry> -overall-ascent: INT16 - </entry> - </row> - <row> - <entry> -overall-descent: INT16 - </entry> - </row> - <row> - <entry> -overall-width: INT32 - </entry> - </row> - <row> - <entry> -overall-left: INT32 - </entry> - </row> - <row> - <entry> -overall-right: INT32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Font</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the logical extents of the specified string of characters -in the specified font. -If a gcontext is given for font, -the currently contained font is used. -The draw-direction, font-ascent, and font-descent are the same as -described in -<link linkend="requests:QueryFont"><emphasis role='bold'>QueryFont</emphasis></link>. -The overall-ascent is the maximum of the ascent metrics of all characters -in the string, and the overall-descent is the maximum of the descent metrics. -The overall-width is the sum of the character-width metrics of all characters -in the string. -For each character in the string, -let W be the sum of the character-width metrics of all characters preceding it -in the string, -let L be the left-side-bearing metric of the character plus W, -and let R be the right-side-bearing metric of the character plus W. -The overall-left is the minimum L of all characters in the string, -and the overall-right is the maximum R. -</para> -<para> -For fonts defined with linear indexing rather than 2-byte matrix indexing, -the server will interpret each CHAR2B as a 16-bit number that -has been transmitted most significant byte first (that is, byte1 of the -CHAR2B is taken as the most significant byte). -</para> -<para> -Characters with all zero metrics are ignored. -If the font has no defined default-char, -then undefined characters in the string are also ignored. -<!-- .sp --> -</para> - </section> - <section id="requests:ListFonts"> - <title>ListFonts</title> - <indexterm zone="requests:ListFonts" significance="preferred"><primary>ListFonts</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>pattern</emphasis>: STRING8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>max-names</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -names: LISTofSTRING8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns a list -of available font names (as controlled by the font search path; see -<link linkend="requests:SetFontPath"><emphasis role='bold'>SetFontPath</emphasis></link> -request) -that match the pattern. -At most, max-names names will be returned. -The pattern should use the ISO Latin-1 encoding, -and uppercase and lowercase do not matter. -In the pattern, -the <quote>?</quote> character (octal value 77) will match any single character, -and the <quote>*</quote> character (octal value 52) will match any number -of characters. -The returned names are in lowercase. -<!-- .sp --> -</para> - </section> - <section id="requests:ListFontsWithInfo"> - <title>ListFontsWithInfo</title> - <indexterm zone="requests:ListFontsWithInfo" significance="preferred"><primary>ListFontsWithInfo</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>pattern</emphasis>: STRING8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>max-names</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -name: STRING8 - </entry> - </row> - <row> - <entry> -info FONTINFO - </entry> - </row> - <row> - <entry> -replies-hint: CARD32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -where: -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -FONTINFO: <same type definition as in -<link linkend="requests:QueryFont"><emphasis role='bold'>QueryFont</emphasis></link>> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request is similar to -<link linkend="requests:ListFonts"><emphasis role='bold'>ListFonts</emphasis></link>, -but it also returns information about each font. -The information returned for each font is identical to what -<link linkend="requests:QueryFont"><emphasis role='bold'>QueryFont</emphasis></link> -would return except that the per-character metrics are not returned. -Note that this request can generate multiple replies. -With each reply, -replies-hint may provide an indication of how many more fonts will be returned. -This number is a hint only and may be larger or smaller than -the number of fonts actually returned. -A zero value does not guarantee that no more fonts will be returned. -After the font replies, -a reply with a zero-length name is sent to indicate the end of the reply -sequence. -<!-- .sp --> -</para> - </section> - <section id="requests:SetFontPath"> - <title>SetFontPath</title> - <indexterm zone="requests:SetFontPath" significance="preferred"><primary>SetFontPath</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>path</emphasis>: LISTofSTRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request defines the search path for font lookup. -There is only one search path per server, not one per client. -The interpretation of the strings is operating-system-dependent, -but the strings are intended to specify directories to be searched in the -order listed. -</para> -<para> -Setting the path to the empty list restores the default path defined -for the server. -</para> -<para> -As a side effect of executing this request, -the server is guaranteed to flush all cached information about fonts -for which there currently are no explicit resource IDs allocated. -</para> -<para> -The meaning of an error from this request is system specific. -<!-- .sp --> -</para> - </section> - <section id="requests:GetFontPath"> - <title>GetFontPath</title> - <indexterm zone="requests:GetFontPath" significance="preferred"><primary>GetFontPath</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -path: LISTofSTRING8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current search path for fonts. -<!-- .sp --> -</para> - </section> - <section id="requests:CreatePixmap"> - <title>CreatePixmap</title> - <indexterm zone="requests:CreatePixmap" significance="preferred"><primary>CreatePixmap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>pid</emphasis>: PIXMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>depth</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request creates a pixmap and assigns the identifier pid to it. -The width and height must be nonzero (or a -<emphasis role='bold'>Value</emphasis> -error results). -The depth must be one of the depths supported by the root of the specified -drawable (or a -<emphasis role='bold'>Value</emphasis> -error results). -The initial contents of the pixmap are undefined. -</para> -<para> -It is legal to pass an -<emphasis role='bold'>InputOnly</emphasis> -window as a drawable to this request. -<!-- .sp --> -</para> - </section> - <section id="requests:FreePixmap"> - <title>FreePixmap</title> - <indexterm zone="requests:FreePixmap" significance="preferred"><primary>FreePixmap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>pixmap</emphasis>: PIXMAP -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Pixmap</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request deletes the association between the resource ID and the pixmap. -The pixmap storage will be freed when no other resource references it. -<!-- .sp --> -</para> - </section> - <section id="requests:CreateGC"> - <title>CreateGC</title> - <indexterm zone="requests:CreateGC" significance="preferred"><primary>CreateGC</primary></indexterm> - <indexterm zone="requests:CreateGC"><primary>Graphics context</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cid</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Pixmap</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -This request creates a graphics context -and assigns the identifier cid to it. -The gcontext can be used with any destination drawable having the same root -and depth as the specified drawable; -use with other drawables results in a -<emphasis role='bold'>Match</emphasis> -error. -</para> -<para> -The value-mask and value-list specify which components are to be -explicitly initialized. -The context components are: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Component</entry> - <entry>Type</entry> - </row> - </thead> - <tbody> - <row> - <entry>function</entry> - <entry> -{ <emphasis role='bold'>Clear</emphasis>, -<emphasis role='bold'>And</emphasis>, -<emphasis role='bold'>AndReverse</emphasis>, -<emphasis role='bold'>Copy</emphasis>, -<emphasis role='bold'>AndInverted</emphasis>, -<emphasis role='bold'>NoOp</emphasis>, -<emphasis role='bold'>Xor</emphasis>, -<emphasis role='bold'>Or</emphasis>, -<emphasis role='bold'>Nor</emphasis>, -<emphasis role='bold'>Equiv</emphasis>, -<emphasis role='bold'>Invert</emphasis>, -<emphasis role='bold'>OrReverse</emphasis>, -<emphasis role='bold'>CopyInverted</emphasis>, -<emphasis role='bold'>OrInverted</emphasis>, -<emphasis role='bold'>Nand</emphasis>, -<emphasis role='bold'>Set</emphasis> } - </entry> - </row> - <row> - <entry>plane-mask</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>foreground</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>background</entry> - <entry>CARD32</entry> - </row> - <row> - <entry>line-width</entry> - <entry>CARD16</entry> - </row> - <row> - <entry>line-style</entry> - <entry> -{ <emphasis role='bold'>Solid</emphasis>, -<emphasis role='bold'>OnOffDash</emphasis>, -<emphasis role='bold'>DoubleDash</emphasis> } - </entry> - </row> - <row> - <entry>cap-style</entry> - <entry> -{ <emphasis role='bold'>NotLast</emphasis>, -<emphasis role='bold'>Butt</emphasis>, -<emphasis role='bold'>Round</emphasis>, -<emphasis role='bold'>Projecting</emphasis> } - </entry> - </row> - <row> - <entry>join-style</entry> - <entry> -{ <emphasis role='bold'>Miter</emphasis>, -<emphasis role='bold'>Round</emphasis>, -<emphasis role='bold'>Bevel</emphasis> } - </entry> - </row> - <row> - <entry>fill-style</entry> - <entry> -{ <emphasis role='bold'>Solid</emphasis>, -<emphasis role='bold'>Tiled</emphasis>, -<emphasis role='bold'>OpaqueStippled</emphasis>, -<emphasis role='bold'>Stippled</emphasis> } - </entry> - </row> - <row> - <entry>fill-rule</entry> - <entry> -{ <emphasis role='bold'>EvenOdd</emphasis>, -<emphasis role='bold'>Winding</emphasis> } - </entry> - </row> - <row> - <entry>arc-mode</entry> - <entry> -{ <emphasis role='bold'>Chord</emphasis>, -<emphasis role='bold'>PieSlice</emphasis> } - </entry> - </row> - <row> - <entry>tile</entry> - <entry>PIXMAP</entry> - </row> - <row> - <entry>stipple</entry> - <entry>PIXMAP</entry> - </row> - <row> - <entry>tile-stipple-x-origin</entry> - <entry>INT16</entry> - </row> - <row> - <entry>tile-stipple-y-origin</entry> - <entry>INT16</entry> - </row> - <row> - <entry>font</entry> - <entry>FONT</entry> - </row> - <row> - <entry>subwindow-mode</entry> - <entry> -{ <emphasis role='bold'>ClipByChildren</emphasis>, -<emphasis role='bold'>IncludeInferiors</emphasis> } - </entry> - </row> - <row> - <entry>graphics-exposures</entry> - <entry>BOOL</entry> - </row> - <row> - <entry>clip-x-origin</entry> - <entry>INT16</entry> - </row> - <row> - <entry>clip-y-origin</entry> - <entry>INT16</entry> - </row> - <row> - <entry>clip-mask</entry> - <entry> -PIXMAP or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry>dash-offset</entry> - <entry>CARD16</entry> - </row> - <row> - <entry>dashes</entry> - <entry>CARD8</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para id="requests:CreateGC:plane-mask"> -<indexterm zone="requests:CreateGC:plane-mask"><primary>Plane</primary><secondary>mask</secondary></indexterm> -In graphics operations, -given a source and destination pixel, -the result is computed bitwise on corresponding bits of the pixels; -that is, a Boolean operation is performed in each bit plane. -The plane-mask restricts the operation to a subset of planes, -so the result is: -</para> - -<literallayout class="monospaced"> - ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask)) -</literallayout> - -<para> -Range checking is not performed on the values for foreground, background, -or plane-mask. -They are simply truncated to the appropriate number of bits. -</para> - -<para id="requests:CreateGC:function"> -The meanings of the functions are: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Function</entry> - <entry>Operation</entry> - </row> - </thead> - <tbody> - <row> - <entry> -<emphasis role='bold'>Clear</emphasis> - </entry> - <entry>0</entry> - </row> - <row> - <entry> -<emphasis role='bold'>And</emphasis> - </entry> - <entry>src AND dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>AndReverse</emphasis> - </entry> - <entry>src AND (NOT dst)</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Copy</emphasis> - </entry> - <entry>src</entry> - </row> - <row> - <entry> -<emphasis role='bold'>AndInverted</emphasis> - </entry> - <entry>(NOT src) AND dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>NoOp</emphasis> - </entry> - <entry>dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Xor</emphasis> - </entry> - <entry>src XOR dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Or</emphasis> - </entry> - <entry>src OR dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Nor</emphasis> - </entry> - <entry>(NOT src) AND (NOT dst)</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Equiv</emphasis> - </entry> - <entry>(NOT src) XOR dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Invert</emphasis> - </entry> - <entry>NOT dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>OrReverse</emphasis> - </entry> - <entry>src OR (NOT dst)</entry> - </row> - <row> - <entry> -<emphasis role='bold'>CopyInverted</emphasis> - </entry> - <entry>NOT src</entry> - </row> - <row> - <entry> -<emphasis role='bold'>OrInverted</emphasis> - </entry> - <entry>(NOT src) OR dst</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Nand</emphasis> - </entry> - <entry>(NOT src) OR (NOT dst)</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Set</emphasis> - </entry> - <entry>1</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para id="requests:CreateGC:line-width"> -<indexterm zone="requests:CreateGC:line-width"><primary>Line</primary><secondary>drawing</secondary></indexterm> -The line-width is measured in pixels and can be greater than or equal to -one, a wide line, or the special value zero, a thin line. -</para> - -<para> -Wide lines are drawn centered on the path described by the graphics request. -Unless otherwise specified by the join or cap style, -the bounding box of a wide line with endpoints [x1, y1], [x2, y2] and -width w is a rectangle with vertices at the following real coordinates: -</para> - -<literallayout class="monospaced"> - [x1-(w*sn/2), y1+(w*cs/2)], [x1+(w*sn/2), y1-(w*cs/2)], - [x2-(w*sn/2), y2+(w*cs/2)], [x2+(w*sn/2), y2-(w*cs/2)] -</literallayout> - -<para> -The sn is the sine of the angle of the line and cs is the cosine of -the angle of the line. -A pixel is part of the line (and hence drawn) if the center of the pixel -is fully inside the bounding box, which is viewed as having infinitely thin -edges. -If the center of the pixel is exactly on the bounding box, -it is part of the line if and only if the interior is immediately to its right -(x increasing direction). -Pixels with centers on a horizontal edge are a special case and are part of -the line if and only if the interior or the boundary is immediately below -(y increasing direction) and if the interior or the boundary is immediately -to the right (x increasing direction). -Note that this description is a mathematical model describing the pixels -that are drawn for a wide line and does not imply that trigonometry is required -to implement such a model. -Real or fixed point arithmetic is recommended for computing the corners of the -line endpoints for lines greater than one pixel in width. -</para> -<para> -Thin lines (zero line-width) are nominally one pixel wide lines drawn using an -unspecified, device-dependent algorithm. -There are only two constraints on this algorithm. -First, if a line is drawn unclipped from [x1,y1] to [x2,y2] -and another line is drawn unclipped from [x1+dx,y1+dy] to [x2+dx,y2+dy], -then a point [x,y] is touched by drawing the first line if -and only if the point [x+dx,y+dy] is touched by drawing the second line. -Second, the effective set of points comprising a line cannot be affected -by clipping. -Thus, a point is touched in a clipped line if and only if the point lies -inside the clipping region and the point would be touched by the line -when drawn unclipped. -</para> -<para> -Note that a wide line drawn from [x1,y1] to [x2,y2] always draws the -same pixels as a wide line drawn from [x2,y2] to [x1,y1], not counting -cap-style and join-style. -Implementors are encouraged to make this property true for thin lines, -but it is not required. -A line-width of zero may differ from a line-width of one in which pixels -are drawn. -In general, -drawing a thin line will be faster than drawing a wide line of width one, -but thin lines may not mix well aesthetically with wide lines -because of the different drawing algorithms. -If it is desirable to obtain precise and uniform results across all displays, -a client should always use a line-width of one, rather than a line-width of -zero. -</para> -<para id="requests:CreateGC:line-style"> -The line-style defines which sections of a line are drawn: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>Solid</emphasis> - </entry> - <entry> -The full path of the line is drawn. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>DoubleDash</emphasis> - </entry> - <entry> -The full path of the line is drawn, -but the even dashes are filled differently than the odd dashes -(see fill-style), with -<emphasis role='bold'>Butt</emphasis> -cap-style used where even and odd dashes meet. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>OnOffDash</emphasis> - </entry> - <entry> -Only the even dashes are drawn, -and cap-style applies to all internal ends of the individual dashes -(except -<emphasis role='bold'>NotLast</emphasis> -is treated as -<emphasis role='bold'>Butt</emphasis>). - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para id="requests:CreateGC:cap-style"> -The cap-style defines how the endpoints of a path are drawn: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>NotLast</emphasis> - </entry> - <entry> -The result is equivalent to -<emphasis role='bold'>Butt</emphasis>, -except that for a line-width of zero the final endpoint is not drawn. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Butt</emphasis> - </entry> - <entry> -The result is square at the endpoint (perpendicular to the slope of the -line) with no projection beyond. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Round</emphasis> - </entry> - <entry> -The result is a circular arc with its diameter equal to the line-width, -centered on the endpoint; it is equivalent to -<emphasis role='bold'>Butt</emphasis> -for line-width zero. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Projecting</emphasis> - </entry> - <entry> -The result is square at the end, but the path continues beyond the -endpoint for a distance equal to half the line-width; -it is equivalent to -<emphasis role='bold'>Butt</emphasis> -for line-width zero. - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - - - -<para id="requests:CreateGC:join-style"> -The join-style defines how corners are drawn for wide lines: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>Miter</emphasis> - </entry> - <entry> -The outer edges of the two lines extend to meet at an angle. -However, if the angle is less than 11 degrees, a -<emphasis role='bold'>Bevel</emphasis> -join-style is used instead. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Round</emphasis> - </entry> - <entry> -The result is a circular arc with a diameter equal to the line-width, -centered on the joinpoint. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Bevel</emphasis> - </entry> - <entry> -The result is -<emphasis role='bold'>Butt</emphasis> -endpoint styles, and then the triangular notch is filled. - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - - -<para> -For a line with coincident endpoints (x1=x2, y1=y2), when the cap-style -is applied to both endpoints, the semantics depends on the line-width -and the cap-style: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='3' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='1.0*'/> - <colspec colname='c3' colwidth='4.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>NotLast</emphasis> - </entry> - <entry>thin</entry> - <entry> -This is device-dependent, but the desired effect is that nothing is drawn. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Butt</emphasis> - </entry> - <entry>thin</entry> - <entry> -This is device-dependent, but the desired effect is that -a single pixel is drawn. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Round</emphasis> - </entry> - <entry>thin</entry> - <entry> -This is the same as -<emphasis role='bold'>Butt</emphasis>/thin. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Projecting</emphasis> - </entry> - <entry>thin</entry> - <entry> -This is the same as -<emphasis role='bold'>Butt</emphasis>/thin. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Butt</emphasis> - </entry> - <entry>wide</entry> - <entry> -Nothing is drawn. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Round</emphasis> - </entry> - <entry>wide</entry> - <entry> -The closed path is a circle, centered at the endpoint and -with a diameter equal to the line-width. - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Projecting</emphasis> - </entry> - <entry>wide</entry> - <entry> -The closed path is a square, aligned with the coordinate axes, -centered at the endpoint and with sides equal to the line-width. - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -For a line with coincident endpoints (x1=x2, y1=y2), -when the join-style is applied at one or both endpoints, -the effect is as if the line was removed from the overall path. -However, if the total path consists of (or is reduced to) a single point -joined with itself, -the effect is the same as when the cap-style is applied at both endpoints. -</para> -<para> -The tile/stipple represents an infinite two-dimensional plane -with the tile/stipple -replicated in all dimensions. When that plane is superimposed on -the drawable for use in a graphics operation, the upper-left corner -of some instance of the tile/stipple is at the coordinates within -the drawable specified by the tile/stipple origin. -The tile/stipple and clip origins are interpreted relative to the -origin of whatever destination drawable is specified in a graphics -request. -</para> -<para> -The tile pixmap must have the same root and depth as the gcontext (or a -<emphasis role='bold'>Match</emphasis> -error results). -The stipple pixmap must have depth one and must have the same root -as the gcontext (or a -<emphasis role='bold'>Match</emphasis> -error results). -For fill-style -<emphasis role='bold'>Stippled</emphasis> -(but not fill-style -<emphasis role='bold'>OpaqueStippled</emphasis>), -the stipple pattern is tiled in a single plane -and acts as an additional clip mask to be ANDed with the clip-mask. -Any size pixmap can be used for tiling or stippling, -although some sizes may be faster to use than others. -</para> -<para> -The fill-style defines the contents of the source for line, text, and -fill requests. -For all text and fill requests (for example, -<link linkend="requests:PolyText8"><emphasis role='bold'>PolyText8</emphasis></link>, -<link linkend="requests:PolyText16"><emphasis role='bold'>PolyText16</emphasis></link>, -<link linkend="requests:PolyFillRectangle"><emphasis role='bold'>PolyFillRectangle</emphasis></link>, -<link linkend="requests:FillPoly"><emphasis role='bold'>FillPoly</emphasis></link>, -and -<link linkend="requests:PolyFillArc"><emphasis role='bold'>PolyFillArc</emphasis></link>) -as well as for line requests with line-style -<emphasis role='bold'>Solid</emphasis>, -(for example, -<link linkend="requests:PolyLine"><emphasis role='bold'>PolyLine</emphasis></link>, -<link linkend="requests:PolySegment"><emphasis role='bold'>PolySegment</emphasis></link>, -<link linkend="requests:PolyRectangle"><emphasis role='bold'>PolyRectangle</emphasis></link>, -<link linkend="requests:PolyArc"><emphasis role='bold'>PolyArc</emphasis></link> ) -and for the even dashes for line requests with line-style -<emphasis role='bold'>OnOffDash</emphasis> -or -<emphasis role='bold'>DoubleDash</emphasis>: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>Solid</emphasis> - </entry> - <entry>Foreground</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Tiled</emphasis> - </entry> - <entry>Tile</entry> - </row> - <row> - <entry> -<emphasis role='bold'>OpaqueStippled</emphasis> - </entry> - <entry> -A tile with the same width and height as stipple -but with background everywhere stipple has a zero -and with foreground everywhere stipple has a one - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>Stippled</emphasis> - </entry> - <entry> -Foreground masked by stipple - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -For the odd dashes for line requests with line-style -<emphasis role='bold'>DoubleDash</emphasis>: -</para> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry> -<emphasis role='bold'>Solid</emphasis> - </entry> - <entry>Background</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Tiled</emphasis> - </entry> - <entry>Same as for even dashes</entry> - </row> - <row> - <entry> -<emphasis role='bold'>OpaqueStippled</emphasis> - </entry> - <entry>Same as for even dashes</entry> - </row> - <row> - <entry> -<emphasis role='bold'>Stippled</emphasis> - </entry> - <entry>Background masked by stipple</entry> - </row> - </tbody> - </tgroup> -</informaltable> - - -<para> -The dashes value allowed here is actually a simplified form of the more -general patterns that can be set with -<link linkend="requests:SetDashes"><emphasis role='bold'>SetDashes</emphasis></link>. -Specifying a value of N here is equivalent to specifying -the two element list [N, N] in -<link linkend="requests:SetDashes"><emphasis role='bold'>SetDashes</emphasis></link>. -The value must be nonzero (or a -<emphasis role='bold'>Value</emphasis> -error results). -The meaning of dash-offset and dashes are explained in the -<link linkend="requests:SetDashes"><emphasis role='bold'>SetDashes</emphasis></link> -request. -</para> -<para id="requests:CreateGC:clip-mask"> -<indexterm zone="requests:CreateGC:clip-mask"><primary>Clipping region</primary></indexterm> -The clip-mask restricts writes to the destination drawable. -Only pixels where the clip-mask has bits set to 1 are drawn. -Pixels are not drawn outside the area covered by the clip-mask -or where the clip-mask has bits set to 0. -The clip-mask affects all graphics requests, -but it does not clip sources. -The clip-mask origin is interpreted relative to the origin of whatever -destination drawable is specified in a graphics request. -If a pixmap is specified as the clip-mask, -it must have depth 1 and have the same root as the gcontext (or a -<emphasis role='bold'>Match</emphasis> -error results). -If clip-mask is -<emphasis role='bold'>None</emphasis>, -then pixels are always drawn, regardless of the clip origin. -The clip-mask can also be set with the -<link linkend="requests:SetClipRectangles"><emphasis role='bold'>SetClipRectangles</emphasis></link> -request. -</para> -<para> -For -<emphasis role='bold'>ClipByChildren</emphasis>, -both source and destination windows are additionally clipped by all viewable -<emphasis role='bold'>InputOutput</emphasis> -children. -For -<emphasis role='bold'>IncludeInferiors</emphasis>, -neither source nor destination window is clipped by inferiors. -This will result in including subwindow contents in the -source and drawing through subwindow boundaries of the destination. -The use of -<emphasis role='bold'>IncludeInferiors</emphasis> -with a source or destination window of one depth with mapped inferiors -of differing depth is not illegal, -but the semantics is undefined by the core protocol. -</para> -<para id="requests:CreateGC:fill-rule"> -<indexterm zone="requests:CreateGC:fill-rule" significance="preferred"><primary>Winding rule</primary></indexterm> -<indexterm zone="requests:CreateGC:fill-rule" significance="preferred"><primary>Fill rule</primary></indexterm> -The fill-rule defines what pixels are inside (that is, are drawn) for -paths given in -<link linkend="requests:FillPoly"><emphasis role='bold'>FillPoly</emphasis></link> -requests. -<emphasis role='bold'>EvenOdd</emphasis> -means a point is inside if an infinite ray with the point as origin crosses -the path an odd number of times. -For -<emphasis role='bold'>Winding</emphasis>, -a point is inside if an infinite ray with the point as origin crosses an -unequal number of clockwise and counterclockwise directed path segments. -A clockwise directed path segment is one that crosses the ray from left -to right as observed from the point. -A counter-clockwise segment is one that crosses the ray from right to left -as observed from the point. -The case where a directed line segment is coincident with the ray is -uninteresting because one can simply choose a different ray that is not -coincident with a segment. -</para> -<para> -For both fill rules, -a point is infinitely small and the path is an infinitely thin line. -A pixel is inside if the center point of the pixel is inside -and the center point is not on the boundary. -If the center point is on the boundary, -the pixel is inside if and only if the polygon interior is immediately -to its right (x increasing direction). -Pixels with centers along a horizontal edge are a special case -and are inside if and only if the polygon interior is immediately below -(y increasing direction). -</para> -<para> -The arc-mode controls filling in the -<link linkend="requests:PolyFillArc"><emphasis role='bold'>PolyFillArc</emphasis></link> -request. -</para> -<para> -The graphics-exposures flag controls -<link linkend="events:GraphicsExposure"><emphasis role='bold'>GraphicsExposure</emphasis></link> -event generation for -<link linkend="requests:CopyArea"><emphasis role='bold'>CopyArea</emphasis></link> -and -<link linkend="requests:CopyPlane"><emphasis role='bold'>CopyPlane</emphasis></link> -requests (and any similar requests defined by extensions). -</para> -<para> -The default component values are: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Component</entry> - <entry>Default</entry> - </row> - </thead> - <tbody> - <row> - <entry>function</entry> - <entry> -<emphasis role='bold'>Copy</emphasis> - </entry> - </row> - <row> - <entry>plane-mask</entry> - <entry>all ones</entry> - </row> - <row> - <entry>foreground</entry> - <entry>0</entry> - </row> - <row> - <entry>background</entry> - <entry>1</entry> - </row> - <row> - <entry>line-width</entry> - <entry>0</entry> - </row> - <row> - <entry>line-style</entry> - <entry><emphasis role='bold'>Solid</emphasis></entry> - </row> - <row> - <entry>cap-style</entry> - <entry><emphasis role='bold'>Butt</emphasis></entry> - </row> - <row> - <entry>join-style</entry> - <entry><emphasis role='bold'>Miter</emphasis></entry> - </row> - <row> - <entry>fill-style</entry> - <entry><emphasis role='bold'>Solid</emphasis></entry> - </row> - <row> - <entry>fill-rule</entry> - <entry><emphasis role='bold'>EvenOdd</emphasis></entry> - </row> - <row> - <entry>arc-mode</entry> - <entry><emphasis role='bold'>PieSlice</emphasis></entry> - </row> - <row> - <entry>tile</entry> - <entry> -<para> -Pixmap of unspecified size filled with foreground pixel -</para> -<para> -(that is, client specified pixel if any, else 0) -</para> -<para> -(subsequent changes to foreground do not affect this pixmap) -</para> - </entry> - </row> - <row> - <entry>stipple</entry> - <entry> -Pixmap of unspecified size filled with ones - </entry> - </row> - <row> - <entry>tile-stipple-x-origin</entry> - <entry>0</entry> - </row> - <row> - <entry>tile-stipple-y-origin</entry> - <entry>0</entry> - </row> - <row> - <entry>font</entry> - <entry><server-dependent-font></entry> - </row> - <row> - <entry>subwindow-mode</entry> - <entry> -<emphasis role='bold'>ClipByChildren</emphasis> - </entry> - </row> - <row> - <entry>graphics-exposures</entry> - <entry> -<emphasis role='bold'>True</emphasis> - </entry> - </row> - <row> - <entry>clip-x-origin</entry> - <entry>0</entry> - </row> - <row> - <entry>clip-y-origin</entry> - <entry>0</entry> - </row> - <row> - <entry>clip-mask</entry> - <entry> -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry>dash-offset</entry> - <entry>0</entry> - </row> - <row> - <entry>dashes</entry> - <entry>4 (that is, the list [4, 4])</entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -Storing a pixmap in a gcontext might or might not result in a copy -being made. -If the pixmap is later used as the destination for a graphics request, -the change might or might not be reflected in the gcontext. -If the pixmap is used simultaneously in a graphics request -as both a destination and as a tile or stipple, -the results are not defined. -</para> -<para> -It is quite likely that some amount of gcontext information will be -cached in display hardware and that such hardware can only cache a -small number of gcontexts. -Given the number and complexity of components, -clients should view switching between gcontexts with nearly -identical state as significantly more expensive than making minor -changes to a single gcontext. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeGC"> - <title>ChangeGC</title> - <indexterm zone="requests:ChangeGC" significance="preferred"><primary>ChangeGC</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Pixmap</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes components in gc. -The value-mask and value-list specify which components are to be changed. -The values and restrictions are the same -as for -<link linkend="requests:CreateGC"><emphasis role='bold'>CreateGC</emphasis></link>. -</para> -<para> -Changing the clip-mask also overrides any previous -<link linkend="requests:SetClipRectangles"><emphasis role='bold'>SetClipRectangles</emphasis></link> -request on the context. -Changing dash-offset or dashes overrides any previous -<link linkend="requests:SetDashes"><emphasis role='bold'>SetDashes</emphasis></link> -request on the context. -</para> -<para> -The order in which components are verified and altered is server-dependent. -If an error is generated, -a subset of the components may have been altered. -<!-- .sp --> -</para> - </section> - <section id="requests:CopyGC"> - <title>CopyGC</title> - <indexterm zone="requests:CopyGC" significance="preferred"><primary>CopyGC</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>src-gc</emphasis>, <emphasis remap='I'>dst-gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request copies components from src-gc to dst-gc. -The value-mask specifies which components to copy, as for -<link linkend="requests:CreateGC"><emphasis role='bold'>CreateGC</emphasis></link>. -The two gcontexts must have the same root and the same depth (or a -<emphasis role='bold'>Match</emphasis> -error results). -<!-- .sp --> -</para> - </section> - <section id="requests:SetDashes"> - <title>SetDashes</title> - <indexterm zone="requests:SetDashes" significance="preferred"><primary>SetDashes</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dash-offset</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dashes</emphasis>: LISTofCARD8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request sets dash-offset and dashes in gc for dashed line styles. -Dashes cannot be empty (or a -<emphasis role='bold'>Value</emphasis> -error results). -Specifying an odd-length list is equivalent to specifying the same list -concatenated with itself to produce an even-length list. -The initial and alternating elements of dashes are the even dashes; -the others are the odd dashes. -Each element specifies a dash length in pixels. -All of the elements must be nonzero (or a -<emphasis role='bold'>Value</emphasis> -error results). -The dash-offset defines the phase of the pattern, -specifying how many pixels into dashes the pattern should actually begin in -any single graphics request. -Dashing is continuous through path elements combined with a join-style -but is reset to the dash-offset between each sequence of joined lines. -</para> -<para> -The unit of measure for dashes is the same as in the ordinary -coordinate system. -Ideally, a dash length is measured along the slope of the line, -but implementations are only required to match this ideal -for horizontal and vertical lines. -Failing the ideal semantics, -it is suggested that the length be measured along the major axis of the line. -The major axis is defined as the x axis for lines drawn at an angle of -between -45 and +45 degrees or between 135 and 225 degrees from the x axis. -For all other lines, the major axis is the y axis. -</para> -<para> -For any graphics primitive, the computation of the endpoint of an individual -dash only depends on the geometry of the primitive, the start position -of the dash, the direction of the dash, and the dash length. -</para> -<para> -For any graphics primitive, the total set of pixels used to render the -primitive (both even and odd numbered dash elements) with -<emphasis role='bold'>DoubleDash</emphasis> -line-style is the same as the set of pixels used to render the -primitive with -<emphasis role='bold'>Solid</emphasis> -line-style. -</para> -<para> -For any graphics primitive, if the primitive is drawn with -<emphasis role='bold'>OnOffDash</emphasis> -or -<emphasis role='bold'>DoubleDash</emphasis> -line-style unclipped at position [x,y] and again at position -[x+dx,y+dy], then a point [x1,y1] is included in a dash in the first -instance if and only if the point [x1+dx,y1+dy] is included in the dash in -the second instance. In addition, the effective set of points comprising a -dash cannot be affected by clipping. A point is included in a clipped dash -if and only if the point lies inside the clipping region and the point -would be included in the dash when drawn unclipped. -<!-- .sp --> -</para> - </section> - <section id="requests:SetClipRectangles"> - <title>SetClipRectangles</title> - <indexterm zone="requests:SetClipRectangles" significance="preferred"><primary>SetClipRectangles</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>clip-x-origin</emphasis>, <emphasis remap='I'>clip-y-origin</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>rectangles</emphasis>: LISTofRECTANGLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>ordering</emphasis>: -{ <emphasis role='bold'>UnSorted</emphasis>, -<emphasis role='bold'>YSorted</emphasis>, -<emphasis role='bold'>YXSorted</emphasis>, -<emphasis role='bold'>YXBanded</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes clip-mask in gc to the specified list of rectangles -and sets the clip origin. -Output will be clipped to remain contained within the rectangles. -The clip origin is interpreted relative to the origin of -whatever destination drawable is specified in a graphics request. -The rectangle coordinates are interpreted relative to the clip origin. -The rectangles should be nonintersecting, or graphics results will be -undefined. -Note that the list of rectangles can be empty, -which effectively disables output. -This is the opposite of passing -<emphasis role='bold'>None</emphasis> -as the clip-mask in -<link linkend="requests:CreateGC"><emphasis role='bold'>CreateGC</emphasis></link> -and -<link linkend="requests:ChangeGC"><emphasis role='bold'>ChangeGC</emphasis></link>. -</para> -<para> -If known by the client, -ordering relations on the rectangles can be specified with the ordering -argument. -This may provide faster operation by the server. -If an incorrect ordering is specified, -the server may generate a -<emphasis role='bold'>Match</emphasis> -error, but it is not required to do so. -If no error is generated, -the graphics results are undefined. -<emphasis role='bold'>UnSorted</emphasis> -means that the rectangles are in arbitrary order. -<emphasis role='bold'>YSorted</emphasis> -means that the rectangles are nondecreasing in their Y origin. -<emphasis role='bold'>YXSorted</emphasis> -additionally constrains -<emphasis role='bold'>YSorted</emphasis> -order in that all rectangles with an equal Y origin are -nondecreasing in their X origin. -<emphasis role='bold'>YXBanded</emphasis> -additionally constrains -<emphasis role='bold'>YXSorted</emphasis> -by requiring that, for every possible Y scanline, -all rectangles that include that scanline have identical Y origins and Y -extents. -<!-- .sp --> -</para> - </section> - <section id="requests:FreeGC"> - <title>FreeGC</title> - <indexterm zone="requests:FreeGC" significance="preferred"><primary>FreeGC</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>gc</emphasis>: GCONTEXT -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>GContext</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request deletes the association between the resource ID and the gcontext -and destroys the gcontext. -<!-- .sp --> -</para> - </section> - <section id="requests:ClearArea"> - <title>ClearArea</title> - <indexterm zone="requests:ClearArea" significance="preferred"><primary>ClearArea</primary></indexterm> - <indexterm zone="requests:ClearArea"><primary>Background</primary></indexterm><informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>exposures</emphasis>: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The x and y coordinates are relative to the window's origin -and specify the upper-left corner of the rectangle. -If width is zero, -it is replaced with the current width of the window minus x. -If height is zero, -it is replaced with the current height of the window minus y. -If the window has a defined background tile, -the rectangle is tiled with a plane-mask of all ones and function of -<emphasis role='bold'>Copy</emphasis> -and a subwindow-mode of -<emphasis role='bold'>ClipByChildren</emphasis>. -If the window has background -<emphasis role='bold'>None</emphasis>, -the contents of the window are not changed. -In either case, -if exposures is -<emphasis role='bold'>True</emphasis>, -then one or more exposure events are generated for regions of the rectangle -that are either visible or are being retained in a backing store. -</para> -<para> -It is a -<emphasis role='bold'>Match</emphasis> -error to use an -<emphasis role='bold'>InputOnly</emphasis> -window in this request. -<!-- .sp --> -</para> - </section> - <section id="requests:CopyArea"> - <title>CopyArea</title> - <indexterm zone="requests:CopyArea" significance="preferred"><primary>CopyArea</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>src-drawable</emphasis>, <emphasis remap='I'>dst-drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>src-x</emphasis>, <emphasis remap='I'>src-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dst-x</emphasis>, <emphasis remap='I'>dst-y</emphasis>: INT16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request combines the specified rectangle of src-drawable with the -specified rectangle of dst-drawable. -The src-x and src-y coordinates are relative to src-drawable's origin. -The dst-x and dst-y are relative to dst-drawable's origin, -each pair specifying the upper-left corner of the rectangle. -The src-drawable must have the same root and the same depth -as dst-drawable (or a -<emphasis role='bold'>Match</emphasis> -error results). -</para> -<para> -If regions of the source rectangle are obscured and have not been retained -in backing store -or if regions outside the boundaries of the source drawable are specified, -then those regions are not copied, -but the following occurs on all corresponding destination regions that are -either visible or are retained in backing-store. -If the dst-drawable is a window with a background other than -<emphasis role='bold'>None</emphasis>, -these corresponding destination regions are tiled -(with plane-mask of all ones and function -<emphasis role='bold'>Copy</emphasis>) -with that background. -Regardless of tiling and whether the destination is a window or a pixmap, -if graphics-exposures in gc is -<emphasis role='bold'>True</emphasis>, -then -<link linkend="events:GraphicsExposure"><emphasis role='bold'>GraphicsExposure</emphasis></link> -events for all corresponding destination regions are generated. -</para> -<para> -If graphics-exposures is -<emphasis role='bold'>True</emphasis> -but no -<emphasis role='bold'>GraphicsExposure</emphasis> -events are generated, -then a -<link linkend="events:NoExposure"><emphasis role='bold'>NoExposure</emphasis></link> -event is generated. -</para> -<para> -GC components: function, plane-mask, subwindow-mode, -graphics-exposures, clip-x-origin, clip-y-origin, clip-mask -<!-- .sp --> -</para> - </section> - <section id="requests:CopyPlane"> - <title>CopyPlane</title> - <indexterm zone="requests:CopyPlane" significance="preferred"><primary>CopyPlane</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>src-drawable</emphasis>, <emphasis remap='I'>dst-drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>src-x</emphasis>, <emphasis remap='I'>src-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dst-x</emphasis>, <emphasis remap='I'>dst-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>bit-plane</emphasis>: CARD32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The src-drawable must have the same root as dst-drawable (or a -<emphasis role='bold'>Match</emphasis> -error results), but it need not have the same depth. -The bit-plane must have exactly one bit set to 1 and the value of bit-plane -must be less than %2 sup n% where <emphasis remap='I'>n</emphasis> is the depth of src-drawable (or a -<emphasis role='bold'>Value</emphasis> -error results). -Effectively, a pixmap of the same depth as dst-drawable and with size specified -by the source region is formed using the foreground/background pixels in gc -(foreground everywhere the bit-plane in src-drawable contains a bit set to 1, -background everywhere the bit-plane contains a bit set to 0), -and the equivalent of a -<link linkend="requests:CopyArea"><emphasis role='bold'>CopyArea</emphasis></link> -is performed, with all the same exposure semantics. -This can also be thought of as using the specified region of the source -bit-plane as a stipple with a fill-style of -<emphasis role='bold'>OpaqueStippled</emphasis> -for filling a rectangular area of the destination. -</para> -<para> -GC components: function, plane-mask, foreground, background, -subwindow-mode, graphics-exposures, clip-x-origin, clip-y-origin, -clip-mask -<!-- .sp --> -</para> - </section> - <section id="requests:PolyPoint"> - <title>PolyPoint</title> - <indexterm zone="requests:PolyPoint" significance="preferred"><primary>PolyPoint</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>coordinate-mode</emphasis>: -{ <emphasis role='bold'>Origin</emphasis>, -<emphasis role='bold'>Previous</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>points</emphasis>: LISTofPOINT -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request combines the foreground pixel in gc with the pixel -at each point in the drawable. -The points are drawn in the order listed. -</para> -<para> -The first point is always relative to the drawable's origin. -The rest are relative either to that origin or the previous point, -depending on the coordinate-mode. -</para> -<para> -GC components: function, plane-mask, foreground, subwindow-mode, -clip-x-origin, clip-y-origin, clip-mask -<!-- .sp --> -</para> - </section> - <section id="requests:PolyLine"> - <title>PolyLine</title> - <indexterm zone="requests:PolyLine" significance="preferred"><primary>PolyLine</primary></indexterm> - <indexterm zone="requests:PolyLine"><primary>Line</primary><secondary>drawing</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>coordinate-mode</emphasis>: -{ <emphasis role='bold'>Origin</emphasis>, -<emphasis role='bold'>Previous</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>points</emphasis>: LISTofPOINT -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request draws lines between each pair of points (point[i], point[i+1]). -The lines are drawn in the order listed. -The lines join correctly at all intermediate points, -and if the first and last points coincide, -the first and last lines also join correctly. -</para> -<para> -For any given line, -no pixel is drawn more than once. -If thin (zero line-width) lines intersect, -the intersecting pixels are drawn multiple times. -If wide lines intersect, -the intersecting pixels are drawn only once, as though the entire -<emphasis role='bold'>PolyLine</emphasis> -were a single filled shape. -</para> -<para> -The first point is always relative to the drawable's origin. -The rest are relative either to that origin or the previous point, -depending on the coordinate-mode. -</para> -<para> -When either of the two lines involved in a -<emphasis role='bold'>Bevel</emphasis> -join is neither vertical -nor horizontal, then the slope and position of the line segment defining -the bevel join edge is implementation dependent. However, the computation -of the slope and distance (relative to the join point) only depends on -the line width and the slopes of the two lines. -</para> -<para> -GC components: function, plane-mask, line-width, line-style, -cap-style, join-style, fill-style, subwindow-mode, clip-x-origin, -clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin, dash-offset, dashes -<!-- .sp --> -</para> - </section> - <section id="requests:PolySegment"> - <title>PolySegment</title> - <indexterm zone="requests:PolySegment" significance="preferred"><primary>PolySegment</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>segments</emphasis>: LISTofSEGMENT -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -where: -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -SEGMENT: [x1, y1, x2, y2: INT16] -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -For each segment, -this request draws a line between [x1, y1] and [x2, y2]. -The lines are drawn in the order listed. -No joining is performed at coincident endpoints. -For any given line, -no pixel is drawn more than once. -If lines intersect, -the intersecting pixels are drawn multiple times. -</para> -<para> -GC components: function, plane-mask, line-width, line-style, -cap-style, fill-style, subwindow-mode, clip-x-origin, clip-y-origin, -clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin, dash-offset, dashes -<!-- .sp --> -</para> - </section> - <section id="requests:PolyRectangle"> - <title>PolyRectangle</title> - <indexterm zone="requests:PolyRectangle" significance="preferred"><primary>PolyRectangle</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>rectangles</emphasis>: LISTofRECTANGLE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request draws the outlines of the specified rectangles, as if a five-point -<link linkend="requests:PolyLine"><emphasis role='bold'>PolyLine</emphasis></link> -were specified for each rectangle: -</para> -<para> -<literallayout class="monospaced"> - [x,y] [x+width,y] [x+width,y+height] [x,y+height] [x,y] -</literallayout> -</para> -<para> -The x and y coordinates of each rectangle are relative to the drawable's origin -and define the upper-left corner of the rectangle. -</para> -<para> -The rectangles are drawn in the order listed. -For any given rectangle, -no pixel is drawn more than once. -If rectangles intersect, -the intersecting pixels are drawn multiple times. -</para> -<para> -GC components: function, plane-mask, line-width, line-style, -cap-style, join-style, fill-style, subwindow-mode, clip-x-origin, -clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin, dash-offset, dashes -<!-- .sp --> -</para> - </section> - <section id="requests:PolyArc"> - <title>PolyArc</title> - <indexterm zone="requests:PolyArc" significance="preferred"><primary>PolyArc</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>arcs</emphasis>: LISTofARC -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request draws circular or elliptical arcs. -Each arc is specified by a rectangle and two angles. -The angles are signed integers in degrees scaled by 64, -with positive indicating counterclockwise motion and -negative indicating clockwise motion. -The start of the arc is specified by angle1 relative to the three-o'clock -position from the center of the rectangle, -and the path and extent of the arc is specified by angle2 relative to the -start of the arc. -If the magnitude of angle2 is greater than 360 degrees, -it is truncated to 360 degrees. -The x and y coordinates of the rectangle are relative to the origin of -the drawable. -For an arc specified as [x,y,w,h,a1,a2], -the origin of the major and minor axes is at [x+(w/2),y+(h/2)], -and the infinitely thin path describing the entire circle/ellipse intersects -the horizontal axis at [x,y+(h/2)] and [x+w,y+(h/2)] and intersects the -vertical axis at [x+(w/2),y] and [x+(w/2),y+h]. -These coordinates are not necessarily integral; that is, -they are not truncated to discrete coordinates. -</para> -<para> -For a wide line with line-width lw, the ideal bounding outlines for filling -are given by the two infinitely thin paths consisting of all points whose -perpendicular distance from a tangent to the path of the circle/ellipse is -equal to lw/2 (which may be a fractional value). When the width and height -of the arc are not equal and both are nonzero, then the actual bounding -outlines are implementation dependent. However, the computation of the -shape and position of the bounding outlines (relative to the center of the -arc) only depends on the width and height of the arc and the -line-width. -</para> -<para> -The cap-style is applied the same as for a line corresponding to the -tangent of the circle/ellipse at the endpoint. When the angle of an arc -face is not an integral multiple of 90 degrees, and the width and height of -the arc are both are nonzero, then the shape and position of the cap at -that face is implementation dependent. However, for a -<emphasis role='bold'>Butt</emphasis> -cap, the face -is defined by a straight line, and the computation of the position -(relative to the center of the arc) and the slope of the line only -depends on the width and height of the arc and the angle of the arc face. -For other cap styles, the computation of the position (relative to the -center of the arc) and the shape of the cap only depends on the width -and height of the arc, the line-width, the angle of the arc face, and the -direction (clockwise or counter clockwise) of the arc from the endpoint. -</para> -<para> -The join-style is applied the same as for two lines corresponding to the -tangents of the circles/ellipses at the join point. When the width and -height of both arcs are nonzero, and the angle of either arc face is not an -integral multiple of 90 degrees, then the shape of the join is -implementation dependent. However, the computation of the shape only -depends on the width and height of each arc, the line-width, the angles of -the two arc faces, the direction (clockwise or counter clockwise) of the -arcs from the join point, and the relative orientation of the two arc -center points. -</para> -<para> -For an arc specified as [x,y,w,h,a1,a2], -the angles must be specified in the effectively skewed coordinate system of -the ellipse (for a circle, the angles and coordinate systems are identical). -The relationship between these angles and angles expressed in the normal -coordinate system of the screen (as measured with a protractor) is as -follows: -<literallayout class="monospaced"> - skewed-angle = atan(tan(normal-angle) * w/h) + adjust -</literallayout> -</para> -<para> -The skewed-angle and normal-angle are expressed in radians (rather -than in degrees scaled by 64) in the range [0,2*PI). -The atan returns a value in the range [-PI/2,PI/2]. -The adjust is: -<informaltable frame="none"> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry>0</entry> - <entry>for normal-angle in the range [0,PI/2)</entry> - </row> - <row> - <entry>PI</entry> - <entry>for normal-angle in the range [PI/2,(3*PI)/2)</entry> - </row> - <row> - <entry>2*PI</entry> - <entry>for normal-angle in the range [(3*PI)/2,2*PI)</entry> - </row> - </tbody> - </tgroup> -</informaltable> -</para> -<para> -The arcs are drawn in the order listed. -If the last point in one arc coincides with the first point in the following -arc, -the two arcs will join correctly. -If the first point in the first arc coincides with the last point -in the last arc, -the two arcs will join correctly. -For any given arc, -no pixel is drawn more than once. -If two arcs join correctly and the line-width is greater than zero -and the arcs intersect, -no pixel is drawn more than once. -Otherwise, the intersecting pixels of intersecting arcs are drawn multiple -times. -Specifying an arc with one endpoint and a clockwise extent draws the -same pixels as specifying the other endpoint and an equivalent -counterclockwise extent, except as it affects joins. -</para> -<para> -By specifying one axis to be zero, -a horizontal or vertical line can be drawn. -</para> -<para> -Angles are computed based solely on the coordinate system, -ignoring the aspect ratio. -</para> -<para> -GC components: function, plane-mask, line-width, line-style, -cap-style, join-style, fill-style, subwindow-mode, clip-x-origin, -clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin, dash-offset, dashes -<!-- .sp --> -</para> - </section> - <section id="requests:FillPoly"> - <title>FillPoly</title> - <indexterm zone="requests:FillPoly" significance="preferred"><primary>FillPoly</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2in --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>shape</emphasis>: -{ <emphasis role='bold'>Complex</emphasis>, -<emphasis role='bold'>Nonconvex</emphasis>, -<emphasis role='bold'>Convex</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>coordinate-mode</emphasis>: -{ <emphasis role='bold'>Origin</emphasis>, -<emphasis role='bold'>Previous</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>points</emphasis>: LISTofPOINT -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request fills the region closed by the specified path. -The path is closed automatically if the last point in the list does not -coincide with the first point. -No pixel of the region is drawn more than once. -</para> -<para> -The first point is always relative to the drawable's origin. -The rest are relative either to that origin or the previous point, -depending on the coordinate-mode. -</para> -<para> -The shape parameter may be used by the server to improve performance. -<emphasis role='bold'>Complex</emphasis> -means the path may self-intersect. -Contiguous coincident points in the path are not treated -as self-intersection. -</para> -<para> -<emphasis role='bold'>Nonconvex</emphasis> -means the path does not self-intersect, -but the shape is not wholly convex. -If known by the client, -specifying -<emphasis role='bold'>Nonconvex</emphasis> -over -<emphasis role='bold'>Complex</emphasis> -may improve performance. -If -<emphasis role='bold'>Nonconvex</emphasis> -is specified for a self-intersecting path, -the graphics results are undefined. -</para> -<para> -<emphasis role='bold'>Convex</emphasis> -means that for every pair of points inside the polygon, -the line segment connecting them does not intersect the path. -If known by the client, -specifying -<emphasis role='bold'>Convex</emphasis> -can improve performance. -If -<emphasis role='bold'>Convex</emphasis> -is specified for a path that is not convex, -the graphics results are undefined. -</para> -<para> -GC components: function, plane-mask, fill-style, fill-rule, -subwindow-mode, clip-x-origin, clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin -<!-- .sp --> -</para> - </section> - <section id="requests:PolyFillRectangle"> - <title>PolyFillRectangle</title> - <indexterm zone="requests:PolyFillRectangle" significance="preferred"><primary>PolyFillRectangle</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>rectangles</emphasis>: LISTofRECTANGLE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request fills the specified rectangles, as if a four-point -<link linkend="requests:FillPoly"><emphasis role='bold'>FillPoly</emphasis></link> -were specified for each rectangle: -<literallayout class="monospaced"> - [x,y] [x+width,y] [x+width,y+height] [x,y+height] -</literallayout> -</para> -<para> -The x and y coordinates of each rectangle are relative to the drawable's origin -and define the upper-left corner of the rectangle. -</para> -<para> -The rectangles are drawn in the order listed. -For any given rectangle, -no pixel is drawn more than once. -If rectangles intersect, -the intersecting pixels are drawn multiple times. -</para> -<para> -GC components: function, plane-mask, fill-style, subwindow-mode, -clip-x-origin, clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin -<!-- .sp --> -</para> - </section> - <section id="requests:PolyFillArc"> - <title>PolyFillArc</title> - <indexterm zone="requests:PolyFillArc" significance="preferred"><primary>PolyFillArc</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>arcs</emphasis>: LISTofARC -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -For each arc, -this request fills the region closed by the infinitely thin path -described by the specified arc and one or two line segments, -depending on the arc-mode. -For -<emphasis role='bold'>Chord</emphasis>, -the single line segment joining the endpoints of the arc is used. -For -<emphasis role='bold'>PieSlice</emphasis>, -the two line segments joining the endpoints of the arc with the center point -are used. -</para> -<para> -For an arc specified as [x,y,w,h,a1,a2], the origin of the major and minor -axes is at [x+(w/2),y+(h/2)], and the infinitely thin path describing the -entire circle/ellipse intersects the horizontal axis at [x,y+(h/2)] and -[x+w,y+(h/2)] and intersects the vertical axis at [x+(w/2),y] and -[x+(w/2),y+h]. These coordinates are not necessarily integral; that is, -they are not truncated to discrete coordinates. -</para> -<para> -The arc angles are interpreted as specified in the -<link linkend="requests:PolyArc"><emphasis role='bold'>PolyArc</emphasis></link> -request. When -the angle of an arc face is not an integral multiple of 90 degrees, then -the precise endpoint on the arc is implementation dependent. However, for -<emphasis role='bold'>Chord</emphasis> -arc-mode, the computation of the pair of endpoints (relative to the -center of the arc) only depends on the width and height of the arc and -the angles of the two arc faces. For -<emphasis role='bold'>PieSlice</emphasis> -arc-mode, the computation of -an endpoint only depends on the angle of the arc face for that -endpoint and the ratio of the arc width to arc height. -</para> -<para> -The arcs are filled in the order listed. -For any given arc, -no pixel is drawn more than once. -If regions intersect, -the intersecting pixels are drawn multiple times. -</para> -<para> -GC components: function, plane-mask, fill-style, arc-mode, -subwindow-mode, clip-x-origin, clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin -<!-- .sp --> -</para> - </section> - <section id="requests:PutImage"> - <title>PutImage</title> - <indexterm zone="requests:PutImage" significance="preferred"><primary>PutImage</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>depth</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>dst-x</emphasis>, <emphasis remap='I'>dst-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>left-pad</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>format</emphasis>: -{ <emphasis role='bold'>Bitmap</emphasis>, -<emphasis role='bold'>XYPixmap</emphasis>, -<emphasis role='bold'>ZPixmap</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>data</emphasis>: LISTofBYTE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request combines an image with a rectangle of the drawable. -The dst-x and dst-y coordinates are relative to the drawable's origin. -</para> -<para> -If -<emphasis role='bold'>Bitmap</emphasis> -format is used, -then depth must be one (or a -<emphasis role='bold'>Match</emphasis> -error results), and the image must be in XY format. -The foreground pixel in gc defines the source for bits set to 1 in the image, -and the background pixel defines the source for the bits set to 0. -</para> -<para> -For -<emphasis role='bold'>XYPixmap</emphasis> -and -<emphasis role='bold'>ZPixmap</emphasis>, -the depth must match the depth of the drawable (or a -<emphasis role='bold'>Match</emphasis> -error results). -For -<emphasis role='bold'>XYPixmap</emphasis>, -the image must be sent in XY format. -For -<emphasis role='bold'>ZPixmap</emphasis>, -the image must be sent in the Z format defined for the given depth. -</para> -<para> -The left-pad must be zero for -<emphasis role='bold'>ZPixmap</emphasis> -format (or a -<emphasis role='bold'>Match</emphasis> -error results). -For -<emphasis role='bold'>Bitmap</emphasis> -and -<emphasis role='bold'>XYPixmap</emphasis> -format, -left-pad must be less than bitmap-scanline-pad as given in the server -connection setup information (or a -<emphasis role='bold'>Match</emphasis> -error results). -The first left-pad bits in every scanline are to be ignored by the server. -The actual image begins that many bits into the data. -The width argument defines the width of the actual image -and does not include left-pad. -</para> -<para> -GC components: function, plane-mask, subwindow-mode, clip-x-origin, -clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background -<!-- .sp --> -</para> - </section> - <section id="requests:GetImage"> - <title>GetImage</title> - <indexterm zone="requests:GetImage" significance="preferred"><primary>GetImage</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>plane-mask</emphasis>: CARD32 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>format</emphasis>: -{ <emphasis role='bold'>XYPixmap</emphasis>, -<emphasis role='bold'>ZPixmap</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -depth: CARD8 - </entry> - </row> - <row> - <entry> -visual: VISUALID or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -data: LISTofBYTE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the contents of the given rectangle of the drawable in the -given format. -The x and y coordinates are relative to the drawable's origin -and define the upper-left corner of the rectangle. -If -<emphasis role='bold'>XYPixmap</emphasis> -is specified, -only the bit planes specified in plane-mask are transmitted, -with the planes appearing from most significant to least significant -in bit order. -If -<emphasis role='bold'>ZPixmap</emphasis> -is specified, then bits in all planes not specified in plane-mask are -transmitted as zero. -Range checking is not performed on plane-mask; -extraneous bits are simply ignored. -The returned depth is as specified when the drawable was created -and is the same as a depth component in a FORMAT structure (in the connection -setup), not a bits-per-pixel component. -If the drawable is a window, -its visual type is returned. -If the drawable is a pixmap, -the visual is -<emphasis role='bold'>None</emphasis>. -</para> -<para> -If the drawable is a pixmap, -then the given rectangle must be wholly contained within the pixmap (or a -<emphasis role='bold'>Match</emphasis> -error results). -If the drawable is a window, -the window must be viewable, -and it must be the case that, -if there were no inferiors or overlapping windows, -the specified rectangle of the window would be fully visible on the screen -and wholly contained within the outside edges of the window (or a -<emphasis role='bold'>Match</emphasis> -error results). -Note that the borders of the window can be included and read with this request. -If the window has a backing store, -then the backing-store contents are returned for regions of the window -that are obscured by noninferior windows; -otherwise, the returned contents of such obscured regions are undefined. -Also undefined are the returned contents of visible -regions of inferiors of different depth than the specified window. -The pointer cursor image is not included in the contents returned. -</para> -<para> -This request is not general-purpose in the same sense as other -graphics-related requests. -It is intended specifically for rudimentary hardcopy support. -<!-- .sp --> -</para> - </section> - <section id="requests:PolyText8"> - <title>PolyText8</title> - <indexterm zone="requests:PolyText8" significance="preferred"><primary>PolyText8</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='3' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='1.0*'/> - <colspec colname='c3' colwidth='1.0*'/> - <spanspec spanname='all' namest='c1' nameend='c3'/> - <tbody> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry spanname='all'> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry spanname='all'> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry spanname='all'> -<emphasis remap='I'>items</emphasis>: LISTofTEXTITEM8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry valign='top' morerows='3'> -<!-- .in +.2i --> -where: - </entry> - </row> - <row> - <entry> -TEXTITEM8: - </entry> - <entry> -TEXTELT8 or FONT - </entry> - </row> - <row> - <entry valign='top' morerows='1'> -TEXTELT8: - </entry> - <entry> -[delta: INT8 - </entry> - </row> - <row> - <entry> -string: STRING8] -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The x and y coordinates are relative to the drawable's origin -and specify the baseline starting position (the initial character origin). -Each text item is processed in turn. -A font item causes the font to be stored in gc -and to be used for subsequent text. -Switching among fonts does not affect the next character origin. -A text element delta specifies an additional change in the position -along the x axis before the string is drawn; -the delta is always added to the character origin. -Each character image, as defined by the font in gc, -is treated as an additional mask for a fill operation on the drawable. -</para> -<para> -All contained FONTs are always transmitted most significant byte first. -</para> -<para> -If a -<emphasis role='bold'>Font</emphasis> -error is generated for an item, -the previous items may have been drawn. -</para> -<para> -For fonts defined with 2-byte matrix indexing, -each STRING8 byte is interpreted as a byte2 value of a CHAR2B with a byte1 -value of zero. -</para> -<para> -GC components: function, plane-mask, fill-style, font, -subwindow-mode, clip-x-origin, clip-y-origin, clip-mask -</para> -<para> -GC mode-dependent components: foreground, background, tile, stipple, -tile-stipple-x-origin, tile-stipple-y-origin -<!-- .sp --> -</para> - </section> - <section id="requests:PolyText16"> - <title>PolyText16</title> - <indexterm zone="requests:PolyText16" significance="preferred"><primary>PolyText16</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='3' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='1.0*'/> - <colspec colname='c3' colwidth='1.0*'/> - <spanspec spanname='all' namest='c1' nameend='c3'/> - <tbody> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry spanname='all'> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry spanname='all'> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry spanname='all'> -<emphasis remap='I'>items</emphasis>: LISTofTEXTITEM16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry valign='top' morerows='3'> -<!-- .in +.2i --> -where: - </entry> - </row> - <row> - <entry> -TEXTITEM16: - </entry> - <entry> -TEXTELT16 or FONT - </entry> - </row> - <row> - <entry valign='top' morerows='1'> -TEXTELT16: - </entry> - <entry> -[delta: INT8 - </entry> - </row> - <row> - <entry> -string: STRING16] -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry spanname='all'> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request is similar to -<link linkend="requests:PolyText8"><emphasis role='bold'>PolyText8</emphasis></link>, -except 2-byte (or 16-bit) characters are used. -For fonts defined with linear indexing rather than 2-byte matrix indexing, -the server will interpret each CHAR2B as a 16-bit number that -has been transmitted most significant byte first (that is, byte1 of the -CHAR2B is taken as the most significant byte). -<!-- .sp --> -</para> - </section> - <section id="requests:ImageText8"> - <title>ImageText8</title> - <indexterm zone="requests:ImageText8" significance="preferred"><primary>ImageText8</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>string</emphasis>: STRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The x and y coordinates are relative to the drawable's origin -and specify the baseline starting position (the initial character origin). -The effect is first to fill a destination rectangle with the background -pixel defined in gc and then to paint the text with the foreground pixel. -The upper-left corner of the filled rectangle is at: -<literallayout class="monospaced"> - [x, y - font-ascent] -</literallayout> -</para> -<para> -the width is: -<literallayout class="monospaced"> - overall-width -</literallayout> -</para> -<para> -and the height is: -<literallayout class="monospaced"> - font-ascent + font-descent -</literallayout> -</para> -<para> -The overall-width, font-ascent, and font-descent are as -they would be returned by a -<link linkend="requests:QueryTextExtents"><emphasis role='bold'>QueryTextExtents</emphasis></link> -call using gc and string. -</para> -<para> -The function and fill-style defined in gc are ignored for this request. -The effective function is -<emphasis role='bold'>Copy</emphasis>, -and the effective fill-style -<emphasis role='bold'>Solid</emphasis>. -</para> -<para> -For fonts defined with 2-byte matrix indexing, -each STRING8 byte is interpreted as a byte2 value of a CHAR2B with a byte1 -value of zero. -</para> -<para> -GC components: plane-mask, foreground, background, font, -subwindow-mode, clip-x-origin, clip-y-origin, clip-mask -<!-- .sp --> -</para> - </section> - <section id="requests:ImageText16"> - <title>ImageText16</title> - <indexterm zone="requests:ImageText16" significance="preferred"><primary>ImageText16</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>gc</emphasis>: GCONTEXT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>string</emphasis>: STRING16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>GContext</emphasis>, -<emphasis role='bold'>Match</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request is similar to -<link linkend="requests:ImageText8"><emphasis role='bold'>ImageText8</emphasis></link>, -except 2-byte (or 16-bit) characters are used. -For fonts defined with linear indexing rather than 2-byte matrix indexing, -the server will interpret each CHAR2B as a 16-bit number that -has been transmitted most significant byte first (that is, byte1 of the -CHAR2B is taken as the most significant byte). -<!-- .sp --> -</para> - </section> - <section id="requests:CreateColormap"> - <title>CreateColormap</title> - <indexterm zone="requests:CreateColormap" significance="preferred"><primary>CreateColormap</primary></indexterm> - <indexterm zone="requests:CreateColormap"><primary>Colormap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mid</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>visual</emphasis>: VISUALID - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>alloc</emphasis>: -{ <emphasis role='bold'>None</emphasis>, -<emphasis role='bold'>All</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis>, -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request creates a colormap of the specified visual type for the screen -on which the window resides and associates the identifier mid with it. -The visual type must be one supported by the screen (or a -<emphasis role='bold'>Match</emphasis> -error results). -The initial values of the colormap entries are undefined for classes -<emphasis role='bold'>GrayScale</emphasis>, -<emphasis role='bold'>PseudoColor</emphasis>, -and -<emphasis role='bold'>DirectColor</emphasis>. -For -<emphasis role='bold'>StaticGray</emphasis>, -<emphasis role='bold'>StaticColor</emphasis>, -and -<emphasis role='bold'>TrueColor</emphasis>, -the entries will have defined values, -but those values are specific to the visual and are not defined -by the core protocol. -For -<emphasis role='bold'>StaticGray</emphasis>, -<emphasis role='bold'>StaticColor</emphasis>, -and -<emphasis role='bold'>TrueColor</emphasis>, -alloc must be specified as -<emphasis role='bold'>None</emphasis> -(or a -<emphasis role='bold'>Match</emphasis> -error results). -For the other classes, if alloc is -<emphasis role='bold'>None</emphasis>, -the colormap initially has no allocated entries, -and clients can allocate entries. -</para> -<para> -If alloc is -<emphasis role='bold'>All</emphasis>, -then the entire colormap is allocated writable. -The initial values of all allocated entries are undefined. -For -<emphasis role='bold'>GrayScale</emphasis> -and -<emphasis role='bold'>PseudoColor</emphasis>, -the effect is as if an -<link linkend="requests:AllocColorCells"><emphasis role='bold'>AllocColorCells</emphasis></link> -request returned all pixel values from zero to N - 1, -where N is the colormap-entries value in the specified visual. -For -<emphasis role='bold'>DirectColor</emphasis>, -the effect is as if an -<link linkend="requests:AllocColorPlanes"><emphasis role='bold'>AllocColorPlanes</emphasis></link> -request returned a pixel value of zero and red-mask, -green-mask, and blue-mask values containing the same bits as the -corresponding masks in the specified visual. -However, -in all cases, none of these entries can be freed with -<link linkend="requests:FreeColors"><emphasis role='bold'>FreeColors</emphasis></link>. -<!-- .sp --> -</para> - </section> - <section id="requests:FreeColormap"> - <title>FreeColormap</title> - <indexterm zone="requests:FreeColormap" significance="preferred"><primary>FreeColormap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Colormap</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request deletes the association between the resource ID and the colormap -and frees the colormap storage. -If the colormap is an installed map for a screen, -it is uninstalled (see -<link linkend="requests:UninstallColormap"><emphasis role='bold'>UninstallColormap</emphasis></link> -request). -If the colormap is defined as the colormap for a window (by means of -<link linkend="requests:CreateWindow"><emphasis role='bold'>CreateWindow</emphasis></link> -or -<link linkend="requests:ChangeWindowAttributes"><emphasis role='bold'>ChangeWindowAttributes</emphasis></link>), -the colormap for the window is changed to -<emphasis role='bold'>None</emphasis>, -and a -<link linkend="events:ColormapNotify"><emphasis role='bold'>ColormapNotify</emphasis></link> -event is generated. -The protocol does not define the colors displayed for a window with a colormap of -<emphasis role='bold'>None</emphasis>. -</para> -<para> -This request has no effect on a default colormap for a screen. -<!-- .sp --> -</para> - </section> - <section id="requests:CopyColormapAndFree"> - <title>CopyColormapAndFree</title> - <indexterm zone="requests:CopyColormapAndFree" significance="preferred"><primary>CopyColormapAndFree</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mid</emphasis>, <emphasis remap='I'>src-cmap</emphasis>: COLORMAP -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>IDChoice</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request creates a colormap of the same visual type -and for the same screen as src-cmap, -and it associates identifier mid with it. -It also moves all of the client's existing allocations from src-cmap -to the new colormap with their color values intact -and their read-only or writable characteristics intact, -and it frees those entries in src-cmap. -Color values in other entries in the new colormap are undefined. -If src-cmap was created by the client with alloc -<emphasis role='bold'>All</emphasis> -(see -<link linkend="requests:CreateColormap"><emphasis role='bold'>CreateColormap</emphasis></link> -request), -then the new colormap is also created with alloc -<emphasis role='bold'>All</emphasis>, -all color values for all entries are copied from src-cmap, -and then all entries in src-cmap are freed. -If src-cmap was not created by the client with alloc -<emphasis role='bold'>All</emphasis>, -then the allocations to be moved are all those pixels and planes that have -been allocated by the client using either -<link linkend="requests:AllocColor"><emphasis role='bold'>AllocColor</emphasis></link>, -<link linkend="requests:AllocNamedColor"><emphasis role='bold'>AllocNamedColor</emphasis></link>, -<link linkend="requests:AllocColorCells"><emphasis role='bold'>AllocColorCells</emphasis></link>, -or -<link linkend="requests:AllocColorPlanes"><emphasis role='bold'>AllocColorPlanes</emphasis></link> -and that have not been freed since they were allocated. -<!-- .sp --> -</para> - </section> - <section id="requests:InstallColormap"> - <title>InstallColormap</title> - <indexterm zone="requests:InstallColormap" significance="preferred"><primary>InstallColormap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Colormap</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request makes this colormap an installed map for its screen. -All windows associated with this colormap immediately display with true colors. -As a side effect, -additional colormaps might be implicitly installed -or uninstalled by the server. -Which other colormaps get installed or uninstalled is server-dependent -except that the required list must remain installed. -</para> -<para> -If cmap is not already an installed map, a -<link linkend="events:ColormapNotify"><emphasis role='bold'>ColormapNotify</emphasis></link> -event is generated on every window having cmap as an attribute. -In addition, -for every other colormap that is installed or uninstalled as a result -of the request, a -<emphasis role='bold'>ColormapNotify</emphasis> -event is generated on every window having that colormap as an attribute. -</para> -<para> -At any time, there is a subset of the installed maps that are viewed as an -ordered list and are called the required list. -The length of the required list is at most M, -where M is the min-installed-maps specified for the screen in the -connection setup. -The required list is maintained as follows. -When a colormap is an explicit argument to -<emphasis role='bold'>InstallColormap</emphasis>, -it is added to the head of the list; the list is truncated at the -tail, if necessary, to keep the length of the list to at most M. -When a colormap is an explicit argument to -<link linkend="requests:UninstallColormap"><emphasis role='bold'>UninstallColormap</emphasis></link> -and it is in the required list, it is removed from the list. -A colormap is not added to the required list when it is installed implicitly -by the server, and the server cannot implicitly uninstall a colormap that is -in the required list. -</para> -<para> -Initially the default colormap for a screen is installed (but is not in -the required list). -<!-- .sp --> -</para> - </section> - <section id="requests:UninstallColormap"> - <title>UninstallColormap</title> - <indexterm zone="requests:UninstallColormap" significance="preferred"><primary>UninstallColormap</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Colormap</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If cmap is on the required list for its screen (see -<link linkend="requests:InstallColormap"><emphasis role='bold'>InstallColormap</emphasis></link> -request), -it is removed from the list. -As a side effect, -cmap might be uninstalled, -and additional colormaps might be implicitly installed or uninstalled. -Which colormaps get installed or uninstalled is server-dependent -except that the required list must remain installed. -</para> -<para> -If cmap becomes uninstalled, a -<link linkend="events:ColormapNotify"><emphasis role='bold'>ColormapNotify</emphasis></link> -event is generated on every window having cmap as an attribute. -In addition, -for every other colormap that is installed or uninstalled as a result of -the request, a -<emphasis role='bold'>ColormapNotify</emphasis> -event is generated on every window having that colormap as an attribute. -<!-- .sp --> -</para> - </section> - <section id="requests:ListInstalledColormaps"> - <title>ListInstalledColormaps</title> - <indexterm zone="requests:ListInstalledColormaps" significance="preferred"><primary>ListInstalledColormaps</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -cmaps: LISTofCOLORMAP -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Window</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns a list of the currently installed colormaps for the -screen of the specified window. -The order of colormaps is not significant, -and there is no explicit indication of the required list (see -<link linkend="requests:InstallColormap"><emphasis role='bold'>InstallColormap</emphasis></link> -request). -<!-- .sp --> -</para> - </section> - <section id="requests:AllocColor"> - <title>AllocColor</title> - <indexterm zone="requests:AllocColor" significance="preferred"><primary>AllocColor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>red</emphasis>, <emphasis remap='I'>green</emphasis>, <emphasis remap='I'>blue</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -pixel: CARD32 - </entry> - </row> - <row> - <entry> -red, green, blue: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Colormap</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request allocates a read-only colormap entry corresponding to the closest -RGB values provided by the hardware. -It also returns the pixel and the RGB values actually used. -Multiple clients requesting the same effective RGB values can be assigned -the same read-only entry, allowing entries to be shared. -<!-- .sp --> -</para> - </section> - <section id="requests:AllocNamedColor"> - <title>AllocNamedColor</title> - <indexterm zone="requests:AllocNamedColor" significance="preferred"><primary>AllocNamedColor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>name</emphasis>: STRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -pixel: CARD32 - </entry> - </row> - <row> - <entry> -exact-red, exact-green, exact-blue: CARD16 - </entry> - </row> - <row> - <entry> -visual-red, visual-green, visual-blue: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Name</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request looks up the named color with respect to the screen associated -with the colormap. -Then, it does an -<link linkend="requests:AllocColor"><emphasis role='bold'>AllocColor</emphasis></link> -on cmap. -The name should use the ISO Latin-1 encoding, -and uppercase and lowercase do not matter. -The exact RGB values specify the true values for the color, -and the visual values specify the values actually used in the colormap. -<!-- .sp --> -</para> - </section> - <section id="requests:AllocColorCells"> - <title>AllocColorCells</title> - <indexterm zone="requests:AllocColorCells" significance="preferred"><primary>AllocColorCells</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>colors</emphasis>, <emphasis remap='I'>planes</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>contiguous</emphasis>: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -pixels, masks: LISTofCARD32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The number of colors must be positive, -and the number of planes must be nonnegative (or a -<emphasis role='bold'>Value</emphasis> -error results). -If C colors and P planes are requested, -then C pixels and P masks are returned. -No mask will have any bits in common with any other mask -or with any of the pixels. -By ORing together masks and pixels, -C*%2 sup P% distinct pixels can be produced; -all of these are allocated writable by the request. -For -<emphasis role='bold'>GrayScale</emphasis> -or -<emphasis role='bold'>PseudoColor</emphasis>, -each mask will have exactly one bit set to 1; for -<emphasis role='bold'>DirectColor</emphasis>, -each will have exactly three bits set to 1. -If contiguous is -<emphasis role='bold'>True</emphasis> -and if all masks are ORed together, -a single contiguous set of bits will be formed for -<emphasis role='bold'>GrayScale</emphasis> -or -<emphasis role='bold'>PseudoColor</emphasis>, -and three contiguous sets of bits (one within each pixel subfield) for -<emphasis role='bold'>DirectColor</emphasis>. -The RGB values of the allocated entries are undefined. -<!-- .sp --> -</para> - </section> - <section id="requests:AllocColorPlanes"> - <title>AllocColorPlanes</title> - <indexterm zone="requests:AllocColorPlanes" significance="preferred"><primary>AllocColorPlanes</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>colors</emphasis>, <emphasis remap='I'>reds</emphasis>, <emphasis remap='I'>greens</emphasis>, <emphasis remap='I'>blues</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>contiguous</emphasis>: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -pixels: LISTofCARD32 - </entry> - </row> - <row> - <entry> -red-mask, green-mask, blue-mask: CARD32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The number of colors must be positive, -and the reds, greens, and blues must be nonnegative (or a -<emphasis role='bold'>Value</emphasis> -error results). -If C colors, R reds, G greens, and B blues are requested, -then C pixels are returned, and the masks have R, G, and B bits set, -respectively. -If contiguous is -<emphasis role='bold'>True</emphasis>, -then each mask will have a contiguous set of bits. -No mask will have any bits in common with any other mask -or with any of the pixels. -For -<emphasis role='bold'>DirectColor</emphasis>, -each mask will lie within the corresponding pixel subfield. -By ORing together subsets of masks with pixels, -C*%2 sup R+G+B% distinct pixels can be produced; -all of these are allocated writable by the request. -The initial RGB values of the allocated entries are undefined. -In the colormap, -there are only C*%2 sup R% independent red entries, -C*%2 sup G% independent green entries, -and C*%2 sup B% independent blue entries. -This is true even for -<emphasis role='bold'>PseudoColor</emphasis>. -When the colormap entry for a pixel value is changed using -<link linkend="requests:StoreColors"><emphasis role='bold'>StoreColors</emphasis></link> -or -<link linkend="requests:StoreNamedColor"><emphasis role='bold'>StoreNamedColor</emphasis></link>, -the pixel is decomposed according to the masks and the -corresponding independent entries are updated. -<!-- .sp --> -</para> - </section> - <section id="requests:FreeColors"> - <title>FreeColors</title> - <indexterm zone="requests:FreeColors" significance="preferred"><primary>FreeColors</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pixels</emphasis>: LISTofCARD32 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>plane-mask</emphasis>: CARD32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The plane-mask should not have any bits in common with any of the -pixels. -The set of all pixels is produced by ORing together subsets of -plane-mask with the pixels. -The request frees all of these pixels that -were allocated by the client (using -<link linkend="requests:AllocColor"><emphasis role='bold'>AllocColor</emphasis></link>, -<link linkend="requests:AllocNamedColor"><emphasis role='bold'>AllocNamedColor</emphasis></link>, -<link linkend="requests:AllocColorCells"><emphasis role='bold'>AllocColorCells</emphasis></link>, -and -<link linkend="requests:AllocColorPlanes"><emphasis role='bold'>AllocColorPlanes</emphasis></link>). -Note that freeing an -individual pixel obtained from -<link linkend="requests:AllocColorPlanes"><emphasis role='bold'>AllocColorPlanes</emphasis></link> -may not actually allow it to be reused until all of its related pixels -are also freed. -Similarly, a read-only entry is not actually freed until it has been -freed by all clients, and if a client allocates the same read-only entry -multiple times, it must free the entry that many times before the -entry is actually freed. -</para> -<para> -All specified pixels that are allocated by the client in cmap are freed, -even if one or more pixels produce an error. -A -<emphasis role='bold'>Value</emphasis> -error is generated if a specified pixel is not a valid index into cmap. -An -<emphasis role='bold'>Access</emphasis> -error is generated if a specified pixel is not allocated by the -client (that is, is unallocated or is only allocated by another client) -or if the colormap was created with all entries writable (using an alloc -value of -<emphasis role='bold'>All</emphasis> -in -<link linkend="requests:CreateColormap"><emphasis role='bold'>CreateColormap</emphasis></link>). -If more than one pixel is in error, -it is arbitrary as to which pixel is reported. -<!-- .sp --> -</para> - </section> - <section id="requests:StoreColors"> - <title>StoreColors</title> - <indexterm zone="requests:StoreColors" significance="preferred"><primary>StoreColors</primary></indexterm> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>items</emphasis>: LISTofCOLORITEM - </entry> - </row> - <row> - <entry> -where: - </entry> - </row> - <row> - <entry> - <para> - <informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <tbody> - <row> - <entry>COLORITEM:</entry> - <entry>[pixel: CARD32</entry> - </row> - <row> - <entry></entry> - <entry> -do-red, do-green, do-blue: BOOL - </entry> - </row> - <row> - <entry></entry> - <entry> -red, green, blue: CARD16] - </entry> - </row> - </tbody> - </tgroup> - </informaltable> - </para> - </entry> - </row> - <row> - <entry> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Value</emphasis> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -This request changes the colormap entries of the specified pixels. -The do-red, do-green, and do-blue fields indicate which components -should actually be changed. -If the colormap is an installed map for its screen, -the changes are visible immediately. -</para> -<para> -All specified pixels that are allocated writable in cmap (by any client) -are changed, even if one or more pixels produce an error. -A -<emphasis role='bold'>Value</emphasis> -error is generated if a specified pixel is not a valid index into cmap, and an -<emphasis role='bold'>Access</emphasis> -error is generated if a specified pixel is unallocated or is allocated -read-only. -If more than one pixel is in error, -it is arbitrary as to which pixel is reported. -<!-- .sp --> -</para> - </section> - <section id="requests:StoreNamedColor"> - <title>StoreNamedColor</title> - <indexterm zone="requests:StoreNamedColor" significance="preferred"><primary>StoreNamedColor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pixel</emphasis>: CARD32 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>name</emphasis>: STRING8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>do-red</emphasis>, <emphasis remap='I'>do-green</emphasis>, <emphasis remap='I'>do-blue</emphasis>: BOOL -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Name</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request looks up the named color with respect to the screen associated -with cmap and then does a -<link linkend="requests:StoreColors"><emphasis role='bold'>StoreColors</emphasis></link> -in cmap. -The name should use the ISO Latin-1 encoding, -and uppercase and lowercase do not matter. -The -<emphasis role='bold'>Access</emphasis> -and -<emphasis role='bold'>Value</emphasis> -errors are the same as in -<emphasis role='bold'>StoreColors</emphasis>. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryColors"> - <title>QueryColors</title> - <indexterm zone="requests:QueryColors" significance="preferred"><primary>QueryColors</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>pixels</emphasis>: LISTofCARD32 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -colors: LISTofRGB -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -where: -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -RGB: [red, green, blue: CARD16] -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the hardware-specific color values stored in cmap for -the specified pixels. -The values returned for an unallocated entry are undefined. -A -<emphasis role='bold'>Value</emphasis> -error is generated if a pixel is not a valid index into cmap. -If more than one pixel is in error, -it is arbitrary as to which pixel is reported. -<!-- .sp --> -</para> - </section> - <section id="requests:LookupColor"> - <title>LookupColor</title> - <indexterm zone="requests:LookupColor" significance="preferred"><primary>LookupColor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cmap</emphasis>: COLORMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>name</emphasis>: STRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -exact-red, exact-green, exact-blue: CARD16 - </entry> - </row> - <row> - <entry> -visual-red, visual-green, visual-blue: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Colormap</emphasis>, -<emphasis role='bold'>Name</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request looks up the string name of a color with respect to the screen -associated with cmap and returns both the exact color values and -the closest values provided by the hardware with respect to the visual -type of cmap. -The name should use the ISO Latin-1 encoding, -and uppercase and lowercase do not matter. -<!-- .sp --> -</para> - </section> - <section id="requests:CreateCursor"> - <title>CreateCursor</title> - <indexterm zone="requests:CreateCursor" significance="preferred"><primary>CreateCursor</primary></indexterm> - <indexterm zone="requests:CreateCursor"><primary>Cursor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cid</emphasis>: CURSOR - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>source</emphasis>: PIXMAP - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>mask</emphasis>: PIXMAP or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>fore-red</emphasis>, <emphasis remap='I'>fore-green</emphasis>, <emphasis remap='I'>fore-blue</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>back-red</emphasis>, <emphasis remap='I'>back-green</emphasis>, <emphasis remap='I'>back-blue</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Pixmap</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request creates a cursor and associates identifier cid with it. -The foreground and background RGB values must be specified, -even if the server only has a -<emphasis role='bold'>StaticGray</emphasis> -or -<emphasis role='bold'>GrayScale</emphasis> -screen. -The foreground is used for the bits set to 1 in the source, -and the background is used for the bits set to 0. -Both source and mask (if specified) must have depth one (or a -<emphasis role='bold'>Match</emphasis> -error results), but they can have any root. -The mask pixmap defines the shape of the cursor. -That is, -the bits set to 1 in the mask define which source pixels will be displayed, -and where the mask has bits set to 0, -the corresponding bits of the source pixmap are ignored. -If no mask is given, -all pixels of the source are displayed. -The mask, if present, must be the same size as the source (or a -<emphasis role='bold'>Match</emphasis> -error results). -The x and y coordinates define the hotspot relative to the source's origin -and must be a point within the source (or a -<emphasis role='bold'>Match</emphasis> -error results). -</para> -<para> -The components of the cursor may be transformed arbitrarily to meet -display limitations. -</para> -<para> -The pixmaps can be freed immediately if no further explicit references -to them are to be made. -</para> -<para> -Subsequent drawing in the source or mask pixmap has an undefined effect -on the cursor. -The server might or might not make a copy of the pixmap. -<!-- .sp --> -</para> - </section> - <section id="requests:CreateGlyphCursor"> - <title>CreateGlyphCursor</title> - <indexterm zone="requests:CreateGlyphCursor" significance="preferred"><primary>CreateGlyphCursor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cid</emphasis>: CURSOR - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>source-font</emphasis>: FONT - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>mask-font</emphasis>: FONT or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>source-char</emphasis>, <emphasis remap='I'>mask-char</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>fore-red</emphasis>, <emphasis remap='I'>fore-green</emphasis>, <emphasis remap='I'>fore-blue</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>back-red</emphasis>, <emphasis remap='I'>back-green</emphasis>, <emphasis remap='I'>back-blue</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Font</emphasis>, -<emphasis role='bold'>IDChoice</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request is similar to -<link linkend="requests:CreateCursor"><emphasis role='bold'>CreateCursor</emphasis></link>, -except the source and mask bitmaps are obtained from the specified font glyphs. -The source-char must be a defined glyph in source-font, -and if mask-font is given, mask-char must be a defined glyph in mask-font -(or a -<emphasis role='bold'>Value</emphasis> -error results). -The mask font and character are optional. -The origins of the source and mask (if it is defined) glyphs -are positioned coincidently and define the hotspot. -The source and mask need not have the same bounding box metrics, -and there is no restriction on the placement of the hotspot relative -to the bounding boxes. -If no mask is given, -all pixels of the source are displayed. -Note that source-char and mask-char are CARD16, not CHAR2B. -For 2-byte matrix fonts, -the 16-bit value should be formed with byte1 in the most significant byte -and byte2 in the least significant byte. -</para> -<para> -The components of the cursor may be transformed arbitrarily to meet -display limitations. -</para> -<para> -The fonts can be freed immediately if no further explicit references to -them are to be made. -<!-- .sp --> -</para> - </section> - <section id="requests:FreeCursor"> - <title>FreeCursor</title> - <indexterm zone="requests:FreeCursor" significance="preferred"><primary>FreeCursor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cursor</emphasis>: CURSOR -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Cursor</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request deletes the association between the resource ID and the cursor. -The cursor storage will be freed when no other resource references it. -<!-- .sp --> -</para> - </section> - <section id="requests:RecolorCursor"> - <title>RecolorCursor</title> - <indexterm zone="requests:RecolorCursor" significance="preferred"><primary>RecolorCursor</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>cursor</emphasis>: CURSOR - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>fore-red</emphasis>, <emphasis remap='I'>fore-green</emphasis>, <emphasis remap='I'>fore-blue</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>back-red</emphasis>, <emphasis remap='I'>back-green</emphasis>, <emphasis remap='I'>back-blue</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Cursor</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request changes the color of a cursor. -If the cursor is being displayed on a screen, -the change is visible immediately. -<!-- .sp --> -</para> - </section> - <section id="requests:QueryBestSize"> - <title>QueryBestSize</title> - <indexterm zone="requests:QueryBestSize" significance="preferred"><primary>QueryBestSize</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>class</emphasis>: -{ <emphasis role='bold'>Cursor</emphasis>, -<emphasis role='bold'>Tile</emphasis>, -<emphasis role='bold'>Stipple</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -width, height: CARD16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Drawable</emphasis>, -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the best size that is closest to the argument size. -For -<emphasis role='bold'>Cursor</emphasis>, -this is the largest size that can be fully displayed. -For -<emphasis role='bold'>Tile</emphasis>, -this is the size that can be tiled fastest. -For -<emphasis role='bold'>Stipple</emphasis>, -this is the size that can be stippled fastest. -</para> -<para> -For -<emphasis role='bold'>Cursor</emphasis>, -the drawable indicates the desired screen. -For -<emphasis role='bold'>Tile</emphasis> -and -<emphasis role='bold'>Stipple</emphasis>, -the drawable indicates the screen and also possibly the window class and depth. -An -<emphasis role='bold'>InputOnly</emphasis> -window cannot be used as the drawable for -<emphasis role='bold'>Tile</emphasis> -or -<emphasis role='bold'>Stipple</emphasis> -(or a -<emphasis role='bold'>Match</emphasis> -error results). -<!-- .sp --> -</para> - </section> - <section id="requests:QueryExtension"> - <title>QueryExtension</title> - <indexterm zone="requests:QueryExtension" significance="preferred"><primary>QueryExtension</primary></indexterm> - <indexterm zone="requests:QueryExtension"><primary>Extension</primary><secondary>querying</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>name</emphasis>: STRING8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -present: BOOL - </entry> - </row> - <row> - <entry> -major-opcode: CARD8 - </entry> - </row> - <row> - <entry> -first-event: CARD8 - </entry> - </row> - <row> - <entry> -first-error: CARD8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request determines if the named extension is present. -If so, -the major opcode for the extension is returned, if it has one. -Otherwise, zero is returned. -Any minor opcode and the request formats are specific to the extension. -If the extension involves additional event types, -the base event type code is returned. -Otherwise, zero is returned. -The format of the events is specific to the extension. -If the extension involves additional error codes, -the base error code is returned. -Otherwise, zero is returned. -The format of additional data in the errors is specific to the extension. -</para> -<para> -The extension name should use the ISO Latin-1 encoding, -and uppercase and lowercase matter. -<!-- .sp --> -</para> - </section> - <section id="requests:ListExtensions"> - <title>ListExtensions</title> - <indexterm zone="requests:ListExtensions" significance="preferred"><primary>ListExtensions</primary></indexterm> - <indexterm zone="requests:ListExtensions"><primary>Extension</primary><secondary>listing</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -names: LISTofSTRING8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns a list of all extensions supported by the server. -</para> - </section> - <section id="requests:SetModifierMapping"> - <title>SetModifierMapping</title> - <indexterm zone="requests:SetModifierMapping" significance="preferred"><primary>SetModifierMapping</primary></indexterm> - <indexterm zone="requests:SetModifierMapping"><primary>Modifier keys</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>keycodes-per-modifier</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>keycodes</emphasis>: LISTofKEYCODE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -status: -{ <emphasis role='bold'>Success</emphasis>, -<emphasis role='bold'>Busy</emphasis>, -<emphasis role='bold'>Failed</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request specifies the keycodes (if any) of the keys to be used as -modifiers. -The number of keycodes in the list must be 8*keycodes-per-modifier (or a -<emphasis role='bold'>Length</emphasis> -error results). -The keycodes are divided into eight sets, -with each set containing keycodes-per-modifier elements. -The sets are assigned to the modifiers -<emphasis role='bold'>Shift</emphasis>, -<emphasis role='bold'>Lock</emphasis>, -<emphasis role='bold'>Control</emphasis>, -<emphasis role='bold'>Mod1</emphasis>, -<emphasis role='bold'>Mod2</emphasis>, -<emphasis role='bold'>Mod3</emphasis>, -<emphasis role='bold'>Mod4</emphasis>, -and -<emphasis role='bold'>Mod5</emphasis>, -in order. -Only nonzero keycode values are used within each set; -zero values are ignored. -All of the nonzero keycodes must be in the range specified by min-keycode -and max-keycode in the connection setup (or a -<emphasis role='bold'>Value</emphasis> -error results). -The order of keycodes within a set does not matter. -If no nonzero values are specified in a set, -the use of the corresponding modifier is disabled, -and the modifier bit will always be zero. -Otherwise, the modifier bit will be one whenever -at least one of the keys in the corresponding set is in the down -position. -</para> -<para> -A server can impose restrictions on how modifiers can be changed (for example, -if certain keys do not generate up transitions in hardware, -if auto-repeat cannot be disabled on certain keys, -or if multiple keys per modifier are not supported). -The status reply is -<emphasis role='bold'>Failed</emphasis> -if some such restriction is violated, -and none of the modifiers is changed. -</para> -<para> -If the new nonzero keycodes specified for a modifier differ from those -currently defined and any (current or new) keys for that modifier are -logically in the down state, then the status reply is -<emphasis role='bold'>Busy</emphasis>, -and none of the modifiers is changed. -</para> -<para> -This request generates a -<link linkend="events:MappingNotify"><emphasis role='bold'>MappingNotify</emphasis></link> -event on a -<emphasis role='bold'>Success</emphasis> -status. -<!-- .sp --> -</para> - </section> - <section id="requests:GetModifierMapping"> - <title>GetModifierMapping</title> - <indexterm zone="requests:GetModifierMapping" significance="preferred"><primary>GetModifierMapping</primary></indexterm> - <indexterm zone="requests:GetModifierMapping"><primary>Modifier keys</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -keycodes-per-modifier: CARD8 - </entry> - </row> - <row> - <entry> -keycodes: LISTofKEYCODE -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the keycodes of the keys being used as modifiers. -The number of keycodes in the list is 8*keycodes-per-modifier. -The keycodes are divided into eight sets, -with each set containing keycodes-per-modifier elements. -The sets are assigned to the modifiers -<emphasis role='bold'>Shift</emphasis>, -<emphasis role='bold'>Lock</emphasis>, -<emphasis role='bold'>Control</emphasis>, -<emphasis role='bold'>Mod1</emphasis>, -<emphasis role='bold'>Mod2</emphasis>, -<emphasis role='bold'>Mod3</emphasis>, -<emphasis role='bold'>Mod4</emphasis>, -and -<emphasis role='bold'>Mod5</emphasis>, -in order. -The keycodes-per-modifier value is chosen arbitrarily by the server; -zeroes are used to fill in unused elements within each set. -If only zero values are given in a set, -the use of the corresponding modifier has been disabled. -The order of keycodes within each set is chosen arbitrarily by the server. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeKeyboardMapping"> - <title>ChangeKeyboardMapping</title> - <indexterm zone="requests:ChangeKeyboardMapping" significance="preferred"><primary>ChangeKeyboardMapping</primary></indexterm> - <indexterm zone="requests:ChangeKeyboardMapping"><primary>Keysym</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>first-keycode</emphasis>: KEYCODE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>keysyms-per-keycode</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>keysyms</emphasis>: LISTofKEYSYM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Alloc</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request defines the symbols for the specified number of keycodes, -starting with the specified keycode. -The symbols for keycodes outside this range remained unchanged. -The number of elements in the keysyms list must be a multiple of -keysyms-per-keycode (or a -<emphasis role='bold'>Length</emphasis> -error results). -The first-keycode must be greater than or equal to min-keycode as returned -in the connection setup (or a -<emphasis role='bold'>Value</emphasis> -error results) and: -<literallayout class="monospaced"> - first-keycode + (keysyms-length / keysyms-per-keycode) - 1 -</literallayout> -</para> -<para> -must be less than or equal to max-keycode as returned in the connection -setup (or a -<emphasis role='bold'>Value</emphasis> -error results). -KEYSYM number N (counting from zero) for keycode K has an index -(counting from zero) of: -<literallayout class="monospaced"> - (K - first-keycode) * keysyms-per-keycode + N -</literallayout> -</para> -<para> -in keysyms. -The keysyms-per-keycode can be chosen arbitrarily by the client -to be large enough to hold all desired symbols. -A special KEYSYM value of -<keysym>NoSymbol</keysym> -should be used to fill in unused elements for individual keycodes. -It is legal for -<keysym>NoSymbol</keysym> -to appear in nontrailing positions of the effective list for a keycode. -</para> -<para> -This request generates a -<link linkend="events:MappingNotify"><emphasis role='bold'>MappingNotify</emphasis></link> -event. -</para> -<para> -There is no requirement that the server interpret this mapping; -it is merely stored for reading and writing by clients -(see <link linkend='Keyboards'>section 5</link>). -<!-- .sp --> -</para> - </section> - <section id="requests:GetKeyboardMapping"> - <title>GetKeyboardMapping</title> - <indexterm zone="requests:GetKeyboardMapping" significance="preferred"><primary>GetKeyboardMapping</primary></indexterm> - <indexterm zone="requests:GetKeyboardMapping"><primary>Keysym</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>first-keycode</emphasis>: KEYCODE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>count</emphasis>: CARD8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -keysyms-per-keycode: CARD8 - </entry> - </row> - <row> - <entry> -keysyms: LISTofKEYSYM -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the symbols for the specified number of keycodes, -starting with the specified keycode. -The first-keycode must be greater than or equal to -min-keycode as returned in the connection setup (or a -<emphasis role='bold'>Value</emphasis> -error results), and: -<literallayout class="monospaced"> - first-keycode + count - 1 -</literallayout> -</para> -<para> -must be less than or equal to max-keycode as returned in the connection setup -(or a -<emphasis role='bold'>Value</emphasis> -error results). -The number of elements in the keysyms list is: -<literallayout class="monospaced"> - count * keysyms-per-keycode -</literallayout> -</para> -<para> -and KEYSYM number N (counting from zero) for keycode K has an index -(counting from zero) of: -<literallayout class="monospaced"> - (K - first-keycode) * keysyms-per-keycode + N -</literallayout> -</para> -<para> -in keysyms. -The keysyms-per-keycode value is chosen arbitrarily by the server -to be large enough to report all requested symbols. -A special KEYSYM value of -<keysym>NoSymbol</keysym> -is used to fill in unused elements for individual keycodes. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeKeyboardControl"> - <title>ChangeKeyboardControl</title> - <indexterm zone="requests:ChangeKeyboardControl" significance="preferred"><primary>ChangeKeyboardControl</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>value-mask</emphasis>: BITMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-list</emphasis>: LISTofVALUE -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -Errors: -<emphasis role='bold'>Match</emphasis>, -<emphasis role='bold'>Value</emphasis> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -This request controls various aspects of the keyboard. -The value-mask and value-list specify which controls are to be changed. -The possible values are: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Control</entry> - <entry>Type</entry> - </row> - </thead> - <tbody> - <row> - <entry>key-click-percent</entry> - <entry>INT8</entry> - </row> - <row> - <entry>bell-percent</entry> - <entry>INT8</entry> - </row> - <row> - <entry>bell-pitch</entry> - <entry>INT16</entry> - </row> - <row> - <entry>bell-duration</entry> - <entry>INT16</entry> - </row> - <row> - <entry>led</entry> - <entry>CARD8</entry> - </row> - <row> - <entry>led-mode</entry> - <entry> -{ <emphasis role='bold'>On</emphasis>, -<emphasis role='bold'>Off</emphasis> } - </entry> - </row> - <row> - <entry>key </entry> - <entry>KEYCODE</entry> - </row> - <row> - <entry>auto-repeat-mode</entry> - <entry> -{ <emphasis role='bold'>On</emphasis>, -<emphasis role='bold'>Off</emphasis>, -<emphasis role='bold'>Default</emphasis> } - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -The key-click-percent sets the volume for key clicks between 0 (off) and -100 (loud) inclusive, if possible. -Setting to -1 restores the default. -Other negative values generate a -<emphasis role='bold'>Value</emphasis> -error. -</para> -<para> -The bell-percent sets the base volume for the bell between 0 (off) and 100 -(loud) inclusive, if possible. -Setting to -1 restores the default. -Other negative values generate a -<emphasis role='bold'>Value</emphasis> -error. -</para> -<para> -The bell-pitch sets the pitch (specified in Hz) of the bell, if possible. -Setting to -1 restores the default. -Other negative values generate a -<emphasis role='bold'>Value</emphasis> -error. -</para> -<para> -The bell-duration sets the duration of the bell (specified in milliseconds), -if possible. -Setting to -1 restores the default. -Other negative values generate a -<emphasis role='bold'>Value</emphasis> -error. -</para> -<para> -If both led-mode and led are specified, -then the state of that LED is changed, if possible. -If only led-mode is specified, -then the state of all LEDs are changed, if possible. -At most 32 LEDs, numbered from one, are supported. -No standard interpretation of LEDs is defined. -It is a -<emphasis role='bold'>Match</emphasis> -error if an led is specified without an led-mode. -</para> -<para> -If both auto-repeat-mode and key are specified, -then the auto-repeat mode of that key is changed, if possible. -If only auto-repeat-mode is specified, -then the global auto-repeat mode for the entire keyboard is changed, -if possible, without affecting the per-key settings. -It is a -<emphasis role='bold'>Match</emphasis> -error if a key is specified without an auto-repeat-mode. -Each key has an individual mode of whether or not it should auto-repeat -and a default setting for that mode. -In addition, there is a global mode of whether auto-repeat should be -enabled or not and a default setting for that mode. -When the global mode is -<emphasis role='bold'>On</emphasis>, -keys should obey their individual auto-repeat modes. -When the global mode is -<emphasis role='bold'>Off</emphasis>, -no keys should auto-repeat. -An auto-repeating key generates alternating -<link linkend="events:KeyPress"><emphasis role='bold'>KeyPress</emphasis></link> -and -<link linkend="events:KeyRelease"><emphasis role='bold'>KeyRelease</emphasis></link> -events. -When a key is used as a modifier, -it is desirable for the key not to auto-repeat, -regardless of the auto-repeat setting for that key. -</para> -<para> -A bell generator connected with the console but not directly on the -keyboard is treated as if it were part of the keyboard. -</para> -<para> -The order in which controls are verified and altered is server-dependent. -If an error is generated, -a subset of the controls may have been altered. -<!-- .sp --> -</para> - </section> - <section id="requests:GetKeyboardControl"> - <title>GetKeyboardControl</title> - <indexterm zone="requests:GetKeyboardControl" significance="preferred"><primary>GetKeyboardControl</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -key-click-percent: CARD8 - </entry> - </row> - <row> - <entry> -bell-percent: CARD8 - </entry> - </row> - <row> - <entry> -bell-pitch: CARD16 - </entry> - </row> - <row> - <entry> -bell-duration: CARD16 - </entry> - </row> - <row> - <entry> -led-mask: CARD32 - </entry> - </row> - <row> - <entry> -global-auto-repeat: -{ <emphasis role='bold'>On</emphasis>, -<emphasis role='bold'>Off</emphasis>} - </entry> - </row> - <row> - <entry> -auto-repeats: LISTofCARD8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current control values for the keyboard. -For the LEDs, -the least significant bit of led-mask corresponds to LED one, -and each one bit in led-mask indicates an LED that is lit. -The auto-repeats is a bit vector; -each one bit indicates that auto-repeat is enabled for the corresponding key. -The vector is represented as 32 bytes. -Byte N (from 0) contains the bits for keys 8N to 8N + 7, -with the least significant bit in the byte representing key 8N. -<!-- .sp --> -</para> - </section> - <section id="requests:Bell"> - <title>Bell</title> - <indexterm zone="requests:Bell" significance="preferred"><primary>Bell</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>percent</emphasis>: INT8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request rings the bell on the keyboard at a volume relative to the -base volume for the keyboard, if possible. -Percent can range from -100 to 100 inclusive (or a -<emphasis role='bold'>Value</emphasis> -error results). -The volume at which the bell is rung when percent is nonnegative is: -<literallayout class="monospaced"> - base - [(base * percent) / 100] + percent -</literallayout> -</para> -<para> -When percent is negative, it is: -<literallayout class="monospaced"> - base + [(base * percent) / 100] -</literallayout> -<!-- .sp --> -</para> - </section> - <section id="requests:SetPointerMapping"> - <title>SetPointerMapping</title> - <indexterm zone="requests:SetPointerMapping" significance="preferred"><primary>SetPointerMapping</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>map</emphasis>: LISTofCARD8 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -status: -{ <emphasis role='bold'>Success</emphasis>, -<emphasis role='bold'>Busy</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request sets the mapping of the pointer. -Elements of the list are indexed starting from one. -The length of the list must be the same as -<link linkend="requests:GetPointerMapping"><emphasis role='bold'>GetPointerMapping</emphasis></link> -would return (or a -<emphasis role='bold'>Value</emphasis> -error results). -The index is a core button number, -and the element of the list defines the effective number. -</para> -<para> -A zero element disables a button. -Elements are not restricted in value by the number of physical buttons, -but no two elements can have the same nonzero value (or a -<emphasis role='bold'>Value</emphasis> -error results). -</para> -<para> -If any of the buttons to be altered are logically in the down state, -the status reply is -<emphasis role='bold'>Busy</emphasis>, -and the mapping is not changed. -</para> -<para> -This request generates a -<link linkend="events:MappingNotify"><emphasis role='bold'>MappingNotify</emphasis></link> -event on a -<emphasis role='bold'>Success</emphasis> -status. -<!-- .sp --> -</para> - </section> - <section id="requests:GetPointerMapping"> - <title>GetPointerMapping</title> - <indexterm zone="requests:GetPointerMapping" significance="preferred"><primary>GetPointerMapping</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -map: LISTofCARD8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current mapping of the pointer. -Elements of the list are indexed starting from one. -The length of the list indicates the number of physical buttons. -</para> -<para> -The nominal mapping for a pointer is the identity mapping: map[i]=i. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangePointerControl"> - <title>ChangePointerControl</title> - <indexterm zone="requests:ChangePointerControl" significance="preferred"><primary>ChangePointerControl</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>do-acceleration</emphasis>, <emphasis remap='I'>do-threshold</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>acceleration-numerator</emphasis>, <emphasis remap='I'>acceleration-denominator</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>threshold</emphasis>: INT16 -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request defines how the pointer moves. -The acceleration is a multiplier for movement expressed as a fraction. -For example, -specifying 3/1 means the pointer moves three times as fast as normal. -The fraction can be rounded arbitrarily by the server. -Acceleration only takes effect if the pointer moves more than threshold -number of pixels at once and only applies to the amount beyond the threshold. -Setting a value to -1 restores the default. -Other negative values generate a -<emphasis role='bold'>Value</emphasis> -error, as does a zero value for acceleration-denominator. -<!-- .sp --> -</para> - </section> - <section id="requests:GetPointerControl"> - <title>GetPointerControl</title> - <indexterm zone="requests:GetPointerControl" significance="preferred"><primary>GetPointerControl</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -acceleration-numerator, acceleration-denominator: CARD16 - </entry> - </row> - <row> - <entry> -threshold: CARD16 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current acceleration and threshold for the pointer. -<!-- .sp --> -</para> - </section> - <section id="requests:SetScreenSaver"> - <title>SetScreenSaver</title> - <indexterm zone="requests:SetScreenSaver" significance="preferred"><primary>SetScreenSaver</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>timeout</emphasis>, <emphasis remap='I'>interval</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>prefer-blanking</emphasis>: -{ <emphasis role='bold'>Yes</emphasis>, -<emphasis role='bold'>No</emphasis>, -<emphasis role='bold'>Default</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>allow-exposures</emphasis>: -{ <emphasis role='bold'>Yes</emphasis>, -<emphasis role='bold'>No</emphasis>, -<emphasis role='bold'>Default</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -The timeout and interval are specified in seconds; -setting a value to -1 restores the default. -Other negative values generate a -<emphasis role='bold'>Value</emphasis> -error. -If the timeout value is zero, -screen-saver is disabled (but an activated screen-saver is not deactivated). -If the timeout value is nonzero, -screen-saver is enabled. -Once screen-saver is enabled, -if no input from the keyboard or pointer is generated for timeout seconds, -screen-saver is activated. -For each screen, -if blanking is preferred and the hardware supports video blanking, -the screen will simply go blank. -Otherwise, -if either exposures are allowed or the screen can be regenerated without -sending exposure events to clients, -the screen is changed in a server-dependent fashion to avoid phosphor burn. -Otherwise, -the state of the screens does not change, and screen-saver is not activated. -At the next keyboard or pointer input or at the next -<link linkend="requests:ForceScreenSaver"><emphasis role='bold'>ForceScreenSaver</emphasis></link> -with mode -<emphasis role='bold'>Reset</emphasis>, -screen-saver is deactivated, and all screen states are restored. -</para> -<para> -If the server-dependent screen-saver method is amenable to periodic change, -interval serves as a hint about how long the change period should be, -with zero hinting that no periodic change should be made. -Examples of ways to change the screen include scrambling the color map -periodically, moving an icon image about the screen periodically, or -tiling the screen with the root window background tile, -randomly reorigined periodically. -<!-- .sp --> -</para> - </section> - <section id="requests:GetScreenSaver"> - <title>GetScreenSaver</title> - <indexterm zone="requests:GetScreenSaver" significance="preferred"><primary>GetScreenSaver</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -timeout, interval: CARD16 - </entry> - </row> - <row> - <entry> -prefer-blanking: -{ <emphasis role='bold'>Yes</emphasis>, -<emphasis role='bold'>No</emphasis>} - </entry> - </row> - <row> - <entry> -allow-exposures: -{ <emphasis role='bold'>Yes</emphasis>, -<emphasis role='bold'>No</emphasis>} -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the current screen-saver control values. -<!-- .sp --> -</para> - </section> - <section id="requests:ForceScreenSaver"> - <title>ForceScreenSaver</title> - <indexterm zone="requests:ForceScreenSaver" significance="preferred"><primary>ForceScreenSaver</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Activate</emphasis>, -<emphasis role='bold'>Reset</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If the mode is -<emphasis role='bold'>Activate</emphasis> -and screen-saver is currently deactivated, -then screen-saver is activated (even if screen-saver has been disabled with -a timeout value of zero). -If the mode is -<emphasis role='bold'>Reset</emphasis> -and screen-saver is currently enabled, -then screen-saver is deactivated (if it was activated), -and the activation timer is reset to its initial state -as if device input had just been received. -<!-- .sp --> -</para> - </section> - <section id="requests:ChangeHosts"> - <title>ChangeHosts</title> - <indexterm zone="requests:ChangeHosts" significance="preferred"><primary>ChangeHosts</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Insert</emphasis>, -<emphasis role='bold'>Delete</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>host</emphasis>: HOST -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request adds or removes the specified host from the access control list. -<indexterm zone="requests:ChangeHosts"><primary>Access control list</primary></indexterm> -When the access control mechanism is enabled and a client attempts to -establish a connection to the server, -the host on which the client resides must be in the access control list, -or the client must have been granted permission by a server-dependent -method, or the server will refuse the connection. -</para> -<para> -The client must reside on the same host as the server and/or have been granted -permission by a server-dependent method to execute this request (or an -<emphasis role='bold'>Access</emphasis> -error results). -</para> -<para> -An initial access control list can usually be specified, -typically by naming a file that the server reads at startup and reset. -</para> -<para id="address_families"> -The following address families are defined. -<indexterm zone="address_families"><primary>Types</primary><secondary>HOST</secondary></indexterm> -A server is not required to support these families -and may support families not listed here. -Use of an unsupported family, an improper address format, -or an improper address length within a supported family results in a -<emphasis role='bold'>Value</emphasis> -error. -</para> -<para> -For the Internet family, -the address must be four bytes long. -The address bytes are in standard IP order; -the server performs no automatic swapping on the address bytes. -The Internet family supports IP version 4 addresses only. -</para> -<para> -For the InternetV6 family, the address must be sixteen bytes -long. The address bytes are in standard IP order; the -server performs no automatic swapping on the address bytes. -The InternetV6 family supports IP version 6 addresses only. -</para> -<para> -For the DECnet family, -the server performs no automatic swapping on the address bytes. -A Phase IV address is two bytes long: -the first byte contains the least significant eight bits of the node number, -and the second byte contains the most significant two bits of the node number in -the least significant two bits of the byte and the area in the most -significant six bits of the byte. -</para> -<para> -For the Chaos family, -the address must be two bytes long. -The host number is always the first byte in the address, -and the subnet number is always the second byte. -The server performs no automatic swapping on the address bytes. -</para> -<para> -For the ServerInterpreted family, the address may be of any -length up to 65535 bytes. The address consists of two strings -of ASCII characters, separated by a byte with a value of 0. -The first string represents the type of address, and the second -string contains the address value. Address types and the syntax -for their associated values will be registered via the X.Org Registry. -Implementors who wish to add implementation specific types may register -a unique prefix with the X.Org registry to prevent namespace -collisions. -</para> -<para> -Use of a host address in the ChangeHosts request is deprecated. It is -only useful when a host has a unique, constant address, a requirement -that is increasingly unmet as sites adopt dynamically assigned -addresses, network address translation gateways, IPv6 link local -addresses, and various other technologies. It also assumes all users of -a host share equivalent access rights, and as such has never been -suitable for many multi-user machine environments. Instead, more -secure forms of authentication, such as those based on shared secrets -or public key encryption, are recommended. -<!-- .sp --> -</para> - </section> - <section id="requests:ListHosts"> - <title>ListHosts</title> - <indexterm zone="requests:ListHosts" significance="preferred"><primary>ListHosts</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - ▶ - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -mode: -{ <emphasis role='bold'>Enabled</emphasis>, -<emphasis role='bold'>Disabled</emphasis>} - </entry> - </row> - <row> - <entry> -hosts: LISTofHOST -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request returns the hosts on the access control list -and whether use of the list at connection setup is currently -enabled or disabled. -</para> -<para> -Each HOST is padded to a multiple of four bytes. -<!-- .sp --> -</para> - </section> - <section id="requests:SetAccessControl"> - <title>SetAccessControl</title> - <indexterm zone="requests:SetAccessControl" significance="preferred"><primary>SetAccessControl</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Enable</emphasis>, -<emphasis role='bold'>Disable</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Access</emphasis>, -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request enables or disables the use of the access control list -at connection setups. -</para> -<para> -The client must reside on the same host as the server -and/or have been granted permission by a server-dependent method -to execute this request (or an -<emphasis role='bold'>Access</emphasis> -error results). -<!-- .sp --> -</para> - </section> - <section id="requests:SetCloseDownMode"> - <title>SetCloseDownMode</title> - <indexterm zone="requests:SetCloseDownMode" significance="preferred"><primary>SetCloseDownMode</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Destroy</emphasis>, -<emphasis role='bold'>RetainPermanent</emphasis>, -<emphasis role='bold'>RetainTemporary</emphasis>} -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This request defines what will happen to the client's resources -at connection close. -A connection starts in -<emphasis role='bold'>Destroy</emphasis> -mode. -The meaning of the close-down mode is described -in <link linkend='Connection_Close'>section 10</link>. -<!-- .sp --> -</para> - </section> - <section id="requests:KillClient"> - <title>KillClient</title> - <indexterm zone="requests:KillClient" significance="preferred"><primary>KillClient</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>resource</emphasis>: CARD32 or -<emphasis role='bold'>AllTemporary</emphasis> -<!-- .in -.2i --> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -Errors: -<emphasis role='bold'>Value</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If a valid resource is specified, -<link linkend="requests:KillClient"><emphasis role='bold'>KillClient</emphasis></link> -forces a close-down of the client that created the resource. -If the client has already terminated in either -<emphasis role='bold'>RetainPermanent</emphasis> -or -<emphasis role='bold'>RetainTemporary</emphasis> -mode, all of the client's resources are destroyed -(see <link linkend='Connection_Close'>section 10</link>). -If -<emphasis role='bold'>AllTemporary</emphasis> -is specified, -then the resources of all clients that have terminated in -<emphasis role='bold'>RetainTemporary</emphasis> -are destroyed. -<!-- .sp --> -</para> - </section> - <section id="requests:NoOperation"> - <title>NoOperation</title> - <indexterm zone="requests:NoOperation" significance="preferred"><primary>NoOperation</primary></indexterm> -<para> -This request has no arguments and no results, -but the request length field -allows the request to be any multiple of four bytes in length. -The bytes contained in the request are uninterpreted by the server. -</para> -<para> -This request can be used in its minimum four byte form as padding where -necessary by client libraries that find it convenient to force requests -to begin on 64-bit boundaries. -</para> - </section> -</chapter> - -<chapter id='Connection_Close'> -<title>Connection Close</title> - <indexterm zone="Connection_Close"><primary>Connection</primary><secondary>closing</secondary></indexterm> -<!-- .XS --> -<!-- \*(SN Connection Close --> -<!-- .XE --> -<para> -At connection close, -all event selections made by the client are discarded. -If the client has the pointer actively grabbed, an -<link linkend="requests:UngrabPointer"><emphasis role='bold'>UngrabPointer</emphasis></link> -is performed. -If the client has the keyboard actively grabbed, an -<link linkend="requests:UngrabKeyboard"><emphasis role='bold'>UngrabKeyboard</emphasis></link> -is performed. -All passive grabs by the client are released. -If the client has the server grabbed, an -<link linkend="requests:UngrabServer"><emphasis role='bold'>UngrabServer</emphasis></link> -is performed. -All selections (see -<link linkend="requests:SetSelectionOwner"><emphasis role='bold'>SetSelectionOwner</emphasis></link> -request) -owned by the client are disowned. -If close-down mode (see -<link linkend="requests:SetCloseDownMode"><emphasis role='bold'>SetCloseDownMode</emphasis></link> -request) is -<emphasis role='bold'>RetainPermanent</emphasis> -or -<emphasis role='bold'>RetainTemporary</emphasis>, -then all resources (including colormap entries) -allocated by the client are marked as permanent or temporary, -respectively (but this does not prevent other clients from explicitly -destroying them). -If the mode is -<emphasis role='bold'>Destroy</emphasis>, -all of the client's resources are destroyed. -</para> -<para> -When a client's resources are destroyed, -for each window in the client's save-set, -if the window is an inferior of a window created by the client, -the save-set window is reparented to the closest ancestor such that -the save-set window is not an inferior of a window created by the client. -If the save-set window is unmapped, a -<link linkend="requests:MapWindow"><emphasis role='bold'>MapWindow</emphasis></link> -request is performed on it (even if it was not an inferior -of a window created by the client). -The reparenting leaves unchanged the absolute coordinates -(with respect to the root window) of the upper-left outer corner of the -save-set window. -After save-set processing, -all windows created by the client are destroyed. -For each nonwindow resource created by the client, -the appropriate -<emphasis role='bold'>Free</emphasis> -request is performed. -All colors and colormap entries allocated by the client are freed. -</para> -<para> -A server goes through a cycle of having no connections and having some -connections. -At every transition to the state of having no connections -as a result of a connection closing with a -<emphasis role='bold'>Destroy</emphasis> -close-down mode, -the server resets its state as if it had just been started. -This starts by destroying all lingering resources from clients -that have terminated in -<emphasis role='bold'>RetainPermanent</emphasis> -or -<emphasis role='bold'>RetainTemporary</emphasis> -mode. -It additionally includes deleting all but the predefined atom identifiers, -deleting all properties on all root windows, resetting all device maps and -attributes (key click, bell volume, acceleration), resetting the access -control list, restoring the standard root tiles and cursors, restoring -the default font path, and restoring the input focus to state -<emphasis role='bold'>PointerRoot</emphasis>. -</para> -<para> -Note that closing a connection with a close-down mode of -<emphasis role='bold'>RetainPermanent</emphasis> -or -<emphasis role='bold'>RetainTemporary</emphasis> -will not cause the server to reset. -</para> -</chapter> -<!-- .NH 1 --> -<chapter id='Events'> -<title>Events</title> -<!-- .XS --> -<!-- \*(SN Events --> -<!-- .XE --> -<para> -<indexterm zone="Events"><primary>Event</primary></indexterm> -When a button press is processed with the pointer in some window W -and no active pointer grab is in progress, -the ancestors of W are searched from the root down, -looking for a passive grab to activate. -If no matching passive grab on the button exists, -then an active grab is started automatically for the client receiving the event, -and the last-pointer-grab time is set to the current server time. -The effect is essentially equivalent to a -<link linkend="requests:GrabButton"><emphasis role='bold'>GrabButton</emphasis></link> -with arguments: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Argument</entry> - <entry>Value</entry> - </row> - </thead> - <tbody> - <row> - <entry>event-window</entry> - <entry>Event window</entry> - </row> - <row> - <entry>event-mask</entry> - <entry> -Client's selected pointer events on the event window - </entry> - </row> - <row> - <entry>pointer-mode and keyboard-mode</entry> - <entry> -<emphasis role='bold'>Asynchronous</emphasis> - </entry> - </row> - <row> - <entry>owner-events</entry> - <entry> -<emphasis role='bold'>True</emphasis> -if the client has -<emphasis role='bold'>OwnerGrabButton</emphasis> -selected on the event window, otherwise -<emphasis role='bold'>False</emphasis> - </entry> - </row> - <row> - <entry>confine-to</entry> - <entry> -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry>cursor</entry> - <entry> -<emphasis role='bold'>None</emphasis> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - - - -<para> -The grab is terminated automatically when the logical state of the pointer -has all buttons released. -<link linkend="requests:UngrabPointer"><emphasis role='bold'>UngrabPointer</emphasis></link> -and -<link linkend="requests:ChangeActivePointerGrab"><emphasis role='bold'>ChangeActivePointerGrab</emphasis></link> -can both be used to modify the active grab. -<!-- .sp --> -</para> - - <section id="events:input"> - <title>Input Device events</title> - <indexterm zone="events:input" significance="preferred"><primary>Input device</primary><secondary>events</secondary></indexterm> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry id="events:KeyPress"> -<indexterm zone="events:KeyPress" significance="preferred"><primary>KeyPress</primary></indexterm> -<emphasis role='bold'>KeyPress</emphasis> - </entry> - </row> - <row> - <entry id="events:KeyRelease"> -<indexterm zone="events:KeyRelease" significance="preferred"><primary>KeyRelease</primary></indexterm> -<emphasis role='bold'>KeyRelease</emphasis> - </entry> - </row> - <row> - <entry id="events:ButtonPress"> -<indexterm zone="events:ButtonPress" significance="preferred"><primary>ButtonPress</primary></indexterm> -<emphasis role='bold'>ButtonPress</emphasis> - </entry> - </row> - <row> - <entry id="events:ButtonRelease"> -<indexterm zone="events:ButtonRelease" significance="preferred"><primary>ButtonRelease</primary></indexterm> -<emphasis role='bold'>ButtonRelease</emphasis> - </entry> - </row> - <row> - <entry id="events:MotionNotify"> -<indexterm zone="events:MotionNotify" significance="preferred"><primary>MotionNotify</primary></indexterm> -<emphasis role='bold'>MotionNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>root</emphasis>, <emphasis remap='I'>event</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>child</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>same-screen</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>root-x</emphasis>, <emphasis remap='I'>root-y</emphasis>, <emphasis remap='I'>event-x</emphasis>, <emphasis remap='I'>event-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>detail</emphasis>: <see below> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>state</emphasis>: SETofKEYBUTMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -These events are generated either when a key or button logically changes state -or when the pointer logically moves. -The generation of these logical changes may lag the physical changes -if device event processing is frozen. -Note that -<emphasis role='bold'>KeyPress</emphasis> -and -<emphasis role='bold'>KeyRelease</emphasis> -are generated for all keys, even those mapped to modifier bits. -<phrase id="events:input:source"> -The source of the event is the window the pointer is in. -</phrase> -<indexterm zone="events:input:source"><primary>Event</primary><secondary>source</secondary></indexterm> -The window the event is reported with respect to is called the event window. -The event window is found by starting with the source window and -looking up the hierarchy for the first window on which any client has selected -interest in the event (provided no intervening window prohibits event -generation by including the event type in its do-not-propagate-mask). -The actual window used for reporting can be modified by active grabs and, -in the case of keyboard events, can be modified by the focus window. -</para> -<para> -The root is the root window of the source window, -and root-x and root-y are the pointer coordinates relative to root's origin -at the time of the event. -Event is the event window. -If the event window is on the same screen as root, -then event-x and event-y are the pointer coordinates relative to the -event window's origin. -Otherwise, event-x and event-y are zero. -If the source window is an inferior of the event window, -then child is set to the child of the event window that is an -ancestor of (or is) the source window. -Otherwise, it is set to -<emphasis role='bold'>None</emphasis>. -The state component gives the logical state of the buttons and modifier keys -just before the event. -The detail component type varies with the event type: -</para> - -<informaltable frame='topbot'> - <?dbfo keep-together="always" ?> - <tgroup cols='2' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <colspec colname='c2' colwidth='2.0*'/> - <thead> - <row rowsep='1'> - <entry>Event</entry> - <entry>Component</entry> - </row> - </thead> - <tbody> - <row> - <entry> -<emphasis role='bold'>KeyPress</emphasis>, -<emphasis role='bold'>KeyRelease</emphasis> - </entry> - <entry>KEYCODE</entry> - </row> - <row> - <entry> -<emphasis role='bold'>ButtonPress</emphasis>, -<emphasis role='bold'>ButtonRelease</emphasis> - </entry> - <entry>BUTTON</entry> - </row> - <row> - <entry> -<emphasis role='bold'>MotionNotify</emphasis> - </entry> - <entry> -{ <emphasis role='bold'>Normal</emphasis> -<emphasis role='bold'>Hint</emphasis> } - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -<emphasis role='bold'>MotionNotify</emphasis> -events are only generated when the motion begins and ends in the window. -The granularity of motion events is not guaranteed, -but a client selecting for motion events is guaranteed to get at least one -event when the pointer moves and comes to rest. -Selecting -<emphasis role='bold'>PointerMotion</emphasis> -receives events independent of the state of the pointer buttons. -By selecting some subset of -<emphasis role='bold'>Button[1-5]Motion</emphasis> -instead, -<emphasis role='bold'>MotionNotify</emphasis> -events will only be received when one or more of the -specified buttons are pressed. -By selecting -<emphasis role='bold'>ButtonMotion</emphasis>, -<emphasis role='bold'>MotionNotify</emphasis> -events will be received only when at least one button is pressed. -The events are always of type -<emphasis role='bold'>MotionNotify</emphasis>, -independent of the selection. -If -<emphasis role='bold'>PointerMotionHint</emphasis> -is selected, -the server is free to send only one -<emphasis role='bold'>MotionNotify</emphasis> -event (with detail -<emphasis role='bold'>Hint</emphasis>) -to the client for the event window until -either the key or button state changes, -the pointer leaves the event window, -or the client issues a -<link linkend="requests:QueryPointer"><emphasis role='bold'>QueryPointer</emphasis></link> -or -<link linkend="requests:GetMotionEvents"><emphasis role='bold'>GetMotionEvents</emphasis></link> -request. -<!-- .sp --> -</para> - </section> - <section id="events:pointer_window"> - <title>Pointer Window events</title> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry id="events:EnterNotify"> -<indexterm zone="events:EnterNotify" significance="preferred"><primary>EnterNotify</primary></indexterm> -<emphasis role='bold'>EnterNotify</emphasis> - </entry> - </row> - <row> - <entry id="events:LeaveNotify"> -<indexterm zone="events:LeaveNotify" significance="preferred"><primary>LeaveNotify</primary></indexterm> -<emphasis role='bold'>LeaveNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>root</emphasis>, <emphasis remap='I'>event</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>child</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>same-screen</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>root-x</emphasis>, <emphasis remap='I'>root-y</emphasis>, <emphasis remap='I'>event-x</emphasis>, <emphasis remap='I'>event-y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Normal</emphasis>, -<emphasis role='bold'>Grab</emphasis>, -<emphasis role='bold'>Ungrab</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>detail</emphasis>: -{ <emphasis role='bold'>Ancestor</emphasis>, -<emphasis role='bold'>Virtual</emphasis>, -<emphasis role='bold'>Inferior</emphasis>, -<emphasis role='bold'>Nonlinear</emphasis>, -<emphasis role='bold'>NonlinearVirtual</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>focus</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>state</emphasis>: SETofKEYBUTMASK - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -If pointer motion or window hierarchy change causes the pointer to be -in a different window than before, -<emphasis role='bold'>EnterNotify</emphasis> -and -<emphasis role='bold'>LeaveNotify</emphasis> -events are generated instead of a -<link linkend="events:MotionNotify"><emphasis role='bold'>MotionNotify</emphasis></link> -event. -Only clients selecting -<emphasis role='bold'>EnterWindow</emphasis> -on a window receive -<emphasis role='bold'>EnterNotify</emphasis> -events, and only clients selecting -<emphasis role='bold'>LeaveWindow</emphasis> -receive -<emphasis role='bold'>LeaveNotify</emphasis> -events. -The pointer position reported in the event is always the final position, -not the initial position of the pointer. -The root is the root window for this position, -and root-x and root-y are the pointer coordinates relative to root's -origin at the time of the event. -Event is the event window. -If the event window is on the same screen as root, -then event-x and event-y are the pointer coordinates relative -to the event window's origin. -Otherwise, event-x and event-y are zero. -In a -<emphasis role='bold'>LeaveNotify</emphasis> -event, if a child of the event window contains the initial position of the -pointer, then the child component is set to that child. -Otherwise, it is -<emphasis role='bold'>None</emphasis>. -For an -<emphasis role='bold'>EnterNotify</emphasis> -event, if a child of the event window contains the final pointer position, -then the child component is set to that child. -Otherwise, it is -<emphasis role='bold'>None</emphasis>. -If the event window is the focus window or an inferior of the focus window, -then focus is -<emphasis role='bold'>True</emphasis>. -Otherwise, focus is -<emphasis role='bold'>False</emphasis>. -</para> -<para> -Normal pointer motion events have mode -<emphasis role='bold'>Normal</emphasis>. -Pseudo-motion events when a grab activates have mode -<emphasis role='bold'>Grab</emphasis>, -and pseudo-motion events when a grab deactivates have mode -<emphasis role='bold'>Ungrab</emphasis>. -</para> -<para> -All -<emphasis role='bold'>EnterNotify</emphasis> -and -<emphasis role='bold'>LeaveNotify</emphasis> -events caused by a hierarchy change are generated after any hierarchy event -caused by that change (that is, -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link>, -<link linkend="events:MapNotify"><emphasis role='bold'>MapNotify</emphasis></link>, -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link>, -<link linkend="events:GravityNotify"><emphasis role='bold'>GravityNotify</emphasis></link>, -<link linkend="events:CirculateNotify"><emphasis role='bold'>CirculateNotify</emphasis></link>), -but the ordering of -<emphasis role='bold'>EnterNotify</emphasis> -and -<emphasis role='bold'>LeaveNotify</emphasis> -events with respect to -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link>, -<link linkend="events:VisibilityNotify"><emphasis role='bold'>VisibilityNotify</emphasis></link>, -and -<link linkend="events:Expose"><emphasis role='bold'>Expose</emphasis></link> -events is not constrained. -</para> -<para> -Normal events are generated as follows: -</para> - -<para> -When the pointer moves from window A to window B and A is an inferior -of B: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>Ancestor</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>Virtual</emphasis> -is generated on each window between A and B exclusive (in that order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>Inferior</emphasis> -is generated on B. - </para> - </listitem> -</itemizedlist> - -<para> -When the pointer moves from window A to window B and B is an inferior -of A: -</para> - -<itemizedlist> - <listitem> - <para> -<!-- .IP bu 5 --> -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>Inferior</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>Virtual</emphasis> -is generated on each window between A and B exclusive (in that order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>Ancestor</emphasis> -is generated on B. - </para> - </listitem> -</itemizedlist> - -<para> -When the pointer moves from window A to window B and window C is -their least common ancestor: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window between A and C exclusive (in that order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window between C and B exclusive (in that order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on B. - </para> - </listitem> -</itemizedlist> - -<para> -When the pointer moves from window A to window B on different screens: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -If A is not a root window, -<emphasis role='bold'>LeaveNotify</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window above A up to and including its root (in order). - </para> - </listitem> - <listitem> - <para> -If B is not a root window, -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window from B's root down to but not including B -(in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on B. - </para> - </listitem> -</itemizedlist> - -<para> -When a pointer grab activates (but after any initial warp into a confine-to -window and before generating any actual -<link linkend="events:ButtonPress"><emphasis role='bold'>ButtonPress</emphasis></link> -event that activates the grab), -G is the grab-window for the grab, and P is the window the pointer is in: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -and -<emphasis role='bold'>LeaveNotify</emphasis> -events with mode -<emphasis role='bold'>Grab</emphasis> -are generated (as for -<emphasis role='bold'>Normal</emphasis> -above) as if the pointer were to suddenly warp from its current -position in P to some position in G. -However, the pointer does not warp, -and the pointer position is used as both the initial -and final positions for the events. - </para> - </listitem> -</itemizedlist> - -<para> -When a pointer grab deactivates (but after generating any actual -<link linkend="events:ButtonRelease"><emphasis role='bold'>ButtonRelease</emphasis></link> -event that deactivates the grab), G is the grab-window for -the grab, and P is the window the pointer is in: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>EnterNotify</emphasis> -and -<emphasis role='bold'>LeaveNotify</emphasis> -events with mode -<emphasis role='bold'>Ungrab</emphasis> -are generated (as for -<emphasis role='bold'>Normal</emphasis> -above) as if the pointer were to suddenly warp from -some position in G to its current position in P. -However, the pointer does not warp, -and the current pointer position is used as both the initial -and final positions for the events. - </para> - </listitem> -</itemizedlist> - - </section> - <section id="events:input_focus"> - <title>Input Focus events</title> - <indexterm zone="events:input_focus" significance="preferred"><primary>Input focus</primary><secondary>events</secondary></indexterm> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry id="events:FocusIn"> -<indexterm zone="events:FocusIn" significance="preferred"><primary>FocusIn</primary></indexterm> -<emphasis role='bold'>FocusIn</emphasis> - </entry> - </row> - <row> - <entry id="events:FocusOut"> -<indexterm zone="events:FocusOut" significance="preferred"><primary>FocusOut</primary></indexterm> -<emphasis role='bold'>FocusOut</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>mode</emphasis>: -{ <emphasis role='bold'>Normal</emphasis>, -<emphasis role='bold'>WhileGrabbed</emphasis>, -<emphasis role='bold'>Grab</emphasis>, -<emphasis role='bold'>Ungrab</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>detail</emphasis>: -{ <emphasis role='bold'>Ancestor</emphasis>, -<emphasis role='bold'>Virtual</emphasis>, -<emphasis role='bold'>Inferior</emphasis>, -<emphasis role='bold'>Nonlinear</emphasis>, -<emphasis role='bold'>NonlinearVirtual</emphasis>, -<emphasis role='bold'>Pointer</emphasis>, - </entry> - </row> - <row> - <entry> -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>None</emphasis> } -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -These events are generated when the input focus changes -and are reported to clients selecting -<emphasis role='bold'>FocusChange</emphasis> -on the window. -Events generated by -<link linkend="requests:SetInputFocus"><emphasis role='bold'>SetInputFocus</emphasis></link> -when the keyboard is not grabbed have mode -<emphasis role='bold'>Normal</emphasis>. -Events generated by -<emphasis role='bold'>SetInputFocus</emphasis> -when the keyboard is grabbed have mode -<emphasis role='bold'>WhileGrabbed</emphasis>. -Events generated when a keyboard grab activates have mode -<emphasis role='bold'>Grab</emphasis>, -and events generated when a keyboard grab deactivates have mode -<emphasis role='bold'>Ungrab</emphasis>. -</para> -<para> -All -<emphasis role='bold'>FocusOut</emphasis> -events caused by a window unmap are generated after any -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link> -event, but the ordering of -<emphasis role='bold'>FocusOut</emphasis> -with respect to generated -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link>, -<link linkend="events:LeaveNotify"><emphasis role='bold'>LeaveNotify</emphasis></link>, -<link linkend="events:VisibilityNotify"><emphasis role='bold'>VisibilityNotify</emphasis></link>, -and -<link linkend="events:Expose"><emphasis role='bold'>Expose</emphasis></link> -events is not constrained. -</para> -<para> -<emphasis role='bold'>Normal</emphasis> -and -<emphasis role='bold'>WhileGrabbed</emphasis> -events are generated as follows: -</para> -<para> -When the focus moves from window A to window B, A is an inferior of B, -and the pointer is in window P: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Ancestor</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Virtual</emphasis> -is generated on each window between A and B exclusive (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Inferior</emphasis> -is generated on B. - </para> - </listitem> - <listitem> - <para> -If P is an inferior of B -but P is not A or an inferior of A or an ancestor of A, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window below B down to and including P (in order). - </para> - </listitem> -</itemizedlist> - - -<para> -When the focus moves from window A to window B, B is an inferior of A, -and the pointer is in window P: -</para> - -<itemizedlist> - <listitem> - <para> -If P is an inferior of A -but P is not an inferior of B or an ancestor of B, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P up to but not including A (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Inferior</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Virtual</emphasis> -is generated on each window between A and B exclusive (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Ancestor</emphasis> -is generated on B. - </para> - </listitem> -</itemizedlist> - -<para> -When the focus moves from window A to window B, window C is their -least common ancestor, and the pointer is in window P: -</para> - -<itemizedlist> - <listitem> - <para> -If P is an inferior of A, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P up to but not including A (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window between A and C exclusive (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window between C and B exclusive (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on B. - </para> - </listitem> - <listitem> - <para> -If P is an inferior of B, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window below B down to and including P (in order). - </para> - </listitem> -</itemizedlist> - -<para> -When the focus moves from window A to window B on different screens -and the pointer is in window P: -</para> - - -<itemizedlist> - <listitem> - <para> -If P is an inferior of A, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P up to but not including A (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -If A is not a root window, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window above A up to and including its root (in order). - </para> - </listitem> - <listitem> - <para> -If B is not a root window, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window from B's root down to but not including B -(in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on B. - </para> - </listitem> - <listitem> - <para> -If P is an inferior of B, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window below B down to and including P (in order). - </para> - </listitem> -</itemizedlist> - -<para> -When the focus moves from window A to -<emphasis role='bold'>PointerRoot</emphasis> -(or -<emphasis role='bold'>None</emphasis>) -and the pointer is in window P: -</para> - - -<itemizedlist> - <listitem> - <para> -If P is an inferior of A, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P up to but not including A (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -If A is not a root window, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window above A up to and including its root (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>PointerRoot</emphasis> -(or -<emphasis role='bold'>None</emphasis>) -is generated on all root windows. - </para> - </listitem> - <listitem> - <para> -If the new focus is -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P's root down to and including P (in order). - </para> - </listitem> -</itemizedlist> - -<para> -When the focus moves from -<emphasis role='bold'>PointerRoot</emphasis> -(or -<emphasis role='bold'>None</emphasis>) -to window A and the pointer is in window P: -</para> - - -<itemizedlist> - <listitem> - <para> -If the old focus is -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P up to and including P's root (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>PointerRoot</emphasis> -(or -<emphasis role='bold'>None</emphasis>) -is generated on all root windows. - </para> - </listitem> - <listitem> - <para> -If A is not a root window, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>NonlinearVirtual</emphasis> -is generated on each window from A's root down to but not including A -(in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Nonlinear</emphasis> -is generated on A. - </para> - </listitem> - <listitem> - <para> -If P is an inferior of A, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window below A down to and including P (in order). - </para> - </listitem> -</itemizedlist> - -<para> -When the focus moves from -<emphasis role='bold'>PointerRoot</emphasis> -to -<emphasis role='bold'>None</emphasis> -(or vice versa) and the pointer is in window P: -</para> - -<itemizedlist> - <listitem> - <para> -If the old focus is -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P up to and including P's root (in order). - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusOut</emphasis> -with detail -<emphasis role='bold'>PointerRoot</emphasis> -(or -<emphasis role='bold'>None</emphasis>) -is generated on all root windows. - </para> - </listitem> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>None</emphasis> -(or -<emphasis role='bold'>PointerRoot</emphasis>) -is generated on all root windows. - </para> - </listitem> - <listitem> - <para> -If the new focus is -<emphasis role='bold'>PointerRoot</emphasis>, -<emphasis role='bold'>FocusIn</emphasis> -with detail -<emphasis role='bold'>Pointer</emphasis> -is generated on each window from P's root down to and including P (in order). - </para> - </listitem> -</itemizedlist> - - -<para> -When a keyboard grab activates (but before generating any actual -<emphasis role='bold'>KeyPress</emphasis> -event that activates the grab), G is the grab-window for the grab, -and F is the current focus: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -and -<emphasis role='bold'>FocusOut</emphasis> -events with mode -<emphasis role='bold'>Grab</emphasis> -are generated (as for -<emphasis role='bold'>Normal</emphasis> -above) as if the focus were to change from F to G. - </para> - </listitem> -</itemizedlist> - -<para> -When a keyboard grab deactivates (but after generating any actual -<emphasis role='bold'>KeyRelease</emphasis> -event that deactivates the grab), G is the grab-window for the grab, -and F is the current focus: -</para> - -<itemizedlist> - <listitem> - <para> -<emphasis role='bold'>FocusIn</emphasis> -and -<emphasis role='bold'>FocusOut</emphasis> -events with mode -<emphasis role='bold'>Ungrab</emphasis> -are generated (as for -<emphasis role='bold'>Normal</emphasis> -above) as if the focus were to change from G to F. - </para> - </listitem> -</itemizedlist> - - </section> - <section id="events:KeymapNotify"> - <title>KeymapNotify</title> - <indexterm zone="events:KeymapNotify" significance="preferred"><primary>KeymapNotify</primary></indexterm> - -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>KeymapNotify</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>keys</emphasis>: LISTofCARD8 - </entry> - </row> - </tbody> - </tgroup> -</informaltable> - -<para> -The value is a bit vector as described in -<link linkend="requests:QueryKeymap"><emphasis role='bold'>QueryKeymap</emphasis></link>. -This event is reported to clients selecting -<emphasis role='bold'>KeymapState</emphasis> -on a window and is generated immediately after every -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link> -and -<link linkend="events:FocusIn"><emphasis role='bold'>FocusIn</emphasis></link>. -<!-- .sp --> -</para> - </section> - <section id="events:Expose"> - <title>Expose</title> - <indexterm zone="events:Expose" significance="preferred"><primary>Expose</primary></indexterm> - <indexterm zone="events:Expose"><primary>Event</primary><secondary>Exposure</secondary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>Expose</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, -<emphasis remap='I'>y</emphasis>, -<emphasis remap='I'>width</emphasis>, -<emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>count</emphasis>: CARD16 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<para> -This event is reported to clients selecting -<emphasis role='bold'>Exposure</emphasis> -on the window. -It is generated when no valid contents are available for regions of a window, -and either the regions are visible, the regions are viewable -and the server is (perhaps newly) maintaining backing store on the window, -or the window is not viewable but the server is (perhaps newly) honoring -window's backing-store attribute of -<emphasis role='bold'>Always</emphasis> -or -<emphasis role='bold'>WhenMapped</emphasis>. -The regions are decomposed into an arbitrary set of rectangles, -and an -<emphasis role='bold'>Expose</emphasis> -event is generated for each rectangle. -</para> -<para> -For a given action causing exposure events, -the set of events for a given window are guaranteed to be reported contiguously. -If count is zero, -then no more -<emphasis role='bold'>Expose</emphasis> -events for this window follow. -If count is nonzero, -then at least that many more -<emphasis role='bold'>Expose</emphasis> -events for this window follow (and possibly more). -</para> -<para> -The x and y coordinates are relative to window's origin -and specify the upper-left corner of a rectangle. -The width and height specify the extent of the rectangle. -</para> -<para> -<emphasis role='bold'>Expose</emphasis> -events are never generated on -<emphasis role='bold'>InputOnly</emphasis> -windows. -</para> -<para> -All -<emphasis role='bold'>Expose</emphasis> -events caused by a hierarchy change are generated after any -hierarchy event caused by that change (for example, -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link>, -<link linkend="events:MapNotify"><emphasis role='bold'>MapNotify</emphasis></link>, -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link>, -<link linkend="events:GravityNotify"><emphasis role='bold'>GravityNotify</emphasis></link>, -<link linkend="events:CirculateNotify"><emphasis role='bold'>CirculateNotify</emphasis></link>). -All -<emphasis role='bold'>Expose</emphasis> -events on a given window are generated after any -<link linkend="events:VisibilityNotify"><emphasis role='bold'>VisibilityNotify</emphasis></link> -event on that window, -but it is not required that all -<emphasis role='bold'>Expose</emphasis> -events on all windows be generated after all -<emphasis role='bold'>Visibilitity</emphasis> -events on all windows. -The ordering of -<emphasis role='bold'>Expose</emphasis> -events with respect to -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link>, -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link>, -and -<link linkend="events:LeaveNotify"><emphasis role='bold'>LeaveNotify</emphasis></link> -events is not constrained. -<!-- .sp --> -</para> - </section> - <section id="events:GraphicsExposure"> - <title>GraphicsExposure</title> - <indexterm zone="events:GraphicsExposure" significance="preferred"><primary>GraphicsExposure</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>GraphicsExposure</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>, <emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>count</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>major-opcode</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>minor-opcode</emphasis>: CARD16 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to a client using a graphics context -with graphics-exposures selected -and is generated when a destination region could not be computed due -to an obscured or out-of-bounds source region. -All of the regions exposed by a given graphics request -are guaranteed to be reported contiguously. -If count is zero then no more -<emphasis role='bold'>GraphicsExposure</emphasis> -events for this window follow. -If count is nonzero, -then at least that many more -<emphasis role='bold'>GraphicsExposure</emphasis> -events for this window follow (and possibly more). -</para> -<para> -The x and y coordinates are relative to drawable's origin -and specify the upper-left corner of a rectangle. -The width and height specify the extent of the rectangle. -</para> -<para> -The major and minor opcodes identify the graphics request used. -For the core protocol, -major-opcode is always -<link linkend="requests:CopyArea"><emphasis role='bold'>CopyArea</emphasis></link> -or -<link linkend="requests:CopyPlane"><emphasis role='bold'>CopyPlane</emphasis></link>, -and minor-opcode is always zero. -<!-- .sp --> -</para> - </section> - <section id="events:NoExposure"> - <title>NoExposure</title> - <indexterm zone="events:NoExposure" significance="preferred"><primary>NoExposure</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>NoExposure</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>drawable</emphasis>: DRAWABLE - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>major-opcode</emphasis>: CARD8 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>minor-opcode:</emphasis> CARD16 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to a client using a graphics context -with graphics-exposures selected -and is generated when a graphics request -that might produce -<link linkend="events:GraphicsExposure"><emphasis role='bold'>GraphicsExposure</emphasis></link> -events does not produce any. -The drawable specifies the destination used for the graphics request. -</para> -<para> -The major and minor opcodes identify the graphics request used. -For the core protocol, -major-opcode is always -<link linkend="requests:CopyArea"><emphasis role='bold'>CopyArea</emphasis></link> -or -<link linkend="requests:CopyPlane"><emphasis role='bold'>CopyPlane</emphasis></link>, -and the minor-opcode is always zero. -<!-- .sp --> -</para> - </section> - <section id="events:VisibilityNotify"> - <title>VisibilityNotify</title> - <indexterm zone="events:VisibilityNotify" significance="preferred"><primary>VisibilityNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>VisibilityNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>state</emphasis>: -{ <emphasis role='bold'>Unobscured</emphasis>, -<emphasis role='bold'>PartiallyObscured</emphasis>, -<emphasis role='bold'>FullyObscured</emphasis>} -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>VisibilityChange</emphasis> -on the window. -In the following, -the state of the window is calculated ignoring all of the window's subwindows. -When a window changes state from partially or fully obscured or -not viewable to viewable and completely unobscured, -an event with -<emphasis role='bold'>Unobscured</emphasis> -is generated. -When a window changes state from viewable and completely unobscured, -from viewable and completely obscured, -or from not viewable, to viewable and partially obscured, -an event with -<emphasis role='bold'>PartiallyObscured</emphasis> -is generated. -When a window changes state from viewable and completely unobscured, -from viewable and partially obscured, -or from not viewable to viewable and fully obscured, -an event with -<emphasis role='bold'>FullyObscured</emphasis> -is generated. -</para> -<para> -<emphasis role='bold'>VisibilityNotify</emphasis> -events are never generated on -<emphasis role='bold'>InputOnly</emphasis> -windows. -</para> -<para> -All -<emphasis role='bold'>VisibilityNotify</emphasis> -events caused by a hierarchy change are generated after any hierarchy event -caused by that change (for example, -<link linkend="events:UnmapNotify"><emphasis role='bold'>UnmapNotify</emphasis></link>, -<link linkend="events:MapNotify"><emphasis role='bold'>MapNotify</emphasis></link>, -<link linkend="events:ConfigureNotify"><emphasis role='bold'>ConfigureNotify</emphasis></link>, -<link linkend="events:GravityNotify"><emphasis role='bold'>GravityNotify</emphasis></link>, -<link linkend="events:CirculateNotify"><emphasis role='bold'>CirculateNotify</emphasis></link>). -Any -<emphasis role='bold'>VisibilityNotify</emphasis> -event on a given window is generated before any -<link linkend="events:Expose"><emphasis role='bold'>Expose</emphasis></link> -events on that window, -but it is not required that all -<emphasis role='bold'>VisibilityNotify</emphasis> -events on all windows be generated before all -<emphasis role='bold'>Expose</emphasis> -events on all windows. -The ordering of -<emphasis role='bold'>VisibilityNotify</emphasis> -events with respect to -<link linkend="events:FocusOut"><emphasis role='bold'>FocusOut</emphasis></link>, -<link linkend="events:EnterNotify"><emphasis role='bold'>EnterNotify</emphasis></link>, -and -<link linkend="events:LeaveNotify"><emphasis role='bold'>LeaveNotify</emphasis></link> -events is not constrained. -<!-- .sp --> -</para> - </section> - <section id="events:CreateNotify"> - <title>CreateNotify</title> - <indexterm zone="events:CreateNotify" significance="preferred"><primary>CreateNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>CreateNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>parent</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>, <emphasis remap='I'>border-width</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>override-redirect</emphasis>: BOOL -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent -and is generated when the window is created. -The arguments are as in the -<link linkend="requests:CreateWindow"><emphasis role='bold'>CreateWindow</emphasis></link> -request. -<!-- .sp --> -</para> - </section> - <section id="events:DestroyNotify"> - <title>DestroyNotify</title> - <indexterm zone="events:DestroyNotify" significance="preferred"><primary>DestroyNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>DestroyNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window and to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent. -It is generated when the window is destroyed. -The event is the window on which the event was generated, -and the window is the window that is destroyed. -</para> -<para> -The ordering of the -<emphasis role='bold'>DestroyNotify</emphasis> -events is such that for any given window, -<emphasis role='bold'>DestroyNotify</emphasis> -is generated on all inferiors of the window -before being generated on the window itself. -The ordering among siblings and across subhierarchies is not -otherwise constrained. -<!-- .sp --> -</para> - </section> - <section id="events:UnmapNotify"> - <title>UnmapNotify</title> - <indexterm zone="events:UnmapNotify" significance="preferred"><primary>UnmapNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>UnmapNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>from-configure</emphasis>: BOOL -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window and to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent. -It is generated when the window changes state from mapped to unmapped. -The event is the window on which the event was generated, -and the window is the window that is unmapped. -The from-configure flag is -<emphasis role='bold'>True</emphasis> -if the event was generated as a result of the window's parent being resized -when the window itself had a win-gravity of -<emphasis role='bold'>Unmap</emphasis>. -<!-- .sp --> -</para> - </section> - <section id="events:MapNotify"> - <title>MapNotify</title> - <indexterm zone="events:MapNotify" significance="preferred"><primary>MapNotify</primary></indexterm> - <indexterm zone="events:MapNotify"><primary>Mapped window</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>MapNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>override-redirect</emphasis>: BOOL -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window and to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent. -It is generated when the window changes state from unmapped to mapped. -The event is the window on which the event was generated, -and the window is the window that is mapped. -The override-redirect flag is from the window's attribute. -<!-- .sp --> -</para> - </section> - <section id="events:MapRequest"> - <title>MapRequest</title> - <indexterm zone="events:MapRequest" significance="preferred"><primary>MapRequest</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>MapRequest</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>parent</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to the client selecting -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent and is generated when a -<link linkend="requests:MapWindow"><emphasis role='bold'>MapWindow</emphasis></link> -request is issued on an unmapped window with an override-redirect attribute of -<emphasis role='bold'>False</emphasis>. -<!-- .sp --> -</para> - </section> - <section id="events:ReparentNotify"> - <title>ReparentNotify</title> - <indexterm zone="events:ReparentNotify" significance="preferred"><primary>ReparentNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>ReparentNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>, <emphasis remap='I'>parent</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>override-redirect</emphasis>: BOOL -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on either the old or the new parent and to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window. -It is generated when the window is reparented. -The event is the window on which the event was generated. -The window is the window that has been rerooted. -The parent specifies the new parent. -The x and y coordinates are relative to the new parent's origin -and specify the position of the upper-left outer corner of the window. -The override-redirect flag is from the window's attribute. -<!-- .sp --> -</para> - </section> - <section id="events:ConfigureNotify"> - <title>ConfigureNotify</title> - <indexterm zone="events:ConfigureNotify" significance="preferred"><primary>ConfigureNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>ConfigureNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>, <emphasis remap='I'>border-width</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>above-sibling</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>override-redirect</emphasis>: BOOL -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window and to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent. -It is generated when a -<link linkend="requests:ConfigureWindow"><emphasis role='bold'>ConfigureWindow</emphasis></link> -request actually changes the state of the window. -The event is the window on which the event was generated, -and the window is the window that is changed. -The x and y coordinates are relative to the new parent's origin -and specify the position of the upper-left outer corner of the window. -The width and height specify the inside size, not including the border. -If above-sibling is -<emphasis role='bold'>None</emphasis>, -then the window is on the bottom of the stack with respect to siblings. -Otherwise, the window is immediately on top of the specified sibling. -The override-redirect flag is from the window's attribute. -<!-- .sp --> -</para> - </section> - <section id="events:GravityNotify"> - <title>GravityNotify</title> - <indexterm zone="events:GravityNotify" significance="preferred"><primary>GravityNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>GravityNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent and to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window. -It is generated when a window is moved because of a change in size -of the parent. -The event is the window on which the event was generated, -and the window is the window that is moved. -The x and y coordinates are relative to the new parent's origin -and specify the position of the upper-left outer corner of the window. -<!-- .sp --> -</para> - </section> - <section id="events:ResizeRequest"> - <title>ResizeRequest</title> - <indexterm zone="events:ResizeRequest" significance="preferred"><primary>ResizeRequest</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>ResizeRequest</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>: CARD16 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to the client selecting -<emphasis role='bold'>ResizeRedirect</emphasis> -on the window and is generated when a -<link linkend="requests:ConfigureWindow"><emphasis role='bold'>ConfigureWindow</emphasis></link> -request by some other client on the window attempts to change the size -of the window. -The width and height are the requested inside size, not including the border. -<!-- .sp --> -</para> - </section> - <section id="events:ConfigureRequest"> - <title>ConfigureRequest</title> - <indexterm zone="events:ConfigureRequest" significance="preferred"><primary>ConfigureRequest</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>ConfigureRequest</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>parent</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>x</emphasis>, <emphasis remap='I'>y</emphasis>: INT16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>width</emphasis>, <emphasis remap='I'>height</emphasis>, <emphasis remap='I'>border-width</emphasis>: CARD16 - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>sibling</emphasis>: WINDOW or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>stack-mode</emphasis>: -{ <emphasis role='bold'>Above</emphasis>, -<emphasis role='bold'>Below</emphasis>, -<emphasis role='bold'>TopIf</emphasis>, -<emphasis role='bold'>BottomIf</emphasis>, -<emphasis role='bold'>Opposite</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>value-mask</emphasis>: BITMASK -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to the client selecting -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent and is generated when a -<link linkend="requests:ConfigureWindow"><emphasis role='bold'>ConfigureWindow</emphasis></link> -request is issued on the window by some other client. -The value-mask indicates which components were specified in the request. -The value-mask and the corresponding values are reported as given -in the request. -The remaining values are filled in from the current geometry of the window, -except in the case of sibling and stack-mode, -which are reported as -<emphasis role='bold'>None</emphasis> -and -<emphasis role='bold'>Above</emphasis> -(respectively) if not given in the request. -<!-- .sp --> -</para> - </section> - <section id="events:CirculateNotify"> - <title>CirculateNotify</title> - <indexterm zone="events:CirculateNotify" significance="preferred"><primary>CirculateNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>CirculateNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>event</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>place</emphasis>: -{ <emphasis role='bold'>Top</emphasis>, -<emphasis role='bold'>Bottom</emphasis>} -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>StructureNotify</emphasis> -on the window and to clients selecting -<emphasis role='bold'>SubstructureNotify</emphasis> -on the parent. -It is generated when the window is actually restacked from a -<link linkend="requests:CirculateWindow"><emphasis role='bold'>CirculateWindow</emphasis></link> -request. -The event is the window on which the event was generated, -and the window is the window that is restacked. -If place is -<emphasis role='bold'>Top</emphasis>, -the window is now on top of all siblings. -Otherwise, it is below all siblings. -<!-- .sp --> -</para> - </section> - <section id="events:CirculateRequest"> - <title>CirculateRequest</title> - <indexterm zone="events:CirculateRequest" significance="preferred"><primary>CirculateRequest</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>CirculateRequest</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>parent</emphasis>, <emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>place</emphasis>: -{ <emphasis role='bold'>Top</emphasis>, -<emphasis role='bold'>Bottom</emphasis>} -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to the client selecting -<emphasis role='bold'>SubstructureRedirect</emphasis> -on the parent and is generated when a -<link linkend="requests:CirculateWindow"><emphasis role='bold'>CirculateWindow</emphasis></link> -request is issued on the parent and a window actually needs to be restacked. -The window specifies the window to be restacked, -and the place specifies what the new position in the stacking order should be. -<!-- .sp --> -</para> - </section> - <section id="events:PropertyNotify"> - <title>PropertyNotify</title> - <indexterm zone="events:PropertyNotify" significance="preferred"><primary>PropertyNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>PropertyNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>atom</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>state</emphasis>: -{ <emphasis role='bold'>NewValue</emphasis>, -<emphasis role='bold'>Deleted</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>PropertyChange</emphasis> -on the window and is generated with state -<emphasis role='bold'>NewValue</emphasis> -when a property of the window is changed using -<link linkend="requests:ChangeProperty"><emphasis role='bold'>ChangeProperty</emphasis></link> -or -<link linkend="requests:RotateProperties"><emphasis role='bold'>RotateProperties</emphasis></link>, -even when adding zero-length data using -<emphasis role='bold'>ChangeProperty</emphasis> -and when replacing all or part of a property with identical data using -<emphasis role='bold'>ChangeProperty</emphasis> -or -<emphasis role='bold'>RotateProperties</emphasis>. -It is generated with state -<emphasis role='bold'>Deleted</emphasis> -when a property of the -window is deleted using request -<link linkend="requests:DeleteProperty"><emphasis role='bold'>DeleteProperty</emphasis></link> -or -<link linkend="requests:GetProperty"><emphasis role='bold'>GetProperty</emphasis></link>. -The timestamp indicates the server time when the property was changed. -<!-- .sp --> -</para> - </section> - <section id="events:SelectionClear"> - <title>SelectionClear</title> - <indexterm zone="events:SelectionClear" significance="preferred"><primary>SelectionClear</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>SelectionClear</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>owner</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>selection</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to the current owner of a selection -and is generated when a new owner is being defined by means of -<link linkend="requests:SetSelectionOwner"><emphasis role='bold'>SetSelectionOwner</emphasis></link>. -The timestamp is the last-change time recorded for the selection. -The owner argument is the window that was specified by the current owner in its -<emphasis role='bold'>SetSelectionOwner</emphasis> -request. -<!-- .sp --> -</para> - </section> - <section id="events:SelectionRequest"> - <title>SelectionRequest</title> - <indexterm zone="events:SelectionRequest" significance="preferred"><primary>SelectionRequest</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>SelectionRequest</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>owner</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>selection</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>target</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>property</emphasis>: ATOM or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>requestor</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to the owner of a selection -and is generated when a client issues a -<link linkend="requests:ConvertSelection"><emphasis role='bold'>ConvertSelection</emphasis></link> -request. -The owner argument is the window that was specified in the -<link linkend="requests:SetSelectionOwner"><emphasis role='bold'>SetSelectionOwner</emphasis></link> -request. -The remaining arguments are as in the -<emphasis role='bold'>ConvertSelection</emphasis> -request. -</para> -<para> -The owner should convert the selection based on the specified target type -and send a -<emphasis role='bold'>SelectionNotify</emphasis> -back to the requestor. -A complete specification for using selections is given in the X.Org -standard <citetitle>Inter-Client Communication Conventions Manual</citetitle>. -<!-- .sp --> -</para> - </section> - <section id="events:SelectionNotify"> - <title>SelectionNotify</title> - <indexterm zone="events:SelectionNotify" significance="preferred"><primary>SelectionNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>SelectionNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>requestor</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>selection</emphasis>, <emphasis remap='I'>target</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>property</emphasis>: ATOM or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>time</emphasis>: TIMESTAMP or -<emphasis role='bold'>CurrentTime</emphasis> -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is generated by the server in response to a -<link linkend="requests:ConvertSelection"><emphasis role='bold'>ConvertSelection</emphasis></link> -request when there is no owner for the selection. -When there is an owner, -it should be generated by the owner using -<link linkend="requests:SendEvent"><emphasis role='bold'>SendEvent</emphasis></link>. -The owner of a selection should send this event to a requestor either -when a selection has been converted and stored as a property -or when a selection conversion could not be performed (indicated with property -<emphasis role='bold'>None</emphasis>). -<!-- .sp --> -</para> - </section> - <section id="events:ColormapNotify"> - <title>ColormapNotify</title> - <indexterm zone="events:ColormapNotify" significance="preferred"><primary>ColormapNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>ColormapNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>colormap</emphasis>: COLORMAP or -<emphasis role='bold'>None</emphasis> - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>new</emphasis>: BOOL - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>state</emphasis>: -{ <emphasis role='bold'>Installed</emphasis>, -<emphasis role='bold'>Uninstalled</emphasis>} -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is reported to clients selecting -<emphasis role='bold'>ColormapChange</emphasis> -on the window. -It is generated with value -<emphasis role='bold'>True</emphasis> -for new when the colormap attribute of the window is changed -and is generated with value -<emphasis role='bold'>False</emphasis> -for new when the colormap of a window is installed or uninstalled. -In either case, -the state indicates whether the colormap is currently installed. -<!-- .sp --> -</para> - </section> - <section id="events:MappingNotify"> - <title>MappingNotify</title> - <indexterm zone="events:MappingNotify" significance="preferred"><primary>MappingNotify</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>MappingNotify</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>request</emphasis>: -{ <emphasis role='bold'>Modifier</emphasis>, -<emphasis role='bold'>Keyboard</emphasis>, -<emphasis role='bold'>Pointer</emphasis>} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>first-keycode</emphasis>, <emphasis remap='I'>count</emphasis>: CARD8 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is sent to all clients. -There is no mechanism to express disinterest in this event. -The detail indicates the kind of change that occurred: -<emphasis role='bold'>Modifiers</emphasis> -for a successful -<link linkend="requests:SetModifierMapping"><emphasis role='bold'>SetModifierMapping</emphasis></link>, -<emphasis role='bold'>Keyboard</emphasis> -for a successful -<link linkend="requests:ChangeKeyboardMapping"><emphasis role='bold'>ChangeKeyboardMapping</emphasis></link>, -and -<emphasis role='bold'>Pointer</emphasis> -for a successful -<link linkend="requests:SetPointerMapping"><emphasis role='bold'>SetPointerMapping</emphasis></link>. -If the detail is -<emphasis role='bold'>Keyboard</emphasis>, -then first-keycode and count indicate the range of altered keycodes. -<!-- .sp --> -</para> - </section> - <section id="events:ClientMessage"> - <title>ClientMessage</title> - <indexterm zone="events:ClientMessage" significance="preferred"><primary>ClientMessage</primary></indexterm> -<informaltable frame='none'> - <?dbfo keep-together="always" ?> - <tgroup cols='1' align='left' colsep='0' rowsep='0'> - <colspec colname='c1' colwidth='1.0*'/> - <tbody> - <row> - <entry> - <emphasis role='bold'>ClientMessage</emphasis> - </entry> - </row> - <row> - <entry> -<!-- .in +.2i --> -<emphasis remap='I'>window</emphasis>: WINDOW - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>type</emphasis>: ATOM - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>format</emphasis>: {8, 16, 32} - </entry> - </row> - <row> - <entry> -<emphasis remap='I'>data</emphasis>: LISTofINT8 or LISTofINT16 or LISTofINT32 -<!-- .in -.2i --> -<!-- .eM --> - </entry> - </row> - </tbody> - </tgroup> -</informaltable> -<!-- .eM --> -<para> -This event is only generated by clients using -<link linkend="requests:SendEvent"><emphasis role='bold'>SendEvent</emphasis></link>. -The type specifies how the data is to be interpreted by the receiving client; -the server places no interpretation on the type or the data. -The format specifies whether the data should be viewed as a list of 8-bit, -16-bit, or 32-bit quantities, so that the server can correctly -byte-swap, as necessary. -The data always consists of either 20 8-bit values or 10 16-bit values -or 5 32-bit values, although particular message types might not make use -of all of these values. -</para> - </section> -</chapter> -<chapter id='Flow_Control_and_Concurrency'> -<title>Flow Control and Concurrency</title> -<!-- .XS --> -<!-- \*(SN Flow Control and Concurrency --> -<!-- .XE --> -<para> -Whenever the server is writing to a given connection, -it is permissible for the server to stop reading from that connection -(but if the writing would block, it must continue to service other connections). -The server is not required to buffer more than a single request per connection -at one time. -For a given connection to the server, -a client can block while reading from the connection -but should undertake to read (events and errors) when writing would block. -Failure on the part of a client to obey this rule could result -in a deadlocked connection, -although deadlock is probably unlikely unless either -the transport layer has very little buffering or the client attempts to -send large numbers of requests without ever reading replies or checking for -errors and events. -</para> -<para> -Whether or not a server is implemented with internal concurrency, -the overall effect must be as if individual requests are executed to completion -in some serial order, -and requests from a given connection must be executed in delivery order -(that is, the total execution order is a shuffle of the individual streams). -The execution of a request includes validating all arguments, -collecting all data for any reply, -and generating and queueing all required events. -However, -it does not include the actual transmission of the reply and the events. -In addition, the effect of any other cause that can generate multiple events -(for example, activation of a grab or pointer motion) must effectively generate -and queue all required events indivisibly with respect to all other causes -and requests. -For a request from a given client, -any events destined for that client that are caused by executing the request -must be sent to the client before any reply or error is sent. -</para> -</chapter> -</part> diff --git a/proto/x11proto/specs/x11protocol.xml b/proto/x11proto/specs/x11protocol.xml deleted file mode 100644 index 87ac55545..000000000 --- a/proto/x11proto/specs/x11protocol.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" - "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" -[ -<!ENTITY % defs SYSTEM "defs.ent"> %defs; -]> - - -<book id="x11protocol"> - -<bookinfo> - <title>X Window System Protocol</title> - <subtitle>X Consortium Standard</subtitle> - <author> - <firstname>Robert</firstname> - <othername>W.</othername> - <surname>Scheifler</surname> - <affiliation><orgname>X Consortium, Inc.</orgname></affiliation> - </author> - <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo> - <releaseinfo>Version 1.0</releaseinfo> - <copyright><year>1986</year><year>1987</year><year>1988</year><year>1994</year><year>2004</year> - <holder>The Open Group</holder> - </copyright> - -<legalnotice> - -<para> -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -</para> -<para> -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -</para> -<para> -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -</para> -<para> -Except as contained in this notice, the name of the Open Group 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 Open Group. -</para> -<para>X Window System is a trademark of The Open Group.</para> -</legalnotice> -</bookinfo> - -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sect1-9.xml" - xpointer="xpointer(/part/*)"/> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="keysyms.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="encoding.xml"/> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glossary.xml"/> -<index id="index" /> -</book> - diff --git a/proto/x11proto/xproto.pc.in b/proto/x11proto/xproto.pc.in deleted file mode 100644 index 63ae864a1..000000000 --- a/proto/x11proto/xproto.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ -includex11dir=@includedir@/X11 - -Name: Xproto -Description: Xproto headers -Version: @PACKAGE_VERSION@ -Cflags: -I${includedir} |