This is the README file of patch11 for Wafe 1.0. This file describes the changes between Wafe 1.0.10 and 1.0.11. For changes between 1.0 and 1.0.10 please consult the README files contained in the patch kit. General information about Wafe can be found in the World Wide Web via the URL http://www.wu-wien.ac.at/wafe/wafe.html The new version features in the following items: Enhancements for all flavors of Wafe: - Documentation improvements: * The descriptive comments from .spec files are preserved now in the short reference manual. The Wafe documentation grew by about 30 pages. * online help (command wafeHelp) includes now listing of special percent code substitutions. - Color conversion made more tolerant: When the X-Server runs out of colors (when the exact color is not found in the colormap and no additional color could be allocated) Wafe's behavior is now * more tolerant: the best color within a specified closeness is taken * configurable: the global variable COLORCLOSENSS defines the tolerance. The default value is 40000, smaller values define less tolerance, larger values (up to 65535) increase the tolerance and colors differing substantially are accepted as well). In particular, Wafe's Xpm conversion routines have been modified purpose, a new color converter (StringToPixel) has been added (based on the StringToPixel converter in X11R6) - Code cleanup * Imakefile is now more robust for various versions of 'make' * several small changes to improve portability (e.g. for alpha machines, DecStations with Ultrix 4.4, Sun compilers not accepting prototypes etc) * several small fixes for error messages - better handling of invalid widget IDs: invalid widget-IDs are now be detected properly, meaningful error messages are produced rather than aborting from Wafe (the implementation uses volatile variables and sigsetjmp, hopefully, these are available on all target machines) - new built-in function "clock", returning seconds since since 1970 - new accept argument for addInput: If the 2nd argument of addInput is 'accept', the command can be used for for listening on a socket (same as 'read', but no read command is issued for the socket). A sample program for an tcpip server using wafeperl is provided in wafe/wafeperl/wp-server - New command line arguments shortcuts for filemode: shortcut long version --------------------------------- wafe --if wafe --i --f wafe --df wafe --d --f these shortcuts are necessary for scripts starting with lines like "#!/usr/bin/X11/wafe --f" since this line appears always to be parsed as command and ONE argument, such "#!/usr/bin/X11/wafe --i --f" is equivalent to /usr/bin/X11/wafe '--i --f' typed in a shell Enhancements for Motif flavors of Wafe: - Improved XmString-to-string conversion routines dealing better with buggy versions of XmString routines on some older versions of Motif on some platforms (e.g. Ultrix). - XmDialogShells are created now using XtCreatePopupShell - Access to Motif's internal bitmaps from Wafe re-enabled - New commands: XmTextSetInsertionPosition XmTextFieldSetInsertionPosition In general these commands could be implemented via sV WIDGET insertPosition POS However, the setValues version leads to substantial flickering of the screen in some older versions of Motif (e.g. Motif 1.2.2), whereas setting the insert cursor position with the commands above does not. Enhancements for Motif 2.0 flavors of Wafe: - new percent code for XmContainer callbacks: %S in defaultActionCallbacks or selectionCallbacks is substituted by the list of selected items. For each selected item, its widget ID is returned. - new commands: * The function 'XmContainerGetItemChildren' returns the list of widget IDs of the children of the specified widget in the XmContainer widget. A child is a widget having its 'entryParent' resource set to the specified widget. If the specified widget has no children, an empty string is returned. * The procedure 'XmContainerRelayout' forces repositioning of all items in the specified Container widget according to the item's positionIndex and entryParent resources. * The procedure 'XmContainerReorder' reorders the specified widgets according to their positionIndex constraint resource. If the 'layoutType' resource of the container widget is OUTLINE or DETAIL, a re-layout of all items will be forced. Enhancements for additional widget classes: - Ghostview fixed compilation of Wafe using Athena widgets when GHOSTVIEW is defined - HTML: * fixed a serious color management bug in the implementation of the HTML widget: the HTML widget used a global data structure for color allocation, that assumed that only one HTML widget exists per application. * compilation of htmlGen.c works now with non-ANSI c compilers as well * compilation for HTML-PSformat.c fixed for alpha using OSF/1 v3.0 - Plotter: * Fix in LabelAxis.c: The old version could lead to 'floating point exceptions' when autoScale was set to 'false' . * compilation fixed for alpha using OSF/1 v3.0 - Motif Tree Widget: fixed implementation of mtree to work with non-ANSI c compilers as well - XmGraph all references to strdup() removed (this was a problem under newer versions of ultrix) Changes in Tcl sample scripts: - m-htmlEdit should work now better with older versions of Motif (e.g. Motif 1.2.2) - showRes (from the auto load Tcl library) accepts now an optional filter argument try: showRes topLevel String to see resources of the topLevel widget containing "String". If the third argument is omitted, all resources of the widget specified as first argument are listed. - new scripts (using the OSF/Motif version of Wafe) wafe/src/tcl/m-container sample usage of the Motif 2.0 XmContainer widget class Perl scripts - Small fix in wafe/apps/monitoring/vmstats (incorrect quoting; many thanks to Christian Holzbaur for reporting the problem) In order to apply this patch, be sure that your Wafe installation is on the Wafe 1.0 level (or newer), cd to the Wafe home directory, expand this tar file over the old distribution; if you are a newcomer, please note that you have to get wafe-1.0.tar.gz and expand it, before expanding the patch release. If appropriate, remove and rebuild the following libraries - wafe/lib/plotter/At/libAt.a (fixes for Axis) - wafe/lib/Xaw3d/libXaw3d (fixes for Layout) - wafe/lib/layout/liblayout.a (fixes for Layout) - wafe/lib/layout/libm-layout.a (fixes for Layout) - wafe/lib/XmGraph/libgraph.a (fixes for Motif 2.0) - wafe/lib/libhtmlw/libm-htmlw.a (fixes for Motif 2.0) - wafe/lib/libhtmlw/libhtmlw.a (fixing memory leak, Motif 2.0) and perform the usual configuration in wafe/src/Imakefile (as indicated in INSTALL) or use the new TOPMAKE (read the top section of wafe/src/TOPMAKE). If you use Xaw3d, will have to rebuild the Xaw3d library manually. Finally, don't forget to install the new version! Gustaf Neumann