summaryrefslogtreecommitdiff
path: root/proto/x11proto
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2019-04-03 06:54:07 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2019-04-03 06:54:07 +0000
commitcbab4fb0965b77a7915648a43dd0e407199128ea (patch)
tree4221c9f001deea9e12e3e772d2bd14368f3b6863 /proto/x11proto
parent7fb582dac69640dddef1383a9bfad1cb78289db9 (diff)
Remove old X proto files, replaced by xorgproto.
"go for it" deraadt@
Diffstat (limited to 'proto/x11proto')
-rw-r--r--proto/x11proto/AUTHORS23
-rw-r--r--proto/x11proto/COPYING108
-rw-r--r--proto/x11proto/ChangeLog2180
-rw-r--r--proto/x11proto/DECkeysym.h65
-rw-r--r--proto/x11proto/HPkeysym.h164
-rw-r--r--proto/x11proto/INSTALL291
-rw-r--r--proto/x11proto/Makefile51
-rw-r--r--proto/x11proto/Makefile.am49
-rw-r--r--proto/x11proto/Makefile.in603
-rw-r--r--proto/x11proto/README32
-rw-r--r--proto/x11proto/Sunkeysym.h106
-rw-r--r--proto/x11proto/X.h717
-rw-r--r--proto/x11proto/XF86keysym.h220
-rw-r--r--proto/x11proto/XWDFile.h113
-rw-r--r--proto/x11proto/Xalloca.h121
-rw-r--r--proto/x11proto/Xarch.h94
-rw-r--r--proto/x11proto/Xatom.h79
-rw-r--r--proto/x11proto/Xdefs.h108
-rw-r--r--proto/x11proto/Xfuncproto.h.in220
-rw-r--r--proto/x11proto/Xfuncs.h69
-rw-r--r--proto/x11proto/Xmd.h142
-rw-r--r--proto/x11proto/Xos.h148
-rw-r--r--proto/x11proto/Xos_r.h1095
-rw-r--r--proto/x11proto/Xosdefs.h116
-rw-r--r--proto/x11proto/Xpoll.h.in230
-rw-r--r--proto/x11proto/Xproto.h2157
-rw-r--r--proto/x11proto/Xprotostr.h77
-rw-r--r--proto/x11proto/Xthreads.h314
-rw-r--r--proto/x11proto/Xw32defs.h79
-rw-r--r--proto/x11proto/Xwindows.h114
-rw-r--r--proto/x11proto/Xwinsock.h77
-rw-r--r--proto/x11proto/aclocal.m4860
-rw-r--r--proto/x11proto/ap_keysym.h51
-rw-r--r--proto/x11proto/compile347
-rw-r--r--proto/x11proto/config.guess1463
-rw-r--r--proto/x11proto/config.sub1579
-rw-r--r--proto/x11proto/configure4729
-rw-r--r--proto/x11proto/configure.ac217
-rw-r--r--proto/x11proto/do-not-use-config.h.in79
-rw-r--r--proto/x11proto/docbook.am105
-rw-r--r--proto/x11proto/install-sh323
-rw-r--r--proto/x11proto/keysym.h74
-rw-r--r--proto/x11proto/keysymdef.h2497
-rw-r--r--proto/x11proto/missing360
-rw-r--r--proto/x11proto/specs/Makefile.am21
-rw-r--r--proto/x11proto/specs/SIAddresses/IPv6.txt11
-rw-r--r--proto/x11proto/specs/SIAddresses/Makefile.am6
-rw-r--r--proto/x11proto/specs/SIAddresses/README4
-rw-r--r--proto/x11proto/specs/SIAddresses/hostname.txt11
-rw-r--r--proto/x11proto/specs/SIAddresses/localuser.txt20
-rw-r--r--proto/x11proto/specs/encoding.xml3268
-rw-r--r--proto/x11proto/specs/glossary.xml1320
-rw-r--r--proto/x11proto/specs/keysyms.xml6050
-rw-r--r--proto/x11proto/specs/sect1-9.xml15309
-rw-r--r--proto/x11proto/specs/x11protocol.xml64
-rw-r--r--proto/x11proto/xproto.pc.in10
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 &gt; outside emphasis to match &lt; 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 &lt;32-bits&gt; 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 &lt;32-bits&gt; 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, &lt;WINDOW or
-<emphasis role='bold'>PointerRoot</emphasis>
-or
-<emphasis role='bold'>None</emphasis>&gt;.
-</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>: &lt;normal-event-format&gt;
-<!-- .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: &lt;32-bit-value&gt;]
- </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: &lt;same type definition as in
-<link linkend="requests:QueryFont"><emphasis role='bold'>QueryFont</emphasis></link>&gt;
-<!-- .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>&lt;server-dependent-font&gt;</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>: &lt;see below&gt;
- </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 &ldquo;AS IS&rdquo;, 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}