			Electric change log


************************* Version 5.4g6: Completed 3/12/99 *************************

BUG: On Windows, the "Artwork Color" and "Layer Visibility" pattern examples
     don't work right.
FIX: Fixed dialog scaling in "graphpccode.cpp:gra_dodialoginit()".

IMP: Rearranged placement of status fields to allow more fields on UNIX and Mac.
     (modified initial creation parameters in "usrstatus.c:us_initstatus()").
     Added facet size to status bar.  Improved "usrstatus.c" and the
     "graphXXX" modules.

IMP: Full view of a window now includes variables that have been offset.
     Modified "usrdisp.c:us_fullview()".

BUG: When a node or arc name is not visible, the "Duplicate" command makes the
     copies visible.
FIX: Copy the visibility bit in "usrnet.c:us_copyvars()".

BUG: Cursors don't change properly.
FIX: Improved graphics modules to display cursors correctly.

BUG: UNIX dialogs do not accept the arrow keys.
FIX: Moved rebinding code in "graphunixx11.c" to be in the right place.

IMP: UNIX file output now has full file selection dialog.

IMP: New X Window driver works on all bit depths without "colormap flashing"
     The downside is speed: this is slower.  Old version available by editing
     the "Makefile".

BUG: On Windows, SPICE dialog acts strangely when model card files are requested.
FIX: Redid file selection dialog to use MFC in "graphpccode.cpp:gra_fileselect()".

BUG: If changing a node into another node fails (due to port incompatibility),
     the system crashes.
FIX: In "usrnet.c:us_replacenodeinst()", must test result of "replacenodeinst".

BUG: On UNIX, if a library is specified on the command line and the user quits
     without making changes, the system still prompts to save.
FIX: In "usr.c:us_do3init()", after issuing the "editfacet" command to display
     the main facet in the initial library, the LIBCHANGED bit must be cleared.

IMP: Added the off-page connector to the list of analog parts available from
     the edit menu.

BUG: The tutorial describes incorrect items in the component menu.
FIX: Fixed the tutorial file.

BUG: When deleting windows, system might crash.
FIX: In "usrcomwz.c:us_window()", in the "delete" case, before setting the
     new window, if there is none, set "el_curwindow" to null.

IMP: There are 5 commands that prompt with lists of technologies: switching
     technology, documenting technology, editing technology, deleting technology,
     and converting a facet to a new technology.  Each takes a different list,
     and a general list may not work for all.  Modified "usrdiacom1.c" to make
     the list specific.

************************* Version 5.4g5: Completed 2/13/99 *************************

BUG: UNIX sometimes redraws the window without the stipple patterns.
FIX: In "graphunixx11.c:gra_handleeditevent()", must call bracket call
     to "gra_repaint" with calls to "us_startbatch()" and "us_endbatch()".

BUG: Call to "mkstemp" does not fit logically with scheme of renaming
     binary file before writing new one.
FIX: Removed "mkstemp" call and use "mktemp".

BUG: File selection fails on Solaris systems.
FIX: In "graphunixx11.c:filesindirectory()", call "closedir()" after done.

BUG: Distance measures in the transistor size and area dialogs are wrong.
FIX: Removed distance choices, keeping distances in lambda units by default.

BUG: Incorrect parsing of distance measures.
FIX: Rewrote "dbtext.c:atola()", fixing numerous logic errors.

BUG: Icons are not properly "fleshed-out" when writing SPICE decks.
FIX: In "simspice.c:sim_spicewritefacet()", check for icon view and use contents
     before recursing.

BUG: You can place an icon into the layout of the same cell, causing recursion
     and a crash.
FIX: In "dbmath.c:isachildof()", test "child->cell == parent->cell" rather than
     "child == parent".

IMP: The "Get Info" dialog on text objects shows the actual position of the text.

IMP: In the VIEW commands "Edit Layout View", "Edit Schematic View", etc., if the
     window is already on the display, it is brought to the front, rather than
     creating a new one.  Created the routine "us_bringwindowtofront()" in the
     GRAPH modules and added the command "editfacet FACET non-redundant".

BUG: On UNIX, deleting one of the two simulation windows causes simulation
     to stop.
FIX: In "usrmisc.c:us_killcurrentwindow()", must reinstate the simulation
     bit in the new window after the call to "us_windowfit".
     In "simwindow.c:sim_window_termschemhandler()" and
	 "simwindow.c:sim_window_termhandler()", must not call "sim_window_stopsimulation"
     but just reset the "sim_window_np" variable so that it can be put back
     in "sim_window_redisphandler" and the newly created "sim_window_redispschemhandler".

BUG: SPICE options are not saved with the library.
FIX: In "sim.c:sim_init()", "sim.c:sim_set()", and "usrdiacom1.c:tty_simdlog()"
     removed the VDONTSAVE from sets of "sim_spice_state" and "sim_spice_level".

BUG: When converting small-lambda technologies (such as mocmossub) to schematics,
     components are large and overlapping.
FIX: In "usrctech.c:us_tran_logmakenodes()", must scale placement of components.

IMP: Binary I/O is now 64-bit clean.  New library format saves big and
     and small integer size.  Changed "iobinaryi.c" and "iobinaryo.c".

IMP: When duplicating nodes or arcs, names on them are forced to be
     unique.  Created "usrnet.c:us_copyvars()" and call it from
     "usrcomcd.c:us_duplicate()".

BUG: If a "Save As" is cancelled, subsequent "Save" commands still
     prompt for a file name.
FIX: Changed macros for "Save As" and also removed statements that
     set "el_pleasestop" in "dbtext.c:xcreate(),
     "graphunixx11.c:gra_fileselect()", and
     "usrparse.c:tty_specialparse()".

IMP: Renamed ports on some schematic components to be more sensible.
     "Source" now has ports "plus" and "minus"; "Meter" now has ports
     "a" and "b"; "Two-Port" now has ports "a", "b", "x", and "y".
     This change also requires a fix to "iobinaryi.c:io_doreadlibrary()"
     and "iotext.c:io_getport()" and the addition of
     "io.c:io_convertoldportname()" to properly read old format libraries.

IMP: The "Get Info" dialog now can manipulate the parameters of schematic
     components.

BUG: When changing schematic components to other schematic components,
     old schematic parameters persist and have no meaning.
FIX: When changing these components, old parameters are removed.

BUG: On UNIX, middle button does strange things.
FIX: Modified macro files (lib/egnumenus.mac) to unprogram this button.

BUG: Behaves badly or crashes during technology editing, when changing
     characteristics of a port.  On Windows, typing into dialog does not work.
	 On all systems, moving port after a change may crash.
FIX: For Windows dialog bug, "graphpccode.cpp:gra_keyaction()", must offset
     the coordinates by the window corner position.  For port motion crash,
     "usredtecc.c:us_teceditmodobject()" must handle PORTOBJ case specially and
     reset the currently highlighted node after calling "us_tecedmodport()".

IMP: In the SPICE Options dialog, now allow the use of "Use Node Names"
     checkbox for SPICE3 (used to only allow it in HSPICE).

BUG: On UNIX and Windows Visual C 6.0, crashes when changing port
     characteristics in the technology editor.
FIX: In "usrcom1.c:us_paramsedtecport()", must declare static character
     arrays:
		static char technologycpynpdef[4];
		static char technologycpbpdef[20];
     and then set the "def" fields of "technologycpbp" and "technologycpynp"
     to them before copying to those fields, for example:
		technologycpbp.def = technologycpbpdef;

BUG: When simulating, cannot shift the waveform window left or right.
FIX: In "sim.c:sim_set()", in the "window move" case, in the "left and right"
     subcases, the line:
		if (count < 2) time = size / 2.0; else
     should change the "< 2" to a "< 4".  In the "up and down" case, the line:
		if (count < 2) amount = signals / 2; else
	 should also change the "< 2" to a "< 4".

BUG: When the "mocmossub" technology is converted to a library, it cannot
     be converted back.
FIX: In "usredtecg.c:us_tecedmakelibfromtech()", must set separation
     to a minimum of 5000 units by adding:
		if (xs < 5000) xs = 5000;
		if (ys < 5000) ys = 5000;
     after the line
		ys = (pnp->highy - pnp->lowy) * 2 * tech->deflambda / oldlam;

BUG: On UNIX and Windows Visual C 6.0, crashes when the SPICE Options dialog
     requests heading or trailing model cards from a file.
FIX: In "usrparse.c:tty_specialparse()", must copy the "prompt" parameter to
     a temporary location before modifying it.  Also, in
     "graphunixx11.c:gra_fileselect()", must call "DiaAllowSubDialog()" before
     each call to "DiaInitDialog()".

BUG: On UNIX and Windows Visual C 6.0, crashes when converting technologies
     to libraries.
FIX: In "dbnoproto.c:newnodeproto()", must copy the "fname" parameter to
     a temporary location before modifying it.

BUG: On Windows, cursors dissapear when the background color is black.
FIX: Made cursors use "inverse" color instead of black.

BUG: CIF input fails if there are layers for both n and p processes in the
     same file (and the technology is the MOSIS CMOS switchable one).
FIX: In "tecmocmossub.c", change lines 550 and 551 from empty strings
     ("","",) to the proper layer strings ("CSP","CSN", and "CWP","CWN",).
     Also added "Poly-Cap-Node" and "P-Active-Well-Node" pure-layer nodes.

BUG: Sample PLA personality files mentioned in document are not in distribution.
FIX: Files are now in the distribution.

IMP: Made Electric 64-bit clean.  Changed INTBIG to "long".  Changed %d to %ld
     where appropriate.  Changed "unsigned" to "UINTBIG".

IMP: On UNIX, crashes when X display is not set right.
FIX: Used "printf" instead of "error" in "graphunixx11.c:gra_finddisplay()".

IMP: Improved User's manual HTML: added <HTML> at start of pages; fixed
     places where <HEAD> had missing "<"; added ALT to all images; changed
     "<" and ">" to &lt; and &gt; changed <H3> to <H2>; shortened <TITLE>;
     changed version from 5.4g3 to 5.4g4; and added the missing
     section 9-9.  Also removed all references to Electric Editor propreitary
     code.

IMP: Modified UNIX Makefile to ignore unused modules "dblangelk.c" and "dblangtcl.c".

IMP: Cleaned up compiler warnings in "graphunixx11.c", "dbmult.c"

************************* Version 5.4g4: Completed 11/24/98 *************************

BUG: UNIX does not automatically detect the need for the Xmu library.
FIX: Improved "configure" to detect the presence of this library.

BUG: Some compilers complain about extra semicolon after close bracket
     in header files (happens in the extern "C" wrapper for C++).
FIX: Removed the semicolons.

BUG: On the Mac and UNIX, dialogs with scrollable areas draw the
     vertical scrollbar incorrectly.
FIX: In "usrdialogs.c:Dsetvscroll()", must add 13 to r.right, not 14.
     Also, in the UNIX version of "Dgrayrect()", must not subtract 1
     from right and bottom coordinates.

BUG: If a new library is read while simulating, the red border persists.
FIX: In "usrcomln.c:us_library()", must terminate simulation after reading
     a new library that replaces the current one.

BUG: On UNIX, the highlighted simulation window trace dissapears
FIX: In "simwindow.c:sim_window_writetracename()", must reset
     the mask to "LAYERA" after writing highlighted trace info.

IMP: Fixed the routines "usrdialogs.c:Dgettextsize()" and
     "usrdialogs.c:Ddrawtext()" to copy their argument before modifying
     it so that strings do not need to be writable.  Then removed the
     "-fwritable-strings" flag on UNIX.

BUG: On HP UNIX, "scandir" call fails to compile in "graphunixx11.c".
FIX: Conditional code to define "gra_fileselectall" for HPUX.

BUG: On Windows, under Visual C++ 6.0, program will not run.
FIX: Visual C++ 6.0 places string constants in protected memory.  Fix involves
     changing "dbcontrol.c:el_primaryinit()" to place the constants "noname"
     into temporary arrays (because "newlibrary()" may modify its arguments);
     and modifying "dbtext.c:getnodeproto()" and "dbtext.c:getarcproto()" to
     copy their argument before modifying them (because they may be passed
     constants).

BUG: On Windows, compiled version of Electric requires Msvcrtd.dll and
     Mfc42d.dll to run (these DLLs are available only on machines with
     Visual C installed).
FIX: Changed "General" setting to be "Use MFC in a Static Library".

BUG: If "cadrc" file is missing, system may crash.
FIX: In "dbtext.c:xopen()", must test for "otherdir == 0" as well as
     "*otherdir == 0".

IMP: Added introductory display during loading (added to "usr.c:us_do2init()").

IMP: Corrected warning messages produced on BSD (requested brackets, implicit
     declarations).

IMP: Now check for "mkstemp" and use it (instead of "mktemp") in "iobinaryo.c".

IMP: Now check for "termios.h" (a BSD header file) and use it in "usr.h",
     "graphunixx11.c", and "simsim.c".

IMP: Documentation now indicates that UNIX users must use GNU make.
     Documentation now points users to www.gzip.org for more information.
     Documentation now makes even more clear that UNIX users must use 8 bit
     display (and that Windows users must use 16 or more).

BUG: On PC, numeric keypad doesn't work for window-shifting commands
     (such as Control-4 to shift left).
FIX: In "graphpcchildframe.cpp", added code to the "OnKeyDown" method
     to recognize the numeric keypad.

BUG: On UNIX, the define "HAVE_SGTTY_H" was not set properly.
FIX: Added "#undef HAVE_SGTTY_H" to "defines.h.in"

BUG: Some compilers use "restrict" as a keyword, causing compilation
     errors.
FIX: In "global.h" and "dbvars.c", changed parameter "restrict" in
     the routine "initobjlist()".

IMP: On UNIX, cleaned up "Makefile.in" for better installation.  Also
     removed "termcap" library.

IMP: Upgraded Macintosh code for CodeWarrior release 22 (from
     Mariusz Niewczas of CMU). Involved changes to "config.h",
     "usr.c", "usrcomtv.c", "dbmult.c", "graphmac.c" and "graphmacsys.c"

************************* Version 5.4g3: Completed 10/9/98 *************************

IMP: UNIX file selection now using extension filters (for example,
     readable dump files must end in ".txt").

IMP: Made SPICE simulation *NOT* simulate automatically on any platform.

BUG: On UNIX, creation of output files fails.
FIX: In "graphunixx11.c:gra_fileselect()", output case must call
     DiaGetText(4) before calling DiaDoneDialog().

IMP: Added hooks to enable ELK LISP to be compiled on UNIX.

BUG: Simulation window does not show selected nets when window uses
     white-background color map.
FIX: In "simwindow.c:sim_window_writetracename()", use highlight color
     for trace name, not WHITE; in "sim_window_drawcursors()", make
     initial call to "sim_window_drawbox()" use 114 as first parameter,
     not zero.

BUG: On the PC, cannot plot spice listings.
FIX: Remove exclusion code at start of "simspicerun.c:sim_spice_execute()"

BUG: On the PC, the Messages Window Font command of the Windows menu fails.
FIX: Added code for font selection in "graphpccode.cpp:gra_setfont()".

BUG: Popup menus don't work on PC (this is noticed when trying to
     edit technologies).
FIX: In "graphpccode.cpp", must do "p2.x = p2.y = 0;" before
     calling MapWindowPoints.

IMP: Combined machine-specific terminal-handlers (graphmacterminal.c,
     graphpcterminal.c, and graphunixterminal.c) into one uniform file:
     terminal.c

BUG: Ports "1" and "2" on the schematic flipflop are syntically bad
     in VHDL.
FIX: Renamed them to "i1" and "i2".

IMP: Added X Windows toolkit for UNIX port.  Makes messages window
     scroll and not need "-MORE-" stuff.  Got rid of all "-More-"
     handling code in the system (it was only used on UNIX).

IMP: Added cut and paste on UNIX.

************************* Version 5.4g2: Completed 9/17/98 *************************

IMP: Added copying notification to book and manual.

BUG: UNIX Messages window cannot rescale, main window shrinks when redrawn
FIX: Redid "graphunixx11.c" and "graphunixterminal.c"

IMP: Removed LINUX exception to use of FLOATSCALE in dbmath.c

IMP: Added "system print" command to Windows and implemented real printing.

************************* Version 5.4g1: Completed 9/10/98 *************************
