summaryrefslogtreecommitdiff
path: root/X11R5.mdwn
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2013-09-14 23:10:09 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2013-09-14 23:10:09 -0700
commit2ba44a0808be1dd6304554fd85dec563a0852f2c (patch)
tree9bcdcde3a1ce2325780196fc152a1cc6d3d6366f /X11R5.mdwn
parent41ce62770276521baf48711c1d2dc2c800c03c6a (diff)
Add X11R5 release page
Diffstat (limited to 'X11R5.mdwn')
-rw-r--r--X11R5.mdwn880
1 files changed, 880 insertions, 0 deletions
diff --git a/X11R5.mdwn b/X11R5.mdwn
new file mode 100644
index 00000000..baef251d
--- /dev/null
+++ b/X11R5.mdwn
@@ -0,0 +1,880 @@
+<div itemscope itemtype="http://schema.org/SoftwareApplication">
+
+# <span itemprop="name">X Window System</span>, <span itemprop="version">Version 11, Release 5</span>
+
+<span itemprop="description">
+X11R5 was the fifth release of the X Window System, Version 11 from MIT.
+</span>
+It was released in
+<span itemprop="datePublished" content="1991-09-05">September 1991</span>,
+with the following changes excerpted from the
+<a href="http://www.x.org/releases/X11R5/RELNOTES.txt" itemprop="releaseNotes">release notes</a>.
+The sources are available for download for historical reference from
+<a href="http://www.x.org/releases/X11R5/" itemprop="downloadUrl">http://www.x.org/releases/X11R5/</a>.
+
+[[!toc levels=4 startlevel=2]]
+
+## New standards
+
+The following standards are new in Release 5:
+
+### X Font Service Protocol
+Instead of forcing each X server to read all fonts from the
+filesystem, the X Font Server Protocol makes it
+possible to manage fonts separately from the X server, directing the X
+server to request fonts via this new Consortium standard network protocol from
+a font server.
+
+In addition, for fonts which take a long time to
+open, this allows the X server to continue with other clients while
+the font server services the font requests.
+
+### XLFD changes for scalable fonts
+The X Logical Font Description standard has been compatibly enhanced
+to allow clients to specify and use scalable fonts.
+
+### X Input Device Extension
+This extension has been promoted from Draft Standard to full
+Consortium Standard with this release.
+
+### Inter-Client Communications Conventions
+This standard has been updated to cover the new X Device Color
+Characterization Conventions for device-independent color support in Xlib.
+
+## General
+
+We have tried hard with this release to make our code use standard
+features from POSIX.1 and ANSI C when possible. A new include file
+`&lt;X11/Xosdefs.h&gt;` describes which systems comply or do not comply with
+these standards.
+
+Two new X authorization schemes are included, a DES based private-key system
+which was described in the R4 XDMCP document - XDM-AUTHORIZATION-1 (along
+with the associated XDMCP authentication system XDM-AUTHENTICATION-1) and
+the Sun Secure RPC based SUN-DES-1 system, which uses the SunOS supplied
+security system.
+
+## Clients
+
+Most clients participate in the WM_DELETE_WINDOW protocol.
+
+* New clients: *editres*, *viewres*, *xconsole*, *xcmsdb*.
+* New demos: *beach_ball*, *auto_box*, *gpc*, *xcmstest*, *xgas*, *x11perf*.
+* *Xlswins* has been removed; it is replaced by *xwininfo -tree*.
+* Moved to contrib: *muncher*, *plaid*.
+* Completely new implementation: *bitmap* and *xmag*.
+
+Other changes of note:
+### editres
+*Editres* is a tool that allows users and application developers to view
+the full widget hierarchy of any X Toolkit client that speaks the
+Editres protocol. In addition *editres* will help the user construct
+resource specifications, allow the user to apply the resource to
+the application and view the results dynamically. Once the user is
+happy with a resource specification, editres will append the resource
+string to the user's resources file.
+### xdm
+*Xdm* can now display a menu of hosts for XDMCP-capable terminals using the
+new *chooser* client. This is useful for X terminals that
+do not themselves offer such a menu.
+
+XDMCP works with STREAMS.
+
+A new setup program is invoked by *xdm* prior to putting up the
+login window; this program can be used to run *xsetroot*, *xcmsdb*,
+and do any other custom initialization required.
+### xterm
+Cuts of wrapped lines are now treated as a single line.
+Cuts of multi-page regions now work and highlight correctly.
+Pasting large amounts of data into *xterm* now works (on systems with
+properly-working pty implementations).
+New arguments have been added to the send-signal action: quit, alarm.
+The *titeInibit* resource has been modified to also inhibit
+the escape sequence
+which switches to the alternate screen.
+Two new items have been added to the VT Fonts menu:
+5x7 (Tiny) and 10x20 (Huge).
+The following resources have been added: *resizeGravity*,
+*bellSuppressTime*,
+*appcursorDefault*, *appkeypadDefault*,
+*ginTerminator*, *autoWrap*.
+The <i>Xterm Control Sequences</i> document is up to date.
+*Xterm* is installed securely when made setuid on SunOS 4.1.1
+with shared libraries.
+### xmh
+*Xmh* now uses the *MH* environment variable, if set.
+*Xmh* now supports checking for mail in multiple maildrops.
+Enhanced participation in WM_PROTOCOLS has been added.
+New resources have been added, including:
+*checkpointInterval*,
+*checkpointNameFormat*,
+*mailInterval*,
+*rescanInterval*, *showOnInc*, *noMailBitmap*,
+*newMailBitmap*, *newMailIconBitmap*, and *noMailIconBitmap*.
+New actions have been added:
+XmhWMProtocols, XmhShellCommand, XmhCheckForNewMail,
+XmhViewMarkDelete.
+Better recovery from unexpected inconsistencies with the filesystem
+has been implemented.
+Better POP support has been added.
+See the file `mit/clients/xmh/CHANGES` for more details.
+### oclock
+*Oclock* has a new *-transparent* option.
+### xload
+*Xload* is secure on SunOS 4.1.1 with shared libraries.
+### xditview
+*Xditview* now supports *pic*, scalable fonts, settable
+device resolution, and has a better user interface.
+
+## Libraries in General
+
+All of the useful libraries now use function prototypes by default for
+systems which support them.
+SunOS shared libraries now use much less swap space than in R4.
+In addition, System V Release 4 and AIX 3.1 shared libraries are also
+supported now. Configuring new shared library systems should be much
+easier than before.
+
+## Xlib
+
+Two new major pieces of functionality have been added to Xlib:
+device independent color, and internationalization (i18n).
+In addition, a few other additions and improvements have been made.
+
+### Xlib Manual
+
+The Xlib manual has been reorganized for Release 5.
+Unfortunately, this may cause considerable confusion for a while
+when people quote section numbers without reference to the release.
+However, we feel that the new organization is a considerable improvement.
+
+### Device-independent Color
+
+The *Xcms* (X Color Management System) functions in Xlib
+support device-independent color spaces derivable from the CIE XYZ
+color space.
+This includes the CIE XYZ, xyY, L\*u\*v\*, and L\*a\*b\* color spaces as well as
+the TekHVC color space.
+In addition, linear RGB intensity value space has been added, as
+well as gamma correction for device RGB values,
+and a uniform syntax has been adopted for specifying colors in strings.
+Xlib now supports client-side color name databases, and the
+existing Xlib functions that use color names (e.g.,
+*XLookupColor* and *XAllocNamedColor*) now handle all
+color spaces, so that the contrivance of using *XParseColor*
+followed by *XAllocColor* is no longer necessary.
+Xlib provides direct programming interfaces for dealing with color
+values in different spaces, and for converting between spaces.
+New device-independent color spaces can also be added.
+For details on the new color functionality, read Chapter 6 of
+the new Xlib manual.
+
+Monitors are characterized by data stored on root window properties;
+the new *xcmsdb* program can be used to set these properties.
+Unfortunately, you need a color analyzer instrument to generate
+characterizations; choosing a random one will almost certainly
+produce inaccurate colors. However, you will find some sample
+database files in `mit/clients/xcmsdb/datafiles` and in
+`contrib/clients/ca100/monitors`.
+
+### Internationalization
+
+An internationalized application is one which is adaptable to the requirements
+of different native languages, local customs, and character string encodings.
+The process of adapting the operation to a particular native language,
+local custom, or string encoding is called localizaton.
+A goal of internationalization is to permit localization
+without program source modifications or recompilation.
+
+Internationalization in Xlib is based on the concept of a <i>locale</i>.
+A locale defines the &ldquo;localized&rdquo; behavior of a program at run-time.
+Locales affect Xlib in its:
+ * Encoding and processing of input method text
+ * Encoding of resource files and values
+ * Encoding and imaging of text strings
+ * Encoding and decoding for inter-client text communication
+
+Characters from various languages are represented in a computer
+using an encoding.
+Different languages have different encodings,
+and there are even different encodings for the same characters
+in the same language.
+
+Xlib provides support for localized text imaging and text input.
+Sets of functions are provided for multibyte (char\&*) text as well as
+wide character (*wchar_t*) text in the form supported
+by the host C language environment.
+For details on the new internationalization functionality,
+read Chapter 13 of the new Xlib manual.
+
+Two sample implementations of the internationalization mechanisms
+exist in this release, one called *Xsi* and one called *Ximp*.
+You will find documentation for them in `mit/doc/I18N` and
+`contrib/im`, and locale definition files in `mit/lib/nls`.
+In `contrib/im` you will also find network-based
+Input Method servers.
+
+Unfortunately, none of the programs in the MIT software use the new
+internationalization facilities. However, you will find some sample
+clients in `contrib/im`, and internationalized versions of some
+of the MIT clients in `contrib/clients`.
+
+### Keysyms
+
+By default a database of all registered vendor-private keysyms
+gets installed, so that Xlib can map between keysym values and names.
+
+### Resource Databases
+
+A new SCREEN_RESOURCES property has been defined, permitting
+screen-specific resources to be set, so that (for example)
+colors can be specified for a color screen and not effect
+a monochrome screen on the same server. The *xrdb* program
+has been enhanced to &ldquo;do the right thing&rdquo; automatically
+in most cases.
+
+New functions have been defined to merge a resource database
+directly from a file, and to combine two databases with either
+&ldquo;augment&rdquo; or &ldquo;override&rdquo; semantics.
+
+A &ldquo;#include&rdquo; syntax is now supported in resource files.
+A specific example of using this is to have a customized
+app-defaults file (in an Xt application) include the base
+app-defaults file.
+
+A new reserved component name, &ldquo;?&rdquo;, has been defined
+that matches a single level in the resource hierarchy.
+This makes it easier to override resources specified in
+app-defaults files.
+
+A new function, *XrmEnumerateDatabase*, has been defined
+to search for matching entries in a resource database.
+The *appres* program has been enhanced in this release
+to become a convenient interface to this function.
+
+A new function, *XrmPermStringToQuark*, has been
+introduced to avoid having Xlib allocate needless storage
+for constant strings.
+
+### Extensions
+
+A new function has been added to permit an extension to convert
+errors with additional data into Xlib format, and one has been
+added to permit an extension to print out the values in an
+error handler.
+
+### Miscellaneous
+
+A new type *XPointer* has been introduced, replacing
+uses of the non-standard type *caddr_t*. Old programs
+using *caddr_t* will still work, of course.
+
+### Performance
+
+The new color and internationalization facilities have the unfortunate
+effect of making executables quite a bit larger on systems that do
+not have shared libraries.
+
+The resource database functions have been completely rewritten for
+this release. Databases should be significantly smaller in memory,
+and loading and parsing resources should be faster.
+
+## Xt Intrinsics
+
+At the data structure level, Release 5 retains complete binary
+compatibility with Release 4. The specification of the
+*ObjectPart*,
+*RectObjPart*,
+*CorePart*,
+*CompositePart*,
+*ShellPart*,
+*WMShellPart*,
+*TopLevelShellPart*,
+and
+*ApplicationShellPart*
+instance records was made less strict to permit implementations to
+add internal fields to these structures. Any implementation that
+chooses to do so would, of course, force a recompilation.
+The Xlib specification for
+*XrmValue*
+and
+*XrmOptionDescRec*
+was updated to use a new type,
+*XPointer*,
+for the <i>addr</i> and <i>value</i> fields respectively, to avoid
+ANSI C conformance problems. The definition of
+*XPointer*
+is binary compatible with the previous implementation.
+
+### baseTranslations Resource
+
+A new pseudo-resource, *XtNbaseTranslations*, was defined to permit
+application developers to specify translation tables in application
+defaults files while still giving end users the ability to augment
+or override individual event sequences. This change will affect
+only those applications that wish to take advantage of the new
+functionality, or those widgets that may have previously defined
+a resource named &ldquo;baseTranslations&rdquo;.
+
+Applications wishing to take advantage of the new functionality
+would change their application defaults file, e.g., from
+
+ app.widget.translations: <i>value</i>
+
+to
+
+ app.widget.baseTranslations: <i>value</i>
+
+If it is important to the application to preserve complete
+compatibility of the defaults file between different versions
+of the application running under Release 4 and Release 5,
+the full translations can be replicated in both the &ldquo;translations&rdquo;
+and the &ldquo;baseTranslations&rdquo; resource.
+
+### Resource File Search Path
+
+The current specification allows implementations greater flexibility
+in defining the directory structure used to hold the application class
+and per-user application defaults files. Previous specifications
+required the substitution strings to appear in the default path in a
+certain order, preventing sites from collecting all the files for
+a specific application together in one directory. The Release 5
+specification allows the default path to specify the substitution
+strings in any order within a single path entry. Users will need to
+pay close attention to the documentation for the specific
+implementation to know where to find these files and how to specify
+their own
+*XFILESEARCHPATH*
+and
+*XUSERFILESEARCHPATH*
+values when overriding the system defaults.
+
+### Customization Resource
+
+*XtResolvePathname*
+supports a new substitution string, %C, for specifying separate
+application class resource files according to arbitrary user-specified
+categories. The primary motivation for this addition was separate
+monochrome and color application class defaults files. The
+substitution value is obtained by querying the current resource
+database for the application resource name &ldquo;customization&rdquo;, class
+&ldquo;Customization&rdquo;. Any application that previously used this
+resource name and class will need to be aware of the possibly
+conflicting semantics.
+
+### Per-Screen Resource Database
+
+To allow a user to specify separate preferences for each screen of a
+display, a per-screen resource specification string has been added and
+multiple resource databases are created; one for each screen. This
+will affect any application that modified the (formerly unique)
+resource database associated with the display subsequent to the Intrinsics
+database initialization. Such applications will need to be aware
+of the particular screen on which each shell widget is to be created.
+
+Although the wording of the specification changed substantially in the
+description of the process by which the resource database(s) is
+initialized, the net effect is the same as in prior releases with the
+exception of the added per-screen resource specification and the new
+customization substitution string in
+*XtResolvePathname*.
+
+### Internationalization of Applications
+
+Internationalization as defined by ANSI is a technology that
+allows support of an application in a single locale. In
+adding support for internationalization to the Intrinsics
+the restrictions of this model have been followed.
+In particular, the new Intrinsics interfaces are designed to not
+preclude an application from using other alternatives.
+For this reason, no Intrinsics routine makes a call to establish the
+locale. However, a convenience routine to establish the
+locale at initialize time has been provided, in the form
+of a default procedure that must be explicitly installed
+if the application desires ANSI C locale behavior.
+
+As many objects in X, particularly resource databases, now inherit
+the global locale when they are created, applications wishing to use
+the ANSI C locale model should use the new function
+*XtSetLanguageProc*
+to do so.
+
+The internationalization additions also define event filters
+as a part of the Xlib Input Method specifications. The
+Intrinsics enable the use of event filters through additions to
+*XtDispatchEvent*.
+Applications that may not be dispatching all events through
+*XtDispatchEvent*
+should be reviewed in the context of this new input method mechanism.
+
+In order to permit internationalization of error messages the name
+and path of the error database file is now allowed to be implementation
+dependent. No adequate standard mechanism has yet been suggested to
+allow the Intrinsics to locate the database from localization information
+supplied by the client.
+
+The previous specification for the syntax of the language string
+specified by
+*xnlLanguage*
+has been dropped to avoid potential conflicts with other standards.
+The language string syntax is now implementation-defined.
+The example syntax cited is consistent with the previous
+specification.
+
+### Permanently Allocated Strings
+
+In order to permit additional memory savings, an Xlib interface was
+added to allow the resource manager to avoid copying certain string
+constants. The Intrinsics specification was updated to explicitly require
+the Object <i>class_name</i>, <i>resource_name</i>, <i>resource_class</i>,
+<i>resource_type</i>, <i>default_type</i> in resource tables, Core <i>actions</i>
+<i>string</i> field, and Constraint <i>resource_name</i>, <i>resource_class</i>,
+<i>resource_type</i>, and <i>default_type</i> resource fields to be
+permanently allocated. This explicit requirement is expected to
+affect only applications that may create and destroy classes
+on the fly.
+
+### Arguments to Existing Functions
+
+The <i>args</i> argument to
+*XtAppInitialize*,
+*XtVaAppInitialize*,
+*XtOpenDisplay*,
+*XtDisplayInitialize*,
+and
+*XtInitialize*
+were changed from
+*Cardinal\**
+to int\* to conform to pre-existing convention and avoid otherwise
+annoying typecasting in ANSI C environments.
+
+### Implementation
+
+Function prototypes are now fully supported in the header files.
+
+`&lt;X11/Intrinsic.h&gt;` no longer includes `*lt;X11/Xos.h&gt;` by default.
+Inclusion of this file was a bug in earlier releases. If you have
+old code that depends on this bug, you can define `-DXT_BC` when you compile
+to get back the old behaviour.
+
+String constants are now defined in a single array, saving memory and external
+symbols. Note that because the new implementation uses #defines, string
+constants in widget header files which duplicate a constant defined by Xt
+should either be removed or protected from a collision.
+
+The translation manager facilities have been completely reimplemented
+in this release, resulting in substantially less memory consumed by
+some applications.
+A number of other memory-saving changes have been implemented, and
+in a few cases execution time should be faster.
+
+The default keycode to keysym translator deals with all Latin keysyms.
+
+### Extension Events
+
+Unfortunately, the Xt standard as of R5 still does not address the
+issues of integrating events from protocol extensions into the
+normal Xt dispatch mechanism. The adventurous will find a set
+of patches to Xt in `contrib/lib/Xt` that attempt to address
+this problem. These patches are non-standard, experimental,
+subject to change, not guaranteed, may adversely affect your ability to
+apply public patches from MIT, and have not reviewed by the X Consortium.
+
+## PEX
+
+The PEX Sample Implementation (SI) is composed of several parts. The
+major components are the extension to the X Server, which implements
+the PEX protocol, and the client side Application Protocol Interface (API),
+which provides a mechanism by which clients can generate PEX protocol.
+The API provided with the PEX-SI is the ISO IS PHIGS Binding and the
+yet to be standardized PHIGS PLUS Binding.
+
+In addition to these major components, several other minor components are
+provided. These include documentation, 3D fonts for PEX, demos, and
+a verification suite called InsPEX. Also provided in `contrib`
+are additional example programs and demos.
+
+These elements are located in the following area:
+
+The PEX server extension is located in the directories under
+`mit/extensions/server/PEX`. Device independent portions are located
+in `mit/extensions/server/PEX/dipex`. Device dependent functionality
+appears in `mit/extensions/server/PEX/ddpex`. Operating system font
+dependent code appears in `mit/extensions/server/PEX/ospex`. General
+purpose server include files are in `mit/extensions/server/PEX/include`.
+
+The API code is located under the directory `mit/extensions/lib/PEX`.
+The PHIGS/PHIGS PLUS Binding routines are in the `c_binding` subdirectory.
+The PHIGS Monitor (PM), a separate process started at client runtime
+to handle PHIGS Input functionality, is in the `cp` subdirectory.
+Other code located in the various subdirectories handles PHIGS archival,
+error handling, and comprises the internal library level that PHIGS calls
+to generate the PEX Protocol.
+
+All PEX documentation is located in the directory `mit/doc/extensions/PEX`,
+with pregenerated PostScript files in `mit/hardcopy/extensions/PEX`.
+The PEX Protocol Specification itself is in the `Proto` subdirectory. All
+SI documentation is in the `SI` subdirectory. Three subdirectories there
+contain an Architecture Specification, a Porting Guide (with implementation
+details), and a User's Guide. The sources and programs used to generate
+these files are located in the `mit/doc/extensions/PEX/SI` directory.
+Also located there is the `PHIGS` subdirectory which contains PHIGS man
+pages and macros for printing these pages.
+
+Font source for PEX and utilities to build them are located in the directory
+`mit/fonts/PEX`. Two stroke fonts are supplied.
+
+The PEX verification tool InsPEX can be found in the
+`mit/extensions/test/InsPEX` directory.
+Shell scripts are provided there to run InsPEX.
+More information on InsPEX is available in the User's Guide.
+
+Demos for PEX can be found in the `mit/demos` directory.
+Two demos and the
+NCGA Graphics Performance Characterization (GPC) Suite can be found
+there. The demos are in the `mit/demos/auto_box` and
+`mit/demos/beach_ball` directories, and are named *auto_box*
+and *beach_ball* respectively.
+The GPC suite is found in `mit/demos/gpc`.
+This suite consists of demos (in the `objects` subdirectory),
+benchmarks (various directories below `benchmarks`) and tests
+(in `tests`). For more information on how to run these demos see the
+User's Guide.
+
+There are also several unsupported demos and examples available in
+`contrib`. In `contrib/demos/beach_ball2` a newer version
+of the *beach_ball* demo with enhanced functionality can be found.
+In `contrib/examples/PEX` various PHIGS based clients that
+demonstrate how to use PEX via the PHIGS API are available.
+
+### Standards and Functionality
+
+This release conforms to the PEX Protocol Specification V5.0P.
+The release comes with 2 fonts, Roman and Roman_M (see the User's Guide for
+more details). It implements the minimum required HLHSR (Hidden Line/
+Hidden Surface Removal) for PHIGS compliance (i.e., NONE). The release
+only supports 8-bit color.
+
+The API binding has been updated to the ISO IS PHIGS binding.
+The directory `mit/util/PEX` contains `sed` scripts for
+converting programs
+from the previous binding to the new binding. These scripts do most of
+the work, but some manual editing is still needed. There is a *README*
+file in this directory with notes and information.
+
+The PHIGS Binding provides most PHIGS/PHIGS PLUS functionality. The full
+PHIGS Input Model (Valuator, Locator, Stroke, Choice, String, Pick)
+is implemented in a device independent manner using the Athena Widget Set.
+PHIGS/PHIGS PLUS functionality includes, but is not limited to the following
+graphical primitives: Polylines, Polymarkers, Fill Areas, Triangle Strips,
+NURBS Curves and Surfaces, 2D and 3D Text. Other operations include
+Depth Cueing, Modelling Clip, Backface removal, Lighting Models and
+Surface Reflection.
+
+Functionality not completed in this release is as follows:
+
+In the API:
+ * Mapping of PHIGS font ids to PEX fonts
+
+In the Server:
+ * Backface Attributes and Distinguish Flag
+ * Font sharing between clients
+ * Patterns, Hatches and associated attributes
+ * Color Interpolation
+ * Transparency
+ * Depth Cueing for Markers
+ * Z-buffering
+ * Double Buffering
+
+
+In InsPEX:
+ * Completion of port to ISO IS PHIGS Binding
+
+### PEX and PHIGS Documents
+
+The following documents are provided with this release:
+
+ * PEX-SI User Guide
+ * PEX-SI Graphics Library Manual Pages
+ * PEX-SI Architecture Specification
+ * PEX-SI Porting Guide
+
+
+They are located in subdirectories of `mit/doc/extensions/PEX`.
+Please read the PEX-SI User's Guide for descriptions of the documents and
+how to use them. Instructions for printing the documents are provided
+in a README file in each of the document directories.
+
+The User's Guide is provided as a starting point in the documentation.
+It describes the various documents provided with the release, and includes
+instructions on using the clients, the API and the server code.
+It also includes specifications for the server functionality and archive
+format.
+
+The Graphics Library Manual Pages are for the client-side library,
+written to the ISO IS binding.
+
+The Architecture Specification describes the PEX-SI architecture
+at a high level.
+
+The Porting Guide is intended as an extension to the Architecture
+Specification. There is a lot of good information in this document,
+and it is organized fairly well, but it lacks some polish. It is not a
+complete document.
+
+### InsPEX
+
+This release of InsPEX includes coverage of all the PHIGS PLUS graphics
+primitives, such as fill area sets with data, quadrilateral meshes,
+triangle strips, and NURBS. PHIGS PLUS attributes such as direct color
+specification, depth cuing, and lighting are also exercised.
+
+The testing of input is somewhat limited by the problem of simulating
+mouse and keyboard input in a reliable and portable fashion. For the
+pick, locator, and stroke devices, simulating the mouse events is
+straightforward, but since the string, valuator, and choice devices
+are built upon a toolkit (Athena Widgets in the PEX-SI's case), getting
+window id's for the appropriate windows and sending mouse
+clicks to the right place on those windows is more difficult,
+and probably impossible to do in a way that could be quickly
+ported to another toolkit along with these input devices.
+The technology for automatic testing of software using
+a graphical user interface under X has not progressed to the
+point where this functionality could be tested in a way
+that would be useful to all the potential users of InsPEX.
+
+For nearly all of the tests that use image comparison
+to verify graphical output, reference images have been supplied.
+Due to outstanding bugs in the code, however, some tests are shipped without
+reference images. Also, since back-facing attributes are not implemented,
+the images saved for these tests are actually incorrect. These have been
+shipped, however, because they still can be helpful to someone porting
+the PEX-SI. It should be expected that when backfacing attributes are
+implemented, these tests will fail and image comparison will be required.
+
+Along with the *README* in the main InsPEX directory, there is a sample
+log file, sample.log, and an automatically-generated summary of all the
+current tests, `test_descrip`. See the *README* for a description
+of how that file was generated.
+
+## Athena Widget Set
+
+Many minor bugs have been fixed.
+The Xaw examples have been moved to `contrib`.
+However, please note that the Athena Widgets have been and continue
+to be low on our priority list, so many bugs remain (particularly
+in the Text widget) and many requests for enhancements have not
+been implemented. Because some incompatible
+changes have been made, the shared library major version number on
+Suns has been incremented.
+
+### Header Files
+Function prototypes have been added to the public interfaces.
+
+### AsciiSrc
+No warning message is printed when the file cannot be
+written to; the return value should be enough info.
+*GetValues* on the string resource was failing when
+"useStringInPlace" was set to true; fixed.
+A memory leak when freeing pieces in a source of type "ascii String"
+has been plugged.
+The buffer is now updated whenever the "string" resource is set using
+*XtSetValues*. If the type is file then the file is read in again.
+
+### Box
+`Box.h` now includes `&lt;X11/Xmu/Converters.h&gt;` for the
+orientation resources.
+
+### Clock
+Changed to be a subclass of *Simple* instead of *Core*.
+
+### Command
+A bug in changing the shape style back to Rectangular has been fixed.
+
+### Dialog
+The Icon resource type has changed from *Pixmap* to *Bitmap*.
+
+### Form
+The geometry handler now will now disallow geometry management
+requests that will force the child outside the *Form*'s window.
+EdgeType names have been changed to have prefix &ldquo;Xaw&rdquo; instead of &ldquo;Xt&rdquo;, but
+the old definitions are still around with a #define.
+The string-to-widget converter no longer caches resources.
+
+### Logo
+Changed to be a subclass of *Simple* instead of *Core*.
+Reverse video now works correctly.
+
+### Mailbox
+Changed to be a subclass of *Simple* instead of *Core*.
+Reverse video now works correctly.
+
+### MenuButton
+The *MenuButton* widget no longer places a server grab on itself.
+Instead, *PopupMenu* is registered as a grab action. As a result
+of this, clients which popped up menus without using *XtMenuPopup*
+or *MenuPopup* or *PopupMenu* in the menu button translations will
+fail to have a grab active. They should make a call to
+*XtRegisterGrabAction* on the appropriate action in the application
+initialization routine, or use a different translation.
+
+### Paned
+`Paned.h` now includes `&lt;X11/Xmu/Converters.h&gt;` for the
+orientation resources.
+
+### Panner
+This widget is new in R5, see the Xaw manual for details.
+
+### Porthole
+This widget is new in R5, see the Xaw manual for details.
+
+### Repeater
+This widget is new in R5, see the Xaw manual for details.
+
+### Scrollbar
+Changed to be a subclass of *Simple* instead of *Core*.
+The type of thumb resource has changes from *Pixmap* to *Bitmap*.
+However, if applications provide the resource conversion, the
+*SetValues* method can still handle pixmaps of correct depth.
+
+### Simple
+A color cursor converter has been added, as well as the new
+new resource types: *XtNpointerColor*,
+*XtNpointerColorBackground*, and *XtNcursorName*.
+
+### SmeBSB
+The Right bitmaps are now painted in the correct location.
+Right and Left Bitmaps can be specified in resource files, and
+at startup time.
+
+### Text
+If there is no current selection the the selection extends
+from the insert point, rather than some random location.
+Forward (Backward) Paragraph works at the paragraph boundaries now.
+Selecting a word now transitions correctly at both end points.
+An infinite loop when using fill paragraph in a read only text widget
+has been found and fixed.
+When the "resize" resource is set the text will start up with
+exactly enough space to contain the text in the widget.
+A bug that could cause an infinite loop when Meta-Q was used
+to invoke the form-paragraph function on a read-only text widget has
+been fixed.
+Problems dealing with exposure events have been fixed.
+In `TextP.h`, the names of the following symbolic constants
+have each had the prefix Xaw added to them:
+*XawLF*, *XawCR*, *XawTAB*, *XawBS*, *XawSP*,
+*XawDEL*, and *XawBSLASH*.
+
+### Toggle
+The widget state is preserved across changes in sensitivity.
+A string-to-widget converter is registered for radio groups.
+
+### Tree
+This widget is new in R5, see the Xaw manual for details.
+
+### Paned
+A bug that caused *XtGeometryYes* returns to have bogus values,
+and caused panes to get random sizes, has been fixed.
+
+### Vendor
+Support has been added for the *editres* protocol.
+All applications using the Athena Widgets are automatically
+editable with *editres*.
+A bug that cause *Shell* to ignore all but first child has been fixed.
+
+### Viewport
+*XawPannerReport* support has been added.
+
+## X Server
+
+Considerably more work speeding up the server has been done,
+particularly in the `cfb` and `mfb` code.
+The font interfaces are completely new.
+Compressed fonts are not supported in the release.
+Other changes are documented in `mit/doc/Server/r5.tbl.ms`.
+
+## Fonts
+
+### Font Server
+A sample implementation of the server side of the X Font Service Protocol
+is provided in a new program, *fs*.
+On the Macintosh, a special version of the server called *MacFS*
+can be used to serve TrueType fonts.
+
+### New Font Format
+Both the X server and the font server use a
+new font format, <i>pcf</i> (portable compiled font).
+Pcf is readable across different machines and contains more information
+about a font than the old snf format. Fonts in snf format can still
+be used.
+
+### Font Applications
+The following new utilities talk to the font server:
+*fsinfo*, *fslsfonts*, *fstobdf*, and *showfont*.
+To build pcf fonts, *bdftosnf* has been replaced by *bdftopcf*.
+
+### Scalable Fonts
+Bitstream, Inc. has donated an outline scaling engine along with
+a set of sample fonts, matching the donated bitmap fonts included with
+Release 4. In addition, a usable (but not very pretty) bitmap scaling
+engine has been implemented which
+allows the use of all other fonts at arbitrary point sizes.
+
+### Font Changes
+Many *misc* fonts now have ISO Latin-1 upper half characters and
+some tuning.
+The following sets of fonts are new:
+Latin/Hebrew in ISO8859-8 encoding,
+Kanji in JISX0208.1983-0 encoding,
+Hangul in KSC5601.1987-0 encoding.
+
+The JIS Kanji fonts were purchased on behalf of the MIT X Consortium
+from the Japanese Standards Association, 1-24, Akasaka 4,
+Minato-ku, Tokyo 107, Japan. They were converted to BDF format,
+keeping within the JIS rules. In keeping with
+JIS rules, these fonts should not be transformed into other encodings, they
+should only be used in the JISX0208.1983-0 encoding. It is also strongly
+recommended that companies wishing to use these fonts in commercial products
+should purchase the original JIS font standards directly from JSA. The
+purchase price is nominal.
+
+## Acknowledgements
+
+The MIT Release 5 distribution is brought to you by the MIT X Consortium.
+A cast of thousands, literally, have made this release possible.
+We cannot possibly acknowledge them all here.
+The names of all people who made it a reality will be found in the
+individual documents and source files.
+We greatly appreciate the work that everyone has put into this release.
+
+Hoping you enjoy Release 5,
+
+* Donna Converse
+* Stephen Gildea
+* Susan Hardy
+* Jay Hersh
+* Keith Packard
+* David Sternlicht
+* Bob Scheifler
+* Ralph Swick
+
+(R5 Survival Club)
+
+<div style="font-size: small; border-top: 1px solid black;">
+<p>
+Copyright &copy; <span itemprop="copyrightYear">1991</span> by the
+<span itemprop="copyrightHolder"
+ itemscope itemtype="http://www.schema.org/Organization">
+<span itemprop="name">Massachusetts Institute of Technology</span>
+</span>.
+</p><p>
+Permission to use, copy, modify, and distribute this document for any purpose
+and without fee is hereby granted, provided that the above copyright notice and
+this permission notice appear in all copies, and that the name of MIT not be
+used in advertising or publicity pertaining to this document without specific,
+written prior permission. MIT makes no representations about the suitability
+of this document for any purpose. It is provided &ldquo;as is&rdquo; without express or
+implied warranty.
+</p>
+</div>
+</div>