#
X Window System,
Version 11, Release 3
X11R3 was the third release of the X Window System, Version 11 from MIT.
It was
released in
October 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/X11R3/.
## Overview
Substantial progress has been made in improving the robustness and general
usability of the sample server, libraries, and applications.
Many bugs have been fixed, support for
several new platforms has been added, and backing store and save-unders have
been implemented. No incompatible changes have been made to either the
core Protocol or to the *Xlib* programming library.
Several changes have been made to the X Toolkit Intrinsics that will
require minor additions to widget class records. Professionally designed
font families from Adobe Systems, Inc. and Digital Equipment Corporation,
and from Bitstream, Inc. have replaced the chaotic collection that was
shipped in the previous releases.
This may require some minor adjustments of user preferences files.
Fonts are no longer named according to the files in which they
are stored; instead, the server reads a table out of each directory that
specifies in which file to look for each font. In addition, support for
wildcarding and aliasing font names has been added.
Since the last release, the X Consortium has added the following specifications
to the X standard:
* *X Toolkit Intrinsics*
The X Toolkit Intrinsics as specified in the document
X Toolkit Intrinsics - C Language Interface have been adopted as
a non-exclusive, required standard for toolkit development. Any vendor
that ships *Xlib* is now expected to provide *Xt* as well.
Vendors are free to develop and ship alternative toolkits, but they if
they ship *Xlib*, they should also ship *Xt*. Applications
developers should note that this specification does not include a widget
set.
* *BDF Font File Format*
The Bitmap Distribution Format (BDF) as specified in the document
Bitmap Distribution Format Format 2.1 has been adopted as a
non-exclusive, required standard for font file interchange. Any
vendor that ships an X Window System server is expected to provide a
way of translating BDF fonts into the appropriate server-specific format.
To avoid conflict with Version 10 applications, all C language source code is
expected to use the prefix `X11/` when including header files as well as
use the library name `libX11.a` or the loader option `-lX11` when
linking.
In addition, UNIX programs are expected to use the command line options
`-display host:dpy` and `-geometry geometryspec` in place of the
obsolete `host:dpy` or `=geometryspec` formats.
Applications that ignore these guidelines will no longer
function properly with this release.
Font support in the sample server has been improved in several ways:
* *font names different from file names*
A font's name is now determined by the contents of the property named FONT
rather than the name of the file in which it is stored. A new utility named
*mkfontdir* is used to scan the fonts in a directory and build a database
listing each font name and the file in which it is stored. The server then
uses this database when looking for fonts in a given directory.
* *new font naming scheme*
A new convention for uniquely naming fonts of any style, resolution, and
size is now used for all of the new core fonts.
* *wildcarding in font names*
The sample server now supports wildcard characters in font names (such as
would be given on a command line or in a resource database). This makes
specifying fonts which use the new naming scheme much easier. This behavior
is allowed by the Protocol but is not guarranteed in other servers.
* *font name aliasing*
Font directories may now contain a list of font name synonyms which may be
used as alternate names for existing fonts. This list is stored in the
file `fonts.alias` and is read whenever the font database is scanned by the
server.
* *new fonts*
Adobe Systems, Inc. and Digital Equipment Corporation have jointly donated 5
families of fonts (*Courier*, *Times*, *Helvetica*, *New Century Schoolbook*,
and *Symbol*) in a variety of sizes, styles and weights. Bitstream, Inc.
has donated its *Charter* font family in the same sizes, styles and weights.
Most of the fonts that were shipped in previous releases have been moved to
the user-contributed distribution, and all core clients have been converted
to use the new fonts. Applications developers and general users are very
strongly urged to use the new fonts.
This release should build and install on machines running
the following operating systems:
4.3+tahoe, Ultrix, SunOS, HP-UX, Domain/IX, A/UX, and UNICOS, and AOS 4.3.
See any `README` files in the appropriate `server/ddx/` directories or
`*.macros` files in `util/imake.includes/` for details.
## What's New in this Release
The primary focus of this release has been to fix bugs in the server and in
the base programming libraries. In addition, several key features have been
added so that this release can provide a clean, sturdy foundation for
developing applications.
### Changes to the core distribution
The following additions, deletions, and modifications have been made to the
software in the core distribution. Users of the old fonts will need to edit
their resources files. Widget writers will need to following the instructions
in the document
Converting Widgets from X11 Release 2 to X11 Release 3.
* 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 the previous
release have been fixed. In particular, ink metrics in fonts have been
fixed; client errors in computing character sizes will now be easy to spot.
* build configuration simplified
The configuration templates in `util/imake.includes` have been restructured
to make per-server and per-site changes easier to make. A `README` file in
that directory now describes each of the parameters that may be set and
site-specific changes have been isolated in a new file named `site.def`.
The template file `Imake.tmpl` should never need to be modified.
* new servers
New support has been added to the sample server for the following platforms:
Parallax video graphics processor for Suns and Vaxes, and
Apple Macintosh II under A/UX.
* new fonts
Adobe Systems, Inc. and Digital Equipment Corporation have jointly donated
BDF font files for the *Courier*, *Times*, *Helvetica*,
*New Century Schoolbook*, and *Symbol* families at 8, 10, 12, 14, 18, and
24 point sizes, Roman and Italic or Oblique styles, medium and bold weights,
for 75 dot per inch monitors.
Bitstream, Inc. has donated BDF font files for its *Charter* family at the
same sizes, styles, and weights for both 75 and 100 dpi monitors.
Both donations use the ISO Latin-1 character set.
All of the core clients have been changed to use the new fonts. The fonts
that were shipped with previous releases have been moved to the
user-contributed distribution (except for 6x10, 6x12, 6x13, 8x13, 8x13bold,
and 9x15).
* font name wildcarding
The sample server now accepts the same wildcard characters in the *OpenFont*
request as in the *ListFonts* request. This is very useful for refering to
fonts with very long names, such as those in the new font sets. Users are
encouraged to carefully select wildcarded names so that they will work
properly on monitors with different resolutions (for example, when specifying
a size, use a wild card for the pixel size, but specify the point size).
Note that this behavior is allowed by the Protocol, but is not required of
other servers.
* font names separated from file names
Font names are no longer tied to the names of the files in which they are
stored. Instead, the name of the font is taken from the FONT property in the
font data. A script for generating the appropriate font name from the other
properties in a font file may be found in `util/scripts/fontname.sh`. The
sample server no longer scans font directories, but rather looks in a
database created by the *mkfontdir* program.
* font name aliases support
The sample server now supports multiple names for a single font. These are
stored in a file named `fonts.alias` in each font directory and may refer to
any font. This is very useful for providing collections of symbolic names
for fonts.
* BDF font format now a standard
The X Consortium has adopted the BDF font format as a non-exclusive standard.
Server vendors are now expected to provide a program for converting BDF files
to whatever format is used by their server. The sample server font compiler
has been renamed *bdftosnf* and has been fixed to properly generate ink
metrics for terminal emulator fonts.
* *bdftosnf* and *showsnf* installed
The *bdftosnf* and *showsnf* utilities are now installed for public use.
* definition of wide arcs changed
The definition of wide arcs has been fixed to be a brush centered on and
normal to the path described by the arc. The old definition used to draw
arcs of non-uniform width.
* backing store and save-unders supported
The sample server now supports backing store and save-unders. The backing
store hooks which were unused in the previous release have changed; server
developers should study the new interfaces.
* X Toolkit Intrinsics Standard Adopted
The X Toolkit Intrinsics (frequently refered to as *Xt*) have been reviewed
by the X Consortium and are now part of the X standard. Any vendor that
ships *Xlib* is expected to ship *Xt*. Some interface and widget class
record changes have been made since the previous release. Sources for the
document
Converting Widgets from X11 Release 2 to X11 Release 3 may be
found in `doc/tutorials/r3widgets.ms`. Applications that used the proper
interfaces and data types should simply recompile and work. However,
application writers should also read the conversion tutorial as certain
programming errors that might not have been visible in previous releases
will become noticable in this release. Note that the *Xt* standard does
not include a widget set.
* Athena widget enhancements
A new List widget has been added the Athena widget set. A prototype menu
widget that will eventually be added to this set is available in the
user-contributed distribution in the directory `contrib/widgets/MenuBox/`.
The Athena VendorShell widget now supports specifying icon pixmaps as
resources. The text widget now supports selections.
* new Miscellaneous Utilities library
A library named *Xmu* containing miscellaneous utilities to support the MIT
clients has been added. It currently has a variety of X Toolkit converters
as well as routines for displaying *Xlib*-like XError messages, drawing
rounded rectangles, converting ISO Latin-1 strings to lower case, and reading
bitmap files. It is not part of the X standard and is expected to be a
repository for generally useful routines. It only uses external interfaces
to the standard libraries and should be portable to vendor-supplied
platforms.
* *Xlib* support for 64bit architectures
The internals of *Xlib* have been reworked to support 64 bit machine
architectures and Cray supercomputers running UNICOS in particular.
Extension writers should look at the new internal interfaces for sending and
receiving data.
* *Xlib* Property packing semantics clarified
The `XGetWindowProperty` and `XChangeProperty` now take care of converting
between host data objects (e.g. unsigned char, unsigned short, and unsigned
long) and network data objects (e.g. CARD8, CARD16, and CARD32).
Applications which store data in or retreive data from properties should
also use arrays of host data objects instead of structures.
* new routines in *Xlib*
The following routines have been added to *Xlib* for accessing data
from opaque structures: `XMaxRequestSize`, `XResourceManagerString`,
`XDisplayMotionBufferSize`, `XDisplayKeycodes`, and `XVisualIDFromVisual`.
* new Display Manager *xdm*
A new, portable system for running X and starting user sessions has been
added to this release. This Display Manager, called *xdm*, provides a
convenient way for sites to run X automatically. Site administrators may
easily tailor it provide an wide variety of environments. This new utility
superceeds *xterm -L* as well as many uses of *xinit*. Future releases will
concentrate on providing even nicer user interfaces.
* new utilities
Several new utility programs have been provided: *xdpyinfo* for printing out
information about a particular display, *xev* for printing out the contents
of various events, *xlswins* for listing the windows on a display, *xkill*
for getting rid of unwanted windows, *xmag* for enlarging parts of the
screen, *xclipboard* for collecting text selections, and *xcutsel* for
converting between cut buffers and selections.
* xman now supported
The *xman* program is now part of the core distribution. Many of the bugs
which causes poor performance on some servers have been fixed, making this
program one of the prettier demonstrations of the new fonts.
* new demos
Two new demos have been added: *xeyes* and *maze*.
* new features in *xterm*
The os-specific portion of *xterm* has been substantially rewritten and now
works properly on both BSD and System V derived versions of UNIX. The full
translation manager rebinding facilities are supported for both keyboard and
VT102-mode pointer input. This includes arbitrary binding of strings to keys
(including keys that bind other keys!), making, inserting, and transmitting
selections, and popping up of menus. Reverse video has been substantially
improved. Several bugs in Tektronix graphics input mode have been fixed.
Function keys can now be set to generate Sun keyboard escape sequences
instead of ANSI escape sequences. Default settings for various terminal
modes are now supported.
* rewrite of *x10tox11*
The *x10tox11* protocol translator for running X10 binary programs on X11
displays has been completely rewritten. It should be substantially faster
and give better results for a larger number of programs.
* font path support in *xset*
The *xset* utility now supports adding to and deleting from the
font directory list. A new keyword *rehash* has been added to the *fp*
option to force the server to reread any changed font directories (this
is useful after running *mkfontdir* in a directory).
* pointer map support in *xmodmap*
The *xmodmap* utility has been enhanced to support changing and displaying
the pointer map. A new option for displaying the keyboard map has replaced
the old *xprkbd* program.
* new coversion utilities for bitmap files
Two new programs, *bmtoa* and *atobm*, have been provided for converting
*bitmap* to and from plain text. They are very useful for generating
pictures for including in documents and for creating bitmaps from arbitrary
arrays of characters. The *pbm* package in the user-contributed distribution
contains a much wider range of tools.
* BSD *compress* sources supplied
The sources for the BSD *compress* program are now included for those sites
that do not already have this program. Starting with this release, some
documentation and bitmap images in the user-contributed distribution have
been compressed to save space.
* public domain *cpp* supplied
The sources for a C preprocessor based on Martin Minow's public domain
DECUS *cpp* are now included for sites whose native *cpp* cannot
handle the server and the X Toolkit. This *cpp* must be built and
installed by A/UX 1.0 users.
* substitute *soelim*
A version of the *soelim* utility for removing `.so filename` directives
from troff sources has been provided for systems that do not have one.
* sample copyright notice `./COPYRIGHTS`
The file `COPYRIGHTS` in the top level directory contains a sample
copyright notice recommended for people who are interested in contributing
software to the public releases.
* X Standards `./STANDARDS`
The file `STANDARDS` in the top level directory contains a description
of what is and is not part of the X Consortium's standard for the X Window
System.
### Changes to the user-contributed distribution
The user-contributed distribution is now arranged in a hierarchy similar to
the core distribution. Generally useful programs are in `clients`,
visually interesting programs are in `demos`, amusements are in
`games`, server and client extensions are in `extensions`,
server code that has not been integrated into the sample server is in
`server`, font conversion utilities and BDF files are in `fonts`,
native libraries for building applications are in `toolkits`, X Toolkit
widget sets are in `widgets`, and several popular window managers are in
`windowmgr`.
* old XMenu library removed
The old *XMenu* library has been removed from this release. Applications
in need of menus should use a toolkit. A prototype X Toolkit menu widget
is available in the `contrib/widgets/MenuBox/` directory.
* new clients
A variety of new programs have been added to the `clients` subdirectory:
* a plotting package (*splot*),
* a magnifying application (*spy*),
* more previewers (*xdvi*, *xpic*, and *xtroff*),
* programs for querying the user (*alteryorngs*, *xmessage*, and *xstring*),
* a utility for looking up words from the SRI-NIC dictionary server (*xwebster*),
* versions of *xpr* for other devices (*hpxpr* and *xipr*),
* several programs for configuring your session (*x11startup*, *xbgsun*, *xdvorak*, *xplaces*, *xpref*, and *xtools*),
* several tools for displaying images (*pbm* and *xim*),
* and a drawing package (*xfig*).
* new demos
Several striking programs have been added to the `demos` directory:
* a multi-screen version of *ico* (*psycho*),
* a utility for creating interstellar backgrounds (*spaceout*),
* a random slither program (*worm*),
* a program for displaying the phase of the moon (*xphoon*), and
* a nasty program for demonstrating what ``going technicolor'' really
means (*xrotmap*).
* fonts
A random collection of public domain fonts from the Berkeley Mac Users Group
and the INFO-MAC archives have been contributed. BDF versions of
many of the X10 fonts have been included as well as the old X11 fonts.
* games
Several games have been contributed since the last release: the ancient and
honorable *mazewar*, the ubiquitous tower of *xhanoi*, two cards games
(*xmille* and *xsol*), yet another *xpuzzle*, a version of the video arcade
game *qix*, and the infamous *xtrek*.
* toolkits
New versions of *InterViews*, *Xr11*, and *andrew* along with a
prototype implementation of *CLUE Common Lisp User Interface Environment*
are available in the `toolkits` directory.
* widgets
The *HP* and *Sony* widget sets, along with a collection of random,
interesting widgets may be found in the *widgets* subdirectory.
Since the HP and Sony widgets are temporarily based on the R2 Intrinsics,
a version of *Xt* compatible with the previous release is provided in the
`contrib/widgets/Xhp/Xt/` subdirectory.
* windowmgrs
Relatively recent versions of the *awm*, *rtl*, *twm* and *wm*
window managers are available in the `windowmgrs` subdirectory.
Their interoperability with R3 core clients has not been tested.
*We hope you enjoy Release 3.*
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 the
Hewlett-Packard Company; Domain is a trademark of Apollo Computer;
PostScript is a
trademark of Adobe Systems, Inc.; A/UX is a trademark of Apple Computer;
UNICOS is a trademark of Cray Research;
AOS is a trademark of the IBM Corporation;
UNIX is a registered trademark of AT&T Bell Laboratories;
Times, Helvetica, and New Century Schoolbook are registered trademarks of
Linotype; and Charter is a registered trademark of Bitstream, Inc.