Release Notes for XFree86[tm] 3.9.17 The XFree86 Project, Inc 31 December 1999 Abstract This document contains some information about the features present in XFree86 3.9.17 and their status. 1. Summary of new features in 3.9.17 compared with 3.9.16. This section contains a brief summary of what has changed since the previous snapshot. Unfortunately, only a small number of changes are listed here. For detailed information, refer to the CHANGELOG file in the xc/pro- grams/Xserver/hw/xfree86 directory in the source tree. The sections that follow this one have details of features that are new to the pre-4.0 snapshot series. o The 3dfx driver is now supported by the DRI. o Tiny-X for the Itsy has been added. o Significant font and font server enhancements. o New driver for ATI Rage 128. The driver is called "r128". o Xterm enhancements and fixes. o DPS support hooks have been added. Display Postscript support is being maintained outside of the server tree due to licensing issues. A web page for DPS resources under XFree86 will be available shortly. o DRI enhancements including Mesa update to version 3.2, full support and fifo code for 3dfx hardware, and device driver updates for Linux 2.3 kernels. o Significant enhancements to Xv including support for XvImages (YUV XImages). o Add initial VESA VBE support including initialization and DDC. o Several PCI enhancements. o "SilkenMouse" (asynchronous pointer handling) for smoother mouse movement. o Add GeForce/Quadro support to the NVIDIA driver. o Int10 "soft-booting" support for Linux. o Resource allocation infrastructure added. o Syntax of the layout section has changed to make multi-head configuration easier. o Some Xinerama bug fixes. o The DGA 2.0 interface is mostly finalized and includes some preliminary documentation. o ViRGE MX Melco BIOS support has been added. o Keyboard AutoRepeat now works correctly on Linux. This means that the AutoRepeat keyword in XF86Config is now obeyed; you may be more comfortable using "250 30" rather than the default setting of "500 5". 2. Summary of new features in 3.9.16 compared with 3.9.15. o The "apm" driver has been updated. See the APM section (section 3.12.1, page 1) below. o A driver for NVIDIA chipsets is now included. The driver is called "nv". Some very basic information can be found in the nv(4) man page. o The default xdm config file now has a line to disable listening for XDMCP requests. This is fine when xdm is only managing a local X server. The line must be commented out when xdm is used to manage external X servers (e.g., X terminals). o New driver for Intel i740. The driver is called "i740". o New driver for 3Dfx Banshee and Voodoo 3. The driver is called "tdfx". o Some work on adding WYSIWYG capabilities to the Xaw text widget. o Some preliminary support for programming modes has been added to xedit. 3. X server Unlike XFree86 3.3.x where there are multiple X server binaries, each of which drive different hardware, XFree86 3.9.17 has a single X server binary (called XFree86). This binary can either have one or more video drivers linked in statically, or, more usually, dynamically load the video drivers and other modules that are needed. XFree86 3.9.17 has X server support for most UNIX(R) and UNIX-like operating systems on Intel/x86 platforms, plus support for Linux on Alpha and PowerPC platforms. Support for additional architectures and operating systems is planned for future releases. 3.1 Loader and Modules The XFree86 X server has a built-in run-time loader, donated by Metro Link . This loader can load normal object files and libraries in most of the commonly used formats. Since the loader doesn't rely on an operating system's native dynamic loader support, it works on platforms that don't provide this feature, and makes it possible for the mod- ules to be operating system independent (although not, of course, independent of CPU architecture). This means that, for example, a module compiled on Linux/x86 can be loaded by an X server running on Solaris/x86, or FreeBSD, or even OS/2. One of the main benefits of this is that when modules are updated, they don't need to be recompiled for each different operating sys- tem. The loader in version 3.9.17 has support for Intel (x86), Alpha and PowerPC platforms. It also has preliminary support for Sparc platforms. 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 (API and ABI) used in the snapshot releases are subject to change without notice. This means that there is no guarantee that modules built for one snapshot release will function with another snapshot release. As of the 4.0 release we plan to make every effort to provide backward com- patibility for the module interfaces (that means older modules working with newer core X server binaries). Note about module security The XFree86 X server runs with root privileges, which means that 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. By the time that XFree86 4.0 is released, we hope to have implemented a method for sign- ing/verifying modules that we provide. 3.2 Configuration File The X server configuration file format has been extended to handle some of the new functionality. The xf86config utility can be used to generate a basic config file, that may require some manual editing. Alternatively, the sample config file XF86Config.eg that is installed in /usr/X11R6/lib/X11 may be used as a starting point. The XF86Setup utility is currently not usable, but work is continuing in this area. The main changes are: o The Module section is used to load server extension modules and font modules, but not XInput drivers. The .so suffix should no longer be specified with module names. Options may be supplied for modules by loading the module via a SubSection instead of the usual Load keyword. The bitmap module is the only font module that is loaded by default. No server extensions are loaded by default, but some are built-in to the server. The following example shows how to load all the server exten- sions plus the Type1 and TrueType fonts support, and a commented example that shows how to pass options to an extension (this one is for loading the misc extensions (extmod) with the XFree86-VidModeExtension dis- abled): Section "Module" Load "dbe" Load "record" Load "glx" Load "pex5" Load "xie" Load "extmod" Load "type1" Load "freetype" # SubSection "extmod" # Option "Omit XFree86-VidModeExtension" # EndSubSection EndSection o Option flags have been extended and are now used more widely in the con- fig file. Options flags come in two main types. The first type is exactly like the old form: Option "name" where the option just has a name specified. The name is case insensi- tive, and white space and underscore characters are ignored. The second type consists of a name and a value: Option "name" "value" The value is passed transparently as a string to the code that uses the option. Common value formats are integer, boolean, real, string and frequency. The following boolean option values are recognised as mean- ing TRUE: "true", "yes", "on", "1", and no value. The values recognised as FALSE are "false", "no", "off", "0". In addition to this, "no" may be prepended to the name of a boolean option to indicate that it is false. Frequency options can have the strings Hz, kHz, or MHz appended to the numerical value specified. Note: the value must always be enclosed in double quotes ("). o The ServerFlags section now accepts its parameters as Options instead of as special keywords. The older keyword format is still recognised for compatibility purposes, but is deprecated and support for it will likely be dropped in a future release. The DPMS and screen save timeout values are now specified in the ServerFlags section rather than elsewhere (because they are global parameters, not screen-specific). This example shows the defaults for these: Option "blank time" "10" Option "standby time" "20" Option "suspend time" "30" Option "off time" "60" o The Keyboard, Pointer and XInput sections have been replaced by a more general InputDevice section. The old Keyboard and Pointer sections are still recognised for compatibility purposes, but they are deprecated and support for them may be dropped in future releases. The keywords from the old sections are expressed as Options in the InputDevice sections. The following example shows typical InputDevice sections for the core mouse and keyboard. Section "InputDevice" Identifier "Keyboard 1" Driver "keyboard" Option "AutoRepeat" "500 5" Option "XkbModel" "pc104" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Mouse 1" Driver "mouse" Option "Protocol" "PS/2" Option "Device" "/dev/mouse" SampleRate 80 EndSection Note: Additional sample rates have been added for some mice. Matching the mouse sampling rate with the vertical refresh rate can yield very noticeable improvements in smoothness of pointer event driven operations such as window moves and scrolling. o The Monitor section is mostly unchanged. The main difference is that a set of VESA modes is defined internally in the server, and so for most monitors, it isn't necessary to specify any modes explicitly in the Mon- itor section. The Monitor section may also include Options. Options that are monitor-specific, like the "DPMS" and "Sync on Green" options are best specified in the Monitor sections. o The Device sections are mostly unchanged. The main difference is the new (and mandatory) Driver keyword, that specifies which video driver should be loaded to drive the video card. Another difference is the BusID keyword that is used to specify which of possibly multiple video cards the Device section is for. The following is an example for a Matrox card: Section "Device" Identifier "MGA 1" Driver "mga" BusID "PCI:1:0:0" Option "PCI Retry" EndSection o The Screen sections are mostly unchanged. The old Driver keyword is no longer used, and a mandatory Identifier keyword has been added. The DefaultColorDepth keyword has been renamed to DefaultDepth. o A new section called ServerLayout has been added to allow the layout of the screens and the selection of input devices to be specified. The ServerLayout sections may also include options that are normally found in the ServerFlags section. Multiple ServerLayout sections may be pre- sent, and selected from the command line. The following example shows a ServerLayout section for a dual-headed configuration with two Matrox cards, and two mice: Section "ServerLayout" Identifier "Layout 1" Screen "MGA 1" Screen "MGA 2" RightOf "MGA 1" InputDevice "Keyboard 1" "CoreKeyboard" InputDevice "Mouse 1" "CorePointer" InputDevice "Mouse 2" "SendCoreEvents" Option "BlankTime" "5" EndSection See the document xc/programs/Xserver/hw/xfree86/doc/DESIGN for a more detailed explanation of the new ServerLayout section syntax. The config file search patch has been extended, with the directories /etc/X11 and /usr/X11R6/etc being added. 3.3 Command Line Options The following new X server command line options have been added: -depth n This specifies the colour depth that the server is run- ning at. The default is 8 for most drivers. Most drivers support the values 8, 15, 16 and 24. Some drivers also support the values 1 and 4. Some drivers may also support other depths. Note that the depth is different from the ``bpp'' that was specified with previ- ous versions. The depth is the number of bits in each pixel that are significant in determining the pixel's value. The bpp is the total size occupied by each pixel, including bits that are not used. The old -bpp option is no longer recognised because it isn't a good way of spec- ifying the server behaviour. -fbbpp n This specifies the bpp format to use for the framebuffer. This may be used in 24-bit mode to force a framebuffer format that is different from what the driver chooses by default. In most cases there should be no need to use this option. -pixmap24 This specifies that the client-side pixmap format should be the packed 24-bit format that was often used by the 3.3.x servers. The default is the more common 32-bit format. There should normally be no need to use this option. -pixmap32 This specifies that the client-side pixmap format should be the sparse 32-bit format. This is the default, so there should normally be no need to use this option. -layout name This specifies which ServerLayout section in the config file to use. When this option is not specified, the first ServerLayout section is used. When there is no ServerLayout section, the first Screen section is used. -screen name This specifies which Screen section in the config file to use. When this option is not specified, the first ServerLayout section is used. When there is no Server- Layout section, the first Screen section is used. -keyboard name This specifies which InputDevice section in the config file to use for the core keyboard. This option may be used in conjunction with the -screen option. -pointer name This specifies which InputDevice section in the config file to use for the core pointer. This option may be used in conjunction with the -screen option. -modulepath path This specifies the module search path. The path should be a comma-separated list of absolute directory paths to search for server modules. When specified here, it over- rides the value specified in the config file. This option is only available when the server is started by the root user. -logfile file This specifies the log file name. When specified here, it overrides the value specified in the config file. This option is only available when the server is started by the root user. -scanpci This specifies that the scanpci module should be loaded and executed. This does a scan of the PCI bus. This option is only available when the server is started by the root user. -logverbose [n] This options specifies the verbosity level to use for the log file. The default is 3. The following X server command line options have been changed since 3.3.x: -verbose [n] This option specifies the verbosity level to use for the server messages that get written to stderr. It may be specified multiple times to increase the verbosity level (as with 3.3.x), or the verbosity level may be specified explicitly as a number. The default verbosity level is 1. -xf86config filename This option has been extended to allow non-root users to specify a relative config file name. The config file search path will be used to locate the file in this case. This makes it possible for users to choose from multiple config files that the the sysadmin has provided. 3.4 XAA The XFree86 Acceleration Architecture (XAA) has been completely rewritten from scratch. Most drivers implement acceleration by making use of the XAA module. 3.5 Multi-head Some multi-head configurations are supported in this release, primarily with multiple PCI/AGP cards. However, this is an area that is still being worked on, and we expect that the range of configurations for which it works well will increase in future snapshots. A configuration that is known to work well in most cases is multiple (supported) Matrox cards. One of the main problems is with drivers not sufficiently initialising cards that were not initialised at boot time. Normally only the primary video card gets initialised at boot time. 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). We are investigating options for ``soft-booting'' secondary video cards to deal with this problem, and we've had some very encouraging results. 3.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 this snapshot contains many bug fixes. This is an area that we are still working on, and we expect it to be improved further in future snapshots. Known problems: o It appears that there are still some bugs that cause unexpected behaviour from time to time. o Most (all?) window managers are not Xinerama-aware, and so some opera- tions 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. 3.7 DGA version 2 DGA 2.0 is nearly completed but still not implemented by all drivers. Preliminary documentation for the client libraries can be found in the xc/programs/Xserver/hw/xfree86/DGA document. Some degree of backwards compatibility with version 1.0 is provided. 3.8 DDC The VESA(R) Display Data Channel (DDC[tm]) standard (related to, but separate from, the VESA(R) Plug and Display standard) allows the monitor to tell the video card (or on some cases the computer directly) about itself; particu- larly the supported screen resolutions and refresh rates. Partial or complete DDC support is available in the following hardware mod- ules: o APM o Chips o Cirrus o Glint o MGA o Neomagic o S3 ViRGE o SIS o Trident 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, but it does not yet use it the determine modelines. Changed behavior caused by DDC. Several drivers uses DDC information to set the monitor gamma (brightness) curve, and the screen size and pitch. o The gamma is particularly noticeable; every monitor I have tried has a gamma setting > 2, which means that the picture is much lighter than under 3.3.x or without DDC. To revert to the previous behavior put Gamma 1.0 1.0 1.0 in the appropriate "Monitor" section of the config file. o Similarly, you can override the DDC probed "dpi" value by explicitly resetting it to the 3.3.x 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" sec- tion of the config file. 3.9 GLX and the Direct Rendering Infrastructure (DRI) Precision Insight has been provided with funding and support from Red Hat and SGI to integrate the GLX extension for 3D rendering in an X11 window. The 3D core rendering component is the Mesa library. SGI has released the sources to the extension framework under an open license, which essentially provides the glue between the 3D library and this windowing system. Precision Insight has integrated these components into this XFree86 X Server and added a Direct Rendering Infrastructure. Direct Rendering provides a highly optimized path for sending 3D data directly to the graphics hardware. This release demon- strates a sample implementation of direct rendering by providing a single path of 3D hardware acceler- ated rendering for the GMX2000 and 3dfx voodoo graphics cards. Future releases will support much broader implementations of hardware accelerated direct rendering on a wide range of 3D capable graphics devices. 3.10 X-Video Extension (Xv) An XvQueryPortAttributes function has been added as well as support for XvImages. XvImages are XImages 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. XvImages are only supported by the Matrox G200/G400 cards at the moment. 3.11 Other extensions The XFree86-Misc extension has not been fully ported to the new server archi- tecture yet. This should be completed in a future snapshot. 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 new xgamma utility makes use of this feature. Compatibility with the 3.3.x version of the extension is provided. The missing parts of this exten- sion and some new features should be completed in a future snapshot. 3.12 Drivers XFree86 3.9.17 includes the following drivers: +------------+----------------------+ |Driver Name | Description | +------------+----------------------+ |apm | Alliance Pro Motion | |ati | ATI | |chips | Chips & Technologies | |cirrus | Cirrus Logic | |fbdev | Linux fbdev | |glide | Glide2x (3Dfx) | |glint | 3Dlabs | |i740 | Intel i740 | |mga | Matrox | |neomagic | NeoMagic | |nv | NVIDIA | |r128 | ATI Rage 128 | |rendition | Rendition | |s3virge | S3 ViRGE | |sis | SiS | |tdfx | 3Dfx | |tga | DEC TGA | |trident | Trident | |tseng | Tseng Labs | |vga | Generic VGA | +------------+----------------------+ 3.12.1 APM The driver apm is for Alliance AT3D/AT25 based boards. The driver is still in development. I hope to be able to correct the errors I find. The Rush extension should be ready for the next snapshot; I can do better memory man- agement, but I'll need time. If someone can help me, feel free to drop an email to 3.12.2 Chips & Technologies Information about the C&T driver can be found in README.chips. 3.12.3 s3virge The s3virge driver is a port of the 3.3.3.1 SVGA S3 ViRGE driver. As such it should be as stable and functional as previous XFree86 releases. There are a couple additional benefits included primarily due to common enhancements: o Depth 24 problems resolved with clients using 24/32 bpp pixmaps. o Our common acceleration architecture (XAA) has been re-written, as has the ViRGE acceleration code. You should find this version has better performance than prior releases. o Multi-head is reported to work. o The s3virge man page lists options and has configuration notes for this release of the driver. Outstanding items not implemented or fully tested: o DGA support is implemented, but preliminary and untested. 3.12.4 TGA The TGA driver is now accelerated and supports both 8 and 32 plane frame- buffers. It is known to work under Linux/Alpha. Please see the README.DECtga file for further information. 3.12.5 Matrox The MGA driver supports the same range or hardware as XFree86 3.3.4, but has a number of enhancements including multi-head support and support for over- lays (8-bit + 24-bit). Option "overlay" when the server is started in 32bpp (-fbbpp 32) will enable the 8+24 mode. The current implementation doesn't optimize away unnecessary exposures yet so the performance of this option will be better in future snapshots. The option is not supported on the G100 due to a missing hardware feature. By default, the color key for the overlays is 255, but this can be changed with the "ColorKey" option to work around problems in specific pro- grams. Valid values for the key are 2-255. This release contains performance enhancements for the G400 and particularly for the G400 MAX. It also includes XvImage support for G200/G400 chips and improved memory autodetection support. Further information can be found in the mga man page. 3.12.6 ATI Information about the ATI driver can be found in README.ati . The current version is not accelerated. Acceleration support is planned for a future snapshot. 3.12.7 NVIDIA The "nv" driver supports all Riva TNT accelerators as well as the new GeForce and Quadro accelerators. 3.9.17 adds DGA 2.0 support and performance improvements as well as resolving some rendering correctness issues. Further information can be found in the nv man page. 3.12.8 Glide This driver is for Voodoo 1 and Voodoo 2 boards. It runs X on top of the 3DFX Glide API (where this is available, like for Linux). You need to have Glide 2.x installed before you can run this driver. This driver uses no hardware acceleration (since there is no 2D acceleration in these boards) but is rather quick anyway since the CPU renders to local RAM which is then copied block-wise to the board. Unfortunately the Voodoo 1/2 boards are rather limited in resolution. The Voodoo 1 can do 800x600 and the Voodoo 2 can do 1024x768 at best, but still it has some use as a second head in Xinerama or multihead mode. 16 and 24 bpp modes are supported (24 bit in 32-bit sparse-packed mode). Further information about this driver can be found in the 'glide' driver manpage for XFree86. You will not get this driver running before reading this manpage. For Voodoo Banshee and Voodoo 3 boards or later: Please use the tdfx driver which talks directly to the hardware and is much faster. 4. X libraries and clients 4.1 Xaw Two versions of the Xaw library are provided in this release. A version with bug fixes and a few binary compatible improvements and a new version with several new features. New features: o A displayList resource is available to all Xaw widgets. It basically consists of a list of drawing commands, fully described in the Xaw(3) manual page, that enables a integration of Xaw programs with the new window/desktop managers that allows for configurable themes. o Some new actions were added to all Xaw widgets, to allow more config- urable control of the widgets, and to allow setting resources at run time. o Since Xpm was integrated into XFree86, programs linked with the new Xaw library will also link with Xpm. This allows for color background pixmaps, and also for shaped widgets. o The text widget is the widget that will present more changes. These include: o Block cursor. o Compile time limit of 16384 undo/redo levels (that will automati- cally grow if the text is not saved when this mark is reached). o Overwrite mode. o Text killed is inserted in a kill ring list, this text is not for- gotten, pressing M-y allows traversing the kill ring list. o International support for latin languages is available even if the international resource is not set. Users will need to properly set the locale environment to make complete use of this feature. o A better multiply interface is provided. Pressing C-u, (where number can be negative) allows passing parameters for text actions. o Text can be formatted to have left, right, center or full justifi- cation. o Text indentation support is also available. o This snapshot shows the current state of the work to add to the Xaw text widget WYSIWYG capabilities. The state is very initial, and can be seen as a candidate to a candidate to a very early alpha snapshot. There is no public interface for programming yet, because the current one is very likely to change before ready to use. Bug fixes: o The simple menu widget geometry management code was improved to solve problems with menu entries not visible in the screen. o The form widget geometry code was changed to solve problems with integer round problems in the child widgets geometry when resizing the parent form widget. o Several bugs were fixed in the text code, while some code was rewritten from scratch. 4.2 Xpm Version 3.4k of the Xpm (X pixmap) library is now integrated into XFree86. 4.3 xterm New Features: o Support Unix98 PTY's. o Support Unicode using UTF-8 input and output. There are a few limita- tions, this work is still in progress: o You must use the -u8 command line option to use this feature, as well as compile with the OPT_WIDE_CHARS definition. (The feature is compiled when using imake). o Input (from keyboard) and output (select/paste) are in UTF-8 form. There is no support in Xlib for UTF-8; xterm uses a lookup table to map keysym codes. Select/paste is done either via STRING or using the new atom UTF8_STRING. o Add optional feature (resource and command-line options) to make xterm use the PTY's sense of erase character on startup, rather than requiring it to be \177, or set the PTY's erase character to match xterm's config- uration. Note that while $TERMCAP is modified to reflect the actual configuration, the terminfo kdch1 string is not. (This feature is also in XFree86 3.3.4). o Revised keyboard handling, making two modes (VT220 and Sun/PC) which are switched by popup menu. This makes the numeric keypad work as expected. Codes sent by the backarrow and delete keys also are affected. o Add parameters to function key escape sequences to indicate if shift, control or alt are set. This works for Sun/PC keyboard mode. o Separated command-line and menu settings for reverse video from that done under program control. This is a problem which was introduced by X11R6. Though correct, most users are confused by allowing the reset command to undo the effect of the command-line -rv option. o Blinking cursor can be specified by resource or popup menu. o New control sequences for switching between normal and alternate screens maintain separate cursor-save locations for the two screens, avoiding incorrect cursor placement on exit from vi. o Support line-drawing characters when the font does not include them by drawing them. o Add support for switching font sizes, by stepping through the font menu using shifted keypad plus and minus. o New resource trimSelection allows xterm to trim trailing blanks from selected lines. o Provide user applications a means of determining the version of xterm for feature comparison by returning the patch number (e.g., 111) in the secondary DA response. Bug fixes/improvements: o If colorMode is enabled by default, compile-in default resources to match the colors listed in XTerm-col.ad. o Deprecate DA answerback string, making it settable via a resource value for applications which may need this. o Input characters which are mapped when in vt220 National Replacement Character mode. o Completed support for double size characters. o Remove kfnd/kll/kslt strings from terminfo, because curses applications do not necessarily return khome/kend pairs. o Corrected ifdef's for menus, which did not allow tek4014 to be sup- pressed properly. o Improved tests for determining if xterm should use overstriking to simu- late bold fonts. o Add test/demo scripts for double size characters, font switching, screen resizing and colors. 4.4 xedit Xedit have been changed to use most of the new features added to the new ver- sion of the Xaw library, and some xedit only features were added. Emacs users will find that several of the emacs key bindings work with the new version of xedit. These include: o File name tab completion. Including a Emacs dired like window, that will be shown when there are more than one match, when C-x,d is pressed, or when a directory name is specified. o An unlimited number of files can be edited at the same time. Including multiple views of the same or different files. o The line number of the cursor position is always visible. It can also be customized to show the column number, the position offset and the cur- rent size of the file. o There is an autoReplace resource, that enables automatic text replace- ment at the time text is typed. This feature is useful to create simple macros, or to correct common spelling errors. o A fully featured ispell interface is also available. This interface is expected to provide most of the features of the terminal interface of the ispell program, with some extra features that include: o A compile time limit of 16 undo levels. o Terse mode switch. o Dictionary change. o The interface also checks for repeated words. o A first tentative to add programming modes was done. Currently, there are two modes: o C-mode: this mode is expected to be stable, and fully usable. o Html-mode: a lot of work needs to be done yet. It is included in this snapshot only to show what the new text widget capabilities can do. 5. Fonts and Internationalisation Details about the font support in this version of XFree86 can be found in the README.fonts document. 5.1 TrueType support This version of XFree86 comes with two TrueType backends, known as `xfsft' (the "freetype" module) and `X-TrueType' (the "xtt" module). Both of these backends are based on the FreeType library. 5.2 CID font support Support for CID-keyed fonts is included in this version of XFree86. The CID- keyed font format was designed by Adobe Systems for fonts with large character sets. The CID-keyed font support in XFree86 was donated by SGI . See the LICENSE document for a copy of the CID Font Code Public License. 5.3 Internationalisation of the scalable font backends A new ``fontenc'' layer has been added to allow the scalable font backends to use a common method of font re-encoding. This re-encoding makes it possible to uses fonts in encodings other than their their native encoding. This layer is used by the Type1 and Speedo backends and the `xfsft' version of the TrueType backend. The `X-TrueType' version of the TrueType backend uses a different re-encoding method based on loadable encoding modules. 5.4 Unicode support What is included: o ISO 10646-1 extension of ``fixed'' BDF fonts added that cover over 2000 characters including all Latin, Greek, Cyrillic, Armenian, and Gregorian characters, plus numerous scientific and technical symbols (further fonts are under preparation). 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 Both the xfsft (the "freetype" module) and the X-TrueType (the "xtt" module) TrueType font backends support Unicode-encoded fonts. Known problems: o Xlib does not yet support UTF-8 as a locale, which means that xterm UTF-8 keyboard support is at the moment a temporary hack. o ISO 10646-1 cell-spaced fonts such as ``fixed'' work nicely, but mono- spaced and proportional fonts are handled inefficiently by the X proto- col, resulting in metrics for 64k glyphs even if only 2000 glyphs are used. o ISO 10646 Level 2 combining characters not yet supported by xterm (will be needed for instance for the Thai script). 6. Miscellaneous 6.1 Directory rearrangements Some changes to the installed XFree86 directory structure have been planned for 4.0. Not all of these changes have been implemented in this snapshot, and they will appear in a future snapshot. One important change that has been implemented is a modified search path for the X server's XF86Config file. The details of this can be found above in the Configuration File (sec- tion 3.2, page 1) section. Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.18 1999/08/31 08:39:09 dawes Exp $ $XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.73 2000/01/03 15:19:06 robin Exp $