Merge commit 'v4.3.16'
authorArun Persaud <arun@nubati.net>
Sat, 2 May 2009 18:58:25 +0000 (11:58 -0700)
committerArun Persaud <arun@nubati.net>
Sat, 2 May 2009 19:23:31 +0000 (12:23 -0700)
merged changes from Alessandro Scotti and H.G. Muller back into the main line.
They changed quite a lot, so it's really more a merge of the changes from v2.4.7 to v2.4.8 into their code.
This is the initial merge, there is probably a lot of cleanup that will follow. Once this is done, v4.4.0 will
be released.

29 files changed:
1  2 
AUTHORS
ChangeLog
FAQ.html
ToDo
aclocal.m4
backend.c
backend.h
bitmaps/convert.c
common.h
config.h
configure
configure.in
engine-intf.html
parser.c
parser.l
winboard/config.h
winboard/defaults.h
winboard/parser.c
winboard/readme.txt
winboard/wengineo.c
winboard/winboard.c
winboard/winboard.rc
winboard/winboard.rtf
xboard.c
xboard.texi
xengineoutput.c
xhistory.c
xoptions.c
zippy.c

diff --cc AUTHORS
+++ b/AUTHORS
- Contributions of xboard and WinBoard authors by file
- $Id$
- 0. Files covered
- The first group are included in the xboard distribution.  The second
- group are included in the WinBoard source distribution but not in the
- xboard distribution.  All are part of the joint xboard/WinBoard source
- base and are covered by the same copyrights and licensing terms.
- FAQ.html
- backend.c
- backend.h
- backendz.h
- bitmaps
- childio.c
- childio.h
- cmail.in
- cmail.man
- comment.in
- common.h
- config.h.in
- configure.in
- engine-intf.txt
- frontend.h
- gamelist.c
- ics-parsing.txt
- lists.c
- lists.h
- moves.c
- moves.h
- parser.h
- parser.l
- pgntags.c
- xboard.c
- xboard.h
- xboard.man
- xboard.texi
- xedittags.c
- xedittags.h
- xgamelist.c
- xgamelist.h
- zic2xpm.c
- zic2xpm.man
- zippy.README
- zippy.c
- zippy.h
- winboard.rtf (compiles to winboard.hlp)
- config.h
- defaults.h
- resource.h
- wedittags.c
- wedittags.h
- wgamelist.c
- wgamelist.h
- winboard.c
- winboard.h
- winboard.rc
- bitmaps/*
- bitmaps.xchess/*
- 1. Wayne Christopher
- Wrote from scratch (I believe) bitmaps.xchess/*80*.bm.  Other bitmaps
- in the bitmaps.xchess directory were derived from these by shrinking
- and some hand-tuning.  By default these bitmaps are no longer used.
- Their copyright status is unclear.
- 2. Chris Sears and Dan Sears
- Wrote from scratch parser.l, xboard.c, xboard.h, xboard.man.  Parts
- (sometimes small) of these files were later moved by Tim Mann to
- backend.c, backend.h, childio.c, common.h, frontend.h, and parser.h.
- Chris and Dan's original work is copyrighted by Digital Equipment
- Corporation with licensing terms similar to what the X Consortium uses
- (see the file COPYRIGHT).  All the work listed below is copyrighted by
- the Free Software Foundation and covered by the GPL (see the files
- COPYRIGHT and COPYING).
- 3. Tim Mann <tim@tim-mann.org>
- Wrote from scratch FAQ.html, backendz.h, childio.h, comment.in,
- config.h.in, configure.in, engine-intf.txt, ics-parsing.txt, moves.c,
- moves.h, pgntags.c (split from backend.c by Jochen Wiedmann),
- xedittags.c, xedittags.h, xgamelist.c, xgamelist.h, zippy.README,
- zippy.c, zippy.h, winboard.rtf, config.h, defaults.h, resource.h,
- wedittags.c, wedittags.h, wgamelist.c, wgamelist.h, winboard.c,
- winboard.h, winboard.rc.
- Major additions and changes to nearly all other files listed in
- section 0.
- 4. John Chanak
- Addition to xboard.c, mostly later moved into backend.c.
- 5. Evan Welsh <Evan.Welsh@msdw.com>
- Wrote from scratch cmail.in and cmail.man.  Additions to backend.c and
- xboard.c.
- 6. Elmar Bartel <bartel@informatik.tu-muenchen.de>
- Wrote from scratch the Metafont code from which bitmaps/* were
- generated.  The Metafont code itself is not included in the package.
- 7. Jochen Wiedmann
- Wrote from scratch gamelist.c, lists.c, lists.h.  Wrote xboard.texi,
- mostly based on xboard.man and cmail.man.  Minor additions to backend.c.
- 8. Frank McIngvale <frankm@hiwaay.net>
- Wrote from scratch zic2xpm.c and zic2xpm.man.  Additions to backend.c,
- xboard.c, and xboard.man.
- 9. Hugh Fisher <Hugh.Fisher@cs.anu.edu.au>
- Additions to backend.c and xboard.c.
- 10 Arun Persaud <arun@nubati.net>
- fix for parser.l
+ Contributions of xboard and WinBoard authors by file\r
+ $Id: AUTHORS,v 1.1 2003/11/02 04:42:06 mann Exp $\r
\r
+ 0. Files covered\r
\r
+ The first group are included in the xboard distribution.  The second\r
+ group are included in the WinBoard source distribution but not in the\r
+ xboard distribution.  All are part of the joint xboard/WinBoard source\r
+ base and are covered by the same copyrights and licensing terms.\r
\r
+ FAQ.html\r
+ backend.c\r
+ backend.h\r
+ backendz.h\r
+ bitmaps\r
+ childio.c\r
+ childio.h\r
+ cmail.in\r
+ cmail.man\r
+ comment.in\r
+ common.h\r
+ config.h.in\r
+ configure.in\r
+ engine-intf.txt\r
+ frontend.h\r
+ gamelist.c\r
+ ics-parsing.txt\r
+ lists.c\r
+ lists.h\r
+ moves.c\r
+ moves.h\r
+ parser.h\r
+ parser.l\r
+ pgntags.c\r
+ xboard.c\r
+ xboard.h\r
+ xboard.man\r
+ xboard.texi\r
+ xedittags.c\r
+ xedittags.h\r
+ xgamelist.c\r
+ xgamelist.h\r
+ zic2xpm.c\r
+ zic2xpm.man\r
+ zippy.README\r
+ zippy.c\r
+ zippy.h\r
\r
+ winboard.rtf (compiles to winboard.hlp)\r
+ config.h\r
+ defaults.h\r
+ resource.h\r
+ wedittags.c\r
+ wedittags.h\r
+ wgamelist.c\r
+ wgamelist.h\r
+ winboard.c\r
+ winboard.h\r
+ winboard.rc\r
\r
+ bitmaps/*\r
+ bitmaps.xchess/*\r
\r
+ 1. Wayne Christopher\r
\r
+ Wrote from scratch (I believe) bitmaps.xchess/*80*.bm.  Other bitmaps\r
+ in the bitmaps.xchess directory were derived from these by shrinking\r
+ and some hand-tuning.  By default these bitmaps are no longer used.\r
+ Their copyright status is unclear.\r
\r
+ 2. Chris Sears and Dan Sears\r
\r
+ Wrote from scratch parser.l, xboard.c, xboard.h, xboard.man.  Parts\r
+ (sometimes small) of these files were later moved by Tim Mann to\r
+ backend.c, backend.h, childio.c, common.h, frontend.h, and parser.h.\r
\r
+ Chris and Dan's original work is copyrighted by Digital Equipment\r
+ Corporation with licensing terms similar to what the X Consortium uses\r
+ (see the file COPYRIGHT).  All the work listed below is copyrighted by\r
+ the Free Software Foundation and covered by the GPL (see the files\r
+ COPYRIGHT and COPYING).\r
\r
+ 3. Tim Mann <tim@tim-mann.org>\r
\r
+ Wrote from scratch FAQ.html, backendz.h, childio.h, comment.in,\r
+ config.h.in, configure.in, engine-intf.txt, ics-parsing.txt, moves.c,\r
+ moves.h, pgntags.c (split from backend.c by Jochen Wiedmann),\r
+ xedittags.c, xedittags.h, xgamelist.c, xgamelist.h, zippy.README,\r
+ zippy.c, zippy.h, winboard.rtf, config.h, defaults.h, resource.h,\r
+ wedittags.c, wedittags.h, wgamelist.c, wgamelist.h, winboard.c,\r
+ winboard.h, winboard.rc.\r
\r
+ Major additions and changes to nearly all other files listed in\r
+ section 0.\r
\r
+ 4. John Chanak\r
\r
+ Addition to xboard.c, mostly later moved into backend.c.\r
\r
+ 5. Evan Welsh <Evan.Welsh@msdw.com>\r
\r
+ Wrote from scratch cmail.in and cmail.man.  Additions to backend.c and\r
+ xboard.c.\r
\r
+ 6. Elmar Bartel <bartel@informatik.tu-muenchen.de>\r
\r
+ Wrote from scratch the Metafont code from which bitmaps/* were\r
+ generated.  The Metafont code itself is not included in the package.\r
\r
+ 7. Jochen Wiedmann\r
\r
+ Wrote from scratch gamelist.c, lists.c, lists.h.  Wrote xboard.texi,\r
+ mostly based on xboard.man and cmail.man.  Minor additions to backend.c.\r
\r
+ 8. Frank McIngvale <frankm@hiwaay.net>\r
\r
+ Wrote from scratch zic2xpm.c and zic2xpm.man.  Additions to backend.c,\r
+ xboard.c, and xboard.man.\r
\r
+ 9. Hugh Fisher <Hugh.Fisher@cs.anu.edu.au>\r
\r
+ Additions to backend.c and xboard.c.\r
\r
+ 10. Allessandro Scotti\r
\r
+ Made many additions to the WinBoard user interface and graphics \r
+ capabilities, such as new windows for engine output, board textures \r
+ and font-based piece rendering. These changes became collectively known\r
+ as Winboard_x.\r
\r
+ 11. H.G. Muller <h.g.muller AT hccnet DOT nl>\r
\r
+ Heaviliy modified winboard.c, backend.c, moves.c and parser.l, to\r
+ allow board sizes other than 8x8, and many non-orthodox Chess pieces,\r
+ so that WinBoard is now capable of playing variants like Shogi and Xiangqi.\r
+ Also implemented displaying of the Crazyhouse holdings, and many adjudication\r
+ and other backend options. This version of WinBoard, (4.3.xx) containing all \r
 -of the WinBoard_x options, became known as WinBoard_F.
++of the WinBoard_x options, became known as WinBoard_F.\r
++\r
++12. Arun Persaud <arun AT nubati DOT net> \r
++ \r
++fix for parser.l\r
diff --cc ChangeLog
+++ b/ChangeLog
--ChangeLog for XBoard/WinBoard
- * 2009-03-17 APersaud: added initial german language support (130 of 301 strings translated).
- * 2009-02-28 APersaud: fixed bug #22853: changed all .Xdefaults to .Xresources in xboard.texi 
-       
- * 2009-02-28 anonymous <grainman.timp@gmail.com> (tiny change)
-       added DESTDIR support to Makefile.in; similar patch also provided by Ali Polatel <kawdjer>
-       patch #6182; bug #25672
-       
- * 2009-02-28 APersaud: fixed missing datarootdir in Makefile.in -> autoconf -> new configure script
-       
- * 2009-02-28 APersaud: fixed an error in the parser. This should fix bug #22812.
-       
- * 06/12/2005: bugfix some more possible buffer overflows.
- * 06/27/2004: added simple icsEngineAnalyze for xboard
- * 06/26/2004: added icsEngineAnalyze for winboard: Analyze observe games 
- with a chessprogram on a Internet Chess Server (ICS) 
- * 02/12/2004: Bugfix ICS interaction console crashed while chess
- engine starting and user type in some stuff. We are wait now to finish
- the engine boot.
- * 02/11/2004: Winboard: Added color lines for the ics interaction
- console if zippy used
- * 02/09/2004: Added mousewheel support for winboard. Play moves
- backward and forward with the mousewheel.
- xboard/WinBoard 4.2.7 -- Fri Nov 28 13:36:00 PST 2003 -- Tim Mann
--
--* 11/26/2003: In WinBoard, setting the -debug flag now logs ICS output
--to WinBoard.debug too.  (This isn't needed in xboard because ICS
--output already goes to stdout, so it's easy to capture along with the
--debug output on stderr.)  This was issue #280 in the ToDo file.
--
--* 11/23/2003: Cleaned up some minor problems in cygwin.mak.  Thanks to
--Hans Werner Strube for the problem report.
--
--* 11/23/2003: Updated the default list of chess servers in
--winboard/defaults.h.  Deleted two that appear to be dead and added a
--new one that is active.
--
--* 11/19/2003: Swapped icon_white.bm and icon_black.bm in XBoard.
--Hopefully this will get them the right way around by default on more X
--window managers.  I wish I understood this better.
--
--* 11/18/2003: Implemented a simple 32-bit random number generator for
--WinBoard, replacing the Windows rand(), which ranges only up to
--0x7fff.  Formerly on Windows, only zippy.lines sayings that started in
--the first 32767 bytes of the file could ever be used.  This was issue
--#505 from the ToDo file.
--
--* 11/16/2003: The xboard man page and info files are now built from a
--common set of texinfo source files, and the xboard man page now covers
--cmail as well.  Formerly, ever since the texinfo file was first
--contributed to the project, it was separate from the man page and the
--two files had to be updated in parallel, making for a maintenance
--nightmare.  To make combining the files possible, I took the Perl
--script "texi2man" from the GNU Units project and added support for a
--larger subset of the texinfo markup language.  I then carefully
--compared the old man page and old texinfo file to make sure the latest
--and clearest words survived into the new combined texinfo file.  It
--would be great to merge in WinBoard's help file too, but that's a
--larger project.  It would have to be heavily conditionalized to
--deal with differences in features between XBoard and WinBoard.
--
--* 11/15/2003: Cleaned up and applied a small patch from Daniel
--Mehrmann, to stop overly long PVs in thinking output from causing a
--buffer overflow crash in backend.c.
--      
--* 11/5/2003: When a chess engine sends a "telluser" command (including
--the cases where "tellall" or "tellopponent" acts like telluser), the
--information now goes into a nonmodel popup that is automatically
--dismissed when the user clicks anywhere on the board.  This fix is
--more significant on WinBoard, where formerly you got a fully modal
--dialog that had to be dismissed by clicking on OK before anything else
--could happen.  The bug was issue #406 in the ToDo file.
--
--* 11/1/2003: Removed email addresses from this file to reduce spam
--load, as it gets linked to from the Web.
--
--* 11/1/2003: Updated READ_ME and winboard/READ_ME.txt.
--
--* Modified xboard and winboard makefiles to be able to build the
--project in the new combined directory structure.
--
--* Applied a small security fix to pxboard, from Martin Maeok.
--
--* Fixed a bug in the game list dialog.  The change in 4.2.6 to opening
--games in text mode (meant to avoid getting extra \r's into comments)
--caused a new bug in determining seek offsets when parsing a game file
--to form the game list.  Also, the change was incomplete; on some code
--paths games were still being opened in binary mode.  Thanks to Lenik
--Terenin for reporting the offset bug.  I've now gone back to always
--using binary mode when reading game files, and I've fixed the comment
--bug by adding code to remove \r's from parsed comments explicitly.  I
--still use text mode for writing game files so that games written by
--WinBoard will have Windows-style line endings.
--
--* Fix for minor bug in WinBoard installer.  If you chose a non-default
--destination directory, the default directory was still used for a
--couple of unimportant things, namely setting the App Paths registry
--keys (unused by WinBoard) and trying to copy the existing WinBoard.ini
--file to WinBoard.old.  I inherited this bug from the InstallShield 5
--sample template.  Thanks to "l.d." for noticing the incorrect keys.
--
--* Patch from Chris Priest: when two engines are being run through rsh,
--avoid reusing the same stderr port for both.  I'm not sure why this
--should be needed, but it's harmless, at least.
--
--* Bugfix: The kludge to deal with old engines that give an error
--message because they don't know the "st" command was too sloppy; it
--could hit on an "st" substring anywhere in an error message.  GNU
--Chess 4 is the only engine I know of where the kludge was needed, so I
--changed the kludge to match a longer, more GNU-specific string.
--
--* Changed the WinBoard self-extracting installer to choose a unique
--temporary subdirectory name within the Windows temp directory instead
--of always putting wb-setup directly in temp.  Besides being better
--practice, this avoids the need to deltree wb-setup first, which
--occasionally alarms someone who thinks that deltree is only used by
--trojans to delete all your files.  (Yes, I'm serious.)
--
--* Fixed a bug where FICS-style "wild/0" strings were not parsed as the
--proper wild type.  The "/" was not being skipped.
--
--* Fixed a WinBoard bug where temporary files created by game
--copy/paste were being created in the root directory of the current
--drive instead of the TMP directory and were not always deleted on exit.
--
--* Fixed a small bug in winboard.c's ErrorDialog() function.  Thanks to
--"Ron" (no last name given).  The bug might have caused a problem when
--pressing OK or Cancel in an error dialog when more than one error
--dialog was being displayed, but I'm not really sure.
--
--* Removed a hack that worked around a bug in very old versions of
--Crafty, where it would sometimes reply "illegal move" to a "."
--command.  The hack kept us from recognizing real illegal move messages
--in analyze mode from engines that don't respond to the "." command.
--Thanks to Fabien Letouzey for the report.
--
--* Fixed a bug in the xboard version of GetDelayedEvent.  It would
--return the most recently scheduled event even if it had already fired.
--This caused at least one visible error: in -ics -xreuse mode, starting
--the engine again and seeing another "feature done=1" would re-run the
--initialization code in InitBackEnd3, including the code that opens the
--connection to ICS.  The WinBoard version didn't have this bug.  Thanks
--to Bob Hyatt for the bug report.
--
--* The promotion popup for ICC wild 26 (giveaway) now includes King.
--Thanks to Fredrik Josefsson for the bug report.
--
--* The first game in a file (or being pasted from the clipboard) can
--now start with a bare move -- no PGN tags, no move number "1", etc.
--Suggested by Shane Harrelson.  One could imagine taking this farther
--and accepting something like "e4 e5 1/2-1/2 d4 d5" as two games, but
--I haven't done that.
--
--* Bug fix: xboard didn't really accept a paste of multiple games,
--contrary to what I wrote when adding the feature to WinBoard in
--4.2.4.  Now it works in both.
--
--* Fixed generic start/end of game messages to work on chess.net, where
--they put ratings in parens after the player names.
--
--* Updated config.sub and config.guess to newer versions from
--automake-1.4p5-2.  This makes configure work with MacOS X + X11.
--
--* Bugfix: when examining a game fragment on FICS where black plays
--first, don't show two "(0:00.000)" times on the initial "none" move.
--
--* If TestLegality is on and one of the engines makes an illegal move
--in TwoMachines mode, it forfeits immediately.  Formerly the game would
--get stuck at that point and the engine that made the illegal move
--would eventually lose on time.
--
--xboard/WinBoard 4.2.6 -- Fri Feb  1 22:26:31 PST 2002
--Tim Mann
--
--Another small bugfix release.
--
--* Put in a small change from Alexander Mai to allow xboard to build in
--an OS/2 EMX environment.
--
--* Fix WinBoard-only bug where editing a PGN file with comments would
--insert more \r characters before the \n after every Load/Save cycle.
--For some unknown reason we were reading the files in "rb" mode but
--writing them in "a" mode, so we kept the \r characters on reading and
--added an extra one on writing.  Fix: change the "rb" to "r".  Thanks
--to Joel (last name not given) for the bug report.
--
--* Put the arguments to rsh/remsh in the right order for better
--portability.  Thanks to Michael Kalisz.
--
--* FreezeUI is now implemented in WinBoard; it was previously only
--implemented in xboard.  This function prevents the user from entering
--moves or other commands while we are waiting for an engine to
--initialize itself.  Implementing it fixes a bug where the user could
--start a game (etc.) during feature negotiation.  One of the symptoms
--of this bug was that we could send "new" one or move moves *after* the
--first game started!
--
--* Fixed some handle leaks (WinBoard only), including a nasty one that
--leaked one handle per command sent to ICS.  Thanks to several folks
--who helped characterize the bug and tried to look for leaks.
--
--* We now install and look for the info file in ${prefix}/share/info
--instead of ${prefix}/info.  The latter is still the default in
--autoconf, but the former is currently used in Red Hat Linux and
--probably elsewhere.
--
--xboard/WinBoard 4.2.5 -- Sat Dec 15 11:42:51 PST 2001
--Tim Mann
--
--* Changed the bundled GNU Chess 5.02 in the WinBoard package to
--include a much smaller book and to use much less hash table space by
--default (8 MB transposition table, 0.5 MB pawn evaluation table).  The
--large book included with 4.2.4 made the WinBoard download too big for
--some people, and the default hash tables were larger than the
--available physical memory on some people's computers. I built the
--small book by running Crafty's "small.zip" book line collection
--through a Perl script that makes it look enough like real PGN games
--that the GNU Chess book builder will accept it.  The script and some
--minor patches to GNU Chess 5 are available in the WinBoard source
--distribution and at http://www.tim-mann.org/gnuchess.html.
--
--* Fixed a bug in the code that deals with engines that complain that
--"time" and "otim" are illegal moves.  This was a new bug in 4.2.4.
--
--* Revamped the implementation of ToStart in analysis mode.  Formerly
--there was some ill-conceived code that would try to get back to the
--start of the game by doing a "new" command (and all the followup
--commands that requires) while remaining in analysis mode.  This is
--problematic for engine authors to support, though it works with
--Crafty.  This code was trying to solve the problem of ToStart being
--slow because the engine would try to start an analysis after every
--"undo" command all the way back to the start.  But ToEnd already had a
--much better solution to this problem, and now ToStart does the same
--thing: we exit from analysis mode and enter force mode instead,
--make/unmake moves to get to the end/start of the game, and then
--reenter analysis mode.
--
--* Formerly, Zippy could try to start playing a game before the engine
--was initialized; that is, during the initial timeout for protover 1
--engines, or before "feature done=1" for protover 2 engines.  We now
--wait until the engine is initialized before connecting to ICS, which
--fixes this in the common case.  If you turn off engine reuse for
--multiple games (that is, if you give the -xreuse option), there could
--still be problems; see item 503 in the ToDo file.  Thanks to Dieter
--Buerssner for the bug report.
--
--* Bugfix: All WinBoard versions since the merge with WinBoard Plus
--(but not xboard) have had a bug in changing the PeriodicUpdates,
--PonderNextMove, and ShowThinking options from the menu.  The bug
--mostly just caused changing these options during a game to not take
--effect until after the next reset.  For TwoMachines games, though,
--changing PonderNextMove just before the game would take effect
--immediately for the second engine but not until the next game for the
--first engine.  Thanks to Koundinya Veluri for the bug report.
--
--* Bugfix: In 4.2.4, we sometimes got confused when trying to leave and
--reenter analyze mode.  One symptom was that Analyze File did not work.
--Thanks to Igor Syry for the bug report.
--
--xboard/WinBoard 4.2.4 -- Sun Dec  9 14:56:30 PST 2001
--Tim Mann
--      
--* WinBoard now includes GNU Chess 5.02 in place of GNU Chess 5.00.
--
--* WinBoard's PasteGameFromClipboard will now handle a paste with
--multiple games in it, popping up the game list dialog.  xboard
--already did this.  Suggested by Robert Gerstman.
--
--* We now use the "clearboard" command on ICC where appropriate.
--
--* Bugfix: don't generate a bogus "variant normal" command to an engine
--for the loadable ICC wild types that we internally flag as
--VariantLoadable.  Also clarified the message that Zippy sends when
--declining such wild games -- it can't deal with the possibility of
--loading an arbitrary position into the game.  Thanks to Dieter
--Buerssner for reporting the problem.  It would be nice to be able to
--actually play these wild types some day; presumably there would have
--to be an option to either send "loadgame" with a specified position,
--or to deal with an opponent sending it.
--
--* If we get a holdings message from ICS when we thought we were
--playing normal chess, we now try asking for a move list so that we can
--find out from the header what's really happening.  Formerly we guessed
--bughouse in this case.  Response to a comment from Gian-Carlo
--Pascutto.
--
--* Fixed two longstanding bugs in the clock code.  These affected only
--play between a user and a local engine, or between two local engines,
--not ICS play.  (1) The last fractional second used by a player before
--moving and virtually pushing his clock was being charged to his
--opponent instead of to him.  (2) The time and otim commands were being
--sent to an engine before the (buggy) fractional second update was
--done.  The second bug was pretty harmless in itself, but the first one
--was serious.  Many thanks to Peter Rosendahl for carefully diagnosing
--and reporting these bugs!
--
--* Changed WinBoard timestamp key.  Nothing is changed other than the
--key and a recompilation.  ICC may phase out the old key soon; if they
--do, you'll need to use the timestamp.exe from WinBoard 4.2.4 or later
--to connect to chessclub.com.
--
--* Fixed an xboard-only bug where most dialogs would not take keyboard
--input unless the mouse was actually over the dialog, even if the
--dialog window had focus.  Thanks to Jason Varsoke for the bug report.
--
--* Bugfix; Remember to send time and otim commands to engine before
--sending playother.  Thanks to Bob Hyatt for the bug report.  Also
--fixed a bug where time and otim were sometimes sent even with feature
--time=0.
--
--* Added small patches from Wilkin Ng that are meant to fix a crash in
--CopyGameToClipboard and a "can't unlock clipboard memory" error in
--PasteTextFromClipboard, under Windows 2000.
--
--* Changed cygwin.mak to not use -mno-cygwin.  In other words, it now
--uses cygwin1.dll instead of the mingw libraries.  This works around
--bugs in fileno() and stat() that I encountered in mingw.  (fileno
--seems to always return 0.  stat fails because the library routine uses
--a different definition of struct stat than the header files provide.)
--Thanks to Robert Gerstman for reporting the symptoms these bugs caused
--when WinBoard was compiled with Cygwin.
--
--* Added -showButtonBar option.  This lets you delete the << < P > >>
--buttons and thus widen the message widget a bit.
--
--* Added code to address a very obscure bug.  If an engine dies and
--needs to be restarted while in one of the analyze modes, it was not
--getting put back into analyze mode.  This bug should not really ever
--have gotten tickled unless reuse was turned off and the engine sends
--game end commands (such as 1-0) when a game ends by rule while in
--analyze mode.  The next version of the protocol spec will say that
--engines should not do that, but version 2 and earlier didn't address
--the issue.
--
--* We now use the FICS "iset ms 1" feature to get times in ms instead
--of seconds.  Thanks to DAV for email telling me about this feature.
--
--* Changed clock display to show tenths of seconds for 9.9 seconds and
--less, instead of 0.9 seconds and less as before.
--
--* It has been discovered that Zippy can play simuls on ICC (but not on
--FICS).  If you arrange for Zippy to send the ICC command "simulize" in
--the -zippyGameStart string, it will accept additional games while
--playing.  Zippy will use the same engine for every game, so whenever
--it switches opponents, the engine's state will be reset with the "new"
--command.  This will of course weaken its play, so don't enable simuls
--if you want your engine to have the highest possible rating.  Zippy
--was never designed to work with simuls; it just works by accident, and
--it hasn't been tested much.  So please report any bugs you notice, but
--don't expect them to be fixed rapidly.  Thanks to Paul McGuire for
--noticing that this works.
--      
--* Bugfix: Suppress the direct command to engine popup if there is no
--engine.  In WinBoard this case used to cause a crash.  Thanks to
--"Dargon" for the bug report.
--
--* Bugfix: formerly we did part of the engine initialization for the
--very first game too soon, before feature negotiation.  One result of
--this is that engines would never get the "ics" command for the first
--game.
--
--* Lengthened timeout to detect protocol version 1 chess engines to 10
--seconds.  This should reduce problems with protocol version 2 engines
--that are slow to initialize missing the timeout and not getting a
--chance to send their feature commands before the first game starts.
--
--* Klaus Friedel says that adding a short sleep to WinBoard after
--starting a new chess engine solves a problem that occurs under Windows
--2000, in which engines sometimes don't see the initial command(s) from
--WinBoard and hang.  I don't understand how that can happen, but the
--sleep is harmless, so I've put it in.  Others have also reported what
--may be the same problem, so hopefully this will fix it for them too.
--
--* Bugfix: editing the Result field in EditTags will no longer cause a
--later crash.  Thanks to DAV for a clear bug report that let me
--reproduce the problem.
--
--* ICC wild 28 is now recognized as shatranj, but it is not supported.
--You might be able to play it by turning off Test Legality.
--
--* Formerly we would always turn off "feature time" if the engine
--printed an error message with the string "time" or "otim" in it; now
--we do that only if the message comes before the engine makes its first
--move.  This change is useful because some engines spew a lot of bogus
--error messages about commands they don't fully parse, so something
--like "result 0-1 {White lost on time}" could generate such a message.
--Engines shouldn't do that, but if they do, mysteriously turning off
--"feature time" is not a good way to react.
--
--* Fixed an infrequently occurring Zippy bug: formerly, resuming from
--adjournment by position (that is, with GetMoveList turned off) or
--starting/resuming a wild game (nonstandard starting position) would
--try to set up the position without putting the engine into force mode
--first.  That was probably tolerated by most engines, but if the
--position was black-to-play and the engine hadn't set feature
--setboard=1, then the fake "a2a3" move (which we use as a kludge to get
--black to be on move before sending the edit command) would appear to
--be a real move, and the engine might reply to it!  This bug could also
--be seen when trying to use Zippy to play a simul -- something that
--Zippy was never designed to support, but which seems to mostly work
--anyway.  Thanks to Paul McGuire for sending a WinBoard.debug file that
--showed the bug occurring.  Some other cases of resuming adjournments
--or starting games from nonstandard positions may have been broken too;
--I think I've straightened out the problems.
--
--* Agreeing to a draw in the human vs. local engine case formerly did
--not work if the human offered first; now it does.  A human's
--unsolicited offer is considered valid until he makes another move.
--Thanks to Bruce Moreland for the bug report.
--
--* Bugfix: We used to look for just "fr" in Event tags or strings from
--ICSes to recognize Fischer Random games.  This caused a lot of false
--matches.  Now we look for "wild/fr" instead, which is what FICS uses.
--
--* Bugfix: Clicking on a move in the MoveList window only updated the
--displayed position; if a chess engine was active, its state was not
--updated.  Thanks to Alejandro Dubrovsky for the bug report.
--      
--* Bugfix: The "resign" command from engine to xboard formerly did not
--work in ICS (Zippy) mode.
--
--* Bugfix: Formerly we would register a garbage premove if the user
--clicked on a piece, then clicked on an edge or outside the board.  Now
--such an errant click is ignored.
--
--* Bugfix: GameEnds would send "exit" to an engine in analyze mode even
--if we did not actually want to leave analyze mode.
--
--* Bugfix: "feature pause" was being rejected.  We don't currently use
--it, but that is no reason to reject it.  Thanks to Gian-Carlo Pascutto
--for the bug report.
--
--* Bugfix: when "partner" needed to be sent both to ICS and the engine,
--Zippy was erroneously sending the ICS prefix character to the engine
--too.  Thanks to Gian-Carlo Pascutto for the bug report.
--
--* Zippy now declines challenges when the engine is not yet ready to
--play again, instead of ignoring them.  This is needed so that the
--server will let the opponent repeat the challenge.  It might be better
--to remember such challenges and accept them when the engine is ready,
--but that would be a bit more complicated to implement.
--
--* Bugfix: Zippy's emotes didn't work on FICS because there, "i" is a
--built-in alias for "it", not a real command.  So sending "$i foo" gave
--an error message instead of doing "it foo".  We now leave out the
--alias-suppressing prefix for emotes.
--
--xboard/WinBoard 4.2.3 -- Mon Feb 19 19:55:05 PST 2001
--Tim Mann
--
--* Bugfix: The error message "Variant X not supported by gnuchessx"
--formerly could pop up even in -ncp mode.
--
--* Fixed an xboard bug in premove highlighting.  If you had
--HighlightLastMove turned on, premoves got highlighted in
--highlightSquareColor (yellow) instead of premoveHighlightColor (red).
--
--* Modified premove again.  Now we are back to displaying the move
--locally immediately after sending it to the server, as in versions
--prior to 4.2.1.  This is good because it lets you register your next
--premove sooner.  As a better fix to the problem that the change in
--4.2.1 had been trying to address, we now suppress animating the
--opponent's move if you have a premove reply pending.  However, it's
--probably still a good idea for you to turn off AnimateMoves entirely
--if you are trying to play extremely fast games.
--      
--* Removed an erroneous patch that left zombie chess engines around
--when both sigterm and reuse were turned off.  (Bug was in xboard only,
--not winboard.)
--
--* Bugfix: loading a game with autostepping did not work for games with
--PGN result "*" (unfinished).  This bug was introduced in 4.1.0, caused
--by some outdated code that was supposed to leave you in EditGame mode
--after loading an unfinished game.  I fixed this, and also changed it
--to leave you in EditGame mode after loading *any* game, but without
--changing the tags to say it's an edited game.  It's not really clear
--whether that is the best thing is to do here -- ideally, perhaps, the
--tags should change to say "edited game" if you actually make any
--changes, but that is harder to make work.
--
--xboard/WinBoard 4.2.2 -- Tue Feb  6 20:00:00 PST 2001
--Tim Mann
--
--* Fixed a problem introduced in 4.2.1.  In -zippyPlay mode, 4.2.1
--started sending the initString immediately after the old game ended,
--but then when the next game started, it would still send "force" and
--another initString.  Another problem was that the first initString put
--the engine out of sync with the displayed board position, though that
--might not usually have been noticeable.  This is now changed to do a
--full Reset at the end of the previous game, and avoid doing a Reset at
--the start of a new game if we are still in BeginningOfGame mode.
--
--* Fixed some limitations in -zippyPlay mode.  The engine was not being
--fed the moves or history of games that were displayed but not being
--played, so it would get confused if you tried to do something like
--examine a game, then enter EditGame mode from somewhere in the middle
--of the game.
--
--* Made a small change so that cygwin can compile xboard for Windows
--(an X server is required to run it).  Thanks to Volker Zell.  Most
--people would probably prefer to run WinBoard on Windows, however; note
--that cygwin could already compile WinBoard.
--
--* Added some missing documentation to engine-intf.html: It is okay to
--send "feature done=0" even before you receive the xboard and protover
--commands, if this is needed to give your engine enough time to
--initialize.  See engine-intf.html for more discussion.
--
--* Bugfix: "feature done=0" did not work for the second engine; now it does.
--
--xboard/WinBoard 4.2.1 -- Sat Feb  3 19:52:26 PST 2001
--Tim Mann
--
--* Bugfix: in Zippy mode with feature san=1, the elapsed time was being
--sent to the engine after the SAN move; for example, "e4 (0:01)" was
--sent instead of just "e4".
--
--* It seems that scroll wheel mice with incompletely installed software
--(under Windows 95, at least) can send repeated middle button up events
--when the wheel is turned.  Moved QuickPaste from middle button up to
--middle button down to avoid problems with this.
--
--* A premove is now sent *before* the opponent's move that it replies
--to is animated.  The premove itself is no longer displayed (or
--animated) when sent; instead, it is displayed when the chess server
--echoes it back as a board update.
--
--* Bug fix: in -xreuse mode, xboard was only sending command line
--arguments to the engine the first time it was started.  (WinBoard
--didn't have this bug.)
--
--* In -zippyPlay mode, we now initialize the chess engine for a new
--game immediately after the old game ends.  (In -xreuse mode, this
--means starting a new engine process; in the default -reuse mode, it
--just means sending "new".)  If the engine supports ping, we don't
--accept challenges until the "new" has finished.  This should help
--avoid losing time (re)initializing the engine after the game starts.
--
--* We now handle the new FICS field in style 12 that says whether the
--clocks are ticking.
--
--* whiteFlag and blackFlag are now reset whenever an ICS board image
--arrives, giving autoflag a fresh chance to work.
--
--* Suppressed "geometry error" debug messages unless -debug flag is given.
--
--* Bugfix: avoid core dump on Solaris with -debug flag, caused by
--passing NULL to a %s format in GameEnds.
--
--* Added -firstProtocolVersion and -secondProtocolVersion.  This will
--allow use of extremely broken engines that hang or die when given the
--"protover 2" command.  It should be rarely if ever needed.
--
--* Zippy now strips highlights from player names in the Creating
--message; previously the ratings would not be extracted from this
--message properly if you had set the highlight variable.
--
--* Bug fix: Zippy with -zp but not -zt used to be fooled by false
--partner tells inside channel tells; e.g.: 
--Garf(24): Garf (your partner) tells you: sit
--
--* Bug fix: when an engine reported its name with the new "feature
--myname=" command, we had been putting just that name into the window
--title even when in TwoMachines mode.
--
--* By default, WinBoard no longer uses the new feature introduced in
--4.2.0beta of keeping the ICS menu, ICS server list, and lists of chess
--engine command lines in separate files; instead, the lists are back in
--the winboard.ini file.  This gets rid of some problems where the
--separate files could not be opened because the working directory was
--not set to WinBoard's installation directory.
--
--* WinBoard command lines and ini files now have another optional
--syntax for quoting an option value.  All characters within { } curly
--braces are interpreted literally except for '}' itself.  SaveSettings
--now uses this syntax for string values that contain a backslash or
--newline and do not contain a '}'.  This should address the problem
--that the separate .ini files had been meant to fix; engine command
--line lists can now be written without \-escapes.
--      
--* Fixed three bugs in relaying moves between engines in TwoMachines
--mode: an engine would be sent SAN if the *other* engine had set
--feature san=1, a relayed SAN move did not end with a newline, and
--feature usermove was not implemented for relayed moves.
--
--* Fixed several bugs in exiting: File/Exit would sometimes hang;
--timestamp/timeseal would not get killed off; an engine crash would
--cause error messages to be printed recursively until stack overflow.
--
--* Fixed a bug in the code to detect which ICS is in use and adapt to
--it; the chess.net case was broken.
--
--* Removed the leading alias-suppression character when sending a move
--to ICS, because it seemed to break accuclock on chess.net.
--
--* Fixed a bug where a FICS prompt like "10:01_fics%" would be matched
--as finger note number 10, causing a problem detecting when the user is
--logged in.
--
--* Added tellicsnoalias command to protocol.
--
--* Changed st command in protocol back to old behavior.
--
--* Added done=0 feature to protocol, to lengthen initial timeout.
--
--* Added missing -colorSeek command line option to xboard.  (Was
--present in WinBoard.)
--
--* Bug fix: setting feature reuse=0 was not working.
--
--xboard/WinBoard 4.2.0beta -- Sat Dec 16 16:34:56 PST 2000
--Tim Mann
--
--* Setting -searchTime no longer turns off -clockMode.  Note that when
---searchTime is set, some engines may search for the lesser of
--searchTime and the amount of time their normal clock management would
--dictate, while others will disable their normal clock management and
--always search for exactly searchTime.
--
--* Fixed WinBoard bug where on Windows 2000 (and maybe Windows 98) the
--ICS Interaction window would scroll back to the top whenever it filled
--to capacity and WinBoard trimmed some text off the top.
--
--* Changed xboard dragging so that the center of the dragged piece is
--forced to be over the mouse cursor.  (WinBoard dragging already worked
--that way.)  This should avoid confusing cases when you start a drag
--with the mouse near the edge of a square -- formerly most or all of
--the piece could be over one square but the mouse cursor over another.
--Suggested by DAV.
--
--* Added move list window for xboard.  Code contributed by Manuel
--Hoelss and re-hacked a bit by me.  Performance of this window is poor,
--because the implementation regenerates the entire window contents
--whenever anything changes.  It's hard to avoid this when using the
--Athena List widget, though we could be a little smarter and notice
--when the current move number has changed but the move list has not.
--There are also several drawing problems caused by bugs in the Athena
--Form and List widgets.  The window should not really allow a
--horizontal scroll bar, but the bugs are much worse if I turn it off.
--In both Xaw and Xaw3d, the List widget tries to resize itself when
--XawListChange is called, even if you tell it not to; and what's worse,
--if the widget cannot resize itself to be large enough to avoid
--clipping any of the list item, it does not change the list!  Arrgh.
--On top of that, the Xaw Form widget is very buggy in XFree86 4.0.1
--(X11R6.4.3).
--
--* The OK button in the WinBoard startup dialog is now simply disabled
--if none of the radio buttons is selected, instead of bringing up an
--error dialog.  Suggested by Ted Milbaugh.
--      
--* Used ping to address the worst of the race conditions in the
--protocol.  Now if an engine supports ping, we ping it after sending
--the "new" command and after trying to place it in force mode at the
--end of a game.  When a ping has been sent and the corresponding pong
--has not yet come back, we (1) ignore or undo any moves the engine
--sends, (2) ignore game end messages (such as "offer draw", etc.) from
--the engine, (3) ignore thinking output from the engine, (4) delay
--starting the next game if in -matchGames mode, (5) in -zippyPlay mode,
--respond to challenges with a polite message to try again soon instead
--of accepting them.  There are a few more things that should be done
--(and item 5 might not be quite what we want), but it's hard to fit
--them all into the existing code.
--      
--* Patched the version of GNU Chess 5.00 included with WinBoard to
--support protover, feature, setboard, and ping, and to fix some minor
--bugs.  See gnu500+.patch.
--
--* Changed the GNU Chess 4 kludges for missing "st" and "sd" commands
--to be invoked only if the engine gives an error message for "st" or
--"sd", and to always use protocol commands instead of engine
--command-line options.  See "Idioms" in engine-intf.html.
--
--* Added new protocol command "protover 2" to tell the engine what
--version of the protocol is in use.  Version 2 is still compatible with
--old engines; see engine-intf.html.
--
--* Add new protocol command "feature ..."  The engine can send this in
--response to the protover command command, to say what extended
--protocol features it would like to enable, etc.  xboard responds
--"accepted F" or "rejected F" for each feature F that is set.  See
--engine-intf.html.
--
--* Added new protocol command "setboard <fen>".  This is an alternative
--to "edit", used only if the engine says "feature setboard=1".
--
--* Added new protocol command "ping <msg>".  The engine is supposed to
--respond "pong <msg>".  This gives us a tool to fix some race
--conditions in the protocol, but it is not used to the fullest yet.
--
--* Added new protocol command "tellopponent".  This will do a "say" if
--you're on a chess server in Zippy mode, or pop up an information
--dialog otherwise.
--
--* Added new protocol command "tellall".  This will do a "kibitz" if
--you're on a chess server in Zippy mode, or pop up an information
--dialog otherwise.
--
--* Added new protocol command "tellothers".  This will do a "whisper" if
--you're on a chess server in Zippy mode, or do nothing otherwise.
--
--* Changed the WinBoard /icsNames, /icsMenu, /firstChessProgramNames,
--and /secondChessProgramNames options to accept a filename preceded by
--"@", meaning to find the value in the file.  Changed the defaults to
--use this feature, with filenames icsnames.ini, icsmenu.ini, fcp.ini,
--and scp.ini.  This should make it easier for users to edit the values,
--since one less level of quoting is needed, and each value is in its
--own file, not mixed into winboard.ini.  Those who upgrade from an
--older winboard version and already have a winboard.ini file will not
--automatically have these values moved to a file; that has to be done
--by hand if desired.
--
--* We now strip .exe from engine names for "name" command, tags, etc.
--
--* Allowed WinBoard input widget to hold more than one line.  You can get
--a newline into the widget with copy/paste or with Ctrl+Enter.
--
--* Fixed an xboard bug where the [P] button would appear in the
--opposite highlight state from what it should be after being pressed.
--
--* We now use the "/" or "$" alias suppression feature on the chess
--servers, to avoid problems if the user inadvertently aliases a
--needed command to something else.
--
--* Changed the method used to deiconize xboard in AutoRaise and cmail.
--This may fix bugs under some window managers where after
--deiconization, the board window was mapped but nothing was drawn
--inside.
--
--* Preliminary, partial support for playing several chess variants
--against a local engine or editing variant games.  The -variant option
--must be given on the command line or WinBoard startup dialog; there is
--no menu.  The current variant is not displayed (except in the
--Tags/EditTags window).  Many variants will not work quite right even
--if the engine supports them; see item 326 in the ToDo file for
--details.
--
--* Added a workaround to detect the variant type when examining a
--scratch wild game on an ICS.
--
--* Fixed two cases where "variant" command should be sent to the engine
--when necessary but was not: loading a game from a file and restarting
--a dead engine.  Thanks to Gian-Carlo Pascutto.
--
--* Added missing support for FICS games that start from a bsetup position
--with Black moving first.
--
--* Fixed a bug in loading a file from the game list window while in
--Analysis or AnalyzeFile mode.  This now leaves us in AnalyzeFile
--mode, analyzing the new file.
--
--* Fixed a bug in loading games with a comment before the first move.
--
--* Fixed a bug in handling LoadGame (or -lgf) with -td 0.
--
--* Added a command line option to select an initial minor mode from the
--Mode menu.  This should satisfy requests from a couple of users with
--special applications.
--
--* Fixed a problem where some things in WinBoard's General Options
--dialog box were grayed out at the wrong time.
--
--* We look for a few messages from the chess engine pipe that are
--intended to catch problems starting an engine via rsh, such as "No
--such file".  Moved code so that these strings won't match until other
--protocol messages have been looked for, and documented the messages in
--engine-intf.html.
--
--* Fixed the WinBoard bug that sometimes made the console input box
--white-on-white even when not in password-entry mode.
--
--* Small changes to WinBoard to be compilable with the latest Cygwin
--net release (as of 10-16-2000).  Thanks to Mark Schoenberg.
--
--* Recompiled GNU Chess 5.0 for WinBoard with the latest Cygwin net
--release (as of 10-16-2000).  Also rebuilt the book just to be sure,
--since I had one bug report about it.  It came out identical and seems
--to work fine.
--
--* Added messages for some common InstallShield errors instead of just
--printing InstallShield's stupid error code numbers.
--
--* Added -firstComputerString and -secondComputerString, allowing you
--to suppress or change the command that is sent to a chess engine when
--its opponent is another computer.
--
--* Added "configure --with-Xaw3d" to allow use of Xaw3d widgets instead
--of Xaw widgets in xboard.  Thanks to Johnny C. Lam of the NetBSD
--project.  I've left Xaw as the default because Xaw3d is too ugly.
--      
--* The version of the Xaw Form widget released in XFree86 4.0.1
--(X11R6.4.3) has a bug that causes xboard to display the button bar
--on top of the message widget.  I've reported the bug and have
--installed a kludge workaround into xboard.
--
--xboard/WinBoard 4.1.0 -- Sun Sep 17 17:30:14 PDT 2000
--Tim Mann
--
--* Merged Winboard Plus 4.0.8 from Mark Williams into xboard
--  source pool.  Status of Winboard Plus features in xboard:
--
--  - White pieces now have borders, but the implementation is
--    completely different from WinBoard's; see below.
--
--  - Options menu not changed, probably won't be.
--
--  - Copy&paste support working, using Mark's changes to backend.c, Ben
--    Nye's changes to xboard.c for FEN positions, and some code of my
--    own in xboard.c for PGN games.
--
--  - Premove hooked up and working.  No pre-first-move, though.
--
--  - ICS Alarm hooked up and working.
--
--  - Auto-flip working.
--
--  - PGN Training mode hooked up and working.
--
--  - Improved menu item enable/disable working.
--
--  - Improved >> button working.
--
--  - Auto activate board working.  I changed this to be optional; you
--    might not always want it, especially in Zippy mode.
--
--  - Blindfold working.
--
--  - Documentation updated.
--
--* Fixed more colorization bugs.  Commands like "message foo tells you:
--xxx" and "tell 33 tells you: xxx" will no longer generate bogus
--colorization.
--
--* Added low-tech sound support to xboard, by invoking an external
--program on a filename for each sound to be played.
--      
--* ICC wild 27 is now recognized as VariantAtomic, and it sets the
--"ignore check" flag, but is not otherwise supported.
--
--* Converted the piece bitmaps from .bm to .xpm for use with xboard's
--xpm support.  (An .xim version was not created.)  Wrote a shell script
--using ImageMagick to do the conversion and to bucket fill from
--coordinate 0,0 with the background color.  Used xpaint by hand to
--clean up a few pieces where background color "leaked" into the inside
--or didn't flow all the way around the outside, then a sed script to
--fix up color names and bitmap names in the xpaint output.  If any more
--sizes are added later, they should be straightforward to convert with
--reference to the existing scripts.  With this conversion, not only do
--the white pieces now have dark borders, but (unlike with WinBoard) the
--light details on the black pieces are opaque.
--
--* If the XPM library is found when building xboard, the new xpm pieces
--are compiled in as the default.  External bitmap (or xpm) pieces can
--still be used by giving the -bitmapDirectory (or -xpmDirectory)
--option.  If the XPM library is not found, the old bitmap pieces are
--the default.  In this case external bitmap (or xim) pieces can be used
--by giving the -bitmapDirectory (or -xpmDirectory) option.  There is no
--way to compile in xim pieces.
--
--Winboard Plus 4.0.8 -- Sat Aug 5 15:51 PDT 2000 
--Mark Williams
--
--* Bugfix release.
--
--* Main menu now visible in Win NT.  Thanks to Microsoft for creating a 
--compiler which auto-mutilates the WinBoard.rc file so that the menu is
--displayed under Win 98 but not Win NT.  I fixed the problem by hand editing the
--.rc file.  Sigh.
--
--* "Reset game" now works properly when invoked from Analysis mode when two
--engines are present. Correction of bug introduced in Winboard Plus. Thanks to
--Mogens Larsen for reporting the bug.
--
--* Pasting a FEN position with Black to move now works in all modes.
--Thanks to Mogens Larsen for reporting the bug.
--
--* Added gnuchess.dat to the distribution and a couple of text files that were
--missing in 4.0.7.
--
--*** Merged in the following changes from Tim Mann:
--
--* Bugfix: Highlights would sometimes not be taken down, at least in
--xboard.  The problem is that SetHighlight works in chess coordinates,
--not view coordinates, so if flipView has been toggled since the
--highlight was put up, it gets taken down from the wrong square.  Fixed
--by being careful to call ClearHighlights before toggling flipView, not
--after.  Ugh.
--
--* Bugfix: HighlightLastMove would sometimes highlight square a1 after
--a FICS "tomove black" command.
--
--* Bugfix: a move list with initial position that has black to play was
--not being handled correctly.
--
--* Removed "decline abort" and "decline adjourn" commands from Zippy.
--The syntax is changing on FICS, and Zippy really doesn't have to
--explicitly decline the requests anyway; it's sufficient to not accept
--them.
--
--* ICC wild 26 is now recognized as VariantSuicide (the FICS name; ICC
--calls it "giveaway").
--
--* Bugfix: PGN games with black to move in the initial position weren't
--being legality checked correctly.  I think this was introduced in
--4.0.6 when I fixed a different PGN bug.  Thanks to Mark Williams for
--spotting the bug and suggesting a fix.
--      
--* Bugfix: the initial "name(" of a kibitz wasn't being colorized.
--
--Winboard Plus 4.0.7 -- Thu May 12 17:57 PDT 2000 
--Mark Williams
--
--* New white pieces with black borders.
--
--* Major overhaul to Options menu. New dialogs for setting General Options,
--  Board Options, ICS Options, Sounds, Fonts, Colors.
--
--* Clipboard support for PGN game scores and FEN positions.
--
--* Optional ICS Premove with user-specified first moves for White and Black.
--
--* New sound events: ICS Win, ICS Loss, ICS Draw, ICS Unfinished, ICS Alarm.
--
--* New auto-flip option when playing against a chess program.
--
--* Added PGN Training mode.
--
--* Certain menu options now disabled while program is thinking.
--
--* ">>" button now always goes to the end of the game.
--
--* In ICS mode, the board is automatically activated at the start of a
--new game.
--
--4.0.7 -- Sun Mar  5 17:17:49 PST 2000  Tim Mann
--
--* Fixed a nasty bug in parsing ICS game histories that was introduced
--in 4.0.6.
--      
--4.0.6 -- Fri Mar  3 16:20:11 PST 2000  Tim Mann
--
--* Fixed bugs in Zippy's code for responding to messages sent with the
--ICS "message" command.
--      
--* Fixed bugs where xboard could still create dialogs partially off the
--top of the screen.  Fixed unwanted interactions between initial sizes
--and positions of various unrelated xboard dialogs.  Deleted
--borderXoffset and borderYoffset resources.
--
--* Fixed restoring the xterm name on exit to work in more cases.
--      
--* Small fix to the WinBoard self-extracting installer: when it starts
--up, it now always deletes any old wb-setup directory left over from a
--previous installation.  Formerly this worked only on Windows 95/98, so
--on NT the self-extractor would sometimes stop and ask the user whether
--it was OK to overwrite the old wb-setup files.
--
--* Modified WinBoard to be compilable with the free Cygwin tools
--available from http://sourceware.cygnus.com/cygwin/.  Based on work by
--Mark Schoenberg.  (His mods were enough to get WinBoard through the
--compiler, but a few things were broken along the way, so I reworked them.)
--      
--* Merged changes from Don Fong to make WinBoard compilable with
--Borland C++ 4.5.  I do not have Borland C++ and am unable to test with
--it, but I did make sure the changes don't stop it working with MSVC++
--5.0 and Cygwin.
--
--* Forbade entering TwoMachines mode from MachineWhite or MachineBlack
--mode when machine is on move.  This used to confuse the engine and
--cause problems, because when we try to get the engine to stop, it
--might make a move first, and it might not do that immediately.
--      
--* Variant classification now deals with new ICC wild 25, classifying
--it as "3check".  Also, we are now conservative about new wild numbers
--we don't know about, classifying them as "unknown" instead of
--"normal".
--
--* Replaced bad GNU Chess 5.00 book in WinBoard distribution with a
--correct one.  1.e4 now no longer takes GNU Chess 5.00 out of book!
--Thanks to Pete Galati.
--
--* Made move parser accept and ignore nonstandard ep suffix on PGN moves,
--e.g., "exf6ep" or "exf6e.p."
--
--* Fixed bugs in parsing PGN files starting with no move number, or
--with a move number other than "1." (including "1...").  Thanks to
--Michael Soulier and Stefan Zipproth for example PGN files
--demonstrating the bugs.
--      
--* Changed InitComboStringsFromString to not modify the input string;
--this caused an exception when WinBoard was compiled with MSVC++ 6.
--Thanks to Bert Tuyt for the report.
--
--* In WinBoard, dragging a piece off the edge of the board without
--releasing the mouse button no longer instantly aborts the move.  You
--still must release the mouse button inside a square to complete a
--move, but you can now drag off the edge and come back inside.
--      
--* WinBoard bugfix: If you went into EditGame or EditPosition mode
--while observing or playing an ICS game, and a new move came in
--(snapping you back to ICSClient mode) while you were dragging a piece
--around, the drag state would not be reset, causing the piece you were
--dragging to remain on the board wherever you dropped it.  Thanks to
--David Brinegar for the bug report.
--
--* WinBoard bugfix: If you moved or resized the board while your
--opponent was moving, and you had AnimateMoving on, his move would not
--be displayed until after your next move.  Thanks to DAV for reporting
--the bug repeatedly until I finally understood it.
--
--* Added a Zippy "farewell" feature; see zippy.README.
--      
--* Fixed a bug (xboard only) in processing -zippyReplayTimeout on the
--command line.  Thanks to Steve Beer for the report and patch.
--
--* Send "computer" command to both sides in TwoMachines matches.
--      
--* Fixed a Y2K bug in Evan's cmail code!  Thanks to Brian Mays for the
--report and patch.
--      
--* Bugfix: Initialize variant field of GameInfo struct in gameinfo.c.
--This could cause crashes in LoadGame.  Thanks to Andrzej Nagorko.
--      
--* Fixed several pattern matching problems: Finger notes and formula
--vars no longer get replied to by zippyTalk or colorized.  Channel
--tells by players with many titles are now colorized fully, and
--zippyTalk handles channel tells by such players correctly.  The shout
--"--> foo(99): bar" no longer gets colorized as a channel tell.  Code
--is cleaned up a bit, and autocomment capture now uses the same
--criteria as colorization.
--
--* xboard fix: Enter key now closes error popups as in WinBoard.
--Especially nice for the "Exiting: Connection closed by ICS" popup.
--
--4.0.5 -- Tue Dec  7 10:30:40 PST 1999  Tim Mann
--
--* Added missing documentation of SIGTERM usage into engine-intf.html.
--
--* Bugfix: New -zippyReplayTimeout option was misspelled in WinBoard as
---zippyReplyTimeout.  Thanks to Francesco Di Tolla.
--      
--* xboard -ics now restores the xterm's original title upon exit, at
--least if $WINDOWID is set.
--
--* Bugfix: -matchGames mode wasn't terminating properly.  Final score
--popup would come up twice and engines would not be killed off.  Thanks
--to Frank Quisinsky for the bug report.  Bug was introduced in 4.0.4.
--
--* Bugfix: "tell 50 foo shouts: bar" no longer gets colored as a shout;
--similarly for "...s-shouts:" and "...c-shouts:".  Thanks to David Lee
--for the bug report.
--
--4.0.4 -- Fri Dec  3 17:51:27 PST 1999  Tim Mann
--
--* Bug fix: formerly if you invoked SaveGame from EditPosition mode
--with black to play, the position was not saved properly.  As a quick
--fix, SaveGame now takes you out of EditPosition mode before saving.
--
--* Changed -matchGames to keep track of the score (won-lost-drawn) and
--display it in the banner.  The final score is displayed in a modal
--popup before the program exits.
--
--* Changed "Connection closed by ICS" to display in a model popup
--before the program exits.
--
--* Added -popupExitMessage option, default on.  Setting this to false
--suppresses the modal popups that you sometimes get just before
--xboard/winboard exits -- both the two new ones listed above and the
--existing Fatal Error popup.  This is useful when running Zippy
--unattended from a shell script (or .bat file) that loops and starts a
--new copy after a time delay when there is an error.
--
--* In xboard, added missing support for WM_DELETE_WINDOW to all
--windows.  This makes xboard a better citizen, and is much needed with
--the newer X window managers that put an [X] button on every window and
--bind it to "kill application" if the applicationd does not support
--"delete window".  We can't allow xboard to be thoughtlessly killed,
--since that leaves the chess engine running in the background.
--
--* We now avoid positioning tops of xboard dialog boxes offscreen.
--
--* zippy.lines can now use the caret ('^') character as an inter-saying
--separator. You no longer need to dig up a text editor that can put NUL
--('\000') characters in text files.
--
--* Bugfix: In traditional chess clock mode, White now gets time added
--to its clock as soon as it makes time control.  Previously both White
--and Black got their time added only when Black made time control,
--which would cause some engines to make their 41st move as White too
--quickly, thinking they were low on time.
--
--* The zippyAcceptOnly feature no longer sends a decline command or
--a tell.  Thus you can use it to put Zippy into a manual accept mode.
--
--* Bugfix: "tell 50 foo tells you: bar" no longer gets colored as a
--personal tell; similarly for "...whispers:" and "...kibitzes:".
--
--* WinBoard no longer blanks the message line when you start a new
--move, unless there was an error message there from the previous move.
--
--* WinBoard now never puts the white piece drop menu on the middle
--mouse button.  Both colors are always on the right button.  Windows
--users often don't think to look for a middle button menu, or don't
--really have a working middle button despite what Windows says.
--
--* Guest login handles on ICC are now parsed again; an ICC wording
--change had broken this feature.
--      
--* Autodetect when the engine does not support the "draw" command and
--don't relay the command to it in that case.  Needed because sending an
--unsupported command to GNU Chess makes it move immediately, so people
--could make Zippy move without thinking by continually offering a draw.
--Thanks to Frank Walker for the problem report.
--
--* Small changes based on code from Robert Jurjevic: The WinBoard
--analysis window can be minimized (though not to the taskbar).  The
--WinBoard ICS Interaction window will autoscroll if you drag the mouse
--above or below the window while selecting, and password entry mode
--leaves the entry line as the background color instead of using 75%
--gray.  Seeks are now colorized with a new color of their own.
--
--* Added -zippyMaxGames feature.
--      
--* -zippyNoplayCrafty command line option was missing in xboard; fixed.
--Thanks to John Perry.
--
--* Fixed bug in detecting when Zippy loses his bughouse partner.
--Thanks to Ben Dean-Kawamura.
--
--* allobs fix in 4.0.3 didn't work; corrected it.
--
--* WinBoard will now update the board immediately if a move is made
--while the window is being moved or resized.
--      
--4.0.3 -- Sun Aug 15 18:44:39 PDT 1999  Tim Mann
--
--* Bugfix: moved winboard wizard functions that send a command directly
--to the chess engine from Ctrl+Alt+1 and Ctrl+Alt+2 to Alt+1 and Alt+2.
--Ctrl+Alt is equivalent to the European AltGr key, so the old assignments
--conflicted with typing an @-sign on some keyboards.
--      
--* Bugfix: prevent "If this message stays up, your chess program does
--not support analysis" from appearing if AnalysisMode is selected when
--already in Analysis or AnalyzeFile mode.  Also, deleting analysis window
--in WinBoard now switches you to EditGame mode, to avoid the anomaly of
--being in an analysis mode with no analysis window present.
--      
--* Change all Zippy environment variables to work as command line
--options.  For now they still work as environment variables too, but
--the environment variables are deprecated.
--
--* Use unsigned long to hold node counts from engines.
--
--* Print error instead of crashing on attempts to use xpm or xim pieces
--in monochrome mode.  Thanks to Jim Torrance for the bug report.
--
--* Tightened pattern recognition for ICS messages sent to Zippy; should
--no longer match ICC allobs output.  Fixed recognition of when Zippy is
--sent a message; small change to FICS output had broken it.
--      
--* Zippy now exits if the engine dies unexpectedly.
--
--* Added Zippy "spoofedby" feature; see zippy.README.
--      
--* Narrowed the margins on some older WinBoard dialogs to make their
--style uniform with the newer ones.
--
--* Bugfix: Changing Ponder Next Move from the Options menu did not take
--effect until the next game.  This bug was in WinBoard only.  Thanks to
--Stefan Zipproth for the bug report.
--
--* Got rid of "Internal error: bad move type" message when the engine
--makes a move that we can parse but think is illegal.  Now the move is
--just passed on (which also may be the wrong thing to do).
--
--4.0.2 -- Thu Feb 25 19:55:32 PST 1999  Tim Mann
--
--* Added one more built-in sound choice to WinBoard: move.wav from Pete
--Galati.
--      
--* Added new larger piece sizes: big, huge, giant, colossal, titanic.
--      
--* Modified the xboard font searcher to be able to use scalable fonts.
--The new -fontSizeTolerance flag controls how closely a nonscalable
--font must match to be used in preference to a scalable font.
--      
--* Zippy environment variables ZIPPYABORT and ZIPPYADJOURN now control
--whether Zippy will accept abort and adjourn requests.
--
--* We now determine the variant type being played on ICS, send it as a
--command "variant VARTYPE" to the chess engine (if in Zippy mode), and
--put it in the PGN tags.  See engine-intf.txt for variant names.  See
--ZIPPYVARIANTS in zippy.README to control what variants Zippy will
--accept.  Note that this now applies to bughouse, too.
--
--* Zippy now won't do -zippyTalk in a channel unless his handle is
--mentioned there.
--
--* Zippy now ignores bughouse holdings if not actually playing, instead
--of stupidly trying to abort the game.  Let me know if other strange
--things happen when Zippy is observing a game.
--
--* Set ICS Interaction title bar to "user@server".  User name is
--determined by parsing message during the login sequence.  Zippy now
--uses this method to get its name too, so ZIPPYNAME is eliminated.
--Problem: with xboard, the title bar gets set to "xterm" upon exit,
--since we didn't know what it was to start with.
--
--* Fixed xboard-only bug in -colorChannel1 command line option.  Thanks
--to Fredrik Sandstrom for the bug report and fix.
--
--* Check for overflow of MAX_MOVES.  Still not sure this is checked for
--everywhere it needs to be.
--
--* Added .epd to suffixes recognized by WinBoard as position files.
--This is a bit of a kludge, as the .fen reading code was not written
--with .epd files in mind, but reading them with it is said to work.
--
--* Added ZIPPYGAMESTART feature, suggested by Jason Hoblit.  See
--zippy.README.
--
--* Restored the feature of soaking up the moves from a user-typed "moves",
--"oldmoves", or "smoves" ICS command when xboard/WinBoard is idle, but
--changed it so that the move list is also echoed to the screen.  Some folks
--still liked the old feature since it is faster than examine mode, and
--printing the moves to the screen should eliminate the confusion it caused
--for other people.
--
--* Bugfix: in WinBoard, starting a click-click move and then clicking on
--a black line would cause the source square to be forgotten without taking
--the highlight down.  Now the errant click is ignored.
--
--* Corrected shortcut key labels for LoadNext/PrevPosition in WinBoard's
--File menu.  Thanks to Andreas Stabel for the bug report.
--
--* Bugfix: if you had a completely full ICS context menu in WinBoard
--(90 items), the last one would do nothing if selected.
--
--* The "computer" engine command added in 4.0.1 was not working; I had
--left out part of the code patch.  Oops.
--
--4.0.1 -- Fri Feb 12 21:24:15 PST 1999  Tim Mann
--
--This is a minor bugfix release.  The first item listed below is the
--only interesting new feature.
--
--* You can now type in moves from the keyboard in WinBoard.  Either
--select TypeInMove from Step menu, or (if you are not in ICS mode),
--just start typing.  In ICS mode you can type moves into the ICS
--interaction window anyway, so I've retained the feature that typing
--switches you there.  Not implemented in xboard.
--
--* Removed the "noise 1000" command that used to be sent to the chess
--engine when entering analysis modes.
--
--* Deleted the feature where we soak up the output of a user-typed ICS
--"moves" or "oldmoves" command.  This ancient feature is not really
--useful anymore, now that "examine" exists, and it caused a lot of
--complaints.
--
--* Increased maximum size of ICS text menu to 90 entries and added
--overflow checking.
--
--* The command sent to ICS by Zippy at the end of each game can now be
--customized with the ZIPPYGAMEEND environment variable.
--
--* We treat xboard.info as a pseudo-source since most people don't have
--the tools to rebuild it.  But "make install" erroneously had a
--dependency on it, even though "make all" did not.  Fixed.
--
--* Miscellaneous minor updates and clarifications to engine-intf.txt.
--In particular, documented the st and sd commands (support for command
--line options -searchTime and -searchDepth), warts and all.
--
--* Added a small code patch from Bob Hyatt to detect when Zippy's ICS
--opponent is a computer and send the command "computer" to the engine.
--Added this command to engine-intf.txt.  Thanks, Bob.
--
--* Bugfix: configure was looking for usleep(), but config.h.in didn't
--have an entry for it, so HAVE_USLEEP was never defined.  Also, in the
--non-HAVE_USLEEP case, there was a possible race condition between the
--signal handler and the pause() call.  Thanks to Ben Dean-Kawamura for
--the bug reports.
--
--* Bugfix: a "1..." preceding Black's first move (usually present if
--there is a comment on White's first move) would cause the parser
--to think a new game started there and report "End of game" on the
--current game.  Thanks to Dell Garner for the bug report.
--
--* Changed the abbreviation for -searchDepth from -sd to -depth to fix
--a clash with -secondDirectory.
--
--* Changed -searchDepth to be orthogonal to the various timing options.
--Previously it would search for an unlimited time to the given depth;
--now the engine is allowed to choose its search time in the normal way,
--but is told to cut off the search early if it reaches the given depth.
--
--* Bugfix: SaveSettings in WinBoard was saving both the long form
--option highlightSquareColor and its abbreviation (hsc).
--
--* Fixed a redisplay bug in DisplayBothClocks that could cause White's
--clock to be highlighted in EditPosition mode when Black's should have been.
--
--* Fixed Zippy's feature of passing on draw offers from the ICS opponent.
--The colorization code was eating the offer before Zippy saw it, so I disabled
--colorization of offers while in -zp or -zt mode.  (Other types of
--colorization are already disabled in Zippy mode for similar reasons.)
--
--* Added some more commands to the default ICS context menu in WinBoard,
--and put "(name)" on the ones that insert a playername (or game number).
--
--* Added missing documentation to WinBoard help file: PonderNextMove, the
---ponder/-xponder argument, and the up/down arrow history feature in the
--ICS Interaction window.
--
--* Fixed       ZIPPYNOPLAYCRAFTY feature to fire only if the opponent is Crafty,
--not if some other Crafty is observing the game and kibitzes.
--
--* Fixed bugs in generating "partner" commands when Zippy is playing
--bughouse.
--
--4.0.0 -- Sat Jun 20 16:59:47 PDT 1998  Tim Mann
--
--* Fixed WinBoard resizing so that the edges you do not drag remain in
--place, even when the final size is different from what you dragged to.
--(This doesn't work on NT 3.51 or earlier, if anyone cares.)
--
--* Fixed problems with resizing WinBoard on Windows NT: you no longer get
--whitespace around the board, a clipped board, or a lot of flashing during
--the drag.
--
--* Added customization for highlight-square color.
--
--* Bugfix: backend.c wrote to stderr in a few obscure places, which doesn't
--work in WinBoard.
--
--* Added Index Number field back to LoadGame/LoadPosition dialog boxes in
--WinBoard.  This required some extra code to work with both the
--Explorer-style dialog boxes and the old-style NT 3.51 dialog boxes.  Ugh.
--
--* WinBoard startup dialog now understands -zp mode.  The first chess
--engine selector is enabled and the value is used.
--
--* Bugfix: ResetGame would send "exit" to engine twice if it was in an
--analysis mode.
--
--* Bugfix: The response "Illegal move: bk" to the "bk" command, indicating
--that it is not implemented, would confuse xboard.
--
--* Bugfix: Ignore empty hints ("Hint:\n") instead of printing a message
--saying that some bogus string (often "Hint:") is illegal.
--
--* Bugfix: LoadNextGame/LoadPreviousGame/ReloadSameGame were broken.
--
--3.6.12 -- Sat Jun 13 14:57:10 PDT 1998  Tim Mann
--
--Beta test release of xboard and WinBoard.
--
--* Spruced up xboard man page a bit.
--
--* Added Highlight Last Move to xboard too.
--
--* The revamped xboard mouse click code had several more bugs than the
--previous version, so I revamped it again.  All fixed now, I hope.
--
--* xboard bugfix: crash in CreatePieceMenu.
--
--* Oops.  winboard-3_6_11beta.exe installed 3.6.10beta, not the new version.
--
--3.6.11 -- Fri Jun 12 20:00:48 PDT 1998  Tim Mann
--
--Beta test release of xboard and WinBoard.
--
--* Major reorganization to engine-intf.txt.  Some new features added,
--many existing features clarified and hints for engine programmers added.
--Support for new features added to program.
--
--* Changed defaults for -scp (etc.) back to being independent of -fcp, as
--in 3.6.2. That is, the default is no longer to copy the value from -fcp if
---scp is not specified.  This will sometimes make command lines longer but
--will remove some confusing situations.
--
--* Split -reuseChessPrograms into two options: -reuseFirst and
---reuseSecond.  Fixed obscure bugs when reuse is off.
--
--* Detect ICC and change some command usage slightly there: only ICC has
--set-quietly; only FICS has iset and bsetup clear.  With this feature, we
--can now safely use bsetup clear when appropriate instead of deleting each
--piece one by one.
--
--* Added indent to lines that are wrapped by WinBoard ICS Interaction
--window.  This seems to tickle a Microsoft bug in the RichEdit control:
--occasionally the start of the next line after the wrapped line is indented
--too.  I think the wrapped indent feature is useful enough that it's worth
--having in spite of the bug.
--
--* WinBoard bugfix: bounding box for the board was computed incorrectly by
--mouse code.  It would think you moved off the bottom of the board before
--you really did, so it was hard to drag pieces along the bottom rank on
--smaller board sizes.
--
--* Fixed obscure parser.l bug: ambiguity between capture using : instead of
--x and email header line.  Also removed or simplified a lot of complex
--patterns for English (as opposed to PGN) end-of-game indications while I
--was in there.
--
--* Added PonderNextMove option.
--
--* xboard EditPosition piece menus now let you set the side to play by
--selecting the "White" or "Black" label at the top of the menu, like
--WinBoard.  (Both xboard and WinBoard still let you set the side to play by
--clicking on the clock.)
--
--* Merged documentation of Crafty and GNU Chess thinking output in
--engine-intf.txt.  Corrected code in backend.c to match documentation; it
--used to require the PV to start in column 27 (!).
--
--* Fixed bug that caused crashes in "-reuseChessProgram false" mode.
--
--* Draw by agreement in Two Machines mode now works as it is supposed to.
--Other minor bugs in handling game end messages from machines are also
--fixed, and engine-intf.txt is revised in this area.
--
--* Revamped xboard code for handling mouse clicks on the board.  In
--particular, it had a bug if a click-click promotion move was made.
--
--* Fixed and reinstated optimization for << in analysis modes: send
--initString and re-send the board if needed.  Sending repeated undos
--is bad because Crafty prints some analysis after every one.
--
--* Don't go into a spin loop while pausing between xboard animation frames.
--This caused problems, especially when compiling with -O2 on HP-UX.
--
--* WinBoard Options/Colors/RevertToDefaults now also turns off Monochrome
--if it was on, and similarly for Options/ICSInteractionColors/RevertToDefaults.
--This seemed to confuse people before.
--
--* Bugfix: ICS Interaction context menu items with neither of the two
--optional flags set did not work.
--
--* Bugfix: PGN move numbers are optional, but we were insisting on "1"
--right after the tags.
--
--* Bugfix: only the first game of an -mg match was loading -lpf or -lgf.
--
--* Other minor fixes and code cleanup.
--
--3.6.10 -- Mon Jun  1 01:32:31 PDT 1998  Tim Mann
--
--* Added ZIPPYNOPLAYCRAFTY feature; see zippy.README.
--
--* Added timestamps for chess engine interaction to -debug output.
--
--* Now allow 10 seconds (was 5) between games in match mode for engines to
--respond to "force" command that ended previous game.
--
--* When a game is picked from the game list and the names of White and
--Black are known, display them in the window banner instead of the filename
--and game number.
--
--* Changed default for -scp and -sd to be the values of -fcp and -fd.
--
--* Added boxes for both engines to WinBoard startup dialog.  Changed to
--dropdown boxes whose content can be set from winboard.ini, similar to
--the box for ICS name.
--
--* Accept "offer draw" (or "*offer*draw*") from engine to offer a draw.
--
--* Accept "move mmmm" from engine as well as silly "1. ... mmmm" syntax.
--
--* Added support for bughouse engines (Zippy mode only).
--
--* Move bombproofing for engines sending illegal or out of turn moves.
--
--* Always send "xboard\n" to engine as first command.  Eliminates need
--to run crafty as "crafty xboard".
--
--* Rewrote xboard code for input from engines to fix longstanding bugs.
--Previously an engine that sent one line in two separate writes with 
--some time lapse in between (or perhaps that sent several lines in one
--write) could make xboard hang.  WinBoard did not have this bug.
--
--* Fixed minor bugs in dealing with illegal moves.
--
--* Added "iset startpos 1" for FICS.
--
--* Removed special support to put "GNU Chess" or "Crafty" in the window
--banner instead of the engine's base filename.  This gives a more level
--playing field for other engines.  Also fixed bugs in the code that finds the
--engine's base filename.
--
--* Bugfix: Abort or Resign at the very start of a game in chess engine mode
--would fail to send "force" to the engine.
--
--* Fixed some minor bugs in new "result" messages, and changed format to
--include a trailing PGN comment giving the reason the game ended.
--
--* Changed syntax of /font options in WinBoard; old syntax was assuming
--that a font name can't contain a digit, which is wrong.  Old font names in
--WinBoard.ini files are still accepted.
--
--* Serious further work on getting WinBoard to read/write files in the
--"right" directories and documenting exactly what it does.
--
--* Added LoadPreviousPosition, LoadNextPosition, ReloadSamePosition.
--
--* Misc. tiny fixes and cleanup.
--
--3.6.9 -- Sun May 24 20:53:08 PDT 1998  Tim Mann
--
--xboard and WinBoard beta release.
--
--* Tightened up illegal move handling.  Illegal or meaningless moves from a
--file or chess engine should no longer get translated into a1a1 and blindly
--applied.  Explicit moves to the same square (like a1a1) no longer make the
--piece on that square capture itself and vanish.
--
--* Added AlwaysOnTop feature to winboard.
--
--* Fixed bug in winboard "@" command line indirection operator.
--
--* Removed buggy "optimization" code for ToStart in analysis modes.
--
--* Fixed typo bug in zippy.c that would often cause winboard to crash
--right after starting a game in -zp mode.
--
--3.6.8 -- Sat May 23 22:23:19 PDT 1998  Tim Mann
--
--xboard and WinBoard beta release.
--
--* Added -firstDirectory and -secondDirectory so that chess engines can
--be started in a different directory from xboard/WinBoard itself.
--
--* Added -matchGames to allow more than one game in -matchMode.  The games
--are played with colors alternating between the two chess engines.  Had to
--add a time delay at the end of each game to catch up with game ending
--messages from both chess engines -- yuck.
--
--* Changed TwoMachines mode to have firstChessProgram play White by
--default.  Added -firstPlaysBlack to restore old behavior.
--
--* Major rework of code in backend.c for dealing with first and second
--chess engines.  Generalized the code and created a struct type with one
--instance for each engine.  Several small bugs fixed along the way. 
--
--* Fixed bugs in Abort in local chess engine mode.
--
--* Tightened pattern matching to recognize moves from machine.  Should cure
--bogus "Illegal move" errors while Crafty is pondering with Show Thinking
--on, among other things.
--
--* WinBoard keeps focus in board window after popping up a comment due to
--Forward/Backward/ToStart/ToEnd commands.
--
--* Finally got rid of warnings on compiling moves.c under Windows.
--
--* Fixed so WinBoard will compile on machines where WM_MOUSELEAVE is not
--defined.
--
--* Removed various bits of unused code.
--
--* Parse (and ignore) NAGs in PGN files.
--
--* Updated engine-intf.txt.
--
--* Send "result R" to the chess program at the end of each game, where
--R is the PGN result 1-0, 0-1, 1/2-1/2, or *.
--
--* Bugfix: suppress animation when loading a game with timeDelay=0.
--
--* Bug fix: pondering output from Crafty that contained "..." could be
--mistaken for a move, causing bogus error messages and general chaos.
--
--* xboard "make clean" bug fix: moved things created by configure to be
--removed only by "make distclean".
--
--* Fixed a remaining case where move was being animated before being
--relayed to opponent.
--
--* Backend was reversing time/otim commands to the chess program (new bug),
--and was often not sending them on the first move of a game or the first
--move after a mode change (old bug).  Fixing the latter required a kludge
--to work with both GNU Chess and Crafty, because Crafty swaps white and
--black clock times when it swaps sides, while GNU Chess does not.  The
--kludge is that we always make sure the chess engine thinks its opponent is
--on move before we set the clock.  This will sometimes result in sequences
--like "white\ntime xxx\notim yyy\nblack\ngo", or the same with white and
--black interchanged.
--
--* Removed last trace of old -whiteString and -blackString arguments.
--
--* Fixed so that you can type "bd" into the Direct Command dialog when
--debugging gnuchess, without having xboard parse the clock display
--(starting with "White") as "White wins" and end the game.
--
--* Changed moves.c to make a distinction between IllegalMove (where we
--could tell what move was intended, but it violates the chess rules) and
--MeaninglessMove (where we could not tell).  This is a step towards getting
--rid of cases where we translate meaningless moves into "a1a1", but some
--work is probably needed to track them all down.
--
--* Fixed bug in WinBoard monoMode dragging.
--
--* Changed WinBoard to new style file dialogs.  In the process, disabled
--the feature that let you enter the index number of a game or position within
--the file in the dialog.  This is no loss in LoadGame, as you can pick your
--game from the game list dialog that follows, but it does remove some
--functionality from LoadPosition.
--
--3.6.7 -- Mon May 18 21:25:00 PDT 1998  Tim Mann
--
--xboard and WinBoard beta test release.  I've been unable to reproduce some
--reported drawing bugs, so they may still not be fixed.
--
--* Changed PopUpErrors option to PopupMoveErrors, which is more useful, and
--changed default to off.  Errors other than move errors should always be in
--popups; they are often too big for the message area and too important to
--put where they can be easily missed.  But it seems good to get rid of the
--popups for move errors by default.
--
--* xboard analysis window no longer forces itself to top whenever there is
--new output.  Also, now uses built-in Xaw word wrapping instead of trying
--to do its own; works better.
--
--* Bugfix: Reset did not take Crafty out of analyze mode.
--
--* A chess engine no longer has to claim to be Crafty to be able to use
--AnalysisMode and AnalyzeFile; it just has to implement the analyze
--command as Crafty does.  Put in heuristics to generate more informative
--error messages if the engine does not support analyze, and checked that
--they work at least with GNU Chess.
--
--* Added click-click moving, HighlightLastMove, and HighlightDragging to
--WinBoard.  The highlight features are unlikely to go into xboard unless
--the xboard drawing code is cleaned up to do *all* drawing on the board
--from DrawPosition, as WinBoard does.  This is low priority for me.
--
--* Eliminated bogus "Error gathering move list: no header" popup.  You
--could get this by observing two fast games at once without turning off
--GetMoveList.
--
--* Disable WinBoard Sounds menu entirely in -ncp mode, since not even
--MoveSound is used in that mode.
--
--* WinBoard bugfix: Several problems were caused if the user changed 
--WinBoard's current directory in a Load, Save, or Browse dialog.  In
--particular, WinBoard.ini would get saved in the wrong directory, and
--sound .wav file names would not get saved with a full pathname.  I think
--all such problems are now fixed.
--
--* WinBoard bugfix: iconizing the board after an aborted mouse resize would
--(partially) resize it to Tiny.
--
--* WinBoard bugfix: board was not being drawn in color on 256-color
--displays.  This bug was introduced in 3.6.6.
--
--3.6.6 -- Tue May 12 17:43:43 PDT 1998  Tim Mann
--
--xboard and WinBoard beta release.  Note: not all reported bugs are fixed.
--
--* Move animation in WinBoard, programmed by Henrik Gram.  Great stuff!
--
--* Animate backward moves too.
--
--* xboard bugfix: -font (and friends) can now specify a font alias (such
--as "fixed"), not just a full X Consortium name pattern.  Previously this
--would give a resource conversion error message.
--
--* Some coding style cleanup in xboard.c.
--
--* Earlier error check for moving wrong color piece in EditGame mode.
--
--* Completed fix to pattern matching; see 3.6.5.
--
--* Fixed some software rot bugs in Zippy.
--
--* Split AnimateDragging as separate option from AnimateMoves.
--
--* Added FlashMoves to options menu and -flash/-xflash to command line
--options (xboard only).
--
--* Some preliminary work on visible bughouse holding support.  Most of the
--code is not present in this release because I have not gotten it working
--properly yet; my first approach went down a blind alley and I had to
--remove most of the partially working code in preparation for a rewrite.
--
--3.6.5 -- Fri May  8 14:22:09 PDT 1998  Tim Mann
--
--Not generally released.
--
--* Pack bughouse holdings display in banner more tightly when board is one
--of the smaller sizes (when smallLayout or tinyLayout is true, that is).
--An interim measure, but should help.
--
--* Completed fix to make move list parsing recognize the end condition and
--final comment.
--
--* Fixed pattern matching for chatter (tells, etc.) to be more reliable.
--This should reduce the incidence of colors starting in the wrong place and
--of incorrectly matching things that look like other patterns inside
--chatter, such as "shout <12>".  (These errors were already rare.)
--
--* WinBoard now lets you customize the list of ICS's in the startup dialog.
--For now, at least, requires editing WinBoard.ini with a text editor.
--
--* Bug fix: WinBoard window sizing and position setting save/restore did
--not work right when the taskbar was at the top (or left side) of the
--screen and not in autohide mode.
--
--* Merged xboard click/click mode and drag mode, and deleted
--ClickClickMoving option on menu.  Now if you click on a piece, it
--highlights and a further click on another square will move it.  (A second
--click on the same square takes down the highlight.)  Or if you press down
--on a piece and start to drag, you can drag it to a new square.
--
--* When making click/click style moves, if your second click is on a piece
--of the same color, instead of saying "Illegal move", we now cancel the first
--starting square, replace it with the second, and wait for another click to
--finish the move.
--
--* Separate -secondInitString.  Default: same as -initString.  Suggested by
--Remi Coulom.
--
--* Patch from Frank McIngvale to make animation work with XIMs.  Yay!
--
--* Changed move animation to happen after move is passed on to ICS or the
--chess engine, where applicable.  Fixed problems with updating moveList
--that this uncovered.
--
--* Changed game list to show PGN result token for each game.
--
--* The usual minor bug fixes.
--
--3.6.4 -- Thu Apr 30 23:14:43 PDT 1998  Tim Mann
--
--xboard and WinBoard beta test release.
--
--* xboard documentation updated, both man page and info file.  An attempt
--to generate both from the same source with LinuxDocSGML was abandoned, at
--least for now.  WinBoard doc updated too.
--
--* Merged updates to animation code from Hugh.  Fixed a couple of remaining
--bugs, mostly to do with handling Pause mode correctly.
--
--* Added SaveSettingsOnExit to WinBoard.
--
--* WinBoard now saves the last screen position of the Comment, Edit Tags,
--Game List, and Analysis windows (in addition to the board and ICS
--Interaction windows) in WinBoard.ini.
--
--* WinBoard now provides a way to customize the right-button context menu
--in the output area of the ICS Interaction window.  For now, requires
--editing WinBoard.ini with a text editor.  
--
--* Various minor fixes to ICS message recognition, most affecting only Zippy.
--
--* Colorize the notification when someone sends you a message while you are
--logged in, not the output of the "messages" command.
--
--* Fixed colorization to turn off at the right place more reliably.
--
--* Added a new color and WinBoard sound for "requests": abort, adjourn,
--draw, pause, and takeback.  The same color and sound are used for all of
--these.
--
--* Added GUI to change sounds in WinBoard.
--
--* Suppressed WinBoard error popup when a sound can't be played.  They were
--popping up when two separate WinBoards tried to play a sound at the same
--time (such as during a bughouse match).
--
--* Fixed WinBoard crash when a sound file didn't exist.
--
--* WinBoard ports of timestamp and timeseal now produce decent error
--messages if they fail to connect, and WinBoard captures the messages and
--puts them into a popup.  Previously WinBoard would exit with no message on
--such errors.
--
--* WinBoard resizing with mouse improved; now accurately picks the largest
--size that fits in the new area.
--
--* Added option to turn off error message popups.
--
--* Added sizes slim, dinky, and teeny.
--
--* Fixed some minor problems with error message wording.
--
--3.6.3 -- Mon Feb 23 19:08:57 PST 1998  Tim Mann
--
--xboard beta test release only.  Man page is updated for the changes, but info
--file is not.
--
--* Bug fix: LoadGame could not load a PGN game whose first move was
--castling (which is possible from setup positions).
--
--* Bug fix: we were ignoring illegal move messages from chess engines in
--modes where the engine is refereeing but not participating (EditGame,
--LoadGame, AnalyzeFile).  The problem was in a workaround for a Crafty bug,
--where Crafty generates a bogus illegal move message if a "." (used by
--the PeriodicUpdates feature) is sent in analysis mode when the current
--analysis reveals a forced mate.  Installed a different workaround (that
--works in most but not all cases) and reported the Crafty bug.  Bob Hyatt
--replied with a fix, so the Crafty bug should be gone in Crafty 14.12 or so.
--
--* WinBoard only: enabled resizing board with the mouse.  It snaps to the
--nearest (but not too much larger) predefined size.
--
--* The xboard default font is now sized according to piece size, just as
--clockFont and coordFont have always been.
--
--* Added more sizes: bulky, moderate, average, middling, mediocre, petite.
--      
--* xboard only: Added Animate Moves and Click-Click Moving to Options menu.  
--
--* xboard only: Added code to animate piece movement, from Hugh Fisher.
--
--* New feature: autoflag is implemented in MachineWhite, MachineBlack, and
--TwoMachines modes.  If it is on and either a chess program or the user
--oversteps his time, xboard will automatically call the flag and end the
--game.  This feature was requested by someone who runs matches between
--programs and wants to penalize GNU Chess for its habit of running slightly
--over at the end of a time control.  I personally think it's pointless.
--
--* Fixed a bug in Zippy's pattern matching; he can now reply to ICC
--messages again.
--
--* Generate prettier notation for illegal moves.  If a move is illegal only
--because it leaves the player in check, generate notation as if that were
--not illegal.  For instance, if two knights are a knight's move away from
--f3, one on g1 and one on e5 that is pinned, the notation would be Nf3 to
--move the g1 knight, Nef3 to move the e5 knight.  (Suggested by Philippe
--Schnoebelen.)  In addition, if a move is illegal because the type of piece
--moved cannot go that way, would be jumping over another piece, etc., we
--give fully disambiguated coordinate notation; for example, Ng1g3, Ke1xe8,
--d2xd8=Q, etc.  An alternative would be to still write Ng3 if there is only
--one knight on the board, or Ngg3 if the other knight is not on the g file,
--but life is too short to code up all this stuff, and perhaps the way I did
--it is better as it emphasizes that this move was really made despite being
--illegal.  I wonder if the new PGN standard revision will speak to notation
--of illegal moves?
--
--* Fixed gross bug from 3.6.2: if a chess program said "checkmate" and
--White was left on move, the PGN outcome was "1-0 {Black mates}" instead
--of "0-1 {Black mates}"!  The bug occurred only for that specific string.
--
--3.6.2 -- Wed Jul 23 16:47:29 PDT 1997  Tim Mann
--
--* There was a bug in backing up from the end of a game against a chess
--engine, introduced when -reuse mode was added.  Fixed.
--
--* Recognize "{" as terminating an ICS move list.  Previously we needed to
--see a prompt (containing %), but occasionally ICC can send more stuff
--right after a move list with no prompt in between.
--
--* In WinBoard, -mm now implies -cp, so you don't get the startup dialog.
--
--* WinBoard startup dialog no longer sets -scp.  People used to get
--confused because they would give the -fcp and -scp arguments, but omit
---cp.  This would bring up the startup dialog, which would set both -fcp
--and -scp to the value in the engine name box.  Now you can change -scp
--only with the command-line argument.  That will confuse some people too,
--but hopefully fewer.  I think overall it's better than putting spaces for
--both -fcp and -scp in the dialog, which would puzzle newbies.
--
--* Bug fix: Analyze File mode now works in WinBoard.
--
--* Bug fix: WinBoard window no longer cuts off part of the bottom row if
--the menu bar wraps to a second line.
--
--* Accept game end messages of the form "PGN-result {comment}" from the
--chess engine, where PGN-result is 0-1, 1-0, or 1/2-1/2.  Accept "resign"
--or "computer resigns" from the chess engine as a synonym for "0-1 {White
--resigns}" or "1-0 {Black resigns}". Accept any message from the chess
--engine containing "game is a draw" as a synonym for "1/2-1/2 {Draw}".
--Accept "White resigns" or "Black resigns".
--
--* Enable "Action / Draw" menu item in chess engine mode.  It sends the
--command "draw" to the engine.  Accept any message from the chess engine
--containing "offers a draw" as a draw offer.  WARNING: Draw offers from the
--user and the engine (or from two engines) are not yet matched up by xboard
--in chess engine mode.  Two engines could get into a loop offering each
--other draws.
--
--* Bug fix: Game end messages from the chess engine are always ignored in
--Zippy mode.  Previously they could sometimes be processed, which was
--sometimes making Zippy hang at the start of a new game that followed
--quickly after an old one.
--
--* Zippy can now respond to titled players in channels.  Zippy will avoid
--talking to himself in a channel if he knows his own name.
--
--* Bug fix: in colorization arguments, the bold setting was being ignored
--if the background color was defaulted.  (xboard only.)
--
--* Extended ParseFEN to accept Crafty 12.2's interpretation of FEN.
--If fewer than 8 squares are given in a row, or fewer than 8 rows are
--given, the uncovered squares are empty.  Also, there can be a / after the
--8th row.
--
--3.6.1 -- Sat May 17 01:02:33 PDT 1997  Tim Mann
--
--* Bug fix: Hitting escape while entering a password on WinBoard no longer
--sets the font color back to black (which made further typing visible).
--
--* Bug fix: On Windows NT 4.0, WinBoard /ics /icshelper=timestamp would
--often hang if you tried to exit with the Exit menu item, the [X] button,
--etc.  The same fix may also have corrected the problem where running a
--chess program with /xreuse would sometimes crash Windows 95 (but not NT)
--when the chess program was killed and quickly restarted.
--
--* Bug fix: Periodic Updates would not work if turned on after having been
--off.  Also, the default was needlessly "off" in WinBoard.
--
--* Zippy bug fix: Continuing an adjourned game was totally broken.  The
--wrong moves, or no moves at all, were being fed to the chess program.
--
--* WinBoard change: Giving -ics without -icshost now pops up the startup
--dialog with "Use an Internet Chess Server" pre-selected, so that you get a
--menu of chess servers instead of going directly to ICC.
--
--* Bug fix: WinBoard's SaveSettings was saving -icshost, -icsport, and
---icshelper in winboard.ini.  This causes a problem if you use a different
--icshost later that needs the default values for icsport (5000) and
--icshelper ("", meaning none).
--
--* Disabled complaints about unexpected "[Ii]llegal move" messages from
--the chess program; we still get them at times.
--
--* Greatly simplified the code for Move Now and SIGINT (ATTENTION).  Fixes
--the bug where Move Now did not work with GNU Chess in WinBoard, and
--several more obscure bugs as well.  Reintroduces a minor bug: GNU Chess might
--not think on your time after a Move Now command.  Trying to fix this
--causes too many other problems.  Documented change in engine-intf.txt.
--
--* Cleaned up code for obtaining ratings from ICS.  It was kludgey and may
--have had bugs on systems with no "Creating:" message.  It should fail
--gracefully there, just not finding the ratings.
--
--3.6.0 -- Thu May  8 19:55:58 PDT 1997  Tim Mann
--
--* WinBoard now has right-button context menus in the ICS Interaction
--window.  Some of the items do immediate commands on the player name you
--have selected or pointed to.  (Suggested by Paolo Casaschi.)  Also, the
--middle button or shift+right does a immediate Copy and Paste.
--
--* Fixed a bug in Zippy's wild rejection.  The bug was causing Zippy to
--reject all forms of wild.  Now it rejects only 1, 9, 16, 17, and 24, as
--was intended.  These variants have different rules, while the other
--variants defined so far only have different starting positions.
--(Actually, wild 2, 3, and 4 never allow castling, but may sometimes by
--chance have king and rook start on squares where castling appears legal.
--This could cause a problem later.)
--
--* Zippy now resumes adjourned games by feeding the chess program 
--the move list instead of the position.  Setting -getMoveList to False 
--restores the old behavior.  Feeding in the move list is better because 
--it enables the chess program to correctly handle en passant legality, 
--castling legality, draw by repetition, and draw by the 50 move rule. 
--
--* Added a WinBoard startup dialog for people who run WinBoard.exe without
--using the Start menu or reading the help file.  Instead of being dumped
--directly into GNU Chess mode, you now get a menu of choices.  You now have
--to give the new WinBoard -cp option to go directly into chess engine mode.
--I did not add this feature to xboard.
--
--* Handling of "illegal move" from Crafty is now back on.  (It was turned
--off in 3.4.6; see below.)  Crafty 12.0 doesn't seem to send bogus ones
--anymore.  I did have to suppress sending time and otim in analyze mode to
--make this work, but there is no harm in that.
--
--* Zippy now sends "gameend" to ICS at the end of each game.  You can alias
--this to "seek" or whatever you like.
--
--* Added Crafty support for Move Now, using the "?" command.  We test
--whether this command exists by trying it once at the start of the first
--game, before it really makes sense.  If we don't get a message like
--"Illegal move ... ?", we assume it's OK.  (We're careful about this
--because sending a "?" to GNU Chess on Move Now keeps it from pondering the
--next move as it should.)
--
--* Added support for a tellusererror command from the chess engine.  See
--engine-intf.txt.
--
--* Attempted to make engine-intf.txt complete.
--
--* Minor fixes/cleanup to GameEnds code, to be sure we always interrupt
--when needed, and always undo an extra move generated by stopping the chess
--program while it is thinking.
--
--3.5.7 -- Sat May 03 22:37:44 PDT 1997  Tim Mann
--
--Beta release of both xboard and WinBoard.
--
--* Updated xboard documentation.  I really wish the man page was built from
--the info file instead of being separate!  It's a pain to update them both.
--
--* Updated documentation of the interface between XBoard/WinBoard and chess
--programs, and renamed it to engine-intf.txt.
--
--* Added support for tellics, telluser, and askuser commands from the chess
--engine.  See engine-intf.txt.
--
--* Various bug fixes.  On WinBoard, 256 color displays are finally handled
--right; no more color flashing when you switch windows unless the colors
--really need to be updated.  Also, I think the problem of the console font
--failing to change or changing back by itself is finally fixed.
--
--3.5.6 -- Tue Apr 29 03:08:00 PDT 1997
--
--Beta release, WinBoard only.  ChangeLog was out of date in release,
--updated here.
--
--* Added ICC timestamp and FICS timeseal to WinBoard distribution.  These
--are my own ports to Win32, based on and used by permission of the owners
--of the proprietary source code (Daniel Sleator for timestamp, Henrik Gram
--for timeseal).  The owners permit these programs to be distributed only in
--binary form (to help prevent cheating), so to avoid running afoul of the
--GPL, I have kept them as separate programs, not linked into the WinBoard
--address space.  Updated Start menu icons to use them.
--
--* Miscellaneous smaller changes.
--
--3.5.5 -- Fri Apr 25 03:06:00 PDT 1997
--
--Beta release, WinBoard only.  ChangeLog was out of date in release;
--updated here.
--
--* Added simple sound support to WinBoard.
--
--* Updated WinBoard documentation.
--
--* Internal implementation of the telnet protocol is now more complete.
--You can now hop through a VMS host on the way to ICS.  For example, do
--"xboard -ics -icshost vms.host.edu -icsport 23", then log in.  Do not use
--the -telnet flag; that says to use an *external* telnet program.  To avoid
--double echoes, you need to force character mode in VMS telnet after
--connecting from VMS to ICS.  Do "^]^Mset mode char^M^M".
--
--* Display opponent names in the title bar for MachineWhite, MachineBlack,
--and TwoMachines modes.
--
--* WinBoard now has an installer, built with InstallShield.  The installer
--works with a binary-only distribution.  Sources are still freely
--available, but now separately.
--
--* Added SaveSettings to WinBoard, which saves current option settings to
--winboard.ini.  Made sure all options can be saved and loaded, including
--fonts and com port settings.
--
--* If the game ends while you are dragging a piece, we now don't let you
--finish the move.  Formerly the move was accepted and your opponent's clock
--would start running again.
--
--3.5.4 -- Fri Apr 18 01:15:24 PDT 1997  Tim Mann
--
--Beta test release of WinBoard and xboard.  The documentation remains
--out of date.
--
--* Many fixes and improvements to new WinBoard user interface code.
--
--* In Zippy mode, avoid sending another copy of the same move to the chess
--program if ICS sends us another copy of the board image.  Hard to believe
--it took me until now to diagnose and fix this problem!
--
--3.5.3 -- Sat Apr 12 19:49:33 PDT 1997  Tim Mann
--
--Beta test release of WinBoard and xboard.
--
--* Fixed fatal bug in WinBoard input handling.
--
--* Made code to stop chess program for reuse a bit smarter.  Removed kludge
--of "white" in initString; it didn't work well, and is unneeded
--with Crafty 11.21 and later.
--
--3.5.2 -- Sat Apr 12 15:40:01 PDT 1997  Tim Mann
--
--Beta test release of WinBoard.
--
--* Ignore check and permit promotion to King during suicide games; no need
--to turn off TestLegality.
--
--* Renamed CheckLegality to TestLegality to avoid confusion with the chess
--term "check".
--
--* Added Rematch to Action menu.
--
--* WinBoard now has a custom ICS interaction window with scrollback, a
--separate line for input, and colorization.  Accelerators that conflict
--with normal editing keys were changed (by requiring Alt+) so they can work
--in both the console and the main window.
--
--* WinBoard error popups are now non-modal and disappear when you make a
--new move, as in xboard.
--
--* Configure now defaults to --disable-ptys on all systems.  If anyone has
--an ancient SysV system where pipes don't work with select, they can still
--do "configure --enable-ptys" explicitly.  I would appreciate getting a bug
--report if this happens to anyone, with complete output from configure and
--"uname -a".
--
--* "make install" now makes the installation directories too.
--
--* Fixed a bug that would cause an "Illegal move" message for Black from
--GNU Chess to be incorrectly considered bogus.
--
--* Handle name changes during an ICS game (FICS bname and wname commands).
--
--* You can force both chess programs to be killed at the end of each game
--by turning off the reuseChessPrograms option.  There are still some
--problems with reusing Crafty even in version 11.20.
--
--* Now the second chess program stays around by default too, if it ever
--gets started.
--
--3.5.1 -- Sat Apr  5 16:47:48 PST 1997  Tim Mann
--
--Beta test release.
--
--* Don't kill off and restart the chess program for each game; keep the
--same one running, using the "new" command to start a new game.  This
--change works around the problem in Windows 95 that makes WinBoard crash it
--at times, and is generally desirable to make new games start faster.  The
--second chess program (for TwoMachines) is still killed at the end of the
--game, and unfortunately this can still crash Windows 95.  Temporarily
--added "white" to the initString to make this work with Crafty 11.20, which
--has a minor bug in "new".  Older versions of Crafty have worse bugs in
--"new"; they should not be used with this version of xboard.
--
--* Support for FICS suicide chess: Parse illegal moves (that leave King in
--check) in game history.  If CheckLegality is off, allow promotion to King
--and illegal moves in game files.  We still generate e2e4 style notation
--for illegal moves.
--
--* Handle FICS "has timeseal; checking" message.
--
--* Changed the coords from white back to black; this was a bug.
--
--* Fixed problems compiling with K&R compilers.
--
--* Fixed an old bug in RegisterMove that was crashing cmail on some systems
--(notably linux).
--
--3.5.0 -- Thu Jan  2 16:59:49 PST 1997  Tim Mann
--
--Thanks to Frank McIngvale for much of the work on versions 3.4.4 and above!
--
--* Fix Crafty resumed game time bug (frankm)
--
--* Word wrap text in Analysis window (frankm)
--
--* More debug info for XPM loading (frankm)
--
--* Replaced config.sub, config.guess, etc., with up-to-date versions from
--autoconf 2.12.  Hopefully this will fix problems on Pentium Pro machines.
--
--* Removed some Makefile gunk that was causing looping for one person.
--
--3.4.7 -- Thu Dec 19 14:22:41 PST 1996  Tim Mann
--
--All changes from Frank:
--
--* Retrieve ratings from ICC (and FICS, etc., when they add the Creating:
--message), save them in the PGN tags, and pass them to Crafty in Zippy mode.
--
--* Add settable time delay between characters in ICS login script.
--
--* Colorize messages like personal tells.  Fix false recognition of channel
--tells.
--
--* Pass "tells" from Crafty through to ICS (in Zippy mode).
--
--* Implement ~/ filename convention from C shell for game and position file
--names.
--
--* ZIPPYACCEPTONLY feature for testing.
--
--3.4, patchlevel 6 -- Sat Nov 23 16:58:50 PST 1996  Tim Mann
--
--* Put recognition of "illegal move" messages from Crafty for
--illegal castling, etc., inside an #if that is currently turned off,
--because of a bug in Crafty that generates bogus "illegal move" messages
--after some moves that are actually legal and accepted by Crafty.
--
--* Added -checkLegality option; previously this could not be turned off.
--
--* Fixed an old bug in finding default board size parameters.
--
--* Differentiated among channel tell, kibitz/whisper, and personal tell/say.
--
--* Fixed a bug in detecting Xpm in the configure script.
--
--3.4, patchlevel 5 -- Mon Nov 18 16:22:53 PST 1996  Tim Mann
--
--* Added zic2xpm to the kit; it had been omitted by mistake.
--
--* Added some default colors for -colorize
--
--3.4, patchlevel 4 -- Sat Nov 16 18:10:17 PST 1996  Tim Mann
--
--This is meant to be a beta release in preparation for version 3.5.
--
--* Added InfoXBoard and ManXBoard to the Help menu.
--
--* Made Frank's ICS input box optional, defaulting to off.
--
--* Merged in Frank McIngvale's XbKit.  Many new features, including
---clickClick mode, the Analysis modes, piece flashing, ZIICS import,
--ICS text colorization, and the ICS input box.  Many thanks to Frank for
--supplying and documenting this code.
--
--3.4, patchlevel 3 -- Mon Nov 11 18:23:14 PST 1996  Tim Mann
--
--Small set of changes made while Frank McIngvale was working on XbKit in
--parallel.  Unreleased in this form.
--
--* Updated zippy.README.
--
--* Removed useless X event handler and removed strange code for copying
--form translation table to board that worked around the bug it caused.
--This makes changing bindings in .Xdefaults more straightforward.
--
--* Now pressing the Control key steps back one move, and releasing it steps
--forward again.
--
--* Moved quit from "q" to "Q" for greater safety.
--
--* Use "unobserve" instead of "observe" to stop observing; needed on FICS.
--
--* Support for interface variable.
--
--* Strip titles from people who are talking to us, so (for example) Zippy
--won't try things like "tell Darooha(*) hello".  Needed on FICS.
--
--3.4, patchlevel 2 -- Tue Jul  9 19:06:42 PDT 1996  Tim Mann
--
--This patchlevel is not planned to be an announced release.  It's in
--preparation for integrating Frank McIngvale's XbKit.  It mostly contains
--minor fixes I've accumulated since 3.4.pl1.
--
--* WinBoard /telnet option now fires up an external program, as
--with xboard, instead of trying to use a feature of NT 3.1 that does not
--exist in later versions of NT or in Windows 95.  ChangeLog for 3.4.pl1
--said this had been implemented there, but it really wasn't.
--
--* Indicating player to move by the icon color now works under Windows 95.
--
--* WinBoard now kills the chess program when you exit using the system menu
--or the [X] button.  Thanks to Michael Lowe.
--
--* Minor changes to Zippy, including: Now understands wild challenges on
--FICS; these used to crash it.  Removed limit on how fast a game will be
--accepted.  Use "set formula ..." on the chess server to limit this if you
--are using GNU Chess.  Now sends correct opponent name to Crafty.
--
--* Added some missing default values to documentation.  Thanks to Stuart
--Cracraft.
--
--* Bugfix: Trying to print "No fonts match pattern" error message would
--crash.  This can happen to Linux users who don't install Helvetica, for
--example. 
--
--* Bugfix: Defaulting feature in -size n,n,n,n,n,n would put us in an
--infinite loop.
--
--* Added more directories to search for Athena widgets on HPUX.
--
--* New cmail (3.12) from Evan Welsh; includes small fix from Kayvan Sylvan.
--
--* Recognize "illegal move" messages from Crafty for illegal castling, etc.
--
--* Bugfix: "name" command added to zippy.c for Crafty was producing error
--message if GNU Chess was in use.
--
--* In bughouse mode, suppress holding messages from console window; show
--holdings only in banner.
--
--* Minor fixes/cleanup to Makefile.in and configure.in.
--
--3.4, patchlevel 1 -- Mon Dec 11 13:43:12 PST 1995  Tim Mann
--
--* This patchlevel updates WinBoard to match xboard, and includes a few
--fixes and minor improvements.  "-size tiny" and "-size n,n,n,n,n,n"
--are still not implemented for WinBoard.
--
--* Installed support for Crafty based on code from Bob Hyatt.
--Currently the only documentation for this is in the FAQ, and a few
--things don't work with Crafty 8.23.  Please do not report these
--problems as bugs in either xboard or Crafty.  Bob and I know about
--them.  The worst ones (if not all of them) should be fixed in Crafty
--8.24.
--
--* Changed the kludge command we send when gnuchess wants to print
--something that doesn't end with a newline, from "help" to "bogus".
--This works because the error message gnuchess prints ends with a
--newline.  It also improves compatibility with Crafty, which doesn't
--need the kludge, but for which sending "help" causes a problem.
--
--* Don't draw grid at all if lineGap is 0; previously we drew the grid
--with X "0-width" lines (usually 1 pixel wide) and then overwrote it.
--
--* Makefile: Removed xboard.info from "all" target so we won't try to
--rebuild it, because this fails on hosts that don't have makeinfo
--installed.  Other minor fixes to "clean" targets, etc.
--
--* Fixes and cleanup to Auto Comment code that handles continuation
--lines and highlighting.
--
--* Auto Observe now tries to observe the game from the point of view of
--the player who was on your gnotify list.  Requested by rng.
--Limitations: We can't tell which player it was unless you have ICS
--highlighting turned on.  Also, currently "observe foo" works as
--required (observing from foo's point of view) only on ICC, but FICS
--will probably implement this soon.
--
--* "-size tiny" now makes the default font smaller automatically.  This
--was implemented by introducing an extra Form widget in the hierarchy
--for all xboard windows, named either normalLayout, smallLayout, or
--tinyLayout.  So you can have resource specifications that apply only
--to certain layouts; in particular, XBoard*tinyLayout*font.
--
--* Bug fix: EditGame or EditPosition while playing or examining still was
--not really being permitted.
--
--* WinBoard bug fix: On the EditPosition menu, King did not work.
--
--* Added text catalog of WinSock error messages to WinBoard, because
--Microsoft still has not put them in the system message catalog.
--
--* Removed support for older ICS game-ending messages that do not have
--a PGN result token (*, 0-1, 1-0, or 1/2-1/2) after the closing '}'.
--The code for older messages was sometimes firing on the newer
--messages, due to parsing ambiguity.  If the current code sees an old
--message, it will understand that the game is over, but will always
--display * as a result token instead of trying to guess the result by
--interpreting the text message.
--
--3.4, patchlevel 0 -- Tue Nov 21 01:02:50 PST 1995  Tim Mann
--
--* This patchlevel was released for xboard only.
--
--* Updated the info file.  It should now be as up-to-date as the man page,
--with good English except in the parts that pertain only to AmyBoard.
--
--* Added "-size tiny", requested by Bob Hyatt.  Also cleaned up bitmap
--support and added "-size n,n,n,n,n,n" to allow arbitrary-sized bitmaps,
--if the actual bitmaps are supplied by the user.
--
--* Updated bughouse support.
--
--3.3, patchlevel 4 -- Sat Nov 18 02:27:21 PST 1995  Tim Mann
--
--* Unreleased beta that works with preliminary FICS bughouse code.  Will
--need changes before release to track FICS message changes.
--
--* Removed use of .EX macro from man page.  It is not supported by some
--nroff -man macro packages, notably the one on Slackware Linux.  Switched
--to boldface for references to xboard and other commands within the man
--page, as this seems to be the modern way.
--
--* Bug fix: If ICS rejected a move, it was correctly undone on the board,
--but the message widget still displayed the bad move.  Reported by DAV.
--
--* Normally, xboard in ICS mode fetches the move list whenever the board
--display switches to a new game.  Doing this is now an option
--(getMoveList) that can be turned off, which is useful if you are watching
--multiple blitz games.  Requested by rng.
--
--* Move list fetching code is now smarter: it ignores a move list if it is
--not for the right game.
--
--* Added support for bughouse as implemented on FICS.  Holdings are shown
--in the window title in place of the strength numbers.  A menu on mouse
--buttons 2 and 3 (same on both) lets you drop pieces.  There is no checking
--as to whether you actually hold the piece you are trying to drop; we rely
--on ICS to check that.  Notation of the form P@f7 is generated and parsed.
--The mate detector does not understand that non-contact mate is not really
--mate in bughouse, but this does no real harm.  It results in a "#"
--suffix being displayed on the move notation, but xboard does not assume the
--game is over.
--
--* Bug fix: Promotion to a knight was not working with ICC!  Thanks to
--Wendigo for the report.
--
--* Bug fix: Special pty code for host types *-*-aix3* and *-*-irix3*
--(supplied from configure.in) had a bug that would cause childio.c to
--fail to compile, due to a "continue" that was not within a loop.
--
--* Bug fix: In pgntags.c, memory was being freed while still in use.  One
--symptom this caused was that on some machines, cmail would fail with a
--message that it could not find the BlackNA tag.  The error was in some
--submitted code that I included in version 3.2.pl3 without reading
--carefully enough.  Anders Forberg noticed the symptoms, and Evan Welsh
--(who had nothing to do with causing the bug) found the bug and submitted a
--fix; thanks to them both.
--
--* Removed restriction against using EditGame while playing, observing,
--or examining on ICS.  You still get a warning popup.
--
--3.3, patchlevel 3 -- Sat Sep 16 11:44:05 PDT 1995  Tim Mann
--
--* Bug fix: Going directly from MachineWhite to TwoMachines mode would kill
--off the second chess program after Black's first move.
--
--* Added -timeIncrement feature.  Thanks to Joel Rivat.
--
--* Deleted code that tries to keep you from observing more than one game,
--or observing while playing or examining.  There is actually no problem in
--doing this, except that every time an update comes in from a different
--game than is currently being displayed, xboard fetches the history of the
--new game, which may be time-consuming if you are on a slow link.
--
--* Fixed configure so as not to crash when neither lex nor flex is found.
--lex or flex is needed only if the user wants to rebuild parser.c.  Thanks
--to Phil Humpherys for reporting the crash.
--
--* Bug fix: config.h.in used #define instead of #undef for some macros used
--in the pty code in childio.c.  This causes the code to fail to compile on
--some architectures, because the symbols are supposed to be undefined, not
--defined to empty, when they are not set in configure.  Bug originated in
--3.3.pl0 when config.h was introduced.  Thanks to Phil Humpherys for report.
--
--* Bug fix: ShowThinking would not show anything when current position had
--no move to display in the move window.  E.g., if position was created by
--LoadPosition or EditPosition.
--
--3.3, patchlevel 2 -- Mon Aug 28 11:11:11 PDT 1995  Tim Mann
--
--* Zippy code was omitted from xboard-3.3.pl1 by mistake; now included.
--
--* For WinBoard, added hint to help file that you may need to turn off
--LocalLineEditing while typing dialing commands to your modem.
--
--3.3, patchlevel 1 -- Sat Aug 19 15:13:30 PDT 1995  Tim Mann
--
--* Zippy distribution is no longer separate from regular xboard distribution.
--
--* Deal properly with Show Thinking output from GNU Chess when it is
--thinking on its opponent's time.  In TwoMachines mode this output is
--suppressed to avoid interfering with the output from the machine that is
--on move; in other modes it is displayed (including the move that GNU Chess
--is predicting the user will make next).  GNU Chess produces this output
--only if it is built without -DQUIETBACKGROUND defined; this symbol is
--defined by default in patchlevels before pl75, but undefined by default in
--pl75.
--
--* Bug fix: Handling of initial board position in move list for wild games
--was broken, so wild games could not be observed and adjourned wild games
--could not be continued.  Thanks to "Maximum Entropy" for the bug report.
--
--* Added feature: algebraic notation now shows "+" indicator for check
--and "#" for checkmate, as called for in PGN standard.  Thanks to Kevin
--Maher for the suggestion.
--
--3.3, patchlevel 0 -- Thu Jul 27 22:21:07 PDT 1995  Tim Mann
--
--* Changed configuration to use a config.h file instead of passing zillions
--of -D options on the cc command line.
--
--* Merged a small fix and some updates to the texinfo file from Jochen
--Wiedmann.  The texinfo file still needs work.
--
--3.2, patchlevel 5 -- Tue Jul 18 20:29:39 PDT 1995  Tim Mann
--
--* Beta test release of xboard only.
--
--* Updated WinBoard code to include new xboard features.
--
--* Added texinfo file from Jochen Wiedmann to the release, but not as the
--primary documentation.  It needs updating, and the English needs work.
--I did make a few improvements, mostly to change incorrect uses of @var to
--either @samp or @code as appropriate.
--
--* Merged in code changes to 3.2.pl4beta from Jochen Wiedmann.
--
--* Fixed EditComment; did not pop up window in previous beta.
--
--* Added AutoComment feature.
--
--* Added GameListDestroy to disable the outdated game list popup in cases
--where we load a new game file without building a new popup.
--
--* Added yyskipmoves feature to parser.l to speed up building of gamelist.
--
--* gamelist.c wouldn't compile with a non-ANSI compiler.  Fixed.
--
--* Change to yy_text handling in patchlevel 3 still had problems.  Can't
--use AC_DECL_YYTEXT in configure.in, because that defines YYTEXT_POINTER
--according to whether the lexer on the current host makes yytext a pointer.
--But most people will be using a parser.c that was generated on another
--host and shipped with the package.
--
--3.2, patchlevel 4 -- Sun Jun 25 19:13:43 PDT 1995  Tim Mann
--
--* Beta test release of xboard only.  
--
--* Added FIREWALLS section to man page.
--
--* Changed -icsport to be a string.  Now with the -telnet option,
--specifying -icsport "" suppresses the second argument to telnet.
--
--* Added EditTags feature.  Removed AboutGame from menu, because EditTags
--subsumes it.  EditTags suggested by Jochen Wiedmann and first implemented by
--him in AmyBoard.  xboard implementation is my own.
--
--* Fixed some missing or incorrect prototypes.
--
--3.2, patchlevel 3 -- Sat Jun  3 18:57:38 1995  Tim Mann 
--
--* Beta test release of xboard only.  
--
--* New version of cmail from Evan Welsh, to fix compatibility problems with
--perl 5.0.
--
--* Added game list feature on Load Game, based on code from Jochen
--Wiedmann.  Integrated it with cmail.
--
--* Several bug fixes from Jochen Wiedmann, including one to my yy_text
--workaround for the difference in the type of yytext between lex and flex.
--
--* Handle clock pause on FICS.
--
--* Suppress clocks in untimed FICS games (time control 0 0).
--
--* Rebuilt configure script with autoconf 2.3.  This fixes a bug in
--configuring for X11R6, where -lSM -lICE would not be added when needed.
--
--* Fixed inconsistent type declarations on IntSigHandler and
--CmailSigHandler.  Bug report from Josh Daynard.
--
--* backend.c wouldn't compile with a non-ANSI compiler.  Fixed.
--
--3.2, patchlevel 2 -- Tue Feb  7 14:50:30 1995  Tim Mann 
--
--* Minor release of both xboard and WinBoard.
--
--* Added recognition of some FICS messages.  On the other hand FICS is also
--changing some of its messages to match what xboard already recognizes.
--
--* Temporarily went back to using "promote" command on ICS instead of
--"a7a8=Q", because FICS doesn't implement the latter yet.
--
--* We now avoid using overlapped I/O on pipes in WinBoard, to make Windows
--95 beta 2 happy.  This lets WinBoard work with GNU Chess on Windows 95!
--
--* Installed patches from Jochen Wiedmann to coordinate with Amiga XBoard.
--
--* Installed patch to cmail bug in LoadGame from Evan Welsh.
--
--* Bugfix: checkmate and stalemate moves entered with EditGame in ICS mode
--were not being handled correctly.  Bug was in GameEnds().
--
--* Implemented EchoOn and EchoOff for xboard, using system("stty echo\n").
--Now passwords won't be echoed when you connect directly to ICS.  Also,
--telnet negotiation characters aren't displayed (when possible).
--
--* Implemented more of the telnet protocol.  Now connecting to a telnet
--server with "-icsport 23" should work even without giving the -telnet
--option.  The telnet is in "old line-by-line mode".
--
--3.2, patchlevel 1 -- Sat Dec 10 13:50:46 1994  Tim Mann 
--
--* This patchlevel released for WinBoard only.
--
--* winboard.c: Fixed ConsoleInputThread().  Needed to change CRLF to LF,
--not to CR.  This was stopping normal /ics mode from working.  Thanks to
--Asher Kobin for the bug report.
--
--* winboard.c: Fixed Raw(), EchoOn(), EchoOff().  Now they take effect
--immediately, not on the next console read after the one in progress.
--
--* winboard.c: Attempted to make WinBoard work with gnuchessx running
--directly on Windows (not remotely via rsh).  It now works on NT, but only
--if gnuchess is told not to think on its opponent's time ("easy\n" removed
--from initString).  The problem seems to be that GenerateConsoleCtrlEvent
--is not doing anything.  On Windows 95 beta 2, we get error messages on
--both reading and writing to gnuchessx; I didn't investigate why.
--
--3.2, patchlevel 0 -- Wed Dec  7 13:23:36 1994  Tim Mann 
--
--* Thanks to all the beta testers who gave me feedback: Josef Nelissen,
--Steve Booth, Evan Welsh, Dima Dakhnovsky, Chris Petroff, Peter Jansen,
--Derek Terveer, Michel van der List, Richard Lloyd, Shelly Mistry, and Mike
--Lee.  Sorry if I forgot anyone.  Thanks to Virendra Kumar Mehta for
--information about DYNIX/ptx.
--
--* Don't exit on keyboard EOF unless we get two in a row.
--
--* WinBoard only: added -localLineEdit switch to allow turning off local
--line editing if you really want to.  It is still a bad idea to let the
--echoing be done remotely, however; see below.
--
--* Fixed some configure problems on HP-UX.  [Steve Booth]
--
--* Fixed (I hope) configure problem on SunOS 5.3/Solaris 2.3.  [Josef Nelissen]
--
--* cmail bugfix from Evan Welsh (cmail 3.4).
--
--3.1, patchlevel 9 -- Fri Dec  2 23:54:56 1994  Tim Mann 
--
--* Beta distribution only
--
--* Always do local echo/edit of user typing in ICS mode.  Doing the echo
--downstream may seem nicer in some modes, and it can be hard to turn that
--echo off, but the echoed characters can be interleaved with ICS output
--and make it impossible to parse correctly.  For xboard this involved only
--a change to recommendations in the man page, as Raw() isn't implemented.
--For WinBoard, removing Raw() made a real difference.  Added code in 
--WinBoard to change /r/n back into /r on keyboard input, as we get the 
--former when Raw() is not called.
--
--* Do not issue ICS "refresh" command after we start to observe a game
--unless we get to the next prompt without seeing a board image.  Newest
--version of ICS doesn't require this refresh, but old versions around still
--do.
--
--* cmail bugfix and small code cleanup in LoadGame, from Evan Welsh.
--
--* Added keyboard accelerators N/P for LoadNextGame/LoadPreviousGame.  Evan
--Welsh request.
--
--* Using "-" on the command line as a filename for loading (saving) games
--or positions specifies the standard input (standard output).  Alain Picard
--suggestion.
--
--* On WinBoard only, a command line option without a leading '-' or '/' is
--now taken as the value of -lgf.
--
--* Changed to not use stdin, stdout, stderr as initializers in backend.c;
--needed for GNU libc compatibility.  You also must build parser.c with flex
--(not lex) if you are using GNU libc, to avoid having the same problem
--there.
--
--* Changed WinBoard to avoid using "overlapped" input on the console.  It
--now seems to fully work on Windows 95 beta 2.
--
--* Improved comment popups on WinBoard.  Now newlines are handled properly,
--and the plain Comment popup window doesn't disappear and reappear when we
--step to a new move with a new comment.
--
--* Fixed bugs in detecting the absence of the time and otim commands.
--
--* Added built-in implementation of rcmd protocol to WinBoard.  Windows NT
--does not implement passing signals through rsh, and Windows 95 does not
--have rsh at all.
--
--* Added -remoteUser option.
--
--3.1, patchlevel 8 -- Mon Nov 28 15:26:07 1994  Tim Mann 
--
--* Beta distribution only
--
--* Rearranged ChangeLog file into reverse chronological order to be closer
--to GNU standards.
--
--* Integrated new cmail code from Evan Welsh (including cmail RCS rev 3.2).
--Includes a bug fix to TruncateGame.
--
--* Updated ICS address to be chess.lm.com.
--
--* Bug fixes to handling the aftermath of FatalError.  Thanks to Chris
--Petroff for the bug report.
--
--* Test for remsh before rsh, other fixes for HP-UX.  Thanks to Richard
--Lloyd.  I wasn't able to do all the things he suggested, so there may
--still be some rough edges in building on HP-UX.  See the FAQ file for hints.
--
--* Bug fix; added missing check for HAVE_SYS_SYSTEMINFO.  Thanks to Josef
--Nelissen for testing on Solaris 2.x.
--
--* Updated WinBoard to match xboard.  (WinBoard still has a few option
--dialogs that don't exist in xboard.)
--
--* Changed Hint output to a popup.
--
--* ShowThinking output and move output no longer overwrite each other.
--ShowThinking output won't appear if the displayed position is not current. 
--ShowThinking output in TwoMachines mode made clearer and documented.
--
--* Implemented --enable-ptys and --disable-ptys arguments to configure.
--
--* Fixed Book and Hint code to work over a pty with echo enabled and tabs
--expanded to spaces.  Thanks to Dima Dahknovsky for the bug report.
--
--* Moved Attention calls from all over xboard to one place, inside
--SendToProgram.
--
--* Added bulletproofing to ShowThinkingEvent.
--
--* Added code to handle "refresh N" boards that come in from ICS properly,
--assuming ICS is changed to mark them with a new relation code (-3).
--
--3.1, patchlevel 7 -- Sun Nov 13 22:16:01 PST 1994 -- Tim Mann
--
--* Beta distribution only
--
--* Changed ShowThinking to just show the current best line in the
--DisplayMessage area, instead of dumping everything to stdout.
--
--* Installed new cmail (RCS rev 3.1) and cmail.man (RCS rev 1.10), and
--changes to cmail code in backend.c, from Evan Welsh.
--
--* Miscellaneous minor fixes.
--
--3.1, patchlevel 6 -- Fri Nov  4 12:53:53 PST 1994 -- Tim Mann
--
--* This patchlevel was not actually released to anyone.
--
--* Updated the pty code to be based on GNU Emacs 19.24, and moved it to a
--separate file.  It was hard to split out just the pty configuration from
--all the stuff emacs does with its custom configure script and .h files,
--but I did my best.
--
--* Converted from imake to GNU autoconf.  This was a serious upheaval.  
--
--* Put in code to help trap "error gathering move list" problem reported by
--Michel van der List if it recurs.  I couldn't reproduce it.
--
--3.1, patchlevel 5 -- Mon Oct 31 21:12:00 PST 1994 -- Tim Mann
--
--* Beta distribution only.
--
--* We now test for checkmate or stalemate in EditGame mode after every user
--move, and in LoadGame mode whenever we hit the end of a game without
--seeing a PGN end marker.  cmail needs an update to deal with this
--correctly; Evan promises one.
--
--* Bugfixes in new move generator.  Thanks to Mike Lee for reporting one of
--the bugs.
--
--* Imakefile was omitted from patchlevel 4.
--
--3.1, patchlevel 4 -- Mon Sep 19 18:19:46 PDT 1994 -- Tim Mann
--
--* Beta distribution only.
--
--* The move generator includes a mate tester.  Initially this is used only
--by cmail, and even that usage needs further work.
--
--* Wrote a true move generator and used it to replace all the move
--disambiguation and legality checking code in parser.l.  The move generator
--is capable of dealing correctly with en passant and castling availability,
--but the rest of the program still does not keep track of this information.
--
--* Bug fix: xboard did not handle "foo has made you an examiner of game 23"
--message.  Thus you could not use examine features until the next board
--came in, showing your new relation to the game.  Thanks to POOKIEWOOKIE on ICS
--for the bug report.
--
--* Added AutoObserve feature.  Thanks to Chris Petroff for the idea.
--
--* Added Book feature to use new gnuchess "bk" command.  Mike McGann request.
--
--* Redid code to handle missing "time" command in gnuchess, because latest
--gnuchess no longer sends a response to this command.  
--
--* Eliminated need for -DFLEX.  Thanks to Michael Shields (Vladimir?) for
--the idea.
--
--* Added missing code to implement MoveNow in TwoMachines mode.
--
--* Added ShowThinking feature.  Thanks to Richard Lloyd for the idea.
--
--* Applied patches from Evan Welsh; some fixes and improvements to the
--cmail code.
--
--* Fixed bug in moving from EndOfGame mode to MachineWhite or MachineBlack,
--introduced in previous patchlevel.  Also fixed related bug in ending a
--game in ICS mode; was entering EndOfGame mode instead of IcsIdle.
--
--* Added patch to implement internetChessServerLogonScript flag, from Kevin
--O'Connor.  Thanks!
--
--3.1, patchlevel 3 -- Wed Sep  7 13:22:07 PDT 1994 -- Tim Mann
--
--* Beta distribution only.
--
--* Merged in new cmail code from Evan Welsh.  He added the ability to have
--more than one game per message, needed for official IECG matches.  I added
--the ability to resign or offer/accept/decline a draw in a cmail game.
--
--* Bugfix: invalid -tc option caused segmentation fault; DisplayFatalError
--was called too early in initialization.  Georges Honore reported this bug.
--
--* Decided to keep EndOfGame mode as an element of the user interface---it
--means that a gnuchess game or loaded game has ended, and the user must
--explicitly select EditGame to edit it, rather than just being able to
--enter more moves freely.  But internally there is no longer an invariant
--tying this mode to whether the chess program is running.
--
--* Zippy bugfix: Was saving only the final position in the -sgf file when
--the game ended by something other than resignation or flag.  Also fixed
--the longstanding bug that Zippy would think the final board of such a game
--was a new game and restart the chess program.
--
--* Now does a better job of faking castling availability in FEN.  We still
--don't really keep track of it, but now at least we don't say that castling
--is still available when the king or rook is not on its home square.
--
--* Bugfix: Initial board of game history for wild games was going through
--too much processing, causing us to forget the game length, which is now
--needed by ParseGameHistory.  This was causing problems with resuming
--adjourned wild games.
--
--* Updated ICS host to ics.onenet.net.
--
--* Zippy now accepts challenges where the opponent specified his color.
--
--* Added ZIPPYPASSWORD2 to let operator give commands directly to gnuchess.
--
--* Bitmap directory can include alternative icons now, too.
--
--* Handle "Game * (*) has no examiners" message from ICS.
--
--* Revamped window title and icon name selection.
--
--3.1, patchlevel 2 -- Sun Jun 12 17:16:28 PDT 1994 -- Tim Mann
--
--* "Beta" distribution for Zippy users only.
--
--* Bugfix: common.h was assuming that X11 type Boolean is char, which is
--not always true.  This might have caused all sorts of obscure bugs!
--
--* Installed new bitmaps from Elmar Bartel as the default.  Many thanks!
--The old bitmaps can be used by changing the "bitmaps" symbolic link before
--compiling xboard, or by using the -bitmapDirectory option at runtime.
--
--* Loading a game that ends with the PGN unfinished symbol ("*") now always
--leaves you in EditGame mode.
--
--* Added documentation of -icscomm to man page.  Thanks to Maarten Remkes
--for the linux script.
--
--* ^C now kills gnuchess as well as xboard.  Thanks to Dima Dakhnovsky for
--reminding me how to do this.
--
--* Bitmap icon color now indicates player to move.  Stuart Cracraft
--suggestion.
--
--* Changed piece bitmap flags to have just one flag, which points to a
--directory full of bitmaps, instead of a flag for each bitmap.  Also
--changed bitmap naming convention.
--
--* "Connection closed by ICS" is no longer a FatalError popup.  This was
--too annoying in the normal case where the user typed "quit".
--
--* Changed default font to 14 pixels instead of 10 points.  This seems to
--make it close to the size I want it to be on more displays.
--
--* Major mode (GNU Chess, etc.) appears in title bar.  Stuart Cracraft
--request.
--
--* Bug fix: EditGameEvent, MachineBlackEvent, MachineWhiteEvent, and
--TwoMachinesEvent were calling PauseEvent to get out of pause mode, which
--now has undesired side effects, such as advancing the display to the
--forwardMostMove.  It works fine to just set pausing = FALSE instead.
--
--* IcsExamining mode now lets you access ICS edit position commands using
--the same popup menus as xboard's EditPosition mode.  Thanks to DAV on ICS
--for inspiring the idea.
--
--* Corrected test for gcc on HP in Imakefile; thanks to Richard Lloyd.
--
--3.1, patchlevel 1 -- Wed Jun  1 16:25:11 PDT 1994 -- Tim Mann
--
--* Added parser.c.lex and parser.c.flex to the distribution.
--
--* Added HP gcc options to Imakefile, from Mats Nylen.
--
--* EndOfGame mode no longer highlights EditGame mode indicator, because the
--modes really do differ.  I would like to get rid of EndOfGame mode in the
--future, at least as far as users can see.
--
--* Larger %a in parser.l, needed for RS/6000 users.
--
--* Minor improvements to Mail Move error messages.
--
--* When -debug flag is given to xboard, -v is passed to cmail.
--
--* Old Save Style uses "1. ..." instead of "1..." when black moves after a
--comment; more like xboard 3.0's actual style.
--
--* New version of cmail from Evan Welsh.  Looks for UCB Mail in a more
--portable way and has some minor bug fixes.
--
--* Bug fix: Saving a FEN position while in EditPosition mode with black to
--play was showing white to play in the saved position.
--
--3.1, patchlevel 0 -- Fri May 20 16:36:15 PDT 1994 -- Tim Mann
--
--* This is the first general release since 3.0, patchlevel 9.  Releases
--since then have been limited-distribution or beta releases.
--
--* Thanks to my version 3.1 beta testers: Dmitry Dakhnovsky, Ed Hanway,
--Richard Lloyd, Mike McGann, Shelly Mistry, Josef Nelissen, Chris Petroff,
--Jack Robertson, Michel van der List, Ky Macpherson, Derek Terveer, and
--Evan Welsh.  Sorry if I've forgotten anyone who gave me feedback.
--
--* Updated man page.
--
--* Minor cleanup on menu sensitivity code.
--
--* Integrated another even better version of cmail from Evan Welsh,
--including some code he supplied in xboard itself.
--
--* A few more fixes to cmail support.
--
--* Automatically update clocks after an ICS "moretime" command.
--
--* Handle ICS automatic examine mode (set examine 1) after a game.
--
--3.0, patchlevel 14 -- Tue May 17 13:41:44 PDT 1994 -- Tim Mann
--
--* Beta test release only.
--
--* Don't suppress prompt on first board of game being examined; otherwise
--it looks like nothing happened at all (i.e., like you're lagged).
--
--* Added StopExamining and StopObserving (Chris Petroff suggestion).
--
--* Made Reset do a refresh on ICS.  John Chanak's original ICS code for
--xboard tried to do this; I finally decided it was a good idea after all.
--
--* Fixed bugs in handling updates that come in while you are pausing in
--examine mode.  This is pretty tricky to do right.
--
--* Made un-Pausing immediately pop you to the current position.  This is
--always necessary in examine mode, since the game may have changed under
--you; your remembered moves might no longer be right.  So I made it do the
--same in all modes.
--
--* Took Detach Examine mode back out...used Pause mode for this instead!
--
--* Put in a trap for the GNU Chess bug of printing an Illegal Move message
--when its own hint move is illegal.
--
--* Attempted to fix a Zippy bug; bogus "exited unexpectedly" messages after
--it checkmates its opponent.  This involved adding an argument to GameEnds
--to say who says it ended (ICS, GNU, etc.)  and taking different actions in
--different cases.  Unfortunately, this just restored an older Zippy bug, where
--Zippy restarts gnuchess when it gets the board with the final position,
--because GameEnds still puts xboard in EndOfGame mode.  Sigh.
--
--* We now capture elapsed time on last move when getting game history.
--(Josef Nelissen bug report)
--
--* Rewrote code to redisplay last file title so it really works.
--
--* Fixed bug in oldSaveStyle.
--
--* Larger %a and %o were needed for lex.
--
--3.0, patchlevel 13 -- Mon May 16 16:26:22 PDT 1994 -- Tim Mann
--
--* Beta test release only.
--
--* FatalError popups stay on the screen now.  If the error is really fatal,
--all functions are disabled, and the program exits when you press OK.
--
--* Redisplay last file title when using Load (Next/Previous/Same) Game.
--
--* Zippy understands new match challenge message format on ICS.
--
--* Added Revert command.
--
--* When examining a game on ICS, < > buttons do ICS backward/forward
--commands, unless you set the Detach Examine option.  Thanks to Dima
--Dakhnovsky for the idea.
--
--* Fixed various minor problems in cmail mode.
--
--* cmail generates the tags now.  New version of cmail from Evan Welsh.
--
--* cmail mode won't let you do MailMove unless the currently displayed
--position is exactly one move past the end of the game you loaded.
--
--* Fixed building of man pages in Imakefile
--
--* Updates to INSTALL file
--
--3.0, patchlevel 12 -- Sat May  7 21:10:03 PDT 1994 -- Tim Mann 
--
--* Beta test release only.
--
--* Brought man page up to date.
--
--* Added Shift+R to resign from keyboard.
--
--* Some items on Action menu available in GNU Chess mode now.
--
--* Revamped Action menu.
--
--* Reordered functions in backend.c as a small step toward reorganizing
--this whole mess.
--
--* Generate TimeControl PGN tag.
--
--* Get type of ICS game (e.g., rated blitz) and save in PGN tags.
--
--* Bug fix: Clocks were not redisplayed when entering EditGame mode.
--
--* Bug fix: Clocks were not being redisplayed after loading a game file
--with -td 0, so they could show the wrong color active.
--
--* Bug fix: Chess programs would be killed and match mode would exit
--prematurely when loading a PGN game fragment ending with "*".
--
--* ICS command "sposition" no longer confuses xboard.
--
--* Integrated new version of cmail (with support code in xboard) from Evan
--Welsh.
--
--* Added TruncateGame, MoveNow, RetractMove, and QuietPlay.
--
--* Bug fix: switching between MachineWhite and MachineBlack was not calling
--Attention().  Reported by Dino Dini.
--
--* More improvements to INSTALL and Imakefile.
--
--* Pack moves into 79 character lines in PGN output.  We don't generate
--check indications, and we always break the line before the result,
--so this is not quite PGN export format.
--
--* Use FEN tag in PGN.
--
--* Improved finding and counting of game starts in save files.
--
--* Negative position or game numbers in -lpi/-lgi mean to seek to that byte
--offset.  Hook for possible future features, not in man page.
--
--* Detect and handle absence of either "time" or "otim" commands in
--gnuchess.
--
--* Don't use "promote" command to ICS anymore.
--
--* Handle switching sides and taking back moves on FICS.
--
--* Handle flip state flag in style 12 board.
--
--* Handle examine mode on ICS.
--
--* Improved error popups for various kinds of illegal moves.
--
--* Suppress unasked-for hints from gnuchess (which it generates in post
--mode).
--
--* Load/save position functions use FEN.  Old style also supported.
--
--* Added detailed error messages if loading a bitmap file fails.
--
--* Small board has 2-pixel lines between squares instead of 3-pixel.
--
--* Added OldSaveStyle and AboutGame.
--
--* Renamed ForceMoves to EditGame.
--
--3.0, patchlevel 11 -- Tue Sep 21 15:25:36 PDT 1993 -- Tim Mann 
--
--* The following changes were present in xboard 3.0, patchlevel 11, but the
--first group did not make it into WinBoard 3.0 until later.  xboard
--3.0.pl11 was a limited-distribution release only, mostly to Zippy users.
--
--* Man page minor fixes.
--
--* Added a missing file close.
--
--* Removed automatic error popdown on Reset, which was destroying some
--error messages before they could be read.
--
--* Fixed char vs. unsigned char warnings on bitmaps.
--
--* Use ICS board style 12.  Some improvements to ICS parsing.
--
--* Comment window is now labelled with the move the comment is on, and
--comments don't pop down when you step to the next move.
--
--* Save files now in PGN format.
--
--* Support for loading PGN files.  PGN tags pop up when a PGN game file
--is loaded.
--
--* More info in INSTALL and Imakefile about building for Suns (and
--other systems).
--
--* WinBoard 3.0 patchlevel 11 split off from an early version of xboard
--3.0 patchlevel 11, so it does not have all the features of that
--patchlevel.  The following changes made it into both xboard and
--WinBoard:
--
--* Made Comment dialog non-modal in WinBoard.
--
--* EndOfGame mode is now more transparent.  It looks like ForceMoves
--mode except that there is no chess program running.
--
--* Small bug fixes in clock management.  Most noticeably, pausing when
--it is gnuchess's move now works as documented (again).
--
--* Add minimal support for -icscomm option.  Not documented yet because
--I haven't sorted out the issues with setting the tty modes on the comm
--port device, or with locking it properly.  But it's usable by wizards.
--
--* Don't restart the chess program upon Backward event from EndOfGame mode.
--
--* Suppress extra prompt after ICS sends us a board.
--
--3.0, patchlevel 10 -- Sat Sep 11 18:44:03 PDT 1993 -- Tim Mann 
--
--* Beta test release only.
--
--* Zippy now plays chess.  zippy.c and zippy.h are still not included
--in the standard distribution, but are available on request.
--
--* Switched to using style 12 on ICS.
--
--* Updated man page, and documented use of XBoard*form.translations to
--add more shortcut keys.
--
--* Added shortcut keys "d" to claim/offer/accept a draw, and "t" to
--call flag.  Suggested by venu on ICS.
--
--* More explicit instructions in INSTALL file.
--
--3.0, patchlevel 9 -- Tue Sep  7 14:02:00 PDT 1993 -- Tim Mann
--
--* General release, minor update to 3.0.pl8.
--
--* Loosened checking on whether it's okay to start a move, to satisfy
--ICS ultra-blitz players.  Now we don't check whether it's your turn
--until you let go of the piece.
--
--* Parser now recognizes "+-+" as meaning the game ended in a draw.
--
--* Got rid of S_NONE symbol, which seems to conflict with some symbol
--Sun defines.
--
--* Tweaked the man page.  Clarified that there is currently no way for
--two people running copies of xboard to play each other without going
--through the Internet Chess Server.
--
--* Fixed a bug in color name conversion.  Asking for two different
--colors whose names were the same in the first four characters would
--get you two copies of the first one.  Thanks to Volker Zink for the
--bug report.
--
--* Improved confusing Usage() message.
--
--* Added a bunch of Sun information to the Imakefile and INSTALL file.
--Thanks to Ed Hanway, Arik Klingensmith, and others who responded.
--
--* Test for defined(WIN32) instead of !defined(unix).
--
--* Avoid using (void *) type with non-ANSI C compilers.  Thanks to
--James Altucher for the bug report.
--
--3.0, patchlevel 8 -- Thu Sep  2 12:23:01 PDT 1993 -- Tim Mann
--
--* Note: Patchlevel 8 was the first non-beta release of xboard 3.0
--
--* Added cmail to distribution.  Contributed (and still maintained) by
--Evan Welsh.
--
--* Bug fix: -queen option wasn't initializing menu check.  Reported by
--Pat Surry.
--
--3.0, patchlevel 7 -- Thu Aug 26 13:23:24 PDT 1993 -- Tim Mann
--
--* Sent WinBoard 3.0.pl7 to Torre on ICS
--
--* Added parser.h to hold the interface to parser.l
--
--* Upgraded COPYING file and copyright notices to GNU GPL version 2.
--
--3.0, patchlevel 6 -- Tue Aug 24 15:16:13 PDT 1993 -- Tim Mann
--
--* We no longer display intermediate positions or intermediate comments
--while loading a game file with -timeDelay 0 or loading an opening to
--start up a -matchMode game.
--
--* Loading an empty game from an xboard save file now gives a status
--message "No moves in game" instead of an error popup saying "Game not
--found in file."
--
--* Added comment.awk to distribution.
--
--3.0, patchlevel 5 -- Tue Aug 17 16:45:54 PDT 1993 -- Tim Mann
--
--* Bug fix:  xboard would crash if it couldn't get all its colors; now
--it switches to monoMode instead.  Also, xboard was trying to convert
--color resources even when using a b/w display.  Reported by Larry
--Rogers.
--
--* Bug fix: Declared fields of TimeMark as signed so that we get signed
--instead of unsigned arithmetic.  SubtractTimeMarks was breaking on
--Alpha AXP (which has 64-bit longs) with old declarations.  Reported by
--Michel van der List.
--
--* Bug fixes:  Keyboard accelerators now work after EditComment window is
--popped down.  Iconize keyboard accelerator now works even if xboard
--was started with -iconic flag and later deiconized.
--
--* Bug fix:  The routine that tests whether a move is illegal because it
--would leave you in check was not handling e.p. captures properly.
--Reported by Patrick Surry.
--
--* Bug (?) fix:  Was adding time to clocks at time control even when
--loading a game file.  Actually it's not entirely clear how time
--controls should be dealt with when some moves are loaded from a file
--or clicked in with ForceMoves.  For now ForceMoves mode does add the
--time (because it can be used to change moves during a live game), but
--LoadGame mode does not.
--
--* Updated usage message.
--
--* Previous attempted fix to matchMode had broken TwoMachines mode and
--generally needed more work.  Also simplified command line interface to
--matchMode.
--
--3.0, patchlevel 4 -- Thu Aug  5 14:17:18 PDT 1993 -- Tim Mann
--
--* Thanks again to the beta testers listed for 3.0 patchlevel 3, and also
--Desnogues, Steve Cariglia, Niklas Engsner, Mark Silver, and Roger Rowe.
--
--* Reorganized man page, splitting OPTIONS into subsections.
--
--* matchMode was very broken; fixed.
--
--* Changed convention for turning off command line options from --opt
--to -xopt, to be less inconsistent with GNU standards.  Also changed
--the long command line options to take True/False arguments like
--resources; seems to make more sense this way.
--
--* Added AlwaysQueen option -- suppresses promotion dialog and always
--promotes to a queen if you move a pawn to the last rank.  Has no
--effect on gnuchess (or your ICS opponents!) -- they can still
--underpromote.
--
--* Subtracted an extra fudge term when determining how wide message and
--title widgets should be.  This fixes a problem some beta testers had.
--Wish I knew why it's needed.
--
--* Bugfix in parser; symptom was that you couldn't do LoadGame after
--observing a game on ICS.
--
--* Bugfix in Forward; didn't work after game ended while Pause was turned on.
--
--* Removed bogus execute bits on .h files.
--
--* Use REMOTE_SHELL and TELNET_PROGRAM definitions.
--
--* MachineWhite and MachineBlack now work from TwoMachines mode.
--
--* Popping down an error message with the [ok] button was not turning off
--the errorUp flag, so the next move would cause xboard to try to pop it
--down again, resulting in a wild memory reference and sometimes a crash.
--
--3.0, patchlevel 3 -- Tue Aug  3 17:40:27 1993  -- Tim Mann
--
--* Thanks to my beta testers: Patrick Surry, Takuya Kojima, Robert J. Luoma,
--Chris L.  Petroff, Richard K. Lloyd, Michel van der List, Craig Metz,
--Antoon Frehe, Simon Clift, Shelly, Eric Peterson, Christopher Mitchell,
--Martin Koch, Ed Hanway, Steve Booth, Udo, Ken Hobday, and Joseph Duhamel.
--
--* Improved error messages for trying to move the wrong color pieces or
--to move when it's not your turn.
--
--* Special code for monoMode on 1-bit displays now understands displays
--where 1=white and 0=black.
--
--* Declare getenv() if <stdlib.h> not included; avoids a compiler warning.
--
--* Documented borderXoffset and borderYoffset.
--
--* Added -titleInWindow option for use with X window managers that
--don't let us set the title in the window banner.
--
--* Fixed error message printing in WinBoard; system error messages no
--longer appear as numeric codes.
--
--* The error message popup is now non-modal; you don't have to press the
--[ok] button before you can do something else.  In addition, the popup is
--positioned so that it doesn't cover up the board (too much), and making a
--move or otherwise clicking on the board pops it down.  (Not implemented in
--WinBoard.)
--
--* You can now call your opponent's flag in ICS mode by clicking on his
--clock. 
--
--* Fixed minor bugs in -flipView option and documented exactly how xboard
--decides which way to flip the view.
--
--3.0, patchlevel 2 -- Fri Jul 30 22:20:23 PDT 1993 -- Tim Mann
--
--* Added Autosave to Options menu.  Would be better to have Save
--Options dialog as in WinBoard, but this was quick to do and gives the
--most-needed functionality.
--
--* Changed "Reload Game" on menu to "Reload Same Game".
--
--3.0, patchlevel 1 -- Thu Jul  8 21:22:59 PDT 1993 -- Tim Mann
--
--* Sent a copy of patchlevel 1 to Patrick Surry to beta-test.
--
--* Added -cmail option that sets appData.cmailMode.  Currently a no-op.
--In the future this may set special modes for use by the cmail script
--for playing chess by email.
--
--* Added LoadNextGame, LoadPreviousGame, and ReloadGame to File menu.
--ReloadGame suggested by Patrick Surry.
--
--* Added -flipView command-line option.  Suggested by Patrick Surry.
--
--* Fixed bugs in parser.l:  (1) Pattern for "# xboard game file ..."
--needed to match to end of line.  (2) Start of a new file was not matching
--the ^ start-of-line character.  The fix for this is a kludge.
--
--* Made game counting code in LoadGame more robust, and made LoadGame
--able to detect the end of a saved partial game (by noticing the start
--of the next game) in game files created by XBoard itself.  We don't
--try to find the start of the next game that way in other kinds of game
--files, because the only way I can think of to do that is to look for
--another move #1, and that technique gets too many false hits.
--
--* Fixed recently introduced bug in LoadGame when game starts with a
--position diagram.
--
--3.0, patchlevel 0 -- Fri Jun 25 14:17:17 PDT 1993 -- Tim Mann
--
--* Changes in this patchlevel were too numerous to list.  Larger ones are
--listed below.
--
--* Added a popup dialog to enter and edit comments.  Inspired by some
--code from Patrick Surry.  Changed the normal read-only comment popup
--to the same style.
--
--* Added ICS init script feature from Karl Schwamb.
--
--* Added some ESIX fixes and OMIT_SOCKETS ifdef option, from Kayvan Sylvan.
--
--* Revamped code to allow use of flex instead of lex on parser.l.
--Using flex requires adding -DFLEX to defines in Imakefile.
--
--* Source code is split into front end (xboard.c), which knows about X
--and Unix, and back end (backend.c), which knows about chess, gnuchess,
--and the ICS.  There is also a front end for Windows NT.
--
--* Boolean command line options now use "-foo" to turn on and "--foo"
--to turn off instead of "-foo true" and "-foo false".  [Later -xfoo;
--see above.] 
--
--* Added menu commands to control autoflag, bell, and coords options.
--
--* User interface has a new look: (1) Menu bar instead of array of
--buttons.  A few very commonly used features have small buttons in
--addition to being on the menus. (2) Large font for clock.  (3) Pop-up
--dialogs for errors.
- 2.1, patchlevel 11 -- Sat Jun  5 00:01:01 PDT 1993 -- mann@src.dec.com
- * Added code to deal with "wild" games on ICS.  This includes allowing
- castling with the king on d1 or d8, which is allowed in wild(1) games
- if the king started there.  Notation is o-o to castle "short"---to
- whichever side the king is closer to---and o-o-o to castle "long."
- Right now wild castling is always allowed by xboard; we rely on ICS or
- gnuchess to reject it when we aren't really in wild mode.
- * memcpy call had arguments in wrong order.
- * Removed April Fool code
- 2.1, patchlevel 10 -- Mon Feb 15 10:19:31 PST 1993 -- mann@src.dec.com
- * Avoid trying to select on a pipe when using System V.  Needed to
- copy some code from InitChessProgram() up into establish().
- * Bug fix in disambiguating pawn moves like "ed".
- * Fix to error handling in ReceiveFromProgram.
- * Bug fix: entering EditPosition mode with black to play highlighted
- White's clock instead of Black's.
- * Added telnetProgram resource in case "telnet" is not the name of the
- telnet program.
- 2.1, patchlevel 9 -- Fri Jan 22 19:08:27 PST 1993 -- mann@src.dec.com
- * Entering Force Moves mode clears "flag has fallen" messages from display.
- * ICS host name can now be in numeric format; for example 128.2.232.4.
- * Bug fix: LegalityTest was failing to test whether a pawn move was
- illegal because the move would discover a check.
- * Handle ICS message "mann asserts a win over manntest, who disconnected."
- * Bug fix: A recent change to PromotionCallBack had broken
- underpromotion to a knight.
- * Bug fix: In EditPosition mode, dragging a piece onto a square border
- would make it vanish.  xboard wasn't distinguishing this case from
- dragging the piece off the board.  Thanks to Matthew Kidd.
- * Removed "static" declaration from yywrap for compatibility with IRIX
- version of lex.  Thanks to stiller@blaze.cs.jhu.edu.
- * Added substitutes for bzero, bcopy, and gethostname for Solaris
- SVR4.  Thanks to Michael Grant.
- * Bug fixes to queen move disambiguation.  Bugs showed up only when
- promotion resulted in more than one queen on the board.
- 2.1, patchlevel 8 -- Fri Dec 11 17:54:18 PST 1992 -- mann@src.dec.com
- * parser bug fix: It now really works to leave off the piece a pawn is
- promoting to and let it default to queen.
- * When starting to observe or play an ICS game, don't draw board in
- initial position and then immediately redraw it in the current
- position.
- * Handle ICS messages when an "abuser" forfeits a game by
- disconnecting and when a game is aborted ("removed") by an
- administrator.
- * Bug fix: A user move when in LoadGame+Pause mode was resuming the
- game load instead of putting us in force mode.
- * It seems that crashes inside sscanf when xboard is compiled with gcc
- (as on IBM PS/2 AIX, mentioned below, and also on VAX Ultrix 3.1) are
- caused by an incompatibility between gcc and the sscanf implementation
- on these platforms.  A workaround is to specify -fwritable-strings to
- gcc (see the gcc documentation).  Added info on how to do this to the
- Imakefile.  Thanks to Tom McConnell for this information.
- * Clocks are allowed to go negative.  This is mostly for ICS
- compatibility, but it affects gnuchess mode too.  Also, we give the
- time bonus when a player hits the time control boundary even if his
- flag is already down.  This choice is a bit debatable, but it makes
- things look better when you are in TwoMachines mode and gnuchess's
- time management screws up causing it to exceed its time limit.
- * Implemented move legality checking code.  Moves made with the mouse
- or parsed from a file are checked for legality before being made.
- This is mostly in preparation for future extensions, such as
- human-human play.  For now it makes -noChessProgram mode more useful.
- * If the user takes back moves, we restore the clocks to the earlier
- settings.
- * We now handle the output of the ICS oldmoves command, including
- parsing the game end condition.
- * Added autoCallFlag mode.
- * Fixed glitches in the medium size outline king and rook bitmaps, and
- touched up the medium size solid king and outline queen.
- * bug fix: DisplayMove would not display backwardMostMove - 1.
- * Added CallFlag button and removed AcceptMatch.  CallFlag is more
- important with new ICS, and accepting the current match offer is easy
- with the new ICS command "accept" (can be abbreviated "ac").
- * LoadGame and LoadPosition display tail of file name (plus index
- number, if any) as title.
- * MachineWhite, MachineBlack, and TwoMachines now work properly from
- LoadGame and LoadGame+Pause mode.
- * Use o-o and o-o-o to castle on ICS, not 00 and 000.
- * Stripped out code for old ICS messages; new ICS is now installed.
- * Bug fix: don't offer autosave when paused during LoadGame.
- 2.1, patchlevel 7 - Fri Dec 11 17:40:56 PST 1992 - mann@src.dec.com
- * Track change to "Illegal move" message in new ICS.
- 2.1, patchlevel 6 -- Tue Dec  8 10:48:44 PST 1992 -- mann@src.dec.com
- * Kludged around bug in keeping comment popup where you put it by
- adding borderXoffset and borderYoffset resources that give the width
- of the borders added by the window manager.  Yucch.
- * Changed searchDepth kludge back to using "help" instead of "bd"; the
- latter didn't work because the output contains a line starting with
- "White", so we think gnuchess is telling us that White won.  Oops.
- * Removed some code that uses an X11R5 feature, XrmGetDatabase.
- Without this, the auto font sizing code is harder to make work, so to
- keep my sanity I had to change it to affect only the fonts that appear
- in the main window and the comment popup, not the other popups.  Maybe
- this is better anyway.
- * AcceptMatch button now works after a counterchallenge, too.
- * Added code for more variants of messages about games being adjourned
- or aborted.  These messages need to be unified in new version of ICS.
- * Added workaround for minor bug in ICS; game number on first board
- can be wrong.
- * Removed code to say "refresh n" instead of "refresh"; was broken and
- wasn't needed anyway.
- * Added missing casts for compilers that distinguish enums from ints
- and missing cast in connect call.
- * Added code to recognize "both sides are out of time" draw message
- proposed for next version of ICS.
- * Thanks to Danny Sleator and Joe Peterson for bug reports.
- 2.1, patchlevel 5 -- Sun Dec  6 19:52:40 PST 1992 -- mann@src.dec.com
- * Removed gcc and CDEBUGFLAGS from Imakefile.
- * Corrected setting of mode to ForceMoves when game file ends or
- contains an AmbiguousMove or BadMove.  Previous bug was harmless.
- * Added AcceptMatch button and mention of 50-move rule for Draw button
- to man page.
- 2.1, patchlevel 4 -- Sun Dec  6 02:55:42 PST 1992 -- mann@src.dec.com
- * Now handles revised messages from new version of ICS.  New ICS is
- not released yet, so this code might change further.  Next patchlevel
- will remove support for old ICS; both are there now.
- * Initial processing for a new game being watched or played now
- happens when we see the first board image.  Removes the need to parse
- some messages and unifies some code.
- 2.1, patchlevel 3 -- Tue Dec  1 19:40:40 PST 1992 -- mann@src.dec.com
- * Handles ICS messages "Draw : neither player has mating
- material" and "Draw : White has no material, Black has no time."
- * Added AcceptMatch button for ICS mode.
- * Fixed bug in previous fix to yylexstr().
- * Fixed bugs in code for loading old position files that don't start
- with "#" and for handling case where user asked for nth position in
- file but there aren't that many.
- * Handles ICS message "* has restored your old game"
- * ResetProc always clears title line now.
- * Don't issue just "refresh" when watching a game; use game number.
- Upcoming new version of ICS may need this.
- * Added code to try to prevent user from watching and/or playing more
- than one game at a time.  There is a race condition inherent here; if
- we get more than one board from the game before our command to stop
- watching it takes effect, we'll think the user started it again.  Not
- clear how to fix this.
- * Redid ParseBoard8 to use sscanf.  Code is a good deal cleaner now.
- Also, we now parse out the game number too, though we don't make much
- use of it yet.
- * (Tried to put in a feature that recognizes the current game in a
- game file must have ended when we see the start of a new one, but had
- to disable it because we have too many false hits with the current
- parser, especially in gnuchess listing files.)
- * Moves read from game files or received from ICS are now translated
- into canonical algebraic form just like all other moves.  Minor nit:
- If you use Reset while playing or observing a game in ICS mode, the
- game history (including the current board position) is lost, so the
- next move of the current game can't be translated.
- * Default fonts now vary with board size, and are chosen by pixel size
- instead of point size (since piece bitmaps have a fixed pixel size).
- * Bug fix: An extra Forward was required to skip over time indications
- in game files.
- 2.1 patchlevel 2 -- Fri Nov 27 23:30:00 PST 1992 -- mann@src.dec.com
- * If you move the comment popup, the next time it pops up it will come
- back where you put it.
- * Fixed yylexstr() so calls to it can be interspersed with calls to
- yylex().
- * Fixed bugs in Forward/Backward while in LoadGame mode.
- * Changed Save{Game,Position} functions to append instead of
- overwriting if file exists.  Changed Load{Game,Position} functions to
- deal with multiple games/positions per file.
- * Changed load{Game,Position}File resources to trigger automatic load
- on program startup.  Changed save{Game,Position}File resources to
- trigger automatic save after every completed game and on program exit.
- * Added autoSaveGames mode.
- * Fixed bug with PromoPiece in call to MakeAlg from MakeMove.
- * Many changes to get rid of picky compiler warnings and generally
- clean up the code.
- 2.1 patchlevel 1 -- Fri Nov 27 02:45:00 PST 1992 -- mann@src.dec.com
- * A last minute change before patchlevel 0 went out broke
- ParseGameHistory().  Immediately fixed in patchlevel 1.
- Version 2.1, patchlevel 0 -- Fri Nov 27 02:00:00 PST 1992 -- mann@src.dec.com
- * Uses "time" command of gnuchess 4.0 and following to keep clocks in
- sync.  Still works with older versions without this command; we test
- whether the command is present the first time each chess program is
- started.
- * File name dialog pops up under the mouse cursor, so that it's got the
- keyboard focus if the window manager is using pointer focus.
- * Attempts to move the wrong color piece or an empty square are filtered
- out in xboard instead of being passed on to GNU Chess or the ICS.
- * The reason a game ended is now remembered even if you move backward
- and forward after it ends.  It is forgotten only if you make a move
- (which is as it should be---this is now a different game, which hasn't
- ended yet).  The message saying why the game ended no longer wipes out
- the last move.
- * Pause, Backward, Forward, ForceMoves, and EditPosition now work from
- TwoMachines mode.
- * Forward and Backward now change only the board display unless you
- are in ForceMoves mode.  Pause mode keeps new moves that are received
- from being displayed on your screen until you unpause (or use
- Forward).
- * Added option to ring the bell after opponents' moves.
- * Saved games that start from other than the standard initial position
- now begin with a postion diagram as in saved position files.  The
- loader is modified to understand such save files.
- * Improved error checking when trying to read from gnuchess.
- * Parser understands things that look like time indications, e.g., (0:12),
- instead of popping them up as comments.
- * Send "quit" to gnuchess before trying to kill it.  I needed this
- locally because sending a SIGTERM to rsh was not killing the remote
- program on some internal field test systems we have.
- * Merged in code from John Chanak to make xboard a front end to the
- Internet Chess Server, and added several improvements of my own.
- (These include parsing end of game messages, loading the current state
- and previous history of a game that's joined in progress via "watch"
- or "load", automatic switch from board style 1 to 8 when needed,
- removing irrelevant buttons and adding some new ones, adding the
- useTelnet and gateway resources, and miscellaneous code cleanup, bug
- fixes, and documentation.)  Many thanks to John for writing and
- contributing the initial version of this code.
- Fri Oct 30 20:16:40 PST 1992 (patchlevel 25) mann@src.dec.com
- * gnuchess now castles by sending us "o-o" or "o-o-o" (starting with a
- preliminary version of 4.0.pl60 that I have).  Added code to handle
- this.  The old format ("e1g1", etc.) still works too.
- * Added code to format moves in normal abbreviated algebraic notation
- (for example, e4, exd4, f8Q, Nf6, 0-0) instead of coordinate algebraic
- (for example, e2e4, e3d4, f7f8q, g1f6, e1g1).  Moves entered with the
- mouse or received from gnuchess are translated into this canonical
- format for display on the message line or in saved game files.  Moves
- read from game files are not translated, however; they are shown and
- saved just as they appear in the file.
- Mon Sep 14 13:19:01 PDT 1992 (patchlevel 24) mann@src.dec.com
- * It's not really correct to write an ep capture of a pawn on e5 as
- fxe5; this should be written as fxe6 because e6 is where the capturing
- pawn ends up.  Nevertheless, the parser now interprets fxe5 as the ep
- capture f5xe6 unless there is a pawn on f4, in which case it
- interprets fxe5 as f4xe5.  By design, the parser does not flag fxe5 as
- ambiguous if there are pawns on both f4 and f5; instead it prefers the
- more legitimate f4xe5 interpretation.
- * A move like fxe6 or fe6 is now interpreted as an e.p. capture of the
- pawn on e5 if there is one there and e6 is empty.
- * A move like fxe5 can no longer be interpreted as an e.p. capture if
- there isn't a pawn on e5 to be captured.  Previously this could happen
- erroneously if there were pawns on both f4 and f5, and the f4 pawn was
- capturing a piece on e5.
- * The parser no longer munges the move it is parsing; in the past, for
- instance, it would remove the "x" from a move like dxc5 before echoing
- it to the screen.
- * The parser now detects when a move is ambiguous and returns an
- error, instead of arbitrarily choosing one possibility as it used to.
- Mon Aug 10 18:40:47 PDT 1992 (patchlevel 23) mann@src.dec.com
- * Added code so parser can handle fully qualified algebraic, e.g.,
- Ng1-f3, N/g1-f3, Ng1f3, or even Pe2-e4.  The "P" and "/" work only for
- fully qualified moves, not generally.
- * Fixed parser bugs in handling moves with rank or file disambiguator,
- e.g. N1f3 or Ngf3.
- Mon Jul  6 17:55:32 PDT 1992 (patchlevel 22) mann@src.dec.com
- * AIXV3 patch from Tom McConnell; thanks!
- * After hitting the Backward button we see the last move made instead of
- the word "Pausing" displayed.
- * Fixed a couple of problems compiling on IRIX; thanks to Michel Arsenault
- and Alan Walsh for bug reports and help with fixes.
- * Added optional display of algebraic notation coordinates along left and
- bottom edges of board.  This was inspired by some code from Jean-Christophe
- Engel; thanks!
- * Swapped EditPosition and Pause buttons to reduce danger of losing the
- game in progress by hitting EditPosition when you wanted Backward.  Thanks
- to Ove Lundberg for complaining (though it bugged me too).
- * Despite one complaint, I kept the feature of changing both clocks when black
- makes time control, rather than changing each individually when the player
- involved makes it.  This is to avoid having it look like White is way ahead on
- time while Black is thinking about the last move of the time control period
- (i.e., when White has made time control but Black hasn't yet).
- * Corrected clocks to work as in real tournaments.  Time is *added* when you
- reach time control; previously the clocks were simply set to the length of the
- new time period.  Also, when a player's flag falls, he still does not receive a
- new time allotment at the next time control, but his opponent does still
- receive more time if *his* flag has not fallen; previously, time controls were
- ignored for both players if either flag fell.  I forget who reported this bug.
- * Added a small ESIX patch from Kayvan Sylvan.
- Mon Jun 22 13:24:38 PDT 1992 (patchlevel 21)
- * Added some SVR4 support code from Ronald Cole.  It's Greek to me.
- * Note:  Stephen Meatheringham reports a bug causing xboard to crash with an
- error from the X server when run on a Sun Sparcstation IPX with Solaris 1.0.1
- and OpenWindows 3.0.  This bug has not been tracked down yet.
- * Fixed a problem with ATTENTION code.  On some operating systems, you have to
- be even more cautious about when you send a SIGINT to gnuchess, because the
- signal handler gets deinstalled each time it is used, and gnuchess does not
- reinstall it immediately.  In particular, if you send a SIGINT and make an
- illegal move or ask for a hint, gnuchess does not reinstall the handler until
- *after* you make your next move, so you had better not send a SIGINT before
- it.  I put a workaround for this case into xboard; I hope there are no more.
- * The ATTENTION code is needed when compiling for the ESIX operating system,
- because ESIX has a bug in the FIONREAD ioctl, so the code in gnuchess that
- lets you interrupt its thinking on your time just by typing in your move does
- not work.  Perhaps gnuchess will have a workaround for this eventually.
- * Fixed yet another bug in using XtGetValues; code to inhibit shell resizing
- was leaving a null pointer as the place to store the current sizes.
- * Man page fixes: corrected -sl to -sd, updated LIMITATIONS.
- * Added include of <sys/time.h> conditional on HAS_GETTIMEOFDAY.  I hope this
- works for all systems; on mine, <time.h> and <sys/time.h> are the same file,
- but with an #ifndef that makes it harmless to include both.
- * Thanks for reports from Mike Pearlman, Stephen Meatheringham, Kayvan Sylvan,
- d87-mal@nada.kth.se, Urban Koistinen, and Ronald Cole.
- Mon Jun  8 11:39:18 PDT 1992 (patchlevel 20)
- * Documented default value of initString and explained what it means.  This
- paragraph also serves to inform the user that xboard by default will tell
- gnuchess to think on his time, something one user apparently didn't understand.
- * Redid -searchDepth (formerly -searchLevel) and -searchTime code.  They both
- work correctly with gnuchess 3.1 now.  The -searchDepth option also works
- correctly with gnuchess 4.0.  The -searchTime option does not work with
- gnuchess 4.0.pl50 or earlier because those gnuchess versions do not have a
- working searchTime feature.  Instead of having xboard do a half-baked emulation
- of this feature by using a 1-move time control, I will be submitting a patch to
- the gnuchess folks to restore the feature as in 3.1.
- * Improved clock code.  It now keeps accurate track of fractional seconds of
- clock running time, if your system has gettimeofday(); if not, it is generous
- about them---if a clock has been going for n.m seconds when it is stopped, only
- n seconds are charged.  Previously, xboard would charge one second immediately
- when a clock was started, so if n.m had elapsed when it was stopped, n+1 would
- be charged.  This should stop xboard from thinking gnuchess has let its flag
- fall on the last move of a time control, as it often did before.  I also
- improved the comments and condensed the code a little.  I hope there are no
- systems that have X11 and don't have gettimeofday(), but if there are, I'd like
- to know what to replace it with.
- * "Flag dropped" messages now show up on the top line, beside the clocks, so
- that they don't obscure more interesting messages on the second line.
- * Fixed confusion of NULL and '\000'.
- * Include time.h to get ctime() declaration.
- * Fix to "parser bug" messages in parser.l.
- * Changed code to work with old-fashioned tolower() macro that requires its
- argument to be an uppercase letter.
- * Minor fix to some usage error messages; was reversing program name and
- erroneous argument value.
- * Thanks to Mitch Wright, Ranier Orth, and Henrik Schmiediche for bug reports.
- Fri Jun  5 13:06:08 PDT 1992 (patchlevel 19)
- * Note: xboard does not seem to work when compiled with gcc 1.40 on a
- PS/2 running AIX.  It crashes at the sscanf in line 768 of xboard.c.
- You can work around the problem by specifying the -timeControl option
- on the command line instead of defaulting it.  This does not seem to
- be a bug in xboard itself; it runs okay on PS/2 AIX when compiled with
- MetaWare High C.  [But see 2.1.pl8 above.]
- * Removed bogus files from distribution.
- * Changed variable name that conflicted with SVR4 ttyname function.
- * Thanks to Christoph Strozyk for another bug report, and to several
- of the folks mentioned under patchlevel 18 for testing it.
- Wed Jun  3 17:50:37 PDT 1992 (patchlevel 18) mann@src.dec.com
- * Added an include of sys/fcntl.h to pick up the definition of O_RDWR for
- System V users.
- * Fixed a bug in CatchPipeSignal; was testing the wrong variable to determine
- which chess program got the signal.
- * Removed the declaration of strrchr, which was causing problems for some
- people, and added an include of <string.h> or <strings.h> instead.
- * Fixed a bunch of type errors uncovered by compilers that check more carefully
- than the one I was using.  I just patched many of them with casts---typically
- cases where a function didn't take the same number and type of arguments as the
- X header file prototype said it should---because I didn't see any other way to
- fix them.  The versions of the X header files that I have don't actually have
- full prototypes for these function types; they declare only the return type and
- just give the argument types as comments.
- * InitChessProgram returns immediately if chess program died while we were
- waiting for it to say "Chess".  I think this fixes a bug that could make xboard
- crash or go into an infinite loop printing "Warning: Select failed; error code
- 9" if gnuchess crashed there.
- * Removed code that tries to put the file descriptor used to read messages from
- gnuchess into nonblocking mode.  I don't see how this kludge could ever have
- fixed the problem it was intended to (see below), and it seemed to be causing
- a race condition when we were waiting for the initial message from gnuchess
- after it started up.
- * Thanks to Richard K. Lloyd, Konstantinos Konstantinides, Mark
- Seiden, Erik Schoenfelder, Andreas Stolcke, Rainer Orth, Henry Thomas,
- and Kris Van Hees for bug reports and help with fixes.
- Sun May 31 08:00:00 PDT 1992 (patchlevel 17) Bart Massey bart@cs.uoregon.edu
- *  'xboard' suffered from a couple of serious bugs.  An initial
-    size needed to be given to the message label to avoid a race
-    condition (!) so I gave it some text (otherwise occasionally
-    xboard would fail because the message widget was 0 width under
-    MIT X11R4).  The sizes needed to be Dimension, not int, because
-    they were written in by Xt -- on my big-endian box Dimension
-    is short, causing chaos.  Also, I hacked a declaration in for
-    strrchr() to shut the compiler up -- this is arguably a kludge,
-    but I couldn't think of anything better; maybe you can.
- Fri May 22 13:40:50 PDT 1992 (patchlevel 16)
- * First real (non-beta) release of version 2.0.
- * Added GNU copyleft notices covering version 2.0 enhancements.
- Thu May 21 12:30:09 PDT 1992 (patchlevel 15)
- * Removed -g from Imakefile.
- * Added casts in parser.l to prevent warning messages from some C compilers.
- * Bugfix: code to exit if chess program couldn't be started had bug in error
- message printing.
- Tue May 19 11:58:06 PDT 1992 (patchlevel 14)
- * Fixes one small bug: If LoadGame does not find a game in the file, it resets
- xboard to BeginningOfGame mode (as if the Reset button was pressed), instead of
- leaving it in LoadGame mode.
- Mon Apr 13 18:32:27 PDT 1992 (patchlevel 13)
- * Improved error handling when gnuchessx crashes.  Now displays a message and
- enters EndOfGame state without exiting.  This should help with diagnosing
- gnuchessx problems, since the position and move history are not lost.
- * Debugged man page.
- Version 2.0 -- Thu Apr  2 16:04:54 PST 1992 (patchlevel 12)
- * Added small 40x40 pixel pieces; board size now specified as small, medium, or
- large. 
- * Improved man page.
- * Saved position files now say "white to play" if it's white's move.
- * SavePosition while in EditPosition mode now gets side to play right.
- * Made "Pawn" the default on edit position menus.
- * Removed "To play" from edit position menus, since it's redundant.  Left
- support code in so it can be restored if someone wants it.
- * Tightened parser's definition of a move number to help further with skipping
- over stuff before the first move.
- * Put back feature of skipping over stuff in game files before a start of game
- marker.  This helps when loading electronic mail messages that have things
- like "00" in the header (looks like castling), or that talk about moves in
- running text before the actual game score.  Tradeoff is that we can't load
- games that don't either have move numbers or say "gnuchess game" just before
- the moves.
- * Changed version number to 2.0 because others have used "1.3" for patched
- versions of 1.2.  Display version number and patchlevel at startup.
- Thu Apr  2 15:30:22 PST 1992 (patchlevel 11)
- * Bugfix:  Match started with TwoMachines button now handles the case where
- user loaded/edited a position *and* forced some moves.
- * added error message feedback to many cases where the user's button press is
- rejected because it isn't allowed in the current mode.
- * added -noChessProgram option to allow use as a passive chessboard without
- gnuchess, replacing old buggy scheme that tried to do this automatically when
- gnuchess was not found on the search path.
- * parser accepts "=" in front of promotion piece
- * parser accepts ":" notation for captures
- * Removed SwitchSides button to make room for EditPosition.  Left code in
- place, ifdef'ed out.
- * Added EditPosition mode.
- * Reformatted xboard.c to eliminate long lines.
- * Promotion popup now appears near rank to which pawn is moving.
- * UI improvement: Button representing current program mode is kept highlighted.
- * Bug fix:  Hint button is now disabled when machine is on move.
- Sat Mar 21 14:57:37 PST 1992 (patchlevel 10)
- * TwoMachines now works from MachineWhite or MachineBlack mode.
- * ForceMoves and Backward/Forward now work at the end of a game started by
- the TwoMachines button.
- * Sends o-o or o-o-o to gnuchess instead of O-O or O-O-O.
- * Bug fix:  SwitchSides button is now disabled when machine is on move.
- * Added -searchLevel option and corrected handling of -searchTime to reflect
- the way gnuchess really handles command line options instead of what the
- documentation used to say.  Allowed optional ":seconds" on times.
- Tue Mar 17 21:00:35 PST 1992 (patchlevel 9)
- * Removed non-working code that tried to recover when a remote chess program
- could not be started; now exits with a message instead.
- * Now waits for chess program to print its first message (normally "Chess")
- before sending it any commands.
- * Matches between two machines can now start from a black-to-play position or
- black-to-play opening.
- * Bug fix: The program would sometimes lose track of the board position after
- the end of the game, drawing a board full of white pawns next time it got an X
- redraw request.  Now fixed.
- * Cleaned up handling of illegal moves in game files.  Now we just stop reading
- and go into ForceMoves mode.
- * Saved games against gnuchess indicate who won (restored and debugged 1.2
- feature). 
- * Setting -searchTime turns off -clockMode.
- * My trick for setting up a black-to-play position broke in the transition from
- gnuchess 3.1+ to 4.0.  Installed a different trick that works with both.
- * Bug fix: Was clobbering memory by mallocing one byte too few for the file
- name in SetupPositionFromFileProc.  This usually resulted in a crash on the
- second attempt to load a position from a file.
- Mon Mar 16 16:49:00 PST 1992 (patchlevel 8)
- * Game and position files are saved in CHESSDIR as well as loaded from there.
- We actually chdir there, so gnuchess listing files also wind up there.
- * Underpromotion moves from gnuchess really work now.
- Sat Mar 14 14:55:24 PST 1992 (patchlevel 7)
- * Cleaned up lots of bugs and kruft in parser.l.  It's a wonder the old version
- worked at all.  Improved rejection of random text interspersed with the moves.
- * Relabeled buttons to reduce confusion (Play From File --> Load Game;
- Setup From File --> Load Position).
- * Bug fix:  Doesn't exit at the end of a game that was started by pressing
- the Two Machines button.
- * Bug fix:  Doesn't get confused if you hit Machine Black (White) while
- the machine is already playing black (white) and is on move.
- * Prints "White to play" or "Black to play" after loading a position file.
- * Bug fix:  No longer hangs if no start-of-game is found in a game file.
- * More permissive about game file format.  The first line is not assumed
- to be a header comment unless it starts with "#".  We don't insist on
- seeing a "1." before the first move.
- * Added pop-up dialog to allow underpromotion.  Moving a pawn to the last rank
- pops up a dialog to let you select what piece to promote to.  Also added code
- to handle underpromotion moves from gnuchess or from a game file correctly.
- * Added code to send SIGINT to gnuchess before trying to move, if gnuchess
- might be busy thinking on our time.  The code is ifdef'ed out because it's
- not necessary; only beta-test versions of gnuchess 4.0 at patchlevel 19 or
- below require it.
- Mon Feb 24 20:10:22 PST 1992
- * Merged fixes received from Stuart Cracraft and Mike McGann, to iconic mode
- and to ShutdownChessPrograms.  (They both sent the same fixes.)  I did not
- install the change that removed "easy" from the initialization string, so
- xboard will still try to run gnuchessx in "hard" mode (thinking on opponent's
- time) by sending this command.
- Version 1.3 -- Thu Dec 19 18:19:00 PST 1991  mann@src.dec.com (Tim Mann)
- * I've fixed a slew of bugs in this version of xboard:
- * You can now back up from the end of a game, even if gnuchess was playing
- against you.  Since gnuchess exits upon mate or draw (when it's not in force
- mode), this feature works by starting up a new copy of gnuchess and feeding it
- the saved starting position and moves.  Drawback: the new gnuchess starts with
- clocks at the beginning of a fresh time control.
- * Note: the "force" command to gnuchess is a toggle.  I fixed a couple of
- places in xboard where "force" was being issued when gnuchess was already in
- force mode, which resulted in chaos.  I don't know if they were in 1.2 or if I
- added them myself in the course of putting in new features.
- * ForceMoves button is now legal in PlayFromFile mode.  It closes the game file
- and lets you force moves (or go Backward) from whatever position you've
- reached.
- * The parser now recognizes "white resigns" and "black resigns" (in any
- combination of upper and lower case, with or without the closing "s").  These
- used to be misinterpreted as meaning "white wins" or "black wins" respectively!
- Added "1 - 0" and "0 - 1" as equivalents for "1-0" and "0-1".
- * I removed the parser feature of considering "!" as a comment delimiter.
- "!" is so common as an annotation in game scores that this feature seems like a
- very bad idea.
- * Added a wait() after each successful call to kill() to avoid leaving zombie
- processes around.
- * Removed the feature of putting an indication of how the game ended into the
- internal move list when playing from a file.  The only benefit of this was that
- it would get written back out if you saved the game at that point.  This
- feature doesn't seem too useful, since you are unlikely to save a game you've
- read in without making any changes, and it caused a lot of problems in the code
- and user interface.  The end condition is still displayed as a message when
- it's first read in from the file.  End conditions when playing against gnuchess
- are still saved, too.
- * programName is now the last file name component of argv[0], not all of it.
- * xboard.c got three compiler warnings due to arguments that didn't match the
- prototypes on X toolkit functions.  I got rid of them by adding some casts, and
- adding extra unused arguments to the ReceiveFromProgram function.
- * As I received it, the distribution had an extra period glued on the front
- of every line that started with a period.  This broke the manpage in an
- obvious way.  It also broke parser.l in a nonobvious way that stopped
- PlayFromFile from working.
- * Fixed one or two bugs where the clock was started when it shouldn't have
- been.  I think one example was if you tried an illegal move in ForceMoves mode.
- * Now starts the machine's clock if you hit MachineWhite when white is on move
- or MachineBlack when black is on move.
- * Now updates the to-move indicator (highlight on clock display) when you use
- Forward/Backward or ForceMoves.
- * gnuchess 3.1+ has a bug that makes it try to think on its opponent's time
- even when in force mode; this causes problems with xboard's SetupFromFile
- command because gnuchess's saved hint move is garbage after the new position is
- loaded, so gnuchess prints out an error message when it tries to think about
- what it would do if the user made this move.  Here is a patch for gnuchess
- 3.1+:
- *** nondsp.c~   Mon Dec  2 12:37:18 1991
- *-- nondsp.c    Thu Dec 19 15:36:06 1991
- ***************
- *** 1223,1229 ****
-     ok = flag.quit = false;
-     player = opponent;
-     ft = 0;
- !   if (hint > 0 && !flag.easy && Book == NULL)
-       {
-         fflush (stdout);
-         time0 = time ((long *) 0);
- *-- 1223,1229 ----
-     ok = flag.quit = false;
-     player = opponent;
-     ft = 0;
- !   if (hint > 0 && !flag.easy && Book == NULL && !flag.force)
-       {
-         fflush (stdout);
-         time0 = time ((long *) 0);
- * SavePosition/SetupFromFile now handle black-to-play positions.  If it's
- black's move in a saved position, the line "black to play" is printed
- immediately after the board display.  Upon loading a position, xboard
- looks for "black" at the beginning of this line to determine whether it's
- black's move.
- * SetupFromFile now leaves you (effectively) in ForceMoves mode.  This
- eliminates some cases where the program would get into an inconsistent state,
- and hopefully is more intuitive for the user, too.
- * PlayFromFile now leaves xboard in ForceMoves mode after playing through all
- the moves in the file.  You can use Backward/Forward, make moves, get gnuchess
- to join the game with MachineWhite or MachineBlack, etc.  The game file can end
- with either white or black to play.
- * Backward/Forward now seem to work in all cases.  Previously using these
- buttons during a game against the machine would get xboard out of sync with
- gnuchess's idea of what was going on, resulting in chaos.  Now using these
- buttons puts xboard in ForceMoves mode; you can bring gnuchess back into the
- game using the MachineWhite or MachineBlack buttons.
- Thu Jun 27 15:06:25 PDT 1991
-   * Remove comment popups during a reset.
-   * Bug in my forward move fix.  Didn't work for playgamefile mode.
- Thu Jun 20 15:04:06 PDT 1991
-   * Can't do a backward move when it isn't your turn because gnuchess
-     gets confused.  Similar bug for forward move.  Do a bunch of moves,
-     back up move and go forward.  These get filtered out now.
-   * Put easy back into the initString.  This DISABLES easy mode which by
-     default is ON.
-   * New-line wasn't always being added to forward move strings sent to gnuchess.
-   * Parsed comments as [ ..............text follows ] into d7d5
-   * Long game file comments cause core dumps on HP systems.
-   * Multiple uses of the get positition file button got confused
-     on the second click.
-   Minor fixes to the 1.2 release
- Version 1.2 -- Tue Jun 11 17:14:12 PDT 1991
-   * For version 1.2, Jeff Kenton, Richard LLoyd, David Jensen, Martin D.,
-     Bill Schmidt, Scott Hemphill, Paul Vaughan and Bill Shauck all found
-     a lot of bugs that we put into xboard just to see if they were paying
-     attention.  They were.
-   * Changed the protocol that xboard uses to work with the new version of
-     gnuchessr.
-   * There was an off by one error with the clock resetting code.  Also,
-     the clock display highliting was wrong.  Thanks to Bill Shauck for
-     pointing these out.
-   * enumerations are not really integers on some C compilers.  I added casting.
-     The new version of gnuchess expects the "go" command for two machine
-     and machine plays white cases.  The whiteString resource is for
-     compatibility with previous gnuchess versions which get confused by go.
-     Thanks to Martin D. for catching these.
-   * Fixed a bug where the checkmate message wasn't being parsed and xboard
-     kept playing.  Also, the message was added to game file if saved.
-     Thanks to Scott Hemhill for pointing this out.
-   * Fixed a bug where saving a long game, resetting and saving a short game
-     resulted in appending the end of the long game to the short one.
-     If a game is just being played out and there is no reason for gnuchessr
-     to be used, ignore pipe signals.  This allows people to use xboard
-     as a chess board without need for gnuchess.  Also, trivially bad moves
-     such as e2e2 are not passed on to gnuchessr but instead ignored out of
-     hand.  This allows people using xboard as a chessboard with gnuchessr
-     to pick a piece up, think and put it back down without making a move.
-     Thanks to Jeff Kenton for pointing these out.
-   * Added the CHESSDIR environment variable.  Game and position files are
-     found in this directory.  If this variable is not declared, then the
-     current directory is used.  File names starting with / are treated
-     specially.
-   * The bitmap file names were changed so that none exceeded 14 characters.
-     This is necessary for R5.
-         fcntl(from_prog[0], F_SETFL, O_NDELAY);
-     The xboard fix was to set non-blocking i/o on the read pipe for gnuchessr
-         printz ("Illegal move (no matching move generated)");
-   * fixed a problem with the new version of gnuchessr where xboard wasn't
-     getting gnuchessr error messages for illegal moves.  The problem seems
-     to be fixed *without* any gnuchess changes but this is likely to be
-     highly system dependant.  There should be a new line on line 246 of nondsp.c
-   * -iconic doesn't work at all now.  The Iconify() does work.  This was
-     a tradeoff and it is really an Xt bug.
-   * Fixed a compiler warning for gcc and an error for the IBM RT compilers.
-     This is the VOID_PROC macro in xboard.h.  Thanks to David Jensen for this.
-   * If the DisplayWidth or DisplayHeight is less than 800, use small size mode.
-     Also the size of the name widget was reduced from 500 pixels to 400 pixels
-     because in small size mode there was a gap on the right.
-     Changed the default font from fixed to helvetica_oblique14 to:
-         **-helvetica-bold-r-normal--14-*-*-*-*-*-*-*
-     helvetica_oblique14 is a font alias not on all R4 systems.
-     Curiously enough, the 17 point is not available on 75dpi systems
-     and the 18 point font is not available on 100dpi systems.
-     Thanks to Richard K. Lloyd for pointing these out.
-   * Minor hacks to work with R5 alpha.  Had to add an event handler to the
-     boardWidget to get translations to work.  This may go away with the real R5.
-     Added <Message>WM_PROTOCOLS: QuitProc() for R5 ICCCM compatibility.
-   * If the first character of the file is not `1' then the first line
-     of a game or position file is displayed as the name in a label widget.
-   * Added a PopUp dialog for getting file names.
-   * Modified the code to use the R4 routines rather than R3 compatibility.
-   * Changed the forwards/backwards/readgamefile code to allow a play to step
-     back and forth in a game.  If he steps all the way to the beginning
-     he has to restart the game.  If he gets into a mated position, same problem.
-   * Moved the man page from xboard.1 to xboard.man.  This makes imake man page
-     installs work correctly.  Thanks to Richard K. Lloyd for pointing this out.
-   * Corrected the queening code.  XBoard was sending the wrong syntax.
-     It was sending for example h8(Q) when it should have been sending h8q.
-     Thanks to Paul Vaughan and Mike McGann for pointing this out.
-   * Added a lex parser for algebraic games.  It should be easy to use the parser
-     for other interfaces such as the Microsoft Windows version.
-     It parses comments of the form [anything] and ! to the end of a line.
- Version 1.1 -- Mon Jan  7 14:46:03 PST 1991
-   * Roger Dubar, Konstantinos Konstantinides, Wolfgang S. Rupprecht,
-     Paul Scowen, Mvh Smidt and Kayvan Sylvan all helped immensely during
-     beta-testing.
-   * older non-ANSI versions of Sun compilers complain vociferously.
-   * the remoteShell resource was added for HP-UX systems
-     and other systems where the remoteShell isn't rsh.
-   * -iconic doesn't work properly.  If XBoard is opened iconic then
-     iconifying it later with a keystroke doesn't work.  I think
-     this is an Xt bug.
-   * For systems with smaller screens, XBoard can use smaller pieces,
-     and a smaller board.  -bigSizeMode False uses a smaller set of pieces.
-     These are scaled versions of the large pieces.  They look ok but could
-     be improved.
-   * getlogin() does not work in all cases.
-     It was replaced by getpwuid(getuid())->pw_name).
-   * Warning messages get displayed in the message box.
-   * Any button restarts a paused game.
-   * Kayvan Sylvan contributed a patch for ESIX.
-     It seems that select() on pipes is broken on his system.  We declined
-     to incorporate his patch though, because it was a work-around for
-     something that was broken on one system, and selfishly, that system
-     was not my own.  Nevertheless, it is likely that other System V users
-     on PC's may need to use this patch and it is is included as the file
-     ESIX.patch.  To use it, type
-         patch xboard.c ESIX.patch
-   * Fixed a bug where hint didn't work.  The local version of gnuchessr
-     had been hacked.  The fix was to clone stderr and stdout for gnuchessr.
-   * Fixed a bug where a player could play after a game had been finished.
-   * The bitmaps have been pushed into the bitmaps directory.
-   * Substantially rewrote and simplified the Two Machine code.
-   * Added StrStr() because many systems don't have this ANSI function.
-   * Added keyboard equivalents.  Added an iconify keystroke, C or c.
-   * Works with gcc now.  gcc complained about casting float constants
-     as XtPointers.
-   * Detect if the visual doesn't support color.  If so, run in monoMode.
-     An alternative would be to detect grayscale visual and use a collection
-     of gray user interface colors.
-         XBoard.clockMode:    False
-   * For people who don't like or use chess clocks a clockMode switch
-     has been added.  It is on by default.  It can be turned off in the
-     .Xdefaults file with
-   * Added a declaration, xtVersion, which will quickly break on R3 Intrinsics.
-   * Hal Peterson contributed a new Imakefile.
-   * Rewrote DisplayClocks().
-   * Rewrote TwoMachinesPlay mode.
-   * Konstantinos Konstantinides added the -searchTime option.
-   * Substantially rewrote and simplified the clock code.  If a game was paused
-     and then resumed, the clocks were out of sync.
-   * Fixed a bug in HandleUserMove() where the user could make a move while the
-     machine was thinking.  The fix detects and ignores these moves.  onMove
-     was not being used and was removed.
--
++ChangeLog for XBoard/WinBoard\r
++\r
++* 04/15/2009: Updated the winboard.rtf of 4.3.15 with the 4.3.16\r
++additions, and a more fitting description of ICS-analysis mode.\r
++\r
++* 04/15/2009: Added internationalization to xengineoutput.c and\r
++xoptions.c. Fixed missing */ in xboard.c.\r
++\r
++* 04/13/2009: transferred all changes since 4.2.7 to 4.3.pre16, to make \r
++4.4.pre1, which should lead to a full merger of the 4.2 and 4.3 line\r
++\r
++* 02/28/2009: fixed an error in the parser. This should fix bug #22812. \r
++ \r
++* 06/12/2005: bugfix some more possible buffer overflows. \r
++ \r
++* 06/27/2004: added simple icsEngineAnalyze for xboard\r
++\r
++* 06/26/2004: added icsEngineAnalyze for winboard: Analyze observe games \r
++with a chessprogram on a Internet Chess Server (ICS) \r
++\r
++* 02/12/2004: Bugfix ICS interaction console crashed while chess \r
++engine starting and user type in some stuff. We wait now to finish \r
++the engine boot.\r
++\r
++* 02/11/2004: Winboard: Added color lines for the ics interaction \r
++console if zippy used \r
++ \r
++* 02/09/2004: Added mousewheel support for winboard. Play moves \r
++backward and forward with the mousewheel. \r
++ \r
++xboard/WinBoard 4.2.7 -- Fri Nov 28 13:36:00 PST 2003 -- Tim Mann\r
++\r
++* 11/26/2003: In WinBoard, setting the -debug flag now logs ICS output\r
++to WinBoard.debug too.  (This isn't needed in xboard because ICS\r
++output already goes to stdout, so it's easy to capture along with the\r
++debug output on stderr.)  This was issue #280 in the ToDo file.\r
++\r
++* 11/23/2003: Cleaned up some minor problems in cygwin.mak.  Thanks to\r
++Hans Werner Strube for the problem report.\r
++\r
++* 11/23/2003: Updated the default list of chess servers in\r
++winboard/defaults.h.  Deleted two that appear to be dead and added a\r
++new one that is active.\r
++\r
++* 11/19/2003: Swapped icon_white.bm and icon_black.bm in XBoard.\r
++Hopefully this will get them the right way around by default on more X\r
++window managers.  I wish I understood this better.\r
++\r
++* 11/18/2003: Implemented a simple 32-bit random number generator for\r
++WinBoard, replacing the Windows rand(), which ranges only up to\r
++0x7fff.  Formerly on Windows, only zippy.lines sayings that started in\r
++the first 32767 bytes of the file could ever be used.  This was issue\r
++#505 from the ToDo file.\r
++\r
++* 11/16/2003: The xboard man page and info files are now built from a\r
++common set of texinfo source files, and the xboard man page now covers\r
++cmail as well.  Formerly, ever since the texinfo file was first\r
++contributed to the project, it was separate from the man page and the\r
++two files had to be updated in parallel, making for a maintenance\r
++nightmare.  To make combining the files possible, I took the Perl\r
++script "texi2man" from the GNU Units project and added support for a\r
++larger subset of the texinfo markup language.  I then carefully\r
++compared the old man page and old texinfo file to make sure the latest\r
++and clearest words survived into the new combined texinfo file.  It\r
++would be great to merge in WinBoard's help file too, but that's a\r
++larger project.  It would have to be heavily conditionalized to\r
++deal with differences in features between XBoard and WinBoard.\r
++\r
++* 11/15/2003: Cleaned up and applied a small patch from Daniel\r
++Mehrmann, to stop overly long PVs in thinking output from causing a\r
++buffer overflow crash in backend.c.\r
++      \r
++* 11/5/2003: When a chess engine sends a "telluser" command (including\r
++the cases where "tellall" or "tellopponent" acts like telluser), the\r
++information now goes into a nonmodel popup that is automatically\r
++dismissed when the user clicks anywhere on the board.  This fix is\r
++more significant on WinBoard, where formerly you got a fully modal\r
++dialog that had to be dismissed by clicking on OK before anything else\r
++could happen.  The bug was issue #406 in the ToDo file.\r
++\r
++* 11/1/2003: Removed email addresses from this file to reduce spam\r
++load, as it gets linked to from the Web.\r
++\r
++* 11/1/2003: Updated READ_ME and winboard/READ_ME.txt.\r
++\r
++* Modified xboard and winboard makefiles to be able to build the\r
++project in the new combined directory structure.\r
++\r
++* Applied a small security fix to pxboard, from Martin Maeok.\r
++\r
++* Fixed a bug in the game list dialog.  The change in 4.2.6 to opening\r
++games in text mode (meant to avoid getting extra \r's into comments)\r
++caused a new bug in determining seek offsets when parsing a game file\r
++to form the game list.  Also, the change was incomplete; on some code\r
++paths games were still being opened in binary mode.  Thanks to Lenik\r
++Terenin for reporting the offset bug.  I've now gone back to always\r
++using binary mode when reading game files, and I've fixed the comment\r
++bug by adding code to remove \r's from parsed comments explicitly.  I\r
++still use text mode for writing game files so that games written by\r
++WinBoard will have Windows-style line endings.\r
++\r
++* Fix for minor bug in WinBoard installer.  If you chose a non-default\r
++destination directory, the default directory was still used for a\r
++couple of unimportant things, namely setting the App Paths registry\r
++keys (unused by WinBoard) and trying to copy the existing WinBoard.ini\r
++file to WinBoard.old.  I inherited this bug from the InstallShield 5\r
++sample template.  Thanks to "l.d." for noticing the incorrect keys.\r
++\r
++* Patch from Chris Priest: when two engines are being run through rsh,\r
++avoid reusing the same stderr port for both.  I'm not sure why this\r
++should be needed, but it's harmless, at least.\r
++\r
++* Bugfix: The kludge to deal with old engines that give an error\r
++message because they don't know the "st" command was too sloppy; it\r
++could hit on an "st" substring anywhere in an error message.  GNU\r
++Chess 4 is the only engine I know of where the kludge was needed, so I\r
++changed the kludge to match a longer, more GNU-specific string.\r
++\r
++* Changed the WinBoard self-extracting installer to choose a unique\r
++temporary subdirectory name within the Windows temp directory instead\r
++of always putting wb-setup directly in temp.  Besides being better\r
++practice, this avoids the need to deltree wb-setup first, which\r
++occasionally alarms someone who thinks that deltree is only used by\r
++trojans to delete all your files.  (Yes, I'm serious.)\r
++\r
++* Fixed a bug where FICS-style "wild/0" strings were not parsed as the\r
++proper wild type.  The "/" was not being skipped.\r
++\r
++* Fixed a WinBoard bug where temporary files created by game\r
++copy/paste were being created in the root directory of the current\r
++drive instead of the TMP directory and were not always deleted on exit.\r
++\r
++* Fixed a small bug in winboard.c's ErrorDialog() function.  Thanks to\r
++"Ron" (no last name given).  The bug might have caused a problem when\r
++pressing OK or Cancel in an error dialog when more than one error\r
++dialog was being displayed, but I'm not really sure.\r
++\r
++* Removed a hack that worked around a bug in very old versions of\r
++Crafty, where it would sometimes reply "illegal move" to a "."\r
++command.  The hack kept us from recognizing real illegal move messages\r
++in analyze mode from engines that don't respond to the "." command.\r
++Thanks to Fabien Letouzey for the report.\r
++\r
++* Fixed a bug in the xboard version of GetDelayedEvent.  It would\r
++return the most recently scheduled event even if it had already fired.\r
++This caused at least one visible error: in -ics -xreuse mode, starting\r
++the engine again and seeing another "feature done=1" would re-run the\r
++initialization code in InitBackEnd3, including the code that opens the\r
++connection to ICS.  The WinBoard version didn't have this bug.  Thanks\r
++to Bob Hyatt for the bug report.\r
++\r
++* The promotion popup for ICC wild 26 (giveaway) now includes King.\r
++Thanks to Fredrik Josefsson for the bug report.\r
++\r
++* The first game in a file (or being pasted from the clipboard) can\r
++now start with a bare move -- no PGN tags, no move number "1", etc.\r
++Suggested by Shane Harrelson.  One could imagine taking this farther\r
++and accepting something like "e4 e5 1/2-1/2 d4 d5" as two games, but\r
++I haven't done that.\r
++\r
++* Bug fix: xboard didn't really accept a paste of multiple games,\r
++contrary to what I wrote when adding the feature to WinBoard in\r
++4.2.4.  Now it works in both.\r
++\r
++* Fixed generic start/end of game messages to work on chess.net, where\r
++they put ratings in parens after the player names.\r
++\r
++* Updated config.sub and config.guess to newer versions from\r
++automake-1.4p5-2.  This makes configure work with MacOS X + X11.\r
++\r
++* Bugfix: when examining a game fragment on FICS where black plays\r
++first, don't show two "(0:00.000)" times on the initial "none" move.\r
++\r
++* If TestLegality is on and one of the engines makes an illegal move\r
++in TwoMachines mode, it forfeits immediately.  Formerly the game would\r
++get stuck at that point and the engine that made the illegal move\r
++would eventually lose on time.\r
++\r
++xboard/WinBoard 4.2.6 -- Fri Feb  1 22:26:31 PST 2002\r
++Tim Mann\r
++\r
++Another small bugfix release.\r
++\r
++* Put in a small change from Alexander Mai to allow xboard to build in\r
++an OS/2 EMX environment.\r
++\r
++* Fix WinBoard-only bug where editing a PGN file with comments would\r
++insert more \r characters before the \n after every Load/Save cycle.\r
++For some unknown reason we were reading the files in "rb" mode but\r
++writing them in "a" mode, so we kept the \r characters on reading and\r
++added an extra one on writing.  Fix: change the "rb" to "r".  Thanks\r
++to Joel (last name not given) for the bug report.\r
++\r
++* Put the arguments to rsh/remsh in the right order for better\r
++portability.  Thanks to Michael Kalisz.\r
++\r
++* FreezeUI is now implemented in WinBoard; it was previously only\r
++implemented in xboard.  This function prevents the user from entering\r
++moves or other commands while we are waiting for an engine to\r
++initialize itself.  Implementing it fixes a bug where the user could\r
++start a game (etc.) during feature negotiation.  One of the symptoms\r
++of this bug was that we could send "new" one or move moves *after* the\r
++first game started!\r
++\r
++* Fixed some handle leaks (WinBoard only), including a nasty one that\r
++leaked one handle per command sent to ICS.  Thanks to several folks\r
++who helped characterize the bug and tried to look for leaks.\r
++\r
++* We now install and look for the info file in ${prefix}/share/info\r
++instead of ${prefix}/info.  The latter is still the default in\r
++autoconf, but the former is currently used in Red Hat Linux and\r
++probably elsewhere.\r
++\r
++xboard/WinBoard 4.2.5 -- Sat Dec 15 11:42:51 PST 2001\r
++Tim Mann\r
++\r
++* Changed the bundled GNU Chess 5.02 in the WinBoard package to\r
++include a much smaller book and to use much less hash table space by\r
++default (8 MB transposition table, 0.5 MB pawn evaluation table).  The\r
++large book included with 4.2.4 made the WinBoard download too big for\r
++some people, and the default hash tables were larger than the\r
++available physical memory on some people's computers. I built the\r
++small book by running Crafty's "small.zip" book line collection\r
++through a Perl script that makes it look enough like real PGN games\r
++that the GNU Chess book builder will accept it.  The script and some\r
++minor patches to GNU Chess 5 are available in the WinBoard source\r
++distribution and at http://www.tim-mann.org/gnuchess.html.\r
++\r
++* Fixed a bug in the code that deals with engines that complain that\r
++"time" and "otim" are illegal moves.  This was a new bug in 4.2.4.\r
++\r
++* Revamped the implementation of ToStart in analysis mode.  Formerly\r
++there was some ill-conceived code that would try to get back to the\r
++start of the game by doing a "new" command (and all the followup\r
++commands that requires) while remaining in analysis mode.  This is\r
++problematic for engine authors to support, though it works with\r
++Crafty.  This code was trying to solve the problem of ToStart being\r
++slow because the engine would try to start an analysis after every\r
++"undo" command all the way back to the start.  But ToEnd already had a\r
++much better solution to this problem, and now ToStart does the same\r
++thing: we exit from analysis mode and enter force mode instead,\r
++make/unmake moves to get to the end/start of the game, and then\r
++reenter analysis mode.\r
++\r
++* Formerly, Zippy could try to start playing a game before the engine\r
++was initialized; that is, during the initial timeout for protover 1\r
++engines, or before "feature done=1" for protover 2 engines.  We now\r
++wait until the engine is initialized before connecting to ICS, which\r
++fixes this in the common case.  If you turn off engine reuse for\r
++multiple games (that is, if you give the -xreuse option), there could\r
++still be problems; see item 503 in the ToDo file.  Thanks to Dieter\r
++Buerssner for the bug report.\r
++\r
++* Bugfix: All WinBoard versions since the merge with WinBoard Plus\r
++(but not xboard) have had a bug in changing the PeriodicUpdates,\r
++PonderNextMove, and ShowThinking options from the menu.  The bug\r
++mostly just caused changing these options during a game to not take\r
++effect until after the next reset.  For TwoMachines games, though,\r
++changing PonderNextMove just before the game would take effect\r
++immediately for the second engine but not until the next game for the\r
++first engine.  Thanks to Koundinya Veluri for the bug report.\r
++\r
++* Bugfix: In 4.2.4, we sometimes got confused when trying to leave and\r
++reenter analyze mode.  One symptom was that Analyze File did not work.\r
++Thanks to Igor Syry for the bug report.\r
++\r
++xboard/WinBoard 4.2.4 -- Sun Dec  9 14:56:30 PST 2001\r
++Tim Mann\r
++      \r
++* WinBoard now includes GNU Chess 5.02 in place of GNU Chess 5.00.\r
++\r
++* WinBoard's PasteGameFromClipboard will now handle a paste with\r
++multiple games in it, popping up the game list dialog.  xboard\r
++already did this.  Suggested by Robert Gerstman.\r
++\r
++* We now use the "clearboard" command on ICC where appropriate.\r
++\r
++* Bugfix: don't generate a bogus "variant normal" command to an engine\r
++for the loadable ICC wild types that we internally flag as\r
++VariantLoadable.  Also clarified the message that Zippy sends when\r
++declining such wild games -- it can't deal with the possibility of\r
++loading an arbitrary position into the game.  Thanks to Dieter\r
++Buerssner for reporting the problem.  It would be nice to be able to\r
++actually play these wild types some day; presumably there would have\r
++to be an option to either send "loadgame" with a specified position,\r
++or to deal with an opponent sending it.\r
++\r
++* If we get a holdings message from ICS when we thought we were\r
++playing normal chess, we now try asking for a move list so that we can\r
++find out from the header what's really happening.  Formerly we guessed\r
++bughouse in this case.  Response to a comment from Gian-Carlo\r
++Pascutto.\r
++\r
++* Fixed two longstanding bugs in the clock code.  These affected only\r
++play between a user and a local engine, or between two local engines,\r
++not ICS play.  (1) The last fractional second used by a player before\r
++moving and virtually pushing his clock was being charged to his\r
++opponent instead of to him.  (2) The time and otim commands were being\r
++sent to an engine before the (buggy) fractional second update was\r
++done.  The second bug was pretty harmless in itself, but the first one\r
++was serious.  Many thanks to Peter Rosendahl for carefully diagnosing\r
++and reporting these bugs!\r
++\r
++* Changed WinBoard timestamp key.  Nothing is changed other than the\r
++key and a recompilation.  ICC may phase out the old key soon; if they\r
++do, you'll need to use the timestamp.exe from WinBoard 4.2.4 or later\r
++to connect to chessclub.com.\r
++\r
++* Fixed an xboard-only bug where most dialogs would not take keyboard\r
++input unless the mouse was actually over the dialog, even if the\r
++dialog window had focus.  Thanks to Jason Varsoke for the bug report.\r
++\r
++* Bugfix; Remember to send time and otim commands to engine before\r
++sending playother.  Thanks to Bob Hyatt for the bug report.  Also\r
++fixed a bug where time and otim were sometimes sent even with feature\r
++time=0.\r
++\r
++* Added small patches from Wilkin Ng that are meant to fix a crash in\r
++CopyGameToClipboard and a "can't unlock clipboard memory" error in\r
++PasteTextFromClipboard, under Windows 2000.\r
++\r
++* Changed cygwin.mak to not use -mno-cygwin.  In other words, it now\r
++uses cygwin1.dll instead of the mingw libraries.  This works around\r
++bugs in fileno() and stat() that I encountered in mingw.  (fileno\r
++seems to always return 0.  stat fails because the library routine uses\r
++a different definition of struct stat than the header files provide.)\r
++Thanks to Robert Gerstman for reporting the symptoms these bugs caused\r
++when WinBoard was compiled with Cygwin.\r
++\r
++* Added -showButtonBar option.  This lets you delete the << < P > >>\r
++buttons and thus widen the message widget a bit.\r
++\r
++* Added code to address a very obscure bug.  If an engine dies and\r
++needs to be restarted while in one of the analyze modes, it was not\r
++getting put back into analyze mode.  This bug should not really ever\r
++have gotten tickled unless reuse was turned off and the engine sends\r
++game end commands (such as 1-0) when a game ends by rule while in\r
++analyze mode.  The next version of the protocol spec will say that\r
++engines should not do that, but version 2 and earlier didn't address\r
++the issue.\r
++\r
++* We now use the FICS "iset ms 1" feature to get times in ms instead\r
++of seconds.  Thanks to DAV for email telling me about this feature.\r
++\r
++* Changed clock display to show tenths of seconds for 9.9 seconds and\r
++less, instead of 0.9 seconds and less as before.\r
++\r
++* It has been discovered that Zippy can play simuls on ICC (but not on\r
++FICS).  If you arrange for Zippy to send the ICC command "simulize" in\r
++the -zippyGameStart string, it will accept additional games while\r
++playing.  Zippy will use the same engine for every game, so whenever\r
++it switches opponents, the engine's state will be reset with the "new"\r
++command.  This will of course weaken its play, so don't enable simuls\r
++if you want your engine to have the highest possible rating.  Zippy\r
++was never designed to work with simuls; it just works by accident, and\r
++it hasn't been tested much.  So please report any bugs you notice, but\r
++don't expect them to be fixed rapidly.  Thanks to Paul McGuire for\r
++noticing that this works.\r
++      \r
++* Bugfix: Suppress the direct command to engine popup if there is no\r
++engine.  In WinBoard this case used to cause a crash.  Thanks to\r
++"Dargon" for the bug report.\r
++\r
++* Bugfix: formerly we did part of the engine initialization for the\r
++very first game too soon, before feature negotiation.  One result of\r
++this is that engines would never get the "ics" command for the first\r
++game.\r
++\r
++* Lengthened timeout to detect protocol version 1 chess engines to 10\r
++seconds.  This should reduce problems with protocol version 2 engines\r
++that are slow to initialize missing the timeout and not getting a\r
++chance to send their feature commands before the first game starts.\r
++\r
++* Klaus Friedel says that adding a short sleep to WinBoard after\r
++starting a new chess engine solves a problem that occurs under Windows\r
++2000, in which engines sometimes don't see the initial command(s) from\r
++WinBoard and hang.  I don't understand how that can happen, but the\r
++sleep is harmless, so I've put it in.  Others have also reported what\r
++may be the same problem, so hopefully this will fix it for them too.\r
++\r
++* Bugfix: editing the Result field in EditTags will no longer cause a\r
++later crash.  Thanks to DAV for a clear bug report that let me\r
++reproduce the problem.\r
++\r
++* ICC wild 28 is now recognized as shatranj, but it is not supported.\r
++You might be able to play it by turning off Test Legality.\r
++\r
++* Formerly we would always turn off "feature time" if the engine\r
++printed an error message with the string "time" or "otim" in it; now\r
++we do that only if the message comes before the engine makes its first\r
++move.  This change is useful because some engines spew a lot of bogus\r
++error messages about commands they don't fully parse, so something\r
++like "result 0-1 {White lost on time}" could generate such a message.\r
++Engines shouldn't do that, but if they do, mysteriously turning off\r
++"feature time" is not a good way to react.\r
++\r
++* Fixed an infrequently occurring Zippy bug: formerly, resuming from\r
++adjournment by position (that is, with GetMoveList turned off) or\r
++starting/resuming a wild game (nonstandard starting position) would\r
++try to set up the position without putting the engine into force mode\r
++first.  That was probably tolerated by most engines, but if the\r
++position was black-to-play and the engine hadn't set feature\r
++setboard=1, then the fake "a2a3" move (which we use as a kludge to get\r
++black to be on move before sending the edit command) would appear to\r
++be a real move, and the engine might reply to it!  This bug could also\r
++be seen when trying to use Zippy to play a simul -- something that\r
++Zippy was never designed to support, but which seems to mostly work\r
++anyway.  Thanks to Paul McGuire for sending a WinBoard.debug file that\r
++showed the bug occurring.  Some other cases of resuming adjournments\r
++or starting games from nonstandard positions may have been broken too;\r
++I think I've straightened out the problems.\r
++\r
++* Agreeing to a draw in the human vs. local engine case formerly did\r
++not work if the human offered first; now it does.  A human's\r
++unsolicited offer is considered valid until he makes another move.\r
++Thanks to Bruce Moreland for the bug report.\r
++\r
++* Bugfix: We used to look for just "fr" in Event tags or strings from\r
++ICSes to recognize Fischer Random games.  This caused a lot of false\r
++matches.  Now we look for "wild/fr" instead, which is what FICS uses.\r
++\r
++* Bugfix: Clicking on a move in the MoveList window only updated the\r
++displayed position; if a chess engine was active, its state was not\r
++updated.  Thanks to Alejandro Dubrovsky for the bug report.\r
++      \r
++* Bugfix: The "resign" command from engine to xboard formerly did not\r
++work in ICS (Zippy) mode.\r
++\r
++* Bugfix: Formerly we would register a garbage premove if the user\r
++clicked on a piece, then clicked on an edge or outside the board.  Now\r
++such an errant click is ignored.\r
++\r
++* Bugfix: GameEnds would send "exit" to an engine in analyze mode even\r
++if we did not actually want to leave analyze mode.\r
++\r
++* Bugfix: "feature pause" was being rejected.  We don't currently use\r
++it, but that is no reason to reject it.  Thanks to Gian-Carlo Pascutto\r
++for the bug report.\r
++\r
++* Bugfix: when "partner" needed to be sent both to ICS and the engine,\r
++Zippy was erroneously sending the ICS prefix character to the engine\r
++too.  Thanks to Gian-Carlo Pascutto for the bug report.\r
++\r
++* Zippy now declines challenges when the engine is not yet ready to\r
++play again, instead of ignoring them.  This is needed so that the\r
++server will let the opponent repeat the challenge.  It might be better\r
++to remember such challenges and accept them when the engine is ready,\r
++but that would be a bit more complicated to implement.\r
++\r
++* Bugfix: Zippy's emotes didn't work on FICS because there, "i" is a\r
++built-in alias for "it", not a real command.  So sending "$i foo" gave\r
++an error message instead of doing "it foo".  We now leave out the\r
++alias-suppressing prefix for emotes.\r
++\r
++xboard/WinBoard 4.2.3 -- Mon Feb 19 19:55:05 PST 2001\r
++Tim Mann\r
++\r
++* Bugfix: The error message "Variant X not supported by gnuchessx"\r
++formerly could pop up even in -ncp mode.\r
++\r
++* Fixed an xboard bug in premove highlighting.  If you had\r
++HighlightLastMove turned on, premoves got highlighted in\r
++highlightSquareColor (yellow) instead of premoveHighlightColor (red).\r
++\r
++* Modified premove again.  Now we are back to displaying the move\r
++locally immediately after sending it to the server, as in versions\r
++prior to 4.2.1.  This is good because it lets you register your next\r
++premove sooner.  As a better fix to the problem that the change in\r
++4.2.1 had been trying to address, we now suppress animating the\r
++opponent's move if you have a premove reply pending.  However, it's\r
++probably still a good idea for you to turn off AnimateMoves entirely\r
++if you are trying to play extremely fast games.\r
++      \r
++* Removed an erroneous patch that left zombie chess engines around\r
++when both sigterm and reuse were turned off.  (Bug was in xboard only,\r
++not winboard.)\r
++\r
++* Bugfix: loading a game with autostepping did not work for games with\r
++PGN result "*" (unfinished).  This bug was introduced in 4.1.0, caused\r
++by some outdated code that was supposed to leave you in EditGame mode\r
++after loading an unfinished game.  I fixed this, and also changed it\r
++to leave you in EditGame mode after loading *any* game, but without\r
++changing the tags to say it's an edited game.  It's not really clear\r
++whether that is the best thing is to do here -- ideally, perhaps, the\r
++tags should change to say "edited game" if you actually make any\r
++changes, but that is harder to make work.\r
++\r
++xboard/WinBoard 4.2.2 -- Tue Feb  6 20:00:00 PST 2001\r
++Tim Mann\r
++\r
++* Fixed a problem introduced in 4.2.1.  In -zippyPlay mode, 4.2.1\r
++started sending the initString immediately after the old game ended,\r
++but then when the next game started, it would still send "force" and\r
++another initString.  Another problem was that the first initString put\r
++the engine out of sync with the displayed board position, though that\r
++might not usually have been noticeable.  This is now changed to do a\r
++full Reset at the end of the previous game, and avoid doing a Reset at\r
++the start of a new game if we are still in BeginningOfGame mode.\r
++\r
++* Fixed some limitations in -zippyPlay mode.  The engine was not being\r
++fed the moves or history of games that were displayed but not being\r
++played, so it would get confused if you tried to do something like\r
++examine a game, then enter EditGame mode from somewhere in the middle\r
++of the game.\r
++\r
++* Made a small change so that cygwin can compile xboard for Windows\r
++(an X server is required to run it).  Thanks to Volker Zell.  Most\r
++people would probably prefer to run WinBoard on Windows, however; note\r
++that cygwin could already compile WinBoard.\r
++\r
++* Added some missing documentation to engine-intf.html: It is okay to\r
++send "feature done=0" even before you receive the xboard and protover\r
++commands, if this is needed to give your engine enough time to\r
++initialize.  See engine-intf.html for more discussion.\r
++\r
++* Bugfix: "feature done=0" did not work for the second engine; now it does.\r
++\r
++xboard/WinBoard 4.2.1 -- Sat Feb  3 19:52:26 PST 2001\r
++Tim Mann\r
++\r
++* Bugfix: in Zippy mode with feature san=1, the elapsed time was being\r
++sent to the engine after the SAN move; for example, "e4 (0:01)" was\r
++sent instead of just "e4".\r
++\r
++* It seems that scroll wheel mice with incompletely installed software\r
++(under Windows 95, at least) can send repeated middle button up events\r
++when the wheel is turned.  Moved QuickPaste from middle button up to\r
++middle button down to avoid problems with this.\r
++\r
++* A premove is now sent *before* the opponent's move that it replies\r
++to is animated.  The premove itself is no longer displayed (or\r
++animated) when sent; instead, it is displayed when the chess server\r
++echoes it back as a board update.\r
++\r
++* Bug fix: in -xreuse mode, xboard was only sending command line\r
++arguments to the engine the first time it was started.  (WinBoard\r
++didn't have this bug.)\r
++\r
++* In -zippyPlay mode, we now initialize the chess engine for a new\r
++game immediately after the old game ends.  (In -xreuse mode, this\r
++means starting a new engine process; in the default -reuse mode, it\r
++just means sending "new".)  If the engine supports ping, we don't\r
++accept challenges until the "new" has finished.  This should help\r
++avoid losing time (re)initializing the engine after the game starts.\r
++\r
++* We now handle the new FICS field in style 12 that says whether the\r
++clocks are ticking.\r
++\r
++* whiteFlag and blackFlag are now reset whenever an ICS board image\r
++arrives, giving autoflag a fresh chance to work.\r
++\r
++* Suppressed "geometry error" debug messages unless -debug flag is given.\r
++\r
++* Bugfix: avoid core dump on Solaris with -debug flag, caused by\r
++passing NULL to a %s format in GameEnds.\r
++\r
++* Added -firstProtocolVersion and -secondProtocolVersion.  This will\r
++allow use of extremely broken engines that hang or die when given the\r
++"protover 2" command.  It should be rarely if ever needed.\r
++\r
++* Zippy now strips highlights from player names in the Creating\r
++message; previously the ratings would not be extracted from this\r
++message properly if you had set the highlight variable.\r
++\r
++* Bug fix: Zippy with -zp but not -zt used to be fooled by false\r
++partner tells inside channel tells; e.g.: \r
++Garf(24): Garf (your partner) tells you: sit\r
++\r
++* Bug fix: when an engine reported its name with the new "feature\r
++myname=" command, we had been putting just that name into the window\r
++title even when in TwoMachines mode.\r
++\r
++* By default, WinBoard no longer uses the new feature introduced in\r
++4.2.0beta of keeping the ICS menu, ICS server list, and lists of chess\r
++engine command lines in separate files; instead, the lists are back in\r
++the winboard.ini file.  This gets rid of some problems where the\r
++separate files could not be opened because the working directory was\r
++not set to WinBoard's installation directory.\r
++\r
++* WinBoard command lines and ini files now have another optional\r
++syntax for quoting an option value.  All characters within { } curly\r
++braces are interpreted literally except for '}' itself.  SaveSettings\r
++now uses this syntax for string values that contain a backslash or\r
++newline and do not contain a '}'.  This should address the problem\r
++that the separate .ini files had been meant to fix; engine command\r
++line lists can now be written without \-escapes.\r
++      \r
++* Fixed three bugs in relaying moves between engines in TwoMachines\r
++mode: an engine would be sent SAN if the *other* engine had set\r
++feature san=1, a relayed SAN move did not end with a newline, and\r
++feature usermove was not implemented for relayed moves.\r
++\r
++* Fixed several bugs in exiting: File/Exit would sometimes hang;\r
++timestamp/timeseal would not get killed off; an engine crash would\r
++cause error messages to be printed recursively until stack overflow.\r
++\r
++* Fixed a bug in the code to detect which ICS is in use and adapt to\r
++it; the chess.net case was broken.\r
++\r
++* Removed the leading alias-suppression character when sending a move\r
++to ICS, because it seemed to break accuclock on chess.net.\r
++\r
++* Fixed a bug where a FICS prompt like "10:01_fics%" would be matched\r
++as finger note number 10, causing a problem detecting when the user is\r
++logged in.\r
++\r
++* Added tellicsnoalias command to protocol.\r
++\r
++* Changed st command in protocol back to old behavior.\r
++\r
++* Added done=0 feature to protocol, to lengthen initial timeout.\r
++\r
++* Added missing -colorSeek command line option to xboard.  (Was\r
++present in WinBoard.)\r
++\r
++* Bug fix: setting feature reuse=0 was not working.\r
++\r
++xboard/WinBoard 4.2.0beta -- Sat Dec 16 16:34:56 PST 2000\r
++Tim Mann\r
++\r
++* Setting -searchTime no longer turns off -clockMode.  Note that when\r
++-searchTime is set, some engines may search for the lesser of\r
++searchTime and the amount of time their normal clock management would\r
++dictate, while others will disable their normal clock management and\r
++always search for exactly searchTime.\r
++\r
++* Fixed WinBoard bug where on Windows 2000 (and maybe Windows 98) the\r
++ICS Interaction window would scroll back to the top whenever it filled\r
++to capacity and WinBoard trimmed some text off the top.\r
++\r
++* Changed xboard dragging so that the center of the dragged piece is\r
++forced to be over the mouse cursor.  (WinBoard dragging already worked\r
++that way.)  This should avoid confusing cases when you start a drag\r
++with the mouse near the edge of a square -- formerly most or all of\r
++the piece could be over one square but the mouse cursor over another.\r
++Suggested by DAV.\r
++\r
++* Added move list window for xboard.  Code contributed by Manuel\r
++Hoelss and re-hacked a bit by me.  Performance of this window is poor,\r
++because the implementation regenerates the entire window contents\r
++whenever anything changes.  It's hard to avoid this when using the\r
++Athena List widget, though we could be a little smarter and notice\r
++when the current move number has changed but the move list has not.\r
++There are also several drawing problems caused by bugs in the Athena\r
++Form and List widgets.  The window should not really allow a\r
++horizontal scroll bar, but the bugs are much worse if I turn it off.\r
++In both Xaw and Xaw3d, the List widget tries to resize itself when\r
++XawListChange is called, even if you tell it not to; and what's worse,\r
++if the widget cannot resize itself to be large enough to avoid\r
++clipping any of the list item, it does not change the list!  Arrgh.\r
++On top of that, the Xaw Form widget is very buggy in XFree86 4.0.1\r
++(X11R6.4.3).\r
++\r
++* The OK button in the WinBoard startup dialog is now simply disabled\r
++if none of the radio buttons is selected, instead of bringing up an\r
++error dialog.  Suggested by Ted Milbaugh.\r
++      \r
++* Used ping to address the worst of the race conditions in the\r
++protocol.  Now if an engine supports ping, we ping it after sending\r
++the "new" command and after trying to place it in force mode at the\r
++end of a game.  When a ping has been sent and the corresponding pong\r
++has not yet come back, we (1) ignore or undo any moves the engine\r
++sends, (2) ignore game end messages (such as "offer draw", etc.) from\r
++the engine, (3) ignore thinking output from the engine, (4) delay\r
++starting the next game if in -matchGames mode, (5) in -zippyPlay mode,\r
++respond to challenges with a polite message to try again soon instead\r
++of accepting them.  There are a few more things that should be done\r
++(and item 5 might not be quite what we want), but it's hard to fit\r
++them all into the existing code.\r
++      \r
++* Patched the version of GNU Chess 5.00 included with WinBoard to\r
++support protover, feature, setboard, and ping, and to fix some minor\r
++bugs.  See gnu500+.patch.\r
++\r
++* Changed the GNU Chess 4 kludges for missing "st" and "sd" commands\r
++to be invoked only if the engine gives an error message for "st" or\r
++"sd", and to always use protocol commands instead of engine\r
++command-line options.  See "Idioms" in engine-intf.html.\r
++\r
++* Added new protocol command "protover 2" to tell the engine what\r
++version of the protocol is in use.  Version 2 is still compatible with\r
++old engines; see engine-intf.html.\r
++\r
++* Add new protocol command "feature ..."  The engine can send this in\r
++response to the protover command command, to say what extended\r
++protocol features it would like to enable, etc.  xboard responds\r
++"accepted F" or "rejected F" for each feature F that is set.  See\r
++engine-intf.html.\r
++\r
++* Added new protocol command "setboard <fen>".  This is an alternative\r
++to "edit", used only if the engine says "feature setboard=1".\r
++\r
++* Added new protocol command "ping <msg>".  The engine is supposed to\r
++respond "pong <msg>".  This gives us a tool to fix some race\r
++conditions in the protocol, but it is not used to the fullest yet.\r
++\r
++* Added new protocol command "tellopponent".  This will do a "say" if\r
++you're on a chess server in Zippy mode, or pop up an information\r
++dialog otherwise.\r
++\r
++* Added new protocol command "tellall".  This will do a "kibitz" if\r
++you're on a chess server in Zippy mode, or pop up an information\r
++dialog otherwise.\r
++\r
++* Added new protocol command "tellothers".  This will do a "whisper" if\r
++you're on a chess server in Zippy mode, or do nothing otherwise.\r
++\r
++* Changed the WinBoard /icsNames, /icsMenu, /firstChessProgramNames,\r
++and /secondChessProgramNames options to accept a filename preceded by\r
++"@", meaning to find the value in the file.  Changed the defaults to\r
++use this feature, with filenames icsnames.ini, icsmenu.ini, fcp.ini,\r
++and scp.ini.  This should make it easier for users to edit the values,\r
++since one less level of quoting is needed, and each value is in its\r
++own file, not mixed into winboard.ini.  Those who upgrade from an\r
++older winboard version and already have a winboard.ini file will not\r
++automatically have these values moved to a file; that has to be done\r
++by hand if desired.\r
++\r
++* We now strip .exe from engine names for "name" command, tags, etc.\r
++\r
++* Allowed WinBoard input widget to hold more than one line.  You can get\r
++a newline into the widget with copy/paste or with Ctrl+Enter.\r
++\r
++* Fixed an xboard bug where the [P] button would appear in the\r
++opposite highlight state from what it should be after being pressed.\r
++\r
++* We now use the "/" or "$" alias suppression feature on the chess\r
++servers, to avoid problems if the user inadvertently aliases a\r
++needed command to something else.\r
++\r
++* Changed the method used to deiconize xboard in AutoRaise and cmail.\r
++This may fix bugs under some window managers where after\r
++deiconization, the board window was mapped but nothing was drawn\r
++inside.\r
++\r
++* Preliminary, partial support for playing several chess variants\r
++against a local engine or editing variant games.  The -variant option\r
++must be given on the command line or WinBoard startup dialog; there is\r
++no menu.  The current variant is not displayed (except in the\r
++Tags/EditTags window).  Many variants will not work quite right even\r
++if the engine supports them; see item 326 in the ToDo file for\r
++details.\r
++\r
++* Added a workaround to detect the variant type when examining a\r
++scratch wild game on an ICS.\r
++\r
++* Fixed two cases where "variant" command should be sent to the engine\r
++when necessary but was not: loading a game from a file and restarting\r
++a dead engine.  Thanks to Gian-Carlo Pascutto.\r
++\r
++* Added missing support for FICS games that start from a bsetup position\r
++with Black moving first.\r
++\r
++* Fixed a bug in loading a file from the game list window while in\r
++Analysis or AnalyzeFile mode.  This now leaves us in AnalyzeFile\r
++mode, analyzing the new file.\r
++\r
++* Fixed a bug in loading games with a comment before the first move.\r
++\r
++* Fixed a bug in handling LoadGame (or -lgf) with -td 0.\r
++\r
++* Added a command line option to select an initial minor mode from the\r
++Mode menu.  This should satisfy requests from a couple of users with\r
++special applications.\r
++\r
++* Fixed a problem where some things in WinBoard's General Options\r
++dialog box were grayed out at the wrong time.\r
++\r
++* We look for a few messages from the chess engine pipe that are\r
++intended to catch problems starting an engine via rsh, such as "No\r
++such file".  Moved code so that these strings won't match until other\r
++protocol messages have been looked for, and documented the messages in\r
++engine-intf.html.\r
++\r
++* Fixed the WinBoard bug that sometimes made the console input box\r
++white-on-white even when not in password-entry mode.\r
++\r
++* Small changes to WinBoard to be compilable with the latest Cygwin\r
++net release (as of 10-16-2000).  Thanks to Mark Schoenberg.\r
++\r
++* Recompiled GNU Chess 5.0 for WinBoard with the latest Cygwin net\r
++release (as of 10-16-2000).  Also rebuilt the book just to be sure,\r
++since I had one bug report about it.  It came out identical and seems\r
++to work fine.\r
++\r
++* Added messages for some common InstallShield errors instead of just\r
++printing InstallShield's stupid error code numbers.\r
++\r
++* Added -firstComputerString and -secondComputerString, allowing you\r
++to suppress or change the command that is sent to a chess engine when\r
++its opponent is another computer.\r
++\r
++* Added "configure --with-Xaw3d" to allow use of Xaw3d widgets instead\r
++of Xaw widgets in xboard.  Thanks to Johnny C. Lam of the NetBSD\r
++project.  I've left Xaw as the default because Xaw3d is too ugly.\r
++      \r
++* The version of the Xaw Form widget released in XFree86 4.0.1\r
++(X11R6.4.3) has a bug that causes xboard to display the button bar\r
++on top of the message widget.  I've reported the bug and have\r
++installed a kludge workaround into xboard.\r
++\r
++xboard/WinBoard 4.1.0 -- Sun Sep 17 17:30:14 PDT 2000\r
++Tim Mann\r
++\r
++* Merged Winboard Plus 4.0.8 from Mark Williams into xboard\r
++  source pool.  Status of Winboard Plus features in xboard:\r
++\r
++  - White pieces now have borders, but the implementation is\r
++    completely different from WinBoard's; see below.\r
++\r
++  - Options menu not changed, probably won't be.\r
++\r
++  - Copy&paste support working, using Mark's changes to backend.c, Ben\r
++    Nye's changes to xboard.c for FEN positions, and some code of my\r
++    own in xboard.c for PGN games.\r
++\r
++  - Premove hooked up and working.  No pre-first-move, though.\r
++\r
++  - ICS Alarm hooked up and working.\r
++\r
++  - Auto-flip working.\r
++\r
++  - PGN Training mode hooked up and working.\r
++\r
++  - Improved menu item enable/disable working.\r
++\r
++  - Improved >> button working.\r
++\r
++  - Auto activate board working.  I changed this to be optional; you\r
++    might not always want it, especially in Zippy mode.\r
++\r
++  - Blindfold working.\r
++\r
++  - Documentation updated.\r
++\r
++* Fixed more colorization bugs.  Commands like "message foo tells you:\r
++xxx" and "tell 33 tells you: xxx" will no longer generate bogus\r
++colorization.\r
++\r
++* Added low-tech sound support to xboard, by invoking an external\r
++program on a filename for each sound to be played.\r
++      \r
++* ICC wild 27 is now recognized as VariantAtomic, and it sets the\r
++"ignore check" flag, but is not otherwise supported.\r
++\r
++* Converted the piece bitmaps from .bm to .xpm for use with xboard's\r
++xpm support.  (An .xim version was not created.)  Wrote a shell script\r
++using ImageMagick to do the conversion and to bucket fill from\r
++coordinate 0,0 with the background color.  Used xpaint by hand to\r
++clean up a few pieces where background color "leaked" into the inside\r
++or didn't flow all the way around the outside, then a sed script to\r
++fix up color names and bitmap names in the xpaint output.  If any more\r
++sizes are added later, they should be straightforward to convert with\r
++reference to the existing scripts.  With this conversion, not only do\r
++the white pieces now have dark borders, but (unlike with WinBoard) the\r
++light details on the black pieces are opaque.\r
++\r
++* If the XPM library is found when building xboard, the new xpm pieces\r
++are compiled in as the default.  External bitmap (or xpm) pieces can\r
++still be used by giving the -bitmapDirectory (or -xpmDirectory)\r
++option.  If the XPM library is not found, the old bitmap pieces are\r
++the default.  In this case external bitmap (or xim) pieces can be used\r
++by giving the -bitmapDirectory (or -xpmDirectory) option.  There is no\r
++way to compile in xim pieces.\r
++\r
++Winboard Plus 4.0.8 -- Sat Aug 5 15:51 PDT 2000 \r
++Mark Williams\r
++\r
++* Bugfix release.\r
++\r
++* Main menu now visible in Win NT.  Thanks to Microsoft for creating a \r
++compiler which auto-mutilates the WinBoard.rc file so that the menu is\r
++displayed under Win 98 but not Win NT.  I fixed the problem by hand editing the\r
++.rc file.  Sigh.\r
++\r
++* "Reset game" now works properly when invoked from Analysis mode when two\r
++engines are present. Correction of bug introduced in Winboard Plus. Thanks to\r
++Mogens Larsen for reporting the bug.\r
++\r
++* Pasting a FEN position with Black to move now works in all modes.\r
++Thanks to Mogens Larsen for reporting the bug.\r
++\r
++* Added gnuchess.dat to the distribution and a couple of text files that were\r
++missing in 4.0.7.\r
++\r
++*** Merged in the following changes from Tim Mann:\r
++\r
++* Bugfix: Highlights would sometimes not be taken down, at least in\r
++xboard.  The problem is that SetHighlight works in chess coordinates,\r
++not view coordinates, so if flipView has been toggled since the\r
++highlight was put up, it gets taken down from the wrong square.  Fixed\r
++by being careful to call ClearHighlights before toggling flipView, not\r
++after.  Ugh.\r
++\r
++* Bugfix: HighlightLastMove would sometimes highlight square a1 after\r
++a FICS "tomove black" command.\r
++\r
++* Bugfix: a move list with initial position that has black to play was\r
++not being handled correctly.\r
++\r
++* Removed "decline abort" and "decline adjourn" commands from Zippy.\r
++The syntax is changing on FICS, and Zippy really doesn't have to\r
++explicitly decline the requests anyway; it's sufficient to not accept\r
++them.\r
++\r
++* ICC wild 26 is now recognized as VariantSuicide (the FICS name; ICC\r
++calls it "giveaway").\r
++\r
++* Bugfix: PGN games with black to move in the initial position weren't\r
++being legality checked correctly.  I think this was introduced in\r
++4.0.6 when I fixed a different PGN bug.  Thanks to Mark Williams for\r
++spotting the bug and suggesting a fix.\r
++      \r
++* Bugfix: the initial "name(" of a kibitz wasn't being colorized.\r
++\r
++Winboard Plus 4.0.7 -- Thu May 12 17:57 PDT 2000 \r
++Mark Williams\r
++\r
++* New white pieces with black borders.\r
++\r
++* Major overhaul to Options menu. New dialogs for setting General Options,\r
++  Board Options, ICS Options, Sounds, Fonts, Colors.\r
++\r
++* Clipboard support for PGN game scores and FEN positions.\r
++\r
++* Optional ICS Premove with user-specified first moves for White and Black.\r
++\r
++* New sound events: ICS Win, ICS Loss, ICS Draw, ICS Unfinished, ICS Alarm.\r
++\r
++* New auto-flip option when playing against a chess program.\r
++\r
++* Added PGN Training mode.\r
++\r
++* Certain menu options now disabled while program is thinking.\r
++\r
++* ">>" button now always goes to the end of the game.\r
++\r
++* In ICS mode, the board is automatically activated at the start of a\r
++new game.\r
++\r
++4.0.7 -- Sun Mar  5 17:17:49 PST 2000  Tim Mann\r
++\r
++* Fixed a nasty bug in parsing ICS game histories that was introduced\r
++in 4.0.6.\r
++      \r
++4.0.6 -- Fri Mar  3 16:20:11 PST 2000  Tim Mann\r
++\r
++* Fixed bugs in Zippy's code for responding to messages sent with the\r
++ICS "message" command.\r
++      \r
++* Fixed bugs where xboard could still create dialogs partially off the\r
++top of the screen.  Fixed unwanted interactions between initial sizes\r
++and positions of various unrelated xboard dialogs.  Deleted\r
++borderXoffset and borderYoffset resources.\r
++\r
++* Fixed restoring the xterm name on exit to work in more cases.\r
++      \r
++* Small fix to the WinBoard self-extracting installer: when it starts\r
++up, it now always deletes any old wb-setup directory left over from a\r
++previous installation.  Formerly this worked only on Windows 95/98, so\r
++on NT the self-extractor would sometimes stop and ask the user whether\r
++it was OK to overwrite the old wb-setup files.\r
++\r
++* Modified WinBoard to be compilable with the free Cygwin tools\r
++available from http://sourceware.cygnus.com/cygwin/.  Based on work by\r
++Mark Schoenberg.  (His mods were enough to get WinBoard through the\r
++compiler, but a few things were broken along the way, so I reworked them.)\r
++      \r
++* Merged changes from Don Fong to make WinBoard compilable with\r
++Borland C++ 4.5.  I do not have Borland C++ and am unable to test with\r
++it, but I did make sure the changes don't stop it working with MSVC++\r
++5.0 and Cygwin.\r
++\r
++* Forbade entering TwoMachines mode from MachineWhite or MachineBlack\r
++mode when machine is on move.  This used to confuse the engine and\r
++cause problems, because when we try to get the engine to stop, it\r
++might make a move first, and it might not do that immediately.\r
++      \r
++* Variant classification now deals with new ICC wild 25, classifying\r
++it as "3check".  Also, we are now conservative about new wild numbers\r
++we don't know about, classifying them as "unknown" instead of\r
++"normal".\r
++\r
++* Replaced bad GNU Chess 5.00 book in WinBoard distribution with a\r
++correct one.  1.e4 now no longer takes GNU Chess 5.00 out of book!\r
++Thanks to Pete Galati.\r
++\r
++* Made move parser accept and ignore nonstandard ep suffix on PGN moves,\r
++e.g., "exf6ep" or "exf6e.p."\r
++\r
++* Fixed bugs in parsing PGN files starting with no move number, or\r
++with a move number other than "1." (including "1...").  Thanks to\r
++Michael Soulier and Stefan Zipproth for example PGN files\r
++demonstrating the bugs.\r
++      \r
++* Changed InitComboStringsFromString to not modify the input string;\r
++this caused an exception when WinBoard was compiled with MSVC++ 6.\r
++Thanks to Bert Tuyt for the report.\r
++\r
++* In WinBoard, dragging a piece off the edge of the board without\r
++releasing the mouse button no longer instantly aborts the move.  You\r
++still must release the mouse button inside a square to complete a\r
++move, but you can now drag off the edge and come back inside.\r
++      \r
++* WinBoard bugfix: If you went into EditGame or EditPosition mode\r
++while observing or playing an ICS game, and a new move came in\r
++(snapping you back to ICSClient mode) while you were dragging a piece\r
++around, the drag state would not be reset, causing the piece you were\r
++dragging to remain on the board wherever you dropped it.  Thanks to\r
++David Brinegar for the bug report.\r
++\r
++* WinBoard bugfix: If you moved or resized the board while your\r
++opponent was moving, and you had AnimateMoving on, his move would not\r
++be displayed until after your next move.  Thanks to DAV for reporting\r
++the bug repeatedly until I finally understood it.\r
++\r
++* Added a Zippy "farewell" feature; see zippy.README.\r
++      \r
++* Fixed a bug (xboard only) in processing -zippyReplayTimeout on the\r
++command line.  Thanks to Steve Beer for the report and patch.\r
++\r
++* Send "computer" command to both sides in TwoMachines matches.\r
++      \r
++* Fixed a Y2K bug in Evan's cmail code!  Thanks to Brian Mays for the\r
++report and patch.\r
++      \r
++* Bugfix: Initialize variant field of GameInfo struct in gameinfo.c.\r
++This could cause crashes in LoadGame.  Thanks to Andrzej Nagorko.\r
++      \r
++* Fixed several pattern matching problems: Finger notes and formula\r
++vars no longer get replied to by zippyTalk or colorized.  Channel\r
++tells by players with many titles are now colorized fully, and\r
++zippyTalk handles channel tells by such players correctly.  The shout\r
++"--> foo(99): bar" no longer gets colorized as a channel tell.  Code\r
++is cleaned up a bit, and autocomment capture now uses the same\r
++criteria as colorization.\r
++\r
++* xboard fix: Enter key now closes error popups as in WinBoard.\r
++Especially nice for the "Exiting: Connection closed by ICS" popup.\r
++\r
++4.0.5 -- Tue Dec  7 10:30:40 PST 1999  Tim Mann\r
++\r
++* Added missing documentation of SIGTERM usage into engine-intf.html.\r
++\r
++* Bugfix: New -zippyReplayTimeout option was misspelled in WinBoard as\r
++-zippyReplyTimeout.  Thanks to Francesco Di Tolla.\r
++      \r
++* xboard -ics now restores the xterm's original title upon exit, at\r
++least if $WINDOWID is set.\r
++\r
++* Bugfix: -matchGames mode wasn't terminating properly.  Final score\r
++popup would come up twice and engines would not be killed off.  Thanks\r
++to Frank Quisinsky for the bug report.  Bug was introduced in 4.0.4.\r
++\r
++* Bugfix: "tell 50 foo shouts: bar" no longer gets colored as a shout;\r
++similarly for "...s-shouts:" and "...c-shouts:".  Thanks to David Lee\r
++for the bug report.\r
++\r
++4.0.4 -- Fri Dec  3 17:51:27 PST 1999  Tim Mann\r
++\r
++* Bug fix: formerly if you invoked SaveGame from EditPosition mode\r
++with black to play, the position was not saved properly.  As a quick\r
++fix, SaveGame now takes you out of EditPosition mode before saving.\r
++\r
++* Changed -matchGames to keep track of the score (won-lost-drawn) and\r
++display it in the banner.  The final score is displayed in a modal\r
++popup before the program exits.\r
++\r
++* Changed "Connection closed by ICS" to display in a model popup\r
++before the program exits.\r
++\r
++* Added -popupExitMessage option, default on.  Setting this to false\r
++suppresses the modal popups that you sometimes get just before\r
++xboard/winboard exits -- both the two new ones listed above and the\r
++existing Fatal Error popup.  This is useful when running Zippy\r
++unattended from a shell script (or .bat file) that loops and starts a\r
++new copy after a time delay when there is an error.\r
++\r
++* In xboard, added missing support for WM_DELETE_WINDOW to all\r
++windows.  This makes xboard a better citizen, and is much needed with\r
++the newer X window managers that put an [X] button on every window and\r
++bind it to "kill application" if the applicationd does not support\r
++"delete window".  We can't allow xboard to be thoughtlessly killed,\r
++since that leaves the chess engine running in the background.\r
++\r
++* We now avoid positioning tops of xboard dialog boxes offscreen.\r
++\r
++* zippy.lines can now use the caret ('^') character as an inter-saying\r
++separator. You no longer need to dig up a text editor that can put NUL\r
++('\000') characters in text files.\r
++\r
++* Bugfix: In traditional chess clock mode, White now gets time added\r
++to its clock as soon as it makes time control.  Previously both White\r
++and Black got their time added only when Black made time control,\r
++which would cause some engines to make their 41st move as White too\r
++quickly, thinking they were low on time.\r
++\r
++* The zippyAcceptOnly feature no longer sends a decline command or\r
++a tell.  Thus you can use it to put Zippy into a manual accept mode.\r
++\r
++* Bugfix: "tell 50 foo tells you: bar" no longer gets colored as a\r
++personal tell; similarly for "...whispers:" and "...kibitzes:".\r
++\r
++* WinBoard no longer blanks the message line when you start a new\r
++move, unless there was an error message there from the previous move.\r
++\r
++* WinBoard now never puts the white piece drop menu on the middle\r
++mouse button.  Both colors are always on the right button.  Windows\r
++users often don't think to look for a middle button menu, or don't\r
++really have a working middle button despite what Windows says.\r
++\r
++* Guest login handles on ICC are now parsed again; an ICC wording\r
++change had broken this feature.\r
++      \r
++* Autodetect when the engine does not support the "draw" command and\r
++don't relay the command to it in that case.  Needed because sending an\r
++unsupported command to GNU Chess makes it move immediately, so people\r
++could make Zippy move without thinking by continually offering a draw.\r
++Thanks to Frank Walker for the problem report.\r
++\r
++* Small changes based on code from Robert Jurjevic: The WinBoard\r
++analysis window can be minimized (though not to the taskbar).  The\r
++WinBoard ICS Interaction window will autoscroll if you drag the mouse\r
++above or below the window while selecting, and password entry mode\r
++leaves the entry line as the background color instead of using 75%\r
++gray.  Seeks are now colorized with a new color of their own.\r
++\r
++* Added -zippyMaxGames feature.\r
++      \r
++* -zippyNoplayCrafty command line option was missing in xboard; fixed.\r
++Thanks to John Perry.\r
++\r
++* Fixed bug in detecting when Zippy loses his bughouse partner.\r
++Thanks to Ben Dean-Kawamura.\r
++\r
++* allobs fix in 4.0.3 didn't work; corrected it.\r
++\r
++* WinBoard will now update the board immediately if a move is made\r
++while the window is being moved or resized.\r
++      \r
++4.0.3 -- Sun Aug 15 18:44:39 PDT 1999  Tim Mann\r
++\r
++* Bugfix: moved winboard wizard functions that send a command directly\r
++to the chess engine from Ctrl+Alt+1 and Ctrl+Alt+2 to Alt+1 and Alt+2.\r
++Ctrl+Alt is equivalent to the European AltGr key, so the old assignments\r
++conflicted with typing an @-sign on some keyboards.\r
++      \r
++* Bugfix: prevent "If this message stays up, your chess program does\r
++not support analysis" from appearing if AnalysisMode is selected when\r
++already in Analysis or AnalyzeFile mode.  Also, deleting analysis window\r
++in WinBoard now switches you to EditGame mode, to avoid the anomaly of\r
++being in an analysis mode with no analysis window present.\r
++      \r
++* Change all Zippy environment variables to work as command line\r
++options.  For now they still work as environment variables too, but\r
++the environment variables are deprecated.\r
++\r
++* Use unsigned long to hold node counts from engines.\r
++\r
++* Print error instead of crashing on attempts to use xpm or xim pieces\r
++in monochrome mode.  Thanks to Jim Torrance for the bug report.\r
++\r
++* Tightened pattern recognition for ICS messages sent to Zippy; should\r
++no longer match ICC allobs output.  Fixed recognition of when Zippy is\r
++sent a message; small change to FICS output had broken it.\r
++      \r
++* Zippy now exits if the engine dies unexpectedly.\r
++\r
++* Added Zippy "spoofedby" feature; see zippy.README.\r
++      \r
++* Narrowed the margins on some older WinBoard dialogs to make their\r
++style uniform with the newer ones.\r
++\r
++* Bugfix: Changing Ponder Next Move from the Options menu did not take\r
++effect until the next game.  This bug was in WinBoard only.  Thanks to\r
++Stefan Zipproth for the bug report.\r
++\r
++* Got rid of "Internal error: bad move type" message when the engine\r
++makes a move that we can parse but think is illegal.  Now the move is\r
++just passed on (which also may be the wrong thing to do).\r
++\r
++4.0.2 -- Thu Feb 25 19:55:32 PST 1999  Tim Mann\r
++\r
++* Added one more built-in sound choice to WinBoard: move.wav from Pete\r
++Galati.\r
++      \r
++* Added new larger piece sizes: big, huge, giant, colossal, titanic.\r
++      \r
++* Modified the xboard font searcher to be able to use scalable fonts.\r
++The new -fontSizeTolerance flag controls how closely a nonscalable\r
++font must match to be used in preference to a scalable font.\r
++      \r
++* Zippy environment variables ZIPPYABORT and ZIPPYADJOURN now control\r
++whether Zippy will accept abort and adjourn requests.\r
++\r
++* We now determine the variant type being played on ICS, send it as a\r
++command "variant VARTYPE" to the chess engine (if in Zippy mode), and\r
++put it in the PGN tags.  See engine-intf.txt for variant names.  See\r
++ZIPPYVARIANTS in zippy.README to control what variants Zippy will\r
++accept.  Note that this now applies to bughouse, too.\r
++\r
++* Zippy now won't do -zippyTalk in a channel unless his handle is\r
++mentioned there.\r
++\r
++* Zippy now ignores bughouse holdings if not actually playing, instead\r
++of stupidly trying to abort the game.  Let me know if other strange\r
++things happen when Zippy is observing a game.\r
++\r
++* Set ICS Interaction title bar to "user@server".  User name is\r
++determined by parsing message during the login sequence.  Zippy now\r
++uses this method to get its name too, so ZIPPYNAME is eliminated.\r
++Problem: with xboard, the title bar gets set to "xterm" upon exit,\r
++since we didn't know what it was to start with.\r
++\r
++* Fixed xboard-only bug in -colorChannel1 command line option.  Thanks\r
++to Fredrik Sandstrom for the bug report and fix.\r
++\r
++* Check for overflow of MAX_MOVES.  Still not sure this is checked for\r
++everywhere it needs to be.\r
++\r
++* Added .epd to suffixes recognized by WinBoard as position files.\r
++This is a bit of a kludge, as the .fen reading code was not written\r
++with .epd files in mind, but reading them with it is said to work.\r
++\r
++* Added ZIPPYGAMESTART feature, suggested by Jason Hoblit.  See\r
++zippy.README.\r
++\r
++* Restored the feature of soaking up the moves from a user-typed "moves",\r
++"oldmoves", or "smoves" ICS command when xboard/WinBoard is idle, but\r
++changed it so that the move list is also echoed to the screen.  Some folks\r
++still liked the old feature since it is faster than examine mode, and\r
++printing the moves to the screen should eliminate the confusion it caused\r
++for other people.\r
++\r
++* Bugfix: in WinBoard, starting a click-click move and then clicking on\r
++a black line would cause the source square to be forgotten without taking\r
++the highlight down.  Now the errant click is ignored.\r
++\r
++* Corrected shortcut key labels for LoadNext/PrevPosition in WinBoard's\r
++File menu.  Thanks to Andreas Stabel for the bug report.\r
++\r
++* Bugfix: if you had a completely full ICS context menu in WinBoard\r
++(90 items), the last one would do nothing if selected.\r
++\r
++* The "computer" engine command added in 4.0.1 was not working; I had\r
++left out part of the code patch.  Oops.\r
++\r
++4.0.1 -- Fri Feb 12 21:24:15 PST 1999  Tim Mann\r
++\r
++This is a minor bugfix release.  The first item listed below is the\r
++only interesting new feature.\r
++\r
++* You can now type in moves from the keyboard in WinBoard.  Either\r
++select TypeInMove from Step menu, or (if you are not in ICS mode),\r
++just start typing.  In ICS mode you can type moves into the ICS\r
++interaction window anyway, so I've retained the feature that typing\r
++switches you there.  Not implemented in xboard.\r
++\r
++* Removed the "noise 1000" command that used to be sent to the chess\r
++engine when entering analysis modes.\r
++\r
++* Deleted the feature where we soak up the output of a user-typed ICS\r
++"moves" or "oldmoves" command.  This ancient feature is not really\r
++useful anymore, now that "examine" exists, and it caused a lot of\r
++complaints.\r
++\r
++* Increased maximum size of ICS text menu to 90 entries and added\r
++overflow checking.\r
++\r
++* The command sent to ICS by Zippy at the end of each game can now be\r
++customized with the ZIPPYGAMEEND environment variable.\r
++\r
++* We treat xboard.info as a pseudo-source since most people don't have\r
++the tools to rebuild it.  But "make install" erroneously had a\r
++dependency on it, even though "make all" did not.  Fixed.\r
++\r
++* Miscellaneous minor updates and clarifications to engine-intf.txt.\r
++In particular, documented the st and sd commands (support for command\r
++line options -searchTime and -searchDepth), warts and all.\r
++\r
++* Added a small code patch from Bob Hyatt to detect when Zippy's ICS\r
++opponent is a computer and send the command "computer" to the engine.\r
++Added this command to engine-intf.txt.  Thanks, Bob.\r
++\r
++* Bugfix: configure was looking for usleep(), but config.h.in didn't\r
++have an entry for it, so HAVE_USLEEP was never defined.  Also, in the\r
++non-HAVE_USLEEP case, there was a possible race condition between the\r
++signal handler and the pause() call.  Thanks to Ben Dean-Kawamura for\r
++the bug reports.\r
++\r
++* Bugfix: a "1..." preceding Black's first move (usually present if\r
++there is a comment on White's first move) would cause the parser\r
++to think a new game started there and report "End of game" on the\r
++current game.  Thanks to Dell Garner for the bug report.\r
++\r
++* Changed the abbreviation for -searchDepth from -sd to -depth to fix\r
++a clash with -secondDirectory.\r
++\r
++* Changed -searchDepth to be orthogonal to the various timing options.\r
++Previously it would search for an unlimited time to the given depth;\r
++now the engine is allowed to choose its search time in the normal way,\r
++but is told to cut off the search early if it reaches the given depth.\r
++\r
++* Bugfix: SaveSettings in WinBoard was saving both the long form\r
++option highlightSquareColor and its abbreviation (hsc).\r
++\r
++* Fixed a redisplay bug in DisplayBothClocks that could cause White's\r
++clock to be highlighted in EditPosition mode when Black's should have been.\r
++\r
++* Fixed Zippy's feature of passing on draw offers from the ICS opponent.\r
++The colorization code was eating the offer before Zippy saw it, so I disabled\r
++colorization of offers while in -zp or -zt mode.  (Other types of\r
++colorization are already disabled in Zippy mode for similar reasons.)\r
++\r
++* Added some more commands to the default ICS context menu in WinBoard,\r
++and put "(name)" on the ones that insert a playername (or game number).\r
++\r
++* Added missing documentation to WinBoard help file: PonderNextMove, the\r
++-ponder/-xponder argument, and the up/down arrow history feature in the\r
++ICS Interaction window.\r
++\r
++* Fixed       ZIPPYNOPLAYCRAFTY feature to fire only if the opponent is Crafty,\r
++not if some other Crafty is observing the game and kibitzes.\r
++\r
++* Fixed bugs in generating "partner" commands when Zippy is playing\r
++bughouse.\r
++\r
++4.0.0 -- Sat Jun 20 16:59:47 PDT 1998  Tim Mann\r
++\r
++* Fixed WinBoard resizing so that the edges you do not drag remain in\r
++place, even when the final size is different from what you dragged to.\r
++(This doesn't work on NT 3.51 or earlier, if anyone cares.)\r
++\r
++* Fixed problems with resizing WinBoard on Windows NT: you no longer get\r
++whitespace around the board, a clipped board, or a lot of flashing during\r
++the drag.\r
++\r
++* Added customization for highlight-square color.\r
++\r
++* Bugfix: backend.c wrote to stderr in a few obscure places, which doesn't\r
++work in WinBoard.\r
++\r
++* Added Index Number field back to LoadGame/LoadPosition dialog boxes in\r
++WinBoard.  This required some extra code to work with both the\r
++Explorer-style dialog boxes and the old-style NT 3.51 dialog boxes.  Ugh.\r
++\r
++* WinBoard startup dialog now understands -zp mode.  The first chess\r
++engine selector is enabled and the value is used.\r
++\r
++* Bugfix: ResetGame would send "exit" to engine twice if it was in an\r
++analysis mode.\r
++\r
++* Bugfix: The response "Illegal move: bk" to the "bk" command, indicating\r
++that it is not implemented, would confuse xboard.\r
++\r
++* Bugfix: Ignore empty hints ("Hint:\n") instead of printing a message\r
++saying that some bogus string (often "Hint:") is illegal.\r
++\r
++* Bugfix: LoadNextGame/LoadPreviousGame/ReloadSameGame were broken.\r
++\r
++3.6.12 -- Sat Jun 13 14:57:10 PDT 1998  Tim Mann\r
++\r
++Beta test release of xboard and WinBoard.\r
++\r
++* Spruced up xboard man page a bit.\r
++\r
++* Added Highlight Last Move to xboard too.\r
++\r
++* The revamped xboard mouse click code had several more bugs than the\r
++previous version, so I revamped it again.  All fixed now, I hope.\r
++\r
++* xboard bugfix: crash in CreatePieceMenu.\r
++\r
++* Oops.  winboard-3_6_11beta.exe installed 3.6.10beta, not the new version.\r
++\r
++3.6.11 -- Fri Jun 12 20:00:48 PDT 1998  Tim Mann\r
++\r
++Beta test release of xboard and WinBoard.\r
++\r
++* Major reorganization to engine-intf.txt.  Some new features added,\r
++many existing features clarified and hints for engine programmers added.\r
++Support for new features added to program.\r
++\r
++* Changed defaults for -scp (etc.) back to being independent of -fcp, as\r
++in 3.6.2. That is, the default is no longer to copy the value from -fcp if\r
++-scp is not specified.  This will sometimes make command lines longer but\r
++will remove some confusing situations.\r
++\r
++* Split -reuseChessPrograms into two options: -reuseFirst and\r
++-reuseSecond.  Fixed obscure bugs when reuse is off.\r
++\r
++* Detect ICC and change some command usage slightly there: only ICC has\r
++set-quietly; only FICS has iset and bsetup clear.  With this feature, we\r
++can now safely use bsetup clear when appropriate instead of deleting each\r
++piece one by one.\r
++\r
++* Added indent to lines that are wrapped by WinBoard ICS Interaction\r
++window.  This seems to tickle a Microsoft bug in the RichEdit control:\r
++occasionally the start of the next line after the wrapped line is indented\r
++too.  I think the wrapped indent feature is useful enough that it's worth\r
++having in spite of the bug.\r
++\r
++* WinBoard bugfix: bounding box for the board was computed incorrectly by\r
++mouse code.  It would think you moved off the bottom of the board before\r
++you really did, so it was hard to drag pieces along the bottom rank on\r
++smaller board sizes.\r
++\r
++* Fixed obscure parser.l bug: ambiguity between capture using : instead of\r
++x and email header line.  Also removed or simplified a lot of complex\r
++patterns for English (as opposed to PGN) end-of-game indications while I\r
++was in there.\r
++\r
++* Added PonderNextMove option.\r
++\r
++* xboard EditPosition piece menus now let you set the side to play by\r
++selecting the "White" or "Black" label at the top of the menu, like\r
++WinBoard.  (Both xboard and WinBoard still let you set the side to play by\r
++clicking on the clock.)\r
++\r
++* Merged documentation of Crafty and GNU Chess thinking output in\r
++engine-intf.txt.  Corrected code in backend.c to match documentation; it\r
++used to require the PV to start in column 27 (!).\r
++\r
++* Fixed bug that caused crashes in "-reuseChessProgram false" mode.\r
++\r
++* Draw by agreement in Two Machines mode now works as it is supposed to.\r
++Other minor bugs in handling game end messages from machines are also\r
++fixed, and engine-intf.txt is revised in this area.\r
++\r
++* Revamped xboard code for handling mouse clicks on the board.  In\r
++particular, it had a bug if a click-click promotion move was made.\r
++\r
++* Fixed and reinstated optimization for << in analysis modes: send\r
++initString and re-send the board if needed.  Sending repeated undos\r
++is bad because Crafty prints some analysis after every one.\r
++\r
++* Don't go into a spin loop while pausing between xboard animation frames.\r
++This caused problems, especially when compiling with -O2 on HP-UX.\r
++\r
++* WinBoard Options/Colors/RevertToDefaults now also turns off Monochrome\r
++if it was on, and similarly for Options/ICSInteractionColors/RevertToDefaults.\r
++This seemed to confuse people before.\r
++\r
++* Bugfix: ICS Interaction context menu items with neither of the two\r
++optional flags set did not work.\r
++\r
++* Bugfix: PGN move numbers are optional, but we were insisting on "1"\r
++right after the tags.\r
++\r
++* Bugfix: only the first game of an -mg match was loading -lpf or -lgf.\r
++\r
++* Other minor fixes and code cleanup.\r
++\r
++3.6.10 -- Mon Jun  1 01:32:31 PDT 1998  Tim Mann\r
++\r
++* Added ZIPPYNOPLAYCRAFTY feature; see zippy.README.\r
++\r
++* Added timestamps for chess engine interaction to -debug output.\r
++\r
++* Now allow 10 seconds (was 5) between games in match mode for engines to\r
++respond to "force" command that ended previous game.\r
++\r
++* When a game is picked from the game list and the names of White and\r
++Black are known, display them in the window banner instead of the filename\r
++and game number.\r
++\r
++* Changed default for -scp and -sd to be the values of -fcp and -fd.\r
++\r
++* Added boxes for both engines to WinBoard startup dialog.  Changed to\r
++dropdown boxes whose content can be set from winboard.ini, similar to\r
++the box for ICS name.\r
++\r
++* Accept "offer draw" (or "*offer*draw*") from engine to offer a draw.\r
++\r
++* Accept "move mmmm" from engine as well as silly "1. ... mmmm" syntax.\r
++\r
++* Added support for bughouse engines (Zippy mode only).\r
++\r
++* Move bombproofing for engines sending illegal or out of turn moves.\r
++\r
++* Always send "xboard\n" to engine as first command.  Eliminates need\r
++to run crafty as "crafty xboard".\r
++\r
++* Rewrote xboard code for input from engines to fix longstanding bugs.\r
++Previously an engine that sent one line in two separate writes with \r
++some time lapse in between (or perhaps that sent several lines in one\r
++write) could make xboard hang.  WinBoard did not have this bug.\r
++\r
++* Fixed minor bugs in dealing with illegal moves.\r
++\r
++* Added "iset startpos 1" for FICS.\r
++\r
++* Removed special support to put "GNU Chess" or "Crafty" in the window\r
++banner instead of the engine's base filename.  This gives a more level\r
++playing field for other engines.  Also fixed bugs in the code that finds the\r
++engine's base filename.\r
++\r
++* Bugfix: Abort or Resign at the very start of a game in chess engine mode\r
++would fail to send "force" to the engine.\r
++\r
++* Fixed some minor bugs in new "result" messages, and changed format to\r
++include a trailing PGN comment giving the reason the game ended.\r
++\r
++* Changed syntax of /font options in WinBoard; old syntax was assuming\r
++that a font name can't contain a digit, which is wrong.  Old font names in\r
++WinBoard.ini files are still accepted.\r
++\r
++* Serious further work on getting WinBoard to read/write files in the\r
++"right" directories and documenting exactly what it does.\r
++\r
++* Added LoadPreviousPosition, LoadNextPosition, ReloadSamePosition.\r
++\r
++* Misc. tiny fixes and cleanup.\r
++\r
++3.6.9 -- Sun May 24 20:53:08 PDT 1998  Tim Mann\r
++\r
++xboard and WinBoard beta release.\r
++\r
++* Tightened up illegal move handling.  Illegal or meaningless moves from a\r
++file or chess engine should no longer get translated into a1a1 and blindly\r
++applied.  Explicit moves to the same square (like a1a1) no longer make the\r
++piece on that square capture itself and vanish.\r
++\r
++* Added AlwaysOnTop feature to winboard.\r
++\r
++* Fixed bug in winboard "@" command line indirection operator.\r
++\r
++* Removed buggy "optimization" code for ToStart in analysis modes.\r
++\r
++* Fixed typo bug in zippy.c that would often cause winboard to crash\r
++right after starting a game in -zp mode.\r
++\r
++3.6.8 -- Sat May 23 22:23:19 PDT 1998  Tim Mann\r
++\r
++xboard and WinBoard beta release.\r
++\r
++* Added -firstDirectory and -secondDirectory so that chess engines can\r
++be started in a different directory from xboard/WinBoard itself.\r
++\r
++* Added -matchGames to allow more than one game in -matchMode.  The games\r
++are played with colors alternating between the two chess engines.  Had to\r
++add a time delay at the end of each game to catch up with game ending\r
++messages from both chess engines -- yuck.\r
++\r
++* Changed TwoMachines mode to have firstChessProgram play White by\r
++default.  Added -firstPlaysBlack to restore old behavior.\r
++\r
++* Major rework of code in backend.c for dealing with first and second\r
++chess engines.  Generalized the code and created a struct type with one\r
++instance for each engine.  Several small bugs fixed along the way. \r
++\r
++* Fixed bugs in Abort in local chess engine mode.\r
++\r
++* Tightened pattern matching to recognize moves from machine.  Should cure\r
++bogus "Illegal move" errors while Crafty is pondering with Show Thinking\r
++on, among other things.\r
++\r
++* WinBoard keeps focus in board window after popping up a comment due to\r
++Forward/Backward/ToStart/ToEnd commands.\r
++\r
++* Finally got rid of warnings on compiling moves.c under Windows.\r
++\r
++* Fixed so WinBoard will compile on machines where WM_MOUSELEAVE is not\r
++defined.\r
++\r
++* Removed various bits of unused code.\r
++\r
++* Parse (and ignore) NAGs in PGN files.\r
++\r
++* Updated engine-intf.txt.\r
++\r
++* Send "result R" to the chess program at the end of each game, where\r
++R is the PGN result 1-0, 0-1, 1/2-1/2, or *.\r
++\r
++* Bugfix: suppress animation when loading a game with timeDelay=0.\r
++\r
++* Bug fix: pondering output from Crafty that contained "..." could be\r
++mistaken for a move, causing bogus error messages and general chaos.\r
++\r
++* xboard "make clean" bug fix: moved things created by configure to be\r
++removed only by "make distclean".\r
++\r
++* Fixed a remaining case where move was being animated before being\r
++relayed to opponent.\r
++\r
++* Backend was reversing time/otim commands to the chess program (new bug),\r
++and was often not sending them on the first move of a game or the first\r
++move after a mode change (old bug).  Fixing the latter required a kludge\r
++to work with both GNU Chess and Crafty, because Crafty swaps white and\r
++black clock times when it swaps sides, while GNU Chess does not.  The\r
++kludge is that we always make sure the chess engine thinks its opponent is\r
++on move before we set the clock.  This will sometimes result in sequences\r
++like "white\ntime xxx\notim yyy\nblack\ngo", or the same with white and\r
++black interchanged.\r
++\r
++* Removed last trace of old -whiteString and -blackString arguments.\r
++\r
++* Fixed so that you can type "bd" into the Direct Command dialog when\r
++debugging gnuchess, without having xboard parse the clock display\r
++(starting with "White") as "White wins" and end the game.\r
++\r
++* Changed moves.c to make a distinction between IllegalMove (where we\r
++could tell what move was intended, but it violates the chess rules) and\r
++MeaninglessMove (where we could not tell).  This is a step towards getting\r
++rid of cases where we translate meaningless moves into "a1a1", but some\r
++work is probably needed to track them all down.\r
++\r
++* Fixed bug in WinBoard monoMode dragging.\r
++\r
++* Changed WinBoard to new style file dialogs.  In the process, disabled\r
++the feature that let you enter the index number of a game or position within\r
++the file in the dialog.  This is no loss in LoadGame, as you can pick your\r
++game from the game list dialog that follows, but it does remove some\r
++functionality from LoadPosition.\r
++\r
++3.6.7 -- Mon May 18 21:25:00 PDT 1998  Tim Mann\r
++\r
++xboard and WinBoard beta test release.  I've been unable to reproduce some\r
++reported drawing bugs, so they may still not be fixed.\r
++\r
++* Changed PopUpErrors option to PopupMoveErrors, which is more useful, and\r
++changed default to off.  Errors other than move errors should always be in\r
++popups; they are often too big for the message area and too important to\r
++put where they can be easily missed.  But it seems good to get rid of the\r
++popups for move errors by default.\r
++\r
++* xboard analysis window no longer forces itself to top whenever there is\r
++new output.  Also, now uses built-in Xaw word wrapping instead of trying\r
++to do its own; works better.\r
++\r
++* Bugfix: Reset did not take Crafty out of analyze mode.\r
++\r
++* A chess engine no longer has to claim to be Crafty to be able to use\r
++AnalysisMode and AnalyzeFile; it just has to implement the analyze\r
++command as Crafty does.  Put in heuristics to generate more informative\r
++error messages if the engine does not support analyze, and checked that\r
++they work at least with GNU Chess.\r
++\r
++* Added click-click moving, HighlightLastMove, and HighlightDragging to\r
++WinBoard.  The highlight features are unlikely to go into xboard unless\r
++the xboard drawing code is cleaned up to do *all* drawing on the board\r
++from DrawPosition, as WinBoard does.  This is low priority for me.\r
++\r
++* Eliminated bogus "Error gathering move list: no header" popup.  You\r
++could get this by observing two fast games at once without turning off\r
++GetMoveList.\r
++\r
++* Disable WinBoard Sounds menu entirely in -ncp mode, since not even\r
++MoveSound is used in that mode.\r
++\r
++* WinBoard bugfix: Several problems were caused if the user changed \r
++WinBoard's current directory in a Load, Save, or Browse dialog.  In\r
++particular, WinBoard.ini would get saved in the wrong directory, and\r
++sound .wav file names would not get saved with a full pathname.  I think\r
++all such problems are now fixed.\r
++\r
++* WinBoard bugfix: iconizing the board after an aborted mouse resize would\r
++(partially) resize it to Tiny.\r
++\r
++* WinBoard bugfix: board was not being drawn in color on 256-color\r
++displays.  This bug was introduced in 3.6.6.\r
++\r
++3.6.6 -- Tue May 12 17:43:43 PDT 1998  Tim Mann\r
++\r
++xboard and WinBoard beta release.  Note: not all reported bugs are fixed.\r
++\r
++* Move animation in WinBoard, programmed by Henrik Gram.  Great stuff!\r
++\r
++* Animate backward moves too.\r
++\r
++* xboard bugfix: -font (and friends) can now specify a font alias (such\r
++as "fixed"), not just a full X Consortium name pattern.  Previously this\r
++would give a resource conversion error message.\r
++\r
++* Some coding style cleanup in xboard.c.\r
++\r
++* Earlier error check for moving wrong color piece in EditGame mode.\r
++\r
++* Completed fix to pattern matching; see 3.6.5.\r
++\r
++* Fixed some software rot bugs in Zippy.\r
++\r
++* Split AnimateDragging as separate option from AnimateMoves.\r
++\r
++* Added FlashMoves to options menu and -flash/-xflash to command line\r
++options (xboard only).\r
++\r
++* Some preliminary work on visible bughouse holding support.  Most of the\r
++code is not present in this release because I have not gotten it working\r
++properly yet; my first approach went down a blind alley and I had to\r
++remove most of the partially working code in preparation for a rewrite.\r
++\r
++3.6.5 -- Fri May  8 14:22:09 PDT 1998  Tim Mann\r
++\r
++Not generally released.\r
++\r
++* Pack bughouse holdings display in banner more tightly when board is one\r
++of the smaller sizes (when smallLayout or tinyLayout is true, that is).\r
++An interim measure, but should help.\r
++\r
++* Completed fix to make move list parsing recognize the end condition and\r
++final comment.\r
++\r
++* Fixed pattern matching for chatter (tells, etc.) to be more reliable.\r
++This should reduce the incidence of colors starting in the wrong place and\r
++of incorrectly matching things that look like other patterns inside\r
++chatter, such as "shout <12>".  (These errors were already rare.)\r
++\r
++* WinBoard now lets you customize the list of ICS's in the startup dialog.\r
++For now, at least, requires editing WinBoard.ini with a text editor.\r
++\r
++* Bug fix: WinBoard window sizing and position setting save/restore did\r
++not work right when the taskbar was at the top (or left side) of the\r
++screen and not in autohide mode.\r
++\r
++* Merged xboard click/click mode and drag mode, and deleted\r
++ClickClickMoving option on menu.  Now if you click on a piece, it\r
++highlights and a further click on another square will move it.  (A second\r
++click on the same square takes down the highlight.)  Or if you press down\r
++on a piece and start to drag, you can drag it to a new square.\r
++\r
++* When making click/click style moves, if your second click is on a piece\r
++of the same color, instead of saying "Illegal move", we now cancel the first\r
++starting square, replace it with the second, and wait for another click to\r
++finish the move.\r
++\r
++* Separate -secondInitString.  Default: same as -initString.  Suggested by\r
++Remi Coulom.\r
++\r
++* Patch from Frank McIngvale to make animation work with XIMs.  Yay!\r
++\r
++* Changed move animation to happen after move is passed on to ICS or the\r
++chess engine, where applicable.  Fixed problems with updating moveList\r
++that this uncovered.\r
++\r
++* Changed game list to show PGN result token for each game.\r
++\r
++* The usual minor bug fixes.\r
++\r
++3.6.4 -- Thu Apr 30 23:14:43 PDT 1998  Tim Mann\r
++\r
++xboard and WinBoard beta test release.\r
++\r
++* xboard documentation updated, both man page and info file.  An attempt\r
++to generate both from the same source with LinuxDocSGML was abandoned, at\r
++least for now.  WinBoard doc updated too.\r
++\r
++* Merged updates to animation code from Hugh.  Fixed a couple of remaining\r
++bugs, mostly to do with handling Pause mode correctly.\r
++\r
++* Added SaveSettingsOnExit to WinBoard.\r
++\r
++* WinBoard now saves the last screen position of the Comment, Edit Tags,\r
++Game List, and Analysis windows (in addition to the board and ICS\r
++Interaction windows) in WinBoard.ini.\r
++\r
++* WinBoard now provides a way to customize the right-button context menu\r
++in the output area of the ICS Interaction window.  For now, requires\r
++editing WinBoard.ini with a text editor.  \r
++\r
++* Various minor fixes to ICS message recognition, most affecting only Zippy.\r
++\r
++* Colorize the notification when someone sends you a message while you are\r
++logged in, not the output of the "messages" command.\r
++\r
++* Fixed colorization to turn off at the right place more reliably.\r
++\r
++* Added a new color and WinBoard sound for "requests": abort, adjourn,\r
++draw, pause, and takeback.  The same color and sound are used for all of\r
++these.\r
++\r
++* Added GUI to change sounds in WinBoard.\r
++\r
++* Suppressed WinBoard error popup when a sound can't be played.  They were\r
++popping up when two separate WinBoards tried to play a sound at the same\r
++time (such as during a bughouse match).\r
++\r
++* Fixed WinBoard crash when a sound file didn't exist.\r
++\r
++* WinBoard ports of timestamp and timeseal now produce decent error\r
++messages if they fail to connect, and WinBoard captures the messages and\r
++puts them into a popup.  Previously WinBoard would exit with no message on\r
++such errors.\r
++\r
++* WinBoard resizing with mouse improved; now accurately picks the largest\r
++size that fits in the new area.\r
++\r
++* Added option to turn off error message popups.\r
++\r
++* Added sizes slim, dinky, and teeny.\r
++\r
++* Fixed some minor problems with error message wording.\r
++\r
++3.6.3 -- Mon Feb 23 19:08:57 PST 1998  Tim Mann\r
++\r
++xboard beta test release only.  Man page is updated for the changes, but info\r
++file is not.\r
++\r
++* Bug fix: LoadGame could not load a PGN game whose first move was\r
++castling (which is possible from setup positions).\r
++\r
++* Bug fix: we were ignoring illegal move messages from chess engines in\r
++modes where the engine is refereeing but not participating (EditGame,\r
++LoadGame, AnalyzeFile).  The problem was in a workaround for a Crafty bug,\r
++where Crafty generates a bogus illegal move message if a "." (used by\r
++the PeriodicUpdates feature) is sent in analysis mode when the current\r
++analysis reveals a forced mate.  Installed a different workaround (that\r
++works in most but not all cases) and reported the Crafty bug.  Bob Hyatt\r
++replied with a fix, so the Crafty bug should be gone in Crafty 14.12 or so.\r
++\r
++* WinBoard only: enabled resizing board with the mouse.  It snaps to the\r
++nearest (but not too much larger) predefined size.\r
++\r
++* The xboard default font is now sized according to piece size, just as\r
++clockFont and coordFont have always been.\r
++\r
++* Added more sizes: bulky, moderate, average, middling, mediocre, petite.\r
++      \r
++* xboard only: Added Animate Moves and Click-Click Moving to Options menu.  \r
++\r
++* xboard only: Added code to animate piece movement, from Hugh Fisher.\r
++\r
++* New feature: autoflag is implemented in MachineWhite, MachineBlack, and\r
++TwoMachines modes.  If it is on and either a chess program or the user\r
++oversteps his time, xboard will automatically call the flag and end the\r
++game.  This feature was requested by someone who runs matches between\r
++programs and wants to penalize GNU Chess for its habit of running slightly\r
++over at the end of a time control.  I personally think it's pointless.\r
++\r
++* Fixed a bug in Zippy's pattern matching; he can now reply to ICC\r
++messages again.\r
++\r
++* Generate prettier notation for illegal moves.  If a move is illegal only\r
++because it leaves the player in check, generate notation as if that were\r
++not illegal.  For instance, if two knights are a knight's move away from\r
++f3, one on g1 and one on e5 that is pinned, the notation would be Nf3 to\r
++move the g1 knight, Nef3 to move the e5 knight.  (Suggested by Philippe\r
++Schnoebelen.)  In addition, if a move is illegal because the type of piece\r
++moved cannot go that way, would be jumping over another piece, etc., we\r
++give fully disambiguated coordinate notation; for example, Ng1g3, Ke1xe8,\r
++d2xd8=Q, etc.  An alternative would be to still write Ng3 if there is only\r
++one knight on the board, or Ngg3 if the other knight is not on the g file,\r
++but life is too short to code up all this stuff, and perhaps the way I did\r
++it is better as it emphasizes that this move was really made despite being\r
++illegal.  I wonder if the new PGN standard revision will speak to notation\r
++of illegal moves?\r
++\r
++* Fixed gross bug from 3.6.2: if a chess program said "checkmate" and\r
++White was left on move, the PGN outcome was "1-0 {Black mates}" instead\r
++of "0-1 {Black mates}"!  The bug occurred only for that specific string.\r
++\r
++3.6.2 -- Wed Jul 23 16:47:29 PDT 1997  Tim Mann\r
++\r
++* There was a bug in backing up from the end of a game against a chess\r
++engine, introduced when -reuse mode was added.  Fixed.\r
++\r
++* Recognize "{" as terminating an ICS move list.  Previously we needed to\r
++see a prompt (containing %), but occasionally ICC can send more stuff\r
++right after a move list with no prompt in between.\r
++\r
++* In WinBoard, -mm now implies -cp, so you don't get the startup dialog.\r
++\r
++* WinBoard startup dialog no longer sets -scp.  People used to get\r
++confused because they would give the -fcp and -scp arguments, but omit\r
++-cp.  This would bring up the startup dialog, which would set both -fcp\r
++and -scp to the value in the engine name box.  Now you can change -scp\r
++only with the command-line argument.  That will confuse some people too,\r
++but hopefully fewer.  I think overall it's better than putting spaces for\r
++both -fcp and -scp in the dialog, which would puzzle newbies.\r
++\r
++* Bug fix: Analyze File mode now works in WinBoard.\r
++\r
++* Bug fix: WinBoard window no longer cuts off part of the bottom row if\r
++the menu bar wraps to a second line.\r
++\r
++* Accept game end messages of the form "PGN-result {comment}" from the\r
++chess engine, where PGN-result is 0-1, 1-0, or 1/2-1/2.  Accept "resign"\r
++or "computer resigns" from the chess engine as a synonym for "0-1 {White\r
++resigns}" or "1-0 {Black resigns}". Accept any message from the chess\r
++engine containing "game is a draw" as a synonym for "1/2-1/2 {Draw}".\r
++Accept "White resigns" or "Black resigns".\r
++\r
++* Enable "Action / Draw" menu item in chess engine mode.  It sends the\r
++command "draw" to the engine.  Accept any message from the chess engine\r
++containing "offers a draw" as a draw offer.  WARNING: Draw offers from the\r
++user and the engine (or from two engines) are not yet matched up by xboard\r
++in chess engine mode.  Two engines could get into a loop offering each\r
++other draws.\r
++\r
++* Bug fix: Game end messages from the chess engine are always ignored in\r
++Zippy mode.  Previously they could sometimes be processed, which was\r
++sometimes making Zippy hang at the start of a new game that followed\r
++quickly after an old one.\r
++\r
++* Zippy can now respond to titled players in channels.  Zippy will avoid\r
++talking to himself in a channel if he knows his own name.\r
++\r
++* Bug fix: in colorization arguments, the bold setting was being ignored\r
++if the background color was defaulted.  (xboard only.)\r
++\r
++* Extended ParseFEN to accept Crafty 12.2's interpretation of FEN.\r
++If fewer than 8 squares are given in a row, or fewer than 8 rows are\r
++given, the uncovered squares are empty.  Also, there can be a / after the\r
++8th row.\r
++\r
++3.6.1 -- Sat May 17 01:02:33 PDT 1997  Tim Mann\r
++\r
++* Bug fix: Hitting escape while entering a password on WinBoard no longer\r
++sets the font color back to black (which made further typing visible).\r
++\r
++* Bug fix: On Windows NT 4.0, WinBoard /ics /icshelper=timestamp would\r
++often hang if you tried to exit with the Exit menu item, the [X] button,\r
++etc.  The same fix may also have corrected the problem where running a\r
++chess program with /xreuse would sometimes crash Windows 95 (but not NT)\r
++when the chess program was killed and quickly restarted.\r
++\r
++* Bug fix: Periodic Updates would not work if turned on after having been\r
++off.  Also, the default was needlessly "off" in WinBoard.\r
++\r
++* Zippy bug fix: Continuing an adjourned game was totally broken.  The\r
++wrong moves, or no moves at all, were being fed to the chess program.\r
++\r
++* WinBoard change: Giving -ics without -icshost now pops up the startup\r
++dialog with "Use an Internet Chess Server" pre-selected, so that you get a\r
++menu of chess servers instead of going directly to ICC.\r
++\r
++* Bug fix: WinBoard's SaveSettings was saving -icshost, -icsport, and\r
++-icshelper in winboard.ini.  This causes a problem if you use a different\r
++icshost later that needs the default values for icsport (5000) and\r
++icshelper ("", meaning none).\r
++\r
++* Disabled complaints about unexpected "[Ii]llegal move" messages from\r
++the chess program; we still get them at times.\r
++\r
++* Greatly simplified the code for Move Now and SIGINT (ATTENTION).  Fixes\r
++the bug where Move Now did not work with GNU Chess in WinBoard, and\r
++several more obscure bugs as well.  Reintroduces a minor bug: GNU Chess might\r
++not think on your time after a Move Now command.  Trying to fix this\r
++causes too many other problems.  Documented change in engine-intf.txt.\r
++\r
++* Cleaned up code for obtaining ratings from ICS.  It was kludgey and may\r
++have had bugs on systems with no "Creating:" message.  It should fail\r
++gracefully there, just not finding the ratings.\r
++\r
++3.6.0 -- Thu May  8 19:55:58 PDT 1997  Tim Mann\r
++\r
++* WinBoard now has right-button context menus in the ICS Interaction\r
++window.  Some of the items do immediate commands on the player name you\r
++have selected or pointed to.  (Suggested by Paolo Casaschi.)  Also, the\r
++middle button or shift+right does a immediate Copy and Paste.\r
++\r
++* Fixed a bug in Zippy's wild rejection.  The bug was causing Zippy to\r
++reject all forms of wild.  Now it rejects only 1, 9, 16, 17, and 24, as\r
++was intended.  These variants have different rules, while the other\r
++variants defined so far only have different starting positions.\r
++(Actually, wild 2, 3, and 4 never allow castling, but may sometimes by\r
++chance have king and rook start on squares where castling appears legal.\r
++This could cause a problem later.)\r
++\r
++* Zippy now resumes adjourned games by feeding the chess program \r
++the move list instead of the position.  Setting -getMoveList to False \r
++restores the old behavior.  Feeding in the move list is better because \r
++it enables the chess program to correctly handle en passant legality, \r
++castling legality, draw by repetition, and draw by the 50 move rule. \r
++\r
++* Added a WinBoard startup dialog for people who run WinBoard.exe without\r
++using the Start menu or reading the help file.  Instead of being dumped\r
++directly into GNU Chess mode, you now get a menu of choices.  You now have\r
++to give the new WinBoard -cp option to go directly into chess engine mode.\r
++I did not add this feature to xboard.\r
++\r
++* Handling of "illegal move" from Crafty is now back on.  (It was turned\r
++off in 3.4.6; see below.)  Crafty 12.0 doesn't seem to send bogus ones\r
++anymore.  I did have to suppress sending time and otim in analyze mode to\r
++make this work, but there is no harm in that.\r
++\r
++* Zippy now sends "gameend" to ICS at the end of each game.  You can alias\r
++this to "seek" or whatever you like.\r
++\r
++* Added Crafty support for Move Now, using the "?" command.  We test\r
++whether this command exists by trying it once at the start of the first\r
++game, before it really makes sense.  If we don't get a message like\r
++"Illegal move ... ?", we assume it's OK.  (We're careful about this\r
++because sending a "?" to GNU Chess on Move Now keeps it from pondering the\r
++next move as it should.)\r
++\r
++* Added support for a tellusererror command from the chess engine.  See\r
++engine-intf.txt.\r
++\r
++* Attempted to make engine-intf.txt complete.\r
++\r
++* Minor fixes/cleanup to GameEnds code, to be sure we always interrupt\r
++when needed, and always undo an extra move generated by stopping the chess\r
++program while it is thinking.\r
++\r
++3.5.7 -- Sat May 03 22:37:44 PDT 1997  Tim Mann\r
++\r
++Beta release of both xboard and WinBoard.\r
++\r
++* Updated xboard documentation.  I really wish the man page was built from\r
++the info file instead of being separate!  It's a pain to update them both.\r
++\r
++* Updated documentation of the interface between XBoard/WinBoard and chess\r
++programs, and renamed it to engine-intf.txt.\r
++\r
++* Added support for tellics, telluser, and askuser commands from the chess\r
++engine.  See engine-intf.txt.\r
++\r
++* Various bug fixes.  On WinBoard, 256 color displays are finally handled\r
++right; no more color flashing when you switch windows unless the colors\r
++really need to be updated.  Also, I think the problem of the console font\r
++failing to change or changing back by itself is finally fixed.\r
++\r
++3.5.6 -- Tue Apr 29 03:08:00 PDT 1997\r
++\r
++Beta release, WinBoard only.  ChangeLog was out of date in release,\r
++updated here.\r
++\r
++* Added ICC timestamp and FICS timeseal to WinBoard distribution.  These\r
++are my own ports to Win32, based on and used by permission of the owners\r
++of the proprietary source code (Daniel Sleator for timestamp, Henrik Gram\r
++for timeseal).  The owners permit these programs to be distributed only in\r
++binary form (to help prevent cheating), so to avoid running afoul of the\r
++GPL, I have kept them as separate programs, not linked into the WinBoard\r
++address space.  Updated Start menu icons to use them.\r
++\r
++* Miscellaneous smaller changes.\r
++\r
++3.5.5 -- Fri Apr 25 03:06:00 PDT 1997\r
++\r
++Beta release, WinBoard only.  ChangeLog was out of date in release;\r
++updated here.\r
++\r
++* Added simple sound support to WinBoard.\r
++\r
++* Updated WinBoard documentation.\r
++\r
++* Internal implementation of the telnet protocol is now more complete.\r
++You can now hop through a VMS host on the way to ICS.  For example, do\r
++"xboard -ics -icshost vms.host.edu -icsport 23", then log in.  Do not use\r
++the -telnet flag; that says to use an *external* telnet program.  To avoid\r
++double echoes, you need to force character mode in VMS telnet after\r
++connecting from VMS to ICS.  Do "^]^Mset mode char^M^M".\r
++\r
++* Display opponent names in the title bar for MachineWhite, MachineBlack,\r
++and TwoMachines modes.\r
++\r
++* WinBoard now has an installer, built with InstallShield.  The installer\r
++works with a binary-only distribution.  Sources are still freely\r
++available, but now separately.\r
++\r
++* Added SaveSettings to WinBoard, which saves current option settings to\r
++winboard.ini.  Made sure all options can be saved and loaded, including\r
++fonts and com port settings.\r
++\r
++* If the game ends while you are dragging a piece, we now don't let you\r
++finish the move.  Formerly the move was accepted and your opponent's clock\r
++would start running again.\r
++\r
++3.5.4 -- Fri Apr 18 01:15:24 PDT 1997  Tim Mann\r
++\r
++Beta test release of WinBoard and xboard.  The documentation remains\r
++out of date.\r
++\r
++* Many fixes and improvements to new WinBoard user interface code.\r
++\r
++* In Zippy mode, avoid sending another copy of the same move to the chess\r
++program if ICS sends us another copy of the board image.  Hard to believe\r
++it took me until now to diagnose and fix this problem!\r
++\r
++3.5.3 -- Sat Apr 12 19:49:33 PDT 1997  Tim Mann\r
++\r
++Beta test release of WinBoard and xboard.\r
++\r
++* Fixed fatal bug in WinBoard input handling.\r
++\r
++* Made code to stop chess program for reuse a bit smarter.  Removed kludge\r
++of "white" in initString; it didn't work well, and is unneeded\r
++with Crafty 11.21 and later.\r
++\r
++3.5.2 -- Sat Apr 12 15:40:01 PDT 1997  Tim Mann\r
++\r
++Beta test release of WinBoard.\r
++\r
++* Ignore check and permit promotion to King during suicide games; no need\r
++to turn off TestLegality.\r
++\r
++* Renamed CheckLegality to TestLegality to avoid confusion with the chess\r
++term "check".\r
++\r
++* Added Rematch to Action menu.\r
++\r
++* WinBoard now has a custom ICS interaction window with scrollback, a\r
++separate line for input, and colorization.  Accelerators that conflict\r
++with normal editing keys were changed (by requiring Alt+) so they can work\r
++in both the console and the main window.\r
++\r
++* WinBoard error popups are now non-modal and disappear when you make a\r
++new move, as in xboard.\r
++\r
++* Configure now defaults to --disable-ptys on all systems.  If anyone has\r
++an ancient SysV system where pipes don't work with select, they can still\r
++do "configure --enable-ptys" explicitly.  I would appreciate getting a bug\r
++report if this happens to anyone, with complete output from configure and\r
++"uname -a".\r
++\r
++* "make install" now makes the installation directories too.\r
++\r
++* Fixed a bug that would cause an "Illegal move" message for Black from\r
++GNU Chess to be incorrectly considered bogus.\r
++\r
++* Handle name changes during an ICS game (FICS bname and wname commands).\r
++\r
++* You can force both chess programs to be killed at the end of each game\r
++by turning off the reuseChessPrograms option.  There are still some\r
++problems with reusing Crafty even in version 11.20.\r
++\r
++* Now the second chess program stays around by default too, if it ever\r
++gets started.\r
++\r
++3.5.1 -- Sat Apr  5 16:47:48 PST 1997  Tim Mann\r
++\r
++Beta test release.\r
++\r
++* Don't kill off and restart the chess program for each game; keep the\r
++same one running, using the "new" command to start a new game.  This\r
++change works around the problem in Windows 95 that makes WinBoard crash it\r
++at times, and is generally desirable to make new games start faster.  The\r
++second chess program (for TwoMachines) is still killed at the end of the\r
++game, and unfortunately this can still crash Windows 95.  Temporarily\r
++added "white" to the initString to make this work with Crafty 11.20, which\r
++has a minor bug in "new".  Older versions of Crafty have worse bugs in\r
++"new"; they should not be used with this version of xboard.\r
++\r
++* Support for FICS suicide chess: Parse illegal moves (that leave King in\r
++check) in game history.  If CheckLegality is off, allow promotion to King\r
++and illegal moves in game files.  We still generate e2e4 style notation\r
++for illegal moves.\r
++\r
++* Handle FICS "has timeseal; checking" message.\r
++\r
++* Changed the coords from white back to black; this was a bug.\r
++\r
++* Fixed problems compiling with K&R compilers.\r
++\r
++* Fixed an old bug in RegisterMove that was crashing cmail on some systems\r
++(notably linux).\r
++\r
++3.5.0 -- Thu Jan  2 16:59:49 PST 1997  Tim Mann\r
++\r
++Thanks to Frank McIngvale for much of the work on versions 3.4.4 and above!\r
++\r
++* Fix Crafty resumed game time bug (frankm)\r
++\r
++* Word wrap text in Analysis window (frankm)\r
++\r
++* More debug info for XPM loading (frankm)\r
++\r
++* Replaced config.sub, config.guess, etc., with up-to-date versions from\r
++autoconf 2.12.  Hopefully this will fix problems on Pentium Pro machines.\r
++\r
++* Removed some Makefile gunk that was causing looping for one person.\r
++\r
++3.4.7 -- Thu Dec 19 14:22:41 PST 1996  Tim Mann\r
++\r
++All changes from Frank:\r
++\r
++* Retrieve ratings from ICC (and FICS, etc., when they add the Creating:\r
++message), save them in the PGN tags, and pass them to Crafty in Zippy mode.\r
++\r
++* Add settable time delay between characters in ICS login script.\r
++\r
++* Colorize messages like personal tells.  Fix false recognition of channel\r
++tells.\r
++\r
++* Pass "tells" from Crafty through to ICS (in Zippy mode).\r
++\r
++* Implement ~/ filename convention from C shell for game and position file\r
++names.\r
++\r
++* ZIPPYACCEPTONLY feature for testing.\r
++\r
++3.4, patchlevel 6 -- Sat Nov 23 16:58:50 PST 1996  Tim Mann\r
++\r
++* Put recognition of "illegal move" messages from Crafty for\r
++illegal castling, etc., inside an #if that is currently turned off,\r
++because of a bug in Crafty that generates bogus "illegal move" messages\r
++after some moves that are actually legal and accepted by Crafty.\r
++\r
++* Added -checkLegality option; previously this could not be turned off.\r
++\r
++* Fixed an old bug in finding default board size parameters.\r
++\r
++* Differentiated among channel tell, kibitz/whisper, and personal tell/say.\r
++\r
++* Fixed a bug in detecting Xpm in the configure script.\r
++\r
++3.4, patchlevel 5 -- Mon Nov 18 16:22:53 PST 1996  Tim Mann\r
++\r
++* Added zic2xpm to the kit; it had been omitted by mistake.\r
++\r
++* Added some default colors for -colorize\r
++\r
++3.4, patchlevel 4 -- Sat Nov 16 18:10:17 PST 1996  Tim Mann\r
++\r
++This is meant to be a beta release in preparation for version 3.5.\r
++\r
++* Added InfoXBoard and ManXBoard to the Help menu.\r
++\r
++* Made Frank's ICS input box optional, defaulting to off.\r
++\r
++* Merged in Frank McIngvale's XbKit.  Many new features, including\r
++-clickClick mode, the Analysis modes, piece flashing, ZIICS import,\r
++ICS text colorization, and the ICS input box.  Many thanks to Frank for\r
++supplying and documenting this code.\r
++\r
++3.4, patchlevel 3 -- Mon Nov 11 18:23:14 PST 1996  Tim Mann\r
++\r
++Small set of changes made while Frank McIngvale was working on XbKit in\r
++parallel.  Unreleased in this form.\r
++\r
++* Updated zippy.README.\r
++\r
++* Removed useless X event handler and removed strange code for copying\r
++form translation table to board that worked around the bug it caused.\r
++This makes changing bindings in .Xdefaults more straightforward.\r
++\r
++* Now pressing the Control key steps back one move, and releasing it steps\r
++forward again.\r
++\r
++* Moved quit from "q" to "Q" for greater safety.\r
++\r
++* Use "unobserve" instead of "observe" to stop observing; needed on FICS.\r
++\r
++* Support for interface variable.\r
++\r
++* Strip titles from people who are talking to us, so (for example) Zippy\r
++won't try things like "tell Darooha(*) hello".  Needed on FICS.\r
++\r
++3.4, patchlevel 2 -- Tue Jul  9 19:06:42 PDT 1996  Tim Mann\r
++\r
++This patchlevel is not planned to be an announced release.  It's in\r
++preparation for integrating Frank McIngvale's XbKit.  It mostly contains\r
++minor fixes I've accumulated since 3.4.pl1.\r
++\r
++* WinBoard /telnet option now fires up an external program, as\r
++with xboard, instead of trying to use a feature of NT 3.1 that does not\r
++exist in later versions of NT or in Windows 95.  ChangeLog for 3.4.pl1\r
++said this had been implemented there, but it really wasn't.\r
++\r
++* Indicating player to move by the icon color now works under Windows 95.\r
++\r
++* WinBoard now kills the chess program when you exit using the system menu\r
++or the [X] button.  Thanks to Michael Lowe.\r
++\r
++* Minor changes to Zippy, including: Now understands wild challenges on\r
++FICS; these used to crash it.  Removed limit on how fast a game will be\r
++accepted.  Use "set formula ..." on the chess server to limit this if you\r
++are using GNU Chess.  Now sends correct opponent name to Crafty.\r
++\r
++* Added some missing default values to documentation.  Thanks to Stuart\r
++Cracraft.\r
++\r
++* Bugfix: Trying to print "No fonts match pattern" error message would\r
++crash.  This can happen to Linux users who don't install Helvetica, for\r
++example. \r
++\r
++* Bugfix: Defaulting feature in -size n,n,n,n,n,n would put us in an\r
++infinite loop.\r
++\r
++* Added more directories to search for Athena widgets on HPUX.\r
++\r
++* New cmail (3.12) from Evan Welsh; includes small fix from Kayvan Sylvan.\r
++\r
++* Recognize "illegal move" messages from Crafty for illegal castling, etc.\r
++\r
++* Bugfix: "name" command added to zippy.c for Crafty was producing error\r
++message if GNU Chess was in use.\r
++\r
++* In bughouse mode, suppress holding messages from console window; show\r
++holdings only in banner.\r
++\r
++* Minor fixes/cleanup to Makefile.in and configure.in.\r
++\r
++3.4, patchlevel 1 -- Mon Dec 11 13:43:12 PST 1995  Tim Mann\r
++\r
++* This patchlevel updates WinBoard to match xboard, and includes a few\r
++fixes and minor improvements.  "-size tiny" and "-size n,n,n,n,n,n"\r
++are still not implemented for WinBoard.\r
++\r
++* Installed support for Crafty based on code from Bob Hyatt.\r
++Currently the only documentation for this is in the FAQ, and a few\r
++things don't work with Crafty 8.23.  Please do not report these\r
++problems as bugs in either xboard or Crafty.  Bob and I know about\r
++them.  The worst ones (if not all of them) should be fixed in Crafty\r
++8.24.\r
++\r
++* Changed the kludge command we send when gnuchess wants to print\r
++something that doesn't end with a newline, from "help" to "bogus".\r
++This works because the error message gnuchess prints ends with a\r
++newline.  It also improves compatibility with Crafty, which doesn't\r
++need the kludge, but for which sending "help" causes a problem.\r
++\r
++* Don't draw grid at all if lineGap is 0; previously we drew the grid\r
++with X "0-width" lines (usually 1 pixel wide) and then overwrote it.\r
++\r
++* Makefile: Removed xboard.info from "all" target so we won't try to\r
++rebuild it, because this fails on hosts that don't have makeinfo\r
++installed.  Other minor fixes to "clean" targets, etc.\r
++\r
++* Fixes and cleanup to Auto Comment code that handles continuation\r
++lines and highlighting.\r
++\r
++* Auto Observe now tries to observe the game from the point of view of\r
++the player who was on your gnotify list.  Requested by rng.\r
++Limitations: We can't tell which player it was unless you have ICS\r
++highlighting turned on.  Also, currently "observe foo" works as\r
++required (observing from foo's point of view) only on ICC, but FICS\r
++will probably implement this soon.\r
++\r
++* "-size tiny" now makes the default font smaller automatically.  This\r
++was implemented by introducing an extra Form widget in the hierarchy\r
++for all xboard windows, named either normalLayout, smallLayout, or\r
++tinyLayout.  So you can have resource specifications that apply only\r
++to certain layouts; in particular, XBoard*tinyLayout*font.\r
++\r
++* Bug fix: EditGame or EditPosition while playing or examining still was\r
++not really being permitted.\r
++\r
++* WinBoard bug fix: On the EditPosition menu, King did not work.\r
++\r
++* Added text catalog of WinSock error messages to WinBoard, because\r
++Microsoft still has not put them in the system message catalog.\r
++\r
++* Removed support for older ICS game-ending messages that do not have\r
++a PGN result token (*, 0-1, 1-0, or 1/2-1/2) after the closing '}'.\r
++The code for older messages was sometimes firing on the newer\r
++messages, due to parsing ambiguity.  If the current code sees an old\r
++message, it will understand that the game is over, but will always\r
++display * as a result token instead of trying to guess the result by\r
++interpreting the text message.\r
++\r
++3.4, patchlevel 0 -- Tue Nov 21 01:02:50 PST 1995  Tim Mann\r
++\r
++* This patchlevel was released for xboard only.\r
++\r
++* Updated the info file.  It should now be as up-to-date as the man page,\r
++with good English except in the parts that pertain only to AmyBoard.\r
++\r
++* Added "-size tiny", requested by Bob Hyatt.  Also cleaned up bitmap\r
++support and added "-size n,n,n,n,n,n" to allow arbitrary-sized bitmaps,\r
++if the actual bitmaps are supplied by the user.\r
++\r
++* Updated bughouse support.\r
++\r
++3.3, patchlevel 4 -- Sat Nov 18 02:27:21 PST 1995  Tim Mann\r
++\r
++* Unreleased beta that works with preliminary FICS bughouse code.  Will\r
++need changes before release to track FICS message changes.\r
++\r
++* Removed use of .EX macro from man page.  It is not supported by some\r
++nroff -man macro packages, notably the one on Slackware Linux.  Switched\r
++to boldface for references to xboard and other commands within the man\r
++page, as this seems to be the modern way.\r
++\r
++* Bug fix: If ICS rejected a move, it was correctly undone on the board,\r
++but the message widget still displayed the bad move.  Reported by DAV.\r
++\r
++* Normally, xboard in ICS mode fetches the move list whenever the board\r
++display switches to a new game.  Doing this is now an option\r
++(getMoveList) that can be turned off, which is useful if you are watching\r
++multiple blitz games.  Requested by rng.\r
++\r
++* Move list fetching code is now smarter: it ignores a move list if it is\r
++not for the right game.\r
++\r
++* Added support for bughouse as implemented on FICS.  Holdings are shown\r
++in the window title in place of the strength numbers.  A menu on mouse\r
++buttons 2 and 3 (same on both) lets you drop pieces.  There is no checking\r
++as to whether you actually hold the piece you are trying to drop; we rely\r
++on ICS to check that.  Notation of the form P@f7 is generated and parsed.\r
++The mate detector does not understand that non-contact mate is not really\r
++mate in bughouse, but this does no real harm.  It results in a "#"\r
++suffix being displayed on the move notation, but xboard does not assume the\r
++game is over.\r
++\r
++* Bug fix: Promotion to a knight was not working with ICC!  Thanks to\r
++Wendigo for the report.\r
++\r
++* Bug fix: Special pty code for host types *-*-aix3* and *-*-irix3*\r
++(supplied from configure.in) had a bug that would cause childio.c to\r
++fail to compile, due to a "continue" that was not within a loop.\r
++\r
++* Bug fix: In pgntags.c, memory was being freed while still in use.  One\r
++symptom this caused was that on some machines, cmail would fail with a\r
++message that it could not find the BlackNA tag.  The error was in some\r
++submitted code that I included in version 3.2.pl3 without reading\r
++carefully enough.  Anders Forberg noticed the symptoms, and Evan Welsh\r
++(who had nothing to do with causing the bug) found the bug and submitted a\r
++fix; thanks to them both.\r
++\r
++* Removed restriction against using EditGame while playing, observing,\r
++or examining on ICS.  You still get a warning popup.\r
++\r
++3.3, patchlevel 3 -- Sat Sep 16 11:44:05 PDT 1995  Tim Mann\r
++\r
++* Bug fix: Going directly from MachineWhite to TwoMachines mode would kill\r
++off the second chess program after Black's first move.\r
++\r
++* Added -timeIncrement feature.  Thanks to Joel Rivat.\r
++\r
++* Deleted code that tries to keep you from observing more than one game,\r
++or observing while playing or examining.  There is actually no problem in\r
++doing this, except that every time an update comes in from a different\r
++game than is currently being displayed, xboard fetches the history of the\r
++new game, which may be time-consuming if you are on a slow link.\r
++\r
++* Fixed configure so as not to crash when neither lex nor flex is found.\r
++lex or flex is needed only if the user wants to rebuild parser.c.  Thanks\r
++to Phil Humpherys for reporting the crash.\r
++\r
++* Bug fix: config.h.in used #define instead of #undef for some macros used\r
++in the pty code in childio.c.  This causes the code to fail to compile on\r
++some architectures, because the symbols are supposed to be undefined, not\r
++defined to empty, when they are not set in configure.  Bug originated in\r
++3.3.pl0 when config.h was introduced.  Thanks to Phil Humpherys for report.\r
++\r
++* Bug fix: ShowThinking would not show anything when current position had\r
++no move to display in the move window.  E.g., if position was created by\r
++LoadPosition or EditPosition.\r
++\r
++3.3, patchlevel 2 -- Mon Aug 28 11:11:11 PDT 1995  Tim Mann\r
++\r
++* Zippy code was omitted from xboard-3.3.pl1 by mistake; now included.\r
++\r
++* For WinBoard, added hint to help file that you may need to turn off\r
++LocalLineEditing while typing dialing commands to your modem.\r
++\r
++3.3, patchlevel 1 -- Sat Aug 19 15:13:30 PDT 1995  Tim Mann\r
++\r
++* Zippy distribution is no longer separate from regular xboard distribution.\r
++\r
++* Deal properly with Show Thinking output from GNU Chess when it is\r
++thinking on its opponent's time.  In TwoMachines mode this output is\r
++suppressed to avoid interfering with the output from the machine that is\r
++on move; in other modes it is displayed (including the move that GNU Chess\r
++is predicting the user will make next).  GNU Chess produces this output\r
++only if it is built without -DQUIETBACKGROUND defined; this symbol is\r
++defined by default in patchlevels before pl75, but undefined by default in\r
++pl75.\r
++\r
++* Bug fix: Handling of initial board position in move list for wild games\r
++was broken, so wild games could not be observed and adjourned wild games\r
++could not be continued.  Thanks to "Maximum Entropy" for the bug report.\r
++\r
++* Added feature: algebraic notation now shows "+" indicator for check\r
++and "#" for checkmate, as called for in PGN standard.  Thanks to Kevin\r
++Maher for the suggestion.\r
++\r
++3.3, patchlevel 0 -- Thu Jul 27 22:21:07 PDT 1995  Tim Mann\r
++\r
++* Changed configuration to use a config.h file instead of passing zillions\r
++of -D options on the cc command line.\r
++\r
++* Merged a small fix and some updates to the texinfo file from Jochen\r
++Wiedmann.  The texinfo file still needs work.\r
++\r
++3.2, patchlevel 5 -- Tue Jul 18 20:29:39 PDT 1995  Tim Mann\r
++\r
++* Beta test release of xboard only.\r
++\r
++* Updated WinBoard code to include new xboard features.\r
++\r
++* Added texinfo file from Jochen Wiedmann to the release, but not as the\r
++primary documentation.  It needs updating, and the English needs work.\r
++I did make a few improvements, mostly to change incorrect uses of @var to\r
++either @samp or @code as appropriate.\r
++\r
++* Merged in code changes to 3.2.pl4beta from Jochen Wiedmann.\r
++\r
++* Fixed EditComment; did not pop up window in previous beta.\r
++\r
++* Added AutoComment feature.\r
++\r
++* Added GameListDestroy to disable the outdated game list popup in cases\r
++where we load a new game file without building a new popup.\r
++\r
++* Added yyskipmoves feature to parser.l to speed up building of gamelist.\r
++\r
++* gamelist.c wouldn't compile with a non-ANSI compiler.  Fixed.\r
++\r
++* Change to yy_text handling in patchlevel 3 still had problems.  Can't\r
++use AC_DECL_YYTEXT in configure.in, because that defines YYTEXT_POINTER\r
++according to whether the lexer on the current host makes yytext a pointer.\r
++But most people will be using a parser.c that was generated on another\r
++host and shipped with the package.\r
++\r
++3.2, patchlevel 4 -- Sun Jun 25 19:13:43 PDT 1995  Tim Mann\r
++\r
++* Beta test release of xboard only.  \r
++\r
++* Added FIREWALLS section to man page.\r
++\r
++* Changed -icsport to be a string.  Now with the -telnet option,\r
++specifying -icsport "" suppresses the second argument to telnet.\r
++\r
++* Added EditTags feature.  Removed AboutGame from menu, because EditTags\r
++subsumes it.  EditTags suggested by Jochen Wiedmann and first implemented by\r
++him in AmyBoard.  xboard implementation is my own.\r
++\r
++* Fixed some missing or incorrect prototypes.\r
++\r
++3.2, patchlevel 3 -- Sat Jun  3 18:57:38 1995  Tim Mann \r
++\r
++* Beta test release of xboard only.  \r
++\r
++* New version of cmail from Evan Welsh, to fix compatibility problems with\r
++perl 5.0.\r
++\r
++* Added game list feature on Load Game, based on code from Jochen\r
++Wiedmann.  Integrated it with cmail.\r
++\r
++* Several bug fixes from Jochen Wiedmann, including one to my yy_text\r
++workaround for the difference in the type of yytext between lex and flex.\r
++\r
++* Handle clock pause on FICS.\r
++\r
++* Suppress clocks in untimed FICS games (time control 0 0).\r
++\r
++* Rebuilt configure script with autoconf 2.3.  This fixes a bug in\r
++configuring for X11R6, where -lSM -lICE would not be added when needed.\r
++\r
++* Fixed inconsistent type declarations on IntSigHandler and\r
++CmailSigHandler.  Bug report from Josh Daynard.\r
++\r
++* backend.c wouldn't compile with a non-ANSI compiler.  Fixed.\r
++\r
++3.2, patchlevel 2 -- Tue Feb  7 14:50:30 1995  Tim Mann \r
++\r
++* Minor release of both xboard and WinBoard.\r
++\r
++* Added recognition of some FICS messages.  On the other hand FICS is also\r
++changing some of its messages to match what xboard already recognizes.\r
++\r
++* Temporarily went back to using "promote" command on ICS instead of\r
++"a7a8=Q", because FICS doesn't implement the latter yet.\r
++\r
++* We now avoid using overlapped I/O on pipes in WinBoard, to make Windows\r
++95 beta 2 happy.  This lets WinBoard work with GNU Chess on Windows 95!\r
++\r
++* Installed patches from Jochen Wiedmann to coordinate with Amiga XBoard.\r
++\r
++* Installed patch to cmail bug in LoadGame from Evan Welsh.\r
++\r
++* Bugfix: checkmate and stalemate moves entered with EditGame in ICS mode\r
++were not being handled correctly.  Bug was in GameEnds().\r
++\r
++* Implemented EchoOn and EchoOff for xboard, using system("stty echo\n").\r
++Now passwords won't be echoed when you connect directly to ICS.  Also,\r
++telnet negotiation characters aren't displayed (when possible).\r
++\r
++* Implemented more of the telnet protocol.  Now connecting to a telnet\r
++server with "-icsport 23" should work even without giving the -telnet\r
++option.  The telnet is in "old line-by-line mode".\r
++\r
++3.2, patchlevel 1 -- Sat Dec 10 13:50:46 1994  Tim Mann \r
++\r
++* This patchlevel released for WinBoard only.\r
++\r
++* winboard.c: Fixed ConsoleInputThread().  Needed to change CRLF to LF,\r
++not to CR.  This was stopping normal /ics mode from working.  Thanks to\r
++Asher Kobin for the bug report.\r
++\r
++* winboard.c: Fixed Raw(), EchoOn(), EchoOff().  Now they take effect\r
++immediately, not on the next console read after the one in progress.\r
++\r
++* winboard.c: Attempted to make WinBoard work with gnuchessx running\r
++directly on Windows (not remotely via rsh).  It now works on NT, but only\r
++if gnuchess is told not to think on its opponent's time ("easy\n" removed\r
++from initString).  The problem seems to be that GenerateConsoleCtrlEvent\r
++is not doing anything.  On Windows 95 beta 2, we get error messages on\r
++both reading and writing to gnuchessx; I didn't investigate why.\r
++\r
++3.2, patchlevel 0 -- Wed Dec  7 13:23:36 1994  Tim Mann \r
++\r
++* Thanks to all the beta testers who gave me feedback: Josef Nelissen,\r
++Steve Booth, Evan Welsh, Dima Dakhnovsky, Chris Petroff, Peter Jansen,\r
++Derek Terveer, Michel van der List, Richard Lloyd, Shelly Mistry, and Mike\r
++Lee.  Sorry if I forgot anyone.  Thanks to Virendra Kumar Mehta for\r
++information about DYNIX/ptx.\r
++\r
++* Don't exit on keyboard EOF unless we get two in a row.\r
++\r
++* WinBoard only: added -localLineEdit switch to allow turning off local\r
++line editing if you really want to.  It is still a bad idea to let the\r
++echoing be done remotely, however; see below.\r
++\r
++* Fixed some configure problems on HP-UX.  [Steve Booth]\r
++\r
++* Fixed (I hope) configure problem on SunOS 5.3/Solaris 2.3.  [Josef Nelissen]\r
++\r
++* cmail bugfix from Evan Welsh (cmail 3.4).\r
++\r
++3.1, patchlevel 9 -- Fri Dec  2 23:54:56 1994  Tim Mann \r
++\r
++* Beta distribution only\r
++\r
++* Always do local echo/edit of user typing in ICS mode.  Doing the echo\r
++downstream may seem nicer in some modes, and it can be hard to turn that\r
++echo off, but the echoed characters can be interleaved with ICS output\r
++and make it impossible to parse correctly.  For xboard this involved only\r
++a change to recommendations in the man page, as Raw() isn't implemented.\r
++For WinBoard, removing Raw() made a real difference.  Added code in \r
++WinBoard to change /r/n back into /r on keyboard input, as we get the \r
++former when Raw() is not called.\r
++\r
++* Do not issue ICS "refresh" command after we start to observe a game\r
++unless we get to the next prompt without seeing a board image.  Newest\r
++version of ICS doesn't require this refresh, but old versions around still\r
++do.\r
++\r
++* cmail bugfix and small code cleanup in LoadGame, from Evan Welsh.\r
++\r
++* Added keyboard accelerators N/P for LoadNextGame/LoadPreviousGame.  Evan\r
++Welsh request.\r
++\r
++* Using "-" on the command line as a filename for loading (saving) games\r
++or positions specifies the standard input (standard output).  Alain Picard\r
++suggestion.\r
++\r
++* On WinBoard only, a command line option without a leading '-' or '/' is\r
++now taken as the value of -lgf.\r
++\r
++* Changed to not use stdin, stdout, stderr as initializers in backend.c;\r
++needed for GNU libc compatibility.  You also must build parser.c with flex\r
++(not lex) if you are using GNU libc, to avoid having the same problem\r
++there.\r
++\r
++* Changed WinBoard to avoid using "overlapped" input on the console.  It\r
++now seems to fully work on Windows 95 beta 2.\r
++\r
++* Improved comment popups on WinBoard.  Now newlines are handled properly,\r
++and the plain Comment popup window doesn't disappear and reappear when we\r
++step to a new move with a new comment.\r
++\r
++* Fixed bugs in detecting the absence of the time and otim commands.\r
++\r
++* Added built-in implementation of rcmd protocol to WinBoard.  Windows NT\r
++does not implement passing signals through rsh, and Windows 95 does not\r
++have rsh at all.\r
++\r
++* Added -remoteUser option.\r
++\r
++3.1, patchlevel 8 -- Mon Nov 28 15:26:07 1994  Tim Mann \r
++\r
++* Beta distribution only\r
++\r
++* Rearranged ChangeLog file into reverse chronological order to be closer\r
++to GNU standards.\r
++\r
++* Integrated new cmail code from Evan Welsh (including cmail RCS rev 3.2).\r
++Includes a bug fix to TruncateGame.\r
++\r
++* Updated ICS address to be chess.lm.com.\r
++\r
++* Bug fixes to handling the aftermath of FatalError.  Thanks to Chris\r
++Petroff for the bug report.\r
++\r
++* Test for remsh before rsh, other fixes for HP-UX.  Thanks to Richard\r
++Lloyd.  I wasn't able to do all the things he suggested, so there may\r
++still be some rough edges in building on HP-UX.  See the FAQ file for hints.\r
++\r
++* Bug fix; added missing check for HAVE_SYS_SYSTEMINFO.  Thanks to Josef\r
++Nelissen for testing on Solaris 2.x.\r
++\r
++* Updated WinBoard to match xboard.  (WinBoard still has a few option\r
++dialogs that don't exist in xboard.)\r
++\r
++* Changed Hint output to a popup.\r
++\r
++* ShowThinking output and move output no longer overwrite each other.\r
++ShowThinking output won't appear if the displayed position is not current. \r
++ShowThinking output in TwoMachines mode made clearer and documented.\r
++\r
++* Implemented --enable-ptys and --disable-ptys arguments to configure.\r
++\r
++* Fixed Book and Hint code to work over a pty with echo enabled and tabs\r
++expanded to spaces.  Thanks to Dima Dahknovsky for the bug report.\r
++\r
++* Moved Attention calls from all over xboard to one place, inside\r
++SendToProgram.\r
++\r
++* Added bulletproofing to ShowThinkingEvent.\r
++\r
++* Added code to handle "refresh N" boards that come in from ICS properly,\r
++assuming ICS is changed to mark them with a new relation code (-3).\r
++\r
++3.1, patchlevel 7 -- Sun Nov 13 22:16:01 PST 1994 -- Tim Mann\r
++\r
++* Beta distribution only\r
++\r
++* Changed ShowThinking to just show the current best line in the\r
++DisplayMessage area, instead of dumping everything to stdout.\r
++\r
++* Installed new cmail (RCS rev 3.1) and cmail.man (RCS rev 1.10), and\r
++changes to cmail code in backend.c, from Evan Welsh.\r
++\r
++* Miscellaneous minor fixes.\r
++\r
++3.1, patchlevel 6 -- Fri Nov  4 12:53:53 PST 1994 -- Tim Mann\r
++\r
++* This patchlevel was not actually released to anyone.\r
++\r
++* Updated the pty code to be based on GNU Emacs 19.24, and moved it to a\r
++separate file.  It was hard to split out just the pty configuration from\r
++all the stuff emacs does with its custom configure script and .h files,\r
++but I did my best.\r
++\r
++* Converted from imake to GNU autoconf.  This was a serious upheaval.  \r
++\r
++* Put in code to help trap "error gathering move list" problem reported by\r
++Michel van der List if it recurs.  I couldn't reproduce it.\r
++\r
++3.1, patchlevel 5 -- Mon Oct 31 21:12:00 PST 1994 -- Tim Mann\r
++\r
++* Beta distribution only.\r
++\r
++* We now test for checkmate or stalemate in EditGame mode after every user\r
++move, and in LoadGame mode whenever we hit the end of a game without\r
++seeing a PGN end marker.  cmail needs an update to deal with this\r
++correctly; Evan promises one.\r
++\r
++* Bugfixes in new move generator.  Thanks to Mike Lee for reporting one of\r
++the bugs.\r
++\r
++* Imakefile was omitted from patchlevel 4.\r
++\r
++3.1, patchlevel 4 -- Mon Sep 19 18:19:46 PDT 1994 -- Tim Mann\r
++\r
++* Beta distribution only.\r
++\r
++* The move generator includes a mate tester.  Initially this is used only\r
++by cmail, and even that usage needs further work.\r
++\r
++* Wrote a true move generator and used it to replace all the move\r
++disambiguation and legality checking code in parser.l.  The move generator\r
++is capable of dealing correctly with en passant and castling availability,\r
++but the rest of the program still does not keep track of this information.\r
++\r
++* Bug fix: xboard did not handle "foo has made you an examiner of game 23"\r
++message.  Thus you could not use examine features until the next board\r
++came in, showing your new relation to the game.  Thanks to POOKIEWOOKIE on ICS\r
++for the bug report.\r
++\r
++* Added AutoObserve feature.  Thanks to Chris Petroff for the idea.\r
++\r
++* Added Book feature to use new gnuchess "bk" command.  Mike McGann request.\r
++\r
++* Redid code to handle missing "time" command in gnuchess, because latest\r
++gnuchess no longer sends a response to this command.  \r
++\r
++* Eliminated need for -DFLEX.  Thanks to Michael Shields (Vladimir?) for\r
++the idea.\r
++\r
++* Added missing code to implement MoveNow in TwoMachines mode.\r
++\r
++* Added ShowThinking feature.  Thanks to Richard Lloyd for the idea.\r
++\r
++* Applied patches from Evan Welsh; some fixes and improvements to the\r
++cmail code.\r
++\r
++* Fixed bug in moving from EndOfGame mode to MachineWhite or MachineBlack,\r
++introduced in previous patchlevel.  Also fixed related bug in ending a\r
++game in ICS mode; was entering EndOfGame mode instead of IcsIdle.\r
++\r
++* Added patch to implement internetChessServerLogonScript flag, from Kevin\r
++O'Connor.  Thanks!\r
++\r
++3.1, patchlevel 3 -- Wed Sep  7 13:22:07 PDT 1994 -- Tim Mann\r
++\r
++* Beta distribution only.\r
++\r
++* Merged in new cmail code from Evan Welsh.  He added the ability to have\r
++more than one game per message, needed for official IECG matches.  I added\r
++the ability to resign or offer/accept/decline a draw in a cmail game.\r
++\r
++* Bugfix: invalid -tc option caused segmentation fault; DisplayFatalError\r
++was called too early in initialization.  Georges Honore reported this bug.\r
++\r
++* Decided to keep EndOfGame mode as an element of the user interface---it\r
++means that a gnuchess game or loaded game has ended, and the user must\r
++explicitly select EditGame to edit it, rather than just being able to\r
++enter more moves freely.  But internally there is no longer an invariant\r
++tying this mode to whether the chess program is running.\r
++\r
++* Zippy bugfix: Was saving only the final position in the -sgf file when\r
++the game ended by something other than resignation or flag.  Also fixed\r
++the longstanding bug that Zippy would think the final board of such a game\r
++was a new game and restart the chess program.\r
++\r
++* Now does a better job of faking castling availability in FEN.  We still\r
++don't really keep track of it, but now at least we don't say that castling\r
++is still available when the king or rook is not on its home square.\r
++\r
++* Bugfix: Initial board of game history for wild games was going through\r
++too much processing, causing us to forget the game length, which is now\r
++needed by ParseGameHistory.  This was causing problems with resuming\r
++adjourned wild games.\r
++\r
++* Updated ICS host to ics.onenet.net.\r
++\r
++* Zippy now accepts challenges where the opponent specified his color.\r
++\r
++* Added ZIPPYPASSWORD2 to let operator give commands directly to gnuchess.\r
++\r
++* Bitmap directory can include alternative icons now, too.\r
++\r
++* Handle "Game * (*) has no examiners" message from ICS.\r
++\r
++* Revamped window title and icon name selection.\r
++\r
++3.1, patchlevel 2 -- Sun Jun 12 17:16:28 PDT 1994 -- Tim Mann\r
++\r
++* "Beta" distribution for Zippy users only.\r
++\r
++* Bugfix: common.h was assuming that X11 type Boolean is char, which is\r
++not always true.  This might have caused all sorts of obscure bugs!\r
++\r
++* Installed new bitmaps from Elmar Bartel as the default.  Many thanks!\r
++The old bitmaps can be used by changing the "bitmaps" symbolic link before\r
++compiling xboard, or by using the -bitmapDirectory option at runtime.\r
++\r
++* Loading a game that ends with the PGN unfinished symbol ("*") now always\r
++leaves you in EditGame mode.\r
++\r
++* Added documentation of -icscomm to man page.  Thanks to Maarten Remkes\r
++for the linux script.\r
++\r
++* ^C now kills gnuchess as well as xboard.  Thanks to Dima Dakhnovsky for\r
++reminding me how to do this.\r
++\r
++* Bitmap icon color now indicates player to move.  Stuart Cracraft\r
++suggestion.\r
++\r
++* Changed piece bitmap flags to have just one flag, which points to a\r
++directory full of bitmaps, instead of a flag for each bitmap.  Also\r
++changed bitmap naming convention.\r
++\r
++* "Connection closed by ICS" is no longer a FatalError popup.  This was\r
++too annoying in the normal case where the user typed "quit".\r
++\r
++* Changed default font to 14 pixels instead of 10 points.  This seems to\r
++make it close to the size I want it to be on more displays.\r
++\r
++* Major mode (GNU Chess, etc.) appears in title bar.  Stuart Cracraft\r
++request.\r
++\r
++* Bug fix: EditGameEvent, MachineBlackEvent, MachineWhiteEvent, and\r
++TwoMachinesEvent were calling PauseEvent to get out of pause mode, which\r
++now has undesired side effects, such as advancing the display to the\r
++forwardMostMove.  It works fine to just set pausing = FALSE instead.\r
++\r
++* IcsExamining mode now lets you access ICS edit position commands using\r
++the same popup menus as xboard's EditPosition mode.  Thanks to DAV on ICS\r
++for inspiring the idea.\r
++\r
++* Corrected test for gcc on HP in Imakefile; thanks to Richard Lloyd.\r
++\r
++3.1, patchlevel 1 -- Wed Jun  1 16:25:11 PDT 1994 -- Tim Mann\r
++\r
++* Added parser.c.lex and parser.c.flex to the distribution.\r
++\r
++* Added HP gcc options to Imakefile, from Mats Nylen.\r
++\r
++* EndOfGame mode no longer highlights EditGame mode indicator, because the\r
++modes really do differ.  I would like to get rid of EndOfGame mode in the\r
++future, at least as far as users can see.\r
++\r
++* Larger %a in parser.l, needed for RS/6000 users.\r
++\r
++* Minor improvements to Mail Move error messages.\r
++\r
++* When -debug flag is given to xboard, -v is passed to cmail.\r
++\r
++* Old Save Style uses "1. ..." instead of "1..." when black moves after a\r
++comment; more like xboard 3.0's actual style.\r
++\r
++* New version of cmail from Evan Welsh.  Looks for UCB Mail in a more\r
++portable way and has some minor bug fixes.\r
++\r
++* Bug fix: Saving a FEN position while in EditPosition mode with black to\r
++play was showing white to play in the saved position.\r
++\r
++3.1, patchlevel 0 -- Fri May 20 16:36:15 PDT 1994 -- Tim Mann\r
++\r
++* This is the first general release since 3.0, patchlevel 9.  Releases\r
++since then have been limited-distribution or beta releases.\r
++\r
++* Thanks to my version 3.1 beta testers: Dmitry Dakhnovsky, Ed Hanway,\r
++Richard Lloyd, Mike McGann, Shelly Mistry, Josef Nelissen, Chris Petroff,\r
++Jack Robertson, Michel van der List, Ky Macpherson, Derek Terveer, and\r
++Evan Welsh.  Sorry if I've forgotten anyone who gave me feedback.\r
++\r
++* Updated man page.\r
++\r
++* Minor cleanup on menu sensitivity code.\r
++\r
++* Integrated another even better version of cmail from Evan Welsh,\r
++including some code he supplied in xboard itself.\r
++\r
++* A few more fixes to cmail support.\r
++\r
++* Automatically update clocks after an ICS "moretime" command.\r
++\r
++* Handle ICS automatic examine mode (set examine 1) after a game.\r
++\r
++3.0, patchlevel 14 -- Tue May 17 13:41:44 PDT 1994 -- Tim Mann\r
++\r
++* Beta test release only.\r
++\r
++* Don't suppress prompt on first board of game being examined; otherwise\r
++it looks like nothing happened at all (i.e., like you're lagged).\r
++\r
++* Added StopExamining and StopObserving (Chris Petroff suggestion).\r
++\r
++* Made Reset do a refresh on ICS.  John Chanak's original ICS code for\r
++xboard tried to do this; I finally decided it was a good idea after all.\r
++\r
++* Fixed bugs in handling updates that come in while you are pausing in\r
++examine mode.  This is pretty tricky to do right.\r
++\r
++* Made un-Pausing immediately pop you to the current position.  This is\r
++always necessary in examine mode, since the game may have changed under\r
++you; your remembered moves might no longer be right.  So I made it do the\r
++same in all modes.\r
++\r
++* Took Detach Examine mode back out...used Pause mode for this instead!\r
++\r
++* Put in a trap for the GNU Chess bug of printing an Illegal Move message\r
++when its own hint move is illegal.\r
++\r
++* Attempted to fix a Zippy bug; bogus "exited unexpectedly" messages after\r
++it checkmates its opponent.  This involved adding an argument to GameEnds\r
++to say who says it ended (ICS, GNU, etc.)  and taking different actions in\r
++different cases.  Unfortunately, this just restored an older Zippy bug, where\r
++Zippy restarts gnuchess when it gets the board with the final position,\r
++because GameEnds still puts xboard in EndOfGame mode.  Sigh.\r
++\r
++* We now capture elapsed time on last move when getting game history.\r
++(Josef Nelissen bug report)\r
++\r
++* Rewrote code to redisplay last file title so it really works.\r
++\r
++* Fixed bug in oldSaveStyle.\r
++\r
++* Larger %a and %o were needed for lex.\r
++\r
++3.0, patchlevel 13 -- Mon May 16 16:26:22 PDT 1994 -- Tim Mann\r
++\r
++* Beta test release only.\r
++\r
++* FatalError popups stay on the screen now.  If the error is really fatal,\r
++all functions are disabled, and the program exits when you press OK.\r
++\r
++* Redisplay last file title when using Load (Next/Previous/Same) Game.\r
++\r
++* Zippy understands new match challenge message format on ICS.\r
++\r
++* Added Revert command.\r
++\r
++* When examining a game on ICS, < > buttons do ICS backward/forward\r
++commands, unless you set the Detach Examine option.  Thanks to Dima\r
++Dakhnovsky for the idea.\r
++\r
++* Fixed various minor problems in cmail mode.\r
++\r
++* cmail generates the tags now.  New version of cmail from Evan Welsh.\r
++\r
++* cmail mode won't let you do MailMove unless the currently displayed\r
++position is exactly one move past the end of the game you loaded.\r
++\r
++* Fixed building of man pages in Imakefile\r
++\r
++* Updates to INSTALL file\r
++\r
++3.0, patchlevel 12 -- Sat May  7 21:10:03 PDT 1994 -- Tim Mann \r
++\r
++* Beta test release only.\r
++\r
++* Brought man page up to date.\r
++\r
++* Added Shift+R to resign from keyboard.\r
++\r
++* Some items on Action menu available in GNU Chess mode now.\r
++\r
++* Revamped Action menu.\r
++\r
++* Reordered functions in backend.c as a small step toward reorganizing\r
++this whole mess.\r
++\r
++* Generate TimeControl PGN tag.\r
++\r
++* Get type of ICS game (e.g., rated blitz) and save in PGN tags.\r
++\r
++* Bug fix: Clocks were not redisplayed when entering EditGame mode.\r
++\r
++* Bug fix: Clocks were not being redisplayed after loading a game file\r
++with -td 0, so they could show the wrong color active.\r
++\r
++* Bug fix: Chess programs would be killed and match mode would exit\r
++prematurely when loading a PGN game fragment ending with "*".\r
++\r
++* ICS command "sposition" no longer confuses xboard.\r
++\r
++* Integrated new version of cmail (with support code in xboard) from Evan\r
++Welsh.\r
++\r
++* Added TruncateGame, MoveNow, RetractMove, and QuietPlay.\r
++\r
++* Bug fix: switching between MachineWhite and MachineBlack was not calling\r
++Attention().  Reported by Dino Dini.\r
++\r
++* More improvements to INSTALL and Imakefile.\r
++\r
++* Pack moves into 79 character lines in PGN output.  We don't generate\r
++check indications, and we always break the line before the result,\r
++so this is not quite PGN export format.\r
++\r
++* Use FEN tag in PGN.\r
++\r
++* Improved finding and counting of game starts in save files.\r
++\r
++* Negative position or game numbers in -lpi/-lgi mean to seek to that byte\r
++offset.  Hook for possible future features, not in man page.\r
++\r
++* Detect and handle absence of either "time" or "otim" commands in\r
++gnuchess.\r
++\r
++* Don't use "promote" command to ICS anymore.\r
++\r
++* Handle switching sides and taking back moves on FICS.\r
++\r
++* Handle flip state flag in style 12 board.\r
++\r
++* Handle examine mode on ICS.\r
++\r
++* Improved error popups for various kinds of illegal moves.\r
++\r
++* Suppress unasked-for hints from gnuchess (which it generates in post\r
++mode).\r
++\r
++* Load/save position functions use FEN.  Old style also supported.\r
++\r
++* Added detailed error messages if loading a bitmap file fails.\r
++\r
++* Small board has 2-pixel lines between squares instead of 3-pixel.\r
++\r
++* Added OldSaveStyle and AboutGame.\r
++\r
++* Renamed ForceMoves to EditGame.\r
++\r
++3.0, patchlevel 11 -- Tue Sep 21 15:25:36 PDT 1993 -- Tim Mann \r
++\r
++* The following changes were present in xboard 3.0, patchlevel 11, but the\r
++first group did not make it into WinBoard 3.0 until later.  xboard\r
++3.0.pl11 was a limited-distribution release only, mostly to Zippy users.\r
++\r
++* Man page minor fixes.\r
++\r
++* Added a missing file close.\r
++\r
++* Removed automatic error popdown on Reset, which was destroying some\r
++error messages before they could be read.\r
++\r
++* Fixed char vs. unsigned char warnings on bitmaps.\r
++\r
++* Use ICS board style 12.  Some improvements to ICS parsing.\r
++\r
++* Comment window is now labelled with the move the comment is on, and\r
++comments don't pop down when you step to the next move.\r
++\r
++* Save files now in PGN format.\r
++\r
++* Support for loading PGN files.  PGN tags pop up when a PGN game file\r
++is loaded.\r
++\r
++* More info in INSTALL and Imakefile about building for Suns (and\r
++other systems).\r
++\r
++* WinBoard 3.0 patchlevel 11 split off from an early version of xboard\r
++3.0 patchlevel 11, so it does not have all the features of that\r
++patchlevel.  The following changes made it into both xboard and\r
++WinBoard:\r
++\r
++* Made Comment dialog non-modal in WinBoard.\r
++\r
++* EndOfGame mode is now more transparent.  It looks like ForceMoves\r
++mode except that there is no chess program running.\r
++\r
++* Small bug fixes in clock management.  Most noticeably, pausing when\r
++it is gnuchess's move now works as documented (again).\r
++\r
++* Add minimal support for -icscomm option.  Not documented yet because\r
++I haven't sorted out the issues with setting the tty modes on the comm\r
++port device, or with locking it properly.  But it's usable by wizards.\r
++\r
++* Don't restart the chess program upon Backward event from EndOfGame mode.\r
++\r
++* Suppress extra prompt after ICS sends us a board.\r
++\r
++3.0, patchlevel 10 -- Sat Sep 11 18:44:03 PDT 1993 -- Tim Mann \r
++\r
++* Beta test release only.\r
++\r
++* Zippy now plays chess.  zippy.c and zippy.h are still not included\r
++in the standard distribution, but are available on request.\r
++\r
++* Switched to using style 12 on ICS.\r
++\r
++* Updated man page, and documented use of XBoard*form.translations to\r
++add more shortcut keys.\r
++\r
++* Added shortcut keys "d" to claim/offer/accept a draw, and "t" to\r
++call flag.  Suggested by venu on ICS.\r
++\r
++* More explicit instructions in INSTALL file.\r
++\r
++3.0, patchlevel 9 -- Tue Sep  7 14:02:00 PDT 1993 -- Tim Mann\r
++\r
++* General release, minor update to 3.0.pl8.\r
++\r
++* Loosened checking on whether it's okay to start a move, to satisfy\r
++ICS ultra-blitz players.  Now we don't check whether it's your turn\r
++until you let go of the piece.\r
++\r
++* Parser now recognizes "+-+" as meaning the game ended in a draw.\r
++\r
++* Got rid of S_NONE symbol, which seems to conflict with some symbol\r
++Sun defines.\r
++\r
++* Tweaked the man page.  Clarified that there is currently no way for\r
++two people running copies of xboard to play each other without going\r
++through the Internet Chess Server.\r
++\r
++* Fixed a bug in color name conversion.  Asking for two different\r
++colors whose names were the same in the first four characters would\r
++get you two copies of the first one.  Thanks to Volker Zink for the\r
++bug report.\r
++\r
++* Improved confusing Usage() message.\r
++\r
++* Added a bunch of Sun information to the Imakefile and INSTALL file.\r
++Thanks to Ed Hanway, Arik Klingensmith, and others who responded.\r
++\r
++* Test for defined(WIN32) instead of !defined(unix).\r
++\r
++* Avoid using (void *) type with non-ANSI C compilers.  Thanks to\r
++James Altucher for the bug report.\r
++\r
++3.0, patchlevel 8 -- Thu Sep  2 12:23:01 PDT 1993 -- Tim Mann\r
++\r
++* Note: Patchlevel 8 was the first non-beta release of xboard 3.0\r
++\r
++* Added cmail to distribution.  Contributed (and still maintained) by\r
++Evan Welsh.\r
++\r
++* Bug fix: -queen option wasn't initializing menu check.  Reported by\r
++Pat Surry.\r
++\r
++3.0, patchlevel 7 -- Thu Aug 26 13:23:24 PDT 1993 -- Tim Mann\r
++\r
++* Sent WinBoard 3.0.pl7 to Torre on ICS\r
++\r
++* Added parser.h to hold the interface to parser.l\r
++\r
++* Upgraded COPYING file and copyright notices to GNU GPL version 2.\r
++\r
++3.0, patchlevel 6 -- Tue Aug 24 15:16:13 PDT 1993 -- Tim Mann\r
++\r
++* We no longer display intermediate positions or intermediate comments\r
++while loading a game file with -timeDelay 0 or loading an opening to\r
++start up a -matchMode game.\r
++\r
++* Loading an empty game from an xboard save file now gives a status\r
++message "No moves in game" instead of an error popup saying "Game not\r
++found in file."\r
++\r
++* Added comment.awk to distribution.\r
++\r
++3.0, patchlevel 5 -- Tue Aug 17 16:45:54 PDT 1993 -- Tim Mann\r
++\r
++* Bug fix:  xboard would crash if it couldn't get all its colors; now\r
++it switches to monoMode instead.  Also, xboard was trying to convert\r
++color resources even when using a b/w display.  Reported by Larry\r
++Rogers.\r
++\r
++* Bug fix: Declared fields of TimeMark as signed so that we get signed\r
++instead of unsigned arithmetic.  SubtractTimeMarks was breaking on\r
++Alpha AXP (which has 64-bit longs) with old declarations.  Reported by\r
++Michel van der List.\r
++\r
++* Bug fixes:  Keyboard accelerators now work after EditComment window is\r
++popped down.  Iconize keyboard accelerator now works even if xboard\r
++was started with -iconic flag and later deiconized.\r
++\r
++* Bug fix:  The routine that tests whether a move is illegal because it\r
++would leave you in check was not handling e.p. captures properly.\r
++Reported by Patrick Surry.\r
++\r
++* Bug (?) fix:  Was adding time to clocks at time control even when\r
++loading a game file.  Actually it's not entirely clear how time\r
++controls should be dealt with when some moves are loaded from a file\r
++or clicked in with ForceMoves.  For now ForceMoves mode does add the\r
++time (because it can be used to change moves during a live game), but\r
++LoadGame mode does not.\r
++\r
++* Updated usage message.\r
++\r
++* Previous attempted fix to matchMode had broken TwoMachines mode and\r
++generally needed more work.  Also simplified command line interface to\r
++matchMode.\r
++\r
++3.0, patchlevel 4 -- Thu Aug  5 14:17:18 PDT 1993 -- Tim Mann\r
++\r
++* Thanks again to the beta testers listed for 3.0 patchlevel 3, and also\r
++Desnogues, Steve Cariglia, Niklas Engsner, Mark Silver, and Roger Rowe.\r
++\r
++* Reorganized man page, splitting OPTIONS into subsections.\r
++\r
++* matchMode was very broken; fixed.\r
++\r
++* Changed convention for turning off command line options from --opt\r
++to -xopt, to be less inconsistent with GNU standards.  Also changed\r
++the long command line options to take True/False arguments like\r
++resources; seems to make more sense this way.\r
++\r
++* Added AlwaysQueen option -- suppresses promotion dialog and always\r
++promotes to a queen if you move a pawn to the last rank.  Has no\r
++effect on gnuchess (or your ICS opponents!) -- they can still\r
++underpromote.\r
++\r
++* Subtracted an extra fudge term when determining how wide message and\r
++title widgets should be.  This fixes a problem some beta testers had.\r
++Wish I knew why it's needed.\r
++\r
++* Bugfix in parser; symptom was that you couldn't do LoadGame after\r
++observing a game on ICS.\r
++\r
++* Bugfix in Forward; didn't work after game ended while Pause was turned on.\r
++\r
++* Removed bogus execute bits on .h files.\r
++\r
++* Use REMOTE_SHELL and TELNET_PROGRAM definitions.\r
++\r
++* MachineWhite and MachineBlack now work from TwoMachines mode.\r
++\r
++* Popping down an error message with the [ok] button was not turning off\r
++the errorUp flag, so the next move would cause xboard to try to pop it\r
++down again, resulting in a wild memory reference and sometimes a crash.\r
++\r
++3.0, patchlevel 3 -- Tue Aug  3 17:40:27 1993  -- Tim Mann\r
++\r
++* Thanks to my beta testers: Patrick Surry, Takuya Kojima, Robert J. Luoma,\r
++Chris L.  Petroff, Richard K. Lloyd, Michel van der List, Craig Metz,\r
++Antoon Frehe, Simon Clift, Shelly, Eric Peterson, Christopher Mitchell,\r
++Martin Koch, Ed Hanway, Steve Booth, Udo, Ken Hobday, and Joseph Duhamel.\r
++\r
++* Improved error messages for trying to move the wrong color pieces or\r
++to move when it's not your turn.\r
++\r
++* Special code for monoMode on 1-bit displays now understands displays\r
++where 1=white and 0=black.\r
++\r
++* Declare getenv() if <stdlib.h> not included; avoids a compiler warning.\r
++\r
++* Documented borderXoffset and borderYoffset.\r
++\r
++* Added -titleInWindow option for use with X window managers that\r
++don't let us set the title in the window banner.\r
++\r
++* Fixed error message printing in WinBoard; system error messages no\r
++longer appear as numeric codes.\r
++\r
++* The error message popup is now non-modal; you don't have to press the\r
++[ok] button before you can do something else.  In addition, the popup is\r
++positioned so that it doesn't cover up the board (too much), and making a\r
++move or otherwise clicking on the board pops it down.  (Not implemented in\r
++WinBoard.)\r
++\r
++* You can now call your opponent's flag in ICS mode by clicking on his\r
++clock. \r
++\r
++* Fixed minor bugs in -flipView option and documented exactly how xboard\r
++decides which way to flip the view.\r
++\r
++3.0, patchlevel 2 -- Fri Jul 30 22:20:23 PDT 1993 -- Tim Mann\r
++\r
++* Added Autosave to Options menu.  Would be better to have Save\r
++Options dialog as in WinBoard, but this was quick to do and gives the\r
++most-needed functionality.\r
++\r
++* Changed "Reload Game" on menu to "Reload Same Game".\r
++\r
++3.0, patchlevel 1 -- Thu Jul  8 21:22:59 PDT 1993 -- Tim Mann\r
++\r
++* Sent a copy of patchlevel 1 to Patrick Surry to beta-test.\r
++\r
++* Added -cmail option that sets appData.cmailMode.  Currently a no-op.\r
++In the future this may set special modes for use by the cmail script\r
++for playing chess by email.\r
++\r
++* Added LoadNextGame, LoadPreviousGame, and ReloadGame to File menu.\r
++ReloadGame suggested by Patrick Surry.\r
++\r
++* Added -flipView command-line option.  Suggested by Patrick Surry.\r
++\r
++* Fixed bugs in parser.l:  (1) Pattern for "# xboard game file ..."\r
++needed to match to end of line.  (2) Start of a new file was not matching\r
++the ^ start-of-line character.  The fix for this is a kludge.\r
++\r
++* Made game counting code in LoadGame more robust, and made LoadGame\r
++able to detect the end of a saved partial game (by noticing the start\r
++of the next game) in game files created by XBoard itself.  We don't\r
++try to find the start of the next game that way in other kinds of game\r
++files, because the only way I can think of to do that is to look for\r
++another move #1, and that technique gets too many false hits.\r
++\r
++* Fixed recently introduced bug in LoadGame when game starts with a\r
++position diagram.\r
++\r
++3.0, patchlevel 0 -- Fri Jun 25 14:17:17 PDT 1993 -- Tim Mann\r
++\r
++* Changes in this patchlevel were too numerous to list.  Larger ones are\r
++listed below.\r
++\r
++* Added a popup dialog to enter and edit comments.  Inspired by some\r
++code from Patrick Surry.  Changed the normal read-only comment popup\r
++to the same style.\r
++\r
++* Added ICS init script feature from Karl Schwamb.\r
++\r
++* Added some ESIX fixes and OMIT_SOCKETS ifdef option, from Kayvan Sylvan.\r
++\r
++* Revamped code to allow use of flex instead of lex on parser.l.\r
++Using flex requires adding -DFLEX to defines in Imakefile.\r
++\r
++* Source code is split into front end (xboard.c), which knows about X\r
++and Unix, and back end (backend.c), which knows about chess, gnuchess,\r
++and the ICS.  There is also a front end for Windows NT.\r
++\r
++* Boolean command line options now use "-foo" to turn on and "--foo"\r
++to turn off instead of "-foo true" and "-foo false".  [Later -xfoo;\r
++see above.] \r
++\r
++* Added menu commands to control autoflag, bell, and coords options.\r
++\r
++* User interface has a new look: (1) Menu bar instead of array of\r
++buttons.  A few very commonly used features have small buttons in\r
++addition to being on the menus. (2) Large font for clock.  (3) Pop-up\r
++dialogs for errors.\r
++\r
++2.1, patchlevel 11 -- Sat Jun  5 00:01:01 PDT 1993 -- mann@src.dec.com\r
++\r
++* Added code to deal with "wild" games on ICS.  This includes allowing\r
++castling with the king on d1 or d8, which is allowed in wild(1) games\r
++if the king started there.  Notation is o-o to castle "short"---to\r
++whichever side the king is closer to---and o-o-o to castle "long."\r
++Right now wild castling is always allowed by xboard; we rely on ICS or\r
++gnuchess to reject it when we aren't really in wild mode.\r
++\r
++* memcpy call had arguments in wrong order.\r
++\r
++* Removed April Fool code\r
++\r
++2.1, patchlevel 10 -- Mon Feb 15 10:19:31 PST 1993 -- mann@src.dec.com\r
++\r
++* Avoid trying to select on a pipe when using System V.  Needed to\r
++copy some code from InitChessProgram() up into establish().\r
++\r
++* Bug fix in disambiguating pawn moves like "ed".\r
++\r
++* Fix to error handling in ReceiveFromProgram.\r
++\r
++* Bug fix: entering EditPosition mode with black to play highlighted\r
++White's clock instead of Black's.\r
++\r
++* Added telnetProgram resource in case "telnet" is not the name of the\r
++telnet program.\r
++\r
++2.1, patchlevel 9 -- Fri Jan 22 19:08:27 PST 1993 -- mann@src.dec.com\r
++\r
++* Entering Force Moves mode clears "flag has fallen" messages from display.\r
++\r
++* ICS host name can now be in numeric format; for example 128.2.232.4.\r
++\r
++* Bug fix: LegalityTest was failing to test whether a pawn move was\r
++illegal because the move would discover a check.\r
++\r
++* Handle ICS message "mann asserts a win over manntest, who disconnected."\r
++\r
++* Bug fix: A recent change to PromotionCallBack had broken\r
++underpromotion to a knight.\r
++\r
++* Bug fix: In EditPosition mode, dragging a piece onto a square border\r
++would make it vanish.  xboard wasn't distinguishing this case from\r
++dragging the piece off the board.  Thanks to Matthew Kidd.\r
++\r
++* Removed "static" declaration from yywrap for compatibility with IRIX\r
++version of lex.  Thanks to stiller@blaze.cs.jhu.edu.\r
++\r
++* Added substitutes for bzero, bcopy, and gethostname for Solaris\r
++SVR4.  Thanks to Michael Grant.\r
++\r
++* Bug fixes to queen move disambiguation.  Bugs showed up only when\r
++promotion resulted in more than one queen on the board.\r
++\r
++2.1, patchlevel 8 -- Fri Dec 11 17:54:18 PST 1992 -- mann@src.dec.com\r
++\r
++* parser bug fix: It now really works to leave off the piece a pawn is\r
++promoting to and let it default to queen.\r
++\r
++* When starting to observe or play an ICS game, don't draw board in\r
++initial position and then immediately redraw it in the current\r
++position.\r
++\r
++* Handle ICS messages when an "abuser" forfeits a game by\r
++disconnecting and when a game is aborted ("removed") by an\r
++administrator.\r
++\r
++* Bug fix: A user move when in LoadGame+Pause mode was resuming the\r
++game load instead of putting us in force mode.\r
++\r
++* It seems that crashes inside sscanf when xboard is compiled with gcc\r
++(as on IBM PS/2 AIX, mentioned below, and also on VAX Ultrix 3.1) are\r
++caused by an incompatibility between gcc and the sscanf implementation\r
++on these platforms.  A workaround is to specify -fwritable-strings to\r
++gcc (see the gcc documentation).  Added info on how to do this to the\r
++Imakefile.  Thanks to Tom McConnell for this information.\r
++\r
++* Clocks are allowed to go negative.  This is mostly for ICS\r
++compatibility, but it affects gnuchess mode too.  Also, we give the\r
++time bonus when a player hits the time control boundary even if his\r
++flag is already down.  This choice is a bit debatable, but it makes\r
++things look better when you are in TwoMachines mode and gnuchess's\r
++time management screws up causing it to exceed its time limit.\r
++\r
++* Implemented move legality checking code.  Moves made with the mouse\r
++or parsed from a file are checked for legality before being made.\r
++This is mostly in preparation for future extensions, such as\r
++human-human play.  For now it makes -noChessProgram mode more useful.\r
++\r
++* If the user takes back moves, we restore the clocks to the earlier\r
++settings.\r
++\r
++* We now handle the output of the ICS oldmoves command, including\r
++parsing the game end condition.\r
++\r
++* Added autoCallFlag mode.\r
++\r
++* Fixed glitches in the medium size outline king and rook bitmaps, and\r
++touched up the medium size solid king and outline queen.\r
++\r
++* bug fix: DisplayMove would not display backwardMostMove - 1.\r
++\r
++* Added CallFlag button and removed AcceptMatch.  CallFlag is more\r
++important with new ICS, and accepting the current match offer is easy\r
++with the new ICS command "accept" (can be abbreviated "ac").\r
++\r
++* LoadGame and LoadPosition display tail of file name (plus index\r
++number, if any) as title.\r
++\r
++* MachineWhite, MachineBlack, and TwoMachines now work properly from\r
++LoadGame and LoadGame+Pause mode.\r
++\r
++* Use o-o and o-o-o to castle on ICS, not 00 and 000.\r
++\r
++* Stripped out code for old ICS messages; new ICS is now installed.\r
++\r
++* Bug fix: don't offer autosave when paused during LoadGame.\r
++\r
++2.1, patchlevel 7 - Fri Dec 11 17:40:56 PST 1992 - mann@src.dec.com\r
++\r
++* Track change to "Illegal move" message in new ICS.\r
++\r
++2.1, patchlevel 6 -- Tue Dec  8 10:48:44 PST 1992 -- mann@src.dec.com\r
++\r
++* Kludged around bug in keeping comment popup where you put it by\r
++adding borderXoffset and borderYoffset resources that give the width\r
++of the borders added by the window manager.  Yucch.\r
++\r
++* Changed searchDepth kludge back to using "help" instead of "bd"; the\r
++latter didn't work because the output contains a line starting with\r
++"White", so we think gnuchess is telling us that White won.  Oops.\r
++\r
++* Removed some code that uses an X11R5 feature, XrmGetDatabase.\r
++Without this, the auto font sizing code is harder to make work, so to\r
++keep my sanity I had to change it to affect only the fonts that appear\r
++in the main window and the comment popup, not the other popups.  Maybe\r
++this is better anyway.\r
++\r
++* AcceptMatch button now works after a counterchallenge, too.\r
++\r
++* Added code for more variants of messages about games being adjourned\r
++or aborted.  These messages need to be unified in new version of ICS.\r
++\r
++* Added workaround for minor bug in ICS; game number on first board\r
++can be wrong.\r
++\r
++* Removed code to say "refresh n" instead of "refresh"; was broken and\r
++wasn't needed anyway.\r
++\r
++* Added missing casts for compilers that distinguish enums from ints\r
++and missing cast in connect call.\r
++\r
++* Added code to recognize "both sides are out of time" draw message\r
++proposed for next version of ICS.\r
++\r
++* Thanks to Danny Sleator and Joe Peterson for bug reports.\r
++\r
++2.1, patchlevel 5 -- Sun Dec  6 19:52:40 PST 1992 -- mann@src.dec.com\r
++\r
++* Removed gcc and CDEBUGFLAGS from Imakefile.\r
++\r
++* Corrected setting of mode to ForceMoves when game file ends or\r
++contains an AmbiguousMove or BadMove.  Previous bug was harmless.\r
++\r
++* Added AcceptMatch button and mention of 50-move rule for Draw button\r
++to man page.\r
++\r
++2.1, patchlevel 4 -- Sun Dec  6 02:55:42 PST 1992 -- mann@src.dec.com\r
++\r
++* Now handles revised messages from new version of ICS.  New ICS is\r
++not released yet, so this code might change further.  Next patchlevel\r
++will remove support for old ICS; both are there now.\r
++\r
++* Initial processing for a new game being watched or played now\r
++happens when we see the first board image.  Removes the need to parse\r
++some messages and unifies some code.\r
++\r
++2.1, patchlevel 3 -- Tue Dec  1 19:40:40 PST 1992 -- mann@src.dec.com\r
++\r
++* Handles ICS messages "Draw : neither player has mating\r
++material" and "Draw : White has no material, Black has no time."\r
++\r
++* Added AcceptMatch button for ICS mode.\r
++\r
++* Fixed bug in previous fix to yylexstr().\r
++\r
++* Fixed bugs in code for loading old position files that don't start\r
++with "#" and for handling case where user asked for nth position in\r
++file but there aren't that many.\r
++\r
++* Handles ICS message "* has restored your old game"\r
++\r
++* ResetProc always clears title line now.\r
++\r
++* Don't issue just "refresh" when watching a game; use game number.\r
++Upcoming new version of ICS may need this.\r
++\r
++* Added code to try to prevent user from watching and/or playing more\r
++than one game at a time.  There is a race condition inherent here; if\r
++we get more than one board from the game before our command to stop\r
++watching it takes effect, we'll think the user started it again.  Not\r
++clear how to fix this.\r
++\r
++* Redid ParseBoard8 to use sscanf.  Code is a good deal cleaner now.\r
++Also, we now parse out the game number too, though we don't make much\r
++use of it yet.\r
++\r
++* (Tried to put in a feature that recognizes the current game in a\r
++game file must have ended when we see the start of a new one, but had\r
++to disable it because we have too many false hits with the current\r
++parser, especially in gnuchess listing files.)\r
++\r
++* Moves read from game files or received from ICS are now translated\r
++into canonical algebraic form just like all other moves.  Minor nit:\r
++If you use Reset while playing or observing a game in ICS mode, the\r
++game history (including the current board position) is lost, so the\r
++next move of the current game can't be translated.\r
++\r
++* Default fonts now vary with board size, and are chosen by pixel size\r
++instead of point size (since piece bitmaps have a fixed pixel size).\r
++\r
++* Bug fix: An extra Forward was required to skip over time indications\r
++in game files.\r
++\r
++2.1 patchlevel 2 -- Fri Nov 27 23:30:00 PST 1992 -- mann@src.dec.com\r
++\r
++* If you move the comment popup, the next time it pops up it will come\r
++back where you put it.\r
++\r
++* Fixed yylexstr() so calls to it can be interspersed with calls to\r
++yylex().\r
++\r
++* Fixed bugs in Forward/Backward while in LoadGame mode.\r
++\r
++* Changed Save{Game,Position} functions to append instead of\r
++overwriting if file exists.  Changed Load{Game,Position} functions to\r
++deal with multiple games/positions per file.\r
++\r
++* Changed load{Game,Position}File resources to trigger automatic load\r
++on program startup.  Changed save{Game,Position}File resources to\r
++trigger automatic save after every completed game and on program exit.\r
++\r
++* Added autoSaveGames mode.\r
++\r
++* Fixed bug with PromoPiece in call to MakeAlg from MakeMove.\r
++\r
++* Many changes to get rid of picky compiler warnings and generally\r
++clean up the code.\r
++\r
++2.1 patchlevel 1 -- Fri Nov 27 02:45:00 PST 1992 -- mann@src.dec.com\r
++\r
++* A last minute change before patchlevel 0 went out broke\r
++ParseGameHistory().  Immediately fixed in patchlevel 1.\r
++\r
++Version 2.1, patchlevel 0 -- Fri Nov 27 02:00:00 PST 1992 -- mann@src.dec.com\r
++\r
++* Uses "time" command of gnuchess 4.0 and following to keep clocks in\r
++sync.  Still works with older versions without this command; we test\r
++whether the command is present the first time each chess program is\r
++started.\r
++\r
++* File name dialog pops up under the mouse cursor, so that it's got the\r
++keyboard focus if the window manager is using pointer focus.\r
++\r
++* Attempts to move the wrong color piece or an empty square are filtered\r
++out in xboard instead of being passed on to GNU Chess or the ICS.\r
++\r
++* The reason a game ended is now remembered even if you move backward\r
++and forward after it ends.  It is forgotten only if you make a move\r
++(which is as it should be---this is now a different game, which hasn't\r
++ended yet).  The message saying why the game ended no longer wipes out\r
++the last move.\r
++\r
++* Pause, Backward, Forward, ForceMoves, and EditPosition now work from\r
++TwoMachines mode.\r
++\r
++* Forward and Backward now change only the board display unless you\r
++are in ForceMoves mode.  Pause mode keeps new moves that are received\r
++from being displayed on your screen until you unpause (or use\r
++Forward).\r
++\r
++* Added option to ring the bell after opponents' moves.\r
++\r
++* Saved games that start from other than the standard initial position\r
++now begin with a postion diagram as in saved position files.  The\r
++loader is modified to understand such save files.\r
++\r
++* Improved error checking when trying to read from gnuchess.\r
++\r
++* Parser understands things that look like time indications, e.g., (0:12),\r
++instead of popping them up as comments.\r
++\r
++* Send "quit" to gnuchess before trying to kill it.  I needed this\r
++locally because sending a SIGTERM to rsh was not killing the remote\r
++program on some internal field test systems we have.\r
++\r
++* Merged in code from John Chanak to make xboard a front end to the\r
++Internet Chess Server, and added several improvements of my own.\r
++(These include parsing end of game messages, loading the current state\r
++and previous history of a game that's joined in progress via "watch"\r
++or "load", automatic switch from board style 1 to 8 when needed,\r
++removing irrelevant buttons and adding some new ones, adding the\r
++useTelnet and gateway resources, and miscellaneous code cleanup, bug\r
++fixes, and documentation.)  Many thanks to John for writing and\r
++contributing the initial version of this code.\r
++\r
++Fri Oct 30 20:16:40 PST 1992 (patchlevel 25) mann@src.dec.com