#
X Window System,
Version 11, Release 2
X11R2 was the second release of the X Window System, Version 11 from MIT.
It was
released in
March 1988,
with the following changes excerpted from the release notes.
The sources are available for download for historical reference from
http://www.x.org/releases/X11R2/.
## Overview
This is the second release of Version 11 of the X Window System from MIT.
It is substantially more robust than the previous version and should provide a
solid foundation upon which applications may be developed. No changes have been
made to the X Protocol; the Resource Manager and the extension mechanism were
the only parts of Xlib that were changed in incompatible ways. However, the
command line arguments for specifying the server to contact and the default
geometry for an application's main window have been changed in all supported
clients. Also, the format for specifying default resources has been changed.
This release contains two separate distributions: one for software that
is supported by the staff of the X Consortium, and one for user-contributed
software that is provided “as is” as public service. Furthermore,
printable versions of many documents are provided separately from the source
code to make loading subsets of the release easier. Over time, we expect
there to be migration in both directions between the two distributions.
The document *X Window System Protocol, Version 11* is the final
authority on what is and is not part of the core X Window System protocol.
The server provided in this distribution is a sample implementation, not
a specification of how servers must be written.
This release contains four higher level toolkits to make designing and
implementing applications easier:
* *X Toolkit Intrinsics*
Currently under review by the X Consortium for possible inclusion in
the X standard, this package provides a collection of resource, event,
and object managers that may be used to build user interface objects
called *widgets*. A sample set of widgets is provided.
Sources are located in *lib/Xt/* and *lib/Xaw/*.
* *Xrlib*
This is a collection of User Interface utilities and higher-level objects
written by Hewlett-Packard. Future releases will use the X Toolkit
Intrinsics. Sources are located in *contrib/Xr11/*.
* *Andrew Toolkit*
Developed by IBM and Carnegie-Mellon University for the CMU Andrew System,
this package provides a collection of integrated, high-level objects and
applications. Sources are located in *contrib/andrew/*.
* *InterViews*
Developed at Stanford University, this package
provides tools for building user interface objects in the C++ programming
language. Source are located in *contrib/InterViews/*.
The X Toolkit has changed substantially since the last release (note
that it is now called “Xt” instead of “Xtk”). Although additional
functionality will probably be added in future releases, the interfaces
documented in the *X Toolkit Intrinsics - C Language X Interface* are
expected to remain fairly stable.
For wider portability, applications should include the new header file
*<X11/Xos.h>* instead of *<strings.h>*,
*<string.h>*, *<time.h>*, *<sys/time.h>*, *<fcntl.h>*,
or *<sys/file.h>*.
To make transition from X10 to X11 easier, a protocol converter that
allows binary X10 programs to be run on X11 displays has been provided.
In addition, this release uses “X11” instead of “X” wherever there is
a conflict with X10 files of the same name (e.g.
*/usr/include/X11/*, */usr/lib/X11/*, */usr/bin/X11/*,
and *-lX11*). All programs should now #include X header files using
“<X11/*file*>”.
This release should build and install without modification on machines running
the following operating systems: 4.3bsd, Ultrix 2.0, SunOS 3.4, HP-UX 6.01,
and Apollo Domain/IX 9.7.
## What's New in this Release
This release differs from the previous one in the following areas:
### X now has an official name
The X Consortium has designated the following as the official names of the
X Window System:
* X
* X Window System
* X Version 11
* X Window System, Version 11
* X11
Note that the phrases X.11, X-11, X Windows or any permutation thereof, are
explicitly excluded from this list and should not be used to describe the
X Window System (window system should be thought of as one word). In addition,
*X Window System* is a trademark of MIT and should be acknowledged
as such whenever it is used.
### many, many bugs fixed
A large number of bugs have been fixed in the server, the libraries,
and the clients. Many parts of the sample server that were broken in
in the previous release have been
fixed, and client workarounds for old bugs have been removed; old servers
may not work properly with new clients.
Many of the byte order problems have
been fixed; this release should work equally well on both big endian and
little endian architectures.
### new servers
Native ddx source code has been contributed for the following servers:
Apollo's monochrome and color displays; Digital's QDSS display;
Hewlett-Packard's 9000/series 300 machines
(310, 320, 330, and 350) with the 98547A, 98545A, and 98544A displays; and
IBM's EGA, Megapel, 8514, and VGA displays. All of these server
implementations use special display hardware to gain good performance.
### compressed fonts
Many servers now do automatic uncompression of fonts that are stored in
*compress(1)* format. This can save a substantial amount of disk space
for seldomly used fonts.
### Xrm merged into Xlib
The Resource Manager has been merged into Xlib and is now used by the
*XGetDefault* routine and the X Toolkit. This means that
defaults stored in the server using the *xrdb(1)* program are now honored
by all programs. There is also a new environment variable called
XENVIRONMENT, that specifies the name of an additional resource file to
be merged in on top of the server defaults and any application defaults.
The format for specifying resources has changed slightly to allow wildcarding
within resource hierarchies (i.e. “program*name: value”). See the Xlib
documentation on using the Resource Manager for more details.
### X Toolkit Specification and implementation
The X Toolkit Specification and a sample implementation are included in this
release. The X Toolkit provides a collection of resource, event, and
object managers upon which user interface objects called *widgets* are
built. This specification is currently under review by the X Consortium
for possible inclusion in the X standard. The beginnings of an Athena
widget set are also provided.
### new -display and -geometry command line arguments
All supported clients have been changed to require a “-display” argument
in command line specifications of the X server to use. Programs in
previous releases mistakenly assumed that any command line argument that
contained a colon (:) was a display name. This caused severe problems for
sites with distributed file systems and for the new “-xrm” command line
option in all X Toolkit clients. Similarly, the old “=geom” is being
replaced by “-geometry geom”.
All programs should accept
-display and -geometry. Unambiguous abbreviations are allowed so long
as the full name may also be given.
### fewer flushes in Xlib
The Xlib event checking routines
*XNextEvent*,
*XPeekEvent*,
*XIfEvent*,
*XCheckIfEvent*,
*XPeekIfEvent*,
*XWindowEvent*,
*XCheckWindowEvent*,
*XMaskEvent*,
*XCheckMaskEvent*,
*XCheckTypedEvent*,
*XCheckTypedWindowEvent*, and
*XPendingEvent*
have been changed to only flush the output buffer when they are about to
block, instead
of doing a flush on every call. This modification is compatible with the
previous release and should not require any client code changes. Applications
that do a lot of event checking will notice an increase in performance.
### new send_event flag in Xlib XEvents
Events originating from another client using the *XSendEvent* routine
no longer have the eighth bit of the event type set. Instead, a new
“send_event” flag has been added to the various event structures. Because
of this,
all clients should be recompiled before being linked with the new
library.
### padding added to Xlib XEvents
To provide room in the event structures for extensions, a small amount of
padding has been added to all events. Although no client
code changes are necessary,
all programs should be recompiled before being
linked with the new library.
### serial number tracking in Xlib
Support for tracking serial numbers of requests has been added. The
protocol provides this information, but the previous release of the library
discarded it. Two new macros *NextRequest* and
*LastKnownRequestProcessed* (and corresponding routines) have been added
to return the serial number of the next request and the serial number of
the last request known to have been executed by the server.
### new XEventsQueued routine in Xlib
A new routine, *XEventsQueued*, has been added to bring together the
functionality of *XQLength* and *XPending* (i.e. they have been
rewritten to use the new routine) and to add the ability to
do a “non-flushing *XPending*.” New clients
should use *XEventsQueued* instead of the old routines.
### new XCreatePixmapFromBitmapData routine in Xlib
A new routine, *XCreatePixmapFromBitmapData*, has been added to create
pixmaps of arbitrary depths given *bitmap(1)* format data. This should be
used to create tiles (for backgrounds and borders) rather than
*XCreateBitmapFromData* (which creates masks for defining clipping
regions, cursor shapes, icon shapes, and stipple patterns).
### misdeclared types fixed in Xlib
A number of width, height, and byte count arguments that should have been
declared unsigned, but were not, have been fixed.
### new XUnionRectWithRegion to Xlib
A new routine, *XUnionRectWithRegion*, has been added to merge a rectangle
with a region. This is useful for implementing exposure compression.
### XPutImage, XPutPixel and XGetPixel fixed in Xlib
The Xlib routines *XPutImage*, *XPutPixel* and *XGetPixel*
have had many bugs fixed.
### new X10 to X11 protocol translator
A client that masquerades as an X10 server but which uses X11 for input
and output is now available. It allows
X10 programs to run, unmodified, on X11 displays and should make changing
over from X10 to X11 much easier.
### reimplementations of old clients
The *xrdb* and *xmodmap* clients have been rewritten to provide
a substantial number of new features. The new *xrdb* can use the
C preprocessor to selectively load resources, merge in new
resources, and edit current defaults into resource files. The new
*xmodmap* reads description files that allow you to remap keys on the
keyboard as well as redefine modifier keys. Both programs support the syntax
of the versions in the previous release (except for the new -display
requirements).
### new clients
Two new programs, *xlogo* and *xbiff*, have been added to the
supported distribution. These programs use the Logo and Mailbox widgets
from the Athena widget set: *xlogo* displays the X Window System logo, and
*xbiff* provides a little mailbox that pops up when you have mail.
### old X Toolkit removed
All of the clients that used the old versions of the X Toolkit now use the
version available in this release. Therefore, libXtk and liboldXtk have been
dropped from this release.
### new InterViews toolkit
Source code and documentation for a
new version of the InterViews toolkit from Stanford University are available
in the user-contributed distribution.
### Andrew Toolkit
Source code and documentation for the Andrew Toolkit, developed by IBM and
Carnegie-Mellon University are available in the user-contributed distribution.
### Xrlib
Source code and documentation for an X11 version of the Hewlett-Packard
Xrlib toolkit are available in the user-contributed distribution.
### CLUE
The Common Lisp User Interface Environment draft specification is available
in the user-contributed distribution.
### Cray patches
A collection of patches to make the version of Xlib distributed in the previous
release work on a CRAY-XMP or CRAY-2 under UNICOS is available in the
user-contributed distribution. Support for these platforms will be integrated
in the next release.
### MetaFont GF to X BDF converter
A filter for generating X BDF font files from MetaFont GF descriptions is
available in the user-contributed distribution.
### new gnuplot
A new version of the gnuplot package is available in the user-contributed
distribution.
### Kanji xterm
A version of *xterm* that supports kanji is available in the
user-contributed distribution. A public domain Kanji font has also been
added to *fonts/bdf/*.
### XMenu no longer supported
The XMenu package is obsolete and will no longer be supported. It has been
moved to the user-contributed distribution and will be dropped from future
releases.
### Portable Bitmap Toolkit
A “Portable Bitmap Toolkit” for converting bitmaps to and from various
formats is available in the user-contributed distribution.
### TeXX
A dvi file previewer for examining *TeX* output is available in the
user-contributed distribution.
### xcalendar
A sample X Toolkit application for maintaining a desktop calendar is available
in the user-contributed distribution.
### xman
A rewrite of the X10 *xman* program to the X Toolkit is available in the
user-contributed distribution.
### xmore
A rewrite of the X10 *xmore* program to the X Toolkit is available in the
user-contributed distribution.
### xperfmon
A system parameter monitor for operating systems derived from 4.2bsd is
available in the user-contributed distribution.
### xshell
A port of the X10 *xshell* program is available in the user-contributed
distribution.
Copyright © 1988 by the
Massachusetts Institute of Technology
.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
M.I.T. makes no representations about the suitability of
this software for any purpose. It is provided "as is"
without express or implied warranty.
Ultrix and Ultrix-32 are trademarks of Digital Equipment Corporation;
SunOS is a trademark of Sun Microsystems, Inc.; HP-UX is a trademark of
Hewlett-Packard, Domain is a trademark of Apollo Computer, PostScript is a
trademark of Adobe Systems Inc., and Unix is a trademark of AT&T Bell
Laboratories.