Announcing the release of xfig version 3.2.3a January 19, 2000 Xfig is a menu-driven tool that allows the user to draw and manipulate objects interactively in an X window. The resulting pictures can be saved, printed on postscript printers or converted to a variety of other formats (e.g. to allow inclusion in LaTeX documents). xfig 3.2.3a is available from: ftp://www-epb.lbl.gov/xfig http://www.xfig.org/xfigdist ftp://ftp.x.org/contrib/applications/drawing_tools ftp://ftp.cdrom.com/pub/X11/contrib/applications/drawing_tools from any CTAN machine, e.g. ftp://ftp.tex.ac.uk/pub/archive/graphics. See http://math.nmu.edu/Web/TeXArchives/ctansite.html for a long list of CTAN sites. Be sure to set binary mode when transferring. You need to get TransFig version 3.2.3 to work with xfig 3.2.3a. TransFig contains the postprocessor needed by xfig to convert fig files to one of several output formats, such as PostScript, pic, LaTeX etc. TransFig is always available in the same location as xfig. Please send email about any questions/bug fixes/contributions etc. about TransFig or xfig to xfig-bugs@www-epb.lbl.gov. Brian V. Smith Lawrence Berkeley National Laboratory I don't speak for LBNL; they don't pay me enough for that. ***************************************************************************** Following is a description of the CHANGES for 3.2.3a: Patchlevel 3a (Jan 19, 2000) NEW FEATURES: o Library of UML objects (Unified Modelling Language) From Andreas Ludwig (ludwig@ipd.info.uni-karlsruhe.de) BUGS FIXED: o w_menuentry (subclassed menu entry widget) has been modified to be compatible with the X11R5 Intrinsics besides R6 o Several bugs in sprintf statements which create export command o Incorrect lengths reported when drawing box with "showlengths" on and user scale != 1.0 (e.g. 1cm = 3km) o Declaration for preview_widget was both static and extern o Declaration for preview_pixmap was both static and extern o Two vars passed to XGetGeometry should have been int instead of unsigned int (CreateCheckbutton() proc) o Added '#include "w_msgpanel.h"' for every file containing calls to put_msg() or file_msg() since they contain varargs and should be declared as having variable arguments ------------------------------------------------------------------- Following is a description of the CHANGES for 3.2.3 (Jan 14, 2000): NEW NOTE ABOUT GIF SUPPORT: Because Unisys has stated that they WILL charge royalties for the use of the LZW compression algorithm even in FREE programs, I have removed all traces of the GIF LZW compression/decompression code from xfig. Xfig now calls giftopnm and ppmtopcx to import GIF files. Screen capture writes a PCX file. Exporting is handled by calling the ppmtogif program from fig2dev. NEW FEATURES: o Arrow thickness is a function of line width by default now instead of absolute o If figure is modified and user does "File/New", xfig first asks if user wants to save the file before doing the "new" operation o Changed the "paste text" key in app-defaults file from F20 to F12, because most systems don't have an F20 key. The "Paste" key on Sun workstations (it is really F18) may also be used to paste text. o Changed default export border margin width to 0 o Re-enabled export magnification for EPS o New "Flags" group of library objects from Rolan Rosenfeld. These are flags of Europe which Roland converted from a Sketch example. There is also Japan's and the U.S.'s flag which were drawn in xfig by Brian Smith o Added Ian MacPhedran's web site http://duke.usask.ca/~macphed/soft/fig/ for FIG-related information to the html docs under "Related Applications" in the "Getting and Installing Xfig" section o Moved allocation of xfig's 32 "standard" colors last in the widget setup procedure so that there is a better chance of the widgets getting the correct colors before the colormap fills up and xfig changes to a private map. o Assumes default of Letter(or A4 if metric mode) if no %%BoundingBox in imported eps o All traces of GIF decoding/encoding have removed from xfig so as to avoid the patent royalty issue with Unisys corp. xfig now calls giftopnm (part of the netpbm package) to read the GIF file and then ppmtopcx to convert it to a colormapped image that xfig's read_pcx routine can handle. o Mr. T. Sato's email address has changed to VEF00200@nifty.ne.jp as of July 15, 1998. He is the person to whom you should send email if you have any questions about the Japanese HTML pages. o New depth manager. Enable/disable depths individually or all at once to selectively hide parts of drawing. Can also click on one depth button and drag mouse up or down to enable/disable multiple buttons. Command-line options -showdepthmanager and -hidedepthmanager to control it (resource Fig.showdepthmanager). The default is to show it. o When updating the depth of a compound object, the relative depths of the objects inside are retained, with the object having the smallest depth number being assigned to the value updated by the user. For example, if you update a compound object to depth = 5, and it contains objects with depths 8 and 11, after the update they will have depths 5 and 8 respectively. From T. Sato. o Default depth for creating new objects is now 50 to make it easier to put new objects on top without having to remember to start the older objects at a depth > 0. o Xfig allows panning to negative x and y now. This is the default and may be turned and off with the -allow_neg command-line option and from the global settings panel. o Command panel has pull-down menus for File, Edit, View and Help operations. Default accelerators for these menus are Meta-F, Meta-E, Meta-V, and Meta-H respectively. File menu includes list of recently loaded Fig files. o Comments in Fig files are preserved with the objects and are written back when the file is saved. Popup edit for objects allows entering/ editing of comments. Also, clicking mouse button 2 on the canvas in edit mode will popup a panel to edit comments for whole figure. o From the File/Open panel, you may startup another xfig process to open a Fig file. From T. Sato. o New join/split button to split a line/spline/etc into two, or to join two lines/splines etc together to make one. Also, will convert a box to a line by splitting between two corners, and close an open line or spline by joining the two ends. o Arrow keys, Home and End keys may be used to browse any of the lists in xfig. (e.g. Open file list, library popup object list, misspelled word list in spell checker) o Border option put back in for exporting to EPS and bitmap formats (fig2dev -b option). User may specify border margin in pixels (roughly). This will be a background margin area around the figure bounding area. o New background color option for printing and exporting - sets whole background of figure to this color. Available for all bitmap formats and PostScript, EPS, PSTEX, and PDF o New background option to specify background color for figure. This works for all bitmap formats and PostScript (including pstex). This is passed to fig2dev as the -g option. o If your system uses /etc/printcap to define printers, xfig will make a pulldown menu for the printer selection in the printer panel. o New "smooth" button in export to smooth when exporting to bitmap format (e.g. GIF, JPEG). Causes fig2dev (using -S 2 option) to force ghostscript to render at 2x magnification which improves font rendering, then passes through pnmscale to reduce to original size, which also smooths the image by averaging colors of adjacent pixels. o Export/Print errors now appear in the popup error message window o Popup object editor positions itself adjacent to object being edited instead of possibly being on top of it o Xfig automatically chooses pwidth, pheight and the number of buttons per row on the mode panel (left side) if necessary, to fit on a small screen. If the user explicitely chooses any of those options, their choice overrides the automatic setting. From T. Sato . o New PDF export driver (uses ps2pdf from the ghostscript distribution) o New CGM export driver (Computer Graphics Metafile) for fig2dev (and in xfig export menu) from Philippe Bekaert o More paper sizes (Japanese JIS B0-B10 and ISO A0-A9) o Middle button in paste mode will place object at its original position (where it was when it was placed in the xfig cut file) o "Spinners" increment/decrement by value appropriate to item being modified. E.g., fill intensity % now steps by 5% for each click of the mouse on the spinner arrows, and text step by 0.1. o Also, if mouse button is held down on spinup/down button, spinner counts automatically after "spinner_delay" every "spinner_rate" milliseconds (resources). o Fill intensity and Pattern fill now show image in popup edit panel o Can now draw arcs by defining: 1. Center point 2. First angle/Radius 3. Second point to deterimine direction 4. Final angle Initiate this mode by starting arc with mouse button 2. Original arc mode still available. From T. Sato . o New color scheme (grayish instead of bisque) - can still use old colors by using Fig-color.bisque.ad or really old colors in Fig-color.classic.ad o I have made the web pages available from our server at: http://www-epb.lbl.gov/xfig A mirror site in Japan is http://www.lint.ne.jp/~masashi/xfig/index.html o Popup window with global settings (use Meta-g or Alt-g) containing: o checkbutton for tracking mouse in rulers o checkbutton for showing page borders o checkbutton for showing info balloons o checkbutton for lengths on lines o checkbutton for showing vertex numbers on objects o entry for max image colors o entry for image editor o entry for spelling checker o entry for HTML browser o entry for PDF viewer o checkbutton for turning on/off debug information Consequently, the balloon on/off checkbutton has been removed from the message window area o Two new "make" options: 1. "make install.doc" - install only the documentation files (i.e. man pages, html, and pdf files) 2. "make install.libs" - install only xfig object libraries o Filename mask for File and Export panels can have multiple wildcard masks separated by blanks or tabs, e.g. "*.fig *.fig.gz *.fig.[Zz]" o Export wildcard mask is dynamically changed when selecting the export language (e.g. *.gif when GIF is selected for export). Thus, the Fig*export_panel*mask*string resource is defunct. o New format for browser resource will parse for "%f" and replace with the filename. Using this and the -remote option for netscape, xfig will either use a running netscape to open the help file (html) or will start one if one isn't already running. o PDF viewer resource is also parsed for %f (filename) o Xfig will first try the correct PostScript font name (e.g. AvantGarde) and then try a backup font name if the first fails. If that one fails too, it will use 6x13. In the past, because the AvantGarde, Bookman, HelveticaNarrow, and Palatino fonts were NOT distributed with the X distribution from the Open Group (and the X Consortium before that), xfig would substitute fonts for those, that were close. Now it will try the correct one and switch to one of the backups if it doesn't exist. o FIGAPPS file updated with new information about GNU plotutils o Rulers shows fewer ticks for smaller zooms o Rulers show more labels between major ticks for larger zooms o New floppy disk library object in "Computers" o New firewall symbol and "generic hardware" library objects in "Networks" from Tomi Ollila o New "Optics" library includes mirrors, lenses, fiber optics from Kai-MartinKnaak o New Structural Analysis library includes plates, supports, loads, beams, coordinate systems, and trusses. From Roman Putanowicz Please see copyright information in the Structural_Analysis/readme object (Examples/Libraries/Structural_Analysis/readme.fig o More descriptive error message about non-existent or old app-defaults file o Removed restriction that fonts are ISO8859-1 encoded to allow, e.g. iso646.1991, which is what the scalable Schumacher fonts are. o New computers/terminals in Computers library, and new network comp- onents in the Networks library of objects. From T. Sato . o When a compound object containing right- or left-justified text is flipped horizontally, the justification of those text objects is also swapped (i.e. right-justified text becomes left-justified and vice versa) o Warning printed if user uses Fig.geometry resource to size main xfig window - should only use -geometry command-line argument or pwidth/pheight args/resources. o Uses ANSI stdargs.h instead of varargs.h now From Roland Rosenfeld o Spell check command uses "%f now instead of "%s" for filename o Can define BINDIR to install xfig in custom directory (see README file) o Xfig windows aren't unmapped now when user presses "Edit Image" to edit imported image file (not necessary) o When in edit mode and you hit Control-Return inside of a text box rather than just Return, it's a shortcut for DONE. From Jeff Hakner o When editing a compound object, any text objects in it are shown and editable. From Jeff Hakner o In library place mode, the change draw mode function was moved to Shift-Middle rather than Shift-Left. Shift-Left now has the behavior of placing the object and doing an edit on it. When you conclude the edit, it resumes place mode. This combined with including the text objects in editing compound objects, allows you to edit any text labels in library objects as they are placed. From Jeff Hakner o Rotation angle of objects may be floating point now From Marc Joosen o Spelling checker and search/replace popup more useful now o New "zoom to fit canvas" feature - Ctrl-Z accelerator in canavs will zoom the figure to just fit the canvas. New button in popup zoom dialog to do same. o After closing an open compound, the "Open Compound" mode is selected o If the Shift key is held down while mouse button 2 is clicked on an object, any comments in the object are displayed in a popup until the mouse button is released o New command-line option -flipvisualhints (resource Fig.flipvisualhints) which will flip left/right mouse indicator messages for mice whose buttons have been switched. o New import picture formats supported - TIFF and PPM o Added -hiddentext and -rigidtext command-line options and X resources to fill out the text flags options (first was -specialtext) BUGS FIXED: o In "move point" mode, mouse button 3 incorrectly labelled as "Locate Object", when in fact no function is associated with that button o Error reading GIF header under certain circumstances o For JPEG and GIF export, -g option was being passed to fig2dev even with no background color selected o Exporting to PDF using xfig actually exported to PS. Fig2dev does the correct thing, though. o Depth manager didn't update correctly if depth between two other depths was removed (e.g. when deleteing an object of depth 51 leaving only depths 50 and 52, the indicator for depth 51 wasn't removed from the display) o PAPER_A4 pointed to A9 entry o Docmentation incorrectly mentioned "page_size" when it should say "paper_size" (Doc/html/options.html) o Split line didn't work on ArcBox o Opening a compound object, changing an object inside, closing the compound then pressing "Undo" would result in the original object outside the compound, plus the changed object still inside, and would then eventually segfault if the compound was operated on in any way. o Imakefile didn't install pdf files as advertised with "make install" o "XEvent event" missing from input tablet code in main.c o If xfig tried to import a compressed image file and the directory was not writable, it segfaulted while trying to close an unopen file o Inadvertantly removed "Help/Xfig man pages" menu entry o Wrong path for installation of the xfig-howto.pdf file o Bad hyperlink for "Help Menu" in html docs o Fig files with "#FIG" but no version number crashed xfig o "Show depth manager" missing from screenshot and description of global settings o Background color for exporting didn't have "None" option o PDF export ignored centering, background color and multiple pages options o Warnings from fig2dev weren't displayed when exporting o Various command-line options missing from man pages and html docs o When turning on or off the depth manager the canvas needed refreshing o Symbol "MAXCOMLEN" defined by xfig is already used on some systems o Character array illegally freed in screen capture procedure o There is a less restrictive copyright on the html pages. Instead of: "However, you may not modify any part of this documentation without explicit permission of T.Sato or Brian V. Smith." there is now: "Modification of this documentation is also granted as long as this copyright notice remain intact and name of the person who made the modification is explicitly written in the documentation. However, contact to T.Sato and/or Brian V. Smith is strongly recommended if you want to distribute modified version of this documentation." o "Smart links" wasn't working when copying compound object with link - the link wasn't copied o Preview figure wasn't freeing memory o Text lines with trailing carriage returns (^M) were read incorrectly from .fig file, causing following object lines to be included with the text object o Some calls to free_spline were passing wrong type of pointer Fixed by Bradley Kuszmaul o Call to init_point_array shouldn't have arguments Fixed by Bradley Kuszmaul o Changing to/from PostScript and LaTeX font type using the update button didn't work unless "update text flags" was also enabled o The CompKeyDB file didn't get installed correctly if user specified a path for DESTDIR (normally empty). o arrowhead thickness/width/height were being truncated to integers in popup edit panel o was using /tmp instead of TMPDIR env variable for xfig cut file if user .xfig file couldn't be used o cleaned up routines that "show line lengths" while drawing/moving objects (-showlengths). Much less detritus now. o bug when allocating more user colors than colortable can handle o message string not large enough for some of the balloons for the attribute panel. From Martin Kroeker o Fixed bug in arc arrows introduced when units for arrowhead width and height were changed to be the same as for arrowhead thickness o Pie-wedge arcs can no longer have arrowheads. o In the popup edit panel, if no numeric value was in either the fill intensity or fill pattern entry and carriage return was pressed, an illegal value might have appeared there o Filename sometimes trashed when trying to call external image editor from edit popup on imported picture o If the text mode is selected followed by the "Paste" mode, xfig would segfault o Another change to the "make install.doc" and "make install.libs" because some systems' install program can only take one file at a time o "make install.doc" doesn't install the Japanese html files unless I18N is set in the Imakefile (Internationalization) o If Fig.ad isn't installed, xfig died because "browser" or "pdfviewer" resources were NULL o Mouse function indicator wasn't being reset for cancel library popup o Cancelling the library popup wasn't quite working o If preview of any library object failed, user couldn't place any more library objects o Typing characters other than 'r', 'l', 'h', and 'v' are ignored when placing library objects on canvas o When calling external image editor (via "edit image" from importing picture object), argument list[0] wasn't name of image editor o When using the external image editor on an imported picture, xfig compared the file modification time before and after to re-read it if it changed, however the modification time before the edit was never obtained o Moved JPEGINCDIR definition in the Imakefile up with the #ifdef USEJPEG for easier access o Bug in code which redisplays canvas sometimes left ghosts behind if a "move object" was cancelled o Center/Flushleft setting was not properly set from figure file o Align-to-canvas assumed US Size A or ISO A4 paper instead of using the current page size from export/print o Objects with large coordinates (e.g. 190000 Fig units) were drawn incorrectly because of a peculiarity in either the X server or the X Drawing procedures that didn't work correctly for screen coords > 16000. o If the canvas was either refreshed or zoomed while previewing a file, things failed miserably o Line counter corrected when reading Fig file. Was in error sometimes when reporting bad input lines. o Fill patterns (e.g. bricks, vertical lines etc.) were not zoomed correctly in figure preview o INLINE definition changed from "inline" to "__inline" to satisify DEC Unix or Irix and Solaris OSs o Removed all "NullParameter" from Imakefile because OpenWindows doesn't have it o Changed XPointer to XVisualInfo * in call to XFree in main.c for those still running OpenWindows o The "About Xfig" window didn't trap for "Delete Window" so a window manager that substitutes "Destroy Window" in that case would kill xfig o If user is previewing a figure (in the popup file panel) and the canvas needs to be redrawn it is deferred until the preview is finished, preventing the Bad Window error previously seen. o Doesn't segfault now if no app-defaults file is installed o Bug fixed where a rotated string with only blanks (spaces) would segfault o Mask for attribute panel button management changed to unsigned long to insure 32-bit values o When reading in a figure containing an image, any offset in the file panel was applied to the SIZE of the image. This is obviously incorrect. o When cancelling the file panel during a file preview xfig would sometimes die with an X error. Fix from Patrick Gosling o There was a bug when converting Fig 3.1 splines to 3.2 under certain circumstances o Changed fig.h to always include o Various function mis-declarations and signed/unsigned casts fixed by Jonathan R. Ferro o Bug in image capture fixed by Jonathan R. Ferro o Not really a bug, but a change in default - define HAVE_NO_DIRENT in the Imakefile if your system DOESN'T have dirent.h o When browsing pictures in the import picture interface, if you single- click on a filename and then close the browse panel, it now applies that picture. In the past you had to double-click on a filename to apply it. o Cleaned up error reporting of line numbers in Fig file o cur_dir[] array in mode.c wasn't large enough (changed to PATH_MAX) From Martin Pahl o Hidden, Rigid, and Special text flags weren't updated correctly with update tool o -international and -inputStyle added to help message. o Multiple page option was being turned off but pulldown menu showed otherwise o If the user changes directories in the file/open panel but then presses "cancel", the original directory is restored now o Stops parsing library directories when limit is reached o Doc/FORMAT3.2 file (and all previous) incorrectly described the bounding box for compound objects as having upper-right and lower-left values, when in fact they have upper-*left* and lower-*right* bound values o On a PseudoColor server, with xfig in -mono mode, it attempted to store a color illegally o Editing of comments for picture objects wasn't retained o Library directory now may include files with more than just .fig in name (e.g. .fig.gz, .fig.Z, etc). Also, explicit check is made to ensure that whatever matches *.fig* isn't a directory. o Missing quote for MKDIRHIER variable in Imakefile: XCOMM MKDIRHIER = "/bin/sh /usr/bin/X11/mkdirhier" o When using small icons, xfig would still use 3 buttons per row on small screens even when not necessary. o Allocation error in reading some pcx files o Bug in HSV color sliders when clicking left or right (increase/descrease) mouse button o Bug in HSV color sliders on 16bpp PseudoColor visuals