Version 2.1
===========

Patchlevel 6
Changes to Patchlevel 5:

NEW FEATURES:

BUG FIXES:

o typo in man pages with menu item "Textyl \special commands" in export menu
o action changed from "cancel" to "dismiss" for print menu accelerator
o bug in Intrinsics? on Sun Monochrome prevented side ruler from scrolling
o was using ellipse routine to draw circles - was choppy for small circles
o cast comparison function argument to qsort
o rotated ellipses don't become coarse as they are zoomed 

Patchlevel 5
Changes to Patchlevel 4:

NEW FEATURES:

o support for two button mouse - use META + Button 3 to simulate button 2
	from Lars Berntzon (lasse@delila.cgl.se)
o new resource "textoutline" (class "TextOutline") and command-line argument
	"-textoutline" which will outline text in red to show the bounding box
	that the text will occupy when printed (useful for rotated text)
o print popup stays up until dismissed - can still pop up file/export menues, 
	draw etc. while print popup is up.  HOWEVER, while file or export 
	popups are up, the print panel is not active.
o can align all objects to canvas, not just to compound - use mouse button 2
	idea from Jon Forrest
o ellipses may now be rotated by an arbitrary angle and show their rotation
	from Janes Tough (jamest@cs.heriot-watt.ac.uk)
o new -iconGeometry command-line argument
o new command-line argument and resource -exportLanguage to specify default 
	Export language.  See man pages.
o new command-line argument and resource -flushleft to set default printing to 
	flush left on page. See man pages.
o keyboard accelerators! Resource file has defaults for file, export and print
	popup panels and top command panel accelerators; <Meta>f will popup file
	panel, <Meta>q will quit, etc. See resource file and man pages for
	details.
o one may now batch together several xfig files for printing with one print job.
	See popup print panel and man pages.
o new label in the mouse function window & more obvious default color (yellow)
o added scrollbar for indicator panel when buttons won't all fit on screen
o can now edit sizes of arrowheads using popup edit panel
o "make install" now automatically installs Fig.ad and Fig-color.ad in 
	app-defaults directory
o WM_DELETE_WINDOW now supported by popups - cancels popup function
	WM_DELETE_WINDOW in main canvas saves figure in xfig.SAVE and quits
	from David Wexelblat (dwex@mtgzfs3.att.com)

BUG FIXES:

o rulers only allowed 2 digits for inches/cm
o deleted line thickness/color/area-fill/line-style and arrow settings for EPS
	objects in the update mode and removed color part in popup edit panel
o depth wasn't being updated for splines and texts using update button
o more cleanup with respect to procedure/variable types/casts
	from Don Sharp (dws@mari.co.uk)
o fixed text bounds calculation to take into account any rotation when reading
	in figure from a file to decide whether to shift figure to keep on 
	canvas
	(fig2dev 2.1.5 is also fixed so figures with rotated text near edges
	should center properly now)
o fixed bug where segments disappeared while drawing interpolated spline in any
	LaTeX drawing mode
o rearranged a-z and A-Z keys in the CompKeyDB file because some HP computers
	were apparently doing random things with capitalization
	from Anthony Shipman (als@bohra.cpg.oz.au)
o fixed export of color figure to X11 bitmap format.  White -> white, all other
	colors -> black.
o removed apparently unnecessary translation from w_export, w_file and w_print
	which causes coredump on some HP machines.
	From Alfred van der Hoeven (alfred@arthur.et.tudelft.nl)
o fixed initialization bug in u_undo.c and object.c which caused HP 9000/700
	compilers to segfault
	From Alfred van der Hoeven (alfred@arthur.et.tudelft.nl)
o new environvemt variable "XFIGTMPDIR" used for xfig temporary files directory
o when reading a figure file, if any object coordinates are negative, the figure
	is shifted to keep it on the canvas so that the upper-left corner of the
	figure is placed on the current point positioning grid
	(in 2.1.4, the upper-left corner was placed at 10,10)
o changed "char" to "unsigned char" for initialization of bitmaps by compilers
	from Teus Hagen (teus@oce.nl)
o was passing floats to put_fmsg() instead of doubles.
o includes copy of X11/Xfuncs.h now to use correct routines for zeroing/copying
	memory.
o zooming to 0.1 no longer gives X error (dash list was null)
o filenames in File/Export windows weren't sorted correctly
	from Simon Marshall (S.Marshall@sequent.cc.hull.ac.uk)
o more explicit note about object depth in the man pages in the "GRAPHICAL 
	OBJECTS" section
o scaling vertical or horizontal line no longer causes floating point exception
	from Steve Tynor (tynor@prism.gatech.edu)
o null strings in text objects now produce warning message when reading from 
	file but xfig continues to read rest of file
o scrollbars in File and Export popups reset to top when changing directories
o default output filename in Export popup now changes to reflect current 
	figure filename
o default colors in Fig-color are a little nicer :-)
o checking for file writablity now uses access() call
	from Devon Bowen (bowen@cs.buffalo.edu)
o XtRemoveGrab bug when popping down file message window finally fixed
	many thanks to David Wexelblat (dwex@mtgzfs3.att.com)
o XtAppAddActions() only called once now for each action
	from David Wexelblat (dwex@mtgzfs3.att.com)
o changed cfree() calls to free() for those machines that don't have it
	from Anthony Datri (datri@concave.convex.com)
o moved static function definitions outside of procedures for those machines 
	which can't handle them
	from Anthony Datri (datri@concave.convex.com)
o added second line to Imakefile to put the xfig directory containing the 
	CompKeyDB (multi-key) database file in the standard X11 library
o fixed bug introduced in 2.1.1 which incorrectly placed radius marker of
	circles created by radius
o circle is now changed to ellipse type when scaled assymetrically
o fixed various typos in xfig.man
o changed references to mouse buttons left/middle/right to say buttons 1/2/3
	respectively
o radius of ellipses-specified-by-radius was one pixel too large
o changed interpretation of 1/0 bits in EPS preview bitmaps back to original
	0=white, 1=black according to EPSF guide version 2.0.
	Brought to my attention by Vivek Khera (khera@cs.duke.edu)
o moved #include Xaw... directives to figx.h to speed up compilation
o added conditional for Sun 3 and SunOs 4.0.3
	from Peter Scott (pjs@euclid.jpl.nasa.gov)
o fixed typo in FORMAT2.1 file describing values for types of splines
o more lint cleanup and print file name "protection" in case filename has 
	any shell meta characters
	from Jonathan Kamens (jik@MIT.Edu)
o epsf file wasn't closed after reading if there was no preview bitmap
	from Herve Poirier (rvp@dxcern.cern.ch)
o fixed bug where certain objects inside compound weren't being drawn when
	there was more than one compound object in the figure
o removed ISO8859 requirement for Symbol and ZapfDingbats fonts (those fonts
	weren't being displayed)

Patchlevel 4
Changes to Patchlevel 3:

o keyFile resource allows ANY path for compose key data base, not just relative
	to $XFIGLIBDIR
	from Pete Kaiser (kaiser@heron.enet.dec.com)
o simple edit arrowhead feature in the popup edit for lines - can add/delete 
	arrow heads.  No adjustment of arrow size yet - uses current linewidth 
	from indicator panel
o Example figure files have all been converted to 2.1 file format
o if any object coordinates are negative, the whole figure is shifted to keep it
	on the canvas
o fixed major bug where the preview bitmap of EPS objects was in reverse video
	(1 is white not black, according to the PostScript Language Ref. Manual)
	*** SEE COMMENT IN PATCHLEVEL 5 ABOUT EPSI PREVIEW BITMAPS ***
o general cleanup of param types in Xt callback/action etc. procedures and other
	lint cleanup
	from Jonathan Kamens (jik@MIT.Edu)
o Alt_L key added to list of keys to do international characters
	from Marc Goldburg (marcg@alfalfa.stanford.edu)
o fractional zoom (i.e. zoom < 1) - see man pages
o eps data wasn't being initialized when the eps file wasn't available
o redefined filename length for eps object to PATH_MAX
o -showallbuttons option didn't show the depth indicator
	from Paul King (king@cs.uq.oz.au)
o fixed bugs where using export and print shortcut before ever popping
	up respective menus used incorrect options
o changes to the file popup:
	o new "Home" button changes directory to $HOME
	o ~ (username) operator allowed in the current directory ascii widget
	o new label widget shows the current figure filename
	o presssing "Load", "Save" or "Merge Read" will operate on the 
	  filename in the "Filename" window.  If that name is empty the
	  operation is done on the file specified in the "Current Filename" 
	  window.
	o additionally, the "Load" operation will copy the name (if any)
	  from the "Filename" window to the "Current Filename" window
	o pressing return in the "list of files" window in the popup File panel
	  will "Load" the file
o changes to the export popup:
	o new "Home" button changes directory to $HOME
	o ~ (username) operator allowed in the current directory ascii widget
	o pressing return in the "list of files" window in the popup Export 
	  panel will "Export" the file
o Pre-2.1 fig files now have text flags set to PostScript mode when reading into
	xfig 2.1.4
o 1.4-TFX fig files now have text flags set to PostScript mode PLUS Special
o font names now include "ISO-8859" to insure that ISO Latin characters are used
	from Thierry EXCOFFIER (exco@ligiahp.univ-lyon1.fr)
o -debug no longer runs xfig synchronously - use standard toolkit option -sync
o control points for spline objects now span multiple lines in output file if 
	there are many points
o scrollable x-y points panel in the popup edit panel for objects with many
	points (mwm didn't display the x-y values when the popup was taller than
	the screen)
o If you have Display Postscript in your server, compile xfig with -DDPS
	and you will see the full Postscript object instead of preview bitmap
	when you include EPS objects.
	!!! WARNING: this has only been tested on IBM's AIX 3.2 (X11R4) on
	an RS/6000 !!!
	from Dave Hale (dhale@green.mines.colorado.edu)
o fixed bug in error return from system() - now popups error message when 
	can't export/print figure
o unused function clear_char_string() deleted from w_canvas.c
o current depth is now in an indicator window and may be set like line 
	thickness, color etc.
o added update tags to control which object components are modified/copied
	when using the update button.  Button appears in upper-right corner
	of indicator button (e.g linewidth) when in update mode.  Clicking 
	on the update tag enables/disables components (e.g. linewidth) from 
	being copied to/from objects when using update.
o fixed exporting of pstex_t and pstex (used to give Postscript for both)
o FIG 1.4-TFX file area_fill values now correctly translated to 2.1 format
o deleted duplicate #include <math.h> from u_geom.c and w_export.c
o changed ^U (control U) in w_canvas.c to \023 for mailers which clobber 
	control chars
o added possibility of wider top ruler and taller side ruler by using
	-DMAX_TOPRULER_WD=value and -DMAX_SIDERULER_HT=value in Imakefile
o added function strtol() for those systems that don't have it.
	from Jonathan Kamens (jik@pit-manager.MIT.EDU)
o added note about -DNOSTRSTR and -DNOSTRTOL for those systems that don't
	have strstr() and/or strtol() respectively.
o fixed type mismatch and bug in call to getenv in main().
o type mismatch fixed for X11R5 in call to XtAppInitialize(). 
	from Jonathan Kamens (jik@pit-manager.MIT.EDU)
o small performance fix in u_draw.c in add_point() when reallocating points
	from Dave Hale (dhale@green.Mines.Colorado.EDU)

Patchlevel 3
Changes to Patchlevel 2:

o pressing carriage return in value part of popup indicator buttons that take 
	integer or float (e.g. line width) now sets the value and pops down
o added foreground colors to Text*, Menu* and List* widgets in default Fig-color.ad
	this fixes problem of white-on-white text when using inverse video
o changes two resource names -
	"xfig_export_menu.export_panel.just_label.flush left" to 
	"xfig_export_menu.export_panel.just_label.justify" 
	and 
	"xfig_print_menu.print_panel.just_label.flush left" to
	"xfig_print_menu.print_panel.just_label.justify"
o some type castings fixed
	from Wayne D Richardson (wdr@rchland.vnet.ibm.com)
o fixed "open file leak" - directory wasn't closed after file popup finished
o fixed selection of Times-Roman font under Openwindows
o changed titles of popup panels to meaningful names
o leading blanks no longer stripped from text objects
	from George Ferguson (ferguson@cs.rochester.edu)
o null strings in text objects now abort load/read of file with error message
	from George Ferguson (ferguson@cs.rochester.edu)
o conditional in xfig.man to set page offset only when using troff
	from George Ferguson (ferguson@cs.rochester.edu)
o added translation so that pressing return in filename window in popup FILE
	will load the file
o added translation so that pressing return in filename window in popup EXPORT
	will export the file
o fixed filled objects of DEFAULT color
o fixed bug in delete region
	from Peter Asenstorfer (peter@audrey.levels.unisa.edu.au)
o cleaned up cursor stuff - no impact on user
	from Brian Boyter (pyrdc!bimbo!boyter@uunet.UU.NET)
o new resource "-keyFile" to specify alternate compose key translation
	file in the XFIGLIBDIR directory
	From Herve Soulard (soulard@corto.inria.fr)
o popup message window to inform user when illegal values in figure file
	are fixed or when converting from older file versions to newest
o limit on depth of objects to 1000 when reading figure file. Fixes problems
	of infinite looping for files which were converted from Fig 2.0.
	Also sets depth to zero (0) when reading files older than 2.1.
o xfig.man now tells man to run tbl so that regular tables can be used
	from James B. Davis (james@solbourne.com)
o fixed Meta-Y (insert current selection), ^Y (unkill) and ^G (multiply reset) 
	in CompKeyDB
o added capability to delete whole text line from text widgets with ^X
	from Brian Boyter (pyrdc!bimbo!boyter@uunet.UU.NET)
o ^U no longer deletes line of text in text object mode for compatibility
	with text widgets.  Use only ^X now.
o fixed problem with OpenWindows and rubberbanding objects
	from Brian Boyter (pyrdc!bimbo!boyter@uunet.UU.NET)
o fixed minor bug in f_util.c line 82: assignment with '==' instead of '='
	from pf@diab.se (Per Fogelstr|m)
o fixed up bug in set_tags call in w_modepanel.c
	from Graeme Gill (graeme@labtam.labtam.oz.au)
o added strstr() function for systems without it
o warning message about redefining InstallManPage fixed
o removed unneeded O_NONE symbol from object.h
o directory code fixed to work with SVR4
	from David Elliot (dce@krusty.smsc.sony.com)
o cleaned up function declarations for event handlers
	from Anthony Datri (datri@lovecraft.convex.com)
o renamed Fig-co.ad to Fig-color.ad for color customization under X11R5 (see 
	README). Fig-co.ad can be deleted (if you have an older copy of xfig)
	from David Elliot (dce@krusty.smsc.sony.com)

------------------------------------------------------------------------------
Patchlevel 2
Changes to Patchlevel 1:

o the font flag (LaTeX, PostScript) wasn't being changed correctly in the
	UPDATE text object operation when switching from LaTeX to PostScript 
	or vice versa.

o the textstep value may now be entered in floating point in the popup menu

o the eps-bitmap icon was renamed to eps-object because it can be any
	eps object that is imported.  If it has a preview bitmap
	that will be displayed.  Several filenames/program variables
	were also changed to reflect this.

o there is now a more general glue mechanism for compounding objects

o text pasting into canvas now possible with F18 function key or any translation
	desired by user.  F18 is hardwired default in program; F20 also 
	programmed in Fig.ad to paste text.
	Brian Boyter (pyrdc!bimbo!boyter@uunet.UU.NET)

o DEFAULT fill_style caused core dump 
	from Jeffry R. Abramson (jra@violin.att.com)

o made the mouse-tracking markers hollow so as not to be visually obtrusive
	as suggested by Stephen Gildea (gildea@expo.lcs.mit.edu)

o removed extraneous call to free() in add_point() (u_draw.c)
	from Per Fogelstr|m (pf@diab.se)

o cleaned up gcc compiler warnings about type mismatches etc.

o compound objects may be rotated by arbitrary angles if there are no boxes, 
	arc-boxes, ellipses or circles contained within.

o text rotation support is improved - markers are now shown rotated and
	the angle attribute is set by the relevant rotate operations.

o both ps and eps modes now supported in export menu.

o new directory browsing facilities integrated with File and Export popups.
	Allows selection of file by clicking on the filename.  Has mask to list
	only those files of interest.  See the man pages for further details.

o Default font for Postscript fonts may now be selected and objects that
	have default font may be edited

o FASTSERVER flag removed; now always uses smart redrawing when available
	Additionally, smart redrawing is available more often

o fixed bug in regular polygon where some vertices were off by one pixel

o added "Use orig. size" button for eps objects to set object to original 
	size in popup edit
	from Peter Scott (pjs@euclid.jpl.nasa.gov)

o international characters supported (umlauts, accents, cedilla etc) using
	compose (meta) key
	from Herve Soulard (soulard@corto.inria.fr)

o much improved color support
	from Henning Spruth (hns@regent.e-technik.tu-muenchen.de)

o additional pan and zoom mode with <Ctrl>Key and left/middle/right button
	from Henning Spruth (hns@regent.e-technik.tu-muenchen.de)

o removed reference to FONTLIBDIR in Imakefile (no longer required)

o added a smart-links feature for the MOVE and COPY commands.
	With smart links turned on, when a BOX-like object is moved
	so are the lines which join up to it (its links).
	Two modes are supported: one which moves just the endpoint,
	the other slides the endlink so that it's angle doesn't change.
	In the second mode horizontal/vertical lines remain that way.

o added the ability to save figure during quit if it is modified

o added support for scalable fonts under R5

o additional command line flags supported
	-latexfonts flag (resource .latexfonts) to start xfig with the LaTeX
	fonts as the default instead of PostScript fonts
	-specialtext flag (resource .specialtext) to start xfig with special
	text as the default

o bug fixed where number of objects count in file popup was sometimes clipped

------------------------------------------------------------------------------
Patchlevel 1
Changes to Patchlevel 0:

o xfig now reads text size, height and length as floats and rounds to ints
	this is done because certain programs generate floats for these

o compound object was rounded to next larger grid even if objects inside were
	already on the grid

o Examples/logo.fig included Logo.eps instead of logo.eps

o cancellation of line drawing left single dot on screen

o filename in File popup menu didn't get set until first popup - file save 
	shortcut would save to unnamed.fig even if xfig was started with file name

o bug fixed in not being able to delete points from certain objects

o typo in FORMAT2.1 file (and all previous) stating that text angle is int when
	it is really float

o can now change corners of compound object with edit popup
	also shows number of objects inside compound

o file menu now shows number of objects in figure

o some bugs fixed in calculating bounding boxes after scaling ellipses and 
	compounds

o "#ifdefined SYSV" now reads "#if defined(SYSV) || defined(SVR4)" because X11R5
	doesn't define SYSV if SVR4 is defined
	David Elliott (dce@krusty.smsc.Sony.COM)
	
o object depths < 0 are converted to depth = 0

o typo in Adobe font name (was "-abode-new century schoolbook-medium-r-*--*")
	Jan Lindheim (lindheim@ccsf.caltech.edu)

o radius field for non-arcbox line objects now set to -1
	Jan Nusteling (j.nusteling@et.tudelft.nl)

o bug fixed in not trying to load an eps bitmap file called <empty>
	and not trying to reload an eps bitmap during a copy.

o bug fixed which caused crash after editing 0-width or 0-height ellipses

o bug fixed which caused incorrect mode after cancelling draw (int)spline

o bug fixed which caused incorrect minimum number of points for (int)spline

o bug fixed which caused erroneous large values to occur after box scale of
	0-width or 0-height objects.  You can no longer box scale such objects

------------------------------------------------------------------------------
Patchlevel 0
Changes to Version 2.0 Patchlevel 10:
Implemented by Paul King (king@cs.uq.oz.au) and
Brian Smith (envbvs@epb7.lbl.gov) with help from
Micah Beck (beck@cs.cornell.edu) and
Brian Boyter (pyrdc!bimbo!boyter@uunet.UU.NET) (EPS code).

USER INTERFACE
--------------

o The buttons are now grouped into three panels:

    COMMAND panel:
        Quit, Delete all, Undo, Redraw, Paste, File popup, Export popup and 
		Print popup buttons.  See man pages for details.
		(see "Drawing Modes", below for description of Cut)
    MODE panel:
	Allow the user to select the current drawing or editing mode.
    INDICATOR panel:
	By default shows indicator buttons relevant to the current mode.
	Each indicator button displays current setting of some quantity
	(e.g. line width, area-fill) and allows it to be changed:
        left button gives popup menu to select setting,
        middle/right buttons provide a shortcut to inc/decrement settings.

o Pan figure by using left/middle/right button in the rulers in addition to
	the previously supported arrow keys.  Also a pan to origin operation
	is available by clicking in the units window (or using HOME key).

o May now print figure that hasn't been saved (i.e. print what is on the 
	canvas, not the file)

o Zoom up or down with zoom button.

o Mouse function window shows function of active buttons

o New resources/command-line switches which affect the user interface:
	-showallbuttons		(show all indicator buttons all the time)
	-internalBW n		(use lines of width n between buttons/panels)

DRAWING MODES
-------------

o Regular polygon drawing button - select number of sized from bottom panel.
        Object created is normal xfig polygon.

o Inclusion of Encapsulated Postscript files (bitmap image in EPS file is
	displayed).

o Rubberbanding of ellipses/circles.

o Filled splines show areafill on screen now
        also dashed/dotted line type shows on screen

o Dot-gap and dash-length can be changed in the line-style indicator popup.

EDITING MODES
-------------

o Cut to buffer operation is now part of Copy object mode & Delete object mode.

o Update button to either update objects to current settings, or update
        indicator settings from an object.

o Rotation of certain objects by any angle (30, 45, 60, 90, 120 degrees can
	be selected using the mouse middle/right shortcut buttons).

o Alignment horizontally and/or vertically of objects to compound object edge(s)

o Objects can be scaled (not just compounds).

o Point move or object copy/move constrainable to horizontal or vertical
	movement (middle mouse button)

o Compound bounding corners shrink to fit enclosed objects and have markers
	that appear the same as other objects.

o Shift-click selection should work on all editing operations.

o Only the objects relevant to a particular editing operation will
	have their markers shown.

OVERALL OPERATION
-----------------

o Smarter redrawing (if compiled with -DFASTSERVER).
	Only the relevant objects are redrawn after an expose or after
	an edit operation (not all operations support this yet).

o Undo should work for all commands.

o Operations can now be cancelled (using the right button when appropriate).

o Point positioning to three resolutions:
	magnet (1/16inch), small grid or large grid

o TransFig 2.1 features: LaTex fonts, hidden text, scalable text, "special" text
        see TransFig man pages for description
        scalable text sizes with resizing of figure

o Attempts to save figure if signal detected (segmentation violation, etc)

o Resizing the xfig window should now be a bit smarter.

o The philosophy behind button usage has changed. This was necessary to
	provide a consistent (as possible) philosophy which supports the
	use of several buttons per mode.  Now the same button used to start
	an edit/draw operation is used to continue to the normal next step
	in the operation.  The right button can be used to cancel an operation.
	Watch the mouse function window until you get the hang of it.

