		WORK DONE ON XCIP


Release 2.3:

* xjpic: increased size of macros.

* Correct movement of objects on reading and writing cycles.

* Global setting of justification and style.

* Make bounding boxes grow to fit grid points.

* Ask for confirmation on getfile if something on screen.

* Generalize fonts to allow constant width fonts.

* Start object selection with macro just created.

* Bug: prevent user from setting very large point size.


Release 2.4:

* Text printed a bit higher than displayed in xcip.


Release 2.5:

* Don't delete the text string right away if it becomes empty while editing.

* Odd segment number splines not read in correctly.


Release 3.1:

* Available for Teletype 630 MTG terminal.

* General undo operation.

* Macros jump around when moved.

* Print out type and attributes on the selected object.

* Separate arrow menus for spline and lines, etc.

* Ciprint: centers picture horizontally at top of the page.

* Ciprint: support Xerox 9700 and Imagen I300.

* Ciprint: support for both DWB 1 and DWB 2.

* Secondary menus off to the right of the main menu using 630 tmenu function.

* Put file operation copies old file if it exists to a backup file named:
    xcip.backup.

* Get file operation can handle much larger pic files (uses new xjpic host
    program).

* Takes advantage of the caching in the 630 terminal.

* Takes advantage of the font caching in the 630 terminal.  Fonts once
    downloaded are shared among all windows in the terminal.

* Arcs can now be easily editted!

* New PRINTING DIAGRAMS section in xcip manual page contains hints 
    on how to print your diagrams in documents.

* New information operation on main menu; prints out memory remaining in
    terminal and the UNIX directory from which xcip was down-loaded.

* New logo displayed in closed window.

* The standalone version of xcip is no longer available.


Release 3.2:

* Fixes problem preventing many "put file" operations (from 3.1).


Release 3.3:

* 630 crashes when opening and closing windows - P->layer->base saved too
  infrequently for draw routine clipping.  Thanks to Jeff Schneiderman.

* Writing to pic file of unused macros.


Release 3.4:

* Bounding box for arcs is too big - fixed by Rich Trommer.

* Fixed exceptions still common on 630 - file pointer was being changed in
  doPut to point a local area buffer.  This caused garbage collection
  problems when the file pointer was freed.  Thanks to Jeff Schneiderman.

* New -v command line option to print out version of xcip.

* Uses /bin/cp instead cp in put_file operation file backup.


Release 3.5:

* Xcip shell uses JPATH to find DMD object.

* Object selection is much faster.

* Recognize TERM set to 630* or 5620* or dmd2.0*.

* Reflecting macros on X-axis now works.

* xjpic: can handle larger macros.

* xjpic: can read into xcip extra wide diagrams.

* xjpic: new -v version option

* man page change: new sections on SETUP and COMPARISON WITH CIP.

* does not create defunct UNIX processes.

* ciprint accepts -T as well as -t.

* ciprint checks for unset IDEST.

* Use "who am i" to determine if in first window (as in sdled).

* Test in xcip shell whether xjpic exists.

* Creating of macros while editing a macro is now correct.  Was an 
  offset problem.

* The pwd is correct if xcip is brought up in another directory.

* Warn users about file name paths over 60 characters.

* Fixed by making visible when mouse moves: When I am typing text and 
  the invisible cursor wanders off the screen, it's not clear why hitting 
  the buttons fails to end the insert.  When I manage to move the invisible 
  cursor back into the xcip layer and end the insert, the cursor isn't 
  restored and stays invisible until I move it outside the layer and 
  back again.  - iextinct!dcn

* Quiting xcip in a full window is no longer available.

* On 630 terminal, xcip is always cached now (no -c option).


Release 3.5a: 

* Fixed exception when a font can not be found and default font is used
  instead (found by John Kant).

* Fixed bug in findBBpic() was not calculating the bounding box for
  text at bottom of diagram correctly resulting in an invis box in 
  pic being to small.

Release 3.5b:

* Fixed exception of undo of macro or text separate operation (found by 
  Jon Luers).

* Fixed exception resulting from deleting objects in macro while editing it, 
  leaving the macro edit mode, and still finding copies of the macro around
  which give an exception when touched (found by Len Kasday).

Release 3.5c:

* More portable detection whether xcip is being run in the system window 
  or not (thanks to Danny Zerkel).

* In certain cases arcs will display as complete circles in xcip.  It turns
  out that a negative number is generated by xjpic which was not handled
  by getInt in readPic.c.  See file fixed.bugs/arc.bug, from John Kruk.


Release 4.0a:

* Port to run on Sun servers under layers on DMD terminals.


Release 4.0b:

* Fixed undo infinite loop found in test version 3.5c by Alan Hastings.

* Order of objects is not changed in successive get and put files.

* Above enhancement fixed bug: creating a macro while editing a macro results
  in a recursive macro call in generated pic file.

* Added subset of emacs commands when editing text objects.

* Displays xjpic parsing errors in message window.

* Added updates to tmenuhit for 5620 terminals.  (Display->Physical,
  cursinhibit->Jcursinhibit, MAX_TMFIELDS from 9 to 8)

* In generated text strings, fixed bug to restore font style to P (prefix)
  instead of 1.

* Fixed xcip shell to use work under emacsterm by adding "-x" option to
  ttype call.

* Fixed ciprint shell to work under DWB 3.1 (use dx9700 not ndx9700).


Release 4.0c:

* Note, a dead-end.  See HISTORY file.

Release 4.0d:

* Fixed exception bug occuring during "put file" if first object is a macro 
  and the macro is separated.  Thanks to Mike Hartrey for reproducible
  scenario and David Wexelblat for partial fix.

* Fixed spaceLeft() routine for 630/730 terminals to not hang in infinite
  loop.

Release 4.1a:

* David Wexelblat's X11 version of xcip.  Distributed informally to some
  Sun 3 and 4 users.

Release 4.1b:

* Fixed minor problems in Wexelblat's version to work again on 630 and 5620.
  (Things were not #ifdef correctly.)

* Fixed undo of newly created object to undo newly created object and not
  some other random object. (Changes in place() function return t instead of 
  h and in doMouseButtons() function to back up one object.)

* Increased maximum size of text to 2000.  Had to make local string variables
  based on MAXTEXT in editText and getText global to avoid stack overflow.

* Fixed nextLine() function to work when scrolling up messages when using 
  Wexelblat's MessageBuf array.  Removed #ifdefs so that all xcip types
  will use MessageBuf (there are a few isolated cases where this benefits
  5620/630 users).

* Adjusted message area window size to avoid partially erasing rightmost 
  vertical border.

* Fixed X11 version buttons to look 3-D (LowerTriangle & UpperTriangle icons
  not happening).  Changed order of calls in drawIcon.  (Mystery: why does 
  this work for the DMD terminals as it uses the XOR instead of OR code?)

* Modified Dave Kapilow's x11.c file as follows:
       1) handle -geometry specifying only x and y positions.
       2) added -reverse to do reverse video.
       3) changed default font to be "8x13" instead of "fixed".
       4) added abbreviations: -g, -rv, -fg and -bg
       5) implemented cursinhibit() and cursallow() functions.

* Internal improvements:
       1) Put definitions of textures, curses and bitmaps together in 
	  one file.
       2) Eliminated some "#ifdef X11" by making code common.

* Added "Version" to main menu.

* Fixed bug occuring when selecting outside picture area resulting in large
  black box highlighted.  Bug in Select() for all terminal types.

* Fixed bug in getBox() where a rectangle was passed to cursset() instead of
  a point.

* Fixed movement of objects over repetitive read/write operations.  
       1) In xjpic changed deltx & delty to be int instead of float.
       2) Removed JpicFix() in readPic.c
       3) Removed in writePic() an extra ">>3" adjustment for multiline text 
	  as it was effectively being done twice.
       4) Changed line 295 in readPic.c to prevent truncation error.

* Modified findFont() for X11:
       1) ringbell only once and sleep to see message.
       2) to try fallback if first font has inexact point size.
       3) modified to use font size ps, not ps+2, as it appears closer to
          print out.
       4) changed Palatino_italic_fonts for courier medium from i to o.

* Picked up fixes in Wexelblat's July's version:
       1) DMDLIBX11/x11.c: SAYSV/BSD portability fix
       2) Change drawing of windows to use box instead of rectf for better
	  X window performance.  Made some chgs in size of box.
       3) Fix size of ellipse drawn in brush so it fits better.
       4) Restore buttons if put_file is cancelled.
       5) Reset thingSelected if thing is deleted by resizing to zero.
       6) Fix scalable font selection.

* Fixed exception occuring when the parts of a macro being editted are 
  all deleted and then the macro is exited.

* Fixed X version problem that hangs xcip when a keyboard character is
  entered when not expected.

* Now support odd numbered spacing in text Spacing menu.

* Spline problems fixed.

------ Following entries by Dave Dykstra unless otherwise noted ---------

Releases 4.2 - 4.4:

(Note: I don't know which of these fixes were in which
  intermediate releases 4.2, 4.3, or 4.4)

* Jpic modified to change some integer arithmetic into floating point
	arithmetic, in particular:
    deltx = delty = 100 * ((float) t / (float) getvar("scale"))

* The DMD5620 version changed to treat any non-ascii input as the end of
    end of input rather than just a CHAR_EOF

Release 4.5:

(Note: this one was temporarily called versions 'x4.1b' and 'x5.0' while
   I was trying to figure out what version numbering scheme I should use)

* Front end shell script split into to 2 parts.  The first part determines
    whether to use X version or DMD version.  If DMD, uses 'dmdtool'
    to determine difference between 5620 or 630 and then calls
    the second part.  In addition to being more robust in its distinguishing
    between the two types of terminal, the use of 'dmdtool' means that
    xdmdld and xjx will be used instead of dmdld and jx.  Also, if the
    second script is installed by itself as 'cip', it will instead use
    dmdld and jx and find the download executable in $DMD/lib/cip.m.  This
    makes it easy to use the same binaries in both exptools and under $DMD.

    The algorithm for determining whether or not to use the X version (on
    machine on which the X version is supported) changed: if the $DISPLAY
    variable is set or if $TERM is xterm|sun-cmd|x11, the X version will be
    used.  It used to be that if $DISPLAY was set and $TERM were set to
    something that looked like a 5620 or 630, the non-X version would be
    used; now the X version will.

    The "-t" option which explicitly tells xcip which type to use changed
    subtly: it will now only distinguish between the X and non-X versions,
    it will not distinguish between 630 and 5620.  A "-t x" or "-t sun"
    will say use the X version and a "-t mtg" or "-t dmd" will say use one
    of the non-X versions and the script will re-determine whether to use
    the 630 or 5620 version. 

* Core dump in xjpic print.c fixed: it was mallocing a structure that was of
    variable length with different number of parameters.  However, it always 
    read two parameters into local variables x1 and y1 whether they were there
    or not; apparently this went off the end of a page on an amdahl and
    caused a core dump.

* Bug which caused fonts sizes 2 points too small to be selected on X versions
    fixed.  Fonts which could not be found in an exact match were chosen to
    be 2 points too small; this happens most often on X servers without
    scalable fonts, that is, pre-X11R5 servers.  This X code was originally
    written by David Wexelblat which incorrectly added 2 to the point size 
    even for the exact matches; Eugene Bordelon had noticed that to be
    incorrect and took it out.  However, it needed the +2 for non-exact
    matches because the first two elements in the font mapping arrays are
    special and need to be skipped.

* A couple minor changes to improve portability to SVR4.

Release 4.6:

* Jpic bug fixes thanks to Ton Kramer:
    * suggested changing the floating point arithmetic changed in release 4.4
	to the following:
	  deltx = delty = 100 * (float) t / (float) getvar("scale")
	This works better on Eugene's test suite test1 for reading and writing
	without changes.  The code from version 4.1b works just as well
	  deltx = delty = t * (100 / getvar("scale"))
	so I'll stick with it.
    * elipses with height 48 and width 80 on 8x8 grids were read in as elipses
        with height 46 and width 80.  The fix is in function "ysc()" in
	pltroff.c.  If yscale is negative, subtract 0.5 instead of add 0.5.

* Added Eugene's test suite to the source code.

Release 4.6b:

* I should have used Ton's code for the floating point arithmetic on "scale"
    because that works better if the user edits the 'scale' variable in the
    pic file.  In fact, I thought I had used that but I accidentally used
    the version where it was commented out and Eugene's version was back in.
    The original change in version 4.4 was apparently an attempt to fix this
    problem.  This version changes it to a compromise:
	(float) t * ((float) 100 / (float) getvar("scale"))
    This has the same results as Ton's version but is more intuitive
    because the 100 is related to the scale and is in the same order as the
    original.

Release 4.6c:

* Added in some ifdefed-out code for future use: FINEALIGN and HELPSCALE.
    Code from Franco Barber.  Will probably be enabled in a future release.

Release 4.6d:

* More ifdefed-out code from Franco Barber in the FINEALIGN and HELPSCALE
    features.
* Fix from Franco Barber to initialize "prevhit" values on menus to the 
    default entries.  Without it, sub-menus can be selected even though
    they weren't actually entered.
* Fixed a bug where the invisible bounding box written out around a picture
    that is less than 200 pixels or so wide while the xcip window is to the
    far right side of a 730 screen would force the box to still be 200
    pixels wide.
* Moved the copyright message a little to the right to allow room for the
    4 character wide version numbers of xcip.m.

Release 4.7:
* Enabled FINEALIGN and HELPSCALE defines.

Release 4.7b:
* Added fine, medium, and coarse in parentheses in the alignment menu
    behind 2, 8, and 16, respectively for information.

Release 4.7c:
* Removed ".m" from the backup file name; this had been accidentally
    inserted in (probably) release 4.5.

Release 4.8:	12/21/95
* Fixed font scaling problem on Suns by choosing -100-100- resolutions
    in the X font names.  Also, choose the adobe family for helvetica, times, 
    and courier because the defaults (at least on Solaris 2.3) choose
    the wrong size for some point sizes.  Thanks to Joe Davison for the
    pointer to the "xfontsel" program which allows one to easily experiment
    with those parameters.  Also note (at least on Solaris 2.3) that
    there is no point size 22 so it drops down to display point size 20.
    I also removed the "+2" added to point sizes for inexact matches which
    I added in version 4.5, because it was incorrect; the first 2 locations
    in the font arrays are special, but they are already automatically skipped
    because there's never a point size of 0 or 1.
* Made the default button 2 behavior be to move the whole picture on the
    screen, similar to a suggestion from Gene Bordelon.  Added a variable
    called "scrollOffset" which is the x/y offset that the picture has
    been moved, manipulated in a new routine "moveAll".  Clearing the
    screen resets the scrollOffset to 0,0.
* Renamed the globals Xoffset and Yoffset to a Point called readPicOffset
    and moved it to readPic.c because that's the only place it's used.
* Changed the Copyright year to 1995 from 1985.

Release 4.8b: 1/4/96
* The 100-100 fonts did not exist on Sunos4 (X11R4 presumably) so I had to
    compromise: Try the 100-100 fonts first, and if those can't be found,
    silently drop back to *-*.  At the same time it drops back to *-*,
    add 2 to the point size but do it more intelligently than in the past 
    by making sure it can always select a valid font in the font arrays.
    Kept the "adobe" wherever Sunos4 had an adobe font.  Extended the
    font arrays to also always have a "-*-" for every field instead of
    stopping with just a "-*" after the point size because I found that
    it made a difference on Solaris (X11R5).  If an exact match for a font
    cannot be found, a message displaying that fact will now appear for at
    least 1/2 second instead of possibly being overwritten immediately.
* Made the default height and width for the X version to be the same number
    of pixels as on the 730 rather than a certain number of inches.  There's
    not enough pixels available for height on Suns, but there is for width and
    the program was choosing fewer than it needed, especially on the Sunos
    machine I tested.

Release 4.8c: SGI portability changes 3/6/96
* changed dpy->fd in initdisplay() to ConnectionNumber(dpy).
* changed fgpix, bgpix, and tmppix globals in x11.c from int to unsigned long.
* changed the externs of fgpix and gbpix in jerq.h from int to unsigned long.
* changed &ev in call to XLookupColor in handleinput() to &ev.xkey.
