Andrew User Interface System - release 6.2 - March, 1994
Updates from Last Public Release
Release 6.2 of the Andrew User Interface System is the first public
release of Andrew since 5.1, the CDrom release in March of 1992. This
document describes the changes that have occurred in the system in each
of the three interim releases.
When the X Consortium releases the contributed portion of XV11R6 in
June, we will release version 6.3 of AUIS; it will be the same as 6.2
except for bug fixes and a few minor additions. 6.3 will be the last
release of AUIS in C; subsequent releases will be in C++.
====================================================
Highlights
(The help commands below are in reference to the installed system.)
Platforms - AUIS is now supported on Telmat, Linux, Solaris, and SGI.
These join the existing support for platforms from IBM, SPARCstation,
HP, Dec, Apollo, and SCO. Partially complete ports exist for Dec ALPHA,
and System V.
An introduction to the Andrew User Environment for new users is
installed into $ANDREWDIR/doc/intro.doc
Launchapp - Displays a menu of AUIS applications and serves as an
alternative to the shell for initiating applications. Give the command
`launchapp`; there is no help file; just click on the buttons.
Prefed - Many new preference options have been added and an editor
created to help cutomize your ~/preferences file. (help prefed)
Figure - Drawing editor; faster and more reliable than zip, though it
lacks zip's capability for multiple levels of detail. (help figure)
Image - Supplements the existing raster inset by providing for multibit
pixels and thus color and greyscale images. Unlike raster, however,
editing operations are not supported. Many formats are supported,
including AUIS rasters, gif, jpeg, Xbitmap, Xpixmap, xwd, PostScript,
TIFF, and pbm. (help image)
Color and shadings have been enhanced on displays with more than
monochrome capabilities.
htmltext - You can edit files formatted in html and see them with the
tags interpreted rather than visible. Text will appear as a heading
instead of "
Highlights
". (This mode is not installed by the
build process. See sources: contrib/htmltext/)
RTF - There are translators between AUIS text and RTF text. (help 2rtf,
help rtf2, and see file lib/ness/fromrtf.n)
XStyleSelections - Selections can behave exactly as do selections in
xterm: selecting text automatically makes it available to be pasted at
another location. (in prefed, search the help window for
XStyleSelections)
Tool sets - Figure and raster now have available a toolset window for
drawing operations without resorting to the menu. (help figure, help
raster)
Srctext - Andrew has always had a diverse collection of tools for
editing files particular formats: ctext for C code, mtext for Modula
code, and so on. These have now been superseded with a more generalized
mechanism provided by IBM Rochester. The superclass "srctext" provides
general source text editing mechanisms which are supplemented by
subclasses to provide editors for even more source languages than
before. General help is available via `help srctext`. Languages
supported include: assembly language, C++, C, Modula-3, Modula-2, and
raw ATK data stream.
Bdffont - Font editor, edits fonts stored in bdf format. (help bdffont).
Menus now display the equivalent keystroke combinations.
Keyboard-macro-to-ness-macro conversion - With this facility users can
define new key stroke and menu operations dynamically. Macros are
created with the usual keyboard macro { ^X-( ... ^X-) } and then
converted to Ness, after which they can be edited as Ness code. `help
macros`
Class hierarchy browsing - A graphical representation of the class
hierarchy can be created and viewed. The system installation process
installs a tree of the standard Andrew classes into
$ANDREWDIR/doc/atk/classes.org. You can create trees for other class
hierarchies: `help mkbrowse`
Parsing - Token analysis and parsing tools are in the source tree under
atk/syntax/. Facilities include a version of the bison parser, a parse
object which uses bison tables, a symbol table, a lexeme scanner and an
associated lexeme description processor.
"Standardization" of code - The code has been revised to utilize
primarily POSIX function calls, though with some BSD extensions. The
code has been tested under gcc.
No dynamic loading - There is provision for building applications that
do not dynamically load. (help genstatl)
No assembler code - The system can now be ported to new platforms
without writing any assembler code. See CLASS_CTRAMPOLINE_ENV, below.
====================================================
Changes from Release 6.1 to Release 6.2
Everywhere
Fixed bugs, coreleaks, and copyrights. More posixification. AUIS code
is posix, but utilizes some BSD extensions.
Platforms
AUIS is now supported on the following new platforms (the names with
underscores are the subdirectory of the config directory in the source).
Linux (i386_Linux)
Telmat (telmat_svr4)
Solaris (sun4_51)
In addition, support for SGI machines has been fixed:
SGI (sgi_4d)
We have tested the system on these additional platforms
pmax_mach pmax_ul4 rs_aix3 sun4_mach sun4_41 hp700_80
The following platforms are included in the release, but have not been tested
apollo68k hp300_80 hp800_80 i386_mach mac2_51 next_mach20 pmax_3
pmax_41 ps_aix12 rt_aix221 rt_aos4 rt_mach sco_i386 sun3_35 sun3_4
sun3_41 sun4_40 vax_3 vax_43
New Preferences
UseNewShadows - Determines whether the new improved shadow color
computations are used for the scollbars, dialogs, sbuttons, menubars,
and Motif-style popups. This preference can be overridden with
MenubarUseNewShadows, PopupsUseNewShadows, or SbuttonUseNewShadows.
Default: Yes.
CacheShades - controls whether shades are cached on the X server or not.
Default is No.
ForceInstallColormaps - The value yes will cause ATK applications to use
XInstallColormap as they used to. This violates the ICCCM conventions.
Default: no.
TagRecursiveEdit - Can be set to No to prevent recursive-edit from tag
operations.
CommitButton - (messages) Default is No. When value is Yes, the
CommitButton will be available even if Checkpointing is not disabled.
Applications and Objects
Changed background colors in scollbars, dialogs, sbuttons, menubars, and
Motif-style popups. (Can be turned off by setting preference
UseNewShadows to No.)
Updated text to work with Ispell 4.0.
Fixed "tags" to support ctags -t.
Help can now deal with gnuzip'ed "man" pages.
Image can import MAC Pict images.
Ness has been revised throughout so that very general filenames can be
used, including $XXX to access environment values. Files for execution
are sought in the directories listed in the nesspath preference.
Ness's launchapplication function can now launch applications that are
objects other than text.
HTML editor mode has been added in ./contrib/srctext/html. Files can be
saved in html format and edited in ez as formatted text; the reader need
not look at embedded html formatting tags. To enable this, the contrib
directory must be built and installed and then a line like
addfiletype .html html
added to ~/.ezinit. (For instructions on the latter, say `help initfiles`.)
Translation between AUIS format and RTF. The source files
contrib/mit/2rtf/* and contrib/mit/rtf2/* are installed as the
applications 2rtf and rtf2; these convert, respectively, from AUIS to
RTF and from RTF to AUIS. (Sometimes, conversion from RTF to AUIS is
better done with the ness program fromrtf.n. See
src:atk/ness/nesslib/fromrtf.n or $ANDREWDIR/lib/ness/fromtrt.n.)
New facilities
The Andrew logo is available as an icon in src:./overhead/xicons/alog.icon.
Support has been added for translating menu items and message line
messages into other languages. Added TranslateMenus preference default
On. When on menu titles and items will be translated according to the
ANDREWLANGUAGE database. Documentation and example files for this
mechanism are not yet available.
All the srctext insets such as the C and C++ modes now understand
dogtags. See atk/srctext/dogtags.help (or help dogtags) for more
information.
Support has been added for customizing the mapping of Andrew and X11
fonts to troff fonts. See atk/text/PrintFontMap.* for examples.
There is a new template for 'memo's. It changes the definition of the
caption style. The old template is installed as oldmemo.tpl.
Programmer Visible Changes
- graphic.ch now supports computation of the colors for Motif-style
shadows, as used in buttons, scrollbars, and so on.
- Added ClearColors method to 'graphic' object. Use of this function
avoids "color leaks;" that is, the color map will not fill with unused
colors.
System build changes
- Added to allsys.h a MANDIR portability macro with default: "/usr/man".
- Changed default for AFSBASEDIR from /usr/andrew to /usr/local
- added default definitions for Make macros that specify particular
libraries or groups of related libraries: SYS_LIBRARIES, XLIB, BSDLIB,
CLASSLIB.
- Added libatkos.a to source directory ossupport to contain functions
needed for POSIX support on non-POSIX systems.
Build
If DOC_ENV is #define'd to 1 in ./config/site.h, a directory of papers
on AUIS will be installed in $ANDREWDIR/doc/papers.
FLEX_ENV is available. If set, some portions of the system use flex
instead of lex.
TMACMANFILE and TMACPREFIX portability macros have been added to
allsys.h. They can be over-ridden in site.h to specify the file name
and path to find the man page macros for rofftext. (This is used by
toez and help.)
A facility has been addded to make configurable the mapping of screen
fonts to troff fonts. See the example files in
./atk/text/PrintFontMap.*. AUIS will look for this file in four places:
environment variable TROFFFONTMAPFILE
TroffFontMapFile preference
TroffFontMapFile in AndrewSetup
$ANDREWDIR/lib/tmac/PrintFontMap
When porting the system to a new platform, it has been necessary to
write an assemler routine, entry.spp. This can now be avoided by
defining CLASS_CTRAMPOLINE_ENV as 1 in the system.h file for the
platform.
Notable Bug Fixes
- Straightened everything out so colors can be destroyed without leaving
dangling pointers anywhere.
- Fixed event queue so events are not lost. This means the clock will
not stop.
- Revised ATK text data stream slightly so whitespace is treated better
when text is converted to ASCII.
- For motif popups with new shadows, changed default background to gray80
- Fixed ez so that ^G to the initial file prompt will provide a scratch
buffer.
- If no name is specified for a style, it will have the name "unknown";
this prevents some core dumps.
- Queuemail now passes the -m option to oldsendmail in order to include
the sender in alias expansion.
====================================================
New and Revised Features in Version 6.1
Release 6.1 is a beta version of that which will appear on the X11 tape
Release 6, at which time it will be available for users everywhere. The
list below of changes from version 5.2 is derived from the code-change
log entries. A more complete, and less polished, listing of those
entries is available on request.
User visible changes
Added CheckOwnerHome preference description. This value determines
whether a lookup is done in order to find the home directory of the
owner of a file being viewed by EZ. The file-owner's home directory is
used to fold the full pathname down to something shorter, like ~foo/bar
for displaying in the title-bar of the EZ window. Defaults to: yes.
Fixed and expanded the XStyleSelection support. Added the preference
CopyOnSelect. When yes, selecting text will automatically put it in the
cutbuffer. (When/if any other views support the concept of "selection"
in the X sense it will happen for them too.)
Get rid of annoying dialog box when you run with ispell 3; Added code to
check to make sure ispell allows you to accept words and add them to the
private dictionary (in -a mode, which is what spell.c uses.) If it does
not, print an error message when the 'a' or 'i' key is hit.
Rewrote help files to encourage use of lookz over troff format notes.
Added documentation of the tmacgrofffile preference.
Figure has been revised to include printing in landscape mode. Added
FigureMatteColor preferences (default white) which overrides the
BackgroundColor preference for figure insets.
Added a preference, ReadOnlyTitle, which lets you set the "(readonly)"
marker in a window's title bar to some other string.
Implemented import of ppm images into the image inset.
Renamed the program "prefs" to "prefed" so that help on the name will
get the right help file. Made the default file the preferences file
currently in use. Fixed so that the global.prf file will be read if it
exists, and it's values will update the default values.
Tab stops are now measured from the beginning of each line, instead of
the left margin. Justification/discussion available upon request.
In path.c, we added a quoting mechanism so that environment variable
expansion can be suppressed. A $$ sequence in a path is converted to a
single $. The argument to visit-file is canonicalized twice at present,
so the file name '$HOME' has to be referenced as '$$$$HOME'.
Changed "Append to [Raw] File" options in messages to use datacat.
A few improvements have been made to zip: De-coupled show-grid and
constrain-to-grid so you can see the grid independently of being locked
onto it. Or you could constrain your drawing to the grid without
waiting for it to redisplay all the time. Changed the algorithm for
redrawing the grid to display the grid points correctly more often.
Added setting of a print size which was carefully chosen not to break
reading by older versions of zip. Added commands to specify the print
size in inches and points. Changed zip to come up in absolute mode by
default so that what you see is much closer to what you get. Set the
initial print size, by a heuristic: PrintSize overrides
ViewWidth/ViewHeight overrides ObjectWidth/ObjectHeight.
System Maintainer visible changes
The code has been revised throughout to increase gcc and ANSI compatibility.
Ports have been incorporated for DEC Alpha, Sun Solaris, Linux, HP/UX
9.01, and System V. Most of these still have some problems because we
are unable to test them fully.
Added compile and installation of genstatl and associated files. These
provide for building AUIS binaries that do not utilize dynamic loading.
LINKINSTALL_ENV is no longer the default. Its use is being discouraged.
Programmer visible changes
Had to add super_LinkTree as first line of LinkTree in several cases--
if you don't have this, an inherited colormap will be set improperly.
Added SetPatternOrigin() method to atk/basics/common/graphic; this
allows programs to align their grey-stipples however they want. Added
empty, override-able version of graphic__ReadImage. Added empty stubs
for SetBGColorCell and SetFGColorCell.
Added ResizeWindow and MoveWindow methods to im class.
Added IsObserver method to the observable class.
New documentation for the traced class (traced.doc).
Added documentation explaining how to write preference descriptions for
the preferences editor (writing.prs).
Added a programmer's interface to datacat.
Added AlwaysWrapViewChar to wrap a viewref environment with a
particular type of view and a particular dataobject, around an already
existing viewref char.
Introduced two new methods for text: {Always,}CopyWithAllStyles. This
is Fred's version of CopyText which copies all the styles enclosing the
region being copied.
Fixed Ness to use CopyWithAllStyles. Now a copy of text will look
exactly like the original.
Modified the class preprocessor to allow machine independent trampoline
code (written in C).
Renamed regexp functions to reg_*.
====================================================
Andrew User Interface System: Release 5.2.0
About the turn of the year, release 5.2.0 of AUIS was shipped to members
of the Andrew Consortium. This release includes many new features
introduced during the year just past. The full set of changes is
described in a document entitled "Andrew User Interface System: New and
Revised Features in Version 5.2.0." Here are the highlights.
New applications and insets
Launchapp - Displays a menu of AUIS applications and serves as an
alternative to the shell for initiating applications. Give the command
`launchapp`; there is no help file; just click on the buttons. (Here
at the School of Computer Science, the commands `atk` and `auis` also
run launchapp. Sites can choose their own aliases.)
Prefed - An editor for the preferences file. It displays existing
preferences and offers graphical options to change them; help is
available on each preference. For help on the entire application, give
the command `help prefed`.
Figure - Drawing editor; faster and more reliable than zip, though it
lacks zip's capability for multiple levels of detail. `help figure`
Image - Supplements the existing raster inset by providing for multibit
pixels and thus color and greyscale images. Unlike raster, however,
editing operations are not supported. A variety of image storage
formats are supported such as jpeg, and gif. `help image`
New general facilities
Menus now display the equivalent keystroke combinations.
File name canonicalization - In most instances, prompts for a file name
will accept the following:
$XXX where XXX is an environment variable,
~user/ or ~user@afs-cell/ at the beginning of the file name,
/../ at the beginning of a filename to refer to superroot.
Keyboard-macro-to-ness-macro conversion - With this facility users can
define new key stroke and menu operations dynamically. Macros are
created with the usual keyboard macro { ^X-( ... ^X-) } and then
converted to Ness, after which they can be edited as Ness code. `help
macros`
The ATK copyright notice and disclaimer are now displayed in various key
files such as the toplevel Imakefile and the README. It is displayed on
starting up programs that use frame.
New documentation
An introduction to the Andrew User Environment for new users is
installed into $ANDREWDIR/doc/intro.doc.
The answers to frequently asked questions have been amassed into an
FAQ.ez file which resides at the top level of the source tree.
Class hierarchy browsing - A graphical representation of the class
hierarchy can be created and viewed. The system installation process
installs a tree of the standard Andrew classes into
$ANDREWDIR/doc/atk/classes.org. You can create trees for other class
hierarchies: `help mkbrowse`
The papers from the 1992 Andrew Consortium Technical Conference are in
the source in directory ./doc/papers/atk/conference/
New preferences
For definitions and setting these preferences, see the `prefed`
application described above.
XStyleSelections and StrictXStyleSelections - In some X
applications, the act of selecting text automatically makes it the
source for any subsequent paste operation. (You can't do "replace"
operations!) These two preferences cause ATK applications to behave
just like X applications.
DynamicMessageLineSize, ResizableMessageLine, MinimumMessageLines
The message line can grow and shrink either dynamically or in
response to user action. (I recommend setting
DynamicMessageLineSize to Yes; it is disabled because others here
disliked it in one annoying case that has since been fixed. -wjh)
HighlightToBorders - The highlight of the text selection has been
changed so the newline is part of the preceding line rather than the
following. Now, when the first word on a line is selected, the
highlight includes only that word. The old behavior can be
recovered by setting this preference to TRUE.
Improvements to existing applications and insets
Click boxes in help - All .help files have been converted to use the new
'Help Topic' font for references. They will appear surrounded with
dotted boxes and can be simply clicked on to traverse to the referenced
text.
Raster editing - When editing a raster you can now select the "Toolset"
menu item; a separate window will appear with a menu of raster
operations. In addition, there is an option in the main raster menu to
overlay an arbitrary inset, such as text, on top of a raster. After
editing the overlay to a desired image, its bits can be "frozen" to
become part of the raster image. Thereafter, they can be edited just
like any other part of the raster.
Srctext - Andrew has always had a diverse collection of tools for
editing files particular formats: ctext for C code, mtext for Modula
code, and so on. These have now been superseded with a more generalized
mechanism provided by IBM Rochester. The superclass "srctext" provides
general source text editing mechanisms which are supplemented by
subclasses to provide editors for even more source languages than
before. General help is available via `help srctext`. Languages
supported include: assembly language, C++, C, Modula-3, Modula-2, and
raw ATK data stream.
Bdffont - Numerous bug fixes and cleaning up. The font editor now works
on all bdf format fonts we have been able to find.
MIME format - MIME support has been augmented. There is now better
support for message bodies of type multipart/digest. And message bodies
may contain items of type image/gif, image/pbm, image/ppm, image/pgm,
and image/jpeg. There was a bug in the delivery system that kept MIME
messages from netnews; this has been fixed. MIME documentation has been
added to `help messages`
Ness - Version 1.7 has the functions ReadRawFile, WriteRawFile,
QueueAnswer, QueueCancellation, WriteObject, and a collection of
functions which emulate REXX functions.
Parsing - A new set of tools has been introduced for token analysis and
parsing. They are in the source tree as the atk/syntax subtree.
Facilities include a version of the bison parser (fromthe Free Software
Foundation), a parse object which uses tables generated by bison, a
symbol table, a lexeme scanner and an associated lexeme description
processor. These new tools are objects in the Andrew sense so it is
easy to incorporate multiple instances in a single application.
Moreover, many lexemes are understood from the bison grammar and need
not be described redundantly to the lexeme processor.
Posixification - Many files were "Posixified", mostly by Todd Inglett.
This meant converting to use posix defined libraries; in particular,
strchr() and strrchr() are now used instead of index() and rindex().
The other things done relate to signal handling, particularly the return
type, and to return values from wait. Also some prototypes were added
under ifdef POSIX (related to signal handler functions), some, if not
all of these have been expanded to test POSIX and __STDC__ separately,
since under AIX we compile with POSIX compliance, but old style C. In
this process various additional corrections from IBM Rochester were
incorporated into the sources.