Release Notes for XFree86[tm] 4.0
: X libraries and clients
Previous: X server
Next: Fonts and Internationalisation
3. X libraries and clients
3.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:
- 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.
- Some new actions were added to all Xaw widgets, to allow more
configurable control of the widgets, and to allow setting resources
at run time.
- 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.
- The text widget is the widget that will present more changes. These
include:
- Block cursor.
- Compile time limit of 16384 undo/redo levels (that will
automatically grow if the text is not saved when this mark is
reached).
- Overwrite mode.
- Text killed is inserted in a kill ring list, this text is not
forgotten, pressing
M-y
allows traversing the kill
ring list.
- 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.
- A better
multiply
interface is provided. Pressing
C-u,<number>
(where number can be negative)
allows passing parameters for text actions.
- Text can be formatted to have left, right, center or full
justification.
- Text indentation support is also available.
Bug fixes:
- The simple menu widget geometry management code was improved to solve
problems with menu entries not visible in the screen.
- 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.
- Several bugs were fixed in the text code, while some code was rewritten
from scratch.
3.2. Xpm
Version 3.4k of the Xpm (X pixmap) library is now integrated into XFree86.
3.3. xterm
New Features:
- Support Unix98 PTY's.
- Support Unicode using UTF-8 input and output. There are a few
limitations, this work is still in progress:
- 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).
- 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
.
- 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 configuration. 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).
- 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.
- Add parameters to function key escape sequences to indicate if
shift, control or alt are set. This works for Sun/PC keyboard
mode.
- 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.
- Blinking cursor can be specified by resource or popup menu.
- 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.
- Support line-drawing characters when the font does not include them
by drawing them.
- Add support for switching font sizes, by stepping through the font
menu using shifted keypad plus and minus.
- New resource
trimSelection
allows xterm to trim trailing
blanks from selected lines.
- 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.
- Modify treatment of
XK_Delete
keysym so it transmits
parameterized VT220-style "<esc>[3~
" if modifiers
(shift, control alt) are given.
- Add ``cacheDoublesize'' resource to limit the caching of font
information for double-sized characters, to accommodate X terminals
with limited font memory.
- Add ``metaSendsEscape'' resource, with corresponding control sequence
and menu entry. Like ``eightBitInput'', this causes xterm to send ESC
prefixing the given key, but applies to all keys and is independent
of the 8-bit/7-bit terminal setting.
- Implement an 88-color model for systems where 256-colors cannot be
allocated.
- Add support for DEC Locator control sequences for xterm. This allows
the xterm mouse to be used with applications that use the DEC Locator
sequences, such as VAX Tpu, or SMG$ based applications.
- Implement
-hold
option, allowing users to retain the window
after a shell has exited.
- Add an application resource, ``messages'' (and a corresponding
-
/+mesg
option) which controls the initial
permission on the terminal.
- Implement UTF-8 translation for Media Copy (print) operations.
- Implement vt320 control sequences for Print Composed Main Display and
for Print All Pages. The latter directs xterm to print the current
screen as well as the scrollback buffer.
Bug fixes/improvements:
- If
colorMode
is enabled by default, compile-in default
resources to match the colors listed in XTerm-col.ad
.
- Deprecate DA answerback string, making it settable via a resource
value for applications which may need this.
- Input characters which are mapped when in vt220 National Replacement
Character mode.
- Completed support for double size characters.
- Remove
kfnd
/kll
/kslt
strings from
terminfo, because curses applications do not necessarily return
khome
/kend
pairs.
- Corrected ifdef's for menus, which did not allow tek4014 to be
suppressed properly.
- Improved tests for determining if xterm should use overstriking to
simulate bold fonts.
- Add test/demo scripts for double size characters, font switching,
screen resizing and colors.
- Amend treatment of ALT key so that if ALT is used as a modifier in
key translations, then no parameter will be sent in escape sequences
for Sun/PC function keys.
- Improved the ptyInitialErase logic to make it work better with
a terminfo library.
- Modify treatment of line-drawing characters in UTF-8 mode so that
Unicode values are used rather than characters 1-31 for storing the
translated characters.
- Modify translation of UTF-8 sequences to reject ``overly long''
variations.
- Correct a case where colors were not rendered properly. This
happened when an application inserted several lines, then changed
colors. If this was done all in one write, then there would be no
intervening refresh, and the new color was applied to the pending
scrolling operation which was awaiting the next refresh.
- Corrected misspelled resource name in command-line option for HP
function keys.
- Change label on ``Sun/PC Keyboard'' popup menu entry to ``VT220
Keyboard'', since the checked state corresponds to VT220 rather than
Sun/PC.
- Two corrections to simulation of bold font via overstriking:
- use clipping to avoid leaving trash at end of the text, and
- add brackets so wide-character logic does not fall-through
into the overstriking logic.
- Modify checks for repeat-character control sequence to test the
character class against xterm's state table, rather than the
isprint()
macro.
- Modify terminfo entry for ``xterm-xfree86'' to reflect modifiers for
shift and control.
- Add several entries to termcap file to make it have the same set
of aliases as the terminfo file.
- Scale the color values used for xterm-256color terminfo entry to
0..1000, as expected by ncurses.
- Change xterm-r6 terminfo definitions for F1-F4 to match program.
- Remove obsolete documentation about modifiers which can be returned
in mouse tracking mode, and modify logic to ignore modifiers other
than the existing ones, e.g., NumLock.
- Use free bit from obsolete shift-modifier coding of mouse tracking
button events to encode buttons 4 and 5, e.g., for a wheel mouse.
Move the suggested wheel-mouse button translations into charproc.c to
simplify customization.
- Modify warning if change-ownership of PTY fails; some
configurations may not happen to have old-style PTY's.
- Add more information, i.e., with strerror for some system calls in
the main program which may fail due to insufficient permissions.
- Various improvements to configure script, e.g., tests for utmp.
3.4. xedit
Xedit have been changed to use most of the new features added to the new
version 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:
- 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.
- An unlimited number of files can be edited at the same time. Including
multiple views of the same or different files.
- 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
current size of the file.
- There is an
autoReplace
resource, that enables automatic text
replacement at the time text is typed. This feature is useful to create
simple macros, or to correct common spelling errors.
- 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:
- A compile time limit of 16 undo levels.
- Terse mode switch.
- Dictionary change.
- The interface also checks for repeated words.
- A first tentative to add programming modes was done. Currently, there
is one mode:
- C-mode: this mode is expected to be stable, and fully
usable.
Release Notes for XFree86[tm] 4.0
: X libraries and clients
Previous: X server
Next: Fonts and Internationalisation