Release Notes for XFree86� 4.5.0

                          The XFree86 Project, Inc

                                16 March 2005

                                  Abstract

      This document contains information about the various features and
     their current status in the XFree86 4.5.0 release.

1.  Introduction to the 4.x Release Series

XFree86 4.0 was the first official release of the XFree86 4 series.  The cur-
rent release (4.5.0) is the latest in that series.  The XFree86 4.x series
represents a significant redesign of the XFree86 X server, with a strong
focus on modularity and configurability.

2.  Configuration: a Quick Synopsis

Automatic configuration was introduced with XFree86 4.4.0 which makes it pos-
sible to start XFree86 without first creating a configuration file.  This was
further improved in XFree86 4.5.0.

While the initial automatic configuration support was originally targeted ust
for Linux and the FreeBSD variants, in 4.5.0 it now includes Solaris, NetBSD
and OpenBSD support, and it is planned that automatic configuration will be
supported on other platforms in future releases.

If you are running either Linux, FreeBSD, NetBSD, OpenBSD, or Solaris, try
Auto Configuration by running:

     XFree86 -autoconfig

If you want to customise some things afterwards, you can cut and paste the
automatically generated configuration from the /var/log/XFree86.0.log file
into an XF86Config file and make your customisations there.  If you need to
customise some parts of the configuration while leaving others to be automat-
ically detected, you can combine a partial static configuration with the
automatically detected one by running:

     XFree86 -appendauto

If you using a platform that is not currently supported, then you must try
one of the older methods for getting started like xf86cfg", which is our
graphical configuration tool.  It also has a text mode interface that an be
used to create an initial configuration file and customise existing configu-
rations.

After that, you can use XFree86 server's ability to create a starting config-
uration file.  To do so you must login as root, and run:

     XFree86 -configure

and then follow the instructions.

Finally, if all else fails, the trusty old standby text-based tool "xf86con-
fig" can also be used for generating X server config files.

Hopefully, at least one, and perhaps all of these various configuration
options will give you a reasonable starting point for a suitable configura-
tion file but we think that with the automatic mechanism you will probably
not need any.

If you would like to customise the configuration file, see the XF86Config
manual page.  You should also check the driver-specific manual pages and the
related documentation, which is found at tables below (section 4., page 1).

Before downloading any of the binary distributions for this release, read
through the Installation Document as it can point out which particular binary
you should download.

The next section describes what is new in the latest version (4.5.0) compared
with the previous full release (4.4.0).  There are many new features in this
release and we unfortunately do not have enough space to cover them all here.

3.  Summary of new features in 4.5.0.

This is a sampling of the new features in XFree86 4.5.0.  A more complete
list of changes can be found in the CHANGELOG that is part of the XFree86
source tree.  It can also be viewed online at our CVSweb server
<URL:http://cvsweb.xfree86.org/cvsweb/xc/pro-
grams/Xserver/hw/xfree86/CHANGELOG?rev=HEAD>.

3.1  Security Updates

The following security issues have been fixed in this release:

   o xdm would listen on a random socket when the DisplayManager.requestPort
     resource was set to 0 (CAN-2004-0419 <URL:http://cve.mitre.org/cgi-
     bin/cvename.cgi?name=CAN-2004-0419>).

   o Integer overflow in libICE/libSM.

   o libXpm stack and integer overflow and other issues (CAN-2004-0687
     <URL:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0687>,
     CAN-2004-0688 <URL:http://cve.mitre.org/cgi-bin/cve-
     name.cgi?name=CAN-2004-0688>, CAN-2004-0914
     <URL:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0914>,
     CAN-2005-0605 <URL:http://cve.mitre.org/cgi-bin/cve-
     name.cgi?name=CAN-2005-0605>).

   o Potential security issues related to wrap-around of memory allocation
     requests in font handling and other areas.

3.2  Video Driver Enhancements

3.2.1  General

   o In most drivers, fix a long-standing off-by-one error in the programming
     of sync pulse start and end for video modes based on VGA or its exten-
     sions.

3.2.2  ati

   o Fix various bugs in the Mach64-based panel support.

   o Re-instate atimisc's support for DGA on UltraSPARC platforms.

3.2.3  chips

   o Fix the stretching option and centering.

3.2.4  cirrus

   o Add support for the NEC PC-9821 with CLGD755x.

3.2.5  i810

   o Add support for memory size tweaking in the BIOS for 845G.

   o Fix Xv flickering on the 830GM and later.

   o Add support for the 915G/915GM chipsets.

   o Add dual-head and clone support for the 915G, 855GM, 830GM chipsets.

   o Add ARGB cursor support for all chipsets.  This requires an updated agp-
     gart kernel driver.

   o Add module lid status checking.

   o Fix XVideo when high resolutions are used on local flat panels.

   o Add PanelID identification.

   o Detect monitor changes on VT switch (830GM and up).

   o Support custom video modes in the video BIOS, when available.

   o Fix some Xv bugs.

   o Set the default monitor parameters to match the display size for the
     830GM and up when they are not available from another source, improving
     the default video mode selection in these cases.

3.2.6  mga

   o Make the Mystique lockup workaround more selective, avoiding different
     problems on cards that do not require the workaround.

   o Fix segfaults that occur when the XaaNoSolidFillRect and/or
     XaaNoMono8x8PatternFillRect options are used.

   o Fix for Xv resolution loss problem.

   o Add i2c and Maven support, providing DDC and DPMS support for the second
     head on dual-head cards.

3.2.7  nv

   o PCI-Xpress support added.

   o Add support for newer hardware.

   o Workaround for Toshiba M30 laptop issue.

   o Reject modes larger than the flat panel.

   o DPMS support for DVI added.

   o Cursor update for NV11 so that alpha blended cursors will work in con-
     junction with dithering (laptop panels).

3.2.8  r128

   o Improve the handling of timeouts in R128CCEWaitForIdle()

3.2.9  radeon

   o The DAC is turned off for DPMS modes, fixing a problem that can badly
     affect some monitors.

   o Add an option for avoid flickering and blank screen problems with
     iBooks.

3.2.10  rendition

   o Fix bad free() calls in the probe function.

3.2.11  s3

   o Add support for interlaced video modes.

   o Remove cfb support.

   o Correct the depth checking (32 is not a supported depth).

   o Fix DAC probing.

   o Add IBM RGB525 support.

   o Fix a ScreenToScreenCopy bug that shows up with xtest.

3.2.12  s3virge

   o Fix a bug that shows up when mode restoration results in a switch
     between colour and mono operation.

3.2.13  savage

   o Fix HW cursor state on VT switching.

   o Disable the RANDR extension when using rotation.

   o Turn off the back light on panels when DPMS "off" mode is activated.

   o Allow black as an Xv colour key.

3.2.14  sis

   o Fix some modes for 1400x1050 and 1600x1200 panels.

   o BIOS data layout-related fixes for 661/741/760.

   o Xv fixes.

   o Fix LCD support for ECS A90x and ECS A907.

   o Add video blitter as a second Xv adaptor for the M650/651 and later.

   o Add (display?) hot plug support.

   o Add preliminary support for the SiS340.

   o Fix bad external symbols in this driver module.

3.2.15  sunffb

   o Fix a segfault when acceleration is disabled.

3.2.16  vesa

   o Do not attempt to set the palette format for depths greater than 8.
     This fixes a problem on some platforms.

   o Fix a substantial memory leak on server regeneration.

   o Fix screen blanking for non-VGA compatible modes.

   o Blank the screen at startup, so that the contents of the previous ses-
     sion are not initially visible.

3.2.17  via

   o Restructuring and acceleration cleanups.

   o Fix some DRM-related problems.

   o Cleanup the DDC/EDID retrieval.

3.2.18  vmware

   o Various register state save/restore fixes.

   o Fix host-cursor mode.

   o Allow any reasonable depth if 8BIT_EMULATION is set, supporting non-host
     depths.

   o Set the "monitor" parameters to allow the default resolution to be a
     little smaller than the host resolution rather than simply 640x480.

3.3  Input Driver Enhancements

3.3.1  keyboard

   o A bug in the application of the Linux KDKBDREP ioctl has been fixed,
     preventing unnecessary use of a fallback that directly programs the key-
     board hardware and produces warning message with recent Linux kernels.

   o Differentiate between Alt+Ctrl+SPECIAL and Alt+Ctrl+Shift+SPECIAL key
     sequences.

   o Avoid various keycode conversions on NEC PC-98 platforms.

   o Fix off-by-one problem for keys on FreeBSD/sparc64.

3.3.2  mouse

   o Add a serial PNP entry for the Genius NetScroll+ mouse.

   o Fix a problem with the wsmouse driver losing events on 64-bit architec-
     tures.

   o Add/improve protocol and device auto-detection for FreeBSD, Linux,
     NetBSD, OpenBSD, and SunOS/Solaris, eliminating the need to provide any
     of this information in the config file in the majority of situations.

   o Increase the maximum number of buttons supported from 12 to 24.

   o Fix a multiple-free bug, that could lead to a crash.

3.3.3  elographics

   o Fix problems where the driver gets out of sync under heavy loads.

   o Add an "AllowNoCntl" option, which allows the driver to be used with
     some other protocols, like the SmartSet 2500s, which share the same
     default protocol.

   o Fix a problem with the cursor not correctly following the touch in a
     dual-head configuration.  This fix has also been applied to other rele-
     vant input drivers.

3.3.4  eloinput

   o A new driver for ELO Graphics 2500U USB touch screens.

3.3.5  fpit

   o Add support for the passive pen of the Stylistic 2400.

   o Fix some driver bugs.

3.4  XKB updates

   o Update the Hindi/Devanagari map.

   o Add Sorbian map.

   o Add German Dvorak map.

   o Fix wrong brokenbar keysym in the de_CH map.

   o Rename the microsoftprose keyboard model to microsoftprousb because it
     is not Swedish-specific but a common USB variant.

   o Add nodeadkeys variant to the gb map.

   o Replace the comma keysym on the KPDL key in the Brazilian map with
     KP_Separator.

   o Add multi-layout compatible Hungarian, Azerbaijani, Canadian, Mongolian,
     and Vietnamese maps.

   o Update Serbian map with new variant.

   o Add Genius KB-12e model to the inet map.

   o Update ABNT2 geometry (including two variants) and change the Brazilian
     map to avoid ABNT2 specific keycodes section.

   o Add Classical Latin map.

   o Replace the Latvian map with a new one.

   o Fix some errors in the Dzongka/Tibetan map.

   o Add ur_PK (Urdu) map.

   o Fixes for the Bengali map.

   o Add Sinhala (Sri Lanka) map.

   o Add missing keycode to the "xfree86" keycodes files.

   o Update the mapping for the Microsoft Natural Multimedia keyboard.

   o Fixes for the Croatian map.

   o Add a Polish variant to the French keyboard layout.

   o Add a standard Kyrgyz map.

3.5  X Server and Extension Updates

   o Mesa as used in the XFree86 "GLcore" module for indirect GLX rendering
     has been updated to version 6.2.1.

   o Fixed bugs in the Screen Saver extension that could cause an X server
     crash.

   o Fixed a bug in the X-Resource extension that could cause an X server
     crash when the client host and server host have different endianness.

   o Added support to the Xvfb server for specifying the screen origins when
     Xinerama is enabled.

   o Ensure that the Xvfb's root window depth and visuals are set correctly.

   o Work around bug in Mac OS X 10.1's AppKit that causes rootless XDarwin
     to lock up when creating windows

   o Fix XDarwin's launch of X clients by double clicking in the Finder when
     there is a space in the path.

   o Allow XDarwin to interpret scroll wheel mouse events correctly when the
     shift key is held down.

   o Add initial XInput support for XDarwin.

   o Add an option for XDarwin to always use Mac command key equivalents.

   o Make XDarwin not default to StaticColor on ix86.

   o Fix a bug that caused restacks to be optimized away in rootless mode.

   o Add support for dynamic screen configuration changes in rootless XDar-
     win.

   o Fix a problem with multiple glyphs in the RENDER extension's RenderAddG-
     lyphs that caused malloc corruption.

   o Fix a segfault when XAA's overlay acceleration is invoked with the
     XaaNoSolidFillRect option.

   o Fix the disabling of individual DPMS states.

   o Rework the XFree86 server's SBUS code so that SBUS adapters are properly
     detected on SunOS.

   o Auto-detect DPMS support based on EDID data.

   o Fix DPMS enable/disable logic.

   o Allow multiple probe phases when using automatic configuration, which
     allows the driver search to continue after failures at the PreInit
     stage.

   o Update the static XFree86 driver list to allow automatic configuration
     to work with statically linked XFree86 servers.

   o Add a '-autoconfig' command line option to the XFree86 server to enable
     automatic configuration even when a configuration file is present.

   o Integrate the TinyX servers into the standard XFree86 build.

   o Fix a problem where a big request length of zero does not generate a
     BadLength error.

   o Add a Distributed Multihead X server (DMX) and related extension.

   o Fix a segfault in the cfb module.

   o Fixes for the MIT-SHM extension's Xineramafication.

   o Fix detection of phantom PCI devices.

   o Fix x86emu's handling of the 0xe8 and 0xe9 opcodes.

   o Modify x86emu's handling of SHLD/SHRD instructions to allow shifts
     greater than 15 for 16-bit operands.  This undocumented behaviour is
     expected by the BIOS in an SM722 controller.

   o Avoid some references to unloaded data in the XFree86 server, which can
     cause crashes in some situations.

   o Change the DDC/EDID root window property data from signed to unsigned.

   o Fix the XFree86-Misc extension's PassMessage function.

   o Fix XFree86-DGA for multi-domain architectures.

   o Extend the XF86Config format and parser/config to allow multiple Monitor
     sections to be referenced from a Screen section.

   o Allow multiple XFree86 configuration sources to be combined, and add a
     -appendauto" command line option to allow automatic configuration data
     to be appended to a partial static configuration.

   o Extend the XF86Config format and parser/config to allow multiple Server-
     Flags, Files, and Module sections in a config file.

   o Use a more complete set of the probed EDID data in determining the
     default monitor parameters.

   o Add a "preferred" video mode type, which can be obtained from the probed
     EDID information, or from the static configuration.  This allows the
     native video mode to be used by default for digital panels.

   o Add tentative support for newer iterations of HP's zx1 chipsets.

   o Fix xf86fbman's largest linear area offscreen computation.

   o Print the XFree86 server's command line in the log file.

   o Update getconfig to work with older versions of Perl, and to detect when
     the version of Perl is too old and when Perl is not available.

   o Extend automatic configuration and getconfig to work with SBUS video
     devices in SPARC platforms.

   o Update the ValidMode functions in most video drivers to return more spe-
     cific status values when a mode is rejected.

3.6  Client and Library Updates

3.6.1  Xlib and related libraries

   o Fix an Xlib segfault that may occur when IPv6 XDM-AUTHORIZATION-1 data
     is present in the .Xauthority file.

   o Add WrapHelp.c and enable XdmAuth by default.

   o Fix a null dereference in libSM when given a bad previous session ID.

3.6.2  Xterm

The changes to xterm since XFree86 4.4 are:

Improved behavior

   o Change resource settings for color4 and color12, add some discussion in
     XTerm-col.ad.

   o Modify the criteria for disowning primary selection.  Previously, this
     happened anytime the cursor was moved before the end of the selection.
     That would ensure that any insert/delete of char or line, as well as
     scrolling, would disown the selection.  The new criteria change this to
     checking if the operations would modify the data which is highlighted.

   o Change default translations so a BtnDown which is not recognized is sim-
     ply ignored rather than emitting a bell.  That makes it less obtrusive
     when the user tries to use a mouse which provides more capabilities than
     the X mouse driver supports, e.g., one with a horizontal scroll wheel.

   o Modify to allow turning UTF-8 mode via escape sequence even if -wc
     option was not given at startup.

   o Add menu items and corresponding actions for switching on/off the UTF-8
     mode and Xft (TrueType) support.

   o Modify FreeType support to allow resizing the font, in the same ways the
     window can be resized if fixed fonts are used.  The relative font sizes
     are derived from the fixed font sizes.

   o Implement blinking text, using the timer for blinking cursor.

   o Add translation to ASCII of commonly-used characters that groff trans-
     lates to Unicode, when the font in use does not provide the correspond-
     ing glyphs.

   o Modify constraints in form used to layout toolbar, to work with newer
     Xaw in XFree86 4.x.

   o Make active-icon work properly when TrueType fonts are used, as well as
     when UTF-8 mode is used.

   o Improve rendering for Xft, allow it to draw non-linedrawing characters
     such as "pi", which were drawn from internal tables with patch #180.

   o Modify initialization of 256- and 88-colors so that colors beyond 16 are
     normally not X resources.  This works around a hard-coded limit in Xt
     which breaks xterm when 256-colors and luit are both configured (report
     by Noah Friedman).

   o Fix problem responding to session management events, e.g., which would
     make logging out very slow.

Modified behavior

   o Enable utmpx support for NetBSD 1.6C and newer.

   o Modify Help() to make "xterm -h" write to standard output rather than
     standard error.

   o Improve error-reporting for root user by checking if $DISPLAY is set
     rather than using the useless message from X11 library.

   o Improve $WINDOWID for configuration with toolbar by making it refer to
     the top-level shell rather than the parent of the current window.  For
     that case, the parent is a form widget, which does not have a name,
     which made the $WINDOWID not very useful as a parameter for xwininfo.

   o Improve pattern used in uxterm to check for UTF-8 locale, e.g., for
     HPUX.

   o Modify uxterm script to use locale program to verify if the derived
     locale is installed.

   o Add case to uxterm to accommodate locales ending with "@euro", e.g.,
     fr_FR.UTF-8@euro.

   o For Linux, if IUTF8 is defined, e.g., on recent 2.6.x kernels, set the
     corresponding flag for the slave pty, to enable UTF-8 interpretation of
     backspace in cooked mode.

   o Modify faceSize resource to use a floating-point internal value.

   o Modify XTerm.ad to set saveLines default to 1024.

   o Change xterm version string to use __vendorversion__ where that is
     available, and "XTerm" otherwise.  Rather than reporting the version of
     X that was current when xterm was modified, it reports the version
     against which it was built.

New resource settings

   o Add scoFunctionKeys resource, to match manpage.

   o Add -fd option and resource faceNameDoublesize to specify double-wide
     fonts with Xft.

   o Add resource showMissingGlyphs to outline places on the screen where a
     font lacks the corresponding glyph.

   o Add resource showBlinkAsBold to control whether blinking text should be
     shown as bold or actual blinking text.

   o Add utmpDisplayId resource to allow users to control whether the display
     identifier (display number and screen number) are retained in the con-
     nection information recorded in utmp.

   o Add bellOnReset resource to allow users to disable bell which sounds on
     hard reset since patch #183 changes to DECSCL.

New configure script options

   o Add --disable-setuid option to configure script.

   o Add --disable-full-tgetent option to configure script, allowing one to
     ignore a termcap library in favor of ncurses/curses.

Other new features

   o Add mini-luit feature, which supports Latin9 directly rather than via
     luit, provided that Unicode fonts are used.

   o Add dynamic abbreviation support like Emacs.

   o Add "erase2" and "eol2" keywords to ttyModes resource, for recent/cur-
     rent FreeBSD.

Bug-fixes (see http://invisible-island.net/xterm/xterm.log.html for a more
complete list):

   o Modify initialization and cleanup of utmp data to also compare the
     ut_line member.

   o Correct table entry for DEL in the ground state, which marked it as a
     printable character from patch #171.

   o Correct change from patch #157 which uses getlogin() to check for an
     alias; the storage used for the related getpwuid() call was overwritten
     by the data used for comparison.

   o Correct case of SCS for character set 0 (line-drawing) to allow it to be
     selected into GR.

   o Modify creat_as() to only fork if xterm is actually running as setuid
     and/or setgid.  This works around a Cygwin bug which hangs when logging
     is enabled and makes xterm a little faster for systems using interfaces
     such as utempter.

   o Modify Cleanup() to avoid operations such as X calls that might use
     unsafe functions when it is called by a signal handler.

   o Check for type of failure in xim_real_init() to avoid looping when the
     problem is an unsupported input method rather than a failure to connect
     to the XIM server.  Problem was introduced in patch #175.

   o Add missing #undef OPT_SESSION_MGT to xtermcfg.hin to make the configure
     script's --disable-session-mgt option work.

   o Correct options parsing for -into option so it can be combined with -e.

   o Make escape sequence reporting dynamic colors consistent with the logic
     that sets it; choosing the opposite color when reverse video is set.

   o Fix a repainting bug introduced in patch #180:  when using a font lack-
     ing line-drawing characters, a repaint of the screen could skip horizon-
     tally an extra amount after filling in the missing character.

   o Modify terminfo to accommodate luit, which relies on G1 being used via
     an ISO-2022 escape sequence.  Note that this relies in turn on bug fixes
     in ncurses after the 5.4 release.

3.6.3  Luit

   o Fix a synchronization problem with luit's handling of tty settings.

   o Extract information from the pty before forking rather than after, to
     avoid conflicting with the child process's modifications to the line.

3.6.4  GLX/DRI

   o Mesa and its DRI drivers have been updated to version 6.2.1, plus some
     bug fixes.

   o Add a 915G DRI driver.

   o Fix a GLX multi-thread bug.

3.6.5  twm

   o Add support for XPM icons.

   o Add IconMaxWidth and TitleIndent configuration parameters.

3.6.6  xdm

   o Improve the operation of IPv6-enabled xdm when the platforms's IPv6 sup-
     port is disabled.

   o Make use of Xlib's _XGetHostname rather than attempting to duplicate it.

   o Fix sessreg for NetBSD.

   o Update docs and config to handle authDir being in a non-default loca-
     tion.

3.6.7  xfs

   o Fix log file opening with the '-user nobody' option.

3.7  I18n and Fonts

   o FreeType has been updated to version 2.1.8.

   o The FreeType-1.x based X-TrueType XFree86 server font backend has been
     retired.  The functionality it provides is now available in the
     "FreeType" font backend.  The old "xtt" module is now a wrapper that
     loads the "freetype" module.

   o A bug that prevented the VeraIt.ttf font from being installed has been
     fixed.

   o Fix a problem that could cause apps using the zh_CN.UTF-8 locale to
     crash.

   o Fix freetype module segfault with some Type1 fonts.

   o Replace unicode keysyms in the en_US.UTF-8 Compose file with "tradi-
     tional" ones where such keysyms exist.

   o Fix the ct_encoding sequence in the zh_CN.gbk locale.

   o Update the 8859-7 unicode conversion data file to the current version.

   o Update the gb3212.1980-0 encoding to handle fonts that do not have a
     unicode table.

   o Add encoding files for cns11643-1, cns11643-2, cns11643-3, and
     suneu_greek.

   o Add support for the si_LK.UTF-8 locale.

   o Reinstate the original mkfontdir program, because its mkfontscale equiv-
     alent does not handle creating encodings.dir files as well as is neces-
     sary.

   o Fix for fstobdf generating corrupted BDF files.

   o Update locale info for Kinyarwanda, the language of Rwanda.

   o Add nine missing South African locales.

   o Add extra fontset records into XLC_LOCALE, fixing problems with text
     output by Xuft8 functions under non-Unicode locales.

   o Add a Kyrgyz locale.

3.8  OS Support Updates

   o Numerous fixes and enhancements for the Solaris/SPARC platform support,
     including the ability to build 64-bit shared libraries.

   o Support added for OpenBSD/amd64.

   o Differentiate left and right modifier keys on Mac OS X 10.3.

   o Fix some path-related issues on OS/2 with xman and xf86cfg.

   o Update the transport layer to allow LOCAL SCO connection types to be
     used for more than just X protocol connections.

   o Cleanups for the SCO port.

   o Fixes for FreeBSD/amd64 support.

   o Add support for newer UltraSPARC variants to the SunOS/Solaris and Linux
     ports.

   o Understand the PCI bus naming scheme found in Linux 2.6 kernels.

4.  Drivers

4.1  Video Drivers

XFree86 4.5.0 includes the following video drivers:

 +--------------+--------------------------+--------------------------------+
 |Driver Name   | Description              | Further Information            |
 +--------------+--------------------------+--------------------------------+
 |apm           | Alliance Pro Motion      | README.apm                     |
 |ark           | Ark Logic                |                                |
 |ati           | ATI                      | README.ati, README.r128,       |
 |              |                          | r128(4), radeon(4)             |
 |chips         | Chips & Technologies     | README.chips, chips(4)         |
 |cirrus        | Cirrus Logic             |                                |
 |cyrix (*)     | Cyrix MediaGX            | README.cyrix                   |
 |fbdev         | Linux framebuffer device | fbdev(4)                       |
 |glide         | Glide2x (3Dfx)           | glide(4)                       |
 |glint         | 3Dlabs, TI               | glint(4)                       |
 |i128          | Number Nine              | README.I128, i128(4)           |
 |i740          | Intel i740               | README.i740                    |
 |i810          | Intel i8xx               | README.i810, i810(4)           |
 |imstt         | Integrated Micro Solns   |                                |
 |mga           | Matrox                   | mga(4)                         |
 |neomagic      | NeoMagic                 | neomagic(4)                    |
 |newport (-)   | SGI Newport              | README.newport, newport(4)     |
 |nsc           | National Semiconductor   | nsc(4)                         |
 |nv            | NVIDIA                   | nv(4)                          |
 |rendition     | Rendition                | README.rendition, rendition(4) |
 |s3            | S3 (not ViRGE or Savage) |                                |
 |s3virge       | S3 ViRGE                 | README.s3virge, s3virge(4)     |
 |savage        | S3 Savage                | savage(4)                      |
 |siliconmotion | Silicon Motion           | siliconmotion(4)               |
 |sis           | SiS                      | README.SiS, sis(4)             |
 |sunbw2 (+)    | Sun bw2                  |                                |
 |suncg14 (+)   | Sun cg14                 |                                |
 |suncg3 (+)    | Sun cg3                  |                                |
 |suncg6 (+)    | Sun GX and Turbo GX      |                                |
 |sunffb (+)    | Sun Creator/3D, Elite 3D |                                |
 |sunleo (+)    | Sun Leo (ZX)             |                                |
 |suntcx (+)    | Sun TCX                  |                                |
 |tdfx          | 3Dfx                     | tdfx(4)                        |
 |tga           | DEC TGA                  | README.DECtga                  |
 |trident       | Trident                  | trident(4)                     |
 |tseng         | Tseng Labs               |                                |
 |via           | VIA                      | via(4)                         |
 |vesa          | VESA                     | vesa(4)                        |
 |vga           | Generic VGA              | vga(4)                         |
 |vmware        | VMWare guest OS          | vmware(4)                      |
 +--------------+--------------------------+--------------------------------+

Drivers marked with (*) are present in a preliminary form in this release,
but are not complete and/or stable yet.

Drivers marked with (+) are for Linux/SPARC only.

Drivers marked with (-) are for Linux/mips only.

Darwin/Mac OS X uses IOKit drivers and does not use the module loader drivers
listed above. Further information can be found in README.Darwin.

4.2  Input Drivers

XFree86 4.5.0 includes the following input drivers:

   +------------+----------------------------------+---------------------+
   |Driver Name | Description                      | Further Information |
   +------------+----------------------------------+---------------------+
   |aiptek(*)   | Aiptek USB tablet                | aiptek(4)           |
   |calcomp     | Calcomp                          |                     |
   |citron      | Citron                           | citron(4)           |
   |digitaledge | DigitalEdge                      |                     |
   |dmc         | DMC                              | dmc(4)              |
   |dynapro     | Dynapro                          |                     |
   |elographics | EloGraphics                      |                     |
   |eloinput    | Elo 2500U USB                    | eloinput(4)         |
   |fpit        | Fujitsu Stylistic Tablet PCs     | fpit(4)             |
   |hyperpen    | Aiptek HyperPen 6000             |                     |
   |js_x        | JamStudio pentablet              | js_x(4)             |
   |kbd         | generic keyboards (alternate)    | kbd(4)              |
   |keyboard    | generic keyboards                | keyboard(4)         |
   |microtouch  | MicroTouch                       |                     |
   |mouse       | most mouse devices               | mouse(4)            |
   |mutouch     | MicroTouch                       |                     |
   |palmax      | Palmax PD1000/PD1100             | palmax(4)           |
   |penmount    | PenMount                         |                     |
   |spaceorb    | SpaceOrb                         |                     |
   |summa       | SummaGraphics                    |                     |
   |tek4957     | Tektronix 4957 tablet            | tek4957(4)          |
   |ur98(*)     | Union Reality UR-F98 headtracker | ur98(4)             |
   |void        | dummy device                     | void(4)             |
   |wacom       | Wacom tablets                    | wacom(4)            |
   +------------+----------------------------------+---------------------+

Drivers marked with (*) are available for Linux only.

5.  Known Problems

Currently no known problems are documented.

6.  Overview of XFree86 4.x.

XFree86 4.x has a single X server binary called XFree86.  This binary can
either have one or more video and input drivers linked in statically, or more
usually, dynamically, and in that manner load the video drivers, input driv-
ers, and other modules that are needed.

XFree86 4.5.0 has X server support for most UNIX� and UNIX-like operating
systems on Intel/x86 platforms, plus support for Linux and some BSD OSs on
Alpha, PowerPC, IA-64, AMD64, SPARC, and Mips platforms, and for Darwin on
PowerPC.  Support for additional architectures and operating systems is in
progress and is planned for future releases.

6.1  Loader and Modules

The XFree86 X server has a built-in run-time loader, which can load normal
object files and libraries in most of the commonly used formats.  The loader
does not rely on an operating system's native dynamic loader support and it
works on platforms that do not provide this feature.  This allows for the
modules to be operating system independent (although not, of course, CPU
architecture independent) which means that a module compiled on Linux/x86 can
be loaded by an X server running on Solaris/x86, or FreeBSD, or even OS/2.

The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb, cfb,
etc), and internal components used by some drivers (like XAA),

The module interfaces (both API and ABI) used in this release are subject to
change without notice.  While we will attempt to provide backward compatibil-
ity for the module interfaces as of the 4.0 release (meaning that 4.0 modules
will work with future core X server binaries), we cannot guarantee this.
Compatibility in the other direction is explicitly not guaranteed because new
modules may rely on interfaces added in new releases.

Note about module security

     The XFree86 X server runs with root privileges, i.e.  the X server
     loadable modules also run with these privileges.  For this reason
     we recommend that all users be careful to only use loadable modules
     from reliable sources,  otherwise the introduction of viruses and
     contaminated code can occur and wreak havoc on your system.  We
     hope to have a mechanism for signing/verifying the modules that we
     provide available in a future release.

6.2  Configuration

The XFree86 server uses a configuration file as the primary mechanism for
providing configuration and run-time parameters.  The configuration file for-
mat is described in detail in the XF86Config(5) manual page.

The XFree86 server has support for automatically determining an initial con-
figuration on most platforms, as well as support or generating a basic ini-
tial configuration file.

6.3  Command Line Options

Command line options can be used to override some default parameters and
parameters provided in the configuration file.  These command line options
are described in the XFree86(1) manual page.

6.4  XAA

The XFree86 Acceleration Architecture (XAA) was completely rewritten from
scratch for XFree86 4.x.  Most drivers implement acceleration by making use
of the XAA module.

6.5  Multi-head

Some multi-head configurations are supported in XFree86 4.x, primarily with
multiple PCI/AGP cards.

One of the main problems is with drivers not sufficiently initialising cards
that were not initialised at boot time.  This has been improved somewhat with
the INT10 support that is used by most drivers (which allows secondary card
to be "soft-booted", but in some cases there are other issues that still need
to be resolved.  Some combinations can be made to work better by changing
which card is the primary card (either by using a different PCI slot, or by
changing the system BIOS's preference for the primary card).

6.6  Xinerama

Xinerama is an X server extension that allows multiple physical screens to
behave as a single screen.  With traditional multi-head in X11, windows can-
not span or cross physical screens.  Xinerama removes this limitation.  Xin-
erama does, however, require that the physical screens all have the same root
depth, so it isn't possible, for example, to use an 8-bit screen together
with a 16-bit screen in Xinerama mode.

Xinerama is not enabled by default, and can be enabled with the +xinerama
command line option for the X server.

Xinerama was included with X11R6.4.  The version included in XFree86 4.x was
completely rewritten for improved performance and correctness.

Known problems:

   o Not all window managers are Xinerama-aware, and so some operations like
     window placement and resizing might not behave in an ideal way.  This is
     an issue that needs to be dealt with in the individual window managers,
     and isn't specifically an XFree86 problem.

6.7  DGA version 2

DGA 2.0 is included in 4.5.0.  Documentation for the client libraries can be
found in the XDGA(3) man page.  A good degree of backwards compatibility with
version 1.0 is provided.

6.8  DDC

The VESA� Display Data Channel (DDC[tm]) standard allows the monitor to tell
the video card (or on some cases the computer directly) about itself; partic-
ularly the supported screen resolutions and refresh rates.

Partial or complete DDC support is available in most of the video drivers.
DDC is enabled by default, but can be disabled with a "Device" section entry:
Option "NoDDC".  We have support for DDC versions 1 and 2; these can be dis-
abled independently with Option "NoDDC1" and Option "NoDDC2".

At startup the server prints out DDC information from the display, and will
use this information to set the default monitor parameters and video mode
when none are provided explicitly in the configuration file.

6.8.1  Changed behavior caused by DDC.

Several drivers uses DDC information to set the screen size and pitch.  This
can be overridden by explicitly resetting it to the and non-DDC default value
75 with the -dpi 75 command line option for the X server, or by specifying
appropriate screen dimensions with the "DisplaySize" keyword in the "Monitor"
section of the config file.

6.9  GLX and the Direct Rendering Infrastructure (DRI)

Direct rendered OpenGL� support is provided for several hardware platforms by
the Direct Rendering Infrastructure (DRI), which is part of Mesa.  Mesa also
provides the 3D core rendering component of GLX.  Further information can be
found at the DRI Project's web site <URL:http://dri.sf.net/> and the Mesa web
site <URL:http://www.mesa3d.org>.

6.10  XVideo Extension (Xv)

The XVideo extension is supported in XFree86 4.x.  An XvQueryPortAttributes
function has been added as well as support for XvImages.  XvImages are XIm-
ages in alternate color spaces such as YUV and can be passed to the server
through shared memory segments.  This allows clients to display YUV data with
high quality hardware scaling and filtering.

6.11  X Rendering Extension (Render)

The X Rendering extension provides a 2D rendering model that more closely
matches application demands and hardware capabilities.  It provides a render-
ing model derived from Plan 9 based on Porter/Duff image composition rather
than binary raster operations.

Using simple compositing operators provided by most hardware, Render can draw
anti-aliased text and geometric objects as well as perform translucent image
overlays and other image operations not possible with the core X rendering
system.

XFree86 4.5.0 provides a partial implementation of Render sufficient for
drawing anti-aliased text and image composition.  Still to be implemented are
geometric primitives and affine transformation of images.

Unlike the core protocol, Render provides no font support for applications,
rather it allows applications to upload glyphs for display on the screen.
This allows the client greater control over text rendering and complete
access to the available font information while still providing hardware
acceleration.  The Xft library provides font access for Render applications.

6.11.1  The Xft Library

On the client side, the Xft library provides access to fonts for applications
using the FreeType library, version 2.  FreeType currently supports Type1 and
TrueType font files, a future release is expected to support BDF and PCF
files as well, so Render applications will have access to the complete range
of fonts available to core applications.  One important thing to note is that
Xft uses the vertical size of the monitor to compute accurate pixel sizes for
provided point sizes; if your monitor doesn't provide accurate information
via DDC, you may want to add that information to XF86Config.

To allow a graceful transition for applications moving from core text render-
ing to the Render extension, Xft can use either core fonts or FreeType and
the Render extension for text.  By default, Xft is configured to support both
core fonts and FreeType fonts using the supplied version of FreeType 2.  See
the section on FreeType support in Xft for instructions on configuring
XFree86 to use an existing FreeType installation.

The Xft library uses a configuration file, XftConfig, which contains informa-
tion about which directories contain font files and also provides a sophisti-
cated font aliasing mechanism.  Documentation for that file is included in
the Xft(3) man page.

6.11.2  FreeType support in Xft

XFree86 4.5.0 includes sources for FreeType version 2.1.8, and, by default,
they are built and installed automatically.

6.11.3  Application Support For Anti-Aliased Text

Only three applications have been modified in XFree86 4.5.0 to work with the
Render extension and the Xft and FreeType libraries to provide anti-aliased
text.  Xterm, xditview and x11perf.  Migration of other applications may
occur in future releases.

By default, xterm uses core fonts through the standard core API.  It has a
command line option and associated resource to direct it to use Xft instead:

   o -fa family / .VT100.faceName: family.  Selects the font family to use.

Xditview will use Xft instead of the core API by default.  X11perf includes
tests to measure the performance of text rendered in three ways, anti-
aliased, anti-aliased with sub-pixel sampling and regular chunky text, but
through the Render extension, a path which is currently somewhat slower than
core text.

6.12  Other extensions

The XFree86-Misc extension has not been fully ported to the new server archi-
tecture yet.  This might be completed in a future release.

The XFree86-VidModeExtension extension has been updated, and mostly ported to
the new server architecture.  The area of mode validation needs further work,
and the extension should be used with care.  This extension has support for
changing the gamma setting at run-time, for modes where this is possible.
The xgamma utility makes use of this feature.  Compatibility with the 3.3.x
version of the extension is provided.  The missing parts of this extension
and some new features should be completed in a future release.

6.13  xedit

Xedit has several new features, including:

   o An embedded lisp interpreter that allows easier extension of the editor.

   o Several new syntax highlight modes, and indentation rules for C and
     Lisp.

   o Flexible search/replace interface that allows regex matches.

   o Please refer to xedit(1) for more details.

6.14  Font support

Details about the font support in XFree86 4.x can be found in the
README.fonts document.

6.15  TrueType support

The XFree86 4.x server comes with a TrueType backend, known as the "FreeType"
backend, based on the FreeType library.  The functionality of the former X-
TrueType was merged into the FreeType backend by the After X-TT Project for
the XFree86 4.4.0 release, and the old X-TrueType backend has been dropped as
of XFree86 4.5.0.

6.16  CID font support

Support for CID-keyed fonts is included in XFree86 4.x.  The CID-keyed font
format was designed by Adobe Systems <URL:http://www.adobe.com> for fonts
with large character sets.  The CID-keyed font support in XFree86 was donated
by SGI <URL:http://www.sgi.com>.  See the LICENSE document for a copy of the
CID Font Code Public License.

6.17  Internationalisation of the scalable font backends

XFree86 4.x has a ``fontenc'' layer to allow the scalable font backends to
use a common method of font re-encoding.  This re-encoding makes it possible
to use fonts in encodings other than their their native encoding.  This layer
is used by the FreeType, Type1 and Speedo backends.

6.18  Large font optimisation

The glyph metrics array, which all the X clients using a particular font have
access to, is placed in shared memory, so as to reduce redundant memory con-
sumption.  For non-local clients, the glyph metrics array is transmitted in a
compressed format.

6.19  Unicode/ISO 10646 support

What is included in 4.x:

   o All ``-misc-fixed-*'' BDF fonts are now available in the ISO10646-1
     encoding and cover at least the 614 characters found in ISO
     8859-{1-5,7-10,14,15}, CP1252, and MES-1. The non-bold fonts also cover
     all Windows Glyph List 4 (WGL4) characters, including those found in all
     8-bit MS-DOS/Windows code pages. The 8-bit variants of the ``-misc-
     fixed-*'' BDF fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
     automatically generated from the new ISO10646-1 master fonts.

   o Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a comprehensive
     Unicode repertoire of over 3000 characters including all Latin, Greek,
     Cyrillic, Armenian, Gregorian, Hebrew, IPA, and APL characters, plus
     numerous scientific, typographic, technical, and backwards-compatibility
     symbols. Some of these fonts also cover Arabic, Ethiopian, Thai,
     Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13 font there is
     now a 12x13ja Kanji extension and for the 9x18 font there is a 18x18ja
     Kanji/Han/Hangul extension, which covers all ISO-2022-JP-2 (RFC 1554)
     characters. The 9x18 font can also be used to implement simple combining
     characters by accent overstriking. For more information, read Markus
     Kuhn's UTF-8 and Unicode FAQ <URL:http://www.cl.cam.ac.uk/~mgk25/uni-
     code.html>.

   o Mark Leisher's ClearlyU proportional font (similar to Computer Modern).

   o ISO 10646/Unicode UTF-8 Level 1 support added to xterm (enabled with the
     -u8 option).

   o The FreeType font backend supports Unicode-encoded fonts.

6.20  Xlib Compose file support and extensions

A more flexible Compose file processing system was added to Xlib in XFree86
4.4.0.  The compose file is searched for in the following order:

  1.  If the environment variable $XCOMPOSEFILE is set, its value is used as
      the name of the Compose file.

  2.  If the user's home directory has a file named ".XCompose", it is used
      as the Compose file.

  3.  The old method is used, and the compose file is "<xlocaledir>/<locale-
      name>/Compose".

Compose files can now use an "include" instruction.  This allows local modi-
fications to be made to existing compose files without including all of the
content directly.  For example, the system's iso8859-1 compose file can be
included with a line like this:

     include "/usr/X11R6/lib/X11/locale/iso8859-1/Compose"

There are two substitutions that can be made in the file name of the include
instruction.  %H expands to the user's home directory (the $HOME environment
variable), and %L expands to the name of the locale specific Compose file
(i.e., "<xlocaledir>/<localename>/Compose").

For example, you can include in your compose file the default Compose file by
using:

     include "%L"

and then rewrite only the few rules that you need to change.  New compose
rules can be added, and previous ones replaced.

Finally, it is no longer necessary to specify in the right part of a rule a
locale encoded string in addition to the keysym name.  If the string is omit-
ted, Xlib figures it out from the keysym according to the current locale.
I.e., if a rule looks like:

     <dead_grave> <A> : "\300" Agrave

the result of the composition is always the letter with the "\300" code.  But
if the rule is:

     <dead_grave> <A> : Agrave

the result depends on how Agrave is mapped in the current locale.

6.21  Luxi fonts from Bigelow and Holmes

XFree86 now includes the ``Luxi'' family of Type 1 fonts and TrueType fonts.
This family consists of the fonts ``Luxi Serif'', ``Luxi Sans'' and
``Luxi Mono'' in Roman, oblique, bold and bold oblique variants.  The True-
Type version have glyphs covering the basic ASCII Unicode range, the Latin 1
range, as well as the Extended Latin range and some additional punctuation
characters.  In particular, these fonts include all the glyphs needed for
ISO 8859 parts 1, 2, 3, 4, 9, 13 and 15, as well as all the glyphs in the
Adobe Standard encoding and the Windows 3.1  character set.

The glyph coverage of the Type 1 versions is somewhat reduced, and only cov-
ers ISO 8859 parts 1, 2 and 15 as well as the Adobe Standard encoding.

The Luxi fonts are original designs by Kris Holmes and Charles Bigelow from
Bigelow and Holmes Inc., who developed the Luxi typeface designs in Ikarus
digital format.  URW++ Design and Development GmbH converted the Ikarus for-
mat fonts to TrueType and Type 1 font programs and implemented the grid-fit-
ting "hints" and kerning tables in the Luxi fonts.

The license terms for the Luxi fonts are included in the file `COPYRIGHT.BH',
as well as in the License document.  For further information, please contact
<design@bigelowandholmes.com> or <info@urwpp.de>, or consult the URW++ web
site <URL:http://www.urwpp.de>.

7.  Credits

This section lists the credits for the XFree86 4.5.0 release.  For a more
detailed breakdown, refer to the CHANGELOG file in the XFree86 source tree,
the cvs-commit archives <URL:http://www.mail-archive.com/cvs-com-
mit@xfree86.org/maillist.html>, or the 'cvs log' information for individual
source files.

      New Features, Enhancements and Updates:

                  Xterm enhancements and updates:
                        Thomas Dickey

                  Integrate TinyX into the mainline XFree86 build:
                        X-Oz Technologies

                  Intel i915GM support, dual head i830/i855/i915 support:
                        Tungsten Graphics, Alan Hourihane, Keith Whitwell

                  Automatic configuration enhancements:
                        X-Oz Technologies, David Dawes

                  Distributed Multihead X:
                        Kevin Martin, Rik Faith

                  Preliminary work on SunOS/SPARC and IRIX ports:
                        Marc La France

      Integration:

                  General Integration of Submissions:
                        David H. Dawes, Marc La France, Alan Hourihane, Ivan
                        Pascal.

                  DRI Integration:
                        Alan Hourihane, David H. Dawes.

      Release Engineering:
            David H. Dawes.

      Patches and other submissions (in alphabetical order):
            Szilveszter Adam, Tim Adye, Taneem Ahmed, Andrew Aitchison, Raoul
            Arranz, Zaeem Arshad, Dwayne Bailey, Ilyas Bakirov, Denis Bar-
            bier, Kyle Bateman, J. Scott Berg, Thomas Biege, Dmitry
            Bolkhovityanov, H Merijn Brand, Peter Breitenlohner, Benjamin
            Burke, Dale L Busacker, busmanus, Julian Cable, Mike Castle,
            David M. Clay, Philip Clayton, Alan Coopersmith, Ricardo Cruz,
            Michel D�nzer, J. D. Darling, David Dawes, Michael Dawes, Rafael
            �vila de Esp�ndola, Rick De Laet, Josip Deanovic, Angelus Dei,
            Laurent Deniel, Thomas Dickey, Stefan Dirsch, Charles Dobson, DRI
            Project, Emmanuel Dreyfus, Boris Dusek, Georgina O. Economou,
            Egbert Eich, Bernd Ernesti, Chris Evans, Rik Faith, Adrian
            Fiechter, Matthew Fischer, FreeType Team, Terry R. Frienrichsen,
            Christopher Fynn, Hubert Gburzynski, Nicolas George, Frank
            Giessler, Fred Gleason, Dmitry Golubev, Alexander Gottwald, Her-
            bert Graeber, Miroslav Halas, John Harper, Harshula, John
            Heasley, Matthieu Herrb, David Holl, Alex Holland, Peng Hongbo,
            Alan Hourihane, Harold L Hunt II, Alan Iwi, Timur Jamakeev, Paul
            Jarc, Kean Johnston, Nicolas Joly, Mark Kandianis, Kaleb Keith-
            ley, Chamath Keppitiyagama, Jung-uk Kim, Satoshi Kimura, Michael
            Knudsen, Vlatko Kosturjak, Alexei Kosut, Anton Kovalenko, Joachim
            Kuebart, Marc La France, David Laight, Zarick Lau, Pierre Lalet,
            Michael Lampe, Lanka Linux User Group, Nolan Leake, Werner Lem-
            berg, Dejan Lesjak, Noah Levitt, Greg Lewis, Bernhard R Link,
            Jonas Lund, S. Lussos, Torrey T. Lyons, Roland Mainz, N Marci,
            Kevin Martin, Stephen McCamant, Mesa Developers, Luke Mewburn,
            Petr Mladek, Bram Moolenaar, Steve Murphy, Ishikawa MUTSUMI, Radu
            Octavian, Lee Olsen, Greg Parker, Ivan Pascal, Alexander E.
            Patrakov, Mike Pechkin, So�s P�ter, Zvezdan Petkovic, Alexander
            Pohoyda, Xie Qian, Bill Randle, Adam J. Richter, Tim Roberts,
            Bernhard Rosenkraenzer, Andreas R�den, Steve Rumble, Oleg Safi-
            ullin, Ty Sarna, Leo Savernik, Barry Scott, Shantonu Sen, Yu
            Shao, Andreas Schwab, Matthias Scheler, Dan Shearer, Michael
            Shell, Paul Shupak, Alexander Stohr, Marius Strobl, Mikko Markus
            Torni, Jess Thrysoee, Izumi Tsutsui, Tungsten Graphics, Ryan
            Underwood, Tristan Van Berkom, Michael van Elst, Phillip Vandry,
            Roman Vasylyev, Luc Verhaegen, Rodion Vshevtsov, Mark Vojkovich,
            Edi Werner, Keith Whitwell, Scot Wilcoxon, Dave Williss, Thomas
            Winischhofer, Kuang-che Wu, X-Oz Technologies, Chisato Yamauchi,
            Michael Yaroslavtsev, David Yerger, Su Yong, Hui Yu, Sagi Zeevi,
            Christian Zietz

      Webmaster:
            Georgina O. Economou

      Hosting:
            Internet Systems Consortium, Inc <URL:http://www.isc.org/>.

8.  Attributions/Acknowledgements

This product includes software developed by The XFree86 Project, Inc
(http://www.xfree86.org/) and its contributors.

This product includes software that is based in part of the work of the
FreeType Team (http://www.freetype.org).

This product includes software developed by the University of California,
Berkeley and its contributors.

This product includes software developed by Christopher G. Demetriou.

This product includes software developed by the NetBSD Foundation, Inc. and
its contributors

This product includes software developed by X-Oz Technologies (http://www.x-
oz.com/).

     Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.135 dawes Exp $