gEDA

GNU Electronic Design Automation
------------------------------------------------------------------------------

ChangeLog for gschem

Most recent changes (version wise) are at the top of this file
All the changes are usually noted in this file when they are checked
into the cvs repository.

1999-10-11  Ales Hvezda  <ahvezda@geda.seul.org>
	
	* src/x_fs.c: Got the component search working

	* src/x_fs.c: Changed all calls to s_clib_getfiles to use the new
	  prototype (the extra param at the end)

	* src/x_filesel.c: Removed file from cvs repository

	* src/x_compsel.c: Removed file from cvs repository

	* src/x_fs.c: Renamed to x_fileselect.c

	* src/x_fileselect.c: Fixed all -Wall warnings

	* src/x_preview.c: Fixed all -Wall warnings

	* general: You can only place *.sym files as components.

	* src/o_pin.c: added o_pin_eraserubber()
	
	* src/o_stretch.c: Updated _end function to allow for the stretching
	  of pins

	* src/x_window.c: Used the appropriate #defines for filedialog box init
	
1999-10-10  Ales Hvezda  <ahvezda@geda.seul.org>

	* src/x_fs.c: Lots of changes related to getting filedialog to act as
	  the component place dialog box

	* src/i_callback.c: Made the new component place dialog box the 
	  default
	
	* src/x_log.c: Fixed memory leak (added x_log_free)
		
	* src/gschem.c: Added some free()'s for some vars which were allocated
	  but never freed (in gschem_quit)

1999-10-09  Ales Hvezda  <ahvezda@geda.seul.org>
	
	* src/gschem.c: Added full path to page_filename (if filename doesn't
	  start with a / 

	* src/x_log.c: Added x_log_init to deal with the chdir gschem is doing
	  now

	* src/x_fs.c: Lots of work to get file selection dialog box to work
	  with saving

	* src/i_callbacks.c: Changed saveas and open to use new fileselect
	  dialog box

	* src/x_filesel.c: Removed file from Makefile.am

	* src/x_dialog.c: Added x_destroy_window 

	* src/x_fs.c: Made sure you can't open up a directory

1999-10-05  Ales Hvezda  <ahvezda@geda.seul.org>

	* src/x_fs.c: Changed filter entry to a filter option box 

	* examples/filter_1.sch: misc updates (moved some symbols around so
	  that they are connected to the right place)

1999-10-04  Ales Hvezda  <ahvezda@geda.seul.org>

	* src/x_fs.c: Fixed a coredump bug in x_fileselect_update_dirfile 

	* src/x_fs.c: Added "enter key" callback to filename entry 

1999-10-03  Ales Hvezda  <ahvezda@geda.seul.org>

	* Started serious work on new file/component select dialog box

	* src/x_preview.c: New file which hold preview window code

	* src/x_fs.c: New file which hold new fileselect/component place 
	  dialog box.

	* src/x_menu.c: Added File/Open (EXP)... and Add/Component (EXP)... 
	  entries in the top menu bar

	* src/g_rc.c: Added file-preview keyword
	
	* src/g_register.c: Registered above file-preview

	* src/i_vars.c, include/i_vars.h: Added default_file_preview and init 

	* lib/system-gschemrc.in: Added file-preview keyword 

	* In all *.c included defines.h before struct.h

	* src/x_window.c: Added x_fileselect_free_list_buffers

	* Much work still remains on the new file/component dialog box

1999-09-28  Ales Hvezda  <ahvezda@geda.seul.org>

        * src/x_menu.c: Added File/Page Close 
	
	* src/i_callbacks.c: Added code to close the last visible page.
	  Now it opens up a blank page and close the current visible page.

	* lib/system-gschemrc.in: Added hotkey for File/Close Page (fe)

	* src/x_dialog.c: Fixed the color selection menu on the color edit 
	  dialog box to display the right default color (color 1 - white)


9/25/99 Rearranged right mouse button menu (suggestion by Magnus)

9/23/99 Updated all the man pages (in all the program dirs) warning users
	to specify options first.

9/21/99 Fixed all the dialog boxes so that they listened to the WM_DELETE
	signal from the window manager

	Forgot to init iwindow to NULL

	Added a few gtk_widget_destroys to x_window_close which I forgot to
	add when I created the dialog boxes 

9/20/99	Changed the project logo to GPL Electronic Design Automation instead
	of GNU ...

9/19/99 Make sure gschem runs with guile-1.3.2a

	Misplaced a bracket in x_event.c (gschem would not build if you
	did not have libstroke installed)
	
	Fixed all warnings

	Added OBJ_BUS and OBJ_PIN to the color change routine in the
	color edit dialog box

9/18/99	Increased world size to be much much larger.  Hopefully this won't
	break anything.

	Fixed the extension code in i_callback.c to add the NULL character
	to the right place.

	Removed freestyle color 17, it was unnecessary, the IEC417 symbols
	can use the lock color (15).

	Fixed the grid drawing to draw the grid at the right zoom levels
	(since I doubled the world size)

9/17/99	Put some code into i_set_filename which truncates extra long
	files, so that the window size isn't affected.

	Changed the botton status bar a bit.
		- Removed the "Mouse buttons" label
		- Change the buttons to labels

	Added the "middle-button" keywork which allows you to control what
	the middle button is assigned to do.  (also added keyword to system
	rc file)

	Added code to support the "move" mode of middle-button, which
	allows you to move stuff around by just clicking the middle button
	and moving the object.  This only work on single objects, unless
	you select the objects ahead of time and then hold the shift key
	down and click somewhere OUTSIDE of an object.

	Renamed [left|middle|right]_button to _label

	Simplifed i_update_middle_button with using the new middle_button
	variable

	Added w_current->ALTKEY (so we know if the alt key is being pressed
	or not)

	If middle-button is "action" and you hold down the ALT key, the 
	object will be copied instead of moved.

	Fixed the RETURN_G_RC_MODE macro.  Added a number of entries 
	parameter (size), since gschem was core dumping when you passed
	an unknown string to the mode functions.  (sizeof(mode_table) 
	was always returning # of bytes, not entries.

	Made the "action" mode the default for the middle-button

	Created freestyle-color which allows the user to create generic
	colors which can be used in the schematic.  This should be used
	with great care, since these colors are not attached to any type
	of object.

	Fixed a bug in the color scheme used by the symbols, using the
	freestyle-color (color 7 which is the grid color, should not be
	used by symbols, created color 17)

9/16/99	Updated all the schematic/symbol opening functions so that only
	sch's/sym's which are not loaded are actually opened up.  If a 
	schematic is loaded and an attempt is made to open it again, gschem
	displays the original schematic

9/14/99	Fixed a really longstanding bug, you could not close gschem by using
	window manager functions, now you can. (Matt Ettus convinced me
	to finally fix this)

9/13/99	Inited hkwindow in all x_window.c and s_project.c (all other programs) 

	Fixed all example schematics to make sure they display the v*-1.sym
	symbols properly

	Remove attribute_1.sch example schematic

	Fixed a keymapping error with show hidden text (renamed show hidden
	text keymap to "n")

9/12/99	Added g_funcs_key_name which is used in the list-keys.scm script
	and in the list keys dialog box
	
	Added g_funcs_key_value which is used in the list-keys.scm script	
	and in the list keys dialog box

	Added g_funcs_key_done which is used in the list-keys.scm script	
	and in the list keys dialog box

	Added x_dialog_hotkeys dialog box

	Added above dialog box to the menu

	Modified Stefan's list-key.scm script to fill x_dialog_hotkeys.
	It's pretty crude, but functional

	Unmodified Stefan's list-key.scm script and moved modified functions
	into gschem.scm

	Added hotkeys for Help/About... and Help/Hotkeys...

	Put a tear off bar on the Help menu

	Renamed Shift H (Help) to h (and change Hierarchy to Shift H) in the
	system-gschemrc file

	Adding net= attribute to the attribute selection list dialog box
	(put net in system-gschemrc.in)

9/7/99	Removed all the stupid function pointers I added yesterday 

	Moved huge chunks of x_color.c into libgeda/src/s_color.c

	Cleaned up the code to reflect the above

	Re created embedded_1.sch (using all_1.sch)

	Finished up the color edit dialog box, by doing some rather 
	questionable casting of int's to int *'s.

9/6/99	Finally fixed the very broken color system, now you can allocate
	any color for any object type (bus, net, background, select color)
		- Created x_color.c
		- Removed all global colors from globals.[ch]
		  Except black and white
		- Fixed up x_window.c, gschem.c to call proper init functions
		- Fixed up g_rc.c to call proper x_color functions
		  Also fixed up g_register.c
		- Added logic bubble color keyword / variable / init
		- Fixed up rc file to use the new system (a lot of cleanup)
		- Added zoom box color keyword / variable / init 
		- Updated zoom box code to use above color
		- Added lock color keyword / variable / init
		- Made output-background-color an official color
		- A few updates to make the color allocation a bit more robust
		- Created x_color_ps_string which returns the ps string
		- Changed the default select color to orange... 
		- Created ptr for image color specifing 
		- You now get feedback that you specified an invalid color
		
	With the above changes, users MUST update their rc files to use the
	new color scheme.  Things will fail badly if they try to use the old
	system

	Update all example schematic to use the text color (index for that is 
	9)

	Fixed a few -1's in the example schematics

	Almost got the color edit dialog box to work with this new color scheme
	
	
9/5/99	Removed some examples schematic from examples/ directory (moved them
	to the gnetlist/examples directory)

	Created all74_1.sch for testing purposes

9/4/99	Removed some obsolete stuff from include/globals.h

9/3/99	Update g_key to use gdk_keyval_name instead of XKeysymToString

8/31/99	Renamed ntext to text (finally)

	Updated the stroke mechanism to what Stefan suggested.  Much better

8/30/99	Fixed a bug in the print dialog box, where it wasn't setting the state
	of the window to the previous states

	Fixed net stretch to only stretch ONE net for now

	Finally renamed all ALES -> CONN and ales -> conn

8/29/99	More work on getting bus midpoint cues to work

	Added bus_gc for bus cue drawing

	Fixed some bugs related to the visual bus cues

	Removed all warnings from the code

	Disabled bus stretching... still doesn't work

	Fixed stretch_start so that it doesn't try to start a stretch on
	an unsupported object

	Commented out the ps/png extension code in i_callbacks.c till it's
	debugged (next release)

8/28/99 Lots of work to get bus midpoint cues working

8/27/99 Set the program version to 19990829 to force Ales to release
        on the 29th :)

	Updated all *.c and *.h files to have the right address for the
	FSF in the copyright/licence header

8/20/99	Fixed a really really subtle bug in i_sbox.c wasn't checking for
	the head node.  This bug causes some rather nasty coredumps.  
	Hidden for so long, because of the way the selection head node
	was being initialized in the new leaner object creation scheme.

	Finished up the below dialog box cleanup

	Changed the image size from 1280x1024 to 1280x960 in the image/png 
	creation, 1280x960 is the right aspect ratio.

	Temporarily disabled the extension replacement code in ps and image
	creation till it gets fixed.  Default filename: output.*

8/19/99 Added x_create_dialog_box which is basically just like gtk_dialog_new
	but will hopefully clean up the code and this will work on the 
	Windows platform.

	Replaced all instances of gtk_dialog_new with x_create_dialog_box

8/18/99	Added output-capstyle keyword which control the cap style for
	postscript output

	Added the idea of an invalid connection to pins
		Added o_ales_draw_invalid which draws the invalid cue
		Added code to o_pin to use above new function

	Removed some old code from o_ales.c

	Fixed a minor bug when writing an image, wasn't removing .sch
	from filename

8/17/99	Started adding bus object
		Added all bus base code
		Update system-gschemrc.in file

8/12/99	Fixed inconsistant naming of some g_key_*/i_callback_* functions
	(pointed out by Kazu Hirata, thanks)

	Started integrating crude net stretch code into the official devel
	source tree
		Added o_stretch.c to dist
		Update x_states.h to include STRETCH event state enums
		Added o_ales_find_closest
		Added stretch callbacks (i_callbacks/g_key_*/x_menu.c)
		Added event state machine code (x_event.c)
		Added key to keymapping in rc file
		Filled in some missing functionality

	Finish getting the above net stretch working, mostly.
	
8/5/99  Added some stuff to configure.in for win32 builds

	Added some misc #ifdefs to support the CYGWIN32 port

8/3/99	Added net-consolidate keyword to the rc file, controls if the
	net consolidation code is used or not.

	Fixed a very minor bug in x_attrib.c (dealing with order of which
	attribute combined name/value string)

	Upgraded to libtool 1.3.3

	Due to the unfinishedness of net consolidation, it is turned off by
	default

8/1/99  Removed my_strdup() from i_vars.c and o_comples.c. (by Kazu Hirata)

7/31/99 Cleaned up *.c. (by Kazu Hirata)

7/27/99	Added o_net_consolidate_segments to o_net_end (so that when you 
	draw nets, you get the minimum number of net segments (if possible))

7/25/99 Cleaned up r_gc.c and i_callbacks.c. (by Kazu Hirata)

7/21/99 Found an attribute in test_verilog.sch to be attached to two
	objects, fixed.

	Removed all traces of s_passing.h

7/16/99 Cleaned up i_sbox.c and i_vars.c o_ales.c (by Kazu Hirata)

	Increased world coord space to 120x90, don't know if there are any
	side effects of this.

	Increased the max zoom factor to 256

	Changed x_grid to be draw grid the grid at a larger zoom factor

	Reverted back to previous world coord space, adjusting above to
	match.  Not ready for a change yet.

7/15/99 Added support for libgdgeda 1.6 (mainly means searching for libpng)

	Removed all traces of old libgdgeda 1.5 gif support replaced it with
	png support

	Changed menu name from Write Image... to Write PNG...

	Minor bug fix in the x_image dialog box code (o_redraw_all in the
	wrong place)

7/14/99 Wrote functions to handle file name extention in i_callback.c.

	Fixed a memory leak in g_funcs_print(). (by Kazu Hirata)

7/13/99 Cleaned up i_callbacks.c (by Kazu Hirata)

7/12/99 Moved the core of a_pan into a_pan_calc

	Implemented the zoom and pan to where the mouse is (center at the
	current mouse location).  Only works with the hotkeys.

	Added i_callback_*_zoom_in_hotkey and *_zoom_out_hotkey

7/11/99 Chnaged the return values of the Scheme functions in g_*.c from
	0 and -1 to #t and #f.

	Cleaned up gschem.c and i_basic.c. (by Kazu Hirata)

7/11/99 Cleaned up a_pan.c, a_zoom.c, g_key.c, g_funcs.c. (by Kazu Hirata)

7/10/99	Updated a few places where it's important to call set_window
	(part of the math speed improvements)

	Put in code that controls if text is either: xored (completely drawn)
	when doing a copy/move/place (the outline that's dragged) or
	a simple line is drawn.  This makes the placing/copying/moving of
	large symbols faster

	Added an rc keyword to control above: text-feedback
	(either only-when-readable or always)

	Added text-display-zoomfactor to *rc file (control at which zoom factor
	text is displayed completely during operations like copy/move/place)

	Removed some // comments (should not use // comments in general)

7/6/99 	Didn't really disable libgdgeda when using --disable-gdgeda
	Now fixed.

7/5/99	Added in manually configure.in patch Manu provided to help in his
	rpm building procedures

	Added pintype to attribute-name list in system-gschemrc

	Slightly rearranged attribute-name list

	Fixed all warnings

	Fixed some misc problems in configure.in (missing if test to make sure
	libgeda-config was found)

	Got configure.in to be almost identical to gnetlist/configure.in

	Updated man page a tiny bit

7/4/99	Added updated test_verilog_1.sch to the dist from Mike Jarabek

	Added an options menu to the image write dialog box

7/3/99 	Went through all sample schematic and removed all zero length/etc...
	objects

7/2/99  Fixed the ./configure stuff dealing with libgdgeda so that it works
        when libgdgeda isn't installed in a system directory

7/1/99 	Removed the libgd #include from all files (not needed)

	Fixed some stuff in configure.in (typos)

6/26/99 Fixed a bug dealing with the font-directory/scheme-directory/etc...
	which broke opening up a second window

	Fixed a visual annoyance: Place lots of components and inbetween
	each place there would be a redraw.  Not necessary.  Fixed.

6/25/99 Added the rc keyword "image-color" which controls if image is
	in color (enabled) or black and white (disabled)

	Added the start of mouse button pan.

	Added 'third-button' keyword to rc

	Added support to configure to look for optarg and friends otherwise
	include the right externs...

	Forgot to add the hotkey for Edit/Show Hidden Text

	Removed all traces of GTK_DEVEL

	Got mouse pan working, with the exception of the once it crashed my
	X server

6/24/99 Made the Image write dialog box go away once you pressed write

6/23/99 Added the first bits of support for the writing of images

	Added configure ability to find and turn off libgd support

	Added image-orientation keyword to control the future ability
	to write portrait and landscape images

6/19/99 Fixed a bug where you would select something and then visual
	cues would disappear when you hit redraw

6/10/99 Added support for this idea that hidden text is NOT created, main
	changes were in the hidding and unhidding of text items

5/31/99 Found a minor bug in move, not all nets were being redrawn

	Worked a bit more to reduce the flashing of nets/pins when a complex
	is moved

	Put a redraw in o_delete, just to make things look better after
	something is deleted

	I think I got the flashing (when doing move's under control now)

	A few updates to the sample schematics

	Added agile-vfo-block.sch to the dist finally (as an example schematic)

	Added the ability to change colors of objects from within gschem
	(finally)

	Added hotkey assignment for above dialog box

5/29/99 Worked some more on the copy operation for nets

	Added o_redraw_real (which redraws all objects given a list which
	might not be the real objects)

	Started updating the conn hash table in when nets are being drawn
		Added o_ales_draw_objects
		Added o_net_ales_erase
		Added o_net_ales_draw

	More updates to getting copy/move/rotate/mirror working for nets.

	Got copy/move/rotate/mirror working for nets only.

	Worked on getting copy/move/rotate/mirror working for pins

	Worked on getting copy/move/rotate/mirror working for complex
	objects (with contain nets/pins)

	Got pins to properly update visual cues when they are being drawn

	Got the adding of a component to update the nets properly

	Started removing the dead code from the previous connection scheme

	Tried to improve the "flashing" of net cues when you move something,
	but did not succeed.

	Added the show all hidden attributes function (useful with the new
	ability to have toplevel hidden unattached attributes)
		And everything required to implement the above

	Fixed that stupid log problem where if you couldn't open the log
	the log window would lose it's mind (fixed by disabling logging
	if you can't read/write the log file)

	If logging is off or disabled, don't show the log window on startup

5/28/99 Got ./configure working with gesym-config

	Misc integration work

5/16/99 Changed most #include's to include stuff from <libgeda/...> since
	libgeda is now totally seperate

	#include some missing includes (in g_rc.c)

	Removed -I../include from the Makefile just to force all includes
	to be included using a ../include path or libgeda/...

	Fixed up ./configure to use libgeda-config

5/99	Removed all traces of the old connection system
	All removals should be tagged with either CONNECTION or CONN

	Added new connection (called ALES and st_ales) structures

	Got gschem to use the includes from libgeda package

	GTK+ 1.2.x is now required due to the use of
	g_hash_table_lookup_extended

	Got misc callback to print out hash table structure

	Started work on getting delete to delete nets properly

	fixed old bug when you cancelled the drawing of a net, prog would
	erase too much

	started work on getting copy to copy nets properly

	Got gschem to properly update with nets

	added comma key to gschemrc files

	Removed all conn stuff from include/struct.h

---------------- Development division starts here --------------------------

5/16/99 Removed some redundant labels from the coord window

5/14/99 Fixed an old bug dealing with the erase of the draw in progress net
	(erased way too much)

5/9/99	Removed some redundant code from o_move.c

	Fixed log-window keyword code to work with the later option.
	(didn't work at all)

4/18/99 Added some #ifdefs to the coord dialog box so that it compiles under
	gtk+ 1.0.x

	Make sure cowindow was being set to NULL.
	(caused a core dump otherwise)

4/17/99 Fixed coord dialog box to look right

4/15/99	Added coord dialog box

	Added callbacks for above

	Added hotkey (oc) for above

4/11/99 Added some more debugging information when reading in the .scm file

	Made the log window startup when gschem is run (updated all *rc files)

	Added log-window keyword which controls if the log window is opened
	when the program starts up

	Added the ability to make the log window transient or not
	(configurable through the log-window-type keyword)
	(only works with gtk+ 1.2)

4/9/99	Fixed Makefile.am so that gschem.1 is installed

3/27/99 As a request, added a default keymapping (Delete -> edit-delete)

3/25/99 Removed all traces of i_callbacks.h from the C files (haven't removed
	the actual include file yet)

	Changed x_window and x_menu so that those warnings about menufactory
	disappear (by using itemfactory with gtk+ 1.2.0)

	Involved adding the appropriate new functions to x_menu.c and
	modifing x_window.c

	Got rid of warning messages when you start up gschem

	With the new itemfactory stuff from gtk+ 1.2.x you can now have
	tear off menus

	Got the passing of callback data working with the menus

	Got all the popup menu i_callback_* functions to use the new callback
	parameter passing order

	Got all menu structure to work with the gtk+ 1.2.0 itemfactor
	(major pain)

	Went through and add the proper parameter passing order to *ALL*
	i_callback calls (major pain)

	Found that g_key_edit_mirror was calling the wrong i_callback function
	Fixed.

	Added some functions to x_pagesel to wrapper the i_callback_ functions
	since these i_callback_ functions were used a button click callbacks
	which take a different (the old one) function prototype.

	Missed a reference to a callback (last_callback) which is a pointer
	to a callback function, it too needs the new function prototype

	Changed the default text size in the C code to be 10, (it was 8,
	which was a really really old default value) rc file is the same as
	before (size in there is still 10)

	Added the ability to change the text size; added this to the
	Edit/Edit... dialog box

	Text size and snap size and (as before text edit) dialog boxes
	once again grab the focus for the whole app.  This is because
	they share common variables

3/23/99 Added a menu option Help/About...

	Added callback/dialog box for above

	Put the code back into use which right justified Help menu option

3/21/99 Added code to warn the user if he/she tries to translate a symbol
	and the snap_size is not set to 100.

	Minor cosmetic changes to gschem.1

3/19/99 Fixed changed flag so that when you do some attribute associated
	actions, you are prompted for a save instead of just quitting

	When opening a symbol using hierarchy, filename at the bottom
	wasn't being set right

3/18/99 Updated g_rc_parse to use new macro for system-gschemrc file

3/17/99 Found one more instance of a uninit-ed variable (pwindow)
	(Thanks to Jeff McNeal for pointing out that things were not working
	 under Solaris)

3/10/99 Fixed usage output to be somewhat more accurate

2/26/99 Fixed some labels since we are no longer supporting gtk+ 1.1.x

	Removed some duplicate strokes from the gschemrc's

	Made the stroke output (when running with the -t flag) a bit cleaner
	(and hopefully clearer)

2/25/99 Added stroke_info_mode (enabled with -t flag) so that users can get
	stroke related info

	Misc warning updates (missing prototypes)

2/12/99 Removed the o_ntext_free_all from x_window_close (actually just moved
	it so that it only is called once, when you quit)  The call is in the
	right place now

	Added x_stroke_free_all which just frees all remaining stroke
	points

	Fixed a major bug dealing with multiple windows and the freeing of
	several common (rc strings) variables, which caused some bad behavior

	Added some more space to the above variable mallocs,
	since ccmalloc seemed to have some problems dealing with them,
	and there was enough space for the strings + null (there is now)

	Discovered why sometimes if you close a window you lose any
	subsequent log message (it's because I was closing the log file in
	the wrong place), fixed (the call is in the right place now)

2/11/99	Added call to s_stroke_free in gschem_quit

	Forgot to set the mode label to Select mode after a zoom box, fixed

	Added stroke sequence printing if verbose mode (-v) is on

	Added x_stroke.c which contains routines to record and erase the
	stroke points

	Changed it so that stroke points are only erased when a valid stroke
	is found.  Leave invalid strokes around

	Added some more basic strokes to gschemrc

	Put back middle button repeat for when strokes are enabled.  Holding
	down the control key and pressing the middle button executes the
	repeat command.

	Added "Stroke/" to the middle button repeat button label (only if
	strokes are enabled)

	Added stroke-color keyword (controls color of the mouse droppings)

2/9/99	Started work getting stroke support into gschem (using LibStroke)
		Added stroke_init to gschem.c
		Put a #ifndef ... around some code in i_basic.c
		Added most basic support to x_event.c
		Added stroke keyword to rc files
		Added s_stroke_search_exeecute to x_event.c

	Started adding most basic strokes to gschemrc

1/31/99 Made postscript font text ouput the default (output-text "ps")

	Updated page manager to work with gtk+ 1.1.x (scrolled window works
	better, but not 100%)

1/24/99 Added a read/execute guile script option (-s script_filename)

	Added a script file selection dialog box (for executing scripts)

	Added menu option and keymapping for File/Script Execute...

	Added global variable global_window_current, which will be used by
	various guile functions, since they have no idea which window they
	are executing for/in. (careful with multi windows anyway)

	Added command line flag -o (for specifing output an filename)

	Added file g_funcs.c which will hold basic guile functions

	Added gschem-print, gschem-exit, gschem-use-rc-values guile functions

1/23/99 Finally changed where the rc file(s) are read -- before the window
	is created.  This allows for much more flexiablity in the user
	interface

	Found most of the bugs in above (I hope)

	Did some further rearranging in x_window.c so that above works better

	Added "scrollbars" keyword to the rc file, which controls if scrollbars
	are displayed or not (default will be on for now)

	Added "output-orientation" keyword to the rc file, which controls the
	default page orientation (landscape/portrait)

	Added support for portrait postscript printing to the print dialog box

	Changed the radio buttons (for print output type, limits/window) to be
	an options menu instead, much cleaner.  Added some labels

	Fixed a minor bug in above (wrong label being displayed)

	Added "output-color-background" keyword for controlling the
	background color in postcript output (also added supporting code)
	(letter size sheets ONLY)

	Added "output-color" keyword for controlling if postscript is color
	or not

	Added "output-type" keyword which specifies "limits" or
	"current-window"

	Renamed keyword "text-output" to "output-text" just to be consistant
	Might eventually change output to postscript

1/21/98 Added a message to the start of gschem about the warnings when
	using gtk+ 1.1.x

1/12/98 Worked on x_attrsel.c and x_print.c to get them gtk+ 1.1.x
	compliant.

1/10/98	Spent some time working on the scrolled_window changes in
	x_compsel.c for gtk+ 1.1.x, still needs some work though

1/9/98	Started integrating patch for 1.1.x (provided by Egil Kvaleberg)
	 (using GTK_DEVEL #define)
	 	GtkAcceleratorTable -> GtkAccelGroup (x_menu.c)
	 	GtkAcceleratorTable -> GtkAccelGroup (x_window.c)
        	gtk_window_add_accelerator_table ->
		  gtk_window_add_accel_group 	     (x_window.c)

	 Added a few #include <math.h> where they were missing (compiler
	 warnings for fabs)

1/06/98  Fixed some code in o_erase_* where a constant instead of a variable
	 was being used for a color (BLACK -> w_current->background_color),
	 pointed out by Anatole Sokolov

1/05/98  Incorperated negative grid point display patch by Mike Jarabek

	 Found and fixed (I think) a bug with displaying schematics for
	 the first time (after a load), display wasn't being zoomed limits
	 if there where coordinates with negative values (display will not be
	 zoomed properly, since negative values are not supported for
	 scrollbars)

12/29/98 Changed x_grid_draw to draw to backingstore and then copy that
	 to the drawing area, hopefully that'll speed things up when gschem
	 runs over a lan?

	 Commented out the above code, need to due some further testing.

12/15/98 Fixed line/pin/net to deal with the real clipping code

	 Now all line related objects are being clipped, fixed the
	 disappearing lines/nets/pins when zoomed in really close

12/13/98 Integrated Jeff McNeal transparent zoom/pan patch.  It works,
	 but it still needs some work, since panning and zooming while
	 drawing nets/pins leaves xor droppings

	 Added pin-color to gschemrc file.  For some odd reason was missing.

	 Also found another bug which was causing the pin color to be saved
	 as -1, fixed

	 Added File/Save All menu option and hotkey to save all documents
	 and not bother asking.

	 Added code to o_complex_end to support the concept of an included
	 component, which basically is the inclusion of all the pieces of
	 a component so they can be edited.  Useful in symbol creation; you
	 can reuse other components.

	 Changed the add component dialog box to allow for a selection between
	 the default, embed and now include ways of adding components.
	 I don't like the way it works, so I'm probably going to go with a
	 option menu instead of radio buttons

	 Changed the above radio boxes to an option menu, much cleaner looking

	 Found a place where I was trying to strcpy into a NULL rc_filename
	 doh!

12/10/98 Finished adding the first step for autoconnect to the nearest
	 net point

	 Added o_conn_search_closest to search inside complex objects for
	 the nearest pin

	 Added an event_state = STARTDRAWNET to i_callback_add_net_hotkey
	 to make the o_net_start connection code work

	 Added o_conn_search_closest_range to search for the nearest pin/net
	 with range

	 Removed the net snapping stuff for now, it still needs a lot of work.

	 Added command line argument -r (which specifies an rc file after
	 it tries to read all the other standard rc files)

	 Finally make rc_filename a pointer instead of statically allocating
	 the space

12/9/98 Changed how circles are drawn, specify center point and then the
	radius.  o_circle_start, o_circle_end, o_circle_rubberband
	Includes a line which shows the radius of the circle when you
	rubberband

	Changed the way the width of pins and nets is determined, now using
	the SCREENabs routine when drawing thick pins/nets

	Fixed the way the size of the endpoint/midpoint cues is calculated
	(o_conn_*)

	Minor circle cleanup: made sure radius is multiple of grid snap if
	snap is on; made sure final circle is drawn on backingstore

12/8/98 In order to fix the bugs below, have to rewrite some circle code,
	integrated changes to deal with struct.h changes and libgeda changes
	(o_circle.c)

12/6/98 Found the reason why dist was working all this time.  Another bug
	with adding in a circle, o_circle_end, sending the wrong coord into
	the add function (dumb luck circles ever worked)

11/15/98 Changed the way the print dialog box works, no longer grabs the
	 application focus.  You can leave it open and print whenever you
	 want

	 Changed the size of the visual cues for nets (in o_conn.c)

11/10/98 Changed a label in the print dialog box: "Current Window"

11/8/98	Found a bug when drawing single point lines (ie line as zero length)
	Fixed by adding a (few) call for draw point in o_line_draw,
	not sure that's the best solution.

	Added zero length error checking code to all primative objects
	( interesting side effect, you can end net draw by drawing a
	  zero length net and that stops the action )

	Removed some code in o_arc.c which erased the rubberband line
	incorrectly

	You could segfault gschem by inputing a null string (nothing) and
	then hitting apply and drawing over to the drawing area.  Fixed by
	moving x state change code inside the if "check if not null"
	(attribute add is okay)

11/7/98 After applying text input, highlight the selection in the dialog box
	(changed to behave this way)

11/6/98 Added some checks to prevent gschem from core dumping when you hit
	one of the special "microsoft keys"

	Added code to handle the new papersize list

	Added x_print.c (the printing dialog box) and supporting code

	Added paper-sizes keyword to rc file

	Added print_output_type init in i_vars.c

	Called new dialog box from i_callbacks_print

	Added some ... to the Print entry in the pulldown menu

	Got print dialog mostly working

	Added many entries in the *rc files for page-size and page-sizes

11/5/98 Added paper-size to gschemrc file (changes to g_rc, g_register)

10/30/98 Cleaned up (indentation, long lines) a_zoom and a_pan code a lot

10/28/98 Rearranged View menu a bit

	 Applied patch by Manu for a_zoom_limits

	 Had to make minor modifications to make above work on all cases.

10/27/98 Started to add zoom box code (a_zoom_box_*)

	 Modified x_events.c and associated files to support above

	 Finished off a_zoom_box_start/_end and the actual work function
	 a_zoom_box()  I think this works okay, but it's not perfect.

	 Added hotkey zoom-box version and added key to keymaps in the
	 *rc files

10/25/98 Cleaned up all warnings

10/24/98 Added slotting update to rotate/mirror code.

	 Got keyboard shortcut implemented for the slotting

	 Re arranged the edit menu

	 Changed a few of the status lines in the copy/move (and hotkey)
	 callbacks

10/22/98 Added code in o_read to update the slot if the last read object
	 was a component

	 Added o_attrib_slot_update in o_copy_end

	 Added code to o_copy_end to deal with slotting (ie copy the info
	 from the object that is being copied) and the selection list

	 Updated o_slot_end to use the new o_attrib_slot_update

	 Added o_erase_single, just as a function to make life easier

	 Attempted to get the slot= attribute to be update and drawn
	 correctly if it is visible.  This does not work right yet.

	 Got the first working version of the slotting done

	 bug: Old component outline not being erased if you select a new
	 component from the list (pointed out by Patrick Bertholon, thanks)

10/20/98 Added Stefan's and thi's latest gschem.scm
		- repeat-last-command doesn't cause a stack overflow
		- bit more paranoid code.
		- last-command-sequence (holds what it says)

 	 Change rc file guile primative version to gschem-version

10/18/98 Added callbacks for change Slot... code

	 Added o_slot_start which starts the change of a slot number

	 Added dialog box for slot editing...

	 Added o_slot_end which finished up the slot number change operation

	 Split up some of the bigger functions in a_basic.c into o_move.c,
	 o_copy.c, o_slot.c, and o_delete.c

	 Worked some on o_slot_end, slot attribute value is being changed
	 and added if needed as of today, but schematic not reflected.
	 (to be finished later..)

10/17/98 misc minor fix to the rc file (text-input "ps")

	 Applied patch by Roger which added variable snap spacing.

10/15/98 Increased the size of the component select dialog box

	 Display ONLY symbols with the extension .sym, this implies that u
	 symbols must end .sym to be displayed

	 An attempt fix the arc bound box code of arcs, doesn't quite
	 work 100%.

10/12/98 Added device attribute to the list of default attributes in the rc
	 files

	 Finally fixed an outstanding bug in the arc drawing/adding etc...
	 (this fix might have broken arcs, but so far it looks good)

10/11/98 Added parsecmd.c (command line argument parsing)

	 Simplifed the loading of schematic pages and incorperated above

	 Added quiet_mode and verbose_mode to the command line arguments
	 as well as the usage() function which exits

	 Removed all warnings

	 Added "graphical" as a default attribute in the rc files

10/9/98 Removed some #if 0 code and did some minor code cleanup

	Fix an asthetic problem (misc pin/net droppings in lower left
	corner when doing mirrors/rotates)

	Added thi's improved gschem.scm (not fully using all the new stuff
	in there yet)

10/8/98 Worked some more on mirroring of complex objects, almost got it
	completely right except for text inside complex objects

	I got the above fixed (with really ugly kludge) :-( will eventually
	get it totally fixed once I figure out how to flip/rotate text
	in place.

10/6/98 Added code to deal with mirror of complexs (mainly change to
	complex_add)

10/5/98 Added o_mirror (and all required support code, events, i_callbacks...)

	Added *_mirror_hotkeys

	Added g_key *mirror code

10/4/98 Changed default size for a 800x600 sized display

	Added text-output keyword to control how text is rendered

10/1/98 Fixed all warnings

9/29/98 Today starts the new release system: 19980929

	Added code to properly keep attached attributes attached when you
	rotate a component

	Fixed a bug that was causing text to be saved twice (once as an
	attribute and once as a regular text item).

0.0.5
-------
9/27/98 Discovered that selection_tail wasn't being set to tail in o_select
	Fixed.

	I think I got my kludge for rotating complex objects done.  Need to
	de-kludge it one of these days

	Found a bug in o_complex_end, where the selection tail and the prev
	pointers where not being set

	Fixed the same bug in o_ntext_end

	Found/fixed a really nasty old bug in o_unselect_all where
	selection_tail wasn't being update at all

	Found/fixed a whole bunch more places where selection_tail
	(in o_select_*) wasn't being update (ie it was dangling)

	Fixed a bunch of places in the i_callback functions where the middle
	button short cut key wasn't been set to the hotkey version of the
	function

	Added selection_list code for rotating complex objects (ie once a
	complex is rotated, it stays in the selection list)

	Went back and change Edit/Rotate Primative to Edit/Rotate 90 in
	all applicable locations (x_menus, g_*, gschemrc.in files)

	Added code and a message stating that rotating an embedded component
	isn't possible yet. (it should be, but I'll worry about that later)

	Changed default pan behavior when you select it from the hotkey--
	it pan using the current mouse position as the center

	Set zoom_scale to a constant in the code which determines whether we
	are drawing an sbox or just selecting single object

	Found a few more misused selection_tails in o_attrib (tag new ales)

	Go rid of net que droppings being left behind by rotate

	Added needed function call so that nets and pin associations are
	recalculated after a rotate

9/25/98 Worked some more on o_rotate (a_basic)

	Missed a zoom_scale/factor bug dealing with sboxes, you couldn't
	draw an sbox at high zoom factors.  Now fixed, by removing multipler

	Removed all attempts at getting complex's rotating... that will
	be handled differently.

	Removed some dead code from i_callbacks.c (old ntext stuff)

	Changed o_rotate to o_rotate_primatives (fixed in all places)

	Changed menu option and rc files edit-rotate to edit-rotate-prim
	Edit/Rotate Primative

	Successfully intergrated rotate ntext into the o_rotate_primative
	command

9/21/98 Minor gschemrc changes (keymapping fixes)

	Fixed a minor asthetic bug dealing with placing text and seeing a
	ghost image of the newly placed text (erase the bounding/outline box)
	(Migrated change to attribute place as well)

	Fixed a minor bug with the keymapping code, modifiers are no longer
	passed to the guile code

	Made the default select color grey

	Added ENDROTATE define to x_states.h

	Added i_callback_edit_rotate, g_key_edit_rotate and the guile
	register function

	Started changing rotate and "Add *" functions to start their
	actions the moment the hotkey is pressed

	Started adding code and support functions for edit-rotate (not
	finished yet)

	Fixed o_rotate to at least call the various o_*_rotate funcs

9/19/98	Added a few more hot key defs into the rc files

	Added no-action guile function to gschem.scm

	Changed 3rd button cancel for all modes (net/box etc..) so that it
	changes you into select mode

	Changed the way text is placed.  Now it is similar to the way
	attributes are placed (dialog box comes up, type in text, move and
	place text)

9/18/98 Adding code to do the move/copy action change (action
	starts right away after mouse press

	Added edit-move-hotkey and edit-copy-hotkey to take above change
	into account (changed rc files as well)

	Renamed paper-size to world-size to reflect that paper is no longer
	specified in the same fashion

	Fixed the lack of scrollbar updates when you don't specify a schematic
	to be loaded

9/17/98 Added the modifiers (Alt, Shift, Control) into the string which
	is passed to the guile key lookup routines

	Fixed/Added a few misc items to the keymapping in the rc files

9/13/98	Added some feedback (loading message) if you specify schematics at
	the commandline

	Added scheme-directory keyword (and supporting code) to the rc file

	Disabled all GtkAccelerators in x_menu.c

	Added g_key.c (support functions of guile key mapping support)

	Added all menu callback functions to g_key (as g_key_*)

	Added gh_register functions for above (g_register.c)

	Deleted ifdefd out keymapping code in g_rc.c

	Added gschem.scm file which has scheme code for keymapping

	Added data structures to support scheme keymapping (gschemrc.in)

9/12/98 Added Zoom Limits option (and underlying code)  experimental

	Started preliminary change to make zoom_factor represent the
	magnification, not the zoom number (how many times you zoomed in)

	Changed zoom functions to take above into account

	Changed o_conn functions to use return_zoom_number (in libgeda)
	Also fixed o_pin and o_net thickness

	Changed x_grid to use return_zoom_number -- also new grid spacing
	for the different levels, also experimental

	Changed default page-size to be big, this will change to world-size
	soon.  Made most necessary changes to accomodate this.

	Found a very very serious bug when the above change was made
	(copy/move of objects wouldn't copy complex vs nets/pins correctly)
	Fixed by making all *_translate -> *_translate_world (in a_basic.c)

	Spent some more time getting size of endpoint cues and friends
	to look right

	Added a a_zoom_limits call when schematics are opened from the command
	line and from the file dialog box

	Added a few experimantal DONT_REDRAW lines to see if I can prevent
	the drawing of schematics and connection points when gschem comes up
	(and when you open schematics)

9/4/98	Added a few more libgeda/prototypes.h in a few missed files

	Moved f_print.c to libgeda

	Moved a few misc routines back and forth between gschem and libgeda

	Renamed some routines to take into account the vectoring of some
	functions in libgeda

	Extensive work here and libgeda to get rid of all prototype related
	warnings

	Playing some games with the o_pin_conn* and o_net_conn* functions
	(and revectoring) to see if I can improve the look of reading in
	of schematics

9/3/98	Major code reoganization with the new libgeda

	Fixed a bug in o_box, where the new recalc routine wasn't setting
	some local variables (shouldn't have been using the vars anyways)

	Removed Add/NEW text menu item (old test code)

8/31/98 More bug fixes to the copy attribute change.
		. o_ntext_copy does not handle attributes now, it is handled by
		  who ever called it
		. o_list_copy_to and o_list_copy_all now take a flag which is
		  either NORMAL or SELECTION (we don't want to do attributes)
		  when we are adding stuff to the selection buffer
		. Text is copied (o_list_* and o_copy_end routines) last to
		  make sure that all the attribute recieving objects exist
		  in the list

	Fixed another attribute which changed color (to red) at the wrong
	time (basically all text was changing color, eventhough it wasn't
	supposed to) (fixed in o_copy_end)

	Divided the x_create_drawing into the drawing function and a function
	which sets up the events (x_window_setup_draw_events)

	Added a check to make sure a widget wasn't null in i_set_filename

	Added a check to make sure a widget wasn't null in x_hscrollbar_update
	and x_vscrollbar_update

	Created x_preview.c, a highly temp file demonstrating the preview
	capabilities (removed from dist for the time being)

8/30/98 Added support for embedded symbols in schematics
		loading / saving / copying

	Added o_embed (embed all object which are selected)

	Added callback for above and menu option "Embed"

	Added o_unembed (unembed all object which are selected)

	Added callback for above and menu option "Unembed"

	Added embed_complex flag to window structure

	Added default_embed_complex to i_vars.c

	Added checkbutton to component place dialog box for embedded
	components

	Added embed-components to gschemrc file

	Robustified the condition if you cannot unembed a component because
	it was not in the path

	Propagated p_text_string[0] = '\0' changes from gnetlist to gschem

	Propagated head node attribs->object change from gnetlist to gschem

	Started to fix attribute copy problem which has existed for a long
	time (ie attributes were not being copied) (this is highly unstable
	I think)

	Fixed a bug related to the above attribs->object change, bug was in
	detach routine, making the original object all red...

	Continued to fix bugs related to attribute copy fix, several
	in o_list_copy_* and in other places, seems to work now, but highly
	experimental

	Changed the way copies are handled.  First all non text items are
	copied and then text items are copied.  This is for the attribute
	copy code, the text copy is the final stage for attribute copies so
	it has to happen last.

	Put code back in that make floating text which was an attribute, but
	no longer the color red.

8/29/98 Added complex_parent pointer to object structure

        Added code to fill above pointer

8/27/98 Made some further improvements to the grid code so it uses less
	memory, but is still faster then drawing one point at a time

8/26/98 Changed the grid from drawing one point at a time to drawing all the
	points with one call (gdk_draw_points)

	Changed the max zoom factor to 8 instead of 4

	Fixed a bug dealing with different paper sizes and the scrollbars
	(max value on the scrollbars was being set incorrectly)

8/9/98	Added page-size keyword to the rc file (lets you specify the size of
	the drawing area)

8/8/98	Removed old OBJ_TEXT primative (replaced by OBJ_NTEXT)

	Changed OBJ_NTEXT's key code to T (was E so that it could coexist with
	OBJ_TEXT)

	Fixed a minor bug with symbol translate and the new text.  Basically
	the origin point wasn't being translated, object were, but not that
	one point

	In the code, changed font def files from .sch to .sym

	You should not symbol translate with the snap off, so put in warnings
	to log and snap is automatically turned on.  Might change this later

8/7/98	Slightly robustified the reading in of font defs, if char isn't found
	then use something else (only then do you exit)

	Fixed a minor bug where copying an attached attribute didn't change
	to the detached attribute color

	Fixed a bug in o_list_copy_all (new routine) which was nuking the
	ADDING_SEL (per window variable).  Fixed it by saving contents before
	calling o_list_copy_to

	Fixed a really old bug in o_text_print (and the new routine for
	ntext).  Invisible text was getting printed (oops)!

8/6/98	Fixed stupid core dump related to freeing a already freed string

	Fixed g_rc_font_directory to be implemented correctly

	Changed text_input dialog box to call new o_ntext routines

	Changed text_input read and save to actually work

	Added OBJ_NTEXT support to: o_move_end, o_copy_end, o_delete,
				    o_save, o_read,  and a whole bunch
				    of o_complex/attribute routines

	Fixed up o_ntext_translate, o_ntext_xor_draw o_ntext_translate* and
	the rest of the o_ntext routines

	Redirected end of a text edit to called o_ntext_edit_end

	Fixed o_attrib* so that attributes are the right color (ntext attribs)

	Fixed font_set data structure so that each char has a head.  This was
	needed to make attributes happy.

8/5/98	Added rotate core rotate functions back into source code, not working
	yet

	Added o_line_scale_world

	Added o_line_rotate

	Added o_scale, not done yet

	Added o_rotate, not done yet

	Added/worked on core routines for o_ntext

	Integrated/indented new g_read_file from thi (thanks!)

	Added the keyword font-directory which specify where the vector
	font definitions are contained

	Added font_directory string to the WINDOW structure

	Worked on vector text stuff, getting font_set stuff working

	Added o_list_copy_all

	Added code to free up the font set

8/3/98	Changed startup behavior of gschem (it doesn't set it position to 0,0)
	(basically causes most window managers to prompt for the position)

	Cleaned up o_ntext a bit more

7/26/98 Work continues with a freshly installed Debian GNU/Linux devel box

	Fixed all #include <gh.h> to #include <guile/gh.h>

	Added s_clib_uniq and supporting functions to see if a clib path is
	uniq (if so add it, else don't)

	Added s_attrib_uniq to make sure attribute names (which are specified
	in the init file are uniq

	Changed search order for components.  Components are now searched for
	backwards (ie the last specifed clib path is searched first)

	Changed search order for source.  Source is now searched for
	backwards (ie the last specifed slib path is searched first)

	Finished getting all gschemrc keywords converted to new guile format

7/25/98 Added g_basic.c which will contain basic guile setup routines

	Added code to start up the guile interpreter (gschem.c)
	guile is now *required*

	Removed all calls to f_rc_parse (old init file)

	Added g_rc.c which holds new guile init file functions

	Started converting all f_rc keywords to g_rc keywords

	Wrote g_rc_parse (basically it is f_rc_parse)
	  The order of rcfile reading is now:
	     - system-gschemrc
	     - ~/.gEDA/gschemrc
	     - ./gschemrc
          where latter rc files override previous ones

	Discovered/fixed a bug in o_net.c, net_style wasn't being used
	(accidentally left to pin_style), hence you would always get
	nets which were the same style as pins.  oops

	Removed f_rc.c and lex.l from existance (file and Makefile).  Flex/Lex
	is no longer required

	Work stopped very abruptly as my machine decided to corrupt /etc
	(Perfect excuse to try out debian :-)

7/22/98	A user trying to build gEDA on HP-UX discovered that I missed an rint
	call (it wasn't wrappered by the HAS_RINT define).  Fixed it.

7/21/98 Finally fixed arcs so that any start or end angle arcs print
	properly, involved changing how I handled the translate and rotate
	(used to be scale) in the output postscript

	Put back the filename*.sch -> filename*.ps code when you print to
	postscript.  Even fixed it so that it changes the .sch to .ps or
	if there isn't a .sch extension then just adds it.

7/19/98	Fixed some misc formatting on most case statements (break statement
	now lined up correctly) and some indentation was wrong as well

	When through and added OBJ_NTEXT type

	Stubbed routines for OBJ_NTEXT (in new file o_ntext.c)

0.0.4
-------

7/11/98 Found and squashed a nasty bug dealing with the object clipping code.
	Basically objects that were not visible were not being update (ie
	bounding boxes not being updated) so selections would find fantom
	objects.

	Rearranged some code (bounding box recalc) inside the object draws
	just to be consistent

	Removed the /* PAGE */ tag from almost every file

	Fixed the threshold bug when you are zoomed in really close, now the
	start an sbox or not is based on the zoom scale

	Removed the STARTSBOX state (fixed states.sch appropriately)

	Removed some snap_grids from o_arc.c, these were a hack and I am not
	sure if I broke arcs now.

	Added some s_log_messages in f_parse_rc so you know which rcfiles were
	read

7/10/98 Fixed some minor nits in some comments

	Removed some // accidentally left in

7/6/98	Added x_status.c which implements the status/log window

	Added s_log.c which holds the log file init/write/close routines

	Fixed a few bugs with the logging mechanism

	Added the ability to read the log file from disk when the status
	window is opened

	Added the rc keywords LoggingDestination and Logging to control
	this logging mechanism

	Added a whole bunch of s_log_message calls through the code so that
	the user gets some feedback as to what is happening

7/4/98 	Moved around some of the *visible functions to improve "the detect
	if an object is to be drawn" time (determine if, earlier)

	Added ObjectClipping keyword to control the behavior of the new
	object clipping code (on or off)

	Fixed some minor bugs in the *visible functions

7/3/98 	Added low level clipping routines in m_basic.c

	Added high level routine to determine if object is visible

	Added code in all relavent o_* files to use above routine (execpt
	o_text, which will be added later)

	Changed default scrollbar update policy to be continuous (vs delayed)

	Added ScrollbarUpdate to control above behavior

	Squashed a few bugs related to above

7/1/98	Fixed a minor bug in selection box, causing selection box to erase
	underlying schematic

	Changed open symbol behavior so that the FIRST page of the schematic
	is left display after all the schematic pages are opened.

	Fixed a minor memory leak dealing with the allocation of page_filename

	Fixed a core dump condition (if there was no gschemrc, untiled_name or
	series_name would be null and doing a strlen of a null doesn't work.

6/30/98	Fixed the page manager core dump (open schematic, open page manager,
	open another page (page manager now messed up), click on another page)

6/23/98	Integrated patch by Erick Britis Ortiz which fixed the well known
	selection box problems.  Selection boxes could only be drawn in
	one direction; now you can draw them in all directions.
	Extended patch to work with boxes, so those work as well now!
	A similar patch was provided by Jeff McNeal.  Thanks!

6/21/98	Added series_name variable to WINDOW structure.  This variable
	lets you set a series filename, especially useful when adding new
	pages

	Added series_name and untitled_name to WINDOW structure

	Added DefaultSeriesName keyword to gschemrc file

	Added UntitledName keyword to gschemrc file

	Went through and changed all the places where the above two changes
	would affect.

	Slightly changed where defaults are set and where the rc file is read
	when a new window is opened.

6/20/98	Started working on the Source Library code

	Added s_slib.c (source library)

	Added SourceLibrary keyword to the rc file

	Got basic routines in s_slib working

	Wrote s_slib_getbasename which strips extenstions and trailing _#'s
	from the filename

	Started working on s_slib_search which goes out and hunts for all
	the associated source files

	Squashed a nasty stupid bug in the parse filenames startup code
	was doing: strlen(blah+5) instead of strlen(blah)+5  (still not
	completely correct but close enough for now)

	Squashed another nasty bug, which should have been caught by the
	prototype mechanism, but I didn't update my prototype.h DOH!
	Wrong number of parameters to update_page_manager

6/14/98	Changed the way the CHANGED flag works.  Now you get a single dialog
	box saying that "there are schematics unsaved!".

	You now get one exit dialog for each window instead of the mess of
	multiple exit dialog boxes

	Added back the window grab for exit dialog boxes.

	Removed the SaveAs dialog box when you exit / create a new page /
	open a new schematic

	Modified x_window_close taking in account the above changes

	Modified exit_dialog to be larger and give a more blarring warning
	about unsaved dialog boxes.

	Removed the all tcl support; all of it was experiemental

	Found and squashed a minor memory leak, was allocating a structure
	twice

	Added code to free *all* pages when you exit the program

	Found a minor bug in above code which caused a coredump (w_current->
	page_current wasn't being reset)

	Added very prelim ability to load up *all* specified schematics
	(which are on the commandline) at startup. (try gschem *.sch in ../bin)

	Found a bug in the calling of s_page_free_all, the last parameter was
	not page_tail (it has to be)

	Added back the code which if you hit Save (not saveas) and the
	filename had an "untitled.sch" in it, you would get a SaveAs dialog
	box

	When you create a new filename the cwd is prepended to it.  (that
	wasn't the case till I added the code back to do so)

	Started work on the page manager (nothing more than a dialog box
	which makes dealing with all the open pages easier).

	Added update button and current page tracking to the page manager

	Added num_untitled counter to keep track of untitled pages (for
	uniqueness)

6/9/98	Put an #if 0 around TRUE/FALSE defines in defines.h since gtk+ 1.0.4
	defines these in glib.h now.

	Changed page mechanism so that zoom factor and zoom display is included
	in a per page structure

	Fixed a minor bug when drawing arc and the new page mechanism,
	wasn't setting up the world coord system at the right time (too late)

	Added a check to see if a schematic file exists, if it doesn't then
	do nothing else load the file.  This was causing a core dump.

	Found a few places where the HAS_TCL wasn't and hence gschem wouldn't
	compile (added the HAS_TCL #ifdef).

6/8/98	Did some more testing of the page mechanism.  Still very crude.

	Made it so that open adds a new page, instead of replacing current

6/7/98 	Got core page mechanism working.  Still need to verify free routine
	and decided on how to have pages created deleted.

6/6/98	Put scripting stuff on hold, worked on getting multi page stuff done

 - 3 weeks of no significant work :( -

5/18/98 Started experimenting with tcl and gschem, still not convinced this
	is the way to go.  Will look into guile (and swig)

5/17/98	Started adding support for tcl
		Create interp
		Delete interp

	Started adding multi page support
		Added st_page structure
		Added stub s_page routines

5/16/98	Fixed several bugs in cancel callbacks for most dialog boxs; was not
        setting event_state to select mode, but was setting status label to
	Select Mode

0.0.3
-------
5/10/98	Changed MOVE/COPY/PAN modes so that they DO NOT stay in MOVE/COPY/PAN
	Staying after execution of these modes was driving me nuts.

	Fixed a minor cosmetic bug in the saveas dialog box (wasn't updating
	the filename at the bottom of the screen)

	Fixed a nasty (been there since v0.0.1) with the creation of selection
	lists in o_move_end and o_copy_end.  prev link wasn't being set, which
	caused a segfault in o_attrib_get_name_value

	Found another bug in change_basename (x_compsel.c) which has a holdout
	from pre-multiwindow days (caused a coredump).  An incorrect pointer
	was being passed to the apply button callback (should be w_current).

5/9/98 	Quit now checks the CHANGED flag properly and prompts you to save.
	Still some weirdness with multi window quit and dialog boxes

	Went through the code and changed the interface code so that you
	stay in a mode unless you change modes (there are exceptions to this)

	Added some error condition functions (in call callback and event
	functions)

	Re-enabled the window grab on the text edit dialog box.  This might
	stay this way for a while.

	Fixed a minor bug in x_window_close_all, so that you didn't free
	the window_head node unless next was empty

	Fixed the names of menu items (New/Close Window etc...)

5/7/98	Worked a bit more on the multi window code, getting it solid

	Added a head node to window_head just to make my life easier
	( head nodes aren't deallocated and so window_head doesn't change)

	Fixed a nasty bug with the text size dialog box.  Had a variable
	entry which wasn't inited or used, but was being referenced!

	Fixed another holdover bug (from the days when null entry input
	caused gtk to coredump) in the text size dialog box

5/6/98  Fixed a few memory leaks, there are still a few, but those are in
	gtk/my code that doesn't deallocate resources which gtk provides

5/3/98 	Fixed a minor bug dealing with not having a default for
	override_net|pin_color, which caused problems when gschem
	could not find a gschemrc file.

	Fixed a minor bug dealing with sending delete events to a window,
	data parameter wasn't being passed.  (disabled both delete and
	destroy for now)

5/2/98  Finished global cleanup, gschem now builds cleanly, and seems to
	run and seems to be stable.  *All* functionality needs to be checked

	Added New window menu item

5/1/98  Continued work on global cleanup

4/29/98 Started final cleanup to remove all globals.  This involves passing
	WINDOW * to all function that require the contained variables.

	Got rid of i_vars.h file, moved contents into defines.h

4/26/98 Worked some more on new WINDOW structure (MAJOR code CHANGE)

	Got program to compile, works mostly, not completely stable yet.

4/25/98 Further reduced the number of globals in x_dialog.c

	Created the new WINDOW structure and started changing every file
	to use this new structure (MAJOR code CHANGE)

4/24/98 Typedefed st_objects, st_attrib, and st_linepts (major code change)

	Began process of figuring out which variables are getting encapsulated
	in the "per-window" and "pages" structures

4/23/98 Whole bunch of code cleanup, including making most variables consistant
        renaming a few functions.

4/20/98	Fixed Makefile.am to not include the math library (-lm) twice

0.0.2
-------
4/16/98 Tested code with GTK+ 1.0.0.  This will be the version of gtk which
	will work with gschem.

	Changed the order of init functions in main.c

	Fixed two nasty bugs that deal with the Add Attribute code
	1) wasn't properly checking for no input in the name/value boxes
	2) wasn't allocating enough memory for current_attribute.

4/15/98 Added some finishing touches to the Add Attribute dialog box and
	the code that actually does the work.

	Removed accelerator keys from popup menu.  They were misbehaving
	(sometimes the accelerator key would be reassigned a new one???)
	and this way the right mouse button popup will be smaller.

4/14/98 Worked some more on the Add Attribute dialog box

	Added AttributeName keyword to the rc file(s).  This keyword adds
	the names to the Add/Attribute dialog box.

	Started putting in the underlying code that is called by the various
	Add Attribute buttons.

	Added some low level functions to o_attrib.c to support above activity

	Changed Arc hotkey to Shift-R and added Add/Attribute as "a"

4/12/98 Added the #ifdefs to things that configure checks for (some of them)

	Disabled the very broken "get correct filename.ps" code when you
 	print something.  Right now all postscript output goes to out.ps

	Fixed a minor bug: if you are drawing a net and haven't yet placed
  	the first point and then you hit the right button a redraw is not
	needed.  (removed the redraw)

	Started to add : Add/Attribute dialog box and mechanism(s)

4/11/98 Fixed up most compiler warnings about missing prototypes and unused
	variables

	Tested code with gtk version 0.99.10
		Due to changes in this version, several changes had to occur:
			Now forcing a update of scrollbars when you startup
			Fixed dialog boxes when users enters null string

	Added scrollbar updates to open and new callback routines

	Fixed text enter, text edit, text size, translate, arc angles dialog
	boxes so that enter is equivalent to clicking OK.

	Added the ability to draw non-orthogonal nets if you press the CONTROL
	key as you are drawing the nets.  Normally you would want to draw nets
	which are orthogonal but there are exceptions to this.  NOTE: if you
	draw an non-ortho net then you cannot connect to it in the middle; you
	can only connect to it at the ends. (need to document this)

	As a result of above, a bug was found in the connection search routine.
	The fix is highly experimental so if any midpoint nets which should
	be connected are not, then e-mail the maintainers.

	Likewise added the ability to draw ortho lines by pressing the CONTROL
	key as you draw the line.   Lines are normally non-ortho, but sometimes
	it's nice to draw a prefectly straight line without being coordinated.
	(need to document this)

4/10/98 Added underlying code to implement the scrollbars

	Minor changes (asthetic code changes) to drawing window size

4/9/98  Added TextCapsStyle rcfile keyword

	Totally rewrote o_text to allow text to be any point size

	Added some code to put a few pixels inbetween each text character
	(right now turned off)

	Added text size selection dialog

	Changed Version keyword in rcfile to reflect new version (0.0.2)

	Changed default text size to be 10 point

	Removed the code that controlled (limited) text size in rcfiles

	Fixed most dialog box titles

	Fixed all example .sch files to have 10 point text labels

	Fixed postscript printing to deal with new text size system

4/7/98	Fixed minor bug with opening a file and CHANGED flag not being cleared

4/6/98	Relaxed aspectratio calculation (no more aspectratio enforcement)

	Changed default drawing area min size to 800x600

	Merged m_prims.c and m_matrix.c into m_basic.c (new file)

	Added a pixmap unref to i_callback_file_quit()

	Added call to hide file ops in all file selection dialog boxes

	Fixed searching order of rc files

	Added scroll bars to right and bottom.  Underlying code not impl.

0.0.1
-------

4/1/98	First Release to the public

