CHANGES

3.0, patchlevel 0 -- Fri Jun 25 14:17:17 PDT 1993 -- mann@src.dec.com

- 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.

- Added menu commands to control autoflag, bell, and coords options.

- 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 below.] 

- 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.

- Revamped code to allow use of flex instead of lex on parser.l.
Using flex requires adding -DFLEX to defines in Imakefile.

- Added some ESIX fixes and OMIT_SOCKETS ifdef option, from Kayvan Sylvan.

- Added ICS init script feature from Karl Schwamb.

- 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.

- Other changes too numerous to list.

- Sent a copy of WinBoard patchlevel 0 to kelley@merlin.hood.edu for
beta testing.


3.0, patchlevel 1 -- Thu Jul  8 21:22:59 PDT 1993 -- mann@src.dec.com

- Fixed recently introduced bug in LoadGame when game starts with a
position diagram.

- 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 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.

- Added -flipView command-line option.  Suggested by Patrick Surry.

- Added LoadNextGame, LoadPreviousGame, and ReloadGame to File menu.
ReloadGame suggested by Patrick Surry.

- 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.

- Sent a copy of patchlevel 1 to Patrick Surry to beta-test.

3.0, patchlevel 2 -- Fri Jul 30 22:20:23 PDT 1993 -- mann@src.dec.com

- Changed "Reload Game" on menu to "Reload Same Game".

- 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.

3.0, patchlevel 3 -- Tue Aug  3 17:40:27 1993  -- mann@src.dec.com

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.

- Fixed minor bugs in -flipView option and documented exactly how xboard
decides which way to flip the view.

- You can now call your opponent's flag in ICS mode by clicking on his
clock. 

- 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.)

- Fixed error message printing in WinBoard; system error messages no
longer appear as numeric codes.

- Added -titleInWindow option for use with X window managers that
don't let us set the title in the window banner.

- Documented borderXoffset and borderYoffset.

- Declare getenv() if <stdlib.h> not included; avoids a compiler warning.

- Special code for monoMode on 1-bit displays now understands displays
where 1=white and 0=black.

- Improved error messages for trying to move the wrong color pieces or
to move when it's not your turn.

3.0, patchlevel 4 -- Thu Aug  5 14:17:18 PDT 1993 -- mann@src.dec.com

Thanks again to the beta testers listed above, and also Desnogues, Steve
Cariglia, Niklas Engsner, Mark Silver, and Roger Rowe.

- 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.

- MachineWhite and MachineBlack now work from TwoMachines mode.

- Use REMOTE_SHELL and TELNET_PROGRAM definitions.

- Removed bogus execute bits on .h files.

- Bugfix in Forward; didn't work after game ended while Pause was turned on.

- Bugfix in parser; symptom was that you couldn't do LoadGame after
observing a game on ICS.

- 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.

- 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.

- 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.

- matchMode was very broken; fixed.

- Reorganized man page, splitting OPTIONS into subsections.

3.0, patchlevel 5 -- Tue Aug 17 16:45:54 PDT 1993 -- mann@src.dec.com

- Previous attempted fix to matchMode had broken TwoMachines mode and
generally needed more work.  Also simplified command line interface to
matchMode.

- Updated usage message.

- 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.

- 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 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: 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 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.

3.0, patchlevel 6 -- Tue Aug 24 15:16:13 PDT 1993 -- mann@src.dec.com

- Added comment.awk to distribution.

- 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."

- 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.

3.0, patchlevel 7 -- Thu Aug 26 13:23:24 PDT 1993 -- mann@src.dec.com

- Upgraded COPYING file and copyright notices to GNU GPL version 2.

- Added parser.h to hold the interface to parser.l

- Sent WinBoard 3.0.pl7 to doli@troi.cc.rochester.edu (Torre on ICS)

3.0, patchlevel 8 -- Thu Sep  2 12:23:01 PDT 1993 -- mann@src.dec.com

- Bug fix: -queen option wasn't initializing menu check.  Reported by
Pat Surry.

- Added cmail to distribution.  Contributed (and still maintained) by
Evan Welsh, welsh@epcc.ed.ac.uk.

- Note: Patchlevel 8 was the first non-beta release of xboard 3.0

3.0, patchlevel 9 -- Tue Sep  7 14:02:00 PDT 1993 -- mann@src.dec.com

- Avoid using (void *) type with non-ANSI C compilers.  Thanks to
James Altucher for the bug report.

- Test for defined(WIN32) instead of !defined(unix).

- Added a bunch of Sun information to the Imakefile and INSTALL file.
Thanks to Ed Hanway, Arik Klingensmith, and others who responded.

- Improved confusing Usage() message.

- 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.

- 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.

- Got rid of S_NONE symbol, which seems to conflict with some symbol
Sun defines.

- Parser now recognizes "+-+" as meaning the game ended in a draw.

- 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.

3.0, patchlevel 10 -- Sat Sep 11 18:44:03 PDT 1993 -- mann@src.dec.com 

- Limited-distribution release only, mostly to Zippy users (i.e., to a few
people who wanted to bring up automated chess players on ICS using the
Zippy code).

- More explicit instructions in INSTALL file.

- Added shortcut keys "d" to claim/offer/accept a draw, and "t" to
call flag.  Suggested by venu on ICS.

- Updated man page, and documented use of XBoard*form.translations to
add more shortcut keys.

- Switched to using style 12 on ICS.

- Zippy now plays chess.  zippy.c and zippy.h are still not included
in the standard distribution, but are available on request.

3.0, patchlevel 11 -- Tue Sep 21 15:25:36 PDT 1993 -- mann@src.dec.com 

- Limited-distribution release only, mostly to Zippy users.

- Suppress extra prompt after ICS sends us a board.

- Don't restart the chess program upon Backward event from EndOfGame mode.

- 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.

- Small bug fixes in clock management.  Most noticeably, pausing when
it is gnuchess's move now works as documented (again).

- EndOfGame mode is now more transparent.  It looks like ForceMoves
mode except that there is no chess program running.

- More info in INSTALL and Imakefile about building for Suns (and
other systems).

- Support for loading PGN files.  PGN tags pop up when a PGN game file
is loaded.

- Save files now in PGN format.

- 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.

- Use ICS board style 12.  Some improvements to ICS parsing.

- Fixed char vs. unsigned char warnings on bitmaps.

- Removed automatic error popdown on Reset, which was destroying some
error messages before they could be read.

- Added a missing file close.

- Man page minor fixes.

3.0, patchlevel 12 -- Sat May  7 21:10:03 PDT 1994 -- mann@src.dec.com 

- Beta test release only.

- Renamed ForceMoves to EditGame.

- Added OldSaveStyle and AboutGame.

- Small board has 2-pixel lines between squares instead of 3-pixel.

- Added detailed error messages if loading a bitmap file fails.

- Load/save position functions use FEN.  Old style also supported.

- Suppress unasked-for hints from gnuchess (which it generates in post
mode).

- Improved error popups for various kinds of illegal moves.

- Handle examine mode on ICS.

- Handle flip state flag in style 12 board.

- Handle switching sides and taking back moves on FICS.

- Don't use "promote" command to ICS anymore.

- Detect and handle absence of either "time" or "otim" commands in
gnuchess.

- Negative position or game numbers in -lpi/-lgi mean to seek to that byte
offset.  Hook for possible future features, not in man page.

- Improved finding and counting of game starts in save files.

- Use FEN tag in PGN.

- 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.

- More improvements to INSTALL and Imakefile.

- Bug fix: switching between MachineWhite and MachineBlack was not calling
Attention().  Reported by Dino Dini.

- Added TruncateGame, MoveNow, RetractMove, and QuietPlay.

- Integrated new version of cmail (with support code in xboard) from Evan
Welsh.

- ICS command "sposition" no longer confuses xboard.

- Bug fix: Chess programs would be killed and match mode would exit
prematurely when loading a PGN game fragment ending with "*".

- 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: Clocks were not redisplayed when entering EditGame mode.

- Get type of ICS game (e.g., rated blitz) and save in PGN tags.

- Generate TimeControl PGN tag.

- Reordered functions in backend.c as a small step toward reorganizing
this whole mess.

- Revamped Action menu.

- Some items on Action menu available in GNU Chess mode now.

- Added Shift+R to resign from keyboard.

- Brought man page up to date.

3.0, patchlevel 13 -- Mon May 16 16:26:22 PDT 1994 -- mann@src.dec.com 

- Beta test release only.

- Updates to INSTALL file

- Fixed building of man pages in Imakefile

- 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.

- cmail generates the tags now.  New version of cmail from Evan Welsh.

- Fixed various minor problems in cmail mode.

- 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.

- Added Revert command.

- Zippy understands new match challenge message format on ICS.

- Redisplay last file title when using Load (Next/Previous/Same) Game.

- 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.

3.0, patchlevel 14 -- Tue May 17 13:41:44 PDT 1994 -- mann@src.dec.com

- Beta test release only.

- Larger %a and %o were needed for lex.

- Fixed bug in oldSaveStyle.

- Rewrote code to redisplay last file title so it really works.

- We now capture elapsed time on last move when getting game history.
(Josef Nelissen bug report)

- 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.

- Put in a trap for the GNU Chess bug of printing an Illegal Move message
when its own hint move is illegal.

- Took Detach Examine mode back out...used Pause mode for this instead!

- 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.

- Fixed bugs in handling updates that come in while you are pausing in
examine mode.  This is pretty tricky to do right.

- 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.

- Added StopExamining and StopObserving (Chris Petroff suggestion).

- 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).

3.1, patchlevel 0 -- Fri May 20 16:36:15 PDT 1994 -- mann@src.dec.com

- This is the first general release since 3.0, patchlevel 9.  Releases
since then have been limited-distribution or beta releases.

- Handle ICS automatic examine mode (set examine 1) after a game.

- Automatically update clocks after an ICS "moretime" command.

- A few more fixes to cmail support.

- Integrated another even better version of cmail from Evan Welsh,
including some code he supplied in xboard itself.

- Minor cleanup on menu sensitivity code.

- Updated man page.

- 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.

3.1, patchlevel 1 -- Wed Jun  1 16:25:11 PDT 1994 -- mann@src.dec.com

- Bug fix: Saving a FEN position while in EditPosition mode with black to
play was showing white to play in the saved position.

- New version of cmail from Evan Welsh.  Looks for UCB Mail in a more
portable way and has some minor bug fixes.

- Old Save Style uses "1. ..." instead of "1..." when black moves after a
comment; more like xboard 3.0's actual style.

- When -debug flag is given to xboard, -v is passed to cmail.

- Minor improvements to Mail Move error messages.

- Larger %a in parser.l, needed for RS/6000 users.

- 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.

- Added HP gcc options to Imakefile, from Mats Nylen.

- Added parser.c.lex and parser.c.flex to the distribution.
