August 22, 1997

xfig 3.2.0 Final is available on ftp.x.org in /contrib/applications/drawing_tools/xfig.
Be sure to set binary mode when transferring.
You also need a JPEG library, which can be found in /contrib/libraries.

You also need to get TransFig version 3.2 Final.  TransFig contains the post-
processor needed by xfig to convert fig files to one of several output formats,
such as PostScript, pic, LaTeX etc.  The TransFig package is in the directory
/contrib/applications/drawing_tools/transfig.

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).

Please send email about any questions/bug fixes/contributions etc. about
TransFig or xfig to [email protected].

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

=============================================================================
Version 3.2 Final (Aug 22, 1997)
=============================================================================

GENERAL NOTE:
       Because Unisys Corp. has stated that they will not charge royalties for
       the use of the LZW compression algorithm in *FREE* programs, xfig will
       continue to support importing and exporting of GIF images.
       However, be aware that if you sell xfig, for example as part of a CD-ROM
       package with freeware, you may be liable for paying royalties to Unisys.
       You may comment out the USEGIF variable in the Imakefile to avoid this.
       With USEGIF commented out, xfig will still import GIF files, but not
       export in that format.  Also, for screen capture, xfig will create a PCX
       file instead of a GIF file.
       *** The authors of xfig and the Lawrence Berkeley National Laboratory
       cannot be held responsible in any case. ***

NOTE:   fig2dev now handles the exporting to bitmap formats (GIF, JPEG etc)
         instead of xfig, so there is more consistent output. Requires the
         netpbm package and ghostscript.  See the README file.

NEW FEATURES:
       o Japanese text objects (i18n) availble using flag I18N in Imakefile
           from T.Sato ([email protected])
       o ppm, tiff (no compression) and AutoCad (acad) output languages added
       o image quality (0-100) is selectable for JPEG export
       o figure size (in inches or cm) is shown in the export and print panels,
         taking into account current magnification
       o "Fit to page" button sets magnification so that figure size will just
         fill current paper size with (at least) 1/2 inch margin all around
       o emergency save file renamed from xfig.SAVE to SAVE.fig
       o when doing a screen capture for a picture object, the filename of
         the capture is the name of the figure file + the time according
         to time(3) + .gif, e.g. myfigure_858367466.gif
       o xfig version number in app-defaults file is checked and warning
           message appears if older than current version
       o spell checker to find misspelled words in text objects
           from T.Sato ([email protected])
       o search and replace - search for strings and either replace them with
           new string or update settings like color, etc. on matched strings
           from T.Sato ([email protected])
       o exporting to pstex does both PostScript and LaTeX part in one step
           to file.pstex and file.pstex_t respectively
       o popup messages (balloons):
           o describes drawing/editing function when mouse passes over
             any drawing/editing button
           o describes how to activate unit/scale popup when mouse passes over
             units box (where the rulers meet)
           o describes mouse function indicator when mouse passes over it
           o describes each command button in top row as mouse passes over
             buttons
           o toggle button labelled "Balloons" to turn on/off the balloon
             messages
          o all have configurable colors; see Fig-color.ad
       o new figures in Examples directory from Bill Chimiak ([email protected]):
               1. clp_computer1.fig - computer equipment clipart
               2. clp_hospit_equip.fig - hospital equipment clipart
               3. clp_network.fig - updated network equipment clipart
               4. musicnotes.fig - musical notes, scale lines and clef
       o checks version number in app-default file with xfig version and warns
          if file is older

BUGS FIXED:
       o arrowheads on splines didn't always point correctly (fig2dev did the
         right thing, though)
       o accomodation for 15-bit visual (believe it or not!)
       o checks bits-per-pixel for image formats because some vendors use 32 bits
         for 24 bit depths
       o minor difference in A0 and A1 page sizes
       o changed XPM variables to default X include/library in Imakefile
       o path added to save filename when xfig makes emergency save
       o incorrect email address for xfig-bugs in man page (should be
         [email protected])
       o typo about font_flags bit number for LaTeX vs PostScript in
         Doc/FORMAT3.2 file
       o not enough space allocated for buf[] in create_print_panel()
         and create_export_panel()
         from T.Sato ([email protected])
       o typo in Doc/FORMAT3.2 file about header information in Fig files
       o typo in man pages - zooming uses only CONTROL key, changing spline
         shape factor requires both CONTROL and SHIFT keys.
       o justification and page size are now disabled with EPS export
       o undo of converting spline to line caused seg fault
       o added #ifdef USE_GIF around transparent color in export and read file
       o error in sprintf format (was %4.2lf - should be %4.2f) in bottom
         indicator panel buttons that have floats
         from T.Sato ([email protected])
       o center of pie-wedge style arc wasn't included in bounding box
         from Andy Thomas ([email protected])
       o better handling of mouse function indicator
         from T.Sato ([email protected])
       o if "edit spline point" panel is popped up before general edit panel,
         'Warning: Action not found: apply' appeared when edit panel was
         later opened
         from T.Sato ([email protected])
       o actions that had same names renamed to unique names
         from T.Sato ([email protected])
       o mouse button 1 and 3 didn't scroll the H, S, or V sliders in the color
         edit panel
       o unsigned/signed char pointer mix in create_pic_pixmap and
         get_canvas_clipboard
       o cleanup of dictionary wrapped around imported EPS files
         from Franz Koch ([email protected])
       o Portrait/Landscape changes didn't properly toggle width/height
       o New font specified in app-defaults for those systems whose default
         font was too large for popup panels (Fig*Font: 7x13bold)
       o Zooming not allowed if drawing object in progress (panning is OK)
       o strcasecmp and strncasecmp bugs (s2 != '\0' and s2 == '\0' should
         be *s2 ...)
       o when exporting to bitmap format, bounding box of figure was rounded
         to current point positioning grid (unintended)
       o unaligned access errors on 64-bit machines (e.g. Alpha) when importing
         bitmap pictures.  Now uses unsigned int for pointers
       o code to remove identical consecutive points in line objects had bug
       o workaround for long-time Intrinsics bug with scrolling text widget in
         viewport for file and export lists provided by
         Mark London ([email protected])
       o bug in control-key-button-1 zoom sequence - didn't allow control key
         pressed when completing zoom operation
       o mis-named fonts for zapf chancery and zapf dingbats (many servers don't
         have these fonts anyway so please don't ask me where to get them)
       o error in JPEGINC variable in Imakefile - had leading "/" in path
       o width of "open compound" button was slightly too large such that
         the mode panel (left) obscured part of the indicator panel (bottom)
         when -but_per_row was 3
       o transparent color for GIF export wasn't "None" as default
       o box objects read in from Fig file would only have three points on
         some machines
       o grid wasn't changed to metric when loading metric figure
       o 24- and 32-bit export to JPEG was incorrect
       o "rotate and copy" for text placed first copy correctly, but subsequent
         copies incorrectly
       o comments after #FIG before end of header weren't parsed correctly
       o Landscape/Portrait is only available for PostScript export
       o Ledger/Tabloid sizes reversed (Tabloid is 11x17", Ledger is 17x11")
       o deleting all objects (Meta-D) prevented the "New figure" function
         by keeping the original figure name
       o arrowheads were inadvertantly allowed for closed splines via the popup
         edit panel

       o picture objects rotated 90 or 270 degrees were also flipped
       o changed sense of USEINLINE so default is NOT to use it

--------------------------
V3.2 Beta 1 (Jan, 9, 1997)
--------------------------

NEW EXAMPLE FILES (Examples/ directory)

   o fantastic figure from Robort Ford ([email protected]):
       transit.fig     - transit map of Saint John, New Brunswick (Canada)
                         Don't use it for locating transit routes - it is only
                         good through July 1996 and only shows non-rush-hour
                         routes
   o great figures from Carlo Kopp ([email protected]):
       greenpig.fig    - F/RF-111C/G Tactical Fighter
       rfxc.fig        - RFX Strike/Recon Fighter
       lidar.fig       - Sidelooking battlefield surveillance LIDAR
       sowpig.fig      - RAAF F-111C fighter jet w/ 2x AGM-142 Have Nap SOWs
   o some nice figures from Peter Hiscocks ([email protected])
       aircraft.fig    - light aircraft
       ps-foil.fig     - power supply circuit board foil layout
       ps-foil.fig     - power supply circuit board schematic
   o from Philipp Reisner (Austria).
       Linuxlogo.fig   - the only entry in the Linux 2.0 Logo contest to be
                         rendered with xfig - Unfortunately, it didn't win :-(
   o new clip art objects from W. Chimiak ([email protected]):
       clp_computer.fig - various computers, monitors etc.
       clp_network.fig - computer network components
   o more new example files (done by me, Brian Smith)
       3dhouse.fig     - cutaway view of a simple house drawn in 3D
       ctrlbox_lay.fig - dimensioned drawing of a control box for a project in my group
       ctrlbox_sch.fig - electrical schematic of the control box

NEW FEATURES

o better error reporting from ghostscript when importing EPS files
o in color popop panel, "lookup color" button allows user to grab color from
       any window for user-defined color in xfig
       uses code from xpaint (Copyright 1993 David Koblas ([email protected])
       and Copyright 1995, 1996 Torsten Martinsen ([email protected]))
o There is a new mathematical model for splines. The new version uses X-splines
       which allows to mix interpolation and approximation points in a same
       curve. More precisely, it means that an X-spline curve is neither an
       interpolated spline nor an approximated one, it is BOTH (the behaviour
       of each point is controlled by one single parameter called "shape
       factor"). For additional information about X-splines, see:

         "X-Splines: A Spline Model Designed for the End User"
         by C. Blanc and C. Schlick, Proceedings of SIGGRAPH'95

 o the shape factor of each individual point can be modified interactively
   with a dialog box that is displayed when pressing the right button in
   the EDIT OBJECT mode.
 o the shape factor can also be modified in any of the EDIT modes, by
   holding down the CONTROL key while pressing the mouse buttons.
 o because the CONTROL modifier is used for the shape factor edition,
   the zoom rectangle is now obtained by pressing the SHIFT key AND the
   CONTROL key while dragging the rectangle.
 o new features have been added in the CONVERT mode. Any conversion between
   polylines, polygons, open splines and closed splines are now possible.

   *** Caveat: Because spline models of previous versions (quadratic B-splines
   and Bezier with hidden points) are no longer supported, curves that are
   present in version 3.1 and older files are automatically converted to
   X-splines. This translation is only an approximation process. It means
   that the converted curves are not exactly the same as the original ones.
   Though the translation usually provides almost identical curves, some
   hand-fitting may be needed in some pathological cases.

   The new spline features were written by Carole Blanc ([email protected])
   and Christophe Schlick ([email protected]) starting from an initial
   implementation done by C. Feuille, S. Grosbois, L. Maziere and L. Minihot as
   a student practice (Universite Bordeaux, France).

o the file format (protocol) has changed (see Doc/FORMAT3.2 for details). This
       means you must also get transfig 3.2. Xfig will still read older Fig
       format files but will always write the new format.
o multiple page flag, paper size, transparent color (GIF export) and print/
       export magnification now stored in Fig file (new protocol format 3.2)
o export/print magnification now command-line argument (-magnification) and
       resource (Fig.Magnification)
o paper size now command-line argument (-paper_size) and resource
       (Fig.paper_size)
o multiple page flag now command-line argument (-multiple) and resource
       (Fig.Multiple) (-single is default)
o option of transparent color for GIF export (e.g. make background transparent)
o new colors in Fig-color.ad resource file from Joel D. Young
       ([email protected]).  If you want the old colors, copy Fig-color.old.ad
       to your app-defaults directory as "Fig-color".
o works with GrayScale, TrueColor, DirectColor, StaticColor and StaticGray
       visuals now.  Use "-visual <visualname>" command-line argument or
       "Fig.visual: <visualname>".  Also, "-depth <depth>" (Fig.depth: <depth>)
       supported.
       thanks to help from Kevin Russell ([email protected])
o "Delete All" button changed to "New" function - all objects are delete and
       the current filename is cleared.  Also, the file save and load shortcuts
       will force the file panel to popup if the current filename is empty.
       This will prevent a user from doing a "delete all" to create a new
       figure and forgetting to change the filename when saving.
o new edit features when entering text on canvas:
       Left arrow key and Control-B moves cursor left
       Right arrow key and Control-F moves cursor right
       Home key and Control-A moves cursor to beginning of text
       End key and Control-E moves cursor to the end of text
       Delete key and Control-D delete the character to the right of the cursor
       Control-K deletes from the cursor to the end of the text
       Pan operations using the arrows and the Home key are disabled during
       text entry because they are used for positioning the text cursor now.
o "Open Compound" operation to temporarily go inside a compound object to edit
       individual components.  Can enter nested compounds. Close compound to
       group objects back into compound.
       Written by Bill Taylor ([email protected])
o xfig will now automatically unzip/uncompress Fig files with .Z, .z or .gz
       suffixes automatically.  It does not recompress/zip them when saving,
       though.
o -zoom (resource Fig.zoom) option to start xfig at any zoom value
o -startposnmode (resource Fig.startposnmode) option to start xfig with point
       positioning mode specified. Values can be 0 ("any") to 4 (1 inch/20mm).
o size of blank area (margin) around figure when exporting to bitmap-style
       formats (e.g. GIF, XPM etc.) is settable in export window now
o when zooming larger, spacing of dots in grid lines stays constant
o button to hide/show hidden directories (names that begin with ".") in file
       popup menus
o paper size selectable for printing and when exporting to PS/EPS:
       "Letter", "Legal", "Ledger", "Tabloid", "A", "B", "C", "D", "E", "A0",
       "A1", "A2", "A3", "A4" and "B5"
o in the past if an ellipse was scaled such that the radii become equal it was
       "converted" to a circle.  This "feature" has been removed.
o point objects (POLYLINES with only one point) now have thickness, as they
       should.  Additionally, if the cap style is rounded, they will be filled
       circles
o when exporting figure containing picture objects, xfig warns if the export
       filename is the same as any of the picture files
o note explaining how metric units are defined in xfig in the Doc/FORMAT3.1 file
o when updating objects with update button, they were drawn twice - now they are
       only drawn once
o when deleting xfig window (WM_DELETE_WINDOW), popup confirmation gives user
       the option to save figure
o README file updated to give credit for Example figures not done by Brian Smith
o default suffix for hpgl (ibmgl) export changed to "hpl" for PC users

BUGS FIXED

o smart links didn't work when the box being moved had line thickness > 1
o -exportLanguage ignores case now (e.g. GIF == gif)
o identical consecutive points in lines and "normal" splines are removed as file
       is read into xfig
o some thick arrowheads still protruded into the object they touched (in fig2dev
       too) - fix from Tobias Ringstrom
o resource for compose key database file is keyFile, not ComposeKeyDB (Fig.ad)
o color of labels for color numbers/names in color panel contrast their color
o edit panel allowed > 100% fill for black and white fill
o additional check for bad Bounding Box in imported EPS file
o when flipping objects vertically or horizontally, overlapping objects weren't
       redrawn
o format error in sprintf for temp filename in screen capture (%d should be %ld)
o some versions of imake don't like null parameters in SpecialObjectRule in
       Imakefile - changed to "NullParameter"
o "modified" flag wasn't being set when changing spline<->line or box<->arcbox,
       thus one could quit without saving without xfig confirming
       from Matthias Braun ([email protected])
o when figure is read in from file, any arrowheads with width, height or
       thickness of 0 are given default values (were causing SIGFPE errors)
o colormap must be saved before jpeg_finish_decompress or
       jpeg_destroy_decompress are called in read_JPEG_file()
o when fore/background colors different from black/white respectively, the fill
       colors for black and white fill were incorrect
o when merging figure with no picture objects into figure with picture objects
       colors were unnecessarily remapped
o "rubberbanding" of object being drawn would continue after object was
       completed.  Also, double clicking on a directory name would cause
       segmentation fault.
       fixed by Stefan Proels ([email protected])
o Imakefile had error - $(PCXBUG) was incorrectly passed to f_readjpc.c
       instead of f_readeps.c where it was needed
o If the directory path in a file popup was changed by typing into the path
       window but carriage return wasn't pressed, rescan showed the correct
       directory but the path wasn't correct so no files were accessible.
o Redefined $(XPMINCDIR) to $(XPMINC) because some compilers have trouble with
       header search path with empty "-I"
o string allocation errors in string widgets in popup edit panels
o no return code for successful screen capture which would result in failure
       randomly
o picture objects scaled (enlarged) correctly in metric mode so they print 1:1
o incorrect values for white colormap entry when writing jpeg file on
       monochrome display
o Some people have older X11 include files that don't have <unistd.h> included.
       fig.h explicitely includes that now for the SEEK_END identifier
o Not enough space for number strings in rulers (SEG fault)
o circle grab points moved even if no changes made in popup edit of circle or
       ellipse object
o after attempt to do a horiz/vert move point of a circle was disallowed,
       further move points were disabled until edit mode switched
o if both points of "circle-by-diameter" have same y value it thought that the
       edge is the center when you try to use "box scale"
o colormap from jpeg file was referenced after memory was freed
o #include <jpeglib.h> changed to #include "jpeglib.h" to ensure corrrect path
       used to find header file
o problems on Linux with gcc locating old jpeg library even when JPEBLIGDIR
       pointed to local version
o buf too short in set_mixed_names
o line2 too short in button struct
o file not closed after writing JPEG file
o pen color for picture objects disabled for all except XBM (bitmap) in popup
       edit
o confusion with -DNOSTRSTR, NOSTRSTR and HAVE_NO_STRSTR cleaned up. See README.
o possible error in rulers with sprintf %f called with integer expression
o cleaned up add/delete user defined colors - no requirement to click on
       colorcell after "Add Color" to set color sliders
o added condition in Imakefile that f_wrjpg.c depends on jconfig.h (jpeg library)
o changed #include <jpeglib.h> to #include "jpeglib.h" because of search rules
o Version 1.0 of Xaw3d used resources topShadow and bottomShadow for colors of
       those resources.  Version 1.1 uses topShadowPixel and bottomShadowPixel.
       I have included both names in the Fig.ad app-defaults file for
       compatibility.
o removed extraneous comma (,) in length and distance messages when
       drawing/moving objects
o cleaned up many type mismatch warnings for bitmap data
o bug in skip_comment() which prevented some machines from seeing the end of
       file, giving erroneous "Incorrect format" error
o typos in xfig.man in resources StartGridMode, StartPosnMode, StartLineWidth,
       StartFillStyle and StartTextStep (had lowercase 's')
o pcx file was closed twice
o if there is an error when writing screen capture to a file, the popup error
       message window shows the error
o Examples/logo.fig had squished logo eps file