Differences to XFree86

Alan Coopersmith release-wranglers@freedesktop.org
Mon, 01 Mar 2004 07:52:11 -0800


This is a multi-part message in MIME format.
--------------040606030101080006000900
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Egbert Eich wrote:
> 4. The docs talk about X11 Version 6.7 DRAFT in XFree86 but
>    X11 Version 6.7 in Xorg. We will keep that, however XFree86
>    also talks about X Protocol and Xilb X11 Release 6.7 while Xorg
>    talks about Release 6.4. I assume this is a typo in the
>    Xorg case.

That's partially my fault - I asked that the XFree86 copies be updated
to include the "DRAFT" tag since we hadn't finished the public review
of the changes to the standards yet.  (The 6.4 tag is actually probably
correct since I don't remember any updates to the standards docs in later
releases.)

I was actually planning on bringing up the docs issue at the Arch Task
Force call today.  There's a few other differences in the standards docs
as well between X11R6.6 and the new trees, some of which have not (yet?)
been approved by the X.org standards processes, such as some of the UTF-8
changes.  I don't think we should issue the tree with docs that look like
the official standards docs, but aren't.  Perhaps the cleanest solution is
to simply split out the standards docs now and not include them in the
monolithic tree release.  Once we've formally approved the IPv6 & UTF-8
additions, we can then issue the standards docs as the X11R6.7 Standards
release, and keep their release train separate from that of any particular
implementation.

(I've attached the diffs between X11R6.6 and the CVS tree tagged RELEASE-1.
  Many of the diffs are obviously trivially acceptable - formatting and
  typo fixes and the like.  Others are probably acceptable after a quick
  review by the arch task force, where some, like the utf8 functions in
  libX11 will obviously be more controversial.)

-- 
	-Alan Coopersmith-          alan.coopersmith@sun.com
	 Sun Microsystems, Inc. -- Operating Platforms Group
	 Solaris x86 & Interface Technology: X Window System

--------------040606030101080006000900
Content-Type: text/plain;
 name="specs-diffs.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="specs-diffs.txt"

diff -urwb X11R6.6/xc/doc/specs/CTEXT/ctext.tbl.ms release1/cvs-ro/xc/doc/specs/CTEXT/ctext.tbl.ms
--- X11R6.6/xc/doc/specs/CTEXT/ctext.tbl.ms	Thu Apr 13 09:37:46 2000
+++ release1/cvs-ro/xc/doc/specs/CTEXT/ctext.tbl.ms	Mon Nov 17 11:03:19 2003
@@ -1,8 +1,37 @@
 .\" Use tbl and -ms
+.\"
+.\" $XFree86: xc/doc/specs/CTEXT/ctext.tbl.ms,v 1.2 2000/12/11 19:39:40 dawes Exp $
+.\"
+.\" --- bP --- bulleted paragraph macro
+.\"
+.de bP
+.IP \(bu 4
+..
+.\"
+.\" --- cT --- centered title; centers $1, adds TOC entry unless $2 is "no"
+.\"
+.de cT
+\\&		\" filler so that the following .sp really leaves a space
+.sp 1
+.ce 1
+\\s+1\\fB\\$1\\fP\\s-1
+.sp 1
+.if !'\\$2'no' \{\
+.XS \\n(PN
+\\$1
+.XE
+\}
+..
 .sp 8
-.ce 5
+.ce 9
 \s+2\fBCompound Text Encoding\fP\s-2
 .sp 6p
+Version 1.1.xf86.1
+XFree86 4.0.2
+XFree86, Inc.
+.sp 6p
+.I "based on"
+.sp 6p
 Version 1.1
 X Consortium Standard
 X Version 11, Release 6.4
@@ -220,7 +249,7 @@
 .sp 4p
 _
 .sp 6p
-4/02	94	7-bit ASCII graphics (ANSI X3.4-1968),
+04/02	94	7-bit ASCII graphics (ANSI X3.4-1968),
 		Left half of ISO 8859 sets
 04/09	94	Right half of JIS X0201-1976 (reaffirmed 1984),
 		8-Bit Alphanumeric-Katakana Code
@@ -236,10 +265,16 @@
 04/08	96	Right half of ISO 8859-8, Latin/Hebrew alphabet
 04/12	96	Right half of ISO 8859-5, Latin/Cyrillic alphabet
 04/13	96	Right half of ISO 8859-9, Latin alphabet No. 5
+05/06	96	Right half of ISO 8859-10, Latin alphabet No. 6
+05/09	96	Right half of ISO 8859-13, Latin alphabet No. 7 (Baltic Rim)
+05/15	96	Right half of ISO 8859-14, Latin alphabet No. 8 (Celtic)
+06/02	96	Right half of ISO 8859-15, Latin alphabet No. 9
+06/06	96	Right half of ISO 8859-16, Latin alphabet No. 10
 .sp 6p
 04/01	94\u\s-22\s+2\d	GB2312-1980, China (PRC) Hanzi
-04/02	94\u\s-22\s+2\d	JIS X0208-1983, Japanese Graphic Character Set
+04/02	94\u\s-22\s+2\d	JIS X0208-1983/1990, Japanese Graphic Character Set
 04/03	94\u\s-22\s+2\d	KS C5601-1987, Korean Graphic Character Set
+04/02	94\u\s-22\s+2\d	JIS X0212-1990, Supplementary Japanese Graphic Character Set
 .sp 6p
 _
 .TE
@@ -300,9 +335,33 @@
 they may contain octets in the C0 and C1 ranges, including 00/00, and
 octets comprising a given character may differ in their most significant bit.
 .LP
-[ISO-registered ``other coding systems'' are not used in Compound Text;
+[Except for UTF-8,
+ISO-registered ``other coding systems'' are not used in Compound Text;
 extended segments are the only mechanism for non-2022 encodings.]
 .NH 1
+The UTF-8 encoding
+.LP
+Unicode characters that are not contained in one of the approved standard
+encodings can be encoded using the UTF-8 encoding. The following escape
+sequences are used:
+.RS
+.TS
+l l.
+01/11 02/05 04/07	switch into UTF-8 mode
+01/11 02/05 04/00	return from UTF-8 mode
+.TE
+.RE
+.LP
+The first is the ISO registered sequence for UTF-8 (ISO-IR-196), the second
+is the ISO-2022 ``standard return'' sequence. While in UTF-8 mode, the UTF-8
+encoding replaces the currently designated GL and GR encodings. After return
+from UTF-8 mode, the previously designated GL and GR encodings are
+reactivated.
+.LP
+[This is the only ``other coding system'' used in Compound Text.]
+.LP
+[This is an XFree86 extension introduced in XFree86 4.0.2.]
+.NH 1
 Directionality
 .LP
 If desired, horizontal text direction can be indicated using the following
@@ -375,9 +434,16 @@
 ISO8859-7	ISO 8859-7	Latin/Greek alphabet
 ISO8859-8	ISO 8859-8	Latin/Hebrew alphabet
 ISO8859-9	ISO 8859-9	Latin alphabet No. 5
+ISO8859-10	ISO 8859-10	Latin alphabet No. 6
+ISO8859-13	ISO 8859-13	Latin alphabet No. 7 (Baltic Rim)
+ISO8859-14	ISO 8859-14	Latin alphabet No. 8 (Celtic)
+ISO8859-15	ISO 8859-15	Latin alphabet No. 9
+ISO8859-16	ISO 8859-16	Latin alphabet No. 10
 JISX0201.1976-0	JIS X0201-1976 (reaffirmed 1984)	8-bit Alphanumeric-Katakana Code
 GB2312.1980-0	GB2312-1980, GL encoding	China (PRC) Hanzi
 JISX0208.1983-0	JIS X0208-1983, GL encoding	Japanese Graphic Character Set
+JISX0208.1990-0	JIS X0208-1990, GL encoding	Japanese Graphic Character Set
+JISX0212.1990-0	JIS X0212-1990, GL encoding	Supplementary Japanese Graphic Character Set
 KSC5601.1987-0	KS C5601-1987, GL encoding	Korean Graphic Character Set
 .sp 6p
 _
@@ -447,3 +513,28 @@
 undefined control characters, or undefined control sequences, or incorrectly
 formatted extended segments), it is best to treat the entire string as invalid,
 except as indicated by a version control sequence.
+.bp
+.\" Set registers to number the appendixes A.1, B.1, C.1, ...
+.nr H1 0
+.af H1 A
+.cT "Appendix A" no
+.nH 1 "Revision History"
+.LP
+This appendix describes the revision history of this document and
+summarizes the incompatibilities between this and earlier versions.
+.nH 2 "Version 1.1"
+.LP
+Version 1.1 is the original X11 specification.
+.nH 2 "Version 1.1.xf86.1"
+.LP
+Version 1.1.xf86.1 was released with XFree86 4.0.2 in December 2000.
+It adds the following changes:
+.bP
+Added ISO 8859-10,13,14,15,16 and JIS X0212 to the list of standard
+encodings. Mention the 1990 revision of JIS X0208 as an alternative to
+the 1983 edition.
+.bP
+Added ISO8859-10, ISO8859-13, ISO8859-14, ISO8859-15, ISO8859-16,
+JISX0208.1990-0, JISX0212.1990-0 to the list of font charsets.
+.bP
+The section about UTF-8 encoding was added.
diff -urwb X11R6.6/xc/doc/specs/ICCCM/icccm.ms release1/cvs-ro/xc/doc/specs/ICCCM/icccm.ms
--- X11R6.6/xc/doc/specs/ICCCM/icccm.ms	Thu Aug 17 12:42:08 2000
+++ release1/cvs-ro/xc/doc/specs/ICCCM/icccm.ms	Mon Nov 17 11:03:19 2003
@@ -1,4 +1,10 @@
 .\" $Xorg: icccm.ms,v 1.3 2000/08/17 19:42:08 cpqbld Exp $
+.\"
+.\"
+.\"
+.\"
+.\" $XFree86: xc/doc/specs/ICCCM/icccm.ms,v 1.3 2001/01/17 16:57:41 dawes Exp $
+.\"
 .\" Use tbl, eqn, -ms, and macros.t
 .\" @(#)icccm.ms	1.50	16 Apr 1994	14:13:55
 .EH ''''
@@ -39,6 +45,14 @@
 .B
 \s+2Inter-Client Communication Conventions Manual\s0
 
+Version 2.0.xf86.1
+
+XFree86 4.0.2
+
+XFree86, Inc.
+
+.I "based on"
+
 Version 2.0
 
 X Consortium Standard
@@ -1389,6 +1403,9 @@
 USER	TEXT	T{
 The name of the user running the owner
 T}
+UTF8_STRING	TEXT	T{
+UTF-8 text
+T}
 .sp 6p
 _
 .TE
@@ -1665,6 +1682,7 @@
 PIXMAP	32	Fixed-size
 SPAN	32	Fixed-size
 STRING	8	Zero
+UTF8_STRING	8	Zero
 WINDOW	32	Fixed-size
 .sp 6p
 _
@@ -1699,7 +1717,7 @@
 it would be STRING or some other ATOM naming the encoding chosen by the owner.
 .LP
 STRING as a type or a target specifies the ISO Latin-1 character set plus the
-control characters TAB (octal 11) and NEWLINE (octal 12).
+control characters TAB (hex 09) and NEWLINE (hex 0A).
 The spacing interpretation of TAB is context dependent.
 Other ASCII control characters are explicitly not included in STRING 
 at the present time.
@@ -1707,6 +1725,9 @@
 COMPOUND_TEXT as a type or a target specifies the Compound Text interchange
 format; see the \fICompound Text Encoding\fP.
 .LP
+UTF8_STRING as a type or a target specifies an UTF-8 encoded string, with
+NEWLINE (U+000A, hex 0A) as end-of-line marker.
+.LP
 There are some text objects where the source or intended user, as the
 case may be, does not have a specific character set for the text, but
 instead merely requires a zero-terminated sequence of bytes with no
@@ -1729,9 +1750,9 @@
 property type is suitable.
 .NE
 .LP
-Type STRING, COMPOUND_TEXT, and C_STRING properties will consist of a list
-of elements separated by null characters; other encodings will need to
-specify an appropriate list format.
+Type STRING, COMPOUND_TEXT, UTF8_STRING, and C_STRING properties will
+consist of a list of elements separated by null characters; other encodings
+will need to specify an appropriate list format.
 .nH 3 "INCR Properties"
 .LP
 Requestors may receive a property of type INCR\**
diff -urwb X11R6.6/xc/doc/specs/SM/xsmp.ms release1/cvs-ro/xc/doc/specs/SM/xsmp.ms
--- X11R6.6/xc/doc/specs/SM/xsmp.ms	Thu Aug 17 12:42:19 2000
+++ release1/cvs-ro/xc/doc/specs/SM/xsmp.ms	Wed Nov 26 14:48:18 2003
@@ -1,5 +1,6 @@
 .\" Use tbl, -ms, and macros.t
 .\" $Xorg: xsmp.ms,v 1.3 2000/08/17 19:42:19 cpqbld Exp $
+.\" $XFree86: xc/doc/specs/SM/xsmp.ms,v 1.2 2003/07/09 15:27:25 tsi Exp $
 .EH ''''
 .OH ''''
 .EF ''''
@@ -10,9 +11,9 @@
 .TL
 \s+2\fBX Session Management Protocol\fP\s-2
 .sp
-X Consortium Standard
+X.Org Standard
 .sp
-X Version 11, Release 6.4
+X Version 11, Release 6.7
 .AU
 Mike Wexler
 .AI
@@ -22,8 +23,8 @@
 This document specifies a protocol that facilitates the management of groups
 of client applications by a session manager.  The session manager can cause
 clients to save their state, to shut down, and to be restarted into a
-previously saved state.  This protocol is layered on top of the X
-Consortium's ICE protocol.
+previously saved state.  This protocol is layered on top of the X.Org
+ICE protocol.
 .AE
 .LP
 .bp
@@ -31,9 +32,9 @@
 .sp 8
 .LP
 .DS C
-X Window System is a trademark of X Consortium, Inc.
+X Window System is a trademark of The Open Group.
 .sp
-Copyright \(co 1992, 1993, 1994 X Consortium
+Copyright \(co 1992, 1993, 1994, 2002 The Open Group.
 .DE
 .sp 3
 .LP
@@ -264,8 +265,9 @@
 Address type and address.  The address type will be one of
 .DS
 .ta 0.5i
-`1'	a 4-byte IP address encoded as 8 hexadecimal digits
+`1'	a 4-byte IPv4 address encoded as 8 hexadecimal digits
 `2'	a 6-byte DECNET address encoded as 12 hexadecimal digits
+`6'	a 16-byte IPv6 address encoded as 32 hexadecimal digits
 .DE
 .IP
 The address is the one of the network addresses of the machine where the
diff -urwb X11R6.6/xc/doc/specs/X11/CH01 release1/cvs-ro/xc/doc/specs/X11/CH01
--- X11R6.6/xc/doc/specs/X11/CH01	Thu Apr 13 09:38:14 2000
+++ release1/cvs-ro/xc/doc/specs/X11/CH01	Mon Nov 17 11:03:19 2003
@@ -1,4 +1,5 @@
 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000  The XFree86 Project, Inc.
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
 .\" a copy of this software and associated documentation files (the
@@ -40,6 +41,8 @@
 .\" of this documentation for any purpose.
 .\" It is provided ``as is'' without express or implied warranty.
 .\" 
+.\" $XFree86: xc/doc/specs/X11/CH01,v 1.2 2000/11/28 18:49:17 dawes Exp $
+.\" 
 .EH '\fBXlib \- C Library\fP''\fBX11, Release 6.4\fP'
 .OH '\fBXlib \- C Library\fP''\fBX11, Release 6.4\fP'
 .EF ''\fB % \fP''
@@ -601,6 +604,11 @@
 .IP
 Latin-1, plus tab and newline.
 .IP \(bu 5
+UTF-8 Encoding
+.IP
+The ASCII compatible character encoding scheme defined by the ISO 10646-1
+standard.
+.IP \(bu 5
 POSIX Portable Filename Character Set
 .IP
 The set of 65 characters, 
diff -urwb X11R6.6/xc/doc/specs/X11/CH02 release1/cvs-ro/xc/doc/specs/X11/CH02
--- X11R6.6/xc/doc/specs/X11/CH02	Thu Apr 13 09:38:14 2000
+++ release1/cvs-ro/xc/doc/specs/X11/CH02	Wed Nov 26 14:48:18 2003
@@ -1,4 +1,4 @@
-.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996, 2000 The Open Group
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
 .\" a copy of this software and associated documentation files (the
@@ -19,10 +19,10 @@
 .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 .\" OTHER DEALINGS IN THE SOFTWARE.
 .\"
-.\" Except as contained in this notice, the name of the X Consortium shall
+.\" Except as contained in this notice, the name of The Open Group shall
 .\" not be used in advertising or otherwise to promote the sale, use or
 .\" other dealings in this Software without prior written authorization
-.\" from the X Consortium.
+.\" from The Open Group.
 .\"
 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
 .\" Digital Equipment Corporation
@@ -40,6 +40,7 @@
 .\" of this documentation for any purpose.
 .\" It is provided ``as is'' without express or implied warranty.
 .\" 
+.\" $XFree86: xc/doc/specs/X11/CH02,v 1.2 2003/07/09 15:27:25 tsi Exp $
 \&
 .sp 1
 .ce 3
@@ -116,8 +117,13 @@
 .Ds 0
 .TA 1i
 .ta 1i
-	\fIhostname\fP\^:\^\fInumber\fP\^.\^\fIscreen_number\fP
+	\fIprotocol\fP\^/\^\fIhostname\fP\^:\^\fInumber\fP\^.\^\fIscreen_number\fP
 .De
+.IP \fIprotocol\fP 1i
+Specifies a protocol family or an alias for a protocol family.  Supported 
+protocol families are implementation dependent.  The protocol entry is 
+optional.  If protocol is not specified, the / separating protocol and 
+hostname must also not be specified.
 .IP \fIhostname\fP 1i
 Specifies the name of the host machine on which the display is physically
 attached.
@@ -159,11 +165,14 @@
 or through some local inter-process communication protocol.
 .IN "Protocol" "TCP"
 .IN "Protocol" "DECnet"
-If the hostname is a host machine name and a single colon (:)
+If the protocol is specified as "tcp", "inet", or "inet6", or
+if no protocol is specified and the hostname is a host machine name and a single colon (:)
 separates the hostname and display number,
 .PN XOpenDisplay
-connects using TCP streams.
-If the hostname is not specified,
+connects using TCP streams.  (If the protocol is specified as "inet", TCP over
+IPv4 is used.  If the protocol is specified as "inet6", TCP over IPv6 is used.
+Otherwise, the implementation determines which IP version is used.)
+If the hostname and protocol are both not specified,
 Xlib uses whatever it believes is the fastest transport.
 If the hostname is a host machine name and a double colon (::)
 separates the hostname and display number,
diff -urwb X11R6.6/xc/doc/specs/X11/CH09 release1/cvs-ro/xc/doc/specs/X11/CH09
--- X11R6.6/xc/doc/specs/X11/CH09	Thu Apr 13 09:38:15 2000
+++ release1/cvs-ro/xc/doc/specs/X11/CH09	Wed Nov 26 14:48:18 2003
@@ -1,4 +1,4 @@
-.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996, 2002 The Open Group
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
 .\" a copy of this software and associated documentation files (the
@@ -19,10 +19,10 @@
 .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 .\" OTHER DEALINGS IN THE SOFTWARE.
 .\"
-.\" Except as contained in this notice, the name of the X Consortium shall
+.\" Except as contained in this notice, the name of The Open Group shall
 .\" not be used in advertising or otherwise to promote the sale, use or
 .\" other dealings in this Software without prior written authorization
-.\" from the X Consortium.
+.\" from The Open Group.
 .\"
 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
 .\" Digital Equipment Corporation
@@ -40,6 +40,7 @@
 .\" of this documentation for any purpose.
 .\" It is provided ``as is'' without express or implied warranty.
 .\" 
+.\" $XFree86: xc/doc/specs/X11/CH09,v 1.3 2003/07/18 15:53:24 tsi Exp $
 \&
 .sp 1
 .ce 3
@@ -968,6 +969,7 @@
 The family member specifies which protocol address family to use 
 (for example, TCP/IP or DECnet) and can be
 .PN FamilyInternet ,
+.PN FamilyInternet6 ,
 .PN FamilyDECnet ,
 or
 .PN FamilyChaos .
@@ -975,6 +977,10 @@
 The address member specifies a pointer to the address.
 .LP
 For TCP/IP, the address should be in network byte order.
+For IP version 4 addresses, the family should be FamilyInternet
+and the length should be 4 bytes.  For IP version 6 addresses, the
+family should be FamilyInternet6 and the length should be 16 bytes.
+.LP
 For the DECnet family, 
 the server performs no automatic swapping on the address bytes.
 A Phase IV address is 2 bytes long.
diff -urwb X11R6.6/xc/doc/specs/X11/CH13 release1/cvs-ro/xc/doc/specs/X11/CH13
--- X11R6.6/xc/doc/specs/X11/CH13	Thu Apr 13 09:38:15 2000
+++ release1/cvs-ro/xc/doc/specs/X11/CH13	Mon Nov 17 11:03:19 2003
@@ -1,4 +1,5 @@
 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000  The XFree86 Project, Inc.
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
 .\" a copy of this software and associated documentation files (the
@@ -40,6 +41,8 @@
 .\" of this documentation for any purpose.
 .\" It is provided ``as is'' without express or implied warranty.
 .\" 
+.\" $XFree86: xc/doc/specs/X11/CH13,v 1.5 2000/12/04 18:49:17 dawes Exp $
+.\" 
 \&
 .sp 1
 .ce 3
@@ -345,6 +348,9 @@
 T}
 		text (some WM_ property
 		text in environment locale)
+	T{
+.PN Xutf8SetWMProperties
+T}
 .sp 6p
 T{
 .PN setlocale
@@ -357,11 +363,17 @@
 .PN XwcTextPropertyToTextList
 T}
 	T{
+.PN Xutf8TextPropertyToTextList
+T}
+	T{
 .PN XmbTextListToTextProperty
 T}
 	T{
 .PN XwcTextListToTextProperty
 T}
+	T{
+.PN Xutf8TextListToTextProperty
+T}
 .sp
 	Text Input:
 .sp 6p
@@ -407,6 +419,9 @@
 T}	T{
 Encoding of returned text
 T}
+	T{
+.PN Xutf8LookupString
+T}
 .sp
 	Text Drawing:
 .sp 6p
@@ -450,6 +465,12 @@
 Locale of supplied text
 T}
 	T{
+.PN Xutf8DrawText ,
+and so on
+T}	T{
+Locale-dependent metrics
+T}
+	T{
 .PN XExtentsOfFontSet ,
 and so on
 T}	T{
@@ -460,6 +481,9 @@
 T}
 	T{
 .PN XwcTextExtents , 
+T}
+	T{
+.PN Xutf8TextExtents , 
 and so on
 T}
 .sp
@@ -747,7 +771,11 @@
 for setting properties or features of the specified output method.
 This function returns NULL if it succeeds;
 otherwise,
-it returns the name of the first argument that could not be obtained.
+it returns the name of the first argument that could not be set.
+Xlib does not attempt to set arguments from the supplied list that
+follow the failed argument;
+all arguments in the list preceding the failed argument have been set
+correctly.
 .LP
 No standard arguments are currently defined by Xlib.
 .LP
@@ -1828,7 +1856,7 @@
 .PN XFontSet
 to font_set.
 .LP
-When an Xmb/wc drawing or measuring function is called with an
+When an Xmb/wc/utf8 drawing or measuring function is called with an
 .PN XFontSet
 that has missing charsets, some characters in the locale will not be
 drawable.
@@ -1901,7 +1929,7 @@
 .PN XFontsOfFontSet
 function returns a list of one or more 
 .PN XFontStructs
-and font names for the fonts used by the Xmb and Xwc layers
+and font names for the fonts used by the Xmb/wc/utf8 layer
 for the given font set.
 A list of pointers to the
 .PN XFontStruct
@@ -2080,9 +2108,10 @@
 the origins of all characters are on the primary draw direction side
 of the drawing origin.
 The screen location of a particular character image may be determined with
-.PN XmbTextPerCharExtents
+.PN XmbTextPerCharExtents ,
+.PN XwcTextPerCharExtents
 or
-.PN XwcTextPerCharExtents .
+.PN Xutf8TextPerCharExtents .
 .LP
 The drawing functions are allowed to implement context-dependent
 rendering, where the glyphs drawn for a string are not simply a
@@ -2196,9 +2225,10 @@
 the rectangles that bound the character glyph image drawn in the
 foreground color, relative to a constant origin.
 See 
-.PN XmbTextExtents
-and
+.PN XmbTextExtents ,
 .PN XwcTextExtents
+and
+.PN Xutf8TextExtents
 for detailed semantics.
 .LP
 The max_logical_extent member gives the maximum extent,
@@ -2217,9 +2247,10 @@
 individual extent.
 .LP
 The rectangles for a given character in a string can be obtained from
-.PN XmbPerCharExtents
+.PN XmbPerCharExtents ,
+.PN XwcPerCharExtents
 or
-.PN XwcPerCharExtents .
+.PN Xutf8PerCharExtents .
 .LP
 .sp
 To obtain the maximum extents structure given an
@@ -2241,7 +2272,7 @@
 .PN XExtentsOfFontSet
 function returns an
 .PN XFontSetExtents
-structure for the fonts used by the Xmb and Xwc layers
+structure for the fonts used by the Xmb/wc/utf8 layer
 for the given font set.
 .LP
 The 
@@ -2257,11 +2288,13 @@
 .sp
 To obtain the escapement in pixels of the specified text as a value,
 use
-.PN XmbTextEscapement
+.PN XmbTextEscapement ,
+.PN XwcTextEscapement
 or 
-.PN XwcTextEscapement .
+.PN Xutf8TextEscapement .
 .IN "XmbTextEscapement" "" "@DEF@"
 .IN "XwcTextEscapement" "" "@DEF@"
+.IN "Xutf8TextEscapement" "" "@DEF@"
 .sM
 .FD 0
 int XmbTextEscapement\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
@@ -2281,6 +2314,15 @@
 .br
       int \fInum_wchars\fP\^;
 .FN
+.FD 0
+int Xutf8TextEscapement\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
+.br
+      XFontSet \fIfont_set\fP\^;
+.br
+      char *\fIstring\fP\^;
+.br
+      int \fInum_bytes\fP\^;
+.FN
 .IP \fIfont_set\fP 1i
 Specifies the font set.
 .IP \fIstring\fP 1i
@@ -2292,9 +2334,10 @@
 .LP
 .eM
 The
-.PN XmbTextEscapement
-and
+.PN XmbTextEscapement ,
 .PN XwcTextEscapement
+and
+.PN Xutf8TextEscapement
 functions return the escapement in pixels of the specified string as a value,
 using the fonts loaded for the specified font set.
 The escapement is the distance in pixels in the primary draw
@@ -2305,15 +2348,23 @@
 Regardless of the character rendering order,
 the escapement is always positive.
 .LP
+The function
+.PN Xutf8TextEscapement
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
+.LP
 .sp
 To obtain the overall_ink_return and overall_logical_return arguments,
 the overall bounding box of the string's image, and a logical bounding box,
 use
-.PN XmbTextExtents
+.PN XmbTextExtents ,
+.PN XwcTextExtents
  or
-.PN XwcTextExtents .
+.PN Xutf8TextExtents .
 .IN "XmbTextExtents" "" "@DEF@"
 .IN "XwcTextExtents" "" "@DEF@"
+.IN "Xutf8TextExtents" "" "@DEF@"
 .sM
 .FD 0
 int XmbTextExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
@@ -2342,6 +2393,19 @@
 .br
       XRectangle *\fIoverall_logical_return\fP\^;
 .FN
+.FD 0
+int Xutf8TextExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
+.br
+      XFontSet \fIfont_set\fP\^;
+.br
+      char *\fIstring\fP\^;
+.br
+      int \fInum_bytes\fP\^;
+.br
+      XRectangle *\fIoverall_ink_return\fP\^;
+.br
+      XRectangle *\fIoverall_logical_return\fP\^;
+.FN
 .IP \fIfont_set\fP 1i
 Specifies the font set.
 .IP \fIstring\fP 1i
@@ -2358,17 +2422,19 @@
 .LP
 .eM
 The
-.PN XmbTextExtents
-and
+.PN XmbTextExtents ,
 .PN XwcTextExtents
+and
+.PN Xutf8TextExtents
 functions set the components of the specified overall_ink_return and
 overall_logical_return
 arguments to the overall bounding box of the string's image
 and a logical bounding box for spacing purposes, respectively.
 They return the value returned by 
-.PN XmbTextEscapement
+.PN XmbTextEscapement ,
+.PN XwcTextEscapement
 or
-.PN XwcTextEscapement .
+.PN Xutf8TextEscapement .
 These metrics are relative to the drawing origin of the string,
 using the fonts loaded for the specified font set.
 .LP
@@ -2409,14 +2475,22 @@
 the client should not assume that it can redraw the character by itself
 and get the same rendering.
 .LP
+The function
+.PN Xutf8TextExtents
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
+.LP
 .sp
 To obtain per-character information for a text string,
 use
-.PN XmbTextPerCharExtents
+.PN XmbTextPerCharExtents ,
+.PN XwcTextPerCharExtents
 or
-.PN XwcTextPerCharExtents .
+.PN Xutf8TextPerCharExtents .
 .IN "XmbTextPerCharExtents" "" "@DEF@"
 .IN "XwcTextPerCharExtents" "" "@DEF@"
+.IN "Xutf8TextPerCharExtents" "" "@DEF@"
 .sM
 .FD 0
 Status XmbTextPerCharExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^, \fIink_array_return\fP\^,
@@ -2464,6 +2538,29 @@
 .br
       XRectangle *\fIoverall_logical_return\fP\^;
 .FN
+.FD 0
+Status Xutf8TextPerCharExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^, \fIink_array_return\fP\^,
+.br
+           \fIlogical_array_return\fP\^, \fIarray_size\fP\^, \fInum_chars_return\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
+.br
+      XFontSet \fIfont_set\fP\^;
+.br
+      char *\fIstring\fP\^;
+.br
+      int \fInum_bytes\fP\^;
+.br
+      XRectangle *\fIink_array_return\fP\^;
+.br
+      XRectangle *\fIlogical_array_return\fP\^;
+.br
+      int \fIarray_size\fP\^;
+.br
+      int *\fInum_chars_return\fP\^;
+.br
+      XRectangle *\fIoverall_ink_return\fP\^;
+.br
+      XRectangle *\fIoverall_logical_return\fP\^;
+.FN
 .IP \fIfont_set\fP 1i
 Specifies the font set.
 .IP \fIstring\fP 1i
@@ -2489,9 +2586,10 @@
 .LP
 .eM
 The
-.PN XmbTextPerCharExtents
-and
+.PN XmbTextPerCharExtents ,
 .PN XwcTextPerCharExtents
+and
+.PN Xutf8TextPerCharExtents
 functions return the text dimensions of each character of the specified text,
 using the fonts loaded for the specified font set.
 Each successive element of ink_array_return and logical_array_return
@@ -2534,14 +2632,22 @@
 Otherwise, the functions return a nonzero value.
 .LP
 If the overall_ink_return or overall_logical_return argument is non-NULL,
-.PN XmbTextPerCharExtents
-and 
+.PN XmbTextPerCharExtents ,
 .PN XwcTextPerCharExtents
+and 
+.PN Xutf8TextPerCharExtents
 return the maximum extent of the string's metrics to overall_ink_return
 or overall_logical_return, as returned by 
-.PN XmbTextExtents
+.PN XmbTextExtents ,
+.PN XwcTextExtents
 or 
-.PN XwcTextExtents .
+.PN Xutf8TextExtents .
+.LP
+The function
+.PN Xutf8TextPerCharExtents
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .NH 3
 Drawing Text Using Font Sets
 .XS
@@ -2557,6 +2663,8 @@
 .PN XDrawImageString
 except that they work with font sets instead of single fonts
 and interpret the text based on the locale of the font set
+(for functions whose name starts with Xmb or Xwc) or as UTF-8 encoded
+text (for functions whose name starts with Xutf8),
 instead of treating the bytes of the string as direct font indexes.
 See section 8.6 for details of the use of Graphics Contexts (GCs)
 and possible protocol errors.
@@ -2570,9 +2678,10 @@
 No validation that all fonts conform to some width rule is performed.
 .LP
 The text functions
-.PN XmbDrawText
-and
+.PN XmbDrawText ,
 .PN XwcDrawText
+and
+.PN Xutf8DrawText
 use the following structures:
 .LP
 .IN "XmbTextItem" "" "@DEF@"
@@ -2603,11 +2712,13 @@
 .eM
 .sp
 To draw text using multiple font sets in a given drawable, use
-.PN XmbDrawText
+.PN XmbDrawText ,
+.PN XwcDrawText
 or
-.PN XwcDrawText .
+.PN Xutf8DrawText .
 .IN "XmbDrawText" "" "@DEF@"
 .IN "XwcDrawText" "" "@DEF@"
+.IN "Xutf8DrawText" "" "@DEF@"
 .sM
 .FD 0
 void XmbDrawText\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIitems\fP\^, \fInitems\fP\^)
@@ -2639,6 +2750,21 @@
 .br
       int \fInitems\fP\^;
 .FN
+.FD 0
+void Xutf8DrawText\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIitems\fP\^, \fInitems\fP\^)
+.br
+      Display *\fIdisplay\fP\^;
+.br
+      Drawable \fId\fP\^;
+.br
+      GC \fIgc\fP\^;
+.br
+      int \fIx\fP\^, \fIy\fP\^;
+.br
+      XmbTextItem *\fIitems\fP\^;
+.br
+      int \fInitems\fP\^;
+.FN
 .IP \fIdisplay\fP 1i
 Specifies the connection to the X server.
 .IP \fId\fP 1i
@@ -2658,9 +2784,10 @@
 .LP
 .eM
 The
-.PN XmbDrawText
-and 
+.PN XmbDrawText ,
 .PN XwcDrawText 
+and 
+.PN Xutf8DrawText 
 functions allow complex spacing and font set shifts between text strings.
 Each text item is processed in turn, with the origin of a text
 element advanced in the primary draw direction by the escapement of the
@@ -2675,18 +2802,19 @@
 .PN None
 will not be drawn.
 .LP
-.PN XmbDrawText
-and
+.PN XmbDrawText ,
 .PN XwcDrawText
+and
+.PN Xutf8DrawText
 do not perform any context-dependent rendering between text segments.
 Clients may compute the drawing metrics by passing each text segment to
-.PN XmbTextExtents
-and
-.PN XwcTextExtents
+.PN XmbTextExtents ,
+.PN XwcTextExtents ,
+.PN Xutf8TextExtents
 or 
-.PN XmbTextPerCharExtents
-and
+.PN XmbTextPerCharExtents ,
 .PN XwcTextPerCharExtents .
+.PN Xutf8TextPerCharExtents .
 When the 
 .PN XFontSet
 has missing charsets, each unavailable character is drawn 
@@ -2694,13 +2822,21 @@
 .PN XCreateFontSet .
 The behavior for an invalid codepoint is undefined.
 .LP
+The function
+.PN Xutf8DrawText
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
+.LP
 .sp
 To draw text using a single font set in a given drawable, use
-.PN XmbDrawString
+.PN XmbDrawString ,
+.PN XwcDrawString
 or
-.PN XwcDrawString .
+.PN Xutf8DrawString .
 .IN "XmbDrawString" "" "@DEF@"
 .IN "XwcDrawString" "" "@DEF@"
+.IN "Xutf8DrawString" "" "@DEF@"
 .sM
 .FD 0
 void XmbDrawString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
@@ -2736,6 +2872,23 @@
 .br
       int \fInum_wchars\fP\^;
 .FN
+.FD 0
+void Xutf8DrawString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
+.br
+      Display *\fIdisplay\fP\^;
+.br
+      Drawable \fId\fP\^;
+.br
+      XFontSet \fIfont_set\fP\^;
+.br
+      GC \fIgc\fP\^;
+.br
+      int \fIx\fP\^, \fIy\fP\^;
+.br
+      char *\fIstring\fP\^;
+.br
+      int \fInum_bytes\fP\^;
+.FN
 .IP \fIdisplay\fP 1i
 Specifies the connection to the X server.
 .IP \fId\fP 1i
@@ -2759,9 +2912,10 @@
 .LP
 .eM
 The
-.PN XmbDrawString
-and
+.PN XmbDrawString ,
 .PN XwcDrawString
+and
+.PN Xutf8DrawString
 functions draw the specified text with the foreground pixel.
 When the 
 .PN XFontSet
@@ -2770,13 +2924,21 @@
 .PN XCreateFontSet .
 The behavior for an invalid codepoint is undefined.
 .LP
+The function
+.PN Xutf8DrawString
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
+.LP
 .sp
 To draw image text using a single font set in a given drawable, use
-.PN XmbDrawImageString
+.PN XmbDrawImageString ,
+.PN XwcDrawImageString
 or
-.PN XwcDrawImageString .
+.PN Xutf8DrawImageString .
 .IN "XmbDrawImageString" "" "@DEF@"
 .IN "XwcDrawImageString" "" "@DEF@"
+.IN "Xutf8DrawImageString" "" "@DEF@"
 .sM
 .FD 0
 void XmbDrawImageString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
@@ -2812,6 +2974,23 @@
 .br
       int \fInum_wchars\fP\^;
 .FN
+.FD 0
+void Xutf8DrawImageString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
+.br
+      Display *\fIdisplay\fP\^;
+.br
+      Drawable \fId\fP\^;
+.br
+      XFontSet \fIfont_set\fP\^;
+.br
+      GC \fIgc\fP\^;
+.br
+      int \fIx\fP\^, \fIy\fP\^;
+.br
+      char *\fIstring\fP\^;
+.br
+      int \fInum_bytes\fP\^;
+.FN
 .IP \fIdisplay\fP 1i
 Specifies the connection to the X server.
 .IP \fId\fP 1i
@@ -2835,15 +3014,17 @@
 .LP
 .eM
 The
-.PN XmbDrawImageString
-and
+.PN XmbDrawImageString ,
 .PN XwcDrawImageString
+and
+.PN Xutf8DrawImageString
 functions fill a destination rectangle with the background pixel defined
 in the GC and then paint the text with the foreground pixel.
 The filled rectangle is the rectangle returned to overall_logical_return by
-.PN XmbTextExtents
-or 
+.PN XmbTextExtents ,
 .PN XwcTextExtents
+or 
+.PN Xutf8TextExtents
 for the same text and 
 .PN XFontSet .
 .LP
@@ -2853,6 +3034,12 @@
 with the default string returned by 
 .PN XCreateFontSet .
 The behavior for an invalid codepoint is undefined.
+.LP
+The function
+.PN Xutf8TextExtents
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .NH 2
 Input Methods
 .XS
@@ -3195,9 +3382,10 @@
 .LP
 To obtain characters from an input method,
 a client must call the function
-.PN XmbLookupString
-or 
+.PN XmbLookupString ,
 .PN XwcLookupString
+or 
+.PN Xutf8LookupString
 with an input context created from that input method.
 Both a locale and display are bound to an input method when it is opened,
 and an input context inherits this locale and display.
@@ -3205,7 +3393,9 @@
 .PN XmbLookupString
 or
 .PN XwcLookupString
-will be encoded in that locale. 
+will be encoded in that locale. Strings returned by
+.PN Xutf8LookupString
+are encoded in UTF-8.
 .NH 4 
 Focus Management
 .XS
@@ -3213,9 +3403,10 @@
 .XE
 .LP
 For each text entry area in which the
-.PN XmbLookupString
-or
+.PN XmbLookupString ,
 .PN XwcLookupString
+or
+.PN Xutf8LookupString
 functions are used,
 there will be an associated input context.
 .LP
@@ -3347,9 +3538,10 @@
 A filtering mechanism is provided to allow input methods
 to capture X events transparently to clients.
 It is expected that toolkits (or clients) using
-.PN XmbLookupString
-or
+.PN XmbLookupString ,
 .PN XwcLookupString 
+or
+.PN Xutf8LookupString
 will call this filter at some point in the event processing mechanism
 to make sure that events needed by an input method can be filtered
 by that input method.
@@ -3386,9 +3578,10 @@
 .LP
 When the user enters a keystroke,
 the client calls
-.PN XmbLookupString
+.PN XmbLookupString ,
+.PN XwcLookupString
 or
-.PN XwcLookupString .
+.PN Xutf8LookupString .
 At this point, in the on-the-spot case,
 the echo of the keystroke in the preedit has not yet been done.
 Before returning to the client logic that handles the input characters,
@@ -3436,9 +3629,10 @@
 preediting, which supports a type of preprocessor input composition.
 In this case, composition consists of interpreting a sequence
 of key events and returning a committed string via 
-.PN XmbLookupString
+.PN XmbLookupString ,
+.PN XwcLookupString
 or
-.PN XwcLookupString .
+.PN Xutf8LookupString .
 This provides the basics for input methods.
 .LP
 In addition to preediting based on key events, a general framework
@@ -3509,9 +3703,10 @@
 .sp
 For this reason, an input method supporting this type of conversion
 should take notice of when the client calls
-.PN XmbResetIC
+.PN XmbResetIC ,
+.PN XwcResetIC
 or
-.PN XwcResetIC ,
+.PN Xutf8ResetIC ,
 which is usually an indication of a context change.  
 .LP
 Context-sensitive conversions just need a copy of the client's text,
@@ -3519,9 +3714,10 @@
 to achieve the reconversion or transliteration.   Yet in all
 cases the result of a conversion, either immediately or via preediting,
 is returned by the
-.PN XmbLookupString
-and
+.PN XmbLookupString ,
 .PN XwcLookupString
+and
+.PN Xutf8LookupString
 functions.
 .LP
 String conversion support is dependent on the availability of the 
@@ -4688,11 +4884,13 @@
 .LP
 .sp
 To reset the state of an input context to its initial state, use
-.PN XmbResetIC
+.PN XmbResetIC ,
+.PN XwcResetIC
 or
-.PN XwcResetIC .
+.PN Xutf8ResetIC .
 .IN "XmbResetIC" "" "@DEF@"
 .IN "XwcResetIC" "" "@DE@"
+.IN "Xutf8ResetIC" "" "@DE@"
 .sM
 .FD 0
 char * XmbResetIC\^(\^\fIic\fP\^)
@@ -4704,6 +4902,11 @@
 .br
       XIC \fIic\fP\^; 
 .FN
+.FD 0
+char * Xutf8ResetIC\^(\^\fIic\fP\^)
+.br
+      XIC \fIic\fP\^;
+.FN
 .IP \fIic\fP 1i
 Specifies the input context.
 .LP
@@ -4712,9 +4915,10 @@
 .PN XNResetState
 is set to
 .PN XIMInitialState ,
-.PN XmbResetIC
-and
+.PN XmbResetIC ,
 .PN XwcResetIC
+and
+.PN Xutf8ResetIC
 reset an input context to its initial state;
 when
 .PN XNResetState
@@ -4725,14 +4929,21 @@
 The input method is required to clear the preedit area, if any,
 and update the status accordingly.
 Calling 
-.PN XmbResetIC
-or
+.PN XmbResetIC ,
 .PN XwcResetIC
+or
+.PN Xutf8ResetIC
 does not change the focus.
 .LP
 The return value of
 .PN XmbResetIC
 is its current preedit string as a multibyte string.
+The return value of
+.PN XwcResetIC
+is its current preedit string as a wide character string.
+The return value of
+.PN Xutf8ResetIC
+is its current preedit string as an UTF-8 string.
 If there is any preedit text drawn or visible to the user,
 then these procedures must return a non-NULL string.
 If there is no visible preedit text, 
@@ -4742,6 +4953,12 @@
 The client should free the returned string by calling
 .PN XFree .
 .LP
+The function
+.PN Xutf8ResetIC
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
+.LP
 .sp
 To get the input method associated with an input context, use
 .PN XIMOfIC .
@@ -5276,9 +5493,10 @@
 The
 .PN XNResetState
 argument specifies the state the input context will return to after calling
-.PN XmbResetIC
+.PN XmbResetIC ,
+.PN XwcResetIC
 or
-.PN XwcResetIC .
+.PN Xutf8ResetIC .
 .LP
 The XIC state may be set to its initial state, as specified by the
 .PN XNPreeditState
@@ -5319,9 +5537,10 @@
 If
 .PN XIMInitialState
 is set, then
-.PN XmbResetIC
-and
+.PN XmbResetIC ,
 .PN XwcResetIC
+and
+.PN Xutf8ResetIC
 will return to the initial
 .PN XNPreeditState
 state of the XIC.
@@ -5329,9 +5548,10 @@
 If
 .PN XIMPreserveState
 is set, then 
-.PN XmbResetIC
-and
+.PN XmbResetIC ,
 .PN XwcResetIC
+and
+.PN Xutf8ResetIC
 will preserve the current state of the XIC.
 .LP
 If
@@ -5805,9 +6025,10 @@
 the
 .PN XNPreeditState
 value specified at the creation time will be reflected as the initial state for
-.PN XmbResetIC
+.PN XmbResetIC ,
+.PN XwcResetIC
 and
-.PN XwcResetIC .
+.PN Xutf8ResetIC .
 .LP
 Because this XIC value is optional, a client should call
 .PN XGetIMValues
@@ -7004,11 +7225,13 @@
 .LP
 To get composed input from an input method,
 use
-.PN XmbLookupString
+.PN XmbLookupString ,
+.PN XwcLookupString
 or
-.PN XwcLookupString .
+.PN Xutf8LookupString .
 .IN "XmbLookupString" "" "@DEF@"
 .IN "XwcLookupString" "" "@DEF@"
+.IN "Xutf8LookupString" "" "@DEF@"
 .sM
 .FD 0
 int XmbLookupString\^(\^\fIic\fP\^, \fIevent\fP\^, \fIbuffer_return\fP\^, \fIbytes_buffer\fP\^, \fIkeysym_return\fP\^, \fIstatus_return\fP\^)
@@ -7040,6 +7263,21 @@
 .br
       Status *\fIstatus_return\fP\^;
 .FN
+.FD 0
+int Xutf8LookupString\^(\^\fIic\fP\^, \fIevent\fP\^, \fIbuffer_return\fP\^, \fIbytes_buffer\fP\^, \fIkeysym_return\fP\^, \fIstatus_return\fP\^)
+.br
+      XIC \fIic\fP\^;
+.br
+      XKeyPressedEvent *\fIevent\fP;
+.br
+      char *\fIbuffer_return\fP\^;
+.br
+      int \fIbytes_buffer\fP\^;
+.br
+      KeySym *\fIkeysym_return\fP\^;
+.br
+      Status *\fIstatus_return\fP\^;
+.FN
 .IP \fIic\fP 1i
 Specifies the input context.
 .ds Ev key event to be used
@@ -7060,9 +7298,10 @@
 .LP
 .eM
 The
-.PN XmbLookupString
-and
+.PN XmbLookupString ,
 .PN XwcLookupString
+and
+.PN Xutf8LookupString
 functions return the string from the input method specified
 in the buffer_return argument.
 If no string is returned,
@@ -7075,7 +7314,9 @@
 the KeySym value does not necessarily correspond to the string returned.
 .LP
 .PN XmbLookupString
-returns the length of the string in bytes, and
+and
+.PN Xutf8LookupString
+return the length of the string in bytes, and
 .PN XwcLookupString
 returns the length of the string in characters.
 Both
@@ -7083,7 +7324,9 @@
 and
 .PN XwcLookupString
 return text in the encoding of the locale bound to the input method
-of the specified input context.
+of the specified input context, and
+.PN Xutf8LookupString
+returns text in UTF-8 encoding.
 .LP
 Each string returned by
 .PN XmbLookupString
@@ -7092,13 +7335,14 @@
 begins in the initial state of the encoding of the locale
 (if the encoding of the locale is state-dependent).
 .NT
-To insure proper input processing,
+To ensure proper input processing,
 it is essential that the client pass only 
 .PN KeyPress
 events to
-.PN XmbLookupString
+.PN XmbLookupString ,
+.PN XwcLookupString
 and
-.PN XwcLookupString .
+.PN Xutf8LookupString .
 Their behavior when a client passes a 
 .PN KeyRelease
 event is undefined.
@@ -7106,7 +7350,7 @@
 .LP
 Clients should check the status_return argument before
 using the other returned values.
-These two functions both return a value to status_return 
+These three functions each return a value to status_return 
 that indicates what has been returned in the other arguments.
 The possible values returned are:
 .TS
@@ -7115,9 +7359,10 @@
 .PN XBufferOverflow
 T}	T{
 The input string to be returned is too large for the supplied buffer_return.
-The required size
-.Pn ( XmbLookupString
-in bytes;
+The required size (for
+.PN XmbLookupString ,
+.PN Xutf8LookupString
+in bytes; for
 .PN XwcLookupString
 in characters) is returned as the value of the function,
 and the contents of buffer_return and keysym_return are not modified.
@@ -7135,9 +7380,9 @@
 .PN XLookupChars
 T}	T{
 Some input characters have been composed.
-They are placed in the buffer_return argument,
+They are placed in the buffer_return argument, using the encoding
+described above,
 and the string length is returned as the value of the function.
-The string is encoded in the locale bound to the input context.
 The content of the keysym_return argument is not modified.
 T}
 T{
@@ -7160,16 +7405,24 @@
 .TE
 .LP
 It does not make any difference if the input context passed as an argument to
-.PN XmbLookupString
-and
+.PN XmbLookupString ,
 .PN XwcLookupString
+and
+.PN Xutf8LookupString
 is the one currently in possession of the focus or not.
 Input may have been composed within an input context before it lost the focus,
 and that input may be returned on subsequent calls to
-.PN XmbLookupString
-or
+.PN XmbLookupString ,
 .PN XwcLookupString
+or
+.PN Xutf8LookupString
 even though it does not have any more keyboard focus.
+.LP
+The function
+.PN Xutf8LookupString
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .NH 3
 Input Method Conventions
 .XS
@@ -7202,9 +7455,10 @@
 .PN KeyPress
 event with a KeyCode of zero is used exclusively as a
 signal that an input method has composed input that can be returned by
-.PN XmbLookupString
+.PN XmbLookupString ,
+.PN XwcLookupString
 or
-.PN XwcLookupString .
+.PN Xutf8LookupString .
 No other use is made of a 
 .PN KeyPress
 event with KeyCode of zero.
diff -urwb X11R6.6/xc/doc/specs/X11/CH14 release1/cvs-ro/xc/doc/specs/X11/CH14
--- X11R6.6/xc/doc/specs/X11/CH14	Thu Apr 13 09:38:15 2000
+++ release1/cvs-ro/xc/doc/specs/X11/CH14	Mon Nov 17 11:03:19 2003
@@ -1,4 +1,5 @@
 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000  The XFree86 Project, Inc.
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
 .\" a copy of this software and associated documentation files (the
@@ -40,6 +41,8 @@
 .\" of this documentation for any purpose.
 .\" It is provided ``as is'' without express or implied warranty.
 .\" 
+.\" $XFree86: xc/doc/specs/X11/CH14,v 1.2 2000/11/28 18:49:19 dawes Exp $
+.\" 
 \&
 .sp 1
 .ce 3
@@ -499,21 +502,29 @@
 	XStringStyle,		/* STRING */
 	XCompoundTextStyle,	/* COMPOUND_TEXT */
 	XTextStyle,		/* text in owner's encoding (current locale) */
-	XStdICCTextStyle	/* STRING, else COMPOUND_TEXT */
+	XStdICCTextStyle,	/* STRING, else COMPOUND_TEXT */
+	XUTF8StringStyle	/* UTF8_STRING */
 } XICCEncodingStyle;
 .De
 .LP
 .eM
-.sp
+The value
+.PN XUTF8StringStyle
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .LP
+.sp
 To convert a list of text strings to an 
 .PN XTextProperty
 structure, use
-.PN XmbTextListToTextProperty
+.PN XmbTextListToTextProperty ,
+.PN XwcTextListToTextProperty
 or
-.PN XwcTextListToTextProperty .
+.PN Xutf8TextListToTextProperty .
 .IN "XmbTextListToTextProperty" "" "@DEF@"
 .IN "XwcTextListToTextProperty" "" "@DEF@"
+.IN "Xutf8TextListToTextProperty" "" "@DEF@"
 .sM
 .FD 0
 int XmbTextListToTextProperty\^(\^\fIdisplay\fP\^, \fIlist\fP\^, \fIcount\fP\^, \fIstyle\fP\^, \fItext_prop_return\fP\^)
@@ -541,6 +552,19 @@
 .br
       XTextProperty *\fItext_prop_return\fP\^;
 .FN
+.FD 0
+int Xutf8TextListToTextProperty\^(\^\fIdisplay\fP\^, \fIlist\fP\^, \fIcount\fP\^, \fIstyle\fP\^, \fItext_prop_return\fP\^)
+.br
+      Display *\fIdisplay\fP\^;
+.br
+      char **\fIlist\fP\^;
+.br
+      int \fIcount\fP\^;
+.br
+      XICCEncodingStyle \fIstyle\fP\^;
+.br
+      XTextProperty *\fItext_prop_return\fP\^;
+.FN
 .IP \fIdisplay\fP 1i
 Specifies the connection to the X server.
 .IP \fIlist\fP 1i
@@ -556,15 +580,20 @@
 .LP
 .eM
 The
-.PN XmbTextListToTextProperty
-and
+.PN XmbTextListToTextProperty ,
 .PN XwcTextListToTextProperty
+and
+.PN Xutf8TextListToTextProperty
 functions set the specified 
 .PN XTextProperty
 value to a set of null-separated elements representing the concatenation
-of the specified list of null-terminated text strings.
-A final terminating null is stored at the end of the value field 
-of text_prop_return but is not included in the nitems member.
+of the specified list of null-terminated text strings. The input text
+strings must be given in the current locale encoding (for
+.PN XmbTextListToTextProperty
+and
+.PN XwcTextListToTextProperty ),
+or in UTF-8 encoding (for
+.PN Xutf8TextListToTextProperty ).
 .LP
 The functions set the encoding field of text_prop_return to an
 .PN Atom 
@@ -579,6 +608,12 @@
 is specified,
 this encoding is ``STRING'' or ``COMPOUND_TEXT'', respectively.
 If the style 
+.PN XUTF8StringStyle
+is specified,
+this encoding is ``UTF8_STRING''. (This is an XFree86 extension introduced in
+XFree86 4.0.2. Its presence is indicated by the macro
+.PN X_HAVE_UTF8_STRING .)
+If the style 
 .PN XTextStyle
 is specified,
 this encoding is the encoding of the current locale.
@@ -587,6 +622,8 @@
 is specified,
 this encoding is ``STRING'' if the text is fully convertible to STRING,
 else ``COMPOUND_TEXT''.
+A final terminating null byte is stored at the end of the value field 
+of text_prop_return but is not included in the nitems member.
 .LP
 If insufficient memory is available for the new value string,
 the functions return 
@@ -614,16 +651,24 @@
 .LP
 To free the storage for the value field, use
 .PN XFree .
+.LP
+The function
+.PN Xutf8TextListToTextProperty
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .sp
 .LP
 To obtain a list of text strings from an 
 .PN XTextProperty 
 structure, use
-.PN XmbTextPropertyToTextList
+.PN XmbTextPropertyToTextList ,
+.PN XwcTextPropertyToTextList
 or
-.PN XwcTextPropertyToTextList .
+.PN Xutf8TextPropertyToTextList .
 .IN "XmbTextPropertyToTextList" "" "@DEF@"
 .IN "XwcTextPropertyToTextList" "" "@DEF@"
+.IN "Xutf8TextPropertyToTextList" "" "@DEF@"
 .sM
 .FD 0
 int XmbTextPropertyToTextList\^(\^\fIdisplay\fP\^, \fItext_prop\fP\^, \fIlist_return\fP\^, \fIcount_return\fP\^)
@@ -647,6 +692,17 @@
 .br
       int *\fIcount_return\fP\^;
 .FN
+.FD 0
+int Xutf8TextPropertyToTextList\^(\^\fIdisplay\fP\^, \fItext_prop\fP\^, \fIlist_return\fP\^, \fIcount_return\fP\^)
+.br
+      Display *\fIdisplay\fP\^;
+.br
+      XTextProperty *\fItext_prop\fP\^;
+.br
+      char ***\fIlist_return\fP\^;
+.br
+      int *\fIcount_return\fP\^;
+.FN
 .IP \fIdisplay\fP 1i
 Specifies the connection to the X server.
 .IP \fItext_prop\fP 1i
@@ -661,13 +717,20 @@
 .LP
 .eM
 The 
-.PN XmbTextPropertyToTextList
-and 
+.PN XmbTextPropertyToTextList ,
 .PN XwcTextPropertyToTextList
-functions return a list of text strings in the current locale representing the
+and 
+.PN Xutf8TextPropertyToTextList
+functions return a list of text strings representing the
 null-separated elements of the specified
 .PN XTextProperty
-structure.
+structure. The returned strings are encoded using the current locale encoding
+(for
+.PN XmbTextPropertyToTextList
+and
+.PN XwcTextPropertyToTextList )
+or in UTF-8 (for
+.PN Xutf8TextPropertyToTextList ).
 The data in text_prop must be format 8.
 .LP
 Multiple elements of the property (for example, the strings in a disjoint
@@ -676,9 +739,10 @@
 any terminating null should not be included in text_prop.nitems.
 .LP
 If insufficient memory is available for the list and its elements,
-.PN XmbTextPropertyToTextList
-and
+.PN XmbTextPropertyToTextList ,
 .PN XwcTextPropertyToTextList
+and
+.PN Xutf8TextPropertyToTextList
 return 
 .PN XNoMemory .
 If the current locale is not supported,
@@ -689,7 +753,7 @@
 the functions return
 .PN XConverterNotFound .
 For supported locales,
-existence of a converter from COMPOUND_TEXT, STRING
+existence of a converter from COMPOUND_TEXT, STRING, UTF8_STRING
 or the encoding of the current locale is guaranteed if
 .PN XSupportsLocale 
 returns 
@@ -701,14 +765,15 @@
 the functions do not set any return values.
 .LP
 Otherwise, 
-.PN XmbTextPropertyToTextList
-and
+.PN XmbTextPropertyToTextList ,
 .PN XwcTextPropertyToTextList
+and
+.PN Xutf8TextPropertyToTextList
 return the list of null-terminated text strings to list_return
 and the number of text strings to count_return.
 .LP
-If the value field of text_prop is not fully convertible to the encoding of
-the current locale,
+If the value field of text_prop is not fully convertible to the
+encoding of the current locale,
 the functions return the number of unconvertible characters.
 Each unconvertible character is converted to a string in the
 current locale that is specific to the current locale.
@@ -716,14 +781,17 @@
 use
 .PN XDefaultString .
 Otherwise,
-.PN XmbTextPropertyToTextList
-and
+.PN XmbTextPropertyToTextList ,
 .PN XwcTextPropertyToTextList
+and
+.PN Xutf8TextPropertyToTextList
 return 
 .PN Success .
 .LP
 To free the storage for the list and its contents returned by
-.PN XmbTextPropertyToTextList ,
+.PN XmbTextPropertyToTextList
+or
+.PN Xutf8TextPropertyToTextList ,
 use
 .PN XFreeStringList .
 To free the storage for the list and its contents returned by
@@ -730,6 +798,12 @@
 .PN XwcTextPropertyToTextList ,
 use
 .PN XwcFreeStringList .
+.LP
+The function
+.PN Xutf8TextPropertyToTextList
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .sp
 .LP
 To free the in-memory data associated with the specified
@@ -901,7 +975,8 @@
 The 
 .PN XFreeStringList 
 function releases memory allocated by 
-.PN XmbTextPropertyToTextList
+.PN XmbTextPropertyToTextList ,
+.PN Xutf8TextPropertyToTextList
 and
 .PN XTextPropertyToStringList
 and the missing charset list allocated by 
@@ -2680,7 +2755,9 @@
 .LP
 The 
 .PN XmbSetWMProperties
-function stores the standard set of window manager properties,
+and
+.PN Xutf8SetWMProperties
+functions store the standard set of window manager properties,
 with text properties in standard encodings
 for internationalized text communication.
 The standard window manager properties for a given window are
@@ -2687,6 +2764,7 @@
 WM_NAME, WM_ICON_NAME, WM_HINTS, WM_NORMAL_HINTS, WM_CLASS,
 WM_COMMAND, WM_CLIENT_MACHINE, and WM_LOCALE_NAME.
 .IN "XmbSetWMProperties" "" "@DEF@"
+.IN "Xutf8SetWMProperties" "" "@DEF@"
 .sM
 .FD 0
 void XmbSetWMProperties\^(\^\fIdisplay\fP\^, \fIw\fP\^, \fIwindow_name\fP\^, \fIicon_name\fP\^, \fIargv\fP\^, \fIargc\fP\^,
@@ -2711,6 +2789,29 @@
 .br
       XClassHint *\fIclass_hints\fP\^;
 .FN
+.FD 0
+void Xutf8SetWMProperties\^(\^\fIdisplay\fP\^, \fIw\fP\^, \fIwindow_name\fP\^, \fIicon_name\fP\^, \fIargv\fP\^, \fIargc\fP\^,
+.br
+                      \fInormal_hints\fP\^, \fIwm_hints\fP\^, \fIclass_hints\fP\^)
+.br
+      Display *\fIdisplay\fP\^;
+.br
+      Window \fIw\fP\^;
+.br
+      char *\fIwindow_name\fP\^;
+.br
+      char *\fIicon_name\fP\^;
+.br
+      char *\fIargv\fP\^[];
+.br
+      int \fIargc\fP\^;
+.br
+      XSizeHints *\fInormal_hints\fP\^;
+.br
+      XWMHints *\fIwm_hints\fP\^;
+.br
+      XClassHint *\fIclass_hints\fP\^;
+.FN
 .IP \fIdisplay\fP 1i
 Specifies the connection to the X server.
 .IP \fIw\fP 1i
@@ -2739,19 +2840,22 @@
 .eM
 The
 .PN XmbSetWMProperties
-convenience function provides a simple programming interface 
+and
+.PN Xutf8SetWMProperties
+convenience functions provide a simple programming interface 
 for setting those essential window properties that are used 
 for communicating with other clients
 (particularly window and session managers).
 .LP
 If the window_name argument is non-NULL,
-.PN XmbSetWMProperties
-sets the WM_NAME property.
+they set the WM_NAME property.
 If the icon_name argument is non-NULL,
+they set the WM_ICON_NAME property.
+The window_name and icon_name arguments are null-terminated strings, for
 .PN XmbSetWMProperties
-sets the WM_ICON_NAME property.
-The window_name and icon_name arguments are null-terminated strings
-in the encoding of the current locale.
+in the encoding of the current locale, for
+.PN Xutf8SetWMProperties
+in UTF-8 encoding.
 If the arguments can be fully converted to the STRING encoding,
 the properties are created with type ``STRING''; 
 otherwise, the arguments are converted to Compound Text, 
@@ -2759,18 +2863,24 @@
 .LP
 If the normal_hints argument is non-NULL,
 .PN XmbSetWMProperties
-calls
+and
+.PN Xutf8SetWMProperties
+call
 .PN XSetWMNormalHints ,
 which sets the WM_NORMAL_HINTS property (see section 14.1.7).
 If the wm_hints argument is non-NULL, 
 .PN XmbSetWMProperties
-calls
+and
+.PN Xutf8SetWMProperties
+call
 .PN XSetWMHints ,
 which sets the WM_HINTS property (see section 14.1.6).
 .LP
 If the argv argument is non-NULL,
 .PN XmbSetWMProperties
-sets the WM_COMMAND property from argv and argc.
+and
+.PN Xutf8SetWMProperties
+set the WM_COMMAND property from argv and argc.
 An argc of zero indicates a zero-length command.
 .LP
 The hostname of the machine is stored using 
@@ -2779,7 +2889,9 @@
 .LP
 If the class_hints argument is non-NULL,
 .PN XmbSetWMProperties
-sets the WM_CLASS property.
+and
+.PN Xutf8SetWMProperties
+set the WM_CLASS property.
 If the res_name member in the 
 .PN XClassHint
 structure is set to the NULL pointer and the RESOURCE_NAME
@@ -2792,24 +2904,34 @@
 .LP
 It is assumed that the supplied class_hints.res_name and argv,
 the RESOURCE_NAME environment variable, and the hostname of the machine
-are in the encoding of the locale announced for the LC_CTYPE category
-(on POSIX-compliant systems, the LC_CTYPE, else LANG environment variable).
+are in the encoding of the current locale.
 The corresponding WM_CLASS, WM_COMMAND, and WM_CLIENT_MACHINE properties
 are typed according to the local host locale announcer.
-No encoding conversion is performed prior to storage in the properties.
+No encoding conversion is performed for these strings prior to storage
+in the properties.
 .LP
 For clients that need to process the property text in a locale,
 .PN XmbSetWMProperties
-sets the WM_LOCALE_NAME property to be the name of the current locale.
+and
+.PN Xutf8SetWMProperties
+set the WM_LOCALE_NAME property to be the name of the current locale.
 The name is assumed to be in the Host Portable Character Encoding
 and is converted to STRING for storage in the property.
 .LP
 .PN XmbSetWMProperties
+and
+.PN Xutf8SetWMProperties
 can generate
 .PN BadAlloc
 and
 .PN BadWindow
 errors.
+.LP
+The function
+.PN Xutf8SetWMProperties
+is an XFree86 extension introduced in XFree86 4.0.2. Its presence is
+indicated by the macro
+.PN X_HAVE_UTF8_STRING .
 .sp
 .LP
 To set a window's standard window manager properties
diff -urwb X11R6.6/xc/doc/specs/X11/abstract.t release1/cvs-ro/xc/doc/specs/X11/abstract.t
--- X11R6.6/xc/doc/specs/X11/abstract.t	Thu Apr 13 09:38:16 2000
+++ release1/cvs-ro/xc/doc/specs/X11/abstract.t	Wed Nov 26 14:48:18 2003
@@ -1,3 +1,4 @@
+.\" $XFree86: xc/doc/specs/X11/abstract.t,v 1.2 2003/07/09 15:27:26 tsi Exp $
 .EH ''''
 .OH ''''
 .EF ''''
@@ -11,7 +12,7 @@
 
 \s+1\fBX Consortium Standard\fP\s-1
 
-\s+1\fBX Version 11, Release 6.4\fP\s-1
+\s+1\fBX Version 11, Release 6.7\fP\s-1
 .sp 6
 .ce 4
 \s-1James Gettys
@@ -33,7 +34,7 @@
 .sp 1
 Vania Joloboff, Open Software Foundation
 .sp 1
-Hideki Hiura, SunSoft, Inc.
+Hideki Hiura, Sun Microsystems, Inc.
 .sp 1
 Bill McMahon, Hewlett-Packard Company
 .sp 1
@@ -50,12 +51,13 @@
 .nr PS 9
 .sp 8
 .LP
-The X Window System is a trademark of X Consortium, Inc.
+The X Window System is a trademark of The Open Group.
 .LP
 TekHVC is a trademark of Tektronix, Inc.
 .sp 2
 .LP
-Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994,1996 X Consortium
+Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996, 2002
+The Open Group
 .LP
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
@@ -76,10 +78,10 @@
 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 .LP
-Except as contained in this notice, the name of the X Consortium shall
+Except as contained in this notice, the name of The Open Group shall
 not be used in advertising or otherwise to promote the sale, use or
 other dealings in this Software without prior written authorization
-from the X Consortium.
+from The Open Group.
 .sp 3
 .LP
 Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
diff -urwb X11R6.6/xc/doc/specs/X11/glossary release1/cvs-ro/xc/doc/specs/X11/glossary
--- X11R6.6/xc/doc/specs/X11/glossary	Thu Apr 13 09:38:16 2000
+++ release1/cvs-ro/xc/doc/specs/X11/glossary	Mon Nov 17 11:03:19 2003
@@ -1,3 +1,6 @@
+.\"
+.\" $XFree86: xc/doc/specs/X11/glossary,v 1.2 2000/11/28 18:49:19 dawes Exp $
+.\"
 \&
 .sp 1
 .ce 1
@@ -402,7 +405,7 @@
 The representations do not have to be of uniform length.
 Examples are an ISO2022 graphic set, a state-independent 
 or state-dependent combination of graphic sets, possibly including control
-sets, and the X Compound Text encoding.
+sets, the X Compound Text encoding, and the UTF-8 ISO10646/Unicode encoding.
 .IP
 In X, encodings are identified by a string
 which appears as: the
diff -urwb X11R6.6/xc/doc/specs/XDMCP/xdmcp.ms release1/cvs-ro/xc/doc/specs/XDMCP/xdmcp.ms
--- X11R6.6/xc/doc/specs/XDMCP/xdmcp.ms	Thu Aug 17 12:42:20 2000
+++ release1/cvs-ro/xc/doc/specs/XDMCP/xdmcp.ms	Sat Dec  6 05:22:41 2003
@@ -1,5 +1,7 @@
 .\" Use eqn, tbl, and -ms
+.\" $XdotOrg: xc/doc/specs/XDMCP/xdmcp.ms,v 1.1.4.2 2003/12/06 13:22:41 kaleb Exp $
 .\" $Xorg: xdmcp.ms,v 1.3 2000/08/17 19:42:20 cpqbld Exp $
+.\" $XFree86: xc/doc/specs/XDMCP/xdmcp.ms,v 1.3 2003/11/22 04:50:59 dawes Exp $
 .EQ
 delim @@
 define oc % "\\fR{\\fP" %
@@ -16,11 +18,11 @@
 .ce 7
 \s+2\fBX Display Manager Control Protocol\fP\s-2
 
-\s+1\fBVersion 1.0
+\s+1\fBVersion 1.1 DRAFT
 
-X Consortium Standard
+X.Org Standard
 
-X Version 11, Release 6.4\fP\s-1
+X Version 11, Release 6.7\fP\s-1
 .sp 4
 .ce 5
 \s-1Keith Packard
@@ -32,7 +34,7 @@
 .br
 \&
 .sp 15
-Copyright \(co 1989 X Consortium
+Copyright \(co 1989, 2002 The Open Group
 .sp 3
 .LP
 Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -48,16 +50,16 @@
 THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 .LP
-Except as contained in this notice, the name of the X Consortium shall not be
+Except as contained in this notice, the name of The Open Group shall not be
 used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
+in this Software without prior written authorization from The Open Group.
 .LP
 .sp 3
-\fIX Window System\fP is a trademark of X Consortium, Inc.
+\fIX Window System\fP is a trademark of The Open Group.
 .de PT
 .ie o .tl 'XDMCP''X Display Manager Control Protocol '
 .el .tl 'X Display Manager Control Protocol ''XDMCP'
@@ -1691,8 +1693,12 @@
 .XE
 .LP
 When XDMCP is implemented on top of the Internet User Datagram Protocol (UDP),
-port number 177 is to be used.
-The version number in all packets will be 1.
+port number 177 is to be used. When using UDP over IPv4, Broadcast Query 
+packets are sent via UDP broadcast.  When using UDP over IPv6, Broadcast Query
+packets are sent via multicast, either to an address in the IANA registered 
+XDMCP multicast address range of FF0\fIX\fP:0:0:0:0:0:0:12B 
+(where the \fIX\fP is replaced by a valid scope id) or to a locally assigned 
+multicast address. The version number in all packets will be 1.
 Packet opcodes are 16-bit integers.
 .RS
 .TS
@@ -2051,10 +2057,13 @@
 In an unsecure environment, the display must be able to verify that the
 source of the various packets is a trusted manager.  These packets will
 contain authentication information.  As an example of such a system, the
-following discussion describes the "XDM-AUTHENTICATION-1" authentication
-system.  This system uses a 56-bit shared private key, and 64 bits of
-authentication data.  An associated example X authorization protocol
-"XDM-AUTHORIZATION-1" will also be discussed.  The 56-bit key is represented
+following discussion describes the "XDM-AUTHENTICATION-1" and
+"XDM-AUTHENTICATION-2" authentication systems.  The "XDM-AUTHENTICATION-1"
+system uses a 56-bit shared private key, and 64 bits of
+authentication data.  "XDM-AUTHENTICATION-2" uses a 256 bit shared private key,
+and 256 bits of authentication data.  Associated example X authorization
+protocol "XDM-AUTHORIZATION-1" and "XDM-AUTHORIZATION-2" will also be 
+discussed. The 56-bit key is represented
 as a 64-bit number in network order (big endian).  This means that the first
 octet in the representation will be zero.  When incrementing a 64-bit value,
 the 8 octets of data will be interpreted in network order (big endian). 
@@ -2096,13 +2105,19 @@
 beta lineup = "authorization data"
 .EN
 .LP
-Encryption will use the DES; blocks shorter than 64 bits will be zero-filled
-on the right to 64 bits.  Blocks longer than 64 bits will use block chaining:
+"XDM-AUTHENTICATION-1" encryption will use the Data Encryption Standard (DES, 
+FIPS 46-3); blocks shorter than 64 bits will be zero-filled on the right to 
+64 bits.  Blocks longer than 64 bits will use block chaining:
 .EQ
 oc { D } cc sup kappa lineup = oc { D sub 1 } cc sup kappa " "
 oc { D sub 2 } " " xor " " oc { D sub 1 } cc sup kappa cc sup kappa
 .EN
 .LP
+"XDM-AUTHENTICATION-2" encryption will use the Advanced Encryption Standard 
+(AES, FIPS-197);  blocks shorter than 128 bits will be zero-filled on the right
+to 128 bits.  Blocks longer than 128 bits will use block chaining as shown
+above.
+.LP
 The display generates the first authentication data in the
 .PN Request
 packet:
@@ -2148,7 +2163,7 @@
 beta lineup = oc rho N T cc sup sigma
 .EN
 .LP
-For TCP connections @N@ is 48 bits long and contains the 32-bit IP address of
+For TCP connections @N@ is 48 bits long and contains the 32-bit IPv4 address of
 the client host followed by the 16-bit port number of the client socket.
 Formats for other connections must be registered.
 The resulting value, @beta@, is 192 bits of authorization data that is sent
@@ -2162,6 +2177,15 @@
 .IP \(bu 5
 No packet containing the same pair (@N@, @T@) can have been received
 in the last 1200 seconds (20 minutes).
+.LP
+``XDM-AUTHORIZATION-2'' is identical to ``XDM-AUTHORIZATION-1'', except that
+for TCP connections  @N@ is 256 bits long and contains the 128 bit 
+IPv6 address of the client host followed by the 16 bit port number of the 
+client socket, with the remainder filled with zeros, and @T@ is extended to
+64-bits.  IPv4 addresses are represented as IPv4-mapped IPv6 addresses, with
+an 80-bit prefix of zero bits, followed by a 16-byte value of 0xFFFF, 
+followed by the IPv4 address value, as defined in IETF RFC 2373. Formats for 
+other connections must be  registered.
 .bp
 .EH ''''
 .OH ''''
--- X11R6.6/xc/doc/specs/XIM/xim.ms	Thu Aug 17 12:42:21 2000
+++ release1/cvs-ro/xc/doc/specs/XIM/xim.ms	Mon Nov 17 11:03:19 2003
@@ -1,5 +1,6 @@
 .\" $Xorg: xim.ms,v 1.3 2000/08/17 19:42:21 cpqbld Exp $
 .\" To print this out, type tbl macros.t ThisFile | troff -ms
+.\" $XFree86: xc/doc/specs/XIM/xim.ms,v 1.3 2001/01/17 16:57:42 dawes Exp $
 .EH ''''
 .OH ''''
 .EF ''''
@@ -331,8 +332,8 @@
 .LP
 .LP
 .bp
-... 0.05 6.513 4.737 10.45
-... 0.000i 3.937i 4.687i 0.000i
+\^... 0.05 6.513 4.737 10.45
+\^... 0.000i 3.937i 4.687i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 3.937i 4.687i 
@@ -1962,8 +1963,8 @@
 deals with keyevents for preediting operation.
 .LP
 .\"====================== event flow figure start =====================
-... 0.425 6.888 6.3 10.296
-... 0.000i 3.408i 5.875i 0.000i
+\^... 0.425 6.888 6.3 10.296
+\^... 0.000i 3.408i 5.875i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 3.408i 5.875i 
@@ -2162,8 +2163,8 @@
 .LP
 .bp
 .\"====================== event2 flow figure start =====================
-... 0.425 5.575 6.3 10.296
-... 0.000i 4.721i 5.875i 0.000i
+\^... 0.425 5.575 6.3 10.296
+\^... 0.000i 4.721i 5.875i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 4.721i 5.875i 
@@ -2713,7 +2714,7 @@
 :2:CARD16:input-context-ID
 :4:CARD32:XIMStringConversionFeedback
 ::XIMSTRCONVTEXT:XIMStringConversionText
-.SP
+.sp
 .TE
 .RE
 .LP
@@ -2883,7 +2884,7 @@
 ::#x0000001:XIMPreeditEnable
 ::#x0000002:XIMPreeditDisable
 .TE
-.SP
+.sp
 .TE
 .RE
 .LP
@@ -3319,8 +3320,8 @@
 .LP
 .\"===================================================================
 .sp
-... 1.675 6.888 6.237 10.296
-... 0.000i 3.408i 4.562i 0.000i
+\^... 1.675 6.888 6.237 10.296
+\^... 0.000i 3.408i 4.562i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 3.408i 4.562i 
@@ -3410,8 +3411,8 @@
 .bp
 .LP
 .\"===================================================================
-... 1.675 6.888 6.237 10.296
-... 0.000i 3.408i 4.562i 0.000i
+\^... 1.675 6.888 6.237 10.296
+\^... 0.000i 3.408i 4.562i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 3.408i 4.562i 
@@ -3534,8 +3535,8 @@
 .LP
 .\"====================================================================
 .sp
-... 1.488 7.325 6.487 10.358
-... 0.000i 3.033i 4.999i 0.000i
+\^... 1.488 7.325 6.487 10.358
+\^... 0.000i 3.033i 4.999i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 3.033i 4.999i 
@@ -3633,8 +3634,8 @@
 <<Using the dynamic event flow>>
 .LP
 .\"====================================================================
-... 1.488 7.325 6.487 10.358
-... 0.000i 3.033i 4.999i 0.000i
+\^... 1.488 7.325 6.487 10.358
+\^... 0.000i 3.033i 4.999i 0.000i
 .nr 00 \n(.u
 .nf
 .PS 3.033i 4.999i 
diff -urwb X11R6.6/xc/doc/specs/XPRINT/xp_proto.mif release1/cvs-ro/xc/doc/specs/XPRINT/xp_proto.mif
--- X11R6.6/xc/doc/specs/XPRINT/xp_proto.mif	Thu Apr 13 09:38:35 2000
+++ release1/cvs-ro/xc/doc/specs/XPRINT/xp_proto.mif	Mon Nov 17 11:03:19 2003
@@ -66696,7 +66696,7 @@
   <Unique 940>
   <PgfTag `Body'>
   <ParaLine 
-   <String `The X Print Service selects attributes in a way that is consistent with the X Windows System, ISO/IEC '>
+   <String `The X Print Service selects attributes in a way that is consistent with the X Window System, ISO/IEC '>
   >
   <ParaLine 
    <String `10175 (ISO DPA), and POSIX 1387.4 print standards. The ISO DPA defines a number of abstract objects '>
diff -urwb X11R6.6/xc/doc/specs/XProtocol/X11.encoding release1/cvs-ro/xc/doc/specs/XProtocol/X11.encoding
--- X11R6.6/xc/doc/specs/XProtocol/X11.encoding	Thu Aug 17 12:42:23 2000
+++ release1/cvs-ro/xc/doc/specs/XProtocol/X11.encoding	Wed Nov 26 14:48:18 2003
@@ -1,4 +1,5 @@
 .\" $Xorg: X11.encoding,v 1.3 2000/08/17 19:42:23 cpqbld Exp $
+.\" $XFree86: xc/doc/specs/XProtocol/X11.encoding,v 1.2 2003/07/09 15:27:26 tsi Exp $
 \&
 .sp 1
 .ps 11
@@ -614,6 +615,8 @@
 		0	Internet
 		1	DECnet
 		2	Chaos
+		5	ServerInterpreted
+		6	InternetV6
 	1			unused
 	2	n		length of address
 	n	LISTofBYTE		address
diff -urwb X11R6.6/xc/doc/specs/XProtocol/X11.protocol release1/cvs-ro/xc/doc/specs/XProtocol/X11.protocol
--- X11R6.6/xc/doc/specs/XProtocol/X11.protocol	Thu Aug 17 12:42:23 2000
+++ release1/cvs-ro/xc/doc/specs/XProtocol/X11.protocol	Wed Nov 26 14:48:18 2003
@@ -1,4 +1,9 @@
-.\" $Xorg: X11.protocol,v 1.3 2000/08/17 19:42:23 cpqbld Exp $
+.\" $Xorg: X11.protocol,v 1.4 $
+.\"
+.\"
+.\"
+.\"
+.\" $XFree86: xc/doc/specs/XProtocol/X11.protocol,v 1.4 2003/07/09 15:27:26 tsi Exp $
 .EH ''''
 .OH ''''
 .EF ''''
@@ -12,7 +17,7 @@
 
 \s+1\fBX Consortium Standard\fP\s-1
 
-\s+1\fBX Version 11, Release 6.4\fP\s-1
+\s+1\fBX Version 11, Release 6.7\fP\s-1
 .sp 6
 .ce 5
 \s-1Robert W. Scheifler
@@ -24,10 +29,9 @@
 .nr PS 9
 .sp 8
 .LP
-X Window System is a trademark of X Consortium, Inc.
+X Window System is a trademark of The Open Group.
 .LP
-Copyright \(co 1986, 1987, 1988, 1994 
-X Consortium
+Copyright \(co 1986, 1987, 1988, 1994, 2002 The Open Group
 .LP
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the ``Software''), to deal
@@ -42,13 +46,13 @@
 THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 .LP
-Except as contained in this notice, the name of the X Consortium shall not be
+Except as contained in this notice, the name of the Open Group shall not be
 used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
+in this Software without prior written authorization from the Open Group.
 .ps 11
 .nr PS 11
 .bp
@@ -528,6 +532,7 @@
 HOST	T{
 [family: 
 .Pn { Internet , 
+.PN InternetV6 , 
 .PN DECnet , 
 .PN Chaos }
 T}
@@ -936,7 +941,7 @@
 Note that they are predefined only in the sense of having numeric values, 
 not in the sense of having required semantics.
 The core protocol imposes no semantics on these names,
-but semantics are specified in other X Consortium standards,
+but semantics are specified in other X.Org standards,
 such as the \fIInter-Client Communication Conventions Manual\fP
 and the \fIX Logical Font Description Conventions\fP.
 .LP
@@ -1440,8 +1445,8 @@
 .sM
 .IN "CreateWindow" "" "@DEF@"
 .PN CreateWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwid\fP, \fIparent\fP\^: WINDOW
 .br
 \fIclass\fP\^:
@@ -1461,7 +1466,9 @@
 \fIvalue-mask\fP\^: BITMASK
 .br
 \fIvalue-list\fP\^: LISTofVALUE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Colormap , 
@@ -1945,14 +1952,16 @@
 .sM
 .IN "ChangeWindowAttributes" "" "@DEF@"
 .PN ChangeWindowAttributes
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIvalue-mask\fP\^: BITMASK
 .br
 \fIvalue-list\fP\^: LISTofVALUE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access ,
 .PN Colormap , 
@@ -2033,14 +2042,14 @@
 .sM
 .IN "GetWindowAttributes" "" "@DEF@"
 .PN GetWindowAttributes
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 visual: VISUALID
 .br
 class:
@@ -2077,7 +2086,9 @@
 do-not-propagate-mask: SETofDEVICEEVENT
 .br
 override-redirect: BOOL
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2095,10 +2106,12 @@
 .sM
 .IN "DestroyWindow" "" "@DEF@"
 .PN DestroyWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2129,10 +2142,12 @@
 .sM
 .IN "DestroySubwindows" "" "@DEF@"
 .PN DestroySubwindows
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2146,15 +2161,17 @@
 .sM
 .IN "ChangeSaveSet" "" "@DEF@"
 .PN ChangeSaveSet
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fImode\fP\^:
 .Pn { Insert , 
 .PN Delete }
+.in -.2i
 .LP
 Errors: 
+.in +.2i
 .PN Match , 
 .PN Value ,
 .PN Window
@@ -2176,12 +2193,14 @@
 .sM
 .IN "ReparentWindow" "" "@DEF@"
 .PN ReparentWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^, \fIparent\fP\^: WINDOW
 .br
 \fIx\fP\^, \fIy\fP\^: INT16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Match ,
 .PN Window
@@ -2234,10 +2253,12 @@
 .sM
 .IN "MapWindow" "" "@DEF@"
 .PN MapWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2272,10 +2293,12 @@
 .sM
 .IN "MapSubwindows" "" "@DEF@"
 .PN MapSubwindows
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2290,10 +2313,12 @@
 .sM
 .IN "UnmapWindow" "" "@DEF@"
 .PN UnmapWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2309,10 +2334,12 @@
 .sM
 .IN "UnmapSubwindows" "" "@DEF@"
 .PN UnmapSubwindows
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2327,14 +2354,16 @@
 .sM
 .IN "ConfigureWindow" "" "@DEF@"
 .PN ConfigureWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIvalue-mask\fP\^: BITMASK
 .br
 \fIvalue-list\fP\^: LISTofVALUE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Match , 
 .PN Value ,
@@ -2675,14 +2704,16 @@
 .sM
 .IN "CirculateWindow" "" "@DEF@"
 .PN CirculateWindow
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIdirection\fP\^: 
 .Pn { RaiseLowest , 
 .PN LowerHighest }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value ,
 .PN Window
@@ -2714,14 +2745,14 @@
 .sM
 .IN "GetGeometry" "" "@DEF@"
 .PN GetGeometry
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 root: WINDOW
 .br
 depth: CARD8
@@ -2729,7 +2760,9 @@
 x, y: INT16
 .br
 width, height, border-width: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable
 .in -.2i
@@ -2751,14 +2784,14 @@
 .sM
 .IN "QueryTree" "" "@DEF@"
 .PN QueryTree
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
-.LP
 .in -.2i
+.LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 root: WINDOW
 .br
 parent: WINDOW or 
@@ -2765,7 +2798,9 @@
 .PN None
 .br
 children: LISTofWINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -2778,8 +2813,8 @@
 .sM
 .IN "InternAtom" "" "@DEF@"
 .PN InternAtom
-.in +.2i
 .LP
+.in +.2i
 \fIname\fP\^: STRING8
 .br
 \fIonly-if-exists\fP\^: BOOL
@@ -2786,11 +2821,13 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 atom: ATOM or 
 .PN None
+.in -.2i
 .LP
+.in +.2i
 Errors:
 .PN Alloc ,
 .PN Value
@@ -2811,16 +2848,18 @@
 .sM
 .IN "GetAtomName" "" "@DEF@"
 .PN GetAtomName
-.in +.2i
 .LP
+.in +.2i
 \fIatom\fP\^: ATOM
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 name: STRING8
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom
 .in -.2i
@@ -2832,8 +2871,8 @@
 .sM
 .IN "ChangeProperty" "" "@DEF@"
 .PN ChangeProperty
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIproperty\fP, \fItype\fP\^: ATOM
@@ -2846,7 +2885,9 @@
 .PN Append }
 .br
 \fIdata\fP\^: LISTofINT8 or LISTofINT16 or LISTofINT32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Atom , 
@@ -2895,12 +2936,14 @@
 .sM
 .IN "DeleteProperty" "" "@DEF@"
 .PN DeleteProperty
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIproperty\fP\^: ATOM
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom ,
 .PN Window
@@ -2916,8 +2959,8 @@
 .sM
 .IN "GetProperty" "" "@DEF@"
 .PN GetProperty
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIproperty\fP\^: ATOM
@@ -2931,8 +2974,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 type: ATOM or 
 .PN None
 .br
@@ -2941,7 +2984,9 @@
 bytes-after: CARD32
 .br
 value: LISTofINT8 or LISTofINT16 or LISTofINT32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom , 
 .PN Value ,
@@ -2997,14 +3042,16 @@
 .sM
 .IN "RotateProperties" "" "@DEF@"
 .PN RotateProperties
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIdelta\fP\^: INT16
 .br
 \fIproperties\fP\^: LISTofATOM
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom , 
 .PN Match ,
@@ -3039,16 +3086,18 @@
 .sM
 .IN "ListProperties" "" "@DEF@"
 .PN ListProperties
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 atoms: LISTofATOM
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -3060,8 +3109,8 @@
 .sM
 .IN "SetSelectionOwner" "" "@DEF@"
 .PN SetSelectionOwner
-.in +.2i
 .LP
+.in +.2i
 \fIselection\fP\^: ATOM
 .br
 \fIowner\fP\^: WINDOW or 
@@ -3069,7 +3118,9 @@
 .br
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom , 
 .PN Window
@@ -3122,17 +3173,19 @@
 .sM
 .IN "GetSelectionOwner" "" "@DEF@"
 .PN GetSelectionOwner
-.in +.2i
 .LP
+.in +.2i
 \fIselection\fP\^: ATOM
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 owner: WINDOW or 
 .PN None
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom
 .in -.2i
@@ -3148,8 +3201,8 @@
 .sM
 .IN "ConvertSelection" "" "@DEF@"
 .PN ConvertSelection
-.in +.2i
 .LP
+.in +.2i
 \fIselection\fP, \fItarget\fP\^: ATOM
 .br
 \fIproperty\fP\^: ATOM or 
@@ -3159,7 +3212,9 @@
 .br
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Atom , 
 .PN Window
@@ -3181,8 +3236,8 @@
 .sM
 .IN "SendEvent" "" "@DEF@"
 .PN SendEvent
-.in +.2i
 .LP
+.in +.2i
 \fIdestination\fP\^: WINDOW or 
 .PN PointerWindow 
 or 
@@ -3193,7 +3248,9 @@
 \fIevent-mask\fP\^: SETofEVENT
 .br
 \fIevent\fP\^: <normal-event-format>
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value ,
 .PN Window
@@ -3250,8 +3307,8 @@
 .sM
 .IN "GrabPointer" "" "@DEF@"
 .PN GrabPointer
-.in +.2i
 .LP
+.in +.2i
 \fIgrab-window\fP\^: WINDOW
 .br
 \fIowner-events\fP\^: BOOL
@@ -3273,8 +3330,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 status: 
 .Pn { Success , 
 .PN AlreadyGrabbed , 
@@ -3281,7 +3338,9 @@
 .PN Frozen , 
 .PN InvalidTime , 
 .PN NotViewable }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Cursor , 
 .PN Value ,
@@ -3380,8 +3439,8 @@
 .sM
 .IN "UngrabPointer" "" "@DEF@"
 .PN UngrabPointer
-.in +.2i
 .LP
+.in +.2i
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
 .in -.2i
@@ -3413,8 +3472,8 @@
 .sM
 .IN "GrabButton" "" "@DEF@"
 .PN GrabButton
-.in +.2i
 .LP
+.in +.2i
 \fImodifiers\fP\^: SETofKEYMASK or 
 .PN AnyModifier
 .br
@@ -3436,7 +3495,9 @@
 .br
 \fIcursor\fP\^: CURSOR or 
 .PN None
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access ,
 .PN Cursor , 
@@ -3507,8 +3568,8 @@
 .sM
 .IN "UngrabButton" "" "@DEF@"
 .PN UngrabButton
-.in +.2i
 .LP
+.in +.2i
 \fImodifiers\fP\^: SETofKEYMASK or 
 .PN AnyModifier
 .br
@@ -3516,7 +3577,9 @@
 .PN AnyButton
 .br
 \fIgrab-window\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value ,
 .PN Window
@@ -3538,8 +3601,8 @@
 .sM
 .IN "ChangeActivePointerGrab" "" "@DEF@"
 .PN ChangeActivePointerGrab
-.in +.2i
 .LP
+.in +.2i
 \fIevent-mask\fP\^: SETofPOINTEREVENT
 .br
 \fIcursor\fP\^: CURSOR or 
@@ -3547,7 +3610,9 @@
 .br
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Cursor ,
 .PN Value
@@ -3567,8 +3632,8 @@
 .sM
 .IN "GrabKeyboard" "" "@DEF@"
 .PN GrabKeyboard
-.in +.2i
 .LP
+.in +.2i
 \fIgrab-window\fP\^: WINDOW
 .br
 \fIowner-events\fP\^: BOOL
@@ -3582,8 +3647,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 status:
 .Pn { Success , 
 .PN AlreadyGrabbed , 
@@ -3590,7 +3655,9 @@
 .PN Frozen ,
 .PN InvalidTime , 
 .PN NotViewable }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value ,
 .PN Window
@@ -3671,8 +3738,8 @@
 .sM
 .IN "UngrabKeyboard" "" "@DEF@"
 .PN UngrabKeyboard
-.in +.2i
 .LP
+.in +.2i
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
 .in -.2i
@@ -3702,8 +3769,8 @@
 .sM
 .IN "GrabKey" "" "@DEF@"
 .PN GrabKey
-.in +.2i
 .LP
+.in +.2i
 \fIkey\fP\^: KEYCODE or 
 .PN AnyKey
 .br
@@ -3717,7 +3784,9 @@
 \fIpointer-mode\fP, \fIkeyboard-mode\fP\^:
 .Pn { Synchronous , 
 .PN Asynchronous }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access ,
 .PN Value , 
@@ -3789,8 +3858,8 @@
 .sM
 .IN "UngrabKey" "" "@DEF@"
 .PN UngrabKey
-.in +.2i
 .LP
+.in +.2i
 \fIkey\fP\^: KEYCODE or 
 .PN AnyKey
 .br
@@ -3798,7 +3867,9 @@
 .PN AnyModifier
 .br
 \fIgrab-window\fP\^: WINDOW
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value ,
 .PN Window
@@ -3820,8 +3891,8 @@
 .sM
 .IN "AllowEvents" "" "@DEF@"
 .PN AllowEvents
-.in +.2i
 .LP
+.in +.2i
 \fImode\fP:
 .Pn { AsyncPointer , 
 .PN SyncPointer , 
@@ -3836,7 +3907,9 @@
 .br
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -4015,14 +4088,14 @@
 .sM
 .IN "QueryPointer" "" "@DEF@"
 .PN QueryPointer
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 root: WINDOW
 .br
 child: WINDOW or 
@@ -4033,7 +4106,9 @@
 root-x, root-y, win-x, win-y: INT16
 .br
 mask: SETofKEYBUTMASK
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -4061,8 +4136,8 @@
 .sM
 .IN "GetMotionEvents" "" "@DEF@"
 .PN GetMotionEvents
-.in +.2i
 .LP
+.in +.2i
 \fIstart\fP, \fIstop\fP\^: TIMESTAMP or 
 .PN CurrentTime
 .br
@@ -4070,10 +4145,12 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 events: LISTofTIMECOORD
+.in -.2i
 .LP
+.in +.2i
 where:
 .TS
 l l.
@@ -4081,7 +4158,9 @@
 .br
 	\ time: TIMESTAMP]
 .TE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -4102,8 +4181,8 @@
 .sM
 .IN "TranslateCoordinates" "" "@DEF@"
 .PN TranslateCoordinates
-.in +.2i
 .LP
+.in +.2i
 \fIsrc-window\fP, \fIdst-window\fP: WINDOW
 .br
 \fIsrc-x\fP, \fIsrc-y\fP\^: INT16
@@ -4110,8 +4189,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 same-screen: BOOL
 .br
 child: WINDOW or 
@@ -4118,7 +4197,9 @@
 .PN None
 .br
 dst-x, dst-y: INT16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -4138,8 +4219,8 @@
 .sM
 .IN "WarpPointer" "" "@DEF@"
 .PN WarpPointer
-.in +.2i
 .LP
+.in +.2i
 \fIsrc-window\fP\^: WINDOW or 
 .PN None
 .br
@@ -4151,7 +4232,9 @@
 \fIsrc-width\fP, \fIsrc-height\fP\^: CARD16
 .br
 \fIdst-x\fP, \fIdst-y\fP\^: INT16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -4187,8 +4270,8 @@
 .sM
 .IN "SetInputFocus" "" "@DEF@"
 .PN SetInputFocus
-.in +.2i
 .LP
+.in +.2i
 \fIfocus\fP\^: WINDOW or 
 .PN PointerRoot 
 or 
@@ -4201,7 +4284,9 @@
 .br
 \fItime\fP\^: TIMESTAMP or 
 .PN CurrentTime
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Match ,
 .PN Value , 
@@ -4271,8 +4356,8 @@
 .PN GetInputFocus
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 focus: WINDOW or 
 .PN PointerRoot 
 or 
@@ -4293,8 +4378,8 @@
 .PN QueryKeymap
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 keys: LISTofCARD8
 .in -.2i
 .eM
@@ -4311,12 +4396,14 @@
 .sM
 .IN "OpenFont" "" "@DEF@"
 .PN OpenFont
-.in +.2i
 .LP
+.in +.2i
 \fIfid\fP\^: FONT
 .br
 \fIname\fP\^: STRING8
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN IDChoice , 
@@ -4335,7 +4422,7 @@
 and the ``*'' character (octal value 52) will match any number 
 of characters.
 A structured format for font names is specified in the
-X Consortium standard \fIX Logical Font Description Conventions\fP.
+X.Org standard \fIX Logical Font Description Conventions\fP.
 .LP
 Fonts are not associated with a particular screen 
 and can be stored as a component of any graphics context.
@@ -4344,10 +4431,12 @@
 .sM
 .IN "CloseFont" "" "@DEF@"
 .PN CloseFont
-.in +.2i
 .LP
+.in +.2i
 \fIfont\fP\^: FONT
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Font
 .in -.2i
@@ -4360,18 +4449,20 @@
 .sM
 .IN "QueryFont" "" "@DEF@"
 .PN QueryFont
-.in +.2i
 .LP
+.in +.2i
 \fIfont\fP\^: FONTABLE
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 font-info: FONTINFO
 .br
 char-infos: LISTofCHARINFO
+.in -.2i
 .LP
+.in +.2i
 where:
 .IP
 .TS
@@ -4401,7 +4492,9 @@
 	\ descent: INT16
 	\ attributes: CARD16]
 .TE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Font
 .in -.2i
@@ -4494,7 +4587,7 @@
 A font is not guaranteed to have any properties.
 The interpretation of the property value (for example, INT32, CARD32) 
 must be derived from \fIa priori\fP knowledge of the property.
-A basic set of font properties is specified in the X Consortium
+A basic set of font properties is specified in the X.Org
 standard \fIX Logical Font Description Conventions\fP.
 .LP
 For a character origin at [x,y], 
@@ -4539,8 +4632,8 @@
 .sM
 .IN "QueryTextExtents" "" "@DEF@"
 .PN QueryTextExtents
-.in +.2i
 .LP
+.in +.2i
 \fIfont\fP\^: FONTABLE
 .br
 \fIstring\fP\^: STRING16
@@ -4547,8 +4640,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 draw-direction:
 .Pn { LeftToRight , 
 .PN RightToLeft }
@@ -4566,7 +4659,9 @@
 overall-left: INT32
 .br
 overall-right: INT32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Font
 .in -.2i
@@ -4604,8 +4699,8 @@
 .sM
 .IN "ListFonts" "" "@DEF@"
 .PN ListFonts
-.in +.2i
 .LP
+.in +.2i
 \fIpattern\fP\^: STRING8
 .br
 \fImax-names\fP\^: CARD16
@@ -4612,8 +4707,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 names: LISTofSTRING8
 .in -.2i
 .eM
@@ -4636,27 +4731,30 @@
 .sM
 .IN "ListFontsWithInfo" "" "@DEF@"
 .PN ListFontsWithInfo
-.in +.2i
 .LP
+.in +.2i
 \fIpattern\fP\^: STRING8
 .br
 \fImax-names\fP\^: CARD16
 .in -.2i
 .LP
-   \(->+
-.in +.2i
+   \(->
 .LP
+.in +.2i
 name: STRING8
 .br
-info: FONTINFO
+info FONTINFO
 .br
 replies-hint: CARD32
+.in -.2i
 .LP
+.in +.2i
 where:
+.in -.2i
 .LP
+.in +.2i
 FONTINFO: <same type definition as in 
 .PN QueryFont >
-.in -.2i
 .eM
 .LP
 This request is similar to
@@ -4679,10 +4777,12 @@
 .sM
 .IN "SetFontPath" "" "@DEF@"
 .PN SetFontPath
-.in +.2i
 .LP
+.in +.2i
 \fIpath\fP\^: LISTofSTRING8
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -4709,8 +4809,8 @@
 .PN GetFontPath
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 path: LISTofSTRING8
 .in -.2i
 .eM
@@ -4721,8 +4821,8 @@
 .sM
 .IN "CreatePixmap" "" "@DEF@"
 .PN CreatePixmap
-.in +.2i
 .LP
+.in +.2i
 \fIpid\fP\^: PIXMAP
 .br
 \fIdrawable\fP\^: DRAWABLE
@@ -4730,7 +4830,9 @@
 \fIdepth\fP\^: CARD8
 .br
 \fIwidth\fP, \fIheight\fP\^: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Drawable , 
@@ -4757,10 +4859,12 @@
 .sM
 .IN "FreePixmap" "" "@DEF@"
 .PN FreePixmap
-.in +.2i
 .LP
+.in +.2i
 \fIpixmap\fP\^: PIXMAP
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Pixmap
 .in -.2i
@@ -4773,8 +4877,8 @@
 .sM
 .IN "CreateGC" "" "@DEF@"
 .PN CreateGC
-.in +.2i
 .LP
+.in +.2i
 \fIcid\fP\^: GCONTEXT
 .br
 \fIdrawable\fP\^: DRAWABLE
@@ -4782,7 +4886,9 @@
 \fIvalue-mask\fP\^: BITMASK
 .br
 \fIvalue-list\fP\^: LISTofVALUE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Drawable , 
@@ -5655,14 +5761,16 @@
 .sM
 .IN "ChangeGC" "" "@DEF@"
 .PN ChangeGC
-.in +.2i
 .LP
+.in +.2i
 \fIgc\fP\^: GCONTEXT
 .br
 \fIvalue-mask\fP\^: BITMASK
 .br
 \fIvalue-list\fP\^: LISTofVALUE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Font , 
@@ -5694,12 +5802,14 @@
 .sM
 .IN "CopyGC" "" "@DEF@"
 .PN CopyGC
-.in +.2i
 .LP
+.in +.2i
 \fIsrc-gc\fP, \fIdst-gc\fP\^: GCONTEXT
 .br
 \fIvalue-mask\fP\^: BITMASK
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN GContext , 
@@ -5719,14 +5829,16 @@
 .sM
 .IN "SetDashes" "" "@DEF@"
 .PN SetDashes
-.in +.2i
 .LP
+.in +.2i
 \fIgc\fP\^: GCONTEXT
 .br
 \fIdash-offset\fP\^: CARD16
 .br
 \fIdashes\fP\^: LISTofCARD8
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN GContext , 
@@ -5791,8 +5903,8 @@
 .sM
 .IN "SetClipRectangles" "" "@DEF@"
 .PN SetClipRectangles
-.in +.2i
 .LP
+.in +.2i
 \fIgc\fP\^: GCONTEXT
 .br
 \fIclip-x-origin\fP, \fIclip-y-origin\fP\^: INT16
@@ -5804,7 +5916,9 @@
 .PN YSorted , 
 .PN YXSorted ,
 .PN YXBanded }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc , 
 .PN GContext , 
@@ -5860,10 +5974,12 @@
 .sM
 .IN "FreeGC" "" "@DEF@"
 .PN FreeGC
-.in +.2i
 .LP
+.in +.2i
 \fIgc\fP\^: GCONTEXT
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN GContext
 .in -.2i
@@ -5876,8 +5992,8 @@
 .sM
 .IN "ClearArea" "" "@DEF@"
 .PN ClearArea
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -5885,7 +6001,9 @@
 \fIwidth\fP, \fIheight\fP: CARD16
 .br
 \fIexposures\fP\^: BOOL
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Match ,
 .PN Value , 
@@ -5923,8 +6041,8 @@
 .sM
 .IN "CopyArea" "" "@DEF@"
 .PN CopyArea
-.in +.2i
 .LP
+.in +.2i
 \fIsrc-drawable\fP, \fIdst-drawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -5934,7 +6052,9 @@
 \fIwidth\fP, \fIheight\fP\^: CARD16
 .br
 \fIdst-x\fP, \fIdst-y\fP\^: INT16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -5987,8 +6107,8 @@
 .sM
 .IN "CopyPlane" "" "@DEF@"
 .PN CopyPlane
-.in +.2i
 .LP
+.in +.2i
 \fIsrc-drawable\fP, \fIdst-drawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6000,7 +6120,9 @@
 \fIdst-x\fP, \fIdst-y\fP\^: INT16
 .br
 \fIbit-plane\fP\^: CARD32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6036,8 +6158,8 @@
 .sM
 .IN "PolyPoint" "" "@DEF@"
 .PN PolyPoint
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6047,7 +6169,9 @@
 .PN Previous }
 .br
 \fIpoints\fP\^: LISTofPOINT
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6071,8 +6195,8 @@
 .sM
 .IN "PolyLine" "" "@DEF@"
 .PN PolyLine
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6082,7 +6206,9 @@
 .PN Previous }
 .br
 \fIpoints\fP\^: LISTofPOINT
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6129,18 +6255,24 @@
 .sM
 .IN "PolySegment" "" "@DEF@"
 .PN PolySegment
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
 .br
 \fIsegments\fP\^: LISTofSEGMENT
+.in -.2i
 .LP
+.in +.2i
 where:
+.in -.2i
 .LP
+.in +.2i
 SEGMENT: [x1, y1, x2, y2: INT16]
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6168,14 +6300,16 @@
 .sM
 .IN "PolyRectangle" "" "@DEF@"
 .PN PolyRectangle
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
 .br
 \fIrectangles\fP\^: LISTofRECTANGLE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6211,14 +6345,16 @@
 .sM
 .IN "PolyArc" "" "@DEF@"
 .PN PolyArc
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
 .br
 \fIarcs\fP\^: LISTofARC
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6340,8 +6476,8 @@
 .sM
 .IN "FillPoly" "" "@DEF@"
 .PN FillPoly
-.in +.2i
 .LP
+.in +.2in
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6356,7 +6492,9 @@
 .PN Previous }
 .br
 \fIpoints\fP\^: LISTofPOINT
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6416,14 +6554,16 @@
 .sM
 .IN "PolyFillRectangle" "" "@DEF@"
 .PN PolyFillRectangle
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
 .br
 \fIrectangles\fP\^: LISTofRECTANGLE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6457,14 +6597,16 @@
 .sM
 .IN "PolyFillArc" "" "@DEF@"
 .PN PolyFillArc
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
 .br
 \fIarcs\fP\^: LISTofARC
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6521,8 +6663,8 @@
 .sM
 .IN "PutImage" "" "@DEF@"
 .PN PutImage
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6541,7 +6683,9 @@
 .PN ZPixmap }
 .br
 \fIdata\fP\^: LISTofBYTE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6604,8 +6748,8 @@
 .sM
 .IN "GetImage" "" "@DEF@"
 .PN GetImage
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -6620,8 +6764,8 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 depth: CARD8
 .br
 visual: VISUALID or 
@@ -6628,7 +6772,9 @@
 .PN None
 .br
 data: LISTofBYTE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN Match ,
@@ -6690,8 +6836,8 @@
 .sM
 .IN "PolyText8" "" "@DEF@"
 .PN PolyText8
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6699,7 +6845,9 @@
 \fIx\fP, \fIy\fP\^: INT16
 .br
 \fIitems\fP\^: LISTofTEXTITEM8
+.in -.2i
 .LP
+.in +.2i
 where:
 .TS
 r l.
@@ -6709,7 +6857,9 @@
 .br
 	\ string: STRING8]
 .TE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN Font ,
@@ -6751,8 +6901,8 @@
 .sM
 .IN "PolyText16" "" "@DEF@"
 .PN PolyText16
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6760,7 +6910,9 @@
 \fIx\fP, \fIy\fP\^: INT16
 .br
 \fIitems\fP\^: LISTofTEXTITEM16
+.in -.2i
 .LP
+.in +.2i
 where:
 .TS
 r l.
@@ -6770,7 +6922,9 @@
 .br
 	\ string: STRING16]
 .TE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN Font ,
@@ -6791,8 +6945,8 @@
 .sM
 .IN "ImageText8" "" "@DEF@"
 .PN ImageText8
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6800,7 +6954,9 @@
 \fIx\fP, \fIy\fP\^: INT16
 .br
 \fIstring\fP\^: STRING8
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6849,8 +7005,8 @@
 .sM
 .IN "ImageText16" "" "@DEF@"
 .PN ImageText16
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIgc\fP\^: GCONTEXT
@@ -6858,7 +7014,9 @@
 \fIx\fP, \fIy\fP\^: INT16
 .br
 \fIstring\fP\^: STRING16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN GContext , 
@@ -6878,8 +7036,8 @@
 .sM
 .IN "CreateColormap" "" "@DEF@"
 .PN CreateColormap
-.in +.2i
 .LP
+.in +.2i
 \fImid\fP\^: COLORMAP
 .br
 \fIvisual\fP\^: VISUALID
@@ -6889,7 +7047,9 @@
 \fIalloc\fP\^:
 .Pn { None , 
 .PN All }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN IDChoice , 
@@ -6959,10 +7119,12 @@
 .sM
 .IN "FreeColormap" "" "@DEF@"
 .PN FreeColormap
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Colormap
 .in -.2i
@@ -6992,10 +7154,12 @@
 .sM
 .IN "CopyColormapAndFree" "" "@DEF@"
 .PN CopyColormapAndFree
-.in +.2i
 .LP
+.in +.2i
 \fImid\fP, \fIsrc-cmap\fP\^: COLORMAP
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Colormap , 
@@ -7035,10 +7199,12 @@
 .sM
 .IN "InstallColormap" "" "@DEF@"
 .PN InstallColormap
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Colormap
 .in -.2i
@@ -7085,10 +7251,12 @@
 .sM
 .IN "UninstallColormap" "" "@DEF@"
 .PN UninstallColormap
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Colormap
 .in -.2i
@@ -7117,16 +7285,18 @@
 .sM
 .IN "ListInstalledColormaps" "" "@DEF@"
 .PN ListInstalledColormaps
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 cmaps: LISTofCOLORMAP
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Window
 .in -.2i
@@ -7143,8 +7313,8 @@
 .sM
 .IN "AllocColor" "" "@DEF@"
 .PN AllocColor
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIred\fP, \fIgreen\fP, \fIblue\fP\^: CARD16
@@ -7151,12 +7321,14 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 pixel: CARD32
 .br
 red, green, blue: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Colormap 
@@ -7173,8 +7345,8 @@
 .sM
 .IN "AllocNamedColor" "" "@DEF@"
 .PN AllocNamedColor
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIname\fP\^: STRING8
@@ -7181,14 +7353,16 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 pixel: CARD32
 .br
 exact-red, exact-green, exact-blue: CARD16
 .br
 visual-red, visual-green, visual-blue: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Colormap , 
@@ -7210,8 +7384,8 @@
 .sM
 .IN "AllocColorCells" "" "@DEF@"
 .PN AllocColorCells
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIcolors\fP, \fIplanes\fP\^: CARD16
@@ -7220,10 +7394,12 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 pixels, masks: LISTofCARD32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Colormap , 
@@ -7264,8 +7440,8 @@
 .sM
 .IN "AllocColorPlanes" "" "@DEF@"
 .PN AllocColorPlanes
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIcolors\fP, \fIreds\fP, \fIgreens\fP, \fIblues\fP\^: CARD16
@@ -7274,12 +7450,14 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 pixels: LISTofCARD32
 .br
 red-mask, green-mask, blue-mask: CARD32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Colormap , 
@@ -7323,14 +7501,16 @@
 .sM
 .IN "FreeColors" "" "@DEF@"
 .PN FreeColors
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIpixels\fP\^: LISTofCARD32
 .br
 \fIplane-mask\fP\^: CARD32
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access , 
 .PN Colormap , 
@@ -7380,12 +7560,14 @@
 .sM
 .IN "StoreColors" "" "@DEF@"
 .PN StoreColors
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIitems\fP\^: LISTofCOLORITEM
+.in -.2i
 .LP
+.in +.2i
 where:
 .TS
 l l.
@@ -7395,7 +7577,9 @@
 .br
 	\ red, green, blue: CARD16]
 .TE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access , 
 .PN Colormap , 
@@ -7424,8 +7608,8 @@
 .sM
 .IN "StoreNamedColor" "" "@DEF@"
 .PN StoreNamedColor
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIpixel\fP\^: CARD32
@@ -7433,7 +7617,9 @@
 \fIname\fP\^: STRING8
 .br
 \fIdo-red\fP, \fIdo-green\fP\^, \fIdo-blue\fP\^: BOOL
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access , 
 .PN Colormap ,
@@ -7459,8 +7645,8 @@
 .sM
 .IN "QueryColors" "" "@DEF@"
 .PN QueryColors
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIpixels\fP\^: LISTofCARD32
@@ -7467,15 +7653,20 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 colors: LISTofRGB
+.in -.2i
 .LP
+.in +.2i
 where:
+.in -.2i
 .LP
-.DS 0
+.in +.2i
 RGB: [red, green, blue: CARD16]
-.DE
+.in -.2i
+.LP
+.in +.2i
 Errors: 
 .PN Colormap , 
 .PN Value
@@ -7495,8 +7686,8 @@
 .sM
 .IN "LookupColor" "" "@DEF@"
 .PN LookupColor
-.in +.2i
 .LP
+.in +.2i
 \fIcmap\fP\^: COLORMAP
 .br
 \fIname\fP\^: STRING8
@@ -7503,12 +7694,14 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 exact-red, exact-green, exact-blue: CARD16
 .br
 visual-red, visual-green, visual-blue: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Colormap , 
 .PN Name
@@ -7526,8 +7719,8 @@
 .sM
 .IN "CreateCursor" "" "@DEF@"
 .PN CreateCursor
-.in +.2i
 .LP
+.in +.2i
 \fIcid\fP\^: CURSOR
 .br
 \fIsource\fP\^: PIXMAP
@@ -7540,7 +7733,9 @@
 \fIback-red\fP, \fIback-green\fP, \fIback-blue\fP\^: CARD16
 .br
 \fIx\fP, \fIy\fP\^: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN IDChoice , 
@@ -7590,8 +7785,8 @@
 .sM
 .IN "CreateGlyphCursor" "" "@DEF@"
 .PN CreateGlyphCursor
-.in +.2i
 .LP
+.in +.2i
 \fIcid\fP\^: CURSOR
 .br
 \fIsource-font\fP\^: FONT
@@ -7604,7 +7799,9 @@
 \fIfore-red\fP, \fIfore-green\fP, \fIfore-blue\fP\^: CARD16
 .br
 \fIback-red\fP, \fIback-green\fP, \fIback-blue\fP\^: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Font , 
@@ -7644,10 +7841,12 @@
 .sM
 .IN "FreeCursor" "" "@DEF@"
 .PN FreeCursor
-.in +.2i
 .LP
+.in +.2i
 \fIcursor\fP\^: CURSOR
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Cursor
 .in -.2i
@@ -7660,14 +7859,16 @@
 .sM
 .IN "RecolorCursor" "" "@DEF@"
 .PN RecolorCursor
-.in +.2i
 .LP
+.in +.2i
 \fIcursor\fP\^: CURSOR
 .br
 \fIfore-red\fP, \fIfore-green\fP, \fIfore-blue\fP\^: CARD16
 .br
 \fIback-red\fP, \fIback-green\fP, \fIback-blue\fP\^: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Cursor
 .in -.2i
@@ -7681,8 +7882,8 @@
 .sM
 .IN "QueryBestSize" "" "@DEF@"
 .PN QueryBestSize
-.in +.2i
 .LP
+.in +.2i
 \fIclass\fP: 
 .Pn { Cursor , 
 .PN Tile , 
@@ -7694,10 +7895,12 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 width, height: CARD16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Drawable , 
 .PN Match ,
@@ -7738,14 +7941,14 @@
 .sM
 .IN "QueryExtension" "" "@DEF@"
 .PN QueryExtension
-.in +.2i
 .LP
+.in +.2i
 \fIname\fP\^: STRING8
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 present: BOOL
 .br
 major-opcode: CARD8
@@ -7779,8 +7982,8 @@
 .PN ListExtensions
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 names: LISTofSTRING8
 .in -.2i
 .eM
@@ -7790,8 +7993,8 @@
 .sM
 .IN "SetModifierMapping" "" "@DEF@"
 .PN SetModifierMapping
-.in +.2i
 .LP
+.in +.2i
 \fIkeycodes-per-modifier\fP\^: CARD8
 .br
 \fIkeycodes\fP\^: LISTofKEYCODE
@@ -7798,13 +8001,15 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 status: 
 .Pn { Success , 
 .PN Busy , 
 .PN Failed }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Value
@@ -7870,8 +8075,8 @@
 .PN GetModifierMapping
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 keycodes-per-modifier: CARD8
 .br
 keycodes: LISTofKEYCODE
@@ -7903,14 +8108,16 @@
 .sM
 .IN "ChangeKeyboardMapping" "" "@DEF@"
 .PN ChangeKeyboardMapping
-.in +.2i
 .LP
+.in +.2i
 \fIfirst-keycode\fP\^: KEYCODE
 .br
 \fIkeysyms-per-keycode\fP\^: CARD8
 .br
 \fIkeysyms\fP\^: LISTofKEYSYM
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Alloc ,
 .PN Value
@@ -7963,8 +8170,8 @@
 .sM
 .IN "GetKeyboardMapping" "" "@DEF@"
 .PN GetKeyboardMapping
-.in +.2i
 .LP
+.in +.2i
 \fIfirst-keycode\fP\^: KEYCODE
 .br
 \fIcount\fP\^: CARD8
@@ -7971,12 +8178,14 @@
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 keysyms-per-keycode: CARD8
 .br
 keysyms: LISTofKEYSYM
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8018,12 +8227,14 @@
 .sM
 .IN "ChangeKeyboardControl" "" "@DEF@"
 .PN ChangeKeyboardControl
-.in +.2i
 .LP
+.in +.2i
 \fIvalue-mask\fP\^: BITMASK
 .br
 \fIvalue-list\fP\^: LISTofVALUE
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Match , 
 .PN Value
@@ -8168,8 +8379,8 @@
 .PN GetKeyboardControl
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 key-click-percent: CARD8
 .br
 bell-percent: CARD8
@@ -8202,10 +8413,12 @@
 .sM
 .IN "Bell" "" "@DEF@"
 .PN Bell
-.in +.2i
 .LP
+.in +.2i
 \fIpercent\fP\^: INT8
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8230,18 +8443,20 @@
 .sM
 .IN "SetPointerMapping" "" "@DEF@"
 .PN SetPointerMapping
-.in +.2i
 .LP
+.in +.2i
 \fImap\fP\^: LISTofCARD8
 .in -.2i
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 status: 
 .Pn { Success , 
 .PN Busy }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8280,8 +8495,8 @@
 .PN GetPointerMapping
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 map: LISTofCARD8
 .in -.2i
 .eM
@@ -8296,14 +8511,16 @@
 .sM
 .IN "ChangePointerControl" "" "@DEF@"
 .PN ChangePointerControl
-.in +.2i
 .LP
+.in +.2i
 \fIdo-acceleration\fP, \fIdo-threshold\fP\^: BOOL
 .br
 \fIacceleration-numerator\fP, \fIacceleration-denominator\fP\^: INT16
 .br
 \fIthreshold\fP\^: INT16
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8327,8 +8544,8 @@
 .PN GetPointerControl
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 acceleration-numerator, acceleration-denominator: CARD16
 .br
 threshold: CARD16
@@ -8341,8 +8558,8 @@
 .sM
 .IN "SetScreenSaver" "" "@DEF@"
 .PN SetScreenSaver
-.in +.2i
 .LP
+.in +.2i
 \fItimeout\fP, \fIinterval\fP\^: INT16
 .br
 \fIprefer-blanking\fP\^: 
@@ -8354,7 +8571,9 @@
 .Pn { Yes , 
 .PN No , 
 .PN Default }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8401,8 +8620,8 @@
 .PN GetScreenSaver
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 timeout, interval: CARD16
 .br
 prefer-blanking: 
@@ -8421,12 +8640,14 @@
 .sM
 .IN "ForceScreenSaver" "" "@DEF@"
 .PN ForceScreenSaver
-.in +.2i
 .LP
+.in +.2i
 \fImode\fP\^: 
 .Pn { Activate , 
 .PN Reset }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8448,14 +8669,16 @@
 .sM
 .IN "ChangeHosts" "" "@DEF@"
 .PN ChangeHosts
-.in +.2i
 .LP
+.in +.2i
 \fImode\fP\^: 
 .Pn { Insert , 
 .PN Delete }
 .br
 \fIhost\fP: HOST
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access , 
 .PN Value
@@ -8489,16 +8712,13 @@
 the address must be four bytes long.
 The address bytes are in standard IP order;
 the server performs no automatic swapping on the address bytes.
-For a Class A address, 
-the network number is the first byte in the address, 
-and the host number is the remaining three bytes, most significant byte first.
-For a Class B address, 
-the network number is the first two bytes and the host number
-is the last two bytes, each most significant byte first.
-For a Class C address, 
-the network number is the first three bytes, most significant byte first, 
-and the last byte is the host number.
+The Internet family supports IP version 4 addresses only.
 .LP
+For the InternetV6 family, the address must be sixteen bytes
+long.  The address bytes are in standard IP order; the
+server performs no automatic swapping on the address bytes.
+The InternetV6 family supports IP version 6 addresses only.
+.LP
 For the DECnet family, 
 the server performs no automatic swapping on the address bytes.
 A Phase IV address is two bytes long:
@@ -8512,6 +8732,20 @@
 The host number is always the first byte in the address, 
 and the subnet number is always the second byte.
 The server performs no automatic swapping on the address bytes.
+.LP
+The ServerInterpreted family may be of any length up to 65535 bytes.
+The address is simply a string of characters which is interpreted by
+the server.  The server performs no automatic swapping on the address bytes.
+.LP
+Use of a host address in the ChangeHosts request is deprecated.  It is
+only useful when a host has a unique, constant address, a requirement
+that is increasingly unmet as sites adopt dynamically assigned
+addresses, network address translation gateways, IPv6 link local
+addresses, and various other technologies.  It also assumes all users of
+a host share equivalent access rights, and as such has never been
+suitable for many multi-user machine environments.  Instead, more
+secure forms of authentication, such as those based on shared secrets
+or public key encryption, are recommended.
 .sp
 .LP
 .sM
@@ -8519,8 +8753,8 @@
 .PN ListHosts
 .LP
    \(->
-.in +.2i
 .LP
+.in +.2i
 mode: 
 .Pn { Enabled , 
 .PN Disabled }
@@ -8539,12 +8773,14 @@
 .sM
 .IN "SetAccessControl" "" "@DEF@"
 .PN SetAccessControl
-.in +.2i
 .LP
+.in +.2i
 \fImode\fP\^: 
 .Pn { Enable , 
 .PN Disable }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Access ,
 .PN Value
@@ -8564,13 +8800,15 @@
 .sM
 .IN "SetCloseDownMode" "" "@DEF@"
 .PN SetCloseDownMode
-.in +.2i
 .LP
+.in +.2i
 \fImode\fP: 
 .Pn { Destroy , 
 .PN RetainPermanent , 
 .PN RetainTemporary }
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8587,11 +8825,13 @@
 .sM
 .IN "KillClient" "" "@DEF@"
 .PN KillClient
-.in +.2i
 .LP
+.in +.2i
 \fIresource\fP\^: CARD32 or 
 .PN AllTemporary
+.in -.2i
 .LP
+.in +.2i
 Errors: 
 .PN Value
 .in -.2i
@@ -8795,8 +9035,8 @@
 .br
 .IN "MotionNotify" "" "@DEF@"
 .PN MotionNotify
-.in +.2i
 .LP
+.in +.2i
 \fIroot\fP, \fIevent\fP\^: WINDOW
 .br
 \fIchild\fP\^: WINDOW or 
@@ -8925,8 +9165,8 @@
 .br
 .IN "LeaveNotify" "" "@DEF@"
 .PN LeaveNotify
-.in +.2i
 .LP
+.in +.2i
 \fIroot\fP, \fIevent\fP\^: WINDOW
 .br
 \fIchild\fP\^: WINDOW or 
@@ -9160,8 +9400,8 @@
 .br
 .IN "FocusOut" "" "@DEF@"
 .PN FocusOut
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP\^: WINDOW
 .br
 \fImode\fP\^:
@@ -9484,8 +9724,8 @@
 .sM
 .IN "KeymapNotify" "" "@DEF@"
 .PN KeymapNotify
-.in +.2i
 .LP
+.in +.2i
 \fIkeys\fP\^: LISTofCARD8
 .in -.2i
 .eM
@@ -9503,8 +9743,8 @@
 .sM
 .IN "Expose" "" "@DEF@"
 .PN Expose
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP, \fIwidth\fP, \fIheight\fP\^: CARD16
@@ -9581,8 +9821,8 @@
 .sM
 .IN "GraphicsExposure" "" "@DEF@"
 .PN GraphicsExposure
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fIx\fP, \fIy\fP, \fIwidth\fP, \fIheight\fP\^: CARD16
@@ -9625,8 +9865,8 @@
 .sM
 .IN "NoExposure" "" "@DEF@"
 .PN NoExposure
-.in +.2i
 .LP
+.in +.2i
 \fIdrawable\fP\^: DRAWABLE
 .br
 \fImajor-opcode\fP\^: CARD8
@@ -9655,8 +9895,8 @@
 .sM
 .IN "VisibilityNotify" "" "@DEF@"
 .PN VisibilityNotify
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIstate\fP\^: 
@@ -9726,8 +9966,8 @@
 .sM
 .IN "CreateNotify" "" "@DEF@"
 .PN CreateNotify
-.in +.2i
 .LP
+.in +.2i
 \fIparent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -9750,8 +9990,8 @@
 .sM
 .IN "DestroyNotify" "" "@DEF@"
 .PN DestroyNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP\^: WINDOW
 .in -.2i
 .eM
@@ -9778,8 +10018,8 @@
 .sM
 .IN "UnmapNotify" "" "@DEF@"
 .PN UnmapNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIfrom-configure\fP\^: BOOL
@@ -9804,8 +10044,8 @@
 .sM
 .IN "MapNotify" "" "@DEF@"
 .PN MapNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIoverride-redirect\fP\^: BOOL
@@ -9826,8 +10066,8 @@
 .sM
 .IN "MapRequest" "" "@DEF@"
 .PN MapRequest
-.in +.2i
 .LP
+.in +.2i
 \fIparent\fP, \fIwindow\fP\^: WINDOW
 .in -.2i
 .eM
@@ -9843,8 +10083,8 @@
 .sM
 .IN "ReparentNotify" "" "@DEF@"
 .PN ReparentNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP, \fIparent\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -9870,8 +10110,8 @@
 .sM
 .IN "ConfigureNotify" "" "@DEF@"
 .PN ConfigureNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -9908,8 +10148,8 @@
 .sM
 .IN "GravityNotify" "" "@DEF@"
 .PN GravityNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -9932,8 +10172,8 @@
 .sM
 .IN "ResizeRequest" "" "@DEF@"
 .PN ResizeRequest
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIwidth\fP, \fIheight\fP\^: CARD16
@@ -9952,8 +10192,8 @@
 .sM
 .IN "ConfigureRequest" "" "@DEF@"
 .PN ConfigureRequest
-.in +.2i
 .LP
+.in +.2i
 \fIparent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIx\fP, \fIy\fP\^: INT16
@@ -9994,8 +10234,8 @@
 .sM
 .IN "CirculateNotify" "" "@DEF@"
 .PN CirculateNotify
-.in +.2i
 .LP
+.in +.2i
 \fIevent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIplace\fP\^: 
@@ -10023,8 +10263,8 @@
 .sM
 .IN "CirculateRequest" "" "@DEF@"
 .PN CirculateRequest
-.in +.2i
 .LP
+.in +.2i
 \fIparent\fP, \fIwindow\fP\^: WINDOW
 .br
 \fIplace\fP: 
@@ -10045,8 +10285,8 @@
 .sM
 .IN "PropertyNotify" "" "@DEF@"
 .PN PropertyNotify
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIatom\fP\^: ATOM
@@ -10086,8 +10326,8 @@
 .sM
 .IN "SelectionClear" "" "@DEF@"
 .PN SelectionClear
-.in +.2i
 .LP
+.in +.2i
 \fIowner\fP\^: WINDOW
 .br
 \fIselection\fP\^: ATOM
@@ -10108,8 +10348,8 @@
 .sM
 .IN "SelectionRequest" "" "@DEF@"
 .PN SelectionRequest
-.in +.2i
 .LP
+.in +.2i
 \fIowner\fP\^: WINDOW
 .br
 \fIselection\fP\^: ATOM
@@ -10141,7 +10381,7 @@
 and send a
 .PN SelectionNotify 
 back to the requestor.
-A complete specification for using selections is given in the X Consortium
+A complete specification for using selections is given in the X.Org
 standard \fIInter-Client Communication Conventions Manual\fP.
 .sp
 .LP
@@ -10148,8 +10388,8 @@
 .sM
 .IN "SelectionNotify" "" "@DEF@"
 .PN SelectionNotify
-.in +.2i
 .LP
+.in +.2i
 \fIrequestor\fP\^: WINDOW
 .br
 \fIselection\fP, \fItarget\fP\^: ATOM
@@ -10177,8 +10417,8 @@
 .sM
 .IN "ColormapNotify" "" "@DEF@"
 .PN ColormapNotify
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fIcolormap\fP\^: COLORMAP or 
@@ -10208,8 +10448,8 @@
 .sM
 .IN "MappingNotify" "" "@DEF@"
 .PN MappingNotify
-.in +.2i
 .LP
+.in +.2i
 \fIrequest\fP: 
 .Pn { Modifier , 
 .PN Keyboard , 
@@ -10240,8 +10480,8 @@
 .sM
 .IN "ClientMessage" "" "@DEF@"
 .PN ClientMessage
-.in +.2i
 .LP
+.in +.2i
 \fIwindow\fP\^: WINDOW
 .br
 \fItype\fP\^: ATOM
diff -urwb X11R6.6/xc/doc/specs/Xaw/AsciiSource release1/cvs-ro/xc/doc/specs/Xaw/AsciiSource
--- X11R6.6/xc/doc/specs/Xaw/AsciiSource	Thu Aug 17 12:42:26 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/AsciiSource	Mon Nov 17 11:03:19 2003
@@ -69,7 +69,7 @@
 it is not updated as the user types input into the text buffer.
 This copy is freed upon the next call to XtGetValues to 
 retrieve the string resource; however, to conserve memory,
-there is a convenience routine, \fBXawAsciiSrcFreeString\fP, allowing the
+there is a convenience routine, \fBXawAsciiSourceFreeString\fP, allowing the
 application programmer to direct the widget to free the copy.
 .LP
 When the resource \fBuseStringInPlace\fP is true and the AsciiSrc object
@@ -135,7 +135,7 @@
 requested with a call to \fBXtGetValues\fP.  This memory is allocated on the
 fly, and remains valid until the next time a string needs to be allocated.
 You may save memory by freeing this string as soon as you are done
-with it by calling \fBXawAsciiSrcFreeString\fP.
+with it by calling \fBXawAsciiSourceFreeString\fP.
 .FD 0
 void XawAsciiSourceFreeString(\fIw\fP)
 .IN "XawAsciiSourceFreeString" "" @DEF@
diff -urwb X11R6.6/xc/doc/specs/Xaw/AsciiText release1/cvs-ro/xc/doc/specs/Xaw/AsciiText
--- X11R6.6/xc/doc/specs/Xaw/AsciiText	Thu Aug 17 12:42:26 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/AsciiText	Mon Nov 17 11:03:19 2003
@@ -25,7 +25,7 @@
 .sp 1
 .LP
 For the ease of internationalization, the AsciiText widget class name has not
-been changed, although it is actually able support non-ASCII locales.
+been changed, although it is actually able to support non-ASCII locales.
 The AsciiText widget is really a collection of smaller parts.  It
 includes the Text widget itself, a ``Source'' (which supports memory management),
 and a ``Sink'' (which handles the display).  There are currently two supported
diff -urwb X11R6.6/xc/doc/specs/Xaw/CH4.intro release1/cvs-ro/xc/doc/specs/Xaw/CH4.intro
--- X11R6.6/xc/doc/specs/Xaw/CH4.intro	Thu Apr 13 09:38:40 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/CH4.intro	Mon Nov 17 11:03:19 2003
@@ -35,7 +35,7 @@
 used to build menus.
 .sp
 .IP \fBSme\fP 1i
-.IN "Sme object" "
+.IN "Sme object" ""
 The base class of all menu entries.  It may be used as a menu entry
 itself to provide blank space in a menu.  ``Sme'' means ``Simple Menu
 Entry.''
Only in release1/cvs-ro/xc/doc/specs/Xaw: CVS
diff -urwb X11R6.6/xc/doc/specs/Xaw/Form release1/cvs-ro/xc/doc/specs/Xaw/Form
--- X11R6.6/xc/doc/specs/Xaw/Form	Thu Aug 17 12:42:26 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/Form	Mon Nov 17 11:03:19 2003
@@ -40,7 +40,7 @@
 .NH 3
 Resources
 .LP
-When creating an Form widget instance, the following resources are
+When creating a Form widget instance, the following resources are
 retrieved from the argument list or from the resource database:
 .LP
 .IN "Form widget" "resources"
diff -urwb X11R6.6/xc/doc/specs/Xaw/Text release1/cvs-ro/xc/doc/specs/Xaw/Text
--- X11R6.6/xc/doc/specs/Xaw/Text	Thu Aug 17 12:42:28 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/Text	Mon Nov 17 11:03:19 2003
@@ -31,7 +31,7 @@
 .NH 3
 Resources
 .LP
-When creating an Text widget instance, the following resources are
+When creating a Text widget instance, the following resources are
 retrieved from the argument list or from the resource database:
 .LP
 .IN "Text widget" "resources"
diff -urwb X11R6.6/xc/doc/specs/Xaw/TextSource release1/cvs-ro/xc/doc/specs/Xaw/TextSource
--- X11R6.6/xc/doc/specs/Xaw/TextSource	Thu Aug 17 12:42:28 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/TextSource	Mon Nov 17 11:03:19 2003
@@ -122,8 +122,9 @@
 Specifies the maximum number of characters the TextSrc should
 return to the application in \fItext_return\fP.
 .LP
-This function returns the actual number of characters read from the
-text buffer.  The function is not required to return \fIlength\fP
+This function returns the text position immediately after the
+characters read from the
+text buffer.  The function is not required to read \fIlength\fP
 characters if that many characters are in the file, it may break at
 any point that is convenient to the internal structure of the
 source.  It may take several calls to \fBRead\fP before the desired
diff -urwb X11R6.6/xc/doc/specs/Xaw/Toggle release1/cvs-ro/xc/doc/specs/Xaw/Toggle
--- X11R6.6/xc/doc/specs/Xaw/Toggle	Thu Aug 17 12:42:29 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/Toggle	Mon Nov 17 11:03:19 2003
@@ -46,7 +46,7 @@
 .IN "Radio groups" ""
 .IN "Radio button" ""
 .IN "Toggle widget" "used in radio groups"
-list of at least two Toggle widget in which no more than one Toggle may 
+list of at least two Toggle widgets in which no more than one Toggle may 
 be set at
 any time.  A radio group is identified by the widget ID of any one of
 its members.  The convenience routine \fBXawToggleGetCurrent\fP will
diff -urwb X11R6.6/xc/doc/specs/Xaw/strings.xaw release1/cvs-ro/xc/doc/specs/Xaw/strings.xaw
--- X11R6.6/xc/doc/specs/Xaw/strings.xaw	Thu Aug 17 12:42:29 2000
+++ release1/cvs-ro/xc/doc/specs/Xaw/strings.xaw	Mon Nov 17 11:03:19 2003
@@ -227,7 +227,7 @@
 .el .IP label 1.5i
 Specifies the text string to be displayed in the widget's window
 if no bitmap is specified.  The default is the name of this widget.
-Irregardless of the value of \fBencoding\fP or \fBinternational\fP,
+Regardless of the value of \fBencoding\fP or \fBinternational\fP,
 a single newline character (1 byte) will cause a line break.
 ..
 .de Ll \" Label leftBitmap
@@ -670,7 +670,7 @@
 When the \fBstring\fP resource is queried, using \fBXtGetValues\fP, and
 \fBuseStringInPlace\fP is false, the value returned is valid until
 the next time the \fBstring\fP resource is queried, or until the application 
-writer calls \fBXawAsciiSrcFreeString\fP.  If \fBuseStringInPlace\fP is
+writer calls \fBXawAsciiSourceFreeString\fP.  If \fBuseStringInPlace\fP is
 true, a pointer to the actual string is returned.  See also section 5.6.
 ..
 .de Ot \" AsciiSrc type
diff -urwb X11R6.6/xc/doc/specs/Xext/DPMS.ms release1/cvs-ro/xc/doc/specs/Xext/DPMS.ms
--- X11R6.6/xc/doc/specs/Xext/DPMS.ms	Thu Apr 13 09:38:42 2000
+++ release1/cvs-ro/xc/doc/specs/Xext/DPMS.ms	Mon Nov 17 11:03:19 2003
@@ -1,4 +1,5 @@
 .\" Use -ms and macros.t
+.\" $XFree86: xc/doc/specs/Xext/DPMS.ms,v 1.2 1998/12/20 11:56:39 dawes Exp $
 .EH ''''
 .OH ''''
 .EF ''''
@@ -382,6 +383,7 @@
 .ta .2i .5i 1.5i 2.5i
 .R
  =>
+.De
 .LP
 .Ds 0
 .TA .2i .5i 1.5i 2.5i
@@ -397,6 +399,7 @@
 .ta .2i .5i 1.5i 2.5i
 .R
  =>
+.De
 .LP
 .Ds 0
 .TA .2i .5i 1.5i 2.5i
@@ -412,6 +415,7 @@
 .ta .2i .5i 1.5i 2.5i
 .R
  =>
+.De
 .LP
 .Ds 0
 .TA .2i .5i 1.5i 2.5i
diff -urwb X11R6.6/xc/doc/specs/Xext/buffer.ms release1/cvs-ro/xc/doc/specs/Xext/buffer.ms
--- X11R6.6/xc/doc/specs/Xext/buffer.ms	Thu Aug 17 12:42:31 2000
+++ release1/cvs-ro/xc/doc/specs/Xext/buffer.ms	Mon Nov 17 11:03:19 2003
@@ -1,4 +1,9 @@
 .\" $Xorg: buffer.ms,v 1.3 2000/08/17 19:42:31 cpqbld Exp $
+.\"
+.\"
+.\"
+.\"
+.\" $XFree86: xc/doc/specs/Xext/buffer.ms,v 1.4 2001/01/17 16:57:43 dawes Exp $
 .TL
 Extending X for Double-Buffering, Multi-Buffering, and Stereo
 .AU
@@ -99,7 +104,7 @@
 .LP
 Normal windows are created using the standard \fBCreateWindow\fP request:
 .DS
-.ft 8
+.\" .ft 8
 CreateWindow
 	parent          : WINDOW
 	w_id            : WINDOW
@@ -110,7 +115,7 @@
 	border_width    : INT16
 	value_mask      : BITMASK
 	value_list      : LISTofVALUE
-.ft
+.\" .ft
 .DE
 .LP
 This request allocates a set of window attributes and
@@ -198,7 +203,7 @@
 The new request, \fBCreateImageBuffers\fP, creates a group of
 image buffers and associates them with a normal X window:
 .DS
-.ft 8
+.\" .ft 8
 CreateImageBuffers
 	w_id           : WINDOW
 	buffers        : LISTofBUFFER
@@ -208,7 +213,7 @@
 	number_buffers : CARD16
 
 	(Errors: Window, IDChoice, Value)
-.ft
+.\" .ft
 .DE
 One image buffer will be associated with each ID passed in \fIbuffers\fP.
 The first buffer of the list is referred to as buffer[0], the next
@@ -309,7 +314,7 @@
 .LP
 To display an image buffer the following request can be used:
 .DS
-.ft 8
+.\" .ft 8
 DisplayImageBuffers
 	buffers         : LISTofBUFFER
 	min_delay       : CARD16
@@ -316,7 +321,7 @@
 	max_delay       : CARD16
 
 	(Errors: Buffer, Match)
-.ft
+.\" .ft
 .DE
 The image buffers listed will become displayed as simultaneously
 as possible and the update action, bound at \fBCreateImageBuffers\fP
@@ -389,7 +394,7 @@
 To explicitly clear a rectangular area of an image buffer to
 the window background, the following request can be used:
 .DS
-.ft 8
+.\" .ft 8
 ClearImageBufferArea
 	buffer          : BUFFER
 	x, y            : INT16
@@ -397,7 +402,7 @@
 	exposures       : BOOL
 
 	(Errors: Buffer, Value)
-.ft P
+.\" .ft P
 .DE
 .LP
 Like the X \fBClearArea\fP request, \fIx\fP and \fIy\fP are relative to
@@ -415,12 +420,12 @@
 The group of image buffers allocated by a \fBCreateImageBuffers\fP
 request can be destroyed with the following request:
 .DS
-.ft 8
+.\" .ft 8
 DestroyImageBuffers
 	w_id		: WINDOW
 
 	(Error: Window)
-.ft
+.\" .ft
 .DE
 .LP
 The association between the buffer ID's and their corresponding
@@ -433,13 +438,13 @@
 The following attributes will be associated with each window that
 is multi-buffered:
 .DS
-.ft 8
+.\" .ft 8
 	displayed_buffer : CARD16
 	update_action    : {Undefined,Background,Untouched,Copied}
 	update_hint      : {Frequent,Intermittent,Static}
 	window_mode      : {Mono,Stereo}
 	buffers          : LISTofBUFFER
-.ft
+.\" .ft
 .DE
 .LP
 \fIdisplayed_buffer\fP is set to the \fIindex\fP of the currently
@@ -451,7 +456,7 @@
 in the \fIbuffers\fP list.
 The above attributes can be queried with the following request:
 .DS
-.ft 8
+.\" .ft 8
 GetMultiBufferAttributes
 	w_id             : WINDOW
 	=>
@@ -462,7 +467,7 @@
 	buffers          : LISTofBUFFER
 
 	(Errors: Window, Access, Value)
-.ft
+.\" .ft
 .DE
 .LP
 If the window is not multi-buffered, a \fBAccess\fP error will be generated.
@@ -471,7 +476,7 @@
 to set this attribute, a generic set request is provided to
 allow for future expansion:
 .DS
-.ft 8
+.\" .ft 8
 SetMultiBufferAttributes
 	w_id            : WINDOW
 	value_mask      : BITMASK
@@ -478,7 +483,7 @@
 	value_list      : LISTofVALUE
 
 	(Errors: Window, Match, Value)
-.ft
+.\" .ft
 .DE
 .LP
 If the window is not multi-buffered, a \fBMatch\fP error will be generated.
@@ -485,12 +490,12 @@
 The following attributes are maintained for each buffer of a
 multi-buffered window:
 .DS
-.ft 8
+.\" .ft 8
 	window           : WINDOW
 	event_mask       : SETofEVENT
 	index            : CARD16
 	side             : {Mono,Left,Right}
-.ft
+.\" .ft
 .DE
 .LP
 \fIwindow\fP indicates the window this buffer is associated with.
@@ -503,7 +508,7 @@
 For non-stereo windows, this attribute will be set to \fIMono\fP.
 These attributes can be queried with the following request:
 .DS
-.ft 8
+.\" .ft 8
 GetBufferAttributes
 	buffer          : BUFFER
 	=>
@@ -513,7 +518,7 @@
 	side             : {Mono,Left,Right}
 
 	(Errors: Buffer, Value)
-.ft
+.\" .ft
 .DE
 .LP
 The only buffer attribute that can be explicitly set 
@@ -527,7 +532,7 @@
 to set this attribute, a generic set request is provided to
 allow for future expansion:
 .DS
-.ft 8
+.\" .ft 8
 SetBufferAttributes
 	buffer          : BUFFER
 	value_mask      : BITMASK
@@ -534,7 +539,7 @@
 	value_list      : LISTofVALUE
 
 	(Errors: Buffer, Value)
-.ft
+.\" .ft
 .DE
 .LP
 Clients may want to query the server about basic multi-buffer
@@ -543,17 +548,17 @@
 that would most likely be read once by Xlib for each screen, and used as a data base for
 other Xlib queries:
 .DS
-.ft 8
+.\" .ft 8
 GetBufferInfo
 	root            : WINDOW
 	=>
 	info            : LISTofSCREEN_INFO
-.ft
+.\" .ft
 .DE
 .LP
 Where \fBSCREEN_INFO\fP and \fBBUFFER_INFO\fP are defined as:
 .DS
-.ft 8
+.\" .ft 8
 
 	SCREEN_INFO     : [ normal_info : LISTofBUFFER_INFO,
 	                    stereo_info : LISTofBUFFER_INFO ]
@@ -561,7 +566,7 @@
 	BUFFER_INFO     : [ visual      : VISUALID, 
 	                    max_buffers : CARD16,
 	                    depth       : CARD8 ]
-.ft
+.\" .ft
 .DE
 .LP
 Information regarding multi-buffering of normal (mono) windows
@@ -576,12 +581,12 @@
 The following request returns the major and minor version numbers
 of this extension:
 .DS
-.ft 8
+.\" .ft 8
 GetBufferVersion
 	=>
 	major_number    : CARD8
 	minor_number    : CARD8
-.ft
+.\" .ft
 .DE
 .LP
 The version numbers are an escape hatch in case future revisions of
@@ -620,11 +625,11 @@
 to stop drawing until some portion of the buffer is
 writable, the following event is added:
 .DS
-.ft 8
+.\" .ft 8
 ClobberNotify
 	buffer         :  BUFFER
 	state          : {Unclobbered,PartiallyClobbered,FullyClobbered}
-.ft
+.\" .ft
 .DE
 .LP
 The \fBClobberNotify\fP event is reported to clients selecting
@@ -653,10 +658,10 @@
 soon as a buffer becomes available.  To support this,
 the following event is added:
 .DS
-.ft 8
+.\" .ft 8
 UpdateNotify
 	buffer         :  BUFFER
-.ft
+.\" .ft
 .DE
 .LP
 The \fBUpdateNotify\fP event is reported to clients selecting
@@ -678,7 +683,7 @@
 The following pseudo-code fragment illustrates how to create and display
 a double-buffered image:
 .DS
-.ft 8
+.\" .ft 8
 /*
  * Create a normal window
  */
@@ -716,7 +721,7 @@
  * contents of last displayed image buffer.
  */
 DestroyImageBuffers( W )
-.ft
+.\" .ft
 .DE
 .bp
 .SH
@@ -727,7 +732,7 @@
 a multi-buffered image and cycle through the images to
 simulate a movie loop:
 .DS
-.ft 8
+.\" .ft 8
 /*
  * Create a normal window
  */
@@ -760,7 +765,7 @@
 	foreach frame
 		DisplayImageBuffers( [B(i)], 100, 0 )
 }
-.ft
+.\" .ft
 .DE
 .bp
 .SH
@@ -782,7 +787,7 @@
 buffer and a right image buffer.  To create a stereo window,
 a client makes the following request:
 .DS
-.ft 8
+.\" .ft 8
 CreateStereoWindow
 	parent          : WINDOW
 	w_id            : WINDOW
@@ -797,7 +802,7 @@
 
 	(Errors: Alloc, Color, Cursor, Match,
 	         Pixmap, Value, Window)
-.ft
+.\" .ft
 .DE
 .LP
 This request, modeled after the \fBCreateWindow\fP request,
@@ -853,7 +858,7 @@
 The following shows how to create and display a single-buffered
 stereo image:
 .DS
-.ft 8
+.\" .ft 8
 /*
  * Create the stereo window, map it the screen,
  * and draw the left and right images
@@ -863,7 +868,7 @@
 MapWindow( W )
 
 <draw picture using L,R>
-.ft
+.\" .ft
 .DE
 .KE
 .bp
@@ -896,7 +901,7 @@
 .LP
 To double-buffer a stereo window:
 .DS
-.ft 8
+.\" .ft 8
 /*
  * Create stereo window and map it to the screen
  */
@@ -927,7 +932,7 @@
 	<draw picture using L0,R0>
 	DisplayImageBuffers( [L0], 100, 0 )
 }
-.ft
+.\" .ft
 .DE
 .bp
 .SH
@@ -935,7 +940,7 @@
 .LP
 To cycle through \fIN\fP stereo images:
 .DS
-.ft 8
+.\" .ft 8
 /*
  * Create stereo window
  */
@@ -968,7 +973,7 @@
 	foreach stereo image
 		DisplayImageBuffers( [L(i)], 100, 0 )
 }
-.ft
+.\" .ft
 .DE
 .bp
 .SH
diff -urwb X11R6.6/xc/doc/specs/Xext/evi.ms release1/cvs-ro/xc/doc/specs/Xext/evi.ms
--- X11R6.6/xc/doc/specs/Xext/evi.ms	Thu Aug 17 12:42:31 2000
+++ release1/cvs-ro/xc/doc/specs/Xext/evi.ms	Mon Nov 17 11:03:19 2003
@@ -1,5 +1,10 @@
 .\" Use -ms and macros.t
 .\" $Xorg: evi.ms,v 1.3 2000/08/17 19:42:31 cpqbld Exp $
+.\"
+.\"
+.\"
+.\"
+.\" $XFree86: xc/doc/specs/Xext/evi.ms,v 1.4 2001/01/17 16:57:44 dawes Exp $
 .EH ''''
 .OH ''''
 .EF ''''
diff -urwb X11R6.6/xc/doc/specs/Xext/mit-shm.ms release1/cvs-ro/xc/doc/specs/Xext/mit-shm.ms
--- X11R6.6/xc/doc/specs/Xext/mit-shm.ms	Thu Apr 13 09:38:43 2000
+++ release1/cvs-ro/xc/doc/specs/Xext/mit-shm.ms	Mon Nov 17 11:03:19 2003
@@ -213,6 +213,13 @@
 shminfo structure.  The server will need that ID to attach itself to the
 segment.
 .LP
+Also note that, on many systems for security reasons, the X server
+will only accept to attach to the shared memory segment if it's
+readable and writeable by ``other''. On systems where the X server is
+able to determine the uid of the X client over a local transport, the
+shared memory segment can be readable and writeable only by the uid of
+the client.
+.LP
 Next, attach this shared memory segment to your process:
 .Cs
 shminfo.shmaddr = image->data = shmat (shminfo.shmid, 0, 0);
diff -urwb X11R6.6/xc/doc/specs/Xext/sync.tex release1/cvs-ro/xc/doc/specs/Xext/sync.tex
--- X11R6.6/xc/doc/specs/Xext/sync.tex	Thu Aug 17 12:42:37 2000
+++ release1/cvs-ro/xc/doc/specs/Xext/sync.tex	Mon Nov 17 11:03:19 2003
@@ -19,6 +19,8 @@
 % ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
 % IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
 % OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+%
+% $XFree86: xc/doc/specs/Xext/sync.tex,v 1.3 2001/04/27 12:58:27 dawes Exp $
 
 %\documentstyle[a4]{article}
 \documentstyle{article}
@@ -1004,3 +1006,4 @@
 	\> 1	\> ALARMSTATE	\> state \\
 	\> 3	\>		\> unused\\
 \end{tabbing}
+\end{document}
diff -urwb X11R6.6/xc/doc/specs/Xi/porting.ms release1/cvs-ro/xc/doc/specs/Xi/porting.ms
--- X11R6.6/xc/doc/specs/Xi/porting.ms	Thu Apr 13 09:38:44 2000
+++ release1/cvs-ro/xc/doc/specs/Xi/porting.ms	Mon Nov 17 11:03:19 2003
@@ -1,3 +1,4 @@
+.\" $XFree86: xc/doc/specs/Xi/porting.ms,v 1.2 2000/12/04 23:25:59 dawes Exp $
 .\" Input Extension Porting Document
 .EH ''''
 .OH ''''
@@ -987,4 +988,4 @@
 The event type is \fBProximityIn\fP or \fBProximityOut\fP, and there is no
 detail information.
 .bp
-.TC
+.\" .TC
diff -urwb X11R6.6/xc/doc/specs/Xmu/Xmu.ms release1/cvs-ro/xc/doc/specs/Xmu/Xmu.ms
--- X11R6.6/xc/doc/specs/Xmu/Xmu.ms	Thu Apr 13 09:38:45 2000
+++ release1/cvs-ro/xc/doc/specs/Xmu/Xmu.ms	Mon Nov 17 11:03:19 2003
@@ -1,3 +1,6 @@
+.\"
+.\" $XFree86: xc/doc/specs/Xmu/Xmu.ms,v 1.2 2000/11/28 18:49:20 dawes Exp $
+.\"
 .sp 8
 .ce 2
 \s+2\fBXmu Library\fP\s-2
@@ -70,6 +73,7 @@
 XA_TEXT(\fId\fP)
 XA_TIMESTAMP(\fId\fP)
 XA_USER(\fId\fP)
+XA_UTF8_STRING(\fId\fP)
 .FN
 .LP
 These macros take a display as argument and return an
@@ -1198,6 +1202,11 @@
 To use the functions defined in this section, you should include the header
 file
 .Pn < X11/Xmu/CharSet.h >.
+.LP
+The functions in this section are \fBdeprecated\fP because they don't work
+in most locales now supported by X11; the function
+.PN XmbLookupString
+provides a better alternative.
 .sp
 .FD 0
 void XmuCopyISOLatin1Lowered(\fIdst\fP, \fIsrc\fP)
@@ -1570,6 +1579,13 @@
 decomposing them into individual segments.  Definitions needed to use these
 routines are in the include file
 .Pn < X11/Xmu/Xct.h >.
+.LP
+The functions in this section are \fBdeprecated\fP because they shift the
+burden for recently introduced locale encodings to the application. The
+use of the
+.PN UTF8_STRING
+text encoding provides a better alternative.
+.LP
 A Compound Text string is represented as the following type:
 .LP
 	typedef unsigned char *XctString;
diff -urwb X11R6.6/xc/doc/specs/Xserver/analysis.tex release1/cvs-ro/xc/doc/specs/Xserver/analysis.tex
--- X11R6.6/xc/doc/specs/Xserver/analysis.tex	Thu Apr 13 09:38:48 2000
+++ release1/cvs-ro/xc/doc/specs/Xserver/analysis.tex	Mon Nov 17 11:03:19 2003
@@ -1,7 +1,9 @@
-\documentstyle[computer]{article}
+\documentstyle{article}
 \setlength{\parindent}{0 pt}
 \setlength{\parskip}{6pt}
 
+% $XFree86: xc/doc/specs/Xserver/analysis.tex,v 1.2 2001/04/19 23:36:35 dawes Exp $
+
 \begin{document}
 
 \title{Analysis of the X Protocol for Security Concerns\\Draft Version 2}
@@ -216,9 +218,9 @@
 the client is over its limit is to return NULL, indicating allocation
 failure.  Unfortunately, there are many places in the server that will
 react badly if this happens.  Most of these places, but not all, are
-``protected'' by setting the global variable Must_have_memory to True
+``protected'' by setting the global variable Must\_have\_memory to True
 around the delicate code.  We could help the problem by skipping the
-limit check if Must_have_memory is True.  The best solution would be
+limit check if Must\_have\_memory is True.  The best solution would be
 to bullet-proof the server against allocation failures, but that is
 beyond the scope of Broadway.  Another consideration is that the
 additional checking may have a measurable performance impact, since
@@ -615,9 +617,9 @@
 polyinstantiated?
 
 ISSUE: Motif drag and drop needs to be able to read the following
-properties: WM_STATE to identify top-level windows, _MOTIF_DRAG_WINDOW
-on the root window, _MOTIF_DRAG_TARGETS on the window given in the
-_MOTIF_DRAG_WINDOW property, and _MOTIF_DRAG_RECEIVER_INFO on windows
+properties: WM\_STATE to identify top-level windows, \_MOTIF\_DRAG\_WINDOW
+on the root window, \_MOTIF\_DRAG\_TARGETS on the window given in the
+\_MOTIF\_DRAG\_WINDOW property, and \_MOTIF\_DRAG\_RECEIVER\_INFO on windows
 with drop sites.  Additionally, some properties are needed that do not
 have fixed names.
 
@@ -1514,10 +1516,10 @@
 
 Rosenthal, David and Marks, Stuart W., ``Inter-Client Communication
 Conventions Manual Version 2.0,''
-\file{ftp://ftp.x.org/pub/R6.1/xc/doc/hardcopy/ICCCM/icccm.PS.Z}
+{\tt ftp://ftp.x.org/pub/R6.1/xc/doc/hardcopy/ICCCM/icccm.PS.Z}
 
 Scheifler, Robert W., ``X Window System Protocol,''
-\file{ftp://ftp.x.org/pub/R6.1/xc/doc/hardcopy/XProtocol/proto.PS.Z}
+{\tt ftp://ftp.x.org/pub/R6.1/xc/doc/hardcopy/XProtocol/proto.PS.Z}
 
 Treese, G. Winfield and Wolman, Alec, ``X Through the Firewall, and
 Other Application Relays,'' Digital Equipment Corporation Cambridge
diff -urwb X11R6.6/xc/doc/specs/Xserver/secint.tex release1/cvs-ro/xc/doc/specs/Xserver/secint.tex
--- X11R6.6/xc/doc/specs/Xserver/secint.tex	Thu Apr 13 09:38:48 2000
+++ release1/cvs-ro/xc/doc/specs/Xserver/secint.tex	Mon Nov 17 11:03:19 2003
@@ -1,7 +1,9 @@
-\documentstyle[computer]{article}
+\documentstyle{article}
 \setlength{\parindent}{0 pt}
 \setlength{\parskip}{6pt}
 
+% $XFree86: xc/doc/specs/Xserver/secint.tex,v 1.2 2001/04/19 23:36:35 dawes Exp $
+
 \begin{document}
 
 \title{Security Extension Server Design\\Draft Version 3.0}
diff -urwb X11R6.6/xc/doc/specs/Xt/CH01 release1/cvs-ro/xc/doc/specs/Xt/CH01
--- X11R6.6/xc/doc/specs/Xt/CH01	Thu Aug 17 12:42:42 2000
+++ release1/cvs-ro/xc/doc/specs/Xt/CH01	Mon Nov 17 11:03:19 2003
@@ -1895,8 +1895,8 @@
 .LP
 .IN "Chaining" "superclass"
 .IN "Chaining" "Subclass"
-.IN "Superclass Chaining" "" "@DEF@
-.IN "Subclass Chaining" "" "@DEF@
+.IN "Superclass Chaining" "" "@DEF@"
+.IN "Subclass Chaining" "" "@DEF@"
 .IN "Inheritance"
 While most fields in a widget class structure are self-contained,
 some fields are linked to their corresponding fields in their superclass
diff -urwb X11R6.6/xc/doc/specs/Xt/CH02 release1/cvs-ro/xc/doc/specs/Xt/CH02
--- X11R6.6/xc/doc/specs/Xt/CH02	Thu Aug 17 12:42:42 2000
+++ release1/cvs-ro/xc/doc/specs/Xt/CH02	Mon Nov 17 11:03:19 2003
@@ -538,7 +538,7 @@
 .PN XtSetLanguageProc .
 .LP
 .IN XtSetLanguageProc "" "@DEF@"
-.IN "language procedure" "" "@DEF@
+.IN "language procedure" "" "@DEF@"
 .sM
 .FD 0
 XtLanguageProc XtSetLanguageProc(\fIapp_context\fP, \fIproc\fP, \fIclient_data\fP)
diff -urwb X11R6.6/xc/doc/specs/i18n/Framework.ms release1/cvs-ro/xc/doc/specs/i18n/Framework.ms
--- X11R6.6/xc/doc/specs/i18n/Framework.ms	Thu Aug 17 12:42:49 2000
+++ release1/cvs-ro/xc/doc/specs/i18n/Framework.ms	Mon Nov 17 11:03:19 2003
@@ -1,5 +1,6 @@
 .\" $Xorg: Framework.ms,v 1.3 2000/08/17 19:42:49 cpqbld Exp $
 .\" To print this out, type tbl macros.t ThisFile | troff -ms
+.\" $XFree86: xc/doc/specs/i18n/Framework.ms,v 1.5 2001/02/09 00:02:52 dawes Exp $
 .EH ''''
 .OH ''''
 .EF ''''
@@ -296,9 +297,9 @@
 \h'3.063i'\v'0.782i'\h'-0.0m'\v'0.2m'\s12\fR>>\fP
 .sp -1
 .sp 1+4.344i
+.in -1c
 .PE
 .if \n(00 .fi
-.in -1c
 .\" figure end
 .LP
 .ce
@@ -649,7 +650,7 @@
 @defined as GR
 .\" CNS11643.1986-0:GL
 .\" CNS11643.1986-1:GL
-.\" TIS620.2533-1:GR
+.\" TIS620-0:GR
 .sp 6p
 _
 .TE
@@ -1000,7 +1001,7 @@
 .LP
 The 
 .PN _XlcCompareIsoLatin1 
-function to compares two ISO-8859-1 strings.  Bytes representing lower 
+function to compares two ISO-8859-1 strings.  Bytes representing ASCII lower 
 case letters are converted to upper case before making the comparison.  
 The value returned is an integer less than, equal to, or greater than 
 zero, depending on whether ``\fIstr1\fP'' is lexicographicly less than, 
diff -urwb X11R6.6/xc/doc/specs/i18n/Imakefile release1/cvs-ro/xc/doc/specs/i18n/Imakefile
diff -urwb X11R6.6/xc/doc/specs/rstart/rstart.ms release1/cvs-ro/xc/doc/specs/rstart/rstart.ms
--- X11R6.6/xc/doc/specs/rstart/rstart.ms	Thu Apr 13 09:38:51 2000
+++ release1/cvs-ro/xc/doc/specs/rstart/rstart.ms	Mon Nov 17 11:03:19 2003
@@ -1,3 +1,4 @@
+.\" $XFree86: xc/doc/specs/rstart/rstart.ms,v 1.2 2001/05/29 18:14:12 dawes Exp $
 .ds iL Brown
 .ds iI J.
 .ds iO Quarterdeck Office Systems
@@ -4,7 +5,7 @@
 .ds iG X Consortium
 .ds iN DRAFT
 .ds iD August 1993
-.so tmac.rfc
+.so tmac.build
 .LG
 .LG
 .ce
diff -urwb X11R6.6/xc/doc/specs/xterm/ctlseqs.ms release1/cvs-ro/xc/doc/specs/xterm/ctlseqs.ms
--- X11R6.6/xc/doc/specs/xterm/ctlseqs.ms	Thu Aug 17 12:42:51 2000
+++ release1/cvs-ro/xc/doc/specs/xterm/ctlseqs.ms	Fri Dec 19 16:28:21 2003
@@ -1,7 +1,43 @@
 .\"#! troff -ms $1		-*- Nroff -*-
 .\" "Xterm Control Sequences" document
+.\" $XdotOrg: xc/doc/specs/xterm/ctlseqs.ms,v 1.1.4.3 2003/12/20 00:28:21 kaleb Exp $
 .\" $Xorg: ctlseqs.ms,v 1.3 2000/08/17 19:42:51 cpqbld Exp $
 .\"
+.\"
+.\"
+.\"
+.\" $XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.51 2003/12/15 00:53:20 dickey Exp $
+.\"
+.\"
+.\" Copyright 1996-2002,2003 by Thomas E. Dickey
+.\"
+.\"                         All Rights Reserved
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining a
+.\" copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+.\" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+.\" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+.\" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name(s) of the above copyright
+.\" holders shall not be used in advertising or otherwise to promote the
+.\" sale, use or other dealings in this Software without prior written
+.\" authorization.
+.\"
+.\"
 .\" Copyright 1991, 1994 X Consortium
 .\"
 .\" Permission is hereby granted, free of charge, to any person obtaining
@@ -33,6 +69,7 @@
 .\" Originally written by Edward Moy, University of California,
 .\" Berkeley, edmoy@violet.berkeley.edu, for the X.V10R4 xterm.
 .\" The X Consortium staff has since updated it for X11.
+.\" Updated by Thomas E. Dickey for XFree86 3.2 - XFree86 4.3
 .\"
 .\" Run this file through troff and use the -ms macro package.
 .\"
@@ -89,7 +126,22 @@
 .[] Et \v'-1p'\*X\v'1p'
 .[] En \v'-1p'\*N\v'1p'
 .[] Be \v'-1p'\*L\v'1p'
+.[] AP \v'-1p'\s\nsAPC\s0\v'1p'
 .[] Bs \v'-1p'\s\nsBS\s0\v'1p'
+.[] Cs \v'-1p'\s\nsCSI\s0\v'1p'
+.[] S2 \v'-1p'\s\nsSS2\s0\v'1p'
+.[] S3 \v'-1p'\s\nsSS3\s0\v'1p'
+.[] SS \v'-1p'\s\nsSOS\s0\v'1p'
+.[] Eg \v'-1p'\s\nsEPA\s0\v'1p'
+.[] Sg \v'-1p'\s\nsSPA\s0\v'1p'
+.[] Dc \v'-1p'\s\nsDCS\s0\v'1p'
+.[] Ht \v'-1p'\s\nsHTS\s0\v'1p'
+.[] ID \v'-1p'\s\nsIND\s0\v'1p'
+.[] Nl \v'-1p'\s\nsNEL\s0\v'1p'
+.[] Os \v'-1p'\s\nsOSC\s0\v'1p'
+.[] RI \v'-1p'\s\nsRI\s0\v'1p'
+.[] PM \v'-1p'\s\nsPM\s0\v'1p'
+.[] ST \v'-1p'\s\nsST\s0\v'1p'
 .[] Ta \v'-1p'\*T\v'1p'
 .[] Lf \v'-1p'\s\nsLF\s0\v'1p'
 .[] Vt \v'-1p'\s\nsVT\s0\v'1p'
@@ -96,6 +148,7 @@
 .[] Ff \v'-1p'\s\nsFF\s0\v'1p'
 .[] Cr \v'-1p'\s\nsCR\s0\v'1p'
 .[] So \v'-1p'\s\nsSO\s0\v'1p'
+.[] Sp \v'-1p'\s\nsSP\s0\v'1p'
 .[] Si \v'-1p'\s\nsSI\s0\v'1p'
 .[] Eb \v'-1p'\*e\v'1p'
 .[] Ca \v'-1p'\*C\v'1p'
@@ -105,12 +158,18 @@
 .[] Gs \v'-1p'\s\nsGS\s0\v'1p'
 .[] Rs \v'-1p'\s\nsRS\s0\v'1p'
 .[] Us \v'-1p'\s\nsUS\s0\v'1p'
+.[] XX \v'-1p'\s\nsXX\s0\v'1p'
+.[] $ $
 .[] ! !
 .[] # #
+.[] % %
 .[] (( (
 .[] ) )
 .[] * *
 .[] + +
+.[] , ,
+.[] - -
+.[] . .
 .[] 0 0
 .[] 1 1
 .[] 2 2
@@ -124,6 +183,8 @@
 .[] : :
 .[] ; ;
 .[] = =
+.[] / /
+.[] < <
 .[] > >
 .[] ? ?
 .[] @ @
@@ -133,7 +194,9 @@
 .[] D D
 .[] E E
 .[] F F
+.[] G G
 .[] H H
+.[] I I
 .[] J J
 .[] K K
 .[] L L
@@ -141,15 +204,24 @@
 .[] N N
 .[] O O
 .[] P P
+.[] Q Q
 .[] R R
 .[] S S
 .[] T T
+.[] V V
+.[] W W
+.[] XX X
+.[] Y Y
 .[] Z Z
 .[] [[ [
+.[] ]] ]
 .[] bS \\e
+.[] { {
 .[] ] ]
+.[] & &
 .[] ^ ^
 .[] _ _
+.[] qu \&'
 .[] ` \`
 .[] a a
 .[] b b
@@ -170,9 +242,16 @@
 .[] r r
 .[] cs s
 .[] t t
+.[] u u
+.[] v v
+.[] w w
 .[] x x
+.[] y y
+.[] z z
 .[] | |
 .[] } }
+.[] ! !
+.[] c" \(lq
 .[] c~ ~
 .[] Sc \fIc\fP
 .ds Cc \fIC\fP
@@ -179,9 +258,17 @@
 .ds Cb \fIC\v'.3m'\h'-.2m'\s-2b\s0\v'-.3m'\fP
 .ds Cx \fIC\v'.3m'\h'-.2m'\s-2x\s0\v'-.3m'\fP
 .ds Cy \fIC\v'.3m'\h'-.2m'\s-2y\s0\v'-.3m'\fP
-.ds Ps \fIP\v'.3m'\h'-.2m'\s-2s\s0\v'-.3m'\fP
+.ds Pb \fIP\v'.3m'\h'-.2m'\s-2b\s0\v'-.3m'\fP
+.ds Pc \fIP\v'.3m'\h'-.2m'\s-2c\s0\v'-.3m'\fP
+.ds Pe \fIP\v'.3m'\h'-.2m'\s-2e\s0\v'-.3m'\fP
+.ds Pl \fIP\v'.3m'\h'-.2m'\s-2l\s0\v'-.3m'\fP
 .ds Pm \fIP\v'.3m'\h'-.2m'\s-2m\s0\v'-.3m'\fP
+.ds Pp \fIP\v'.3m'\h'-.2m'\s-2p\s0\v'-.3m'\fP
+.ds Pr \fIP\v'.3m'\h'-.2m'\s-2r\s0\v'-.3m'\fP
+.ds Ps \fIP\v'.3m'\h'-.2m'\s-2s\s0\v'-.3m'\fP
 .ds Pt \fIP\v'.3m'\h'-.2m'\s-2t\s0\v'-.3m'\fP
+.ds Pu \fIP\v'.3m'\h'-.2m'\s-2u\s0\v'-.3m'\fP
+.ds Pv \fIP\v'.3m'\h'-.2m'\s-2v\s0\v'-.3m'\fP
 .ds Ix \fIx\fP
 .ds Iy \fIy\fP
 .ds Iw \fIw\fP
@@ -202,8 +289,13 @@
 .AU
 Stephen Gildea
 .AI
-X Consortium
-
+X Consortium (1994)
+.AU
+Thomas Dickey
+.AI
+XFree86 Project (1996-2003)
+.AU
+.
 .am BT                  \" add page numbers after first page
 .ds CF %
 ..
@@ -218,167 +310,436 @@
 .IP \*(Pm
 A multiple numeric parameter composed of any number of single numeric
 parameters, separated by \*; character(s).
+Individual values for the parameters are listed with \*(Ps .
 .IP \*(Pt
 A text parameter composed of printable characters.
+.
 .SH
+C1 (8-Bit) Control Characters
+.ds RH C1 (8-Bit) Control Characters
+.LP
+The \fIxterm\fP program recognizes both 8-bit and 7-bit control characters.
+It generates 7-bit controls (by default) or 8-bit if S8C1T is enabled.
+The following pairs of 7-bit and 8-bit control characters are equivalent:
+.St
+.IP \\*(Es\\*D
+Index (\*(ID is 0x84)
+.IP \\*(Es\\*E
+Next Line (\*(Nl is 0x85)
+.IP \\*(Es\\*H
+Tab Set (\*(Ht is 0x88)
+.IP \\*(Es\\*M
+Reverse Index (\*(RI is 0x8d)
+.IP \\*(Es\\*N
+Single Shift Select of G2 Character Set (\*(S2 is 0x8e): affects next character only
+.IP \\*(Es\\*O
+Single Shift Select of G3 Character Set (\*(S3 is 0x8f): affects next character only
+.IP \\*(Es\\*P
+Device Control String (\*(Dc is 0x90)
+.IP \\*(Es\\*V
+Start of Guarded Area (\*(Sg is 0x96)
+.IP \\*(Es\\*W
+End of Guarded Area (\*(Eg is 0x97)
+.IP \\*(Es\\*(XX
+Start of String (\*(SS is 0x98)
+.IP \\*(Es\\*Z
+Return Terminal ID (DECID is 0x9a).  Obsolete form of \*(Cs\*c (DA).
+.IP \\*(Es\\*([[
+Control Sequence Introducer (\*(Cs is 0x9b)
+.IP \\*(Es\\*(bS
+String Terminator (\*(ST is 0x9c)
+.IP \\*(Es\\*(]]
+Operating System Command (\*(Os is 0x9d)
+.IP \\*(Es\\*^
+Privacy Message (\*(PM is 0x9e)
+.IP \\*(Es\\*_
+Application Program Command (\*(AP is 0x9f)
+.Ed
+.sp
+.LP
+These control characters are used in the vtXXX emulation.
+.
+.SH
 VT100 Mode
 .ds RH VT100 Mode
 .LP
 Most of these control sequences are standard VT102 control sequences,
-but there are some sequences here from later DEC VT terminals, too.
-VT102 features not supported are smooth scrolling, double size
-characters, blinking characters, and VT52 mode.
+but there is support for later DEC VT terminals (i.e., VT220 and VT320),
+as well as ISO 6429 and \fIaixterm\fP color controls.
+VT102 features not supported are
+auto-repeat and blinking characters.
 There are additional control sequences to provide
-\fIxterm-\fPdependent functions, like the scrollbar or window size.
+\fIxterm-\fPdependent functions, such as the scrollbar or window size.
 Where the function is specified by DEC or ISO 6429, the code assigned
 to it is given in parentheses.  The escape codes to designate and invoke
 character sets are specified by ISO 2022; see that document for a
 discussion of character sets.
+.
 .St
+.\"
+.LP
+.B
+Single-character functions
+.\"
 .IP \\*(Be
 Bell (Ctrl-G)
+.
 .IP \\*(Bs
 Backspace (Ctrl-H)
-.IP \\*(Ta
-Horizontal Tab (HT) (Ctrl-I)
-.IP \\*(Lf
-Line Feed or New Line (NL) (Ctrl-J)
-.IP \\*(Vt
-Vertical Tab (Ctrl-K) same as LF
-.IP \\*(Ff
-Form Feed or New Page (NP) (Ctrl-L) same as LF
+.
 .IP \\*(Cr
 Carriage Return (Ctrl-M)
+.
+.IP \\*(En
+Return Terminal Status (Ctrl-E).
+Default response is an empty string, but may be overridden
+by a resource \fIanswerbackString\fP.
+.
+.IP \\*(Ff
+Form Feed or New Page (NP) (Ctrl-L) same as LF
+.
+.IP \\*(Lf
+Line Feed or New Line (NL) (Ctrl-J)
+.
 .IP \\*(So
 Shift Out (Ctrl-N) \(-> Switch to Alternate Character Set: invokes the
 G1 character set.
+.
+.IP \\*(Sp
+Space.
+.
+.IP \\*(Ta
+Horizontal Tab (HT) (Ctrl-I)
+.
+.IP \\*(Vt
+Vertical Tab (Ctrl-K) same as LF
+.
 .IP \\*(Si
 Shift In (Ctrl-O) \(-> Switch to Standard Character Set: invokes the
 G0 character set (the default).
+.Ed
+.\"
+.\"
+.\"
+.St
+.LP
+.B
+Controls beginning with ESC (other than those where ESC is part of a 7-bit equivalent to 8-bit C1 controls), ordered by the final character(s).
+.\"
+.IP \\*(Es\\*(Sp\\*F
+7-bit controls (S7C1T).
+.
+.IP \\*(Es\\*(Sp\\*G
+8-bit controls (S8C1T).
+.
+.IP \\*(Es\\*(Sp\\*L
+Set ANSI conformance level 1 (dpANS X3.134.1).
+.
+.IP \\*(Es\\*(Sp\\*M
+Set ANSI conformance level 2 (dpANS X3.134.1).
+.
+.IP \\*(Es\\*(Sp\\*N
+Set ANSI conformance level 3 (dpANS X3.134.1).
+.
+.IP \\*(Es\\*#\\*3
+DEC double-height line, top half (DECDHL)
+.
+.IP \\*(Es\\*#\\*4
+DEC double-height line, bottom half (DECDHL)
+.
+.IP \\*(Es\\*#\\*5
+DEC single-width line (DECSWL)
+.
+.IP \\*(Es\\*#\\*6
+DEC double-width line (DECDWL)
+.
 .IP \\*(Es\\*#\\*8
 DEC Screen Alignment Test (DECALN)
+.
+.IP \\*(Es\\*%\\*@
+Select default character set, ISO 8859-1 (ISO 2022)
+.
+.IP \\*(Es\\*%\\*G
+Select UTF-8 character set (ISO 2022)
+.
 .IP \\*(Es\\*(((\\*(Cc
 Designate G0 Character Set (ISO 2022)
-  \*(Cc = \*0 \(-> DEC Special Character and Line Drawing Set
-  \*(Cc = \*A \(-> United Kingdom (UK)
-  \*(Cc = \*(cB \(-> United States (USASCII)
 .IP \\*(Es\\*)\\*(Cc
 Designate G1 Character Set (ISO 2022)
-  \*(Cc = \*0 \(-> DEC Special Character and Line Drawing Set
-  \*(Cc = \*A \(-> United Kingdom (UK)
-  \*(Cc = \*(cB \(-> United States (USASCII)
+.
 .IP \\*(Es\\**\\*(Cc
 Designate G2 Character Set (ISO 2022)
-  \*(Cc = \*0 \(-> DEC Special Character and Line Drawing Set
-  \*(Cc = \*A \(-> United Kingdom (UK)
-  \*(Cc = \*(cB \(-> United States (USASCII)
+.
 .IP \\*(Es\\*+\\*(Cc
 Designate G3 Character Set (ISO 2022)
+.br
+Final character \*(Cc for designating character sets
+(\*0, \*A and \*(cB apply to VT100 and up, the remainder to VT220 and up):
   \*(Cc = \*0 \(-> DEC Special Character and Line Drawing Set
   \*(Cc = \*A \(-> United Kingdom (UK)
   \*(Cc = \*(cB \(-> United States (USASCII)
+  \*(Cc = \*4 \(-> Dutch
+  \*(Cc = \*C or \*5 \(-> Finnish
+  \*(Cc = \*R \(-> French
+  \*(Cc = \*Q \(-> French Canadian
+  \*(Cc = \*K \(-> German
+  \*(Cc = \*Y \(-> Italian
+  \*(Cc = \*E or \*6 \(-> Norwegian/Danish
+  \*(Cc = \*Z \(-> Spanish
+  \*(Cc = \*H or \*7 \(-> Swedish
+  \*(Cc = \*= \(-> Swiss
+.
 .IP \\*(Es\\*7
 Save Cursor (DECSC)
+.
 .IP \\*(Es\\*8
 Restore Cursor (DECRC)
+.
 .IP \\*(Es\\*=
 Application Keypad (DECPAM)
+.
 .IP \\*(Es\\*>
 Normal Keypad (DECPNM)
-.IP \\*(Es\\*D
-Index (IND)
-.IP \\*(Es\\*E
-Next Line (NEL)
+.
 .IP \\*(Es\\*F
 Cursor to lower left corner of screen (if
 enabled by the \fBhpLowerleftBugCompat\fP resource).
-.IP \\*(Es\\*H
-Tab Set (HTS)
-.IP \\*(Es\\*M
-Reverse Index (RI)
-.IP \\*(Es\\*N
-Single Shift Select of G2 Character Set (SS2): affects next character only
-.IP \\*(Es\\*O
-Single Shift Select of G3 Character Set (SS3): affects next character only
-.IP \\*(Es\\*P\\*(Pt\\*s\\*(Es\\*(bS
-Device Control String (DCS)
-  \fIxterm\fP implements no DCS functions; \*(Pt is ignored.
+.
+.IP \\*(Es\\*c
+Full Reset (RIS)
+.
+.IP \\*(Es\\*l
+Memory Lock (per HP terminals).  Locks memory above the cursor.
+.
+.IP \\*(Es\\*m
+Memory Unlock (per HP terminals)
+.
+.IP \\*(Es\\*n
+Invoke the G2 Character Set (LS2)
+.
+.IP \\*(Es\\*o
+Invoke the G3 Character Set (LS3)
+.
+.IP \\*(Es\\*|
+Invoke the G3 Character Set as GR (LS3R).  Has no visible effect in \fIxterm\fP.
+.
+.IP \\*(Es\\*}
+Invoke the G2 Character Set as GR (LS2R).  Has no visible effect in \fIxterm\fP.
+.
+.IP \\*(Es\\*(c~
+Invoke the G1 Character Set as GR (LS1R).  Has no visible effect in \fIxterm\fP.
+.Ed
+.
+.St
+.LP
+.B
+Application Program-Control functions
+.IP \\*(AP\\*(Pt\\*s\\*(ST
+\fIxterm\fP implements no \*(AP functions; \*(Pt is ignored.
 \*(Pt need not be printable characters.
-.IP \\*(Es\\*Z
-Return Terminal ID (DECID).  Obsolete form of \*(Es\*([[\*c (DA).
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*@
+.Ed
+.
+.St
+.LP
+.B
+Device-Control functions
+.IP \\*(Dc\\*(Ps\\*;\\*(Ps\\*|\\*(Pt\\*s\\*(ST
+User-Defined Keys (DECUDK).
+The first parameter:
+  \*(Ps = \*0 \(-> Clear all UDK definitions before starting (default)
+  \*(Ps = \*1 \(-> Erase Below (default)
+.br
+The second parameter:
+  \*(Ps = \*0 \(-> Lock the keys (default)
+  \*(Ps = \*1 \(-> Do not lock.
+.br
+The third parameter is a ';'-separated list of strings denoting
+the key-code separated by a '/' from the hex-encoded key value.
+The key codes correspond to the DEC function-key codes (e.g., F6=17).
+.
+.IP \\*(Dc\\*$\\*q\\*(Pt\\*s\\*(ST
+Request Status String (DECRQSS).
+The string following the "q" is one of the following:
+  \*(c"\*q	\(-> DECSCA
+  \*(c"\*p	\(-> DECSCL
+  \*r		\(-> DECSTBM
+  \*m		\(-> SGR
+.br
+\fIxterm\fP responds with
+\*(Dc\*1\*$\*r\*(Pt\*s\*(ST
+for valid requests, replacing the \*(Pt with the corresponding \*(Cs
+string,
+or
+\*(Dc\*0\*$\*r\*(Pt\*s\*(ST
+for invalid requests.
+.
+.IP \\*(Dc\\*+\\*q\\*(Pt\\*s\\*(ST
+Request Termcap/Terminfo String (xterm, experimental).
+The string following the "q" is a list of names
+encoded in hexadecimal (2 digits per character)
+separated by \*;
+which correspond to termcap or terminfo key names.
+.br
+\fIxterm\fP responds with
+\*(Dc\*1\*+\*r\*(Pt\*s\*(ST
+for valid requests, adding to \*(Pt an \*=,
+and the value of the corresponding string that xterm would send,
+or
+\*(Dc\*0\*+\*r\*(Pt\*s\*(ST
+for invalid requests.
+The strings are encoded in hexadecimal (2 digits per character).
+.Ed
+.\"
+.St
+.LP
+.B
+Functions using \*(Cs, ordered by the final character(s)
+.IP \\*(Cs\\*(Ps\\*s\\*@
 Insert \*(Ps (Blank) Character(s) (default = 1) (ICH)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*A
+.
+.IP \\*(Cs\\*(Ps\\*s\\*A
 Cursor Up \*(Ps Times (default = 1) (CUU)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*(cB
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(cB
 Cursor Down \*(Ps Times (default = 1) (CUD)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*C
+.
+.IP \\*(Cs\\*(Ps\\*s\\*C
 Cursor Forward \*(Ps Times (default = 1) (CUF)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*D
+.
+.IP \\*(Cs\\*(Ps\\*s\\*D
 Cursor Backward \*(Ps Times (default = 1) (CUB)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*;\\*(Ps\\*s\\*H
+.
+.IP \\*(Cs\\*(Ps\\*s\\*E
+Cursor Next Line \*(Ps Times (default = 1) (CNL)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*F
+Cursor Preceding Line \*(Ps Times (default = 1) (CPL)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*G
+Cursor Character Absolute  [column] (default = [row,1]) (CHA)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*H
 Cursor Position [row;column] (default = [1,1]) (CUP)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*J
+.
+.IP \\*(Cs\\*(Ps\\*s\\*I
+Cursor Forward Tabulation \*(Ps tab stops (default = 1) (CHT)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*J
 Erase in Display (ED)
-  \*(Ps = \*0 \(-> Clear Below (default)
-  \*(Ps = \*1 \(-> Clear Above
-  \*(Ps = \*2 \(-> Clear All
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*K
+  \*(Ps = \*0 \(-> Erase Below (default)
+  \*(Ps = \*1 \(-> Erase Above
+  \*(Ps = \*2 \(-> Erase All
+  \*(Ps = \*3 \(-> Erase Saved Lines (xterm)
+.
+.IP \\*(Cs\\*?\\*(Ps\\*s\\*J
+Erase in Display (DECSED)
+  \*(Ps = \*0 \(-> Selective Erase Below (default)
+  \*(Ps = \*1 \(-> Selective Erase Above
+  \*(Ps = \*2 \(-> Selective Erase All
+.
+.IP \\*(Cs\\*(Ps\\*s\\*K
 Erase in Line (EL)
-  \*(Ps = \*0 \(-> Clear to Right (default)
-  \*(Ps = \*1 \(-> Clear to Left
-  \*(Ps = \*2 \(-> Clear All
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*L
+  \*(Ps = \*0 \(-> Erase to Right (default)
+  \*(Ps = \*1 \(-> Erase to Left
+  \*(Ps = \*2 \(-> Erase All
+.
+.IP \\*(Cs\\*?\\*(Ps\\*s\\*K
+Erase in Line (DECSEL)
+  \*(Ps = \*0 \(-> Selective Erase to Right (default)
+  \*(Ps = \*1 \(-> Selective Erase to Left
+  \*(Ps = \*2 \(-> Selective Erase All
+.
+.IP \\*(Cs\\*(Ps\\*s\\*L
 Insert \*(Ps Line(s) (default = 1) (IL)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*M
+.
+.IP \\*(Cs\\*(Ps\\*s\\*M
 Delete \*(Ps Line(s) (default = 1) (DL)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*P
+.
+.IP \\*(Cs\\*(Ps\\*s\\*P
 Delete \*(Ps Character(s) (default = 1) (DCH)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*T
+.
+.IP \\*(Cs\\*(Ps\\*s\\*S
+Scroll up \*(Ps lines (default = 1) (SU)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*T
+Scroll down \*(Ps lines (default = 1) (SD)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*T
 Initiate hilite mouse tracking.
 Parameters are [func;startx;starty;firstrow;lastrow].
 See the section \fBMouse Tracking\fP.
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*c
-Send Device Attributes (DA)
-  \*(Ps = \*0 or omitted \(-> request attributes from terminal
-  \(-> \*(Es\*([[\*?\*1\*;\*2\*c (``I am a VT100 with Advanced
-Video Option.'')
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*;\\*(Ps\\*s\\*f
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(XX
+Erase \*(Ps Character(s) (default = 1) (ECH)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*Z
+Cursor Backward Tabulation \*(Ps tab stops (default = 1) (CBT)
+.
+.IP \\*(Cs\\*(Pm\\*s\\*`
+Character Position Absolute  [column] (default = [row,1]) (HPA)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*b
+Repeat the preceding graphic character \*(Ps times (REP)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*c
+Send Device Attributes (Primary DA)
+  \*(Ps = \*0, 1 or omitted \(-> request attributes from terminal.
+The response depends on the \fBdecTerminalID\fP resource setting.
+  \(-> \*(Cs\*?\*1\*;\*2\*c (``VT100 with Advanced Video Option'')
+  \(-> \*(Cs\*?\*1\*;\*0\*c (``VT101 with No Options'')
+  \(-> \*(Cs\*?\*6\*c (``VT102'')
+  \(-> \*(Cs\*?\*6\*0\*;\*1\*;\*2\*;\*6\*;\*8\*;\*9\*;\*1\*5\*;\*c (``VT220'')
+.br
+The VT100-style response parameters do not mean anything by themselves.
+VT220 parameters do, telling the host what features the terminal supports:
+  \(-> \*1 132-columns
+  \(-> \*2 Printer
+  \(-> \*6 Selective erase
+  \(-> \*8 User-defined keys
+  \(-> \*9 National replacement character sets
+  \(-> \*1\*5 Technical characters
+  \(-> \*2\*2 ANSI color, e.g., VT525
+  \(-> \*2\*9 ANSI text locator (i.e., DEC Locator mode)
+.
+.IP \\*(Cs\\*>\\*(Ps\\*s\\*c
+Send Device Attributes (Secondary DA)
+  \*(Ps = \*0, 1 or omitted \(-> request the terminal's identification code.
+The response depends on the \fBdecTerminalID\fP resource setting.
+It should apply only to VT220 and up, but \fIxterm\fP extends this to VT100.
+  \(-> \*(Cs\*s\*>\*(Pp\*s\*;\*(Pv\*s\*;\*(Pc\*s\*c
+.br
+where \*(Pp denotes the terminal type
+  \(-> \*0 (``VT100'')
+  \(-> \*1 (``VT220'')
+.br
+and \*(Pv is the firmware version (for \fIxterm\fP, this is the XFree86
+patch number, starting with 95).
+In a DEC terminal, \*(Pc indicates the ROM cartridge
+registration number and is always zero.
+.
+.IP \\*(Cs\\*(Pm\\*s\\*d
+Line Position Absolute  [row] (default = [1,column]) (VPA)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*f
 Horizontal and Vertical Position [row;column] (default = [1,1]) (HVP)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*g
+.
+.IP \\*(Cs\\*(Ps\\*s\\*g
 Tab Clear (TBC)
   \*(Ps = \*0 \(-> Clear Current Column (default)
   \*(Ps = \*3 \(-> Clear All
-.IP \\*(Es\\*([[\\*(Pm\\*s\\*h
+.
+.IP \\*(Cs\\*(Pm\\*s\\*h
 Set Mode (SM)
+  \*(Ps = \*2 \(-> Keyboard Action Mode (AM)
   \*(Ps = \*4 \(-> Insert Mode (IRM)
+  \*(Ps = \*1\*2 \(-> Send/receive (SRM)
   \*(Ps = \*2\*0 \(-> Automatic Newline (LNM)
-.IP \\*(Es\\*([[\\*(Pm\\*s\\*l
-Reset Mode (RM)
-  \*(Ps = \*4 \(-> Replace Mode (IRM)
-  \*(Ps = \*2\*0 \(-> Normal Linefeed (LNM)
-.IP \\*(Es\\*([[\\*(Pm\\*s\\*m
-Character Attributes (SGR)
-  \*(Ps = \*0 \(-> Normal (default)
-  \*(Ps = \*1 \(-> Bold
-  \*(Ps = \*4 \(-> Underscore
-  \*(Ps = \*5 \(-> Blink (appears as Bold)
-  \*(Ps = \*7 \(-> Inverse
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*n
-Device Status Report (DSR)
-  \*(Ps = \*5 \(-> Status Report \*(Es\*([[\*0\*n (``OK'')
-  \*(Ps = \*6 \(-> Report Cursor Position (CPR) [row;column] as
-\*(Es\*([[\*(Ir\*s\*;\*(Ic\*s\*R
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*;\\*(Ps\\*s\\*r
-Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM)
-.IP \\*(Es\\*([[\\*(Ps\\*s\\*x
-Request Terminal Parameters (DECREQTPARM)
-.IP \\*(Es\\*([[\\*?\\*(Pm\\*s\\*h
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*h
 DEC Private Mode Set (DECSET)
   \*(Ps = \*1 \(-> Application Cursor Keys (DECCKM)
-  \*(Ps = \*2 \(-> Designate USASCII for character sets G0-G3.
-(In the VT102, this selects VT52 mode (DECANM), which \fIxterm\fP
-doesn't support.)
+  \*(Ps = \*2 \(-> Designate USASCII for character sets G0-G3 (DECANM),
+and set VT100 mode.
   \*(Ps = \*3 \(-> 132 Column Mode (DECCOLM)
   \*(Ps = \*4 \(-> Smooth (Slow) Scroll (DECSCLM)
   \*(Ps = \*5 \(-> Reverse Video (DECSCNM)
@@ -387,9 +748,16 @@
   \*(Ps = \*8 \(-> Auto-repeat Keys (DECARM)
   \*(Ps = \*9 \(-> Send Mouse X & Y on button press.
 See the section \fBMouse Tracking\fP.
+  \*(Ps = \*1\*2 \(-> Start Blinking Cursor (att610)
+  \*(Ps = \*1\*8 \(-> Print form feed (DECPFF)
+  \*(Ps = \*1\*9 \(-> Set print extent to full screen (DECPEX)
+  \*(Ps = \*2\*5 \(-> Show Cursor (DECTCEM)
+  \*(Ps = \*3\*0 \(-> Show scrollbar (rxvt).
+  \*(Ps = \*3\*5 \(-> Enable font-shifting functions (rxvt).
   \*(Ps = \*3\*8 \(-> Enter Tektronix Mode (DECTEK)
   \*(Ps = \*4\*0 \(-> Allow 80 \z\(<-\(-> 132 Mode
   \*(Ps = \*4\*1 \(-> \fImore\fP(1) fix (see \fIcurses\fP resource)
+  \*(Ps = \*4\*2 \(-> Enable Nation Replacement Character sets (DECNRCM)
   \*(Ps = \*4\*4 \(-> Turn On Margin Bell
   \*(Ps = \*4\*5 \(-> Reverse-wraparound Mode
   \*(Ps = \*4\*6 \(-> Start Logging
@@ -396,13 +764,56 @@
 (normally disabled by a compile-time option)
   \*(Ps = \*4\*7 \(-> Use Alternate Screen Buffer (unless
 disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*6\*6 \(-> Application keypad (DECNKM)
+  \*(Ps = \*6\*7 \(-> Backarrow key sends delete (DECBKM)
   \*(Ps = \*1\*0\*0\*0 \(-> Send Mouse X & Y on button press and release.
 See the section \fBMouse Tracking\fP.
   \*(Ps = \*1\*0\*0\*1 \(-> Use Hilite Mouse Tracking.
-See the section \fBMouse Tracking\fP.
-.IP \\*(Es\\*([[\\*?\\*(Pm\\*s\\*l
+  \*(Ps = \*1\*0\*0\*2 \(-> Use Cell Motion Mouse Tracking.
+  \*(Ps = \*1\*0\*0\*3 \(-> Use All Motion Mouse Tracking.
+  \*(Ps = \*1\*0\*1\*0 \(-> Scroll to bottom on tty output (rxvt).
+  \*(Ps = \*1\*0\*1\*1 \(-> Scroll to bottom on key press (rxvt).
+  \*(Ps = \*1\*0\*3\*5 \(-> Enable special modifiers for Alt and NumLock keys.
+  \*(Ps = \*1\*0\*3\*6 \(-> Send ESC when Meta modifies a key
+(enables the \fBmetaSendsEscape\fP resource).
+  \*(Ps = \*1\*0\*3\*7 \(-> Send DEL from the editing-keypad Delete key
+  \*(Ps = \*1\*0\*4\*7 \(-> Use Alternate Screen Buffer (unless
+disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*4\*8 \(-> Save cursor as in DECSC (unless
+disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*4\*9 \(-> Save cursor as in DECSC
+and use Alternate Screen Buffer, clearing it first (unless
+disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*5\*1 \(-> Set Sun function-key mode.
+  \*(Ps = \*1\*0\*5\*2 \(-> Set HP function-key mode.
+  \*(Ps = \*1\*0\*6\*0 \(-> Set legacy keyboard emulation (X11R6).
+  \*(Ps = \*1\*0\*6\*1 \(-> Set Sun/PC keyboard emulation of VT220 keyboard.
+.
+.IP \\*(Cs\\*(Pm\\*s\\*i
+Media Copy (MC)
+  \*(Ps = \*0 \(-> Print screen (default)
+  \*(Ps = \*4 \(-> Turn off printer controller mode
+  \*(Ps = \*5 \(-> Turn on printer controller mode
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*i
+Media Copy (MC, DEC-specific)
+  \*(Ps = \*1 \(-> Print line containing cursor
+  \*(Ps = \*4 \(-> Turn off autoprint mode
+  \*(Ps = \*5 \(-> Turn on autoprint mode
+  \*(Ps = \*1 \*0 \(-> Print composed display, ignores DECPEX
+  \*(Ps = \*1 \*1 \(-> Print all pages
+.
+.IP \\*(Cs\\*(Pm\\*s\\*l
+Reset Mode (RM)
+  \*(Ps = \*2 \(-> Keyboard Action Mode (AM)
+  \*(Ps = \*4 \(-> Replace Mode (IRM)
+  \*(Ps = \*1\*2 \(-> Send/receive (SRM)
+  \*(Ps = \*2\*0 \(-> Normal Linefeed (LNM)
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*l
 DEC Private Mode Reset (DECRST)
   \*(Ps = \*1 \(-> Normal Cursor Keys (DECCKM)
+  \*(Ps = \*2 \(-> Designate VT52 mode (DECANM).
   \*(Ps = \*3 \(-> 80 Column Mode (DECCOLM)
   \*(Ps = \*4 \(-> Jump (Fast) Scroll (DECSCLM)
   \*(Ps = \*5 \(-> Normal Video (DECSCNM)
@@ -410,95 +821,752 @@
   \*(Ps = \*7 \(-> No Wraparound Mode (DECAWM)
   \*(Ps = \*8 \(-> No Auto-repeat Keys (DECARM)
   \*(Ps = \*9 \(-> Don't Send Mouse X & Y on button press
+  \*(Ps = \*1\*2 \(-> Stop Blinking Cursor (att610)
+  \*(Ps = \*1\*8 \(-> Don't print form feed (DECPFF)
+  \*(Ps = \*1\*9 \(-> Limit print to scrolling region (DECPEX)
+  \*(Ps = \*2\*5 \(-> Hide Cursor (DECTCEM)
+  \*(Ps = \*3\*0 \(-> Don't show scrollbar (rxvt).
+  \*(Ps = \*3\*5 \(-> Disable font-shifting functions (rxvt).
   \*(Ps = \*4\*0 \(-> Disallow 80 \z\(<-\(-> 132 Mode
   \*(Ps = \*4\*1 \(-> No \fImore\fP(1) fix (see \fIcurses\fP resource)
+  \*(Ps = \*4\*2 \(-> Disable Nation Replacement Character sets (DECNRCM)
   \*(Ps = \*4\*4 \(-> Turn Off Margin Bell
   \*(Ps = \*4\*5 \(-> No Reverse-wraparound Mode
   \*(Ps = \*4\*6 \(-> Stop Logging
 (normally disabled by a compile-time option)
   \*(Ps = \*4\*7 \(-> Use Normal Screen Buffer
+  \*(Ps = \*6\*6 \(-> Numeric keypad (DECNKM)
+  \*(Ps = \*6\*7 \(-> Backarrow key sends backspace (DECBKM)
   \*(Ps = \*1\*0\*0\*0 \(-> Don't Send Mouse X & Y on button press and
-release
+release.
+See the section \fBMouse Tracking\fP.
   \*(Ps = \*1\*0\*0\*1 \(-> Don't Use Hilite Mouse Tracking
-.IP \\*(Es\\*([[\\*?\\*(Pm\\*s\\*r
+  \*(Ps = \*1\*0\*0\*2 \(-> Don't Use Cell Motion Mouse Tracking
+  \*(Ps = \*1\*0\*0\*3 \(-> Don't Use All Motion Mouse Tracking
+  \*(Ps = \*1\*0\*1\*0 \(-> Don't scroll to bottom on tty output (rxvt).
+  \*(Ps = \*1\*0\*1\*1 \(-> Don't scroll to bottom on key press (rxvt).
+  \*(Ps = \*1\*0\*3\*5 \(-> Disable special modifiers for Alt and NumLock keys.
+  \*(Ps = \*1\*0\*3\*6 \(-> Don't send ESC when Meta modifies a key
+(disables the \fBmetaSendsEscape\fP resource).
+  \*(Ps = \*1\*0\*3\*7 \(-> Send VT220 Remove from the editing-keypad Delete key
+  \*(Ps = \*1\*0\*4\*7 \(-> Use Normal Screen Buffer, clearing screen
+first if in the Alternate Screen (unless
+disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*4\*8 \(-> Restore cursor as in DECRC (unless
+disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*4\*9 \(-> Use Normal Screen Buffer and restore cursor
+as in DECRC (unless
+disabled by the \fBtiteInhibit\fP resource)
+  \*(Ps = \*1\*0\*5\*1 \(-> Reset Sun function-key mode.
+  \*(Ps = \*1\*0\*5\*2 \(-> Reset HP function-key mode.
+  \*(Ps = \*1\*0\*6\*0 \(-> Reset legacy keyboard emulation (X11R6).
+  \*(Ps = \*1\*0\*6\*1 \(-> Reset Sun/PC keyboard emulation of VT220 keyboard.
+.
+.IP \\*(Cs\\*(Pm\\*s\\*m
+Character Attributes (SGR)
+  \*(Ps = \*0 \(-> Normal (default)
+  \*(Ps = \*1 \(-> Bold
+  \*(Ps = \*4 \(-> Underlined
+  \*(Ps = \*5 \(-> Blink (appears as Bold)
+  \*(Ps = \*7 \(-> Inverse
+  \*(Ps = \*8 \(-> Invisible, i.e., hidden (VT300)
+  \*(Ps = \*2\*2 \(-> Normal (neither bold nor faint)
+  \*(Ps = \*2\*4 \(-> Not underlined
+  \*(Ps = \*2\*5 \(-> Steady (not blinking)
+  \*(Ps = \*2\*7 \(-> Positive (not inverse)
+  \*(Ps = \*2\*8 \(-> Visible, i.e., not hidden (VT300)
+  \*(Ps = \*3\*0 \(-> Set foreground color to Black
+  \*(Ps = \*3\*1 \(-> Set foreground color to Red
+  \*(Ps = \*3\*2 \(-> Set foreground color to Green
+  \*(Ps = \*3\*3 \(-> Set foreground color to Yellow
+  \*(Ps = \*3\*4 \(-> Set foreground color to Blue
+  \*(Ps = \*3\*5 \(-> Set foreground color to Magenta
+  \*(Ps = \*3\*6 \(-> Set foreground color to Cyan
+  \*(Ps = \*3\*7 \(-> Set foreground color to White
+  \*(Ps = \*3\*9 \(-> Set foreground color to default (original)
+  \*(Ps = \*4\*0 \(-> Set background color to Black
+  \*(Ps = \*4\*1 \(-> Set background color to Red
+  \*(Ps = \*4\*2 \(-> Set background color to Green
+  \*(Ps = \*4\*3 \(-> Set background color to Yellow
+  \*(Ps = \*4\*4 \(-> Set background color to Blue
+  \*(Ps = \*4\*5 \(-> Set background color to Magenta
+  \*(Ps = \*4\*6 \(-> Set background color to Cyan
+  \*(Ps = \*4\*7 \(-> Set background color to White
+  \*(Ps = \*4\*9 \(-> Set background color to default (original).
+.sp
+If 16-color support is compiled, the following apply.
+Assume that \fIxterm\fP's resources
+are set so that the ISO color codes are the first 8 of a set of 16.
+Then the \fIaixterm\fP colors are the bright versions of the ISO colors:
+  \*(Ps = \*9\*0 \(-> Set foreground color to Black
+  \*(Ps = \*9\*1 \(-> Set foreground color to Red
+  \*(Ps = \*9\*2 \(-> Set foreground color to Green
+  \*(Ps = \*9\*3 \(-> Set foreground color to Yellow
+  \*(Ps = \*9\*4 \(-> Set foreground color to Blue
+  \*(Ps = \*9\*5 \(-> Set foreground color to Magenta
+  \*(Ps = \*9\*6 \(-> Set foreground color to Cyan
+  \*(Ps = \*9\*7 \(-> Set foreground color to White
+  \*(Ps = \*1\*0\*0 \(-> Set background color to Black
+  \*(Ps = \*1\*0\*1 \(-> Set background color to Red
+  \*(Ps = \*1\*0\*2 \(-> Set background color to Green
+  \*(Ps = \*1\*0\*3 \(-> Set background color to Yellow
+  \*(Ps = \*1\*0\*4 \(-> Set background color to Blue
+  \*(Ps = \*1\*0\*5 \(-> Set background color to Magenta
+  \*(Ps = \*1\*0\*6 \(-> Set background color to Cyan
+  \*(Ps = \*1\*0\*7 \(-> Set background color to White
+.sp
+If \fIxterm\fP is compiled with the 16-color support disabled, it supports
+the following, from \fIrxvt\fP:
+  \*(Ps = \*1\*0\*0 \(-> Set foreground and background color to default
+.sp
+If 88- or 256-color support is compiled, the following apply.
+  \*(Ps = \*3\*8 ; \*5 ; \*(Ps \(-> Set foreground color to the second \*(Ps
+  \*(Ps = \*4\*8 ; \*5 ; \*(Ps \(-> Set background color to the second \*(Ps
+.sp
+.
+.IP \\*(Cs\\*(Ps\\*s\\*n
+Device Status Report (DSR)
+  \*(Ps = \*5 \(-> Status Report \*(Cs\*0\*n (``OK'')
+  \*(Ps = \*6 \(-> Report Cursor Position (CPR) [row;column] as
+.br
+\*(Cs\*(Ir\*s\*;\*(Ic\*s\*R
+.
+.IP \\*(Cs\\*?\\*(Ps\\*s\\*n
+Device Status Report (DSR, DEC-specific)
+  \*(Ps = \*6 \(-> Report Cursor Position (CPR) [row;column] as
+\*(Cs\*?\*(Ir\*s\*;\*(Ic\*s\*R
+(assumes page is zero).
+  \*(Ps = \*1\*5 \(-> Report Printer status as
+\*(Cs\*?\*1\*0\*s\*n (ready)
+or
+\*(Cs\*?\*1\*1\*s\*n (not ready)
+  \*(Ps = \*2\*5 \(-> Report UDK status as
+\*(Cs\*?\*2\*0\*s\*n (unlocked)
+or
+\*(Cs\*?\*2\*1\*s\*n (locked)
+  \*(Ps = \*2\*6 \(-> Report Keyboard status as
+.br
+\*(Cs\*?\*2\*7\*s\*;\*s\*1\*s\*;\*s\*0\*s\*;\*s\*0\*s\*n (North American)
+.br
+The last two parameters apply to VT400 & up, and denote keyboard ready and LK01 respectively.
+  \*(Ps = \*5\*3 \(-> Report Locator status as
+.br
+\*(Cs\*?\*5\*3\*s\*n Locator available, if compiled-in, or
+.br
+\*(Cs\*?\*5\*0\*s\*n No Locator, if not.
+.
+.IP \\*(Cs\\*s\\*!\\*p
+Soft terminal reset (DECSTR)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*(c"\\*p
+Set conformance level (DECSCL)
+Valid values for the first parameter:
+  \*(Ps = \*6\*1 \(-> VT100
+  \*(Ps = \*6\*2 \(-> VT200
+  \*(Ps = \*6\*3 \(-> VT300
+.br
+Valid values for the second parameter:
+  \*(Ps = \*0 \(-> 8-bit controls
+  \*(Ps = \*1 \(-> 7-bit controls (always set for VT100)
+  \*(Ps = \*2 \(-> 8-bit controls
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(c"\\*q
+Select character protection attribute (DECSCA).
+Valid values for the parameter:
+  \*(Ps = \*0 \(-> DECSED and DECSEL can erase (default)
+  \*(Ps = \*1 \(-> DECSED and DECSEL cannot erase
+  \*(Ps = \*2 \(-> DECSED and DECSEL can erase
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*r
+Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM)
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*r
 Restore DEC Private Mode Values.  The value of \*(Ps previously saved is
 restored.  \*(Ps values are the same as for DECSET.
-.IP \\*(Es\\*([[\\*?\\*(Pm\\*s\\*(cs
+.
+.IP \\*(Cs\\*(cs
+Save cursor (ANSI.SYS)
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*(cs
 Save DEC Private Mode Values.  \*(Ps values are the same as for DECSET.
-.IP \\*(Es\\*]\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
-Set Text Parameters
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*t
+Window manipulation (from \fIdtterm\fP, as well as extensions).
+Valid values for the first (and any additional parameters) are:
+  \*(Ps = \*1 \(-> De-iconify window.
+  \*(Ps = \*2 \(-> Iconify window.
+  \*(Ps = \*3 ; \fIx ; y\fP \(-> Move window to [x, y].
+  \*(Ps = \*4 ; \fIheight ; width\fP \(-> Resize the \fIxterm\fP window to height and width in pixels.
+  \*(Ps = \*5 \(-> Raise the \fIxterm\fP window to the front of the stacking order.
+  \*(Ps = \*6 \(-> Lower the \fIxterm\fP window to the bottom of the stacking order.
+  \*(Ps = \*7 \(-> Refresh the \fIxterm\fP window.
+  \*(Ps = \*8 ; \fIheight ; width\fP \(-> Resize the text area to [height;width] in characters.
+  \*(Ps = \*9 ; \*0 \(-> Restore maximized window.
+  \*(Ps = \*9 ; \*1 \(-> Maximize window (i.e., resize to screen size).
+  \*(Ps = \*1\*1 \(-> Report \fIxterm\fP window state.
+If the \fIxterm\fP window is open (non-iconified), it returns \*(Cs\*1\*t.
+If the \fIxterm\fP window is iconified, it returns \*(Cs\*2\*t.
+  \*(Ps = \*1\*3 \(-> Report \fIxterm\fP window position as
+\*(Cs\*3\*;\*(Ix\*;\*(Iy\*t
+  \*(Ps = \*1\*4 \(-> Report \fIxterm\fP window in pixels as
+\*(Cs\*s\*4\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+  \*(Ps = \*1\*8 \(-> Report the size of the text area in characters as
+\*(Cs\*s\*8\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+  \*(Ps = \*1\*9 \(-> Report the size of the screen in characters as
+\*(Cs\*s\*9\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+  \*(Ps = \*2\*0 \(-> Report \fIxterm\fP window's icon label as
+\*(Os\*s\*L\*s\fIlabel\fP\*s\*(ST
+  \*(Ps = \*2\*1 \(-> Report \fIxterm\fP window's title as
+\*(Os\*s\*l\*s\fItitle\fP\*s\*(ST
+  \*(Ps >= \*2\*4 \(-> Resize to \*(Ps lines (DECSLPP)
+.
+.IP \\*(Cs\\*u
+Save cursor (ANSI.SYS)
+.
+.IP \\*(Cs\\*(Pt\\*s\\*;\\*(Pl\\*s\\*;\\*(Pb\\*s\\*;\\*(Pr\\*s\\*(qu\\*w
+Enable Filter Rectangle (DECEFR)
+.br
+Parameters are [top;left;bottom;right].
+.br
+Defines the coordinates of a filter rectangle and activates it.
+Anytime the locator is detected outside of the filter rectangle,
+an outside rectangle event is generated and the rectangle is disabled.
+Filter rectangles are always treated as "one-shot" events.
+Any parameters that are omitted default to the current locator position.
+If all parameters are omitted, any locator motion will be reported.
+DECELR always cancels any prevous rectangle definition.
+.
+.IP \\*(Cs\\*(Ps\\*s\\*x
+Request Terminal Parameters (DECREQTPARM)
+.br
+if \*(Ps is a "0" (default) or "1", and \fBxterm\fR is emulating VT100,
+the control sequence elicits a response of the same form
+whose parameters describe the terminal:
+  \*(Ps \(-> the given \*(Ps incremented by 2.
+  \*1 \(-> no parity
+  \*1 \(-> eight bits
+  \*1 \*2 \*8 \(-> transmit 38.4k baud
+  \*1 \*2 \*8 \(-> receive 38.4k baud
+  \*1 \(-> clock multiplier
+  \*0 \(-> STP flags
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Pu\\*s\\*(qu\\*z
+Enable Locator Reporting (DECELR)
+.br
+Valid values for the first parameter:
+  \*(Ps = \*0 \(-> Locator disabled (default)
+  \*(Ps = \*1 \(-> Locator enabled
+  \*(Ps = \*2 \(-> Locator enabled for one report, then disabled
+.br
+The second parameter specifies the coordinate unit for locator reports.
+.br
+Valid values for the second parameter:
+  \*(Pu = \*0 or omitted \(-> default to character cells
+  \*(Pu = \*1 \(-> device physical pixels
+  \*(Pu = \*2 \(-> character cells
+.
+.IP \\*(Cs\\*(Pm\\*s\\*(qu\\*{
+Select Locator Events (DECSLE)
+.br
+Valid values for the first (and any additional parameters) are:
+  \*(Ps = \*0 \(-> only respond to explicit host requests (DECRQLP)
+             (default) also cancels any filter rectangle
+  \*(Ps = \*1 \(-> report button down transitions
+  \*(Ps = \*2 \(-> do not report button down transitions
+  \*(Ps = \*3 \(-> report button up transitions
+  \*(Ps = \*4 \(-> do not report button up transitions
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(qu\\*|
+Request Locator Position (DECRQLP)
+.br
+Valid values for the parameter are:
+  \*(Ps = \*0, 1 or omitted \(-> transmit a single DECLRP locator report
+.sp
+If Locator Reporting has been enabled by a DECELR, xterm will respond
+with a DECLRP Locator Report.  This report is also generated on button
+up and down events if they have been enabled with a DECSLE, or when
+the locator is detected outside of a filter rectangle, if filter rectangles
+have been enabled with a DECEFR.
+.sp
+  \(-> \*(Cs\*(Pe\*s\*;\*(Pb\*s\*;\*(Pr\*s\*;\*(Pc\*s\*;\*(Pp\*s\*&\*s\*w
+.sp
+Parameters are [event;button;row;column;page].
+.br
+Valid values for the event:
+  \*(Pe = \*0 \(-> locator unavailable - no other parameters sent
+  \*(Pe = \*1 \(-> request - xterm received a DECRQLP
+  \*(Pe = \*2 \(-> left button down
+  \*(Pe = \*3 \(-> left button up
+  \*(Pe = \*4 \(-> middle button down
+  \*(Pe = \*5 \(-> middle button up
+  \*(Pe = \*6 \(-> right button down
+  \*(Pe = \*7 \(-> right button up
+  \*(Pe = \*8 \(-> M4 button down
+  \*(Pe = \*9 \(-> M4 button up
+  \*(Pe = \*1\*0 \(-> locator outside filter rectangle
+.br
+``button'' parameter is a bitmask indicating which buttons are pressed:
+  \*(Pb = \*0 \(-> no buttons down
+  \*(Pb & \*1 \(-> right button down
+  \*(Pb & \*2 \(-> middle button down
+  \*(Pb & \*4 \(-> left button down
+  \*(Pb & \*8 \(-> M4 button down
+.br
+``row'' and ``column'' parameters are the coordinates of the locator
+position in the xterm window, encoded as ASCII decimal.
+.br
+The ``page'' parameter is not used by xterm, and will be omitted.
+.
+.Ed
+.
+.St
+.LP
+.B
+Operating System Controls
+.
+.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(ST
+.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
+Set Text Parameters.
+For colors and font,
+if \*(Pt is a "?", the control sequence elicits a response which consists
+of the control sequence which would set the corresponding value.
+The \fIdtterm\fP control sequences allow you to determine the icon name
+and window title.
   \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt
   \*(Ps = \*1 \(-> Change Icon Name to \*(Pt
   \*(Ps = \*2 \(-> Change Window Title to \*(Pt
+  \*(Ps = \*3 \(-> Set X property on top-level window. \*(Pt should be in the form
+"\fIprop=value\fP", or just "\fIprop\fP" to delete the property
+  \*(Ps = \*4 ; \fIc ; spec\fP \(-> Change Color Number \fIc\fP to
+the color specified by \fIspec\fP,
+i.e., a name or RGB specification as per \fIXParseColor\fP.
+Any number of \fIc name\fP pairs may be given.
+The color numbers correspond to the ANSI colors 0-7,
+their bright versions 8-15,
+and if supported, the remainder of the 88-color or 256-color table.
+.sp
+If a "?" is given rather than a name or RGB specification,
+xterm replies with a control sequence of the same form which can be used
+to set the corresponding color.
+Because more than one pair of color number and specification can
+be given in one control sequence, \fBxterm\fR can make more than one reply.
+.sp
+The 8 colors which may be set using \*1\*0 through \*1\*7 are
+denoted \fIdynamic colors\fR, since the corresponding control sequences
+were the first means for setting \fBxterm\fR's colors dynamically,
+i.e., after it was started.
+They are not the same as the ANSI colors.
+One or more parameters is expected for \*(Pt.
+Each succesive parameter changes the next color in the list.
+The value of \*(Ps tells the starting point in the list.
+The colors are specified by name or RGB specification as per \fIXParseColor\fP.
+.sp
+If a "?" is given rather than a name or RGB specification,
+xterm replies with a control sequence of the same form which can be used
+to set the corresponding dynamic color.
+Because more than one pair of color number and specification can
+be given in one control sequence, \fBxterm\fR can make more than one reply.
+.sp
+  \*(Ps = \*1\*0 \(-> Change VT100 text foreground color to \*(Pt
+  \*(Ps = \*1\*1 \(-> Change VT100 text background color to \*(Pt
+  \*(Ps = \*1\*2 \(-> Change text cursor color to \*(Pt
+  \*(Ps = \*1\*3 \(-> Change mouse foreground color to \*(Pt
+  \*(Ps = \*1\*4 \(-> Change mouse background color to \*(Pt
+  \*(Ps = \*1\*5 \(-> Change Tektronix foreground color to \*(Pt
+  \*(Ps = \*1\*6 \(-> Change Tektronix background color to \*(Pt
+  \*(Ps = \*1\*7 \(-> Change highlight color to \*(Pt
+.sp
   \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt (normally disabled by a
 compile-time option)
   \*(Ps = \*5\*0 \(-> Set Font to \*(Pt
-.IP \\*(Es\\*^\\*(Pt\\*s\\*(Es\\*(bS
-Privacy Message (PM)
-  \fIxterm\fP implements no PM functions; \*(Pt is ignored.
+If \*(Pt begins with a "#", index in the font menu, relative (if the
+next character is a plus or minus sign) or absolute.  A number is
+expected but not required after the sign (the default is the current
+entry for relative, zero for absolute indexing).
+.Ed
+.
+.St
+.LP
+.B
+Privacy Message
+.IP \\*(PM\\*(Pt\\*s\\*(ST
+\fIxterm\fP implements no \*(PM functions; \*(Pt is ignored.
 \*(Pt need not be printable characters.
-.IP \\*(Es\\*_\\*(Pt\\*s\\*(Es\\*(bS
-Application Program Command (APC)
-  \fIxterm\fP implements no APC functions; \*(Pt is ignored.
-\*(Pt need not be printable characters.
-.IP \\*(Es\\*c
-Full Reset (RIS)
-.IP \\*(Es\\*l
-Memory Lock (per HP terminals).  Locks memory above the cursor.
-.IP \\*(Es\\*m
-Memory Unlock (per HP terminals)
-.IP \\*(Es\\*n
-Invoke the G2 Character Set (LS2)
-.IP \\*(Es\\*o
-Invoke the G3 Character Set (LS3)
-.IP \\*(Es\\*|
-Invoke the G3 Character Set as GR (LS3R).  Has no visible effect in \fIxterm\fP.
-.IP \\*(Es\\*}
-Invoke the G2 Character Set as GR (LS2R).  Has no visible effect in \fIxterm\fP.
-.IP \\*(Es\\*(c~
-Invoke the G1 Character Set as GR (LS1R).  Has no visible effect in \fIxterm\fP.
 .Ed
+.
 .SH
+PC-Style Function Keys
+.ds RH Function Keys
+.LP
+If \fIxterm\fP does minimal translation of the function keys, it usually does this
+with a PC-style keyboard, so PC-style function keys result.
+Sun keyboards are similar to PC keyboards.
+Both have cursor and scrolling operations printed on the keypad,
+which duplicate the smaller cursor and scrolling keypads.
+.LP
+X does not predefine NumLock (used for VT220 keyboards) or Alt (used as
+an extension for the Sun/PC keyboards) as modifiers.
+These keys are recognized as modifiers when enabled
+by the \fBnumLock\fP resource,
+or by the DECSET \*1\*0\*3\*5 control sequence.
+.LP
+The cursor keys transmit the following escape sequences depending on the
+mode specified via the \fBDECCKM\fP escape sequence.
+.TS
+center;
+cf3	cf3	cf3
+lf3w(2c)	lf3w(2c)	lf3w(2c) .
+Key	Normal	Application
+_
+Cursor Up	\*(Cs\*A	\*(S3\*A
+Cursor Down	\*(Cs\*(cB	\*(S3\*(cB
+Cursor Right	\*(Cs\*C	\*(S3\*C
+Cursor Left	\*(Cs\*D	\*(S3\*D
+_
+.TE
+The home- and end-keys
+(unlike PageUp and other keys also on the 6-key editing keypad)
+are considered "cursor keys" by \fIxterm\fP.
+Their mode is also controlled by the \fBDECCKM\fP escape sequence:
+.TS
+center;
+cf3	cf3	cf3
+lf3w(2c)	lf3w(2c)	lf3w(2c) .
+Key	Normal	Application
+_
+Home	\*(Cs\*H	\*(S3\*H
+End	\*(Cs\*F	\*(S3\*F
+_
+.TE
+.LP
+The application keypad transmits the following escape sequences depending on the
+mode specified via the \fBDECPNM\fP and \fBDECPAM\fP escape sequences.
+Use the NumLock key to override the application mode.
+.LP
+Not all keys are present on the Sun/PC keypad (e.g., PF1, Tab), but are supported by
+the program.
+.TS
+center;
+cf3	cf3	cf3	cf3	cf3
+lf3w(2c)	lf3w(2c)	lf3w(2c)	lf3w(2c)	lf3w(2c) .
+Key	Numeric	Application	Terminfo	Termcap
+_
+Space	\*(Sp	\*(S3\*(Sp	-	-
+Tab	\*(Ta	\*(S3\*I	-	-
+Enter	\*(Cr	\*(S3\*M	kent	@8
+PF1	\*(S3\*P	\*(S3\*P	kf1	k1
+PF2	\*(S3\*Q	\*(S3\*Q	kf2	k2
+PF3	\*(S3\*R	\*(S3\*R	kf3	k3
+PF4	\*(S3\*S	\*(S3\*S	kf4	k4
+* \f1(multiply)\fP	\**	\*(S3\*j	-	-
++ \f1(add)\fP	\*+	\*(S3\*k	-	-
+, \f1(comma)\fP	\*,	\*(S3\*l	-	-
+- \f1(minus)\fP	\*-	\*(S3\*m	-	-
+\&. \f1(Delete)\fP	\*.	\*(Cs\*3\*(c~	-	-
+/ \f1(divide)\fP	\*/	\*(S3\*o	-	-
+0 \f1(Insert)\fP	\*0	\*(Cs\*2\*(c~	-	-
+1 \f1(End)\fP	\*1	\*(S3\*F	kc1	K4
+2 \f1(DownArrow)\fP	\*2	\*(Cs\*(cB	-	-
+3 \f1(PageDown)\fP	\*3	\*(Cs\*6\*(c~	kc3	K5
+4 \f1(LeftArrow)\fP	\*4	\*(Cs\*D	-	-
+5 \f1(Begin)\fP	\*5	\*(Cs\*E	kb2	K2
+6 \f1(RightArrow)\fP	\*6	\*(Cs\*C	-	-
+7 \f1(Home)\fP	\*7	\*(S3\*H	ka1	K1
+8 \f1(UpArrow)\fP	\*8	\*(Cs\*A	-	-
+9 \f1(PageUp)\fP	\*9	\*(Cs\*5\*(c~	ka3	K3
+= (equal)	\*=	\*(S3\*(XX	-	-
+_
+.TE
+They also provide 12 function keys, as well as a few other special-purpose keys.
+.TS
+center;
+cf3	cf3
+lf3w(2c)	lf3w(2c) .
+Key	Escape Sequence
+_
+F1	\*(S3\*P
+F2	\*(S3\*Q
+F3	\*(S3\*R
+F4	\*(S3\*S
+F5	\*(Cs\*1\*5\*(c~
+F6	\*(Cs\*1\*7\*(c~
+F7	\*(Cs\*1\*8\*(c~
+F8	\*(Cs\*1\*9\*(c~
+F9	\*(Cs\*2\*0\*(c~
+F10	\*(Cs\*2\*1\*(c~
+F11	\*(Cs\*2\*3\*(c~
+F12	\*(Cs\*2\*4\*(c~
+_
+.TE
+.LP
+Older versions of \fIxterm\fP implement different escape sequences for F1 through F4.
+These can be activated by setting the \fIoldXtermFKeys\fP resource.
+However, since they do not correspond to any hardware terminal, they have been deprecated.
+(The DEC VT220 reserves F1 through F5 for local functions such as \fBSetup\fP).
+.TS
+center;
+cf3	cf3
+lf3w(2c)	lf3w(2c) .
+Key	Escape Sequence
+_
+F1	\*(Cs\*1\*1\*(c~
+F2	\*(Cs\*1\*2\*(c~
+F3	\*(Cs\*1\*3\*(c~
+F4	\*(Cs\*1\*4\*(c~
+_
+.TE
+In normal mode, i.e., a Sun/PC keyboard
+when the \fBsunKeyboard\fP resource is false,
+\fIxterm\fP recognizes function key modifiers
+which are parameters appended before the final character
+of the control sequence.
+.TS
+center;
+cf3	lf3
+cf3w(2c)	lf3w(2c) .
+Code	Modifiers
+_
+2	Shift
+3	Alt
+4	Shift + Alt
+5	Control
+6	Shift + Control
+7	Alt + Control
+8	Shift + Alt + Control
+_
+.TE
+For example, shift-F5 would be sent as
+\*(Cs\*1\*5\*;\*2\*(c~
+
+If the \fBalwaysUseMods\fP resource is set, the Meta modifier also is
+recognized, making parameters 9 through 16.
+.SH
+VT220-Style Function Keys
+.LP
+However, \fIxterm\fP is most useful as a DEC VT102 or VT220 emulator.
+Set the \fBsunKeyboard\fP resource to true to force a Sun/PC keyboard
+to act like a VT220 keyboard.
+.LP
+The VT102/VT220 application keypad transmits unique escape sequences in
+application mode, which are distinct from the cursor and scrolling keypad:
+.TS
+center;
+cf3	cf3	cf3
+lf3w(2c)	lf3w(2c)	lf3w(2c) .
+Key	Numeric	Application
+_
+Space	\*(Sp	\*(S3\*(Sp
+Tab	\*(Ta	\*(S3\*I
+Enter	\*(Cr	\*(S3\*M
+PF1	\*(S3\*P	\*(S3\*P
+PF2	\*(S3\*Q	\*(S3\*Q
+PF3	\*(S3\*R	\*(S3\*R
+PF4	\*(S3\*S	\*(S3\*S
+* \f1(multiply)\fP	\**	\*(S3\*j
++ \f1(add)\fP	\*+	\*(S3\*k
+, \f1(comma)\fP	\*,	\*(S3\*l
+- \f1(minus)\fP	\*-	\*(S3\*m
+\&. \f1(period)\fP	\*.	\*(S3\*n
+/ \f1(divide)\fP	\*/	\*(S3\*o
+0	\*0	\*(S3\*p
+1	\*1	\*(S3\*q
+2	\*2	\*(S3\*r
+3	\*3	\*(S3\*(cs
+4	\*4	\*(S3\*t
+5	\*5	\*(S3\*u
+6	\*6	\*(S3\*v
+7	\*7	\*(S3\*w
+8	\*8	\*(S3\*x
+9	\*9	\*(S3\*y
+= (equal)	\*=	\*(S3\*(XX
+_
+.TE
+The VT220 provides a 6-key editing keypad,
+which is analogous to that on the PC keyboard.
+It is not affected by \fBDECCKM\fP or \fBDECPNM\fP/\fBDECPAM\fP:
+.TS
+center;
+cf3	cf3	cf3
+lf3w(2c)	lf3w(2c)	lf3w(2c) .
+Key	Normal	Application
+_
+\f1Insert\fP	\*(Cs\*2\*(c~	\*(Cs\*2\*(c~
+\f1Delete\fP	\*(Cs\*3\*(c~	\*(Cs\*3\*(c~
+\f1Home\fP	\*(Cs\*1\*(c~	\*(Cs\*1\*(c~
+\f1End\fP	\*(Cs\*4\*(c~	\*(Cs\*4\*(c~
+\f1PageUp\fP	\*(Cs\*5\*(c~	\*(Cs\*5\*(c~
+\f1PageDown\fP	\*(Cs\*6\*(c~	\*(Cs\*6\*(c~
+_
+.TE
+.LP
+The VT220 provides 8 additional function keys.
+With a Sun/PC keyboard, access these keys by Control/F1 for F13, etc.
+.TS
+center;
+cf3	cf3
+lf3w(2c)	lf3w(2c) .
+Key	Escape Sequence
+_
+F13	\*(Cs\*2\*5\*(c~
+F14	\*(Cs\*2\*6\*(c~
+F15	\*(Cs\*2\*8\*(c~
+F16	\*(Cs\*2\*9\*(c~
+F17	\*(Cs\*3\*1\*(c~
+F18	\*(Cs\*3\*2\*(c~
+F19	\*(Cs\*3\*3\*(c~
+F20	\*(Cs\*3\*4\*(c~
+_
+.TE
+.SH
+VT52-Style Function Keys
+.LP
+A VT52 does not have function keys, but it does have a numeric keypad and cursor keys.
+They differ from the other emulations by the prefix.
+Also, the cursor keys do not change:
+.TS
+center;
+cf3	cf3
+lf3w(2c)	lf3w(2c) .
+Key	Normal/Application
+_
+Cursor Up	\*(Es\*A
+Cursor Down	\*(Es\*(cB
+Cursor Right	\*(Es\*C
+Cursor Left	\*(Es\*D
+_
+.TE
+The keypad is similar:
+.TS
+center;
+cf3	cf3	cf3
+lf3w(2c)	lf3w(2c)	lf3w(2c) .
+Key	Numeric	Application
+_
+Space	\*(Sp	\*(Es\*?\*(Sp
+Tab	\*(Ta	\*(Es\*?\*I
+Enter	\*(Cr	\*(Es\*?\*M
+PF1	\*(Es\*P	\*(Es\*P
+PF2	\*(Es\*Q	\*(Es\*Q
+PF3	\*(Es\*R	\*(Es\*R
+PF4	\*(Es\*S	\*(Es\*S
+* \f1(multiply)\fP	\**	\*(Es\*?\*j
++ \f1(add)\fP	\*+	\*(Es\*?\*k
+, \f1(comma)\fP	\*,	\*(Es\*?\*l
+- \f1(minus)\fP	\*-	\*(Es\*?\*m
+\&. \f1(period)\fP	\*.	\*(Es\*?\*n
+/ \f1(divide)\fP	\*/	\*(Es\*?\*o
+0	\*0	\*(Es\*?\*p
+1	\*1	\*(Es\*?\*q
+2	\*2	\*(Es\*?\*r
+3	\*3	\*(Es\*?\*(cs
+4	\*4	\*(Es\*?\*t
+5	\*5	\*(Es\*?\*u
+6	\*6	\*(Es\*?\*v
+7	\*7	\*(Es\*?\*w
+8	\*8	\*(Es\*?\*x
+9	\*9	\*(Es\*?\*y
+= (equal)	\*=	\*(Es\*?\*(XX
+_
+.TE
+.SH
+Sun-Style Function Keys
+.LP
+The \fIxterm\fP program provides support for Sun keyboards more directly, by
+a menu toggle that causes it to send Sun-style function key codes rather than VT220.
+Note, however, that the \fIsun\fP and \fIVT100\fP emulations are not really
+compatible.  For example, their wrap-margin behavior differs.
+.LP
+Only function keys are altered; keypad and cursor keys are the same.
+The emulation responds identically.
+See the xterm-sun terminfo entry for details.
+.SH
+HP-Style Function Keys
+.LP
+Similarly, \fIxterm\fP can be compiled to support HP keyboards.
+See the xterm-hp terminfo entry for details.
+.SH
 Mouse Tracking
+.ds RH Mouse Tracking
 .LP
 The VT widget can be set to send the mouse position and other
 information on button presses.  These modes are typically used by
 editors and other full-screen applications that want to make use of
 the mouse.
+
+There are six mutually exclusive modes.
+One is DEC Locator mode, enabled by the
+DECELR \*(Cs\*(Ps\*s\*;\*(Ps\*s\*s\*'\*s\*z
+control sequence, and is not described here
+(control sequences are summarized above).
+The remaining five
+modes are each enabled (or disabled) by a different parameter in
+DECSET \*(Cs\*?\*(Pm\*s\*h
+or
+DECRST \*(Cs\*?\*(Pm\*s\*l
+control sequence.
+
+Manifest constants for the parameter values
+are defined in \fBxcharmouse.h\fP as follows:
+.
+.DS B
+#define SET_X10_MOUSE               9
+#define SET_VT200_MOUSE             1000
+#define SET_VT200_HIGHLIGHT_MOUSE   1001
+#define SET_BTN_EVENT_MOUSE         1002
+#define SET_ANY_EVENT_MOUSE         1003
+.DE
 .LP
-There are three mutually exclusive modes, each enabled (or disabled)
-by a different parameter in the DECSET (or DECRST) escape sequence.
-Parameters for all mouse tracking escape sequences generated by
-\fIxterm\fP encode numeric parameters in a single character as
-\fIvalue\fP+040.  For example, \*! is 1.  The screen
-coodinate system is 1-based.
-.LP
-X10 compatibility mode sends an escape sequence on button press
+The motion reporting modes are strictly \fIxterm\fP extensions, and are not
+part of any standard, though they are analogous to the DEC VT200 DECELR
+locator reports.
+
+Parameters (such as pointer position and button number) for all mouse
+tracking escape sequences generated by \fIxterm\fP
+encode numeric parameters in a single character as
+\fIvalue\fP+32.
+For example, \*! specifies the value 1.
+The upper left character position on the terminal is denoted as 1,1.
+
+X10 compatibility mode sends an escape sequence only on button press,
 encoding the location and the mouse button pressed.
 It is enabled by specifying parameter 9 to DECSET.
 On button press, \fIxterm\fP sends
-\*(Es\*([[\*M\*(Cb\*(Cx\*(Cy (6 characters).  \*(Cb is button\-1.
+\*(Cs\*M\*(Cb\*(Cx\*(Cy (6 characters).
+\*(Cb is button\-1.
 \*(Cx and \*(Cy are the x and y coordinates of the mouse when the
 button was pressed.
-.LP
+
 Normal tracking mode sends an escape sequence on both button press and
-release.  Modifier information is also sent.
+release.  Modifier key (shift, ctrl, meta) information is also sent.
 It is enabled by specifying parameter 1000 to DECSET.
 On button press or release, \fIxterm\fP sends
-\*(Es\*([[\*M\*(Cb\*(Cx\*(Cy.
+\*(Cs\*M\*(Cb\*(Cx\*(Cy.
 The low two bits of \*(Cb encode button information:
 0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release.
-The upper bits encode what modifiers were down when the button was
-pressed and are added together.  4=Shift, 8=Meta, 16=Control.
-\*(Cx and \*(Cy are the x and y coordinates of the mouse event.  The
-upper left corner is (1,1).
-.LP
+The next three bits encode the modifiers which were down when the button was
+pressed and are added together:  4=Shift, 8=Meta, 16=Control.
+Note however that the shift and control bits are normally unavailable
+because \fIxterm\fP uses the control modifier with mouse for popup menus,
+and the shift modifier is used in the default translations for button events.
+The \fIMeta\fP modifier recognized by \fIxterm\fP is the \fImod1\fP mask,
+and is not necessarily the "Meta" key (see \fIxmodmap\fP).
+\*(Cx and \*(Cy are the x and y coordinates of the mouse event, encoded as
+in X10 mode.
+
+Wheel mice may return buttons 4 and 5.
+Those buttons are represented by the same event codes
+as buttons 1 and 2 respectively,
+except that 64 is added to the event code.
+Release events for the wheel buttons are not reported.
+
 Mouse hilite tracking notifies a program of a button press, receives a
 range of lines from the program, highlights the region covered by
 the mouse within that range until button release, and then sends the
 program the release coordinates.
 It is enabled by specifying parameter 1001 to DECSET.
-Warning: use of this mode requires a cooperating program or it will
+Highlighting is performed only for button 1, though other button events
+can be received.
+\fBWarning:\fP use of this mode requires a cooperating program or it will
 hang \fIxterm.\fP
 On button press, the same information as for normal tracking is
 generated; \fIxterm\fP then waits for the program to send mouse
@@ -505,7 +1573,7 @@
 tracking information.
 \fIAll X events are ignored until the proper escape sequence is
 received from the pty:\fP
-\*(Es\*([[\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*T.
+\*(Cs\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*T.
 The parameters are \fIfunc, startx, starty, firstrow,\fP and \fIlastrow.\fP
 \fIfunc\fP is non-zero to initiate hilite tracking and zero to abort.
 \fIstartx\fP and \fIstarty\fP give the starting x and y location for
@@ -514,14 +1582,34 @@
 \fIlastrow.\fP  (The top of the screen is row 1.)
 When the button is released, \fIxterm\fP reports the ending position
 one of two ways: if the start and end coordinates are valid text
-locations: \*(Es\*([[\*t\*(Cx\*(Cy.  If either coordinate is past
+locations: \*(Cs\*t\*(Cx\*(Cy.  If either coordinate is past
 the end of the line:
-\*(Es\*([[\*T\*(Cx\*(Cy\*(Cx\*(Cy\*(Cx\*(Cy.
+\*(Cs\*T\*(Cx\*(Cy\*(Cx\*(Cy\*(Cx\*(Cy.
 The parameters are \fIstartx, starty, endx, endy, mousex,\fP and \fImousey.\fP
 \fIstartx, starty, endx, \fPand\fI endy\fP give the starting and
 ending character positions of the region.  \fImousex\fP and \fImousey\fP
 give the location of the mouse at button up, which may not be over a
 character.
+
+Button-event tracking is essentially the same as normal tracking, but
+\fIxterm\fP also reports button-motion events.  Motion events
+are reported only if the mouse pointer has moved to a different character
+cell.  It is enabled by specifying parameter 1002 to DECSET.
+On button press or release, \fIxterm\fP sends the same codes used by normal
+tracking mode.  On button-motion events, \fIxterm\fP adds 32 to the event code
+(the third character, \*(Cb).
+The other bits of the event code specify button and modifier keys as in normal mode.
+For example, motion into cell x,y with button 1
+down is reported as \*(Cs\*M\*@\*(Cx\*(Cy.
+( \*@ = 32 + 0 (button 1) + 32 (motion indicator) ).
+Similarly, motion with button 3
+down is reported as \*(Cs\*M\*(cB\*(Cx\*(Cy.
+( \*(cB = 32 + 2 (button 3) + 32 (motion indicator) ).
+
+Any-event mode is the same as button-event mode, except that all motion
+events are reported, even if no mouse button is down.
+It is enabled by specifying 1003 to DECSET.
+.
 .br
 .ds RH Tektronix 4014 Mode
 .SH
@@ -530,7 +1618,7 @@
 Most of these sequences are standard Tektronix 4014 control sequences.
 Graph mode supports the 12-bit addressing of the Tektronix 4014.
 The major features missing are
-the write-thru and defocused modes.
+the write-through and defocused modes.
 This document does not describe the commands used in the various
 Tektronix plotting modes but does describe the commands to switch modes.
 .St
@@ -559,7 +1647,7 @@
 .IP \\*(Es\\*(Si
 End 4015 APL mode (ignored by \fIxterm\fP) (ESC Ctrl-O)
 .IP \\*(Es\\*(Eb
-COPY (Save Tektronix Codes to file COPYyy-mm-dd.hh:mm:ss) (ESC Ctrl-W)
+COPY (Save Tektronix Codes to file COPYyyyy-mm-dd.hh:mm:ss) (ESC Ctrl-W)
 .IP \\*(Es\\*(Ca
 Bypass Condition (ESC Ctrl-X)
 .IP \\*(Es\\*(Su
@@ -574,7 +1662,7 @@
 Select #3 Character Set
 .IP \\*(Es\\*;
 Select Small Character Set
-.IP \\*(Es\\*]\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
+.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
 Set Text Parameters of VT window
   \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt
   \*(Ps = \*1 \(-> Change Icon Name to \*(Pt
@@ -620,4 +1708,49 @@
 .IP \\*(Us
 Alpha Mode (Ctrl-_)
 .Ed
+.
+.
+.br
+.ds RH VT52 Mode
+.SH
+VT52 Mode
+.LP
+Parameters for cursor movement are at the end of the \*(Es\*Y escape sequence.
+Each ordinate is encoded in a single character as \fIvalue\fP+32.
+For example, \*! is 1.
+The screen coodinate system is 0-based.
+.St
+.IP \\*(Es\\*A
+Cursor up.
+.IP \\*(Es\\*(cB
+Cursor down.
+.IP \\*(Es\\*C
+Cursor right.
+.IP \\*(Es\\*D
+Cursor left.
+.IP \\*(Es\\*F
+Enter graphics mode.
+.IP \\*(Es\\*G
+Exit graphics mode.
+.IP \\*(Es\\*H
+Move the cursor to the home position.
+.IP \\*(Es\\*I
+Reverse line feed.
+.IP \\*(Es\\*J
+Erase from the cursor to the end of the screen.
+.IP \\*(Es\\*K
+Erase from the cursor to the end of the line.
+.IP \\*(Es\\*Y\\*(Ps\\*s\\*(Ps
+Move the cursor to given row and column.
+.IP \\*(Es\\*Z
+Identify
+  \(-> \*(Es\*s\*/\*s\*Z (``I am a VT52.'')
+.IP \\*(Es\\*=
+Enter alternate keypad mode.
+.IP \\*(Es\\*>
+Exit alternate keypad mode.
+.IP \\*(Es\\*<
+Exit VT52 mode (Enter VT100 mode).
+.Ed
+.
 .if n .pl \n(nlu+1v
diff -urwb X11R6.6/xc/doc/specs/xtrans/Xtrans.mm release1/cvs-ro/xc/doc/specs/xtrans/Xtrans.mm
--- X11R6.6/xc/doc/specs/xtrans/Xtrans.mm	Thu Apr 13 09:38:51 2000
+++ release1/cvs-ro/xc/doc/specs/xtrans/Xtrans.mm	Wed Nov 26 14:48:18 2003
@@ -1,3 +1,4 @@
+.\" $XFree86: xc/doc/specs/xtrans/Xtrans.mm,v 1.3 2003/11/16 16:40:19 herrb Exp $
 '\".nr Ej 1
 .PH "'''"
 .ce
@@ -25,7 +26,7 @@
 NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .sp
-Copyright 1993, 1994 X Consortium
+Copyright 1993, 1994, 2002 The Open Group
 .sp  
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the ``Software''), to deal
@@ -40,15 +41,15 @@
 THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 .sp
-Except as contained in this notice, the name of the X Consortium shall not be
+Except as contained in this notice, the name of The Open Group shall not be
 used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
+in this Software without prior written authorization from The Open Group.
 .sp
-X Window System is a trademark of X Consortium, Inc.
+X Window System is a trademark of The Open Group, Inc.
 .sp
 Designed by Stuart Anderson (NCR) with help from Ralph Mor (X Consortium)
 .sp
@@ -158,7 +159,8 @@
 
     int	(*CreateListener)(
 	XtransConnInfo,		/* connection */
-	char *			/* port */
+	char *,			/* port */
+	int			/* flags */
     );
 
     int	(*ResetListener)(
@@ -322,7 +324,7 @@
 Note: Based on current usage, the complimentary function TRANS(GetOption)()
 is not necessary.
 .LI
-int TRANS(CreateListener)(XtransConnInfo connection, char *port)
+int TRANS(CreateListener)(XtransConnInfo connection, char *port, int flags)
 .P
 This function sets up the server endpoint for listening.
 The parameter \fIconnection\fR is an endpoint that was obtained from
@@ -332,6 +334,10 @@
 If \fIport\fR is NULL, then the transport may attempt to allocate any
 available TSAP for this connection. If the transport cannot support this,
 then this function will return a failure.
+The \fIflags\fR parameter can be set to ADDR_IN_USE_ALLOWED to allow
+the call to the underlying binding function to fail with a EADDRINUSE
+error without causing the TRANS(CreateListener) function itself to
+fail.
 This function return 0 on success and -1 on failure.
 .LI
 int TRANS(ResetListener)(XtransConnInfo connection)
@@ -554,7 +560,7 @@
 independent. This function will have to be used if a radically different
 transport type is added, or a transport dependent option is defined.
 .LI
-int CreateListener (struct _Xtransport *thistrans, char *port )
+int CreateListener (struct _Xtransport *thistrans, char *port, int flags )
 .P
 This function takes a transport endpoint opened for a server, and sets it
 up to listen for incoming connection requests. The parameter \fIport\fR
@@ -561,6 +567,12 @@
 should contain the port portion of the address that was passed to the Open
 function.
 .P
+The parameter \fIflags\fR should be set to ADDR_IN_USE_ALLOWED if the 
+underlying transport endpoint may be already bound and this should not
+be considered as an error. Otherwise \fIflags\fR sould be set to 0. 
+This is used by IPv6 code, where the same socket can be bound to both
+an IPv6 address and then to a IPv4 address.
+.P
 This function will bind the transport into the transport name space if
 applicable, and fill in the local address portion of the XtransConnInfo
 structure. The transport endpoint will then be set to listen for
@@ -627,7 +639,8 @@
 .TS
 center;
 l l .
-TCPCONN	Enables the INET Domain Socket based transport
+TCPCONN	Enables the INET (IPv4) Domain Socket based transport
+IPv6	Extends TCPCONN to enable IPv6 Socket based transport
 UNIXCONN	Enables the UNIX Domain Sokcet based transport
 STREAMSCONN	Enables the TLI based transports
 LOCALCONN	Enables the SYSV Local connection transports
@@ -647,6 +660,8 @@
 Internet	T{
 inet
 .br
+inet6
+.br
 tcp
 .br
 udp
@@ -770,5 +785,5 @@
 .P
 The file \fIXtransint.h\fR contains much of the transport related code that
 previously in Xlibint.h and Xlibnet.h. This will make the definitions
-available for all transport users. This should also obsolete the equivilent
+available for all transport users. This should also obsolete the equivalent
 code in other libraries.

--------------040606030101080006000900--