aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuhiro Iwamatsu <iwamatsu@debian.org>2010-03-01 14:58:29 +0900
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:42 -0800
commit407da05523508127184956b50fbaad1c4d81a9c4 (patch)
tree1d67410bfad71e0b3ed289bba51b832f06d1e830
parent7bfc213c637ef0dc28f6a99b0528978159e0c54f (diff)
downloadscm-407da05523508127184956b50fbaad1c4d81a9c4.zip
scm-407da05523508127184956b50fbaad1c4d81a9c4.tar.gz
Import Debian changes 5e5-3.1debian/5e5-3.1
scm (5e5-3.1) unstable; urgency=low * Non-maintainer upload. ACKed by maintainer. * Update debian/control. - Add support sh4, kfreebsd-amd64 and kfreebsd-i386. (Closes: #558213, #559017) - Replacing libreadline5-dev build dependency with libreadline-dev. (Closes: #553847)
-rw-r--r--.pc/.quilt_patches1
-rw-r--r--.pc/.quilt_series1
-rw-r--r--.pc/.version1
-rw-r--r--Xlibscm.html2874
-rw-r--r--debian/changelog12
-rw-r--r--debian/control6
-rw-r--r--debian/patches/kfreebsd_support.patch46
-rw-r--r--debian/patches/series1
-rwxr-xr-xdebian/rules3
9 files changed, 2942 insertions, 3 deletions
diff --git a/.pc/.quilt_patches b/.pc/.quilt_patches
new file mode 100644
index 0000000..6857a8d
--- /dev/null
+++ b/.pc/.quilt_patches
@@ -0,0 +1 @@
+debian/patches
diff --git a/.pc/.quilt_series b/.pc/.quilt_series
new file mode 100644
index 0000000..c206706
--- /dev/null
+++ b/.pc/.quilt_series
@@ -0,0 +1 @@
+series
diff --git a/.pc/.version b/.pc/.version
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/.pc/.version
@@ -0,0 +1 @@
+2
diff --git a/Xlibscm.html b/Xlibscm.html
new file mode 100644
index 0000000..adafca4
--- /dev/null
+++ b/Xlibscm.html
@@ -0,0 +1,2874 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual documents the X Interface for SCM Language (version
+5e5, February 2008).
+
+Copyright C 1999 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the author.
+
+ -->
+<!-- Created on March 3, 2010 by texi2html 1.82
+texi2html was written by:
+ Lionel Cons <Lionel.Cons@cern.ch> (original author)
+ Karl Berry <karl@freefriends.org>
+ Olaf Bachmann <obachman@mathematik.uni-kl.de>
+ and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug@nongnu.org>
+-->
+<head>
+<title>XlibScm</title>
+
+<meta name="description" content="XlibScm">
+<meta name="keywords" content="XlibScm">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="XlibScm-2"></a>
+<h1 class="settitle">XlibScm</h1>
+
+<p>This manual documents the X Interface for SCM Language (version
+5e5, February 2008).
+</p>
+<p>Copyright &copy; 1999 Free Software Foundation, Inc.
+</p>
+<blockquote><p>Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+</p>
+<p>Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+</p>
+<p>Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the author.
+</p></blockquote>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#XlibScm">1. XlibScm</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawables">3. Drawables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-Context">4. Graphics Context</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cursor">5. Cursor</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colormap">6. Colormap</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rendering">7. Rendering</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Images">8. Images</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Event">9. Event</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Indexes">Indexes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="1">
+<a name="XlibScm"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Display-and-Screens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Display-and-Screens" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="XlibScm-1"></a>
+<h1 class="chapter">1. XlibScm</h1>
+
+<p><em>XlibScm</em> is a SCM interface to <em>X</em>.
+<a name="index-X"></a>
+The
+&lt;A HREF=&quot;http://www.x.org/&quot;&gt;
+X Window System
+&lt;/A&gt;
+is a network-transparent window system that was
+designed at MIT.
+&lt;A HREF=&quot;scm_toc.html&quot;&gt;
+SCM
+&lt;/A&gt;
+is a portable Scheme implementation written in C.
+The interface can be compiled into SCM or, on those platforms supporting
+dynamic linking, compiled separately and loaded with <code>(require
+'Xlib)</code>.
+<a name="index-Xlib"></a>
+</p>
+
+<p>Much of this X documentation is dervied from:
+</p>
+<p align="center"> Xlib - C Language X Interface
+</p><p align="center"> X Consortium Standard
+</p><p align="center"> X Version 11, Release 6.3
+</p>
+<p>The X Window System is a trademark of X Consortium, Inc.
+</p>
+<p>TekHVC is a trademark of Tektronix, Inc.
+</p>
+
+
+<p>Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X
+Consortium
+</p>
+<p>Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+&quot;Software&quot;), 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:
+</p>
+<p>The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+</p>
+<p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+</p>
+<p>Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization from
+the X Consortium.
+</p>
+
+
+
+<p>Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
+Digital Equipment Corporation
+</p>
+<p>Portions Copyright (C) 1990, 1991 by Tektronix, Inc.
+</p>
+<p>Permission to use, copy, modify and distribute this documentation for
+any purpose and without fee is hereby granted, provided that the above
+copyright notice appears in all copies and that both that copyright
+notice and this permission notice appear in all copies, and that the
+names of Digital and Tektronix not be used in in advertising or
+publicity pertaining to this documentation without specific, written
+prior permission. Digital and Tektronix makes no representations about
+the suitability of this documentation for any purpose. It is provided
+&ldquo;as is&rdquo; without express or implied warranty.
+</p>
+
+<hr size="6">
+<a name="Display-and-Screens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#XlibScm" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#XlibScm" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Display-and-Screens-1"></a>
+<h1 class="chapter">2. Display and Screens</h1>
+
+<dl>
+<dt><a name="index-x_003aopen_002ddisplay"></a><u>Function:</u> <b>x:open-display</b><i> display-name</i></dt>
+<dd><p><var>display-name</var> Specifies the hardware display name, which determines
+the display and communications domain to be used. On a POSIX-conformant
+system, if the display-name is #f, it defaults to the value of the
+<var>DISPLAY</var> environment variable.
+</p>
+<p>The encoding and interpretation of <var>display-name</var> is
+implementation-dependent. On POSIX-conformant systems, the
+<var>display-name</var> or <var>DISPLAY</var> environment variable can be a string
+in the format:
+</p>
+<dl>
+<dt><a name="index-hostname_003anumber_002escreen_002dnumber"></a><u>Special Form:</u> <b>hostname:number.screen-number</b></dt>
+<dd>
+<p><var>hostname</var> specifies the name of the host machine on which the
+display is physically attached. Follow the <var>hostname</var> with either a
+single colon (:) or a double colon (::).
+</p>
+<p><var>number</var> specifies the number of the display server on that host
+machine. You may optionally follow this display number with a period
+(.). A single CPU can have more than one display. Multiple displays
+are usually numbered starting with zero.
+</p>
+<p><var>screen-number</var> specifies the screen to be used on that server.
+Multiple screens can be controlled by a single X server. The
+<var>screen-number</var> sets an internal variable that can be accessed by
+using the x:default-screen procedure.
+</p></dd></dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aclose"></a><u>Function:</u> <b>x:close</b><i> display</i></dt>
+<dd><p><var>display</var> specifies the connection to the X server.
+</p>
+<p>The <code>x:close</code> function closes the connection to the X server for
+the <var>display</var> specified and destroys all windows, resource IDs
+(Window, Font, Pixmap, Colormap, Cursor, and GContext), or other
+resources that the client has created on this display, unless the
+close-down mode of the resource has been changed (see
+<code>x:set-close-down-mode</code>). Therefore, these windows, resource IDs,
+and other resources should not be used again or an error will be
+generated. Before exiting, you should call <var>x:close-display</var> or
+<var>x:flush</var> explicitly so that any pending errors are reported.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aprotocol_002dversion"></a><u>Function:</u> <b>x:protocol-version</b><i> display</i></dt>
+<dd><p>Returns cons of the major version number (11) of the X protocol
+associated with the connected <var>display</var> and the minor protocol
+revision number of the X server.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aserver_002dvendor"></a><u>Function:</u> <b>x:server-vendor</b><i> display</i></dt>
+<dd><p>Returns a string that provides some identification of the owner of the X
+server implementation. The contents of the string are
+implementation-dependent.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003avendor_002drelease"></a><u>Function:</u> <b>x:vendor-release</b><i> display</i></dt>
+<dd><p>Returns a number related to a vendor&rsquo;s release of the X server.
+</p></dd></dl>
+
+
+<p>A display consists of one or more <em>Screen</em>s. Each screen has a
+<em>root-window</em>, <em>default-graphics-context</em>, and <em>colormap</em>.
+</p>
+<dl>
+<dt><a name="index-x_003ascreen_002dcount"></a><u>Function:</u> <b>x:screen-count</b><i> display</i></dt>
+<dd><p>Returns the number of available screens.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003adefault_002dscreen"></a><u>Function:</u> <b>x:default-screen</b><i> display</i></dt>
+<dd><p>Returns the default screen number specified by the <code>x:open-display</code>
+function. Use this screen number in applications which will use only a
+single screen.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aroot_002dwindow"></a><u>Function:</u> <b>x:root-window</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003aroot_002dwindow-1"></a><u>Function:</u> <b>x:root-window</b><i> display</i></dt>
+<dd><p><var>screen-number</var>, if givien, specifies the appropriate screen number
+on the host server. Otherwise the default-screen for <var>display</var> is
+used.
+</p>
+<p>Returns the root window for the specified <var>screen-number</var>. Use
+<code>x:root-window</code> for functions that need a drawable of a particular
+screen or for creating top-level windows.
+</p>
+</dd><dt><a name="index-x_003aroot_002dwindow-2"></a><u>Function:</u> <b>x:root-window</b><i> window</i></dt>
+<dd><p>Returns the root window for the specified <var>window</var>&rsquo;s screen.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003adefault_002dcolormap"></a><u>Function:</u> <b>x:default-colormap</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003adefault_002dcolormap-1"></a><u>Function:</u> <b>x:default-colormap</b><i> display</i></dt>
+<dt><a name="index-x_003adefault_002dcolormap-2"></a><u>Function:</u> <b>x:default-colormap</b><i> window</i></dt>
+<dd><p>Returns the default colormap of the specified screen.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003adefault_002dccc"></a><u>Function:</u> <b>x:default-ccc</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003adefault_002dccc-1"></a><u>Function:</u> <b>x:default-ccc</b><i> display</i></dt>
+<dt><a name="index-x_003adefault_002dccc-2"></a><u>Function:</u> <b>x:default-ccc</b><i> window</i></dt>
+<dd><p>Returns the default Color-Conversion-Context (ccc) of the specified
+screen.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003adefault_002dgc"></a><u>Function:</u> <b>x:default-gc</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003adefault_002dgc-1"></a><u>Function:</u> <b>x:default-gc</b><i> display</i></dt>
+<dt><a name="index-x_003adefault_002dgc-2"></a><u>Function:</u> <b>x:default-gc</b><i> window</i></dt>
+<dd><p>Returns the default graphics-context of the specified screen.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003ascreen_002ddepths"></a><u>Function:</u> <b>x:screen-depths</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003ascreen_002ddepths-1"></a><u>Function:</u> <b>x:screen-depths</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002ddepths-2"></a><u>Function:</u> <b>x:screen-depths</b><i> window</i></dt>
+<dd><p>Returns an array of depths supported by the specified screen.
+</p></dd></dl>
+
+<p>The <em>Visual</em> type describes possible colormap depths and
+arrangements.
+</p>
+<dl>
+<dt><a name="index-x_003adefault_002dvisual"></a><u>Function:</u> <b>x:default-visual</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003adefault_002dvisual-1"></a><u>Function:</u> <b>x:default-visual</b><i> display</i></dt>
+<dt><a name="index-x_003adefault_002dvisual-2"></a><u>Function:</u> <b>x:default-visual</b><i> window</i></dt>
+<dd><p>Returns the default Visual type for the specified screen.
+</p>
+<a name="index-visual"></a>
+<a name="index-Visual"></a>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003amake_002dvisual"></a><u>Function:</u> <b>x:make-visual</b><i> display depth class</i></dt>
+<dt><a name="index-x_003amake_002dvisual-1"></a><u>Function:</u> <b>x:make-visual</b><i> window depth class</i></dt>
+<dd>
+<p>The integer <var>depth</var> specifies the number of bits per pixel.
+The <var>class</var> argument specifies one of the possible
+visual classes for a screen:
+</p><ul>
+<li> x:Static-Gray
+</li><li> x:Static-Color
+</li><li> x:True-Color
+</li><li> x:Gray-Scale
+</li><li> x:Pseudo-Color
+</li><li> x:Direct-Color
+</li></ul>
+
+<p><code>X:make-visual</code> returns a visual type for the screen specified by
+<var>display</var> or <var>window</var> if successful; #f if not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003avisual_002dclass"></a><u>Function:</u> <b>x:visual-class</b><i> visual</i></dt>
+<dt><a name="index-x_003avisual_002dclass-1"></a><u>Function:</u> <b>x:visual-class</b><i> screen</i></dt>
+<dt><a name="index-x_003avisual_002dclass-2"></a><u>Function:</u> <b>x:visual-class</b><i> display</i></dt>
+<dd><p>Returns the (integer) visual class of its argument.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003avisual_002dgeometry"></a><u>Function:</u> <b>x:visual-geometry</b><i> visual</i></dt>
+<dt><a name="index-x_003avisual_002dgeometry-1"></a><u>Function:</u> <b>x:visual-geometry</b><i> screen</i></dt>
+<dt><a name="index-x_003avisual_002dgeometry-2"></a><u>Function:</u> <b>x:visual-geometry</b><i> display</i></dt>
+<dd><p>Returns a list of the:
+</p><ul>
+<li> red_mask
+</li><li> green_mask
+</li><li> blue_mask
+</li><li> colormap_size
+</li></ul>
+</dd></dl>
+
+
+<dl>
+<dt><a name="index-x_003ascreen_002dcells"></a><u>Function:</u> <b>x:screen-cells</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003ascreen_002dcells-1"></a><u>Function:</u> <b>x:screen-cells</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002dcells-2"></a><u>Function:</u> <b>x:screen-cells</b><i> window</i></dt>
+<dd><p>Returns the number of entries in the default colormap.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003ascreen_002ddepth"></a><u>Function:</u> <b>x:screen-depth</b><i> display screen-number</i></dt>
+<dd><p>Returns the depth of the root window of the specified screen.
+</p></dd><dt><a name="index-x_003ascreen_002ddepth-1"></a><u>Function:</u> <b>x:screen-depth</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002ddepth-2"></a><u>Function:</u> <b>x:screen-depth</b><i> window</i></dt>
+<dt><a name="index-x_003ascreen_002ddepth-3"></a><u>Function:</u> <b>x:screen-depth</b><i> visual</i></dt>
+<dd><p>Returns the depth of argument.
+</p>
+<a name="index-depth"></a>
+<p>The <em>depth</em> of a window or pixmap is the number of bits per pixel it has.
+The <em>depth</em> of a graphics context is the depth of the drawables it can be
+used in conjunction with graphics output.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003ascreen_002dsize"></a><u>Function:</u> <b>x:screen-size</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003ascreen_002dsize-1"></a><u>Function:</u> <b>x:screen-size</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002dsize-2"></a><u>Function:</u> <b>x:screen-size</b><i> window</i></dt>
+<dd><p>Returns a list of integer height and width of the screen in pixels.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003ascreen_002ddimensions"></a><u>Function:</u> <b>x:screen-dimensions</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003ascreen_002ddimensions-1"></a><u>Function:</u> <b>x:screen-dimensions</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002ddimensions-2"></a><u>Function:</u> <b>x:screen-dimensions</b><i> window</i></dt>
+<dd><p>Returns a list of integer height and width of the screen in millimeters.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003ascreen_002dwhite"></a><u>Function:</u> <b>x:screen-white</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003ascreen_002dwhite-1"></a><u>Function:</u> <b>x:screen-white</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002dwhite-2"></a><u>Function:</u> <b>x:screen-white</b><i> window</i></dt>
+<dd><p>Returns the white pixel value of the specified screen.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003ascreen_002dblack"></a><u>Function:</u> <b>x:screen-black</b><i> display screen-number</i></dt>
+<dt><a name="index-x_003ascreen_002dblack-1"></a><u>Function:</u> <b>x:screen-black</b><i> display</i></dt>
+<dt><a name="index-x_003ascreen_002dblack-2"></a><u>Function:</u> <b>x:screen-black</b><i> window</i></dt>
+<dd><p>Returns the black pixel value of the specified screen.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Drawables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Display-and-Screens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Windows-and-Pixmaps" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Display-and-Screens" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-Context" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawables-1"></a>
+<h1 class="chapter">3. Drawables</h1>
+
+<a name="index-Drawable"></a>
+<a name="index-drawable"></a>
+<p>A <em>Drawable</em> is either a window or pixmap.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Windows-and-Pixmaps"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Window-Attributes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-Context" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Windows-and-Pixmaps-1"></a>
+<h2 class="section">3.1 Windows and Pixmaps</h2>
+
+<dl>
+<dt><a name="index-x_003acreate_002dwindow"></a><u>Function:</u> <b>x:create-window</b><i> window position size border-width depth class visual field-name value &hellip;</i></dt>
+<dd><p>Creates and returns an unmapped Input-Output subwindow for a specified
+parent <var>window</var> and causes the X server to generate a CreateNotify
+event. The created window is placed on top in the stacking order with
+respect to siblings. Any part of the window that extends outside its
+parent <var>window</var> is clipped. The <var>border-width</var> for an
+x:Input-Only window must be zero.
+</p>
+<p>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.
+</p>
+<p><var>Class</var> can be x:Input-Output, x:Input-Only, or x:Copy-From-Parent.
+For class x:Input-Output, the <var>visual</var> type and <var>depth</var> must be
+a combination supported for the screen. The <var>depth</var> need not be the
+same as the parent, but the parent must not be a window of class
+x:Input-Only. For an x:Input-Only window, the <var>depth</var> must be zero,
+and the <var>visual</var> must be one supported by the screen.
+</p>
+<p>The returned window will have the attributes specified by
+<var>field-name</var>s and <var>value</var>.
+</p>
+</dd><dt><a name="index-x_003acreate_002dwindow-1"></a><u>Function:</u> <b>x:create-window</b><i> window position size border-width border background</i></dt>
+<dd><p>The returned window inherits its depth, class, and visual from its
+parent. All other window attributes, except <var>background</var> and
+<var>border</var>, have their default values.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003acreate_002dpixmap"></a><u>Function:</u> <b>x:create-pixmap</b><i> drawable size depth</i></dt>
+<dt><a name="index-x_003acreate_002dpixmap-1"></a><u>Function:</u> <b>x:create-pixmap</b><i> display size depth</i></dt>
+<dd>
+<p><var>size</var> is a list, vector, or pair of nonzero integers specifying the width
+and height desired in the new pixmap.
+</p>
+<p><var>x:create-pixmap</var> returns a new pixmap of the width, height, and
+<var>depth</var> specified. It is valid to pass an x:Input-Only window to the
+drawable argument. The <var>depth</var> argument must be one of the depths
+supported by the screen of the specified <var>drawable</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aclose-1"></a><u>Function:</u> <b>x:close</b><i> window</i></dt>
+<dd><p>Destroys the specified <var>window</var> as well as all of its subwindows and
+causes the X server to generate a DestroyNotify event for each window.
+The window should not be used again. If the window specified by the
+<var>window</var> argument is mapped, it is unmapped automatically. The
+ordering of the DestroyNotify events is such that for any given window
+being destroyed, DestroyNotify is generated on any inferiors of the
+window before being generated on the window itself. The ordering among
+siblings and across subhierarchies is not otherwise constrained. If the
+<var>window</var> you specified is a root window, an error is signaled.
+Destroying a mapped <var>window</var> will generate x:Expose events on other
+windows that were obscured by the window being destroyed.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aclose-2"></a><u>Function:</u> <b>x:close</b><i> pixmap</i></dt>
+<dd><p>Deletes the association between the <var>pixmap</var> and its storage. The X
+server frees the pixmap storage when there are no references to it.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003awindow_002dgeometry"></a><u>Function:</u> <b>x:window-geometry</b><i> drawable</i></dt>
+<dd><p>Returns a list of:
+</p>
+<dl compact="compact">
+<dt> coordinates</dt>
+<dd><p><code>list</code> of x and y coordinates that define the location of the
+<var>drawable</var>. For a window, these coordinates specify the upper-left
+outer corner relative to its parent&rsquo;s origin. For pixmaps, these
+coordinates are always zero.
+</p></dd>
+<dt> size</dt>
+<dd><p><code>list</code> of the <var>drawable</var>&rsquo;s dimensions (width and height). For
+a window, these dimensions specify the inside size, not including the
+border.
+</p></dd>
+<dt> border-width</dt>
+<dd><p>The border width in pixels. If the <var>drawable</var> is a pixmap, this is
+zero.
+</p></dd>
+<dt> depth</dt>
+<dd><p>The depth of the <var>drawable</var> (bits per pixel for the object).
+</p></dd>
+</dl>
+</dd></dl>
+
+
+<dl>
+<dt><a name="index-x_003awindow_002dgeometry_002dset_0021"></a><u>Function:</u> <b>x:window-geometry-set!</b><i> window field-name value &hellip;</i></dt>
+<dd><p>Changes the <em>Configuration</em> components specified by
+<var>field-name</var>s for the specified <var>window</var>.
+</p></dd></dl>
+
+<p>These are the attributes settable by <code>x:window-geometry-set!</code>.
+That these attributes are encoded by small integers &ndash; just like those
+of the next section. Be warned therefore that confusion of attribute
+names will likely not signal errors, just cause mysterious behavior.
+</p>
+<dl>
+<dt><a name="index-x_003aCWX"></a><u>Attribute:</u> <b>x:CWX</b></dt>
+<dt><a name="index-x_003aCWY"></a><u>Attribute:</u> <b>x:CWY</b></dt>
+<dt><a name="index-x_003aCW_002dWidth"></a><u>Attribute:</u> <b>x:CW-Width</b></dt>
+<dt><a name="index-x_003aCW_002dHeight"></a><u>Attribute:</u> <b>x:CW-Height</b></dt>
+<dd><p>The x:CWX and x:CYY members are used to set the window&rsquo;s x and y
+coordinates, which are relative to the parent&rsquo;s origin and indicate the
+position of the upper-left outer corner of the window. The x:CW-Width
+and x:CW-Height members are used to set the inside size of the window,
+not including the border, and must be nonzero. Attempts to configure a
+root window have no effect.
+</p>
+<p>If a window&rsquo;s size actually changes, the window&rsquo;s subwindows move
+according to their window gravity. Depending on the window&rsquo;s bit
+gravity, the contents of the window also may be moved
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBorder_002dWidth"></a><u>Attribute:</u> <b>x:CW-Border-Width</b></dt>
+<dd><p>The integer x:CW-Border-Width is used to set the width of the border in
+pixels. Note that setting just the border width leaves the outer-left
+corner of the window in a fixed position but moves the absolute position
+of the window&rsquo;s origin. It is an error to set the border-width
+attribute of an InputOnly window nonzero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dSibling"></a><u>Attribute:</u> <b>x:CW-Sibling</b></dt>
+<dd><p>The sibling member is used to set the sibling window for stacking
+operations.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dStack_002dMode"></a><u>Attribute:</u> <b>x:CW-Stack-Mode</b></dt>
+<dd><p>The x:CW-Stack-Mode member is used to set how the window is to be
+restacked and can be set to x:Above, x:Below, x:Top-If, x:Bottom-If, or
+x:Opposite.
+</p></dd></dl>
+
+<p>If a sibling and a stack-mode are specified, the window is restacked as
+follows:
+</p>
+<dl compact="compact">
+<dt> <code>x:Above</code></dt>
+<dd><p>The window is placed just above the sibling.
+</p></dd>
+<dt> <code>x:Below</code></dt>
+<dd><p>The window is placed just below the sibling.
+</p></dd>
+<dt> <code>x:Top-If</code></dt>
+<dd><p>If the sibling occludes the window, the window is placed at the top of
+the stack.
+</p></dd>
+<dt> <code>x:Bottom-If</code></dt>
+<dd><p>If the window occludes the sibling, the window is placed at the bottom
+of the stack.
+</p></dd>
+<dt> <code>x:Opposite</code></dt>
+<dd><p>If the sibling occludes the window, the window is placed at the top of
+the stack. If the window occludes the sibling, the window is placed at
+the bottom of the stack.
+</p></dd>
+</dl>
+
+<p>If a stack-mode is specified but no sibling is specified, the window
+is restacked as follows:
+</p>
+<dl compact="compact">
+<dt> <code>x:Above</code></dt>
+<dd><p>The window is placed at the top of the stack.
+</p></dd>
+<dt> <code>x:Below</code></dt>
+<dd><p>The window is placed at the bottom of the stack.
+</p></dd>
+<dt> <code>x:Top-If</code></dt>
+<dd><p>If any sibling occludes the window, the window is placed at the top of
+the stack.
+</p></dd>
+<dt> <code>x:Bottom-If</code></dt>
+<dd><p>If the window occludes any sibling, the window is placed at the bottom
+of the stack.
+</p></dd>
+<dt> <code>x:Opposite</code></dt>
+<dd><p>If any sibling occludes the window, the window is placed at the top of
+the stack. If the window occludes any sibling, the window is placed at
+the bottom of the stack.
+</p></dd>
+</dl>
+
+
+
+
+<hr size="6">
+<a name="Window-Attributes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Windows-and-Pixmaps" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Window-Properties-and-Visibility" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-Context" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Window-Attributes-1"></a>
+<h2 class="section">3.2 Window Attributes</h2>
+
+<dl>
+<dt><a name="index-x_003awindow_002dset_0021"></a><u>Function:</u> <b>x:window-set!</b><i> window field-name value &hellip;</i></dt>
+<dd><p>Changes the components specified by <var>field-name</var>s for the specified
+<var>window</var>. The restrictions are the same as for
+<code>x:create-window</code>. The order in which components are verified and
+altered is server dependent. If an error occurs, a subset of the
+components may have been altered.
+</p></dd></dl>
+
+<p>The <code>x:create-window</code> and <code>x:window-set!</code> procedures take five
+and one argument (respectively) followed by pairs of arguments, where
+the first is one of the property-name symbols (or its top-level value)
+listed below; and the second is the value to associate with that
+property.
+</p>
+<dl>
+<dt><a name="index-x_003aCW_002dBack_002dPixmap"></a><u>Attribute:</u> <b>x:CW-Back-Pixmap</b></dt>
+<dd><p>Sets the background pixmap of the <var>window</var> to the specified pixmap.
+The background pixmap can immediately be freed if no further explicit
+references to it are to be made. If x:Parent-Relative is specified, the
+background pixmap of the window&rsquo;s parent is used, or on the root window,
+the default background is restored. It is an error to perform this
+operation on an x:Input-Only window. If the background is set to #f or
+None, the window has no defined background.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBack_002dPixel"></a><u>Attribute:</u> <b>x:CW-Back-Pixel</b></dt>
+<dd><p>Sets the background of the <var>window</var> to the specified pixel value.
+Changing the background does not cause the <var>window</var> contents to be
+changed. It is an error to perform this operation on an x:Input-Only
+window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBorder_002dPixmap"></a><u>Attribute:</u> <b>x:CW-Border-Pixmap</b></dt>
+<dd><p>Sets the border pixmap of the <var>window</var> to the pixmap you specify.
+The border pixmap can be freed if no further explicit references to it
+are to be made. If you specify x:Copy-From-Parent, a copy of the parent
+window&rsquo;s border pixmap is used. It is an error to perform this
+operation on an x:Input-Only <var>window</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBorder_002dPixel"></a><u>Attribute:</u> <b>x:CW-Border-Pixel</b></dt>
+<dd><p>Sets the border of the <var>window</var> to the pixel <var>value</var>. It is an
+error to perform this operation on an x:Input-Only window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBit_002dGravity"></a><u>Attribute:</u> <b>x:CW-Bit-Gravity</b></dt>
+<dt><a name="index-x_003aCW_002dWin_002dGravity"></a><u>Attribute:</u> <b>x:CW-Win-Gravity</b></dt>
+<dd><p>The bit gravity of a window defines which region of the window should be
+retained when an x:Input-Output window is resized. The default value
+for the bit-gravity attribute is x:Forget-Gravity. The window gravity
+of a window allows you to define how the x:Input-Output or x:Input-Only
+window should be repositioned if its parent is resized. The default
+value for the win-gravity attribute is x:North-West-Gravity.
+</p>
+<p>If the inside width or height of a window is not changed and if 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) and causes children to be
+reconfigured (depending on their win-gravity). For a change of width
+and height, the (x, y) pairs are defined:
+</p>
+<table>
+<tr><td width="50%">Gravity Direction</td><td width="50%">Coordinates</td></tr>
+<tr><td width="50%">x:North-West-Gravity</td><td width="50%">(0, 0)</td></tr>
+<tr><td width="50%">x:North-Gravity</td><td width="50%">(Width/2, 0)</td></tr>
+<tr><td width="50%">x:North-East-Gravity</td><td width="50%">(Width, 0)</td></tr>
+<tr><td width="50%">x:West-Gravity</td><td width="50%">(0, Height/2)</td></tr>
+<tr><td width="50%">x:Center-Gravity</td><td width="50%">(Width/2, Height/2)</td></tr>
+<tr><td width="50%">x:East-Gravity</td><td width="50%">(Width, Height/2)</td></tr>
+<tr><td width="50%">x:South-West-Gravity</td><td width="50%">(0, Height)</td></tr>
+<tr><td width="50%">x:South-Gravity</td><td width="50%">(Width/2, Height)</td></tr>
+<tr><td width="50%">x:South-East-Gravity</td><td width="50%">(Width, Height)</td></tr>
+</table>
+
+<p>When a window with one of these bit-gravity values 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. When a window is so repositioned, a
+x:Gravity-Notify event is generated (see section 10.10.5).
+</p>
+<p>A bit-gravity of x:Static-Gravity 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 (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 x:Static-Gravity still only
+takes effect when the width or height of the window is changed, not when
+the window is moved.
+</p>
+<p>A bit-gravity of x:Forget-Gravity indicates that the window&rsquo;s contents
+are always discarded after a size change, even if a backing store or
+save under has been requested. The window is tiled with its background
+and zero or more x:Expose events are generated. If no background is
+defined, the existing screen contents are not altered. Some X servers
+may also ignore the specified bit-gravity and always generate x:Expose
+events.
+</p>
+<p>The contents and borders of inferiors are not affected by their parent&rsquo;s
+bit-gravity. A server is permitted to ignore the specified bit-gravity
+and use x:Forget-Gravity instead.
+</p>
+<p>A win-gravity of x:Unmap-Gravity is like x:North-West-Gravity (the
+window is not moved), except the child is also unmapped when the parent
+is resized, and an x:Unmap-Notify event is generated.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBacking_002dStore"></a><u>Attribute:</u> <b>x:CW-Backing-Store</b></dt>
+<dd><p>Some implementations of the X server may choose to maintain the contents
+of x:Input-Output windows. If the X server maintains the contents of a
+window, the off-screen saved pixels are known as backing store. The
+backing store advises the X server on what to do with the contents of a
+window. The backing-store attribute can be set to x:Not-Useful
+(default), x:When-Mapped, or x:Always. A backing-store attribute of
+x:Not-Useful advises the X server that maintaining contents is
+unnecessary, although some X implementations may still choose to
+maintain contents and, therefore, not generate x:Expose events. A
+backing-store attribute of x:When-Mapped advises the X server that
+maintaining contents of obscured regions when the window is mapped would
+be beneficial. In this case, the server may generate an x:Expose event
+when the window is created. A backing-store attribute of x:Always
+advises the X server that maintaining contents even when the window is
+unmapped would be beneficial. Even if the window is larger than its
+parent, this is a request to the X server to maintain complete contents,
+not just the region within the parent window boundaries. While the X
+server maintains the window&rsquo;s contents, x:Expose events normally are not
+generated, but the X server may stop maintaining contents at any time.
+</p>
+<p>When the contents of obscured regions of a window are being maintained,
+regions obscured by noninferior windows are included in the destination
+of graphics requests (and source, when the window is the source).
+However, regions obscured by inferior windows are not included.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dBacking_002dPlanes"></a><u>Attribute:</u> <b>x:CW-Backing-Planes</b></dt>
+<dt><a name="index-x_003aCW_002dBacking_002dPixel"></a><u>Attribute:</u> <b>x:CW-Backing-Pixel</b></dt>
+<dd><p>You can set backing planes to indicate (with bits set to 1) which bit
+planes of an x:Input-Output window hold dynamic data that must be
+preserved in backing store and during save unders. The default value
+for the backing-planes attribute is all bits set to 1. You can set
+backing pixel to specify what bits to use in planes not covered by
+backing planes. The default value for the backing-pixel attribute is
+all bits set to 0. The X server is free to save only the specified bit
+planes in the backing store or the save under and is free to regenerate
+the remaining planes with the specified pixel value. Any extraneous
+bits in these values (that is, those bits beyond the specified depth of
+the window) may be simply ignored. If you request backing store or save
+unders, you should use these members to minimize the amount of
+off-screen memory required to store your window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dOverride_002dRedirect"></a><u>Attribute:</u> <b>x:CW-Override-Redirect</b></dt>
+<dd><p>To control window placement or to add decoration, a window manager often
+needs to intercept (redirect) any map or configure request. Pop-up
+windows, however, often need to be mapped without a window manager
+getting in the way. To control whether an x:Input-Output or
+x:Input-Only window is to ignore these structure control facilities, use
+the override-redirect flag.
+</p>
+<p>The override-redirect flag specifies whether map and configure requests
+on this window should override a x:Substructure-Redirect-Mask on the
+parent. You can set the override-redirect flag to #t or #f (default).
+Window managers use this information to avoid tampering with pop-up
+windows.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dSave_002dUnder"></a><u>Attribute:</u> <b>x:CW-Save-Under</b></dt>
+<dd><p>Some server implementations may preserve contents of x:Input-Output windows
+under other x:Input-Output windows. This is not the same as preserving the
+contents of a window for you. You may get better visual appeal if
+transient windows (for example, pop-up menus) request that the system
+preserve the screen contents under them, so the temporarily obscured
+applications do not have to repaint.
+</p>
+<p>You can set the save-under flag to True or False (default). If
+save-under is True, the X server is advised that, when this window is
+mapped, saving the contents of windows it obscures would be beneficial.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dEvent_002dMask"></a><u>Attribute:</u> <b>x:CW-Event-Mask</b></dt>
+<dd><p>The event mask defines which events the client is interested in for this
+x:Input-Output or x:Input-Only window (or, for some event types,
+inferiors of this window). The event mask is the bitwise inclusive OR
+of zero or more of the valid event mask bits. You can specify that no
+maskable events are reported by setting x:No-Event-Mask (default).
+</p>
+<p>The following table lists the event mask constants you can pass to the
+event-mask argument and the circumstances in which you would want to
+specify the event mask:
+</p>
+<table>
+<tr><td width="45%">Event Mask</td><td width="55%">Circumstances</td></tr>
+<tr><td width="45%">x:No-Event-Mask</td><td width="55%">No events wanted</td></tr>
+<tr><td width="45%">x:Key-Press-Mask</td><td width="55%">Keyboard down events wanted</td></tr>
+<tr><td width="45%">x:Key-Release-Mask</td><td width="55%">Keyboard up events wanted</td></tr>
+<tr><td width="45%">x:Button-Press-Mask</td><td width="55%">Pointer button down events wanted</td></tr>
+<tr><td width="45%">x:Button-Release-Mask</td><td width="55%">Pointer button up events wanted</td></tr>
+<tr><td width="45%">x:Enter-Window-Mask</td><td width="55%">Pointer window entry events wanted</td></tr>
+<tr><td width="45%">x:Leave-Window-Mask</td><td width="55%">Pointer window leave events wanted</td></tr>
+<tr><td width="45%">x:Pointer-Motion-Mask</td><td width="55%">Pointer motion events wanted</td></tr>
+<tr><td width="45%">x:Pointer-Motion-Hint-Mask</td><td width="55%">If x:Pointer-Motion-Hint-Mask is selected in combination with one or
+more motion-masks, the X server is free to send only one x:Motion-Notify
+event (with the is_hint member of the X:Pointer-Moved-Event structure
+set to x:Notify-Hint) to the client for the event window, until either
+the key or button state changes, the pointer leaves the event window, or
+the client calls X:Query-Pointer or X:Get-Motion-Events. The server
+still may send x:Motion-Notify events without is_hint set to
+x:Notify-Hint.</td></tr>
+<tr><td width="45%">x:Button1-Motion-Mask</td><td width="55%">Pointer motion while button 1 down</td></tr>
+<tr><td width="45%">x:Button2-Motion-Mask</td><td width="55%">Pointer motion while button 2 down</td></tr>
+<tr><td width="45%">x:Button3-Motion-Mask</td><td width="55%">Pointer motion while button 3 down</td></tr>
+<tr><td width="45%">x:Button4-Motion-Mask</td><td width="55%">Pointer motion while button 4 down</td></tr>
+<tr><td width="45%">x:Button5-Motion-Mask</td><td width="55%">Pointer motion while button 5 down</td></tr>
+<tr><td width="45%">x:Button-Motion-Mask</td><td width="55%">Pointer motion while any button down</td></tr>
+<tr><td width="45%">x:Keymap-State-Mask</td><td width="55%">Keyboard state wanted at window entry and focus in</td></tr>
+<tr><td width="45%">x:Exposure-Mask</td><td width="55%">Any exposure wanted</td></tr>
+<tr><td width="45%">x:Visibility-Change-Mask</td><td width="55%">Any change in visibility wanted</td></tr>
+<tr><td width="45%">x:Structure-Notify-Mask</td><td width="55%">Any change in window structure wanted</td></tr>
+<tr><td width="45%">x:Resize-Redirect-Mask</td><td width="55%">Redirect resize of this window</td></tr>
+<tr><td width="45%">x:Substructure-Notify-Mask</td><td width="55%">Substructure notification wanted</td></tr>
+<tr><td width="45%">x:Substructure-Redirect-Mask</td><td width="55%">Redirect structure requests on children</td></tr>
+<tr><td width="45%">x:Focus-Change-Mask</td><td width="55%">Any change in input focus wanted</td></tr>
+<tr><td width="45%">x:Property-Change-Mask</td><td width="55%">Any change in property wanted</td></tr>
+<tr><td width="45%">x:Colormap-Change&ndash;Mask</td><td width="55%">Any change in colormap wanted</td></tr>
+<tr><td width="45%">x:Owner-Grab-Button&ndash;Mask</td><td width="55%">Automatic grabs should activate with owner_events set to True</td></tr>
+</table>
+
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dDont_002dPropagate"></a><u>Attribute:</u> <b>x:CW-Dont-Propagate</b></dt>
+<dd><p>The do-not-propagate-mask attribute defines which events should not be
+propagated to ancestor windows when no client has the event type
+selected in this x:Input-Output or x:Input-Only window. The
+do-not-propagate-mask is the bitwise inclusive OR of zero or more of the
+following masks: x:Key-Press, x:Key-Release, x:Button-Press,
+x:Button-Release, x:Pointer-Motion, x:Button1Motion, x:Button2Motion,
+x:Button3Motion, x:Button4Motion, x:Button5Motion, and x:Button-Motion.
+You can specify that all events are propagated by setting
+x:No-Event-Mask (default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dColormap"></a><u>Attribute:</u> <b>x:CW-Colormap</b></dt>
+<dd><p>The colormap attribute specifies which colormap best reflects the true
+colors of the x:Input-Output window. The colormap must have the same
+visual type as the window. X servers capable of supporting multiple
+hardware colormaps can use this information, and window managers can use
+it for calls to X:Install-Colormap. You can set the colormap attribute
+to a colormap or to x:Copy-From-Parent (default).
+</p>
+<p>If you set the colormap to x:Copy-From-Parent, the parent window&rsquo;s
+colormap is copied and used by its child. However, the child window
+must have the same visual type as the parent. The parent window must
+not have a colormap of x:None. The colormap is copied by sharing the
+colormap object between the child and parent, not by making a complete
+copy of the colormap contents. Subsequent changes to the parent
+window&rsquo;s colormap attribute do not affect the child window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aCW_002dCursor"></a><u>Attribute:</u> <b>x:CW-Cursor</b></dt>
+<dd><p>The cursor attribute specifies which cursor is to be used when the
+pointer is in the x:Input-Output or x:Input-Only window. You can set
+the cursor to a cursor or x:None (default).
+</p>
+<p>If you set the cursor to x:None, the parent&rsquo;s cursor is used when the
+pointer is in the x:Input-Output or x:Input-Only window, and any change
+in the parent&rsquo;s cursor will cause an immediate change in the displayed
+cursor. On the root window, the default cursor is restored.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003awindow_002dref"></a><u>Function:</u> <b>x:window-ref</b><i> window field-name &hellip;</i></dt>
+<dd><p>Returns a list of the components specified by <var>field-name</var>s for the
+specified <var>window</var>. Allowable <var>field-name</var>s are a subset of
+those for <code>x:window-set!</code>:
+</p>
+<ul>
+<li> x:CW-Back-Pixel
+</li><li> x:CW-Bit-Gravity
+</li><li> x:CW-Win-Gravity
+</li><li> x:CW-Backing-Store
+</li><li> x:CW-Backing-Planes
+</li><li> x:CW-Backing-Pixel
+</li><li> x:CW-Override-Redirect
+</li><li> x:CW-Save-Under
+</li><li> x:CW-Event-Mask
+</li><li> x:CW-Dont-Propagate
+</li><li> x:CW-Colormap
+</li></ul>
+</dd></dl>
+
+
+<hr size="6">
+<a name="Window-Properties-and-Visibility"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Window-Attributes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-Context" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-Context" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Window-Properties-and-Visibility-1"></a>
+<h2 class="section">3.3 Window Properties and Visibility</h2>
+
+<dl>
+<dt><a name="index-x_003aget_002dwindow_002dproperty"></a><u>Function:</u> <b>x:get-window-property</b><i> window property</i></dt>
+<dd><p>Returns the (string or list of numbers) value of <var>property</var> of
+<var>window</var>.
+</p></dd><dt><a name="index-x_003aget_002dwindow_002dproperty-1"></a><u>Function:</u> <b>x:get-window-property</b><i> window property #t</i></dt>
+<dd><p>Removes and returns the (string or list of numbers) value of
+<var>property</var> of <var>window</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003alist_002dproperties"></a><u>Function:</u> <b>x:list-properties</b><i> window</i></dt>
+<dd><p>Returns a list of the properties (strings) defined for <var>window</var>.
+</p></dd></dl>
+
+<p>In X parlance, a window which is hidden even when not obscured by other
+windows is <em>unmapped</em>; one which
+<a name="index-map"></a>
+<a name="index-unmap"></a>
+<a name="index-mapped"></a>
+<a name="index-unmapped"></a>
+shows is <em>mapped</em>. It is an unfortunate name-collision with Scheme,
+and is ingrained in the attribute names.
+</p>
+<dl>
+<dt><a name="index-x_003amap_002dwindow"></a><u>Function:</u> <b>x:map-window</b><i> window</i></dt>
+<dd><p>Maps the <var>window</var> and all of its subwindows that have had map
+requests. Mapping a window that has an unmapped ancestor does not
+display the window but marks it as eligible for display when the
+ancestor becomes mapped. Such a window is called unviewable. When all
+its ancestors are mapped, the window becomes viewable and will be
+visible on the screen if it is not obscured by another window. This
+function has no effect if the <var>window</var> is already mapped.
+</p>
+<p>If the override-redirect of the window is False and if some other client
+has selected x:Substructure-Redirect-Mask on the parent window, then the X
+server generates a MapRequest event, and the <code>x:map-window</code>
+function does not map the <var>window</var>. Otherwise, the <var>window</var> is
+mapped, and the X server generates a MapNotify event.
+</p>
+<p>If the <var>window</var> becomes viewable and no earlier contents for it are
+remembered, the X server tiles the <var>window</var> with its background. If
+the window&rsquo;s background is undefined, the existing screen contents are
+not altered, and the X server generates zero or more x:Expose events. If
+backing-store was maintained while the <var>window</var> was unmapped, no
+x:Expose events are generated. If 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.
+</p>
+<p>If the window is an Input-Output window, <code>x:map-window</code> generates
+x:Expose events on each Input-Output window that it causes to be displayed.
+If the client maps and paints the window and if the client begins
+processing events, the window is painted twice. To avoid this, first
+ask for x:Expose events and then map the window, so the client processes
+input events as usual. The event list will include x:Expose for each
+window that has appeared on the screen. The client&rsquo;s normal response to
+an x:Expose event should be to repaint the window. This method usually
+leads to simpler programs and to proper interaction with window
+managers.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003amap_002dsubwindows"></a><u>Function:</u> <b>x:map-subwindows</b><i> window</i></dt>
+<dd><p>Maps all subwindows of a specified <var>window</var> in top-to-bottom
+stacking order. The X server generates x:Expose events on each newly
+displayed window. This may be much more efficient than mapping many
+windows one at a time because the server needs to perform much of the
+work only once, for all of the windows, rather than for each window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aunmap_002dwindow"></a><u>Function:</u> <b>x:unmap-window</b><i> window</i></dt>
+<dd><p>Unmaps the specified <var>window</var> and causes the X server to generate an
+UnmapNotify event. If the specified <var>window</var> is already unmapped,
+<code>x:unmap-window</code> has no effect. Normal exposure processing on
+formerly obscured windows is performed. Any child window will no longer
+be visible until another map call is made on the parent. In other
+words, the subwindows are still mapped but are not visible until the
+parent is mapped. Unmapping a <var>window</var> will generate x:Expose events
+on windows that were formerly obscured by it.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aunmap_002dsubwindows"></a><u>Function:</u> <b>x:unmap-subwindows</b><i> window</i></dt>
+<dd><p>Unmaps all subwindows for the specified <var>window</var> in bottom-to-top
+stacking order. It causes the X server to generate an UnmapNotify event
+on each subwindow and x:Expose events on formerly obscured windows. Using
+this function is much more efficient than unmapping multiple windows one
+at a time because the server needs to perform much of the work only
+once, for all of the windows, rather than for each window.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Graphics-Context"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Window-Properties-and-Visibility" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cursor" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Drawables" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Cursor" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-Context-1"></a>
+<h1 class="chapter">4. Graphics Context</h1>
+
+<p>Most attributes of graphics operations are stored in <em>GC</em>s. These
+include line width, line style, plane mask, foreground, background,
+tile, stipple, clipping region, end style, join style, and so on.
+Graphics operations (for example, drawing lines) use these values to
+determine the actual drawing operation.
+</p>
+<dl>
+<dt><a name="index-x_003acreate_002dgc"></a><u>Function:</u> <b>x:create-gc</b><i> drawable field-name value &hellip;</i></dt>
+<dd><p>Creates and returns graphics context. The graphics context can be used
+with any destination drawable having the same root and depth as the
+specified <var>drawable</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003agc_002dset_0021"></a><u>Function:</u> <b>x:gc-set!</b><i> graphics-context field-name value &hellip;</i></dt>
+<dd><p>Changes the components specified by <var>field-name</var>s for the specified
+<var>graphics-context</var>. The restrictions are the same as for
+<code>x:create-gc</code>. The order in which components are verified and
+altered is server dependent. If an error occurs, a subset of the
+components may have been altered.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003acopy_002dgc_002dfields_0021"></a><u>Function:</u> <b>x:copy-gc-fields!</b><i> gcontext-src gcontext-dst field-name &hellip;</i></dt>
+<dd><p>Copies the components specified by <var>field-name</var>s from
+<var>gcontext-src</var> to <var>gcontext-dst</var>. <var>Gcontext-src</var> and
+<var>gcontext-dst</var> must have the same root and depth.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003agc_002dref"></a><u>Function:</u> <b>x:gc-ref</b><i> graphics-context field-name &hellip;</i></dt>
+<dd><p>Returns a list of the components specified by <var>field-name</var>s &hellip;
+from the specified <var>graphics-context</var>.
+</p></dd></dl>
+
+<a name="GC-Attributes"></a>
+<h2 class="heading">GC Attributes</h2>
+
+<p>Both <code>x:create-gc</code> and <code>x:change-gc</code> take one argument
+followed by pairs of arguments, where the first is one of the
+property-name symbols (or its top-level value) listed below; and the
+second is the value to associate with that property.
+</p>
+<dl>
+<dt><a name="index-x_003aGC_002dFunction"></a><u>Attribute:</u> <b>x:GC-Function</b></dt>
+<dd><p>The function attributes of a GC are used when you update a section of a
+drawable (the destination) with bits from somewhere else (the source).
+The function in a GC defines how the new destination bits are to be
+computed from the source bits and the old destination bits. x:G-Xcopy is
+typically the most useful because it will work on a color display, but
+special applications may use other functions, particularly in concert
+with particular planes of a color display. The 16 functions are:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="format"><tt>
+x:G-Xclear 0
+x:G-Xand (AND src dst)
+x:G-Xand-Reverse (AND src (NOT dst))
+x:G-Xcopy src
+x:G-Xand-Inverted (AND (NOT src) dst)
+x:G-Xnoop dst
+x:G-Xxor (XOR src dst)
+x:G-Xor (OR src dst)
+x:G-Xnor (AND (NOT src) (NOT dst))
+x:G-Xequiv (XOR (NOT src) dst)
+x:G-Xinvert (NOT dst)
+x:G-Xor-Reverse (OR src (NOT dst))
+x:G-Xcopy-Inverted (NOT src)
+x:G-Xor-Inverted (OR (NOT src) dst)
+x:G-Xnand (OR (NOT src) (NOT dst))
+x:G-Xset 1</tt>
+</pre></td></tr></table>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dPlane_002dMask"></a><u>Attribute:</u> <b>x:GC-Plane-Mask</b></dt>
+<dd>
+<p>Many graphics operations depend on either pixel values or planes in a
+GC. The planes attribute is an integer which specifies which planes of
+the destination are to be modified, one bit per plane. A monochrome
+display has only one plane and will be the least significant bit of the
+integer. As planes are added to the display hardware, they will occupy
+more significant bits in the plane mask.
+</p>
+<p>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. <code>x:All-Planes</code> can be
+used to refer to all planes of the screen simultaneously. The result is
+computed by the following:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="format">(OR (AND (FUNC src dst) plane-mask) (AND dst (NOT plane-mask)))
+</pre></td></tr></table>
+
+<p>Range checking is not performed on a plane-mask value. It is simply
+truncated to the appropriate number of bits.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dForeground"></a><u>Attribute:</u> <b>x:GC-Foreground</b></dt>
+<dt><a name="index-x_003aGC_002dBackground"></a><u>Attribute:</u> <b>x:GC-Background</b></dt>
+<dd><p>Range checking is not performed on the values for foreground or
+background. They are simply truncated to the appropriate number of
+bits.
+</p>
+<p>Note that foreground and background are not initialized to any values
+likely to be useful in a window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dLine_002dWidth"></a><u>Attribute:</u> <b>x:GC-Line-Width</b></dt>
+<dd><p>The line-width is measured in pixels and either can be greater than or
+equal to one (wide line) or can be the special value zero (thin line).
+</p>
+<p>Thin lines (zero line-width) are one-pixel-wide lines drawn using an
+unspecified, device-dependent algorithm. There are only two constraints
+on this algorithm.
+</p>
+<ul>
+<li>
+If a line is drawn unclipped from [x1,y1] to [x2,y2] and if another line
+is drawn unclipped from [x1+dx,y1+dy] to [x2+dx,y2+dy], 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.
+
+</li><li>
+The effective set of points comprising a line cannot be affected by
+clipping. That is, 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.
+</li></ul>
+
+<p>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. It is recommended that this property be true for thin
+lines, but this is not required. A line-width of zero may differ from a
+line-width of one in which pixels are drawn. This permits the use of
+many manufacturers&rsquo; line drawing hardware, which may run many times
+faster than the more precisely specified wide lines.
+</p>
+<p>In general, drawing a thin line will be faster than drawing a wide line
+of width one. However, because of their different drawing algorithms,
+thin lines may not mix well aesthetically with wide lines. 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 linewidth of
+zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dLine_002dStyle"></a><u>Attribute:</u> <b>x:GC-Line-Style</b></dt>
+<dd><p>The line-style defines which sections of a line are drawn:
+</p>
+<dl compact="compact">
+<dt> <tt>x:Line-Solid</tt></dt>
+<dd><p>The full path of the line is drawn.
+</p></dd>
+<dt> <tt>x:Line-Double-Dash</tt></dt>
+<dd><p>The full path of the line is drawn, but the even dashes are filled
+differently from the odd dashes (see fill-style) with x:Cap-Butt style used
+where even and odd dashes meet.
+</p></dd>
+<dt> <tt>x:Line-On-Off-Dash</tt></dt>
+<dd><p>Only the even dashes are drawn, and cap-style applies to all internal
+ends of the individual dashes, except x:Cap-Not-Last is treated as x:Cap-Butt.
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dCap_002dStyle"></a><u>Attribute:</u> <b>x:GC-Cap-Style</b></dt>
+<dd>
+<p>The cap-style defines how the endpoints of a path are drawn:
+</p>
+<dl compact="compact">
+<dt> <tt>x:Cap-Not-Last</tt></dt>
+<dd><p>This is equivalent to x:Cap-Butt except that for a line-width of zero the
+final endpoint is not drawn.
+</p></dd>
+<dt> <tt>x:Cap-Butt</tt></dt>
+<dd><p>The line is square at the endpoint (perpendicular to the slope of the
+line) with no projection beyond.
+</p></dd>
+<dt> <tt>x:Cap-Round</tt></dt>
+<dd><p>The line has a circular arc with the diameter equal to the line-width,
+centered on the endpoint. (This is equivalent to x:Cap-Butt for line-width
+of zero).
+</p></dd>
+<dt> <tt>x:Cap-Projecting</tt></dt>
+<dd><p>The line is square at the end, but the path continues beyond the
+endpoint for a distance equal to half the line-width. (This is
+equivalent to x:Cap-Butt for line-width of zero).
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dJoin_002dStyle"></a><u>Attribute:</u> <b>x:GC-Join-Style</b></dt>
+<dd>
+<p>The join-style defines how corners are drawn for wide lines:
+</p>
+<dl compact="compact">
+<dt> <tt>x:Join-Miter</tt></dt>
+<dd><p>The outer edges of two lines extend to meet at an angle. However, if
+the angle is less than 11 degrees, then a x:Join-Bevel join-style is used
+instead.
+</p></dd>
+<dt> <tt>x:Join-Round</tt></dt>
+<dd><p>The corner is a circular arc with the diameter equal to the
+line-width, centered on the x:Join-point.
+</p></dd>
+<dt> <tt>x:Join-Bevel</tt></dt>
+<dd><p>The corner has x:Cap-Butt endpoint styles with the triangular notch filled.
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dFill_002dStyle"></a><u>Attribute:</u> <b>x:GC-Fill-Style</b></dt>
+<dd>
+<p>The fill-style defines the contents of the source for line, text, and
+fill requests. For all text and fill requests (for example,
+X:Draw-Text, X:Fill-Rectangle, X:Fill-Polygon, and X:Fill-Arc); for line
+requests with linestyle x:Line-Solid (for example, X:Draw-Line,
+X:Draw-Segments, X:Draw-Rectangle, X:Draw-Arc); and for the even dashes
+for line requests with line-style x:Line-On-Off-Dash or
+x:Line-Double-Dash, the following apply:
+</p>
+<dl compact="compact">
+<dt> <tt>x:Fill-Solid</tt></dt>
+<dd><p>Foreground
+</p></dd>
+<dt> <tt>x:Fill-Tiled</tt></dt>
+<dd><p>Tile
+</p></dd>
+<dt> <tt>x:Fill-Opaque-Stippled</tt></dt>
+<dd><p>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
+</p></dd>
+<dt> <tt>x:Fill-Stippled</tt></dt>
+<dd><p>Foreground masked by stipple
+</p></dd>
+</dl>
+
+<p>When drawing lines with line-style x:Line-Double-Dash, the odd dashes
+are controlled by the fill-style in the following manner:
+</p>
+<dl compact="compact">
+<dt> <tt>x:Fill-Solid</tt></dt>
+<dd><p>Background
+</p></dd>
+<dt> <tt>x:Fill-Tiled</tt></dt>
+<dd><p>Same as for even dashes
+</p></dd>
+<dt> <tt>x:Fill-Opaque-Stippled</tt></dt>
+<dd><p>Same as for even dashes
+</p></dd>
+<dt> <tt>x:Fill-Stippled</tt></dt>
+<dd><p>Background masked by stipple
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dFill_002dRule"></a><u>Attribute:</u> <b>x:GC-Fill-Rule</b></dt>
+<dd><p>The fill-rule defines what pixels are inside (drawn) for paths given in
+X:Fill-Polygon requests and can be set to x:Even-Odd-Rule or
+x:Winding-Rule.
+</p>
+<dl compact="compact">
+<dt> <tt>x:Even-Odd-Rule</tt></dt>
+<dd><p>A point is inside if an infinite ray with the point as
+origin crosses the path an odd number of times.
+</p></dd>
+<dt> <tt>x:Winding-Rule</tt></dt>
+<dd><p>A point is inside if an infinite ray with the point as origin crosses an
+unequal number of clockwise and counterclockwise directed path segments.
+</p></dd>
+</dl>
+
+<p>A clockwise directed path segment is one that crosses the ray from left
+to right as observed from the point. A counterclockwise 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 you can simply choose a different ray that is not
+coincident with a segment.
+</p>
+<p>For both x:Even-Odd-Rule and x:Winding-Rule, 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 on a horizontal edge are
+a special case and are inside if and only if the polygon interior is
+immediately below (y increasing direction).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dTile"></a><u>Attribute:</u> <b>x:GC-Tile</b></dt>
+<dt><a name="index-x_003aGC_002dStipple"></a><u>Attribute:</u> <b>x:GC-Stipple</b></dt>
+<dd><p>The tile/stipple represents an infinite two-dimensional plane, with the
+tile/stipple replicated in all dimensions.
+</p>
+<p>The tile pixmap must have the same root and depth as the GC, or an error
+results. The stipple pixmap must have depth one and must have the same
+root as the GC, or an error results. For stipple operations where the
+fill-style is x:Fill-Stippled but not x:Fill-Opaque-Stippled, the
+stipple pattern is tiled in a single plane and acts as an additional
+clip mask to be ANDed with the clip-mask. Although some sizes may be
+faster to use than others, any size pixmap can be used for tiling or
+stippling.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dTile_002dStip_002dX_002dOrigin"></a><u>Attribute:</u> <b>x:GC-Tile-Stip-X-Origin</b></dt>
+<dt><a name="index-x_003aGC_002dTile_002dStip_002dY_002dOrigin"></a><u>Attribute:</u> <b>x:GC-Tile-Stip-Y-Origin</b></dt>
+<dd><p>When the tile/stipple plane is superimposed on a 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 origin is interpreted relative to
+the origin of whatever destination drawable is specified in a graphics
+request.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dFont"></a><u>Attribute:</u> <b>x:GC-Font</b></dt>
+<dd><p>The font to be used for drawing text.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dSubwindow_002dMode"></a><u>Attribute:</u> <b>x:GC-Subwindow-Mode</b></dt>
+<dd><p>You can set the subwindow-mode to x:Clip-By-Children or
+x:Include-Inferiors.
+</p><dl compact="compact">
+<dt> <tt>x:Clip-By-Children</tt></dt>
+<dd><p>Both source and destination windows are additionally clipped by all
+viewable Input-Output children.
+</p></dd>
+<dt> <tt>x:Include-Inferiors</tt></dt>
+<dd><p>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
+<code>x:Include-Inferiors</code> on a window of one depth with mapped
+inferiors of differing depth is not illegal, but the semantics are
+undefined by the core protocol.
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dGraphics_002dExposures"></a><u>Attribute:</u> <b>x:GC-Graphics-Exposures</b></dt>
+<dd><p>The graphics-exposure flag controls x:Graphics-Expose event generation
+for X:Copy-Area and X:Copy-Plane requests (and any similar requests
+defined by extensions).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dClip_002dX_002dOrigin"></a><u>Attribute:</u> <b>x:GC-Clip-X-Origin</b></dt>
+<dt><a name="index-x_003aGC_002dClip_002dY_002dOrigin"></a><u>Attribute:</u> <b>x:GC-Clip-Y-Origin</b></dt>
+<dd><p>The clip-mask origin is interpreted relative to the origin of whatever
+destination drawable is specified in a graphics request.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dClip_002dMask"></a><u>Attribute:</u> <b>x:GC-Clip-Mask</b></dt>
+<dd><p>The clip-mask restricts writes to the destination drawable. If the
+clip-mask is set to a pixmap, it must have depth one and have the same
+root as the GC, or an error results. If clip-mask is set to
+<a name="index-x_003aNone"></a>
+<a name="index-none"></a>
+<em>x:None</em>, the pixels are always drawn regardless of the clip origin.
+The clip-mask also can be set by calling <code>X:Set-Region</code>. Only
+pixels where the clip-mask has a bit set to 1 are drawn. Pixels are not
+drawn outside the area covered by the clip-mask or where the clip-mask
+has a bit set to 0. The clip-mask affects all graphics requests. The
+clip-mask does not clip sources. The clip-mask origin is interpreted
+relative to the origin of whatever destination drawable is specified in
+a graphics request.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dDash_002dOffset"></a><u>Attribute:</u> <b>x:GC-Dash-Offset</b></dt>
+<dd><p>Defines the phase of the pattern, specifying how many pixels into the
+dash-list 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.
+</p>
+<p>The unit of measure for dashes is the same for 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.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dDash_002dList"></a><u>Attribute:</u> <b>x:GC-Dash-List</b></dt>
+<dd><p>There must be at least one element in the specified <var>dash-list</var>.
+The initial and alternating elements (second, fourth, and so on) of the
+<var>dash-list</var> are the even dashes, and the others are the odd dashes.
+Each element specifies a dash length in pixels. All of the elements
+must be nonzero. Specifying an odd-length list is equivalent to
+specifying the same list concatenated with itself to produce an
+even-length list.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aGC_002dArc_002dMode"></a><u>Attribute:</u> <b>x:GC-Arc-Mode</b></dt>
+<dd><p>The arc-mode controls filling in the X:Fill-Arcs function and can be set
+to x:Arc-Pie-Slice or x:Arc-Chord.
+</p><dl compact="compact">
+<dt> <tt>x:Arc-Pie-Slice</tt></dt>
+<dd><p>The arcs are pie-slice filled.
+</p></dd>
+<dt> <tt>x:Arc-Chord</tt></dt>
+<dd><p>The arcs are chord filled.
+</p></dd>
+</dl>
+</dd></dl>
+
+
+<hr size="6">
+<a name="Cursor"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-Context" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colormap" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Graphics-Context" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Colormap" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cursor-1"></a>
+<h1 class="chapter">5. Cursor</h1>
+
+<dl>
+<dt><a name="index-x_003acreate_002dcursor"></a><u>Function:</u> <b>x:create-cursor</b><i> display shape</i></dt>
+<dd><p>X provides a set of standard cursor shapes in a special font named
+<a name="index-cursor"></a>
+<em>cursor</em>. Applications are encouraged to use this interface for
+their cursors because the font can be customized for the individual
+display type. The <var>shape</var> argument specifies which glyph of the standard
+fonts to use.
+</p>
+<p>The hotspot comes from the information stored in the cursor font. The
+initial colors of a cursor are a black foreground and a white background
+(see X:Recolor-Cursor). The names of all cursor shapes are defined with
+the prefix XC: in &lsquo;<tt>x11.scm</tt>&rsquo;.
+</p>
+</dd><dt><a name="index-x_003acreate_002dcursor-1"></a><u>Function:</u> <b>x:create-cursor</b><i> source-font source-char mask-font mask-char fgc bgc</i></dt>
+<dd><p>Creates a cursor from the source and mask bitmaps obtained from the
+specified font glyphs. The integer <var>source-char</var> must be a defined
+glyph in <var>source-font</var>. The integer <var>mask-char</var> must be a
+defined glyph in <var>mask-font</var>. The origins of the <var>source-char</var>
+and <var>mask-char</var> glyphs are positioned coincidently and define the
+hotspot. The <var>source-char</var> and <var>mask-char</var> need not have the
+same bounding box metrics, and there is no restriction on the placement
+of the hotspot relative to the bounding boxes.
+</p>
+</dd><dt><a name="index-x_003acreate_002dcursor-2"></a><u>Function:</u> <b>x:create-cursor</b><i> source-font source-char #f #f fgc bgc</i></dt>
+<dd><p>If <var>mask-font</var> and <var>mask-char</var> are #f, all pixels of the source
+are displayed.
+</p>
+</dd><dt><a name="index-x_003acreate_002dcursor-3"></a><u>Function:</u> <b>x:create-cursor</b><i> source-pixmap mask-pixmap fgc bgc origin</i></dt>
+<dd><p><var>mask-pixmap</var> must be the same size as the pixmap defined by the
+<var>source-pixmap</var> argument. The foreground and background RGB values
+must be specified using <var>foreground-color</var> and
+<var>background-color</var>, even if the X server only has a x:Static-Gray or
+x:Gray-Scale screen. The hotspot must be a point within the
+<var>source-pixmap</var>.
+</p>
+<p><code>X:Create-Cursor</code> creates and returns a cursor. The
+<var>foreground-color</var> is used for the pixels set to 1 in the source,
+and the <var>background-color</var> is used for the pixels set to 0. Both
+source and mask must have depth one but can have any root. The
+<var>mask-pixmap</var> defines the shape of the cursor. The pixels set to 1
+in <var>mask-pixmap</var> define which source pixels are displayed, and the
+pixels set to 0 define which pixels are ignored.
+</p>
+</dd><dt><a name="index-x_003acreate_002dcursor-4"></a><u>Function:</u> <b>x:create-cursor</b><i> source-pixmap #f fgc bgc origin</i></dt>
+<dd><p>If <var>mask-pixmap</var> is #f, all pixels of the source are displayed.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Colormap"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cursor" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rendering" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Cursor" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Rendering" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colormap-1"></a>
+<h1 class="chapter">6. Colormap</h1>
+
+<a name="index-colormap"></a>
+<a name="index-RGB"></a>
+<p>A <em>colormap</em> maps pixel values to <em>RGB</em> color space values.
+</p>
+<dl>
+<dt><a name="index-x_003acreate_002dcolormap"></a><u>Function:</u> <b>x:create-colormap</b><i> window visual alloc-policy</i></dt>
+<dd><p><var>window</var> specifies the window on whose screen you want to create a
+colormap. <var>visual</var> specifies a visual type supported on the screen.
+<var>alloc-policy</var> Specifies the colormap entries to be allocated. You
+can pass <code>X:Alloc-None</code> or <code>X:Alloc-All</code>.
+</p>
+<p>The <code>X:Create-Colormap</code> function creates and returns a colormap of
+the specified <var>visual</var> type for the screen on which <var>window</var>
+resides. Note that <var>window</var> is used only to determine the screen.
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>X:Gray-Scale</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>X:Pseudo-Color</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>X:Direct-Color</samp>&rsquo;</dt>
+<dd><p>The initial values of the colormap entries are undefined.
+</p>
+</dd>
+<dt> &lsquo;<samp>X:Static-Gray</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>X:Static-Color</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>X:True-Color</samp>&rsquo;</dt>
+<dd><p>The entries have defined values, but those values are specific to
+<var>visual</var> and are not defined by X. The <var>alloc-policy</var> must be
+&lsquo;<samp>X:Alloc-None</samp>&rsquo;.
+</p>
+</dd>
+</dl>
+
+<p>For the other visual classes, if <var>alloc-policy</var> is
+&lsquo;<samp>X:Alloc-None</samp>&rsquo;, the colormap initially has no allocated entries,
+and clients can allocate them.
+</p>
+<p>If <var>alloc-policy</var> is &lsquo;<samp>X:Alloc-All</samp>&rsquo;, the entire colormap is
+allocated writable. The initial values of all allocated entries are
+undefined.
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>X:Gray-Scale</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>X:Pseudo-Color</samp>&rsquo;</dt>
+<dd><p>The effect is as if an <code>XAllocColorCells</code> call returned all pixel
+values from zero to N - 1, where N is the colormap entries value in
+<var>visual</var>.
+</p>
+</dd>
+<dt> &lsquo;<samp>X:Direct-Color</samp>&rsquo;</dt>
+<dd><p>The effect is as if an <code>XAllocColorPlanes</code> call 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.
+</p></dd>
+</dl>
+
+</dd></dl>
+
+
+<p>To create a new colormap when the allocation out of a previously
+shared colormap has failed because of resource exhaustion, use:
+</p>
+<dl>
+<dt><a name="index-x_003acopy_002dcolormap_002dand_002dfree"></a><u>Function:</u> <b>x:copy-colormap-and-free</b><i> colormap</i></dt>
+<dd>
+<p>Creates and returns a colormap of the same visual type and for the same
+screen as the specified <var>colormap</var>. It also moves all of the
+client&rsquo;s existing allocation from the specified <var>colormap</var> to the
+new colormap with their color values intact and their read-only or
+writable characteristics intact and frees those entries in the specified
+colormap. Color values in other entries in the new colormap are
+undefined. If the specified colormap was created by the client with
+alloc set to &lsquo;<samp>X:Alloc-All</samp>&rsquo;, the new colormap is also created with
+&lsquo;<samp>X:Alloc-All</samp>&rsquo;, all color values for all entries are copied from the
+specified <var>colormap</var>, and then all entries in the specified
+<var>colormap</var> are freed. If the specified <var>colormap</var> was not
+created by the client with &lsquo;<samp>X:Alloc-All</samp>&rsquo;, the allocations to be moved
+are all those pixels and planes that have been allocated by the client
+and that have not been freed since they were allocated.
+</p>
+</dd></dl>
+
+<p>A <em>colormap</em> maps pixel values to elements of the <em>RGB</em>
+datatype. An <var>RGB</var> is a list or vector of 3 integers, describing
+the red, green, and blue intensities respectively. The integers are in
+the range 0 - 65535.
+</p>
+<dl>
+<dt><a name="index-x_003aalloc_002dcolormap_002dcells"></a><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors nplanes</i></dt>
+<dt><a name="index-x_003aalloc_002dcolormap_002dcells-1"></a><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors nplanes contiguous?</i></dt>
+<dd>
+<p>The <code>X:Alloc-Color-Cells</code> function allocates read/write color
+cells. The number of colors, <var>ncolors</var> must be positive and the
+number of planes, <var>nplanes</var> nonnegative. If <var>ncolors</var> and
+nplanes are requested, then <var>ncolors</var> pixels and nplane plane masks
+are returned. No mask will have any bits set to 1 in common with any
+other mask or with any of the pixels. By ORing together each pixel with
+zero or more masks, <var>ncolors</var> * 2^<var>nplanes</var> distinct pixels can
+be produced. All of these are allocated writable by the request.
+</p>
+<dl compact="compact">
+<dt> &lsquo;<samp>x:Gray-Scale</samp>&rsquo;</dt>
+<dt> &lsquo;<samp>x:Pseudo-Color</samp>&rsquo;</dt>
+<dd><p>Each mask has exactly one bit set to 1. If <var>contiguous?</var> is
+non-false and if all masks are ORed together, a single contiguous set of
+bits set to 1 is formed.
+</p></dd>
+<dt> &lsquo;<samp>x:Direct-Color</samp>&rsquo;</dt>
+<dd><p>Each mask has exactly three bits set to 1. If <var>contiguous?</var> is
+non-false and if all masks are ORed together, three contiguous sets of
+bits set to 1 (one within each pixel subfield) is formed.
+</p></dd>
+</dl>
+
+<p>The RGB values of the allocated entries are undefined.
+<code>X:Alloc-Color-Cells</code> returns a list of two uniform arrays if it
+succeeded or #f if it failed. The first array has the pixels allocated
+and the second has the plane-masks.
+</p>
+
+</dd><dt><a name="index-x_003aalloc_002dcolormap_002dcells-2"></a><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors rgb</i></dt>
+<dt><a name="index-x_003aalloc_002dcolormap_002dcells-3"></a><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors rgb contiguous?</i></dt>
+<dd>
+<p>The specified <var>ncolors</var> must be positive; and <var>rgb</var> a list or
+vector of 3 nonnegative integers. If <var>ncolors</var> colors, <var>nreds</var>
+reds, <var>ngreens</var> greens, and <var>nblues</var> blues are requested,
+<var>ncolors</var> pixels are returned; and the masks have <var>nreds</var>,
+<var>ngreens</var>, and <var>nblues</var> bits set to 1, respectively. If
+<var>contiguous?</var> is non-false, each mask will have a contiguous set of
+bits set to 1. No mask will have any bits set to 1 in common with any
+other mask or with any of the pixels.
+</p>
+<p>Each mask will lie within the corresponding pixel subfield. By ORing
+together subsets of masks with each pixel value, <var>ncolors</var> *
+2(<var>nreds</var>+<var>ngreens</var>+<var>nblues</var>) distinct pixel values can be
+produced. All of these are allocated by the request. However, in the
+colormap, there are only <var>ncolors</var> * 2^<var>nreds</var> independent red
+entries, <var>ncolors</var> * 2^<var>ngreens</var> independent green entries, and
+<var>ncolors</var> * 2^<var>nblues</var> independent blue entries.
+</p>
+<p><code>X:Alloc-Color-Cells</code> returns a list if it succeeded or #f if it
+failed. The first element of the list has an array of the pixels
+allocated. The second, third, and fourth elements are the red, green,
+and blue plane-masks.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003afree_002dcolormap_002dcells"></a><u>Function:</u> <b>x:free-colormap-cells</b><i> colormap pixels planes</i></dt>
+<dt><a name="index-x_003afree_002dcolormap_002dcells-1"></a><u>Function:</u> <b>x:free-colormap-cells</b><i> colormap pixels</i></dt>
+<dd>
+<p>Frees the cells represented by pixels whose values are in the
+<var>pixels</var> unsigned-integer uniform-vector. The <var>planes</var> argument
+should not have any bits set to 1 in common with any of the pixels. The
+set of all pixels is produced by ORing together subsets of the
+<var>planes</var> argument with the pixels. The request frees all of these
+pixels that were allocated by the client. Note that freeing an
+individual pixel obtained from <code>X:Alloc-Colormap-Cells</code> with a
+planes argument 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.
+</p>
+<p>All specified pixels that are allocated by the client in the
+<var>colormap</var> are freed, even if one or more pixels produce an error.
+It is an error 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 (by passing
+&lsquo;<samp>x:Alloc-All</samp>&rsquo; to <code>X:Create-Colormap</code>). If more than one pixel
+is in error, the one that gets reported is arbitrary.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003acolormap_002dfind_002dcolor"></a><u>Function:</u> <b>x:colormap-find-color</b><i> colormap rgb</i></dt>
+<dd>
+<p><var>rgb</var> is a list or vector of 3 integers, describing the red, green,
+and blue intensities respectively; or an integer &lsquo;<samp>#x<i>rrggbb</i></samp>&rsquo;,
+packing red, green and blue intensities in the range 0 - 255.
+</p>
+</dd><dt><a name="index-x_003acolormap_002dfind_002dcolor-1"></a><u>Function:</u> <b>x:colormap-find-color</b><i> colormap color-name</i></dt>
+<dd>
+<p>The case-insensitive string <var>color_name</var> specifies the name of a
+color (for example, &lsquo;<tt>red</tt>&rsquo;)
+</p>
+<p><code>X:Colormap-Find-Color</code> allocates a read-only colormap entry
+corresponding to the closest RGB value supported by the hardware.
+<code>X:Colormap-Find-Color</code> returns the pixel value of the color
+closest to the specified <var>RGB</var> or <var>color_name</var> elements
+supported by the hardware, if successful; otherwise
+<code>X:Colormap-Find-Color</code> returns #f.
+</p>
+<p>Multiple clients that request the same effective RGB value can
+be assigned the same read-only entry, thus allowing entries to be
+shared. When the last client deallocates a shared cell, it is
+deallocated.
+</p>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003acolor_002dref"></a><u>Function:</u> <b>x:color-ref</b><i> colormap pixel</i></dt>
+<dd>
+<p>Returns a list of 3 integers, describing the red, green,
+and blue intensities respectively of the <var>colormap</var> entry of the
+cell indexed by <var>pixel</var>.
+</p>
+<p>The integer <var>pixel</var> must be a valid index into <var>colormap</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-X_003aColor_002dSet_0021"></a><u>Function:</u> <b>X:Color-Set!</b><i> colormap pixel rgb</i></dt>
+<dd>
+<p><var>rgb</var> is a list or vector of 3 integers, describing the red, green,
+and blue intensities respectively; or an integer &lsquo;<samp>#x<i>rrggbb</i></samp>&rsquo;,
+packing red, green and blue intensities in the range 0 - 255.
+</p>
+</dd><dt><a name="index-X_003aColor_002dSet_0021-1"></a><u>Function:</u> <b>X:Color-Set!</b><i> colormap pixel color-name</i></dt>
+<dd>
+<p>The case-insensitive string <var>color_name</var> specifies the name of a
+color (for example, &lsquo;<tt>red</tt>&rsquo;)
+</p>
+<p>The integer <var>pixel</var> must be a valid index into <var>colormap</var>.
+</p>
+<p><code>X:Color-Set!</code> changes the <var>colormap</var> entry of the read/write
+cell indexed by <var>pixel</var>. If the <var>colormap</var> is an installed map
+for its screen, the changes are visible immediately.
+</p>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003ainstall_002dcolormap"></a><u>Function:</u> <b>x:install-colormap</b><i> colormap</i></dt>
+<dd>
+<p>Installs the specified <var>colormap</var> for its associated screen. All
+windows associated with <var>colormap</var> immediately display with true
+colors. A colormap is associated with a window when the window is
+created or its attributes changed.
+</p>
+<p>If the specified colormap is not already an installed colormap, the X
+server generates a ColormapNotify event on each window that has that
+colormap.
+</p>
+</dd></dl>
+
+<dl>
+<dt><a name="index-x_003accc"></a><u>Function:</u> <b>x:ccc</b><i> colormap</i></dt>
+<dd><p>Returns the Color-Conversion-Context of <var>colormap</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Rendering"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colormap" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Images" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Colormap" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Images" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rendering-1"></a>
+<h1 class="chapter">7. Rendering</h1>
+
+<dl>
+<dt><a name="index-x_003aflush"></a><u>Function:</u> <b>x:flush</b><i> display</i></dt>
+<dt><a name="index-x_003aflush-1"></a><u>Function:</u> <b>x:flush</b><i> window</i></dt>
+<dd><p>Flushes the output buffer. Some client applications need not use this
+function because the output buffer is automatically flushed as needed by
+calls to X:Pending, X:Next-Event, and X:Window-Event. Events generated
+by the server may be enqueued into the library&rsquo;s event queue.
+</p>
+</dd><dt><a name="index-x_003aflush-2"></a><u>Function:</u> <b>x:flush</b><i> gc</i></dt>
+<dd><p>Forces sending of GC component changes.
+</p>
+<p>Xlib usually defers sending changes to the components of a GC to the
+server until a graphics function is actually called with that GC. This
+permits batching of component changes into a single server request. In
+some circumstances, however, it may be necessary for the client to
+explicitly force sending the changes to the server. An example might be
+when a protocol extension uses the GC indirectly, in such a way that the
+extension interface cannot know what GC will be used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aclear_002darea"></a><u>Function:</u> <b>x:clear-area</b><i> window (x-pos y-pos) (width height) expose?</i></dt>
+<dd><p>Paints a rectangular area in the specified <var>window</var> according to the
+specified dimensions with the <var>window</var>&rsquo;s background pixel or pixmap.
+The subwindow-mode effectively is &lsquo;<samp>x:Clip-By-Children</samp>&rsquo;. If width
+is zero, it is replaced with the current width of the <var>window</var> minus
+x. If height is zero, it is replaced with the current height of the
+<var>window</var> minus y. If the <var>window</var> has a defined background
+tile, the rectangle clipped by any children is filled with this tile.
+If the <var>window</var> has background x:None, the contents of the
+<var>window</var> are not changed. In either case, if <var>expose?</var> is True,
+one or more x:Expose events are generated for regions of the rectangle
+that are either visible or are being retained in a backing store. If
+you specify a <var>window</var> whose class is x:Input-Only, an error
+results.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003afill_002drectangle"></a><u>Function:</u> <b>x:fill-rectangle</b><i> window gcontext position size</i></dt>
+</dl>
+
+<a name="Draw-Strings"></a>
+<h2 class="heading">Draw Strings</h2>
+
+<dl>
+<dt><a name="index-x_003adraw_002dstring"></a><u>Function:</u> <b>x:draw-string</b><i> drawable gc position string</i></dt>
+<dd><p><var>Position</var> specifies coordinates relative to the origin of
+<var>drawable</var> of the origin of the first character to be drawn.
+</p>
+<p><code>x:draw-string</code> draws the characters of <var>string</var>, starting at
+<var>position</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aimage_002dstring"></a><u>Function:</u> <b>x:image-string</b><i> drawable gc position string</i></dt>
+<dd><p><var>Position</var> specifies coordinates relative to the origin of
+<var>drawable</var> of the origin of the first character to be drawn.
+</p>
+<p><code>x:image-string</code> draws the characters <em>and background</em> of
+<var>string</var>, starting at <var>position</var>.
+</p></dd></dl>
+
+<a name="Draw-Shapes"></a>
+<h2 class="heading">Draw Shapes</h2>
+
+<dl>
+<dt><a name="index-x_003adraw_002dpoints"></a><u>Function:</u> <b>x:draw-points</b><i> drawable gc position &hellip;</i></dt>
+<dd><p><var>Position</var> &hellip; specifies coordinates of the point to be drawn.
+</p>
+</dd><dt><a name="index-x_003adraw_002dpoints-1"></a><u>Function:</u> <b>x:draw-points</b><i> drawable gc x y &hellip;</i></dt>
+<dd><p>(<var>x</var>, <var>y</var>) &hellip; specifies coordinates of the point to be
+drawn.
+</p>
+</dd><dt><a name="index-x_003adraw_002dpoints-2"></a><u>Function:</u> <b>x:draw-points</b><i> drawable gc point-array</i></dt>
+<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost
+index spans a range of 2.
+</p>
+<p>The <code>X:Draw-Points</code> procedure uses the foreground pixel and
+function components of the <var>gc</var> to draw points into <var>drawable</var>
+at the positions (relative to the origin of <var>drawable</var>) specified.
+</p>
+<p><code>X:Draw-Points</code> uses these <var>gc</var> components: function,
+planemask, foreground, subwindow-mode, clip-x-origin, clip-y-origin, and
+clip-mask.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-x_003adraw_002dsegments"></a><u>Function:</u> <b>x:draw-segments</b><i> drawable gc pos1 pos2 &hellip;</i></dt>
+<dd><p><var>Pos1</var>, <var>pos2</var>, &hellip; specify coordinates to be connected by
+segments.
+</p>
+</dd><dt><a name="index-x_003adraw_002dsegments-1"></a><u>Function:</u> <b>x:draw-segments</b><i> drawable gc x1 y1 x2 y2 &hellip;</i></dt>
+<dd><p>(<var>x1</var>, <var>y1</var>), (<var>x2</var>, <var>y2</var>) &hellip; specify coordinates
+to be connected by segments.
+</p>
+</dd><dt><a name="index-x_003adraw_002dsegments-2"></a><u>Function:</u> <b>x:draw-segments</b><i> drawable gc point-array</i></dt>
+<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost
+index spans a range of 2.
+</p>
+<p>The <code>X:Draw-Segments</code> procedure uses the components of the
+specified <var>gc</var> to draw multiple unconnected lines between disjoint
+adjacent pair of points passed as arguments. It draws the segments in
+order and does not perform joining at coincident endpoints. For any
+given line, <code>X:Draw-Segments</code> does not draw a pixel more than once.
+If thin (zero line-width) segments intersect, the intersecting pixels
+are drawn multiple times. If wide segments intersect, the intersecting
+pixels are drawn only once, as though the entire PolyLine protocol
+request were a single, filled shape. <code>X:Draw-Segments</code> treats all
+coordinates as relative to the origin of <var>drawable</var>.
+</p>
+<p><code>X:Draw-Segments</code> uses these <var>gc</var> components: function,
+plane-mask, line-width, line-style, cap-style, fill-style,
+subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask, join-style.
+It also use these <var>gc</var> mode-dependent components: foreground,
+background, tile, stipple, tilestipple-x-origin, tile-stipple-y-origin,
+dash-offset, and dash-list.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003adraw_002dlines"></a><u>Function:</u> <b>x:draw-lines</b><i> drawable gc pos1 pos2 &hellip;</i></dt>
+<dd><p><var>Pos1</var>, <var>pos2</var>, &hellip; specify coordinates to be connected by
+lines.
+</p>
+</dd><dt><a name="index-x_003adraw_002dlines-1"></a><u>Function:</u> <b>x:draw-lines</b><i> drawable gc x1 y1 x2 y2 &hellip;</i></dt>
+<dd><p>(<var>x1</var>, <var>y1</var>), (<var>x2</var>, <var>y2</var>) &hellip; specify coordinates
+to be connected by lines.
+</p>
+</dd><dt><a name="index-x_003adraw_002dlines-2"></a><u>Function:</u> <b>x:draw-lines</b><i> drawable gc point-array</i></dt>
+<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost
+index spans a range of 2.
+</p>
+<p>The <code>X:Draw-Lines</code> procedure uses the components of the specified
+<var>gc</var> to draw lines between each adjacent pair of points passed as
+arguments. It draws the lines in order. The lines join correctly at
+all intermediate points, and if the first and last points coincide, the
+first and last lines also join correctly. For any given line,
+<code>X:Draw-Lines</code> does not draw a pixel 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 PolyLine protocol request were a single,
+filled shape. <code>X:Draw-Lines</code> treats all coordinates as relative to
+the origin of <var>drawable</var>.
+</p>
+<p><code>X:Draw-Lines</code> uses these <var>gc</var> components: function,
+plane-mask, line-width, line-style, cap-style, fill-style,
+subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask, join-style.
+It also use these <var>gc</var> mode-dependent components: foreground,
+background, tile, stipple, tilestipple-x-origin, tile-stipple-y-origin,
+dash-offset, and dash-list.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003afill_002dpolygon"></a><u>Function:</u> <b>x:fill-polygon</b><i> drawable gc pos1 pos2 &hellip;</i></dt>
+<dd><p><var>Pos1</var>, <var>pos2</var>, &hellip; specify coordinates of the border path.
+</p>
+</dd><dt><a name="index-x_003afill_002dpolygon-1"></a><u>Function:</u> <b>x:fill-polygon</b><i> drawable gc x1 y1 x2 y2 &hellip;</i></dt>
+<dd><p>(<var>x1</var>, <var>y1</var>), (<var>x2</var>, <var>y2</var>) &hellip; specify coordinates
+of the border path.
+</p>
+</dd><dt><a name="index-x_003afill_002dpolygon-2"></a><u>Function:</u> <b>x:fill-polygon</b><i> drawable gc point-array</i></dt>
+<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost
+index spans a range of 2.
+</p>
+<p>The path is closed automatically if the last point in the list or
+<var>point-array</var> does not coincide with the first point.
+</p>
+<p>The <code>X:Fill-Polygon</code> procedure uses the components of the specified
+<var>gc</var> to fill the region closed by the specified path.
+<code>X:Fill-Polygon</code> does not draw a pixel of the region more than
+once. <code>X:Fill-Polygon</code> treats all coordinates as relative to the
+origin of <var>drawable</var>.
+</p>
+<p><code>X:Fill-Polygon</code> uses these <var>gc</var> components: function,
+planemask, fill-style, fill-rule, subwindow-mode, clip-x-origin,
+clip-y-origin, and clip-mask. It also use these <var>gc</var> mode-dependent
+components: foreground, background, tile, stipple,
+tile-stipple-x-origin, and tile-stipple-y-origin.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Images"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rendering" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Event" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Rendering" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Event" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Images-1"></a>
+<h1 class="chapter">8. Images</h1>
+
+<dl>
+<dt><a name="index-x_003aread_002dbitmap_002dfile"></a><u>Function:</u> <b>x:read-bitmap-file</b><i> drawable file</i></dt>
+</dl>
+
+<hr size="6">
+<a name="Event"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Images" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Images" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Event-1"></a>
+<h1 class="chapter">9. Event</h1>
+
+<p>These three status routines always return immediately if there are
+events already in the queue.
+</p>
+<dl>
+<dt><a name="index-x_003aq_002dlength"></a><u>Function:</u> <b>x:q-length</b><i> display</i></dt>
+<dd><p>Returns the length of the event queue for the connected <var>display</var>.
+Note that there may be more events that have not been read into the
+queue yet (see X:Events-Queued).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003apending"></a><u>Function:</u> <b>x:pending</b><i> display</i></dt>
+<dd><p>Returns the number of events that have been received from the X server
+but have not been removed from the event queue.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003aevents_002dqueued"></a><u>Function:</u> <b>x:events-queued</b><i> display</i></dt>
+<dd><p>Returns the number of events already in the queue if the number is
+nonzero. If there are no events in the queue, <code>X:Events-Queued</code>
+attempts to read more events out of the application&rsquo;s connection without
+flushing the output buffer and returns the number read.
+</p></dd></dl>
+
+<p>Both of these routines return an object of type <em>event</em>.
+</p>
+<dl>
+<dt><a name="index-x_003anext_002devent"></a><u>Function:</u> <b>x:next-event</b><i> display</i></dt>
+<dd><p>Removes and returns the first event from the event queue. If the event
+queue is empty, <code>X:Next-Event</code> flushes the output buffer and blocks
+until an event is received.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-x_003apeek_002devent"></a><u>Function:</u> <b>x:peek-event</b><i> display</i></dt>
+<dd><p>Returns the first event from the event queue, but it does not remove the
+event from the queue. If the queue is empty, <code>X:Peek-Event</code>
+flushes the output buffer and blocks until an event is received.
+</p></dd></dl>
+
+<p>Each event object has fields dependent on its sub-type.
+</p>
+<dl>
+<dt><a name="index-x_003aevent_002dref"></a><u>Function:</u> <b>x:event-ref</b><i> event field-name</i></dt>
+<dd><table>
+<tr><td width="40%">window</td><td width="60%">The window on which <var>event</var> was generated and is referred to as the
+event window.</td></tr>
+<tr><td width="40%">root</td><td width="60%">is the event window&rsquo;s root window.</td></tr>
+<tr><td width="40%">subwindow</td><td width="60%">If the source window is an inferior of the event window, the
+<var>subwindow</var> is the child of the event window that is the source
+window or the child of the event window that is an ancestor of the
+source window. Otherwise, &lsquo;<samp>None</samp>&rsquo;.</td></tr>
+<tr><td width="40%">X-event:type</td><td width="60%">An integer: <var>x:Key-Press</var>, <var>x:Key-Release</var>,
+<var>x:Button-Press</var>, <var>x:Button-Release</var>, <var>x:Motion-Notify</var>,
+<var>x:Enter-Notify</var>, <var>x:Leave-Notify</var>, <var>x:Focus-In</var>,
+<var>x:Focus-Out</var>, <var>x:Keymap-Notify</var>, <var>x:Expose</var>,
+<var>x:Graphics-Expose</var>, <var>x:No-Expose</var>, <var>x:Visibility-Notify</var>,
+<var>x:Create-Notify</var>, <var>x:Destroy-Notify</var>, <var>x:Unmap-Notify</var>,
+<var>x:Map-Notify</var>, <var>x:Map-Request</var>, <var>x:Reparent-Notify</var>,
+<var>x:Configure-Notify</var>, <var>x:Configure-Request</var>,
+<var>x:Gravity-Notify</var>, <var>x:Resize-Request</var>,
+<var>x:Circulate-Notify</var>, <var>x:Circulate-Request</var>,
+<var>x:Property-Notify</var>, <var>x:Selection-Clear</var>,
+<var>x:Selection-Request</var>, <var>x:Selection-Notify</var>,
+<var>x:Colormap-Notify</var>, <var>x:Client-Message</var>, or
+<var>x:Mapping-Notify</var>.</td></tr>
+<tr><td width="40%">X-event:serial</td><td width="60%">The serial number of the protocol request that generated the <var>event</var>.</td></tr>
+<tr><td width="40%">X-event:send-event</td><td width="60%">Boolean that indicates whether the event was sent by a different client.</td></tr>
+<tr><td width="40%">X-event:time</td><td width="60%">The time when the <var>event</var> was generated expressed in milliseconds.</td></tr>
+<tr><td width="40%">X-event:x</td></tr>
+<tr><td width="40%">X-event:y</td><td width="60%">For window entry/exit events the <var>x</var> and <var>y</var> members are set to
+the coordinates of the pointer position in the event window. This
+position is always the pointer&rsquo;s final position, not its initial
+position. If the event window is on the same screen as the root window,
+<var>x</var> and <var>y</var> are the pointer coordinates relative to the event
+window&rsquo;s origin. Otherwise, <var>x</var> and <var>y</var> are set to zero.
+
+<p>For expose events The <var>x</var> and <var>y</var> members are set to the
+coordinates relative to the drawable&rsquo;s origin and indicate the
+upper-left corner of the rectangle.
+</p>
+<p>For configure, create, gravity, and reparent events the <var>x</var> and
+<var>y</var> members are set to the window&rsquo;s coordinates relative to the
+parent window&rsquo;s origin and indicate the position of the upper-left
+outside corner of the created window.
+</p></td></tr>
+<tr><td width="40%">X-event:x-root</td></tr>
+<tr><td width="40%">X-event:y-root</td><td width="60%">The pointer&rsquo;s coordinates relative to the root window&rsquo;s origin at the
+time of the <var>event</var>.</td></tr>
+<tr><td width="40%">X-event:state</td><td width="60%">For keyboard, pointer and window entry/exit events, the state member is
+set to indicate the logical state of the pointer buttons and modifier
+keys just prior to the <var>event</var>, which is the bitwise inclusive OR of
+one or more of the button or modifier key masks: <var>x:Button1-Mask</var>,
+<var>x:Button2-Mask</var>, <var>x:Button3-Mask</var>, <var>x:Button4-Mask</var>,
+<var>x:Button5-Mask</var>, <var>x:Shift-Mask</var>, <var>x:Lock-Mask</var>,
+<var>x:Control-Mask</var>, <var>x:Mod1-Mask</var>, <var>x:Mod2-Mask</var>,
+<var>x:Mod3-Mask</var>, <var>x:Mod4-Mask</var>, and <var>x:Mod5-Mask</var>.
+
+<p>For visibility events, the state of the window&rsquo;s visibility:
+<var>x:Visibility-Unobscured</var>, <var>x:Visibility-Partially-Obscured</var>, or
+<var>x:Visibility-Fully-Obscured</var>.
+</p>
+<p>For colormap events, indicates whether the colormap is installed or
+uninstalled: x:Colormap-Installed or x:Colormap-Uninstalled.
+</p>
+<p>For property events, indicates whether the property was changed to a new
+value or deleted: x:Property-New-Value or x:Property-Delete.
+</p></td></tr>
+<tr><td width="40%">X-event:keycode</td><td width="60%">An integer that represents a physical key on the keyboard.</td></tr>
+<tr><td width="40%">X-event:same-screen</td><td width="60%">Indicates whether the event window is on the same screen as the root
+window. If #t, the event and root windows are on the same screen. If
+#f, the event and root windows are not on the same screen.</td></tr>
+<tr><td width="40%">X-event:button</td><td width="60%">The pointer button that changed state; can be the <var>x:Button1</var>,
+<var>x:Button2</var>, <var>x:Button3</var>, <var>x:Button4</var>, or <var>x:Button5</var>
+value.</td></tr>
+<tr><td width="40%">X-event:is-hint</td><td width="60%">Detail of motion-notify events: <var>x:Notify-Normal</var> or
+<var>x:Notify-Hint</var>.</td></tr>
+<tr><td width="40%">X-event:mode</td><td width="60%">Indicates whether the <var>event</var> is a normal event, pseudo-motion event
+when a grab activates, or a pseudo-motion event when a grab deactivates:
+<var>x:Notify-Normal</var>, <var>x:Notify-Grab</var>, or <var>x:Notify-Ungrab</var>.</td></tr>
+<tr><td width="40%">X-event:detail</td><td width="60%">Indicates the notification detail: <var>x:Notify-Ancestor</var>,
+<var>x:Notify-Virtual</var>, <var>x:Notify-Inferior</var>,
+<var>x:Notify-Nonlinear</var>, or <var>x:Notify-Nonlinear-Virtual</var>.</td></tr>
+<tr><td width="40%">X-event:focus</td><td width="60%">If the event window is the focus window or an inferior of the focus
+window, #t; otherwise #f.</td></tr>
+<tr><td width="40%">X-event:width</td></tr>
+<tr><td width="40%">X-event:height</td><td width="60%">The size (extent) of the rectangle.</td></tr>
+<tr><td width="40%">X-event:count</td><td width="60%">For mapping events is the number of keycodes altered.
+
+<p>For expose events Is the number of Expose or GraphicsExpose events that
+are to follow. If count is zero, no more Expose events follow for this
+window. However, if count is nonzero, at least that number of Expose
+events (and possibly more) follow for this window. Simple applications
+that do not want to optimize redisplay by distinguishing between
+subareas of its window can just ignore all Expose events with nonzero
+counts and perform full redisplays on events with zero counts.
+</p></td></tr>
+<tr><td width="40%">X-event:major-code</td><td width="60%">The major_code member is set to the graphics request initiated by the
+client and can be either X_CopyArea or X_CopyPlane. If it is
+X_CopyArea, a call to XCopyArea initiated the request. If it is
+X_CopyPlane, a call to XCopyPlane initiated the request.</td></tr>
+<tr><td width="40%">X-event:minor-code</td><td width="60%">Not currently used.</td></tr>
+<tr><td width="40%">X-event:border-width</td><td width="60%">For configure events, the width of the window&rsquo;s border, in pixels.</td></tr>
+<tr><td width="40%">X-event:override-redirect</td><td width="60%">The override-redirect attribute of the window. Window manager clients
+normally should ignore this window if it is #t.</td></tr>
+<tr><td width="40%">X-event:from-configure</td><td width="60%">True if the event was generated as a result of a resizing of the
+window&rsquo;s parent when the window itself had a win-gravity of
+x:Unmap-Gravity.</td></tr>
+<tr><td width="40%">X-event:value-mask</td><td width="60%">Indicates which components were specified in the ConfigureWindow
+protocol request. 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 above (sibling) and detail
+(stack-mode), which are reported as None and Above, respectively, if
+they are not given in the request.</td></tr>
+<tr><td width="40%">X-event:place</td><td width="60%">The window&rsquo;s position after the restack occurs and is either
+x:Place-On-Top or x:Place-On-Bottom. If it is x:Place-On-Top, the
+window is now on top of all siblings. If it is x:Place-On-Bottom, the
+window is now below all siblings.</td></tr>
+<tr><td width="40%">X-event:new</td><td width="60%">indicate whether the colormap for the specified window was changed or
+installed or uninstalled and can be True or False. If it is True, the
+colormap was changed. If it is False, the colormap was installed or
+uninstalled.</td></tr>
+<tr><td width="40%">X-event:format</td><td width="60%">Is 8, 16, or 32 and specifies whether the data should be viewed as a
+list of bytes, shorts, or longs</td></tr>
+<tr><td width="40%">X-event:request</td><td width="60%">Indicates the kind of mapping change that occurred and can be
+<var>x:Mapping-Modifier</var>, <var>x:Mapping-Keyboard</var>, or
+<var>x:Mapping-Pointer</var>. If it is <var>x:Mapping-Modifier</var>, the
+modifier mapping was changed. If it is <var>x:Mapping-Keyboard</var>, the
+keyboard mapping was changed. If it is <var>x:Mapping-Pointer</var>, the
+pointer button mapping was changed.</td></tr>
+<tr><td width="40%">X-event:first-keycode</td><td width="60%">The X-event:first-keycode is set only if the X-event:request was set to
+<var>x:Mapping-Keyboard</var>. The number in X-event:first-keycode
+represents the first number in the range of the altered mapping, and
+X-event:count represents the number of keycodes altered.</td></tr>
+</table>
+</dd></dl>
+
+<hr size="6">
+<a name="Indexes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Event" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Procedure-and-Macro-Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Event" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Indexes-1"></a>
+<h1 class="unnumbered">Indexes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Procedure-and-Macro-Index">Procedure and Macro Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Variable-Index">Variable Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Concept-Index">Concept Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Procedure-and-Macro-Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Indexes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Variable-Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Procedure-and-Macro-Index-1"></a>
+<h2 class="unnumberedsec">Procedure and Macro Index</h2>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Procedure-and-Macro-Index-1_fn_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp;
+<a href="#Procedure-and-Macro-Index-1_fn_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp;
+</td></tr></table>
+<table border="0" class="index-fn">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Procedure-and-Macro-Index-1_fn_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-hostname_003anumber_002escreen_002dnumber"><code>hostname:number.screen-number</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Procedure-and-Macro-Index-1_fn_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aalloc_002dcolormap_002dcells"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aalloc_002dcolormap_002dcells-1"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aalloc_002dcolormap_002dcells-2"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aalloc_002dcolormap_002dcells-3"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003accc"><code>x:ccc</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aclear_002darea"><code>x:clear-area</code></a></td><td valign="top"><a href="#Rendering">7. Rendering</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aclose"><code>x:close</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aclose-1"><code>x:close</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aclose-2"><code>x:close</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acolor_002dref"><code>x:color-ref</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-X_003aColor_002dSet_0021"><code>X:Color-Set!</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-X_003aColor_002dSet_0021-1"><code>X:Color-Set!</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acolormap_002dfind_002dcolor"><code>x:colormap-find-color</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acolormap_002dfind_002dcolor-1"><code>x:colormap-find-color</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acopy_002dcolormap_002dand_002dfree"><code>x:copy-colormap-and-free</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acopy_002dgc_002dfields_0021"><code>x:copy-gc-fields!</code></a></td><td valign="top"><a href="#Graphics-Context">4. Graphics Context</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dcolormap"><code>x:create-colormap</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dcursor"><code>x:create-cursor</code></a></td><td valign="top"><a href="#Cursor">5. Cursor</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dcursor-1"><code>x:create-cursor</code></a></td><td valign="top"><a href="#Cursor">5. Cursor</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dcursor-2"><code>x:create-cursor</code></a></td><td valign="top"><a href="#Cursor">5. Cursor</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dcursor-3"><code>x:create-cursor</code></a></td><td valign="top"><a href="#Cursor">5. Cursor</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dcursor-4"><code>x:create-cursor</code></a></td><td valign="top"><a href="#Cursor">5. Cursor</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dgc"><code>x:create-gc</code></a></td><td valign="top"><a href="#Graphics-Context">4. Graphics Context</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dpixmap"><code>x:create-pixmap</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dpixmap-1"><code>x:create-pixmap</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dwindow"><code>x:create-window</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003acreate_002dwindow-1"><code>x:create-window</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dccc"><code>x:default-ccc</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dccc-1"><code>x:default-ccc</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dccc-2"><code>x:default-ccc</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dcolormap"><code>x:default-colormap</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dcolormap-1"><code>x:default-colormap</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dcolormap-2"><code>x:default-colormap</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dgc"><code>x:default-gc</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dgc-1"><code>x:default-gc</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dgc-2"><code>x:default-gc</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dscreen"><code>x:default-screen</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dvisual"><code>x:default-visual</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dvisual-1"><code>x:default-visual</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adefault_002dvisual-2"><code>x:default-visual</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dlines"><code>x:draw-lines</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dlines-1"><code>x:draw-lines</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dlines-2"><code>x:draw-lines</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dpoints"><code>x:draw-points</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dpoints-1"><code>x:draw-points</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dpoints-2"><code>x:draw-points</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dsegments"><code>x:draw-segments</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dsegments-1"><code>x:draw-segments</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dsegments-2"><code>x:draw-segments</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003adraw_002dstring"><code>x:draw-string</code></a></td><td valign="top"><a href="#Draw-Strings">Draw Strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aevent_002dref"><code>x:event-ref</code></a></td><td valign="top"><a href="#Event">9. Event</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aevents_002dqueued"><code>x:events-queued</code></a></td><td valign="top"><a href="#Event">9. Event</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003afill_002dpolygon"><code>x:fill-polygon</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003afill_002dpolygon-1"><code>x:fill-polygon</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003afill_002dpolygon-2"><code>x:fill-polygon</code></a></td><td valign="top"><a href="#Draw-Shapes">Draw Shapes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003afill_002drectangle"><code>x:fill-rectangle</code></a></td><td valign="top"><a href="#Rendering">7. Rendering</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aflush"><code>x:flush</code></a></td><td valign="top"><a href="#Rendering">7. Rendering</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aflush-1"><code>x:flush</code></a></td><td valign="top"><a href="#Rendering">7. Rendering</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aflush-2"><code>x:flush</code></a></td><td valign="top"><a href="#Rendering">7. Rendering</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003afree_002dcolormap_002dcells"><code>x:free-colormap-cells</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003afree_002dcolormap_002dcells-1"><code>x:free-colormap-cells</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003agc_002dref"><code>x:gc-ref</code></a></td><td valign="top"><a href="#Graphics-Context">4. Graphics Context</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003agc_002dset_0021"><code>x:gc-set!</code></a></td><td valign="top"><a href="#Graphics-Context">4. Graphics Context</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aget_002dwindow_002dproperty"><code>x:get-window-property</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aget_002dwindow_002dproperty-1"><code>x:get-window-property</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aimage_002dstring"><code>x:image-string</code></a></td><td valign="top"><a href="#Draw-Strings">Draw Strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ainstall_002dcolormap"><code>x:install-colormap</code></a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003alist_002dproperties"><code>x:list-properties</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003amake_002dvisual"><code>x:make-visual</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003amake_002dvisual-1"><code>x:make-visual</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003amap_002dsubwindows"><code>x:map-subwindows</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003amap_002dwindow"><code>x:map-window</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003anext_002devent"><code>x:next-event</code></a></td><td valign="top"><a href="#Event">9. Event</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aopen_002ddisplay"><code>x:open-display</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003apeek_002devent"><code>x:peek-event</code></a></td><td valign="top"><a href="#Event">9. Event</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003apending"><code>x:pending</code></a></td><td valign="top"><a href="#Event">9. Event</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aprotocol_002dversion"><code>x:protocol-version</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aq_002dlength"><code>x:q-length</code></a></td><td valign="top"><a href="#Event">9. Event</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aread_002dbitmap_002dfile"><code>x:read-bitmap-file</code></a></td><td valign="top"><a href="#Images">8. Images</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aroot_002dwindow"><code>x:root-window</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aroot_002dwindow-1"><code>x:root-window</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aroot_002dwindow-2"><code>x:root-window</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dblack"><code>x:screen-black</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dblack-1"><code>x:screen-black</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dblack-2"><code>x:screen-black</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dcells"><code>x:screen-cells</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dcells-1"><code>x:screen-cells</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dcells-2"><code>x:screen-cells</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dcount"><code>x:screen-count</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepth"><code>x:screen-depth</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepth-1"><code>x:screen-depth</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepth-2"><code>x:screen-depth</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepth-3"><code>x:screen-depth</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepths"><code>x:screen-depths</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepths-1"><code>x:screen-depths</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddepths-2"><code>x:screen-depths</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddimensions"><code>x:screen-dimensions</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddimensions-1"><code>x:screen-dimensions</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002ddimensions-2"><code>x:screen-dimensions</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dsize"><code>x:screen-size</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dsize-1"><code>x:screen-size</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dsize-2"><code>x:screen-size</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dwhite"><code>x:screen-white</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dwhite-1"><code>x:screen-white</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003ascreen_002dwhite-2"><code>x:screen-white</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aserver_002dvendor"><code>x:server-vendor</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aunmap_002dsubwindows"><code>x:unmap-subwindows</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aunmap_002dwindow"><code>x:unmap-window</code></a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avendor_002drelease"><code>x:vendor-release</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avisual_002dclass"><code>x:visual-class</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avisual_002dclass-1"><code>x:visual-class</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avisual_002dclass-2"><code>x:visual-class</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avisual_002dgeometry"><code>x:visual-geometry</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avisual_002dgeometry-1"><code>x:visual-geometry</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003avisual_002dgeometry-2"><code>x:visual-geometry</code></a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003awindow_002dgeometry"><code>x:window-geometry</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003awindow_002dgeometry_002dset_0021"><code>x:window-geometry-set!</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003awindow_002dref"><code>x:window-ref</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003awindow_002dset_0021"><code>x:window-set!</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Procedure-and-Macro-Index-1_fn_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp;
+<a href="#Procedure-and-Macro-Index-1_fn_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp;
+</td></tr></table>
+
+<hr size="6">
+<a name="Variable-Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Procedure-and-Macro-Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Variable-Index-1"></a>
+<h2 class="unnumberedsec">Variable Index</h2>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Variable-Index-1_vr_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp;
+</td></tr></table>
+<table border="0" class="index-vr">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Variable-Index-1_vr_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBack_002dPixel"><code>x:CW-Back-Pixel</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBack_002dPixmap"><code>x:CW-Back-Pixmap</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBacking_002dPixel"><code>x:CW-Backing-Pixel</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBacking_002dPlanes"><code>x:CW-Backing-Planes</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBacking_002dStore"><code>x:CW-Backing-Store</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBit_002dGravity"><code>x:CW-Bit-Gravity</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBorder_002dPixel"><code>x:CW-Border-Pixel</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBorder_002dPixmap"><code>x:CW-Border-Pixmap</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dBorder_002dWidth"><code>x:CW-Border-Width</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dColormap"><code>x:CW-Colormap</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dCursor"><code>x:CW-Cursor</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dDont_002dPropagate"><code>x:CW-Dont-Propagate</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dEvent_002dMask"><code>x:CW-Event-Mask</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dHeight"><code>x:CW-Height</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dOverride_002dRedirect"><code>x:CW-Override-Redirect</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dSave_002dUnder"><code>x:CW-Save-Under</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dSibling"><code>x:CW-Sibling</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dStack_002dMode"><code>x:CW-Stack-Mode</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dWidth"><code>x:CW-Width</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCW_002dWin_002dGravity"><code>x:CW-Win-Gravity</code></a></td><td valign="top"><a href="#Window-Attributes">3.2 Window Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCWX"><code>x:CWX</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aCWY"><code>x:CWY</code></a></td><td valign="top"><a href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dArc_002dMode"><code>x:GC-Arc-Mode</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dBackground"><code>x:GC-Background</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dCap_002dStyle"><code>x:GC-Cap-Style</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dClip_002dMask"><code>x:GC-Clip-Mask</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dClip_002dX_002dOrigin"><code>x:GC-Clip-X-Origin</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dClip_002dY_002dOrigin"><code>x:GC-Clip-Y-Origin</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dDash_002dList"><code>x:GC-Dash-List</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dDash_002dOffset"><code>x:GC-Dash-Offset</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dFill_002dRule"><code>x:GC-Fill-Rule</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dFill_002dStyle"><code>x:GC-Fill-Style</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dFont"><code>x:GC-Font</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dForeground"><code>x:GC-Foreground</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dFunction"><code>x:GC-Function</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dGraphics_002dExposures"><code>x:GC-Graphics-Exposures</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dJoin_002dStyle"><code>x:GC-Join-Style</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dLine_002dStyle"><code>x:GC-Line-Style</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dLine_002dWidth"><code>x:GC-Line-Width</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dPlane_002dMask"><code>x:GC-Plane-Mask</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dStipple"><code>x:GC-Stipple</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dSubwindow_002dMode"><code>x:GC-Subwindow-Mode</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dTile"><code>x:GC-Tile</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dTile_002dStip_002dX_002dOrigin"><code>x:GC-Tile-Stip-X-Origin</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aGC_002dTile_002dStip_002dY_002dOrigin"><code>x:GC-Tile-Stip-Y-Origin</code></a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Variable-Index-1_vr_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp;
+</td></tr></table>
+
+<hr size="6">
+<a name="Concept-Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Variable-Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Concept-Index-1"></a>
+<h2 class="unnumberedsec">Concept Index</h2>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Concept-Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-U" class="summary-letter"><b>U</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp;
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-colormap">colormap</a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-cursor">cursor</a></td><td valign="top"><a href="#Cursor">5. Cursor</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-depth">depth</a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-drawable">drawable</a></td><td valign="top"><a href="#Drawables">3. Drawables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Drawable">Drawable</a></td><td valign="top"><a href="#Drawables">3. Drawables</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-map">map</a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-mapped">mapped</a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-none">none</a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-RGB">RGB</a></td><td valign="top"><a href="#Colormap">6. Colormap</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-U">U</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-unmap">unmap</a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-unmapped">unmapped</a></td><td valign="top"><a href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-visual">visual</a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Visual">Visual</a></td><td valign="top"><a href="#Display-and-Screens">2. Display and Screens</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-X">X</a></td><td valign="top"><a href="#XlibScm">1. XlibScm</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-x_003aNone">x:None</a></td><td valign="top"><a href="#GC-Attributes">GC Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Xlib"><code>Xlib</code></a></td><td valign="top"><a href="#XlibScm">1. XlibScm</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Concept-Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-U" class="summary-letter"><b>U</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp;
+<a href="#Concept-Index-1_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp;
+</td></tr></table>
+
+<hr size="6">
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+ <li><a name="toc-XlibScm-1" href="#XlibScm">1. XlibScm</a></li>
+ <li><a name="toc-Display-and-Screens-1" href="#Display-and-Screens">2. Display and Screens</a></li>
+ <li><a name="toc-Drawables-1" href="#Drawables">3. Drawables</a>
+ <ul class="toc">
+ <li><a name="toc-Windows-and-Pixmaps-1" href="#Windows-and-Pixmaps">3.1 Windows and Pixmaps</a></li>
+ <li><a name="toc-Window-Attributes-1" href="#Window-Attributes">3.2 Window Attributes</a></li>
+ <li><a name="toc-Window-Properties-and-Visibility-1" href="#Window-Properties-and-Visibility">3.3 Window Properties and Visibility</a></li>
+ </ul></li>
+ <li><a name="toc-Graphics-Context-1" href="#Graphics-Context">4. Graphics Context</a></li>
+ <li><a name="toc-Cursor-1" href="#Cursor">5. Cursor</a></li>
+ <li><a name="toc-Colormap-1" href="#Colormap">6. Colormap</a></li>
+ <li><a name="toc-Rendering-1" href="#Rendering">7. Rendering</a></li>
+ <li><a name="toc-Images-1" href="#Images">8. Images</a></li>
+ <li><a name="toc-Event-1" href="#Event">9. Event</a></li>
+ <li><a name="toc-Indexes-1" href="#Indexes">Indexes</a>
+ <ul class="toc">
+ <li><a name="toc-Procedure-and-Macro-Index-1" href="#Procedure-and-Macro-Index">Procedure and Macro Index</a></li>
+ <li><a name="toc-Variable-Index-1" href="#Variable-Index">Variable Index</a></li>
+ <li><a name="toc-Concept-Index-1" href="#Concept-Index">Concept Index</a></li>
+ </ul>
+</li>
+</ul>
+</div>
+<hr size="1">
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Indexes" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+ This document was generated by <em>iwamatsu</em> on <em>March 3, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+ The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+ <tr>
+ <th> Button </th>
+ <th> Name </th>
+ <th> Go to </th>
+ <th> From 1.2.3 go to</th>
+ </tr>
+ <tr>
+ <td align="center"> [ &lt; ] </td>
+ <td align="center">Back</td>
+ <td>Previous section in reading order</td>
+ <td>1.2.2</td>
+ </tr>
+ <tr>
+ <td align="center"> [ &gt; ] </td>
+ <td align="center">Forward</td>
+ <td>Next section in reading order</td>
+ <td>1.2.4</td>
+ </tr>
+ <tr>
+ <td align="center"> [ &lt;&lt; ] </td>
+ <td align="center">FastBack</td>
+ <td>Beginning of this chapter or previous chapter</td>
+ <td>1</td>
+ </tr>
+ <tr>
+ <td align="center"> [ Up ] </td>
+ <td align="center">Up</td>
+ <td>Up section</td>
+ <td>1.2</td>
+ </tr>
+ <tr>
+ <td align="center"> [ &gt;&gt; ] </td>
+ <td align="center">FastForward</td>
+ <td>Next chapter</td>
+ <td>2</td>
+ </tr>
+ <tr>
+ <td align="center"> [Top] </td>
+ <td align="center">Top</td>
+ <td>Cover (top) of document</td>
+ <td> &nbsp; </td>
+ </tr>
+ <tr>
+ <td align="center"> [Contents] </td>
+ <td align="center">Contents</td>
+ <td>Table of contents</td>
+ <td> &nbsp; </td>
+ </tr>
+ <tr>
+ <td align="center"> [Index] </td>
+ <td align="center">Index</td>
+ <td>Index</td>
+ <td> &nbsp; </td>
+ </tr>
+ <tr>
+ <td align="center"> [ ? ] </td>
+ <td align="center">About</td>
+ <td>About (help)</td>
+ <td> &nbsp; </td>
+ </tr>
+</table>
+
+<p>
+ where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+ <li> 1. Section One
+ <ul>
+ <li>1.1 Subsection One-One
+ <ul>
+ <li>...</li>
+ </ul>
+ </li>
+ <li>1.2 Subsection One-Two
+ <ul>
+ <li>1.2.1 Subsubsection One-Two-One</li>
+ <li>1.2.2 Subsubsection One-Two-Two</li>
+ <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+ <strong>&lt;== Current Position </strong></li>
+ <li>1.2.4 Subsubsection One-Two-Four</li>
+ </ul>
+ </li>
+ <li>1.3 Subsection One-Three
+ <ul>
+ <li>...</li>
+ </ul>
+ </li>
+ <li>1.4 Subsection One-Four</li>
+ </ul>
+ </li>
+</ul>
+
+<hr size="1">
+<p>
+ <font size="-1">
+ This document was generated by <em>iwamatsu</em> on <em>March 3, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/changelog b/debian/changelog
index 60fd780..f7e879a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+scm (5e5-3.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ ACKed by maintainer.
+ * Update debian/control.
+ - Add support sh4, kfreebsd-amd64 and kfreebsd-i386.
+ (Closes: #558213, #559017)
+ - Replacing libreadline5-dev build dependency with libreadline-dev.
+ (Closes: #553847)
+
+ -- Nobuhiro Iwamatsu <iwamatsu@debian.org> Mon, 01 Mar 2010 14:58:29 +0900
+
scm (5e5-3) unstable; urgency=low
* build.scm (build-continue-ia64): New function, to encapsulate the method
diff --git a/debian/control b/debian/control
index 78db91d..5694a16 100644
--- a/debian/control
+++ b/debian/control
@@ -3,10 +3,10 @@ Section: interpreters
Priority: optional
Maintainer: Thomas Bushnell, BSG <tb@debian.org>
Standards-Version: 3.7.3
-Build-Depends: slib (>> 3b1), libncurses5-dev, libreadline5-dev, texi2html, texinfo, libx11-dev, debhelper (>= 5)
+Build-Depends: slib (>> 3b1), libncurses5-dev, libreadline-dev, texi2html, texinfo, libx11-dev, debhelper (>= 5), quilt
Package: scm
-Architecture: alpha amd64 arm hppa i386 hurd-i386 m68k mips mipsel powerpc ppc64 sparc ia64 armel armeb
+Architecture: alpha amd64 arm hppa i386 hurd-i386 m68k mips mipsel powerpc ppc64 sparc ia64 armel armeb sh4 kfreebsd-amd64 kfreebsd-i386
Section: interpreters
Priority: optional
Depends: slib (>> 3b1), ${shlibs:Depends}
@@ -15,7 +15,7 @@ Description: A Scheme language interpreter
the IEEE P1178 specification.
Package: libscm-dev
-Architecture: alpha amd64 arm hppa i386 hurd-i386 m68k mips mipsel powerpc ppc64 sparc ia64 armel armeb
+Architecture: alpha amd64 arm hppa i386 hurd-i386 m68k mips mipsel powerpc ppc64 sparc ia64 armel armeb sh4 kfreebsd-amd64 kfreebsd-i386
Section: libdevel
Priority: optional
Depends: scm (= ${binary:Version}), slib (>> 3b1), ${shlibs:Depends}
diff --git a/debian/patches/kfreebsd_support.patch b/debian/patches/kfreebsd_support.patch
new file mode 100644
index 0000000..07166a0
--- /dev/null
+++ b/debian/patches/kfreebsd_support.patch
@@ -0,0 +1,46 @@
+--- scm-5e5.orig/time.c
++++ scm-5e5/time.c
+@@ -73,7 +73,7 @@
+ /* Define this if your system lacks times(). */
+ /* #define LACK_TIMES */
+
+-#ifdef linux
++#if defined(linux) || defined(__GLIBC__)
+ # include <sys/types.h>
+ # include <sys/time.h>
+ # include <sys/timeb.h>
+only in patch2:
+unchanged:
+--- scm-5e5.orig/scmfig.h
++++ scm-5e5/scmfig.h
+@@ -310,7 +310,7 @@
+ # define STDC_HEADERS
+ #endif
+
+-#ifdef linux
++#if defined(linux) || defined(__GLIBC__)
+ # define HAVE_SELECT
+ # define HAVE_SYS_TIME_H
+ # define STDC_HEADERS
+@@ -755,7 +755,7 @@
+ # include <unistd.h>
+ #endif
+
+-#ifdef linux
++#if defined(linux) || defined(__GLIBC__)
+ # include <unistd.h>
+ #endif
+
+only in patch2:
+unchanged:
+--- scm-5e5.orig/findexec.c
++++ scm-5e5/findexec.c
+@@ -51,7 +51,7 @@
+ # include <sys/file.h>
+ # include <sys/param.h>
+ # endif
+-# ifdef linux
++# if defined(linux) || defined(__GLIBC__)
+ # include <string.h>
+ # include <stdlib.h>
+ # include <sys/stat.h>
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..90849f4
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+kfreebsd_support.patch
diff --git a/debian/rules b/debian/rules
index e8f5033..792147e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -67,6 +67,7 @@ build: build-stamp
build-stamp:
chmod +x build
dh_testdir
+ QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
cp debian/require.scm.debian require.scm
ifeq ($(DEB_BUILD_ARCH), m68k)
${MAKE} scmlit CFLAGS="-g -Wall" ARCH=$(DEB_BUILD_ARCH)
@@ -105,8 +106,10 @@ clean:
make distclean
-rm -f srcdir.mk
-rm -f debian/bld
+ -rm -rf libscm.a
-rm -rf *~ debian/*~ debian/tmp* debian/files debian/substvars
+ QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2
dh_clean
binary-indep: build install