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.