1999-09-14 12:50:21  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/gtk_play.c:
	- Handle case when requested font is not available.

	* BUGS, TODO, configure.in:
	- Doc fixes.
	- Bumped version to 4.2.0

1999-09-08 02:04:48  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* README.NetGames, TODO:
	- Added README.NetGames

1999-08-26 14:34:21  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/sl_io.c:
	- When displaying statistics, count from 1, not 0.

	* ChangeLog: *** empty log message ***

	* src/gtk_dlg_stat.c:
	- Display game numbers starting at 1, not 0 (thanks Brian)

1999-08-25 02:10:11  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/.cvsignore:
	- Added .deps to .cvsignore

	* src/.cvsignore, install-sh, missing, mkinstalldirs, stamp-h.in, aclocal.m4, autogen.sh, config.h.in, configure, .cvsignore, ChangeLog, Makefile.in:
	- Fixed up repository not to include platform-specific files

1999-08-24 15:34:54  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/Makefile.in, src/client_func.c, src/display.h, src/listen.c, src/sl_io.c, src/sl_io.h, src/Makefile.am:
	- New -o option
	- Fixed slang client to handle options and new Card defs.

	* configure.in, README, README.slang, configure:
	- Document new -o option
	- Bumped version to 4.2pre3

	* slspades.6, gspades.6:
	- Updated man pages for -o option

1999-08-16 15:14:38  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/card.c, src/card.h, src/engine.h, src/engine_func.c, src/engine_main.c, src/ai.c:
	- Massive AI updates (it works now).
	- Some engine changes so Britt's AI functions can be incorporated.
	- Small changes to the card implmentation.

	* AUTHORS, BUGS, INSTALL:
	- Small updates/typos.

1999-08-16 02:57:36  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/engine_main.c, src/gtk_connect.c, src/gtk_io.c,
	src/gtk_play.c, src/sl_io.c, src/Makefile.in, src/client.h,
	src/client_func.c, src/client_main.c, src/display.h, src/engine.h,
	src/engine_func.c:
	- Added new debugging flags DEBUG_BID and DEBUG_PLAY.
	- Adapted to new Card type and functions.
	- Started integrating AI functions.

	* configure.in, acconfig.h, config.h.in, configure:
	- Added new debugging flags DEBUG_BID and DEBUG_PLAY

	* AUTHORS:
	- Added Britt Yenne (AI functions) to list

	* src/card.c, src/card.h:
	- Redo card implementation as typedef'd int.
	- Redefine and rename all card functions.

	* src/Makefile.am, src/ai.c:
	- New file ai.c to hold ai functions
	- Added ai.c to list of sources
	- Begin adapting Britt's AI functions to my code

1999-08-15 21:44:06  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* configure.in:
	- Updated version to 4.2pre1

1999-08-02 00:05:46  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/gtk_taunt.c:
	- Make taunt display word wrapped.

1999-08-01 02:05:23  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/scroll.c, src/scroll.h, src/sl_io.c, src/sl_io.h,
	src/socketfunc.c, src/socketfunc.h, src/taunt.c, src/taunt.h,
	src/gtk_dlg_stat.h, src/gtk_io.c, src/gtk_io.h, src/gtk_menu.c,
	src/gtk_menu.h, src/gtk_play.c, src/gtk_play.h, src/gtk_taunt.c,
	src/gtk_taunt.h, src/listen.c, src/options.h, src/gtk_connect.h,
	src/gtk_dlg_about.c, src/gtk_dlg_about.h, src/gtk_dlg_disconnect.c,
	src/gtk_dlg_disconnect.h, src/gtk_dlg_error.c, src/gtk_dlg_error.h,
	src/gtk_dlg_exit.c, src/gtk_dlg_exit.h, src/gtk_dlg_options.c,
	src/gtk_dlg_options.h, src/gtk_dlg_stat.c, src/card.h, src/client.h,
	src/client_func.c, src/client_main.c, src/display.h, src/engine.h,
	src/engine_func.c, src/engine_main.c, src/gtk_connect.c, src/card.c:
	- Changed header to mention copyright and removed mods.

1999-07-28 19:07:28  Megan Terrazzino  <terrame@ece.rice.edu>

	* AUTHORS:
	- Fixed conflict

	* TODO:
	- Small improvement in description

1999-07-28 19:02:50  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* TODO:
	- Moved offline play up to 4.2.0

	* AUTHORS:
	- Stated adding entry for AI author

	* src/gtk_connect.c:
	- Changed PF_LOCAL to PF_UNIX for better platform compat.

1999-07-26 07:34:35  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/client_func.c, src/engine.h, src/engine_func.c, src/gtk_connect.c:
	- Better handling of child process death.

	* src/engine_func.c:
	- Use new function Quit() rather than exit(), to decide how to exit
	  properly whether we're the server or client (exit vs. _exit)

	* src/client.h, src/client_func.c, src/client_main.c, src/gtk_connect.c:
	- Added DeadEngine() function to handle SIGCHLD signal.
	- Kill child process when game is over.
	- Set gameInfo.gamePid to 0 at beginning of every session, and after
	  child process is dead.

	* src/gtk_connect.c:
	- Added warning messages for when taunting is disabled and options
	  are ignored.

	* src/gtk_dlg_error.c, src/gtk_dlg_error.h:
	- New function DisplayMessage() takes over functionality of
	  DisplyError(), but adds gboolean quit parameter for optionally
	  ending the current game.
	- DisplayError() now a wrapper for DisplayMessage( , TRUE).
	- DisplayWarning() now a wrapper for DisplayMessage( , FALSE).

	* NEWS, gspades.6, spadesd.6:
	- Doumentation updates

1999-07-25 23:17:08  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* README.gtk, README.porting, spadesd.6, README:
	- Documentation updates

	* ChangeLog, src/Makefile.in: *** empty log message ***

	* src/client_func.c, src/gtk_connect.c, src/gtk_connect.h, src/gtk_dlg_options.c, src/gtk_dlg_options.h, src/gtk_menu.c:
	- Name now defaults to login name.
	- Added GAME_SPADES and MSK_BAGS to initial options even though
	  they do not really do anything yet.
	- Fork new process and call engine() if playing offline
	- Initialze spadesHandle and tauntHandle to 0.  Only call
	  gdk_input_remove() if handle is non-zero.
	- Rename menu items Connect/Disconnect to New/End.
	- New function PlayOffline() called instead of Connect() when
	  an offline game is desired.
	- Only make tauntBox sensitive if able to connect to taunt server.
	- New function SafeClosedialog() called to close options dialog
	  without ending game (removed dirty hack).

	* src/socketfunc.c: *** empty log message ***

	* src/listen.c:
	- Added more checking of option bits.

	* src/gtk_taunt.c:
	- Made tauntBox a global variable and set to insensitive by
	  default.

	* src/engine.h, src/engine_func.c, src/engine_main.c:
	- Renamed NetClose(), CheckReadInt(), and CheckWriteInt() called
	  from the engine, so there is no namespace clash now that engine()
	  is called on the client side.

	* src/options.h:
	- Restructured a bit, and added new game options.
	- Added #ifndef _OPTIONS_H around file

	* src/Makefile.am:
	- Added engine_func.c and engine_main.c to list of source
	  files for gspades.

	* SocketSpec.txt:
	- Updated for new option bits.
	- Better description of option passing.

1999-07-25 22:14:51  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/client_func.c, src/gtk_connect.c, src/gtk_connect.h, src/gtk_dlg_options.c, src/gtk_dlg_options.h, src/gtk_menu.c:
	- Name now defaults to login name.
	- Added GAME_SPADES and MSK_BAGS to initial options even though
	  they do not really do anything yet.
	- Fork new process and call engine() if playing offline
	- Initialze spadesHandle and tauntHandle to 0.  Only call
	  gdk_input_remove() if handle is non-zero.
	- Rename menu items Connect/Disconnect to New/End.
	- New function PlayOffline() called instead of Connect() when
	  an offline game is desired.
	- Only make tauntBox sensitive if able to connect to taunt server.
	- New function SafeClosedialog() called to close options dialog
	  without ending game (removed dirty hack).

	* src/listen.c:
	- Added more checking of option bits.

	* src/gtk_taunt.c:
	- Made tauntBox a global variable and set to insensitive by
	  default.

	* src/engine.h, src/engine_func.c, src/engine_main.c:
	- Renamed NetClose(), CheckReadInt(), and CheckWriteInt() called
	  from the engine, so there is no namespace clash now that engine()
	  is called on the client side.

	* src/options.h:
	- Restructured a bit, and added new game options.
	- Added #ifndef _OPTIONS_H around file

	* src/Makefile.am:
	- Added engine_func.c and engine_main.c to list of source
	  files for gspades.

	* SocketSpec.txt:
	- Updated for new option bits.
	- Better description of option passing.

1999-07-23 03:57:15  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/socketfunc.c, src/client.h, src/client_func.c, src/client_main.c, src/gtk_connect.c, src/gtk_dlg_options.c, src/gtk_dlg_options.h, src/gtk_dlg_stat.c, src/gtk_io.c:
	- New function AppInit() to do one-time initializations.
	- Renamed StartProgressBar() to StartSession() and call
	  SessionInit() there.
	- GameInit() only at start of new games.
	- Free memory allocated for player names and game records
	  at start of each session and at end of game.
	- Allocate *two* ints for each game record, not one.
	- Clear table and display at start of new game
	- Set End-game spinbutton to steps of 50
	- Give appropriate message in stat. dialog if no
	  statistics yet

	* src/engine.h, src/engine_func.c, src/engine_main.c, src/listen.c:
	- Skip registration for computer players
	- New functions AIBid() and AIPlay() to handle computer
	  players.
	- Modified all functions not to attempt socket communication.
	  with computer plaers.
	- Only free player name memory for human players.
	- Name computer players after stooges.

	* SocketSpec.txt:
	- Added description of option passing

1999-07-20 22:44:58  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/gtk_menu.c, src/gtk_io.c:
	- Deleted files gtk_dlg_connect.[ch] obsoleted by gtk_dlg_options.[ch] 
	  and changed necessary #includes

	* src/gtk_dlg_options.h, src/listen.c, src/options.h, src/Makefile.am, 
	  src/client.h, src/client_func.c, src/engine.h, src/engine_func.c, 
	  src/gtk_dlg_connect.c, src/gtk_dlg_connect.h, src/gtk_dlg_options.c:
	- Fix masks in options.h and include it where needed.
	- Initialize options to defaults on client and server side.
	- Set playerSock to SOCK_COMP on server side for all computer players.
	- Use endGame and minBid options in game engine.
	- Do option passing error checking on client side.
	- Code cleanups in gtk_dlg_options.c
	- Move server tab code after other tabs since callback for online 
	  toggle gets called immediately and needs to access other tabs' 
	  widgets
	- Default label for player toggles is "Human" since that is the 
	  "unpressed" state.
	- Set minimum size for player toggle and nil toggle buttons.
	- Use present option values when setting up options dialog 
	  (persistence of options).
	- Temporarily disable nil toggle button since it pobably won't make it
	   into 4.2.
	- De-sensitize server-entry widgets when online toggle is depressed.

1999-07-14  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/listen.c:
	- Have ReadOptions() read a fuller option set and check for errors.

	* src/options.h: New file containing options structure and masks

	* src/gtk_dlg_options.c, src/gtk_dlg_options.h:
	- Created and use input_t struct to pass input widgets from the dialog.
	- Created InputOptions() to handle inputing all options.
	- Set notebook, connect and apply buttons to un-sensitive while 
	  connecting.
	- Use new options external global.
	- Created OfflineToggled() to handle offline toggle button.
	- Removed all references to DeadDialog.

	* src/gtk_connect.c:
	- Better handling of Connect/Disconnect menu sensitivity
	- Updated hack to find window parent of pbar (still a hack though)

	* src/engine_main.c: Formatting

	* src/client_func.c:
	- Create global options variable and send its members to server 
	  during options passing stage

	* src/client.h: Include options.h

1999-07-13  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/client_func.c, src/gtk_dlg_options.c, src/gtk_dlg_options.h, 
	src/listen.c:
	- Added callbacks to read some of the entries in option dialog.
	- Hacked in an option passing test.
	- Added code to read client's PID after options.

	* src/gtk_play.c: 
	- Removed bad #ifdef 0

	* configure.in, configure: 
	- Bumped version to 4.2pre

	* sp.test: Added sp.test script for testing

	* src/listen.c, src/engine.h:
	- Added server infrastructure to support reading options from 
	  first client

1999-07-10  Brent M. Hendricks  <brentmh@ece.rice.edu>

	* src/gtk_dlg_options.c: 
	- Fixed toggle button length problems
	- Default to computer players

1999-07-03  Brent M. Hendricks  <brentmh@valinor.dhis.org>

	* Added all files to CVS repository

        * Makefile.in, TODO, src/Makefile.am, src/Makefile.in, 
	src/gtk_dlg_options.c, src/gtk_dlg_options.h:
	- Brought up to date with current development.
	- Added gtk_dlg_options.[ch] to eventually replace gtk_dlg_connect.[ch]

Version 4.1.4
        - Added manpages ( thanks Chris! )

Version 4.1.3
        - Error checking on all server-side socket functions
	- Better socket error checking on client side
	- SLang client times out while registering if server doesn't respond
	- GTK client no longer sleeps after a trick
	- Improved Connect dialog box for GTK client
	- Removed 2AB-isms :(
	- Better README
	- Now records and displays session statistics
	- Fixed hard-coded score comparison for end of game
        - GTK client no longer will send blank taunts
	- Fixed seffault and bus error problems on platforms that don't 
	  initialize memory to zero
	- GTK Bid spinbutton displays "nil" rather than -1 (Woohoo!)

Version 4.1.2
        - Added --enable-debug-gdb option to configure
	- Rmoved some left-over debugging stuff from 4.1.1
	- Better error checking of sockets
	- Now send winning team number as 3rd bit of gameOver flag
	- SLang version checks for "who won" bit

Version 4.1.1
        - GTK client should compile on systems without asprintf()
	- Default buttons on all GTK dialog boxes
	- Fixed GTK client so that you may click anywhere on a card 
	  to select it
	- Fixed SLang client so it should work again
	- Better updating of tallies/scores on SLang client
	- Added stub for displaying session statistics on SLang client
	- Made server comply better with endgame protocol
	- Removed all references to asprintf().

Version 4.1.0
        - New client-server protocol for endgame -see socket spec
        - Minor logging updates
        - Added a session statistics window displayed at the
	  end of every game (currently empty)
	- Query for new game from statistics window
       
Version 4.0.2
        - Include SocketSpec.txt with distribution
	- Update ChangeLog (oops!)
	- Added --enable-debug-taunt option to configure
	- Fixed up logging and debugging info
        - Now use GtkItemFactory() for menus 
	- Added some keyboard shortcuts
	- Connect/Disconnect menus appropriately greyed out
	- Bid button appropriately greyed out
	- Now possible to play another game after disconnecting
        - For server logging, -l option replaces -d
	- TauntServer(tm) port now configurable
       
Version 4.0.1
        - Slightly better socket debugging
        - Fixed endian problems

Version 4.0.0
	- New!  GTK+ client!
        - SLang client now named slspades, GTK+ client named gspades
	- Port number command line option for both server and client
        - Major restructuring of code ( see source )
        
Version 3.3.5
        - Added the basename() macro to listen.c so we can compile on sparc

Version 3.3.4
        - Added --enable-debug_socket option to configure
	- Increased default max games to 5
	- Server is silent by default (use -d option for debug messages)
	- Server now accepts command line options
	- Fixed memory leaks on the server side
	- Server notifies TauntServer(tm) when game is over
	- Better error checking in TauntServer(tm)
	
Version 3.3.3
        - Server (not client) determines end of game
	- Number of points in game is now a #define constant in engine.h
	- Try to cut down on memory leaks by freeing data read using
          readstring() and messaged allocated with asprintf
	- Server asks first player for another game
	- Added --enable-debug_mem option to configure
	- Display game and session over messages

Version 3.3.2
	- updates to configure.in
	- configure now supports --disable-server, --disable-client, and
	  --disable-history
	- lack of SLang or readline libs just disables client now
	- check for socket in -lsocket
	- check for gethostbyname and inet_ntoa in -lnsl
	- Finally able to compile on Sparc (still untested)
	
Version 3.3.1
        - fixed bug where client was hard-coded to use my machine for the
          TauntServer (thanks Brian!)
	- consolidated server regitration to one routine

Version 3.3
	- history library now optional to compile
	- Use RETSIGTYPE for signal handler return type
	- Add screen refresh on Ctrl-l
	- Updated client/server protocol
	- Added minimum/valid bid checking on server
	
Version 3.2
        - Now uses autoconf/automake for easy configuration
	- Fixed multi-game capability
	- Improved error handling on server side
	
Version 3.1
	- Added ability to input taunts on client side using readline
	- Cleaned up client side code
	
Version 3.0 (not released)
	- Added TauntServer for badgering teammates and opponents
	- Use global gameInfo object to store information about each game
	- Server forks a new process for each game: enables server to run
  	  multiple simultaneous games transparently
	
Version 2.0
	- Completely rewrote networking using sockets rather than RPCs

Version 1.3.1
	- Some game flow cleanup
	- Created StateOfGame struct

Version 1.3
	- Rewrote client in a more "event" driven manner to wait for
  	  messages from server of for user input
	- Display cards on table when played
	- Put scores, bids, and trick tallys in side windows
	  
Version 1.2
	- Rewrote display routines using SLang rather than curses.
	- Fixed miscellaneous SLang bugs
	
Version 1.1.4
	- Fixed display.c to compile under libc5

Version 1.1.3
	- Rewrote card class as C-style card struct.  Took out default
	  function values and pass-by-reference.  Netspades now compiles
	  entirely in C.
	  
Version 1.1.2
	- Fixed up some includes and added -D_USE_GNU so we can compile
	  under libc6
	- Added signal handling routines for SIGINT to client side so that
	  the display gets cleanup, the RPC ports get cleared and all
	  child processes die.

Version 1.1.1
	- Added -V (version) option to client
	- Obtain client hostname through gethostbyname()
	
Version 1.1
	- Initial "release"
