Version 1.10b
- Fixed an extremely silly bug in regex/Makefile.in where the 
  makedepends with and without the -p option got exchanged.
- Fixed a few lines in configure for machines that can't redirect the result of
  eval.
Version 1.10a
- If we send out the "toggle client on" command, make sure we are already
  registered as `Passed', so when we get a stats result, there will be a `Me' 
  person (needed for guest, and people who use xgospel for the first time).
- You can now set a log on the rport master connection, which gets transferred
  to the first client.
  Also close sooner if we know the read error from a connect to be fatal.
Version 1.10
- support the `configure' method of compiling on machines without X (using the
  --without-x option). This is mainly for people who want to compile just 
  `rport'. You can't compile xgospel with such a setup of course.
- Further (mainly cosmetic) changes to Makefiles, INSTALL, FAQ and README.
  Are we ready for prime time yet ?
- Fix a few Imakefile problems.
- Revert to the xgospel 1.9 colors. They give better results on mono servers.
  They are a bit less nice to the color map since they use hex codes instead
  of color names.
- If `configure' discovers that your system has standard header files, don't
  repeat the specific test for these header files.
- If xmkmf is run on a completely new system, improve the error message
- If one of the Makefiles got recreated by configure, call the real target
  using a new make so changes do get applied.
- Now that I found at least one system with inconsistent Xlib and Xt versions,
  check for that too.
- Made sure configure and xmkmf work on SP2, RS6000, alpha, solaris, hpux, and
  sunos.
- Shut up some RS6000 compiler warnings. Include <sys/select.h> if available,
  since RS6000 needs these for fd_set.
- Don't use variables named `Time': solaris compiler doesn't like the fact 
  that it also exists as a typedef.
- Many `configure' changes:
   +added a dummy localdepend target, with a sleep 1 for those stupid makes
      that don't resolve time precisely (down with HP)..
   +detect values for ARFLAGS and RM makeflags and set them if make doesn't
   +Don't depend on make being able to do double variable substitution: $($a))
   +also use X_CFLAGS when just running the preprocessor: make it possible
    to run the normal CPP tests using X include files.
   +Added a general rule to detect prototypes.
   +When checking for a variable/function, really use it or the compiler
    might not generate a reference, and the check will always succeed.
   +Remove the double nsl/socket library tests.
- Added a movedist make target for transporting the files that really matter.
- Activate error and kibitz settings in review.
- We don't need to determine the system type anymore. Get extra defines and
  include files from gcc itself.
- distinguish between old style sun and solaris in Imakefile
- Check X release in configure (and complain if before 5)
- removed a bug in `look': it would try to get the AllowSuicide property of a
  non existing game.
- upgraded to autoconf 2.3
- prepared configure for machines whose make has problems with library rules
  These will now leave the .o files when building libraries
- End of review messages have changed on the server. Fixed.
- Adjourn exchange had changed on the server. Fixed.
- Gave the box widgets in reviews, players and games the general name `set',
  so it's easy to set resources that control all of them (or their children).
- updated the documentation a bit (README and INSTALL), still no man page
- split out local autoconf macros to aclocal.m4
- use getlogin on systems that don't have cuserid
- added a menu option to toggle shell resize on players, games and reviews
- upgraded to autoconf 2.2
- rport can now also log what passes through its connections.
- By default use the real version (not the one from the X resources) for the
  main widget title bar. You can also put the compile time in there.
- check whether makedepend supports the -p option and don't use it in the
  subdirectory rules if not.
- You can now set your info from the stats widget.
- The toggle-able parts of your own stats widget are now toggle widgets that
  you can use to change the setting.
- On request by tweet added an automatic disconnect after 45 minutes of 
  inactivity.
- class in widgettree is now also a settable resource.
- Now also analyze the observed/played part of the who command, and keep it up
  to date using the verbose server output. This will give a more accurate idea
  of whether someone is observing/playing a game.
- recognize the output of the users command
- Finally found a way to force a text widget to resize to it's natural size.
  This should allow results/info to appear more natural.
- stats (results) could overflow string buffer. Buffer is now output in safe
  chunks (I hate the fact that you can't easily predict the length of the
  result of an sprintf).
- You could do a move with the wrong color on an analyzeboard if you were
  scrolled back to a point were the other person was to move. Fixed.
- Changed gospel.c such that suicide is optionally allowed. This lead to some
  streamlining of the code there (and even one small bug fix). Needed since IGS
  seems to allow suicide nowadays.
- Added the extra files (relay, relog, rport) for etags and depend processing.
- Added the ability to add kill/pass patterns for tell, broadcast, yell and
  kibitz.
- regex functions got a different prefix (Linux changed to elf libraries, and
  with these even the regex functions in libc would be replaced by mine. Since
  that is overdoing things a bit, I tried to remove all name clashes)
- Added support for the bet command
- Replaced quite a few functions that referred to a player name to refer to a
  player structure: less string operations, less malloc/free
- MyNameToWidget() will now also work on class components (needed in the
  challenge popup resources so the text widgets can have general names)
- rewrote the parsing of a match dispute.
- in "new settings" popup you can now use left/right mouse buttons on the
  command widgets to increase/decrease the values
- New debugging command for viewing the internal clocks: "showcounters".
- You can now set the startup name of a witchet in myxlib using a resource.
  This makes it possible to have different properties using one template.
  Directly used this for stats, should also use it in players, games and
  reviews
- Removed a rather old bug in directly destroying a game: observe data
  structure got freed twice
- Added tearof menus to myxlib (and of course replaced all menus by tearof
  menus if you use the right mouse button).
- Stats now become a centrally managed piece of data instead of something
  that pops up after which the program promptly forgets it exists.
- Changed exceptions such that unless you clear an exception it gets raised
  again (this turned out to be much more common than the previous default of
  always clearing the exception)
  Also provided some initial declarations for exception types.
- In GOE match exchange the IGS message "Match" was replaced by "match".
  xgospel will now accept both.
- Match exchange is now done with a popup (still rather primitive though)
- Added general routines for coupling a toggle widget with a popup widget
- "make depend" and "make TAGS" refered to the wrong directory if
  $(srcdir) != . Fixed.
- Try to force passing of some variables when rechecking the configuration
  This way you don't have to reset these extra CFLAGS and LDFLAGS each time
- Closing a game you are playing will not result in an unobserve anymore
- Sorting method of games/players is now determined by a radio group. Also
  means the resource name changed. Sort booleans in the program settings
  removed.
- removed a few buggy commas in resources.c
- default SmeToggle radio_data now comes from XtName(). The old method does
  not work for objects. (Did it work under R5, or was it always wrong ??)
- SmeToggle radiogroup is now by default one (not zero) of many
- recognize "server full" message.
Version 1.9
- Bug/beep conversion gave a widget name clash. Fixed.
- Removed an alignment problem for alpha in gospel.c
- More casts to avoid warnings on very picky compilers
- added install and uninstall targets to the makefile
- Replaced bug by beep everywhere (changed IGS command)
- Fixed scrollbar in reviews widget.
- When determining own host, prefer fully resolved names
- Don't crash if someone uses broadcast or channels before login
- Made the program work with Xaw3d again (menus broke it).
- Added quit and update buttons to the games, players and reviews widget
- made GNU autoconf the default installation procedure
- added caching for the private autoconf tests
- upgraded to autoconf 2.1
- no more auto reconnect for guests (they cannot be properly shaken down)
- added a replay option in analyze
- added support for systems where you can't set sockets to nonblocking
- added rudimentary builtin TERM support
- fixed problem with pass in review of non 19x19 boards.
- Moved the glint for black stones to the upper left
- Added the ability to "click" or "beep" to the analyze board
  (mainly to make it easier to test the audio device, but who knows, 
   maybe you like all this noise).
- Add support for new "change channel title" message.
- NodeName is now correctly a local sgf property.
- also added builtin pixmaps.
- added "builtin" bitmaps to the String to bitmap converter. This allowed me
  to remove the kludgey bitmap manager from SmeToggle.
- Made a real resource converter from the old String to Pixmap converter
- Fixed the fact that a reviewed game which you are not observed anymore
  would have it's moves forgotten.
- reviews will now generate a new node even if no move is made in the sent
  node.
- Added a string to bitmap converter in myxlib that will also accept pixmaps.
  This makes color icons possible if compiled with Xpm (also makes it
  possible to cause X errors by loading pixmaps in real bitmap fields, but
  fixing that would require a change to the resourcetype of iconPixmap, which
  would require a change too deep in the X libraries).
- update rate of the visible clocks (local, universal, server) is now a
  resource.
- Added a kind of macro-expansion to the widgettree resource. So now:
   - it's easier to change a part of the widget structure from a resource file
   - all resources are less than 1024 bytes in length (The X11 resource
     functions will silently trash memory for resources bigger than BUFSIZ)
  Startup time seems slower though :-(
- Removed a bug in my/showwidgets handling of colormaps
- Made changes to be able to compile on X11R6
- Eat the spurious ^M generated by the % prefix (fixed on the server by now).
- showwidgets.c displayed the value of the Text widget wrap resource
  incorrectly. Fixed.
- preceding a command by "literal " on the command line will turn off all
  xgospel processing of the answer
- Setting resource DumpOnXError to true will now also dump core on an Xt error.
- Replaced stats entries with text widgets so users can use the mouse on them
  for selection.
- Added some support for the score command.
- Review should not have a refresh entry in commands. Removed.
- Only one big comment block per node in an sgf file. Many viewers seem to have
  problems with multiple comments on a node.
- Add support for reviewing games saved in sgf format
- Fixed the GameMessage calls in reviews.c that had spurious newlines
- If a reviewed game does not exist, don't go into a loop.
- Fixed problem with SMT extension on alpha OSF1
- Doing an sgf command now adds the resulting games to the reviewlist
- Fixed the fact that you couldn't start a review from the command line anymore
- goserver.l ECHO rule needs break if YYBREAK is empty !!
  (an invalid char in the parse caused flex to go into YYTERMINATE, so bison
   got an EOF, and xgospel thought the connection was lost. So bison started to
  look for the new login sequence, and never got it. This at last (I hope) 
  explains the very bad error recovery of the xgospel parser).
- Regular expression matching of player entry to decide its widget name 
- Solaris compiler gave some more relevant warnings (why are all these other
  compilers so silent (some glaring type clashes) ?). Fixed.
Version 1.8h
- unobserve game when you quit the last observe widget.
- Fixed CommentFun Free declaration in gospel.h (how is it possible that no
  compiler noticed this before ?)
- parser can now handle an empty player list
- Added improved cast for the XtPointer <-> int conversion. This should reduce
  the warnings on alpha (where sizeof(int) != sizeof(long) == sizeof(void *))
  (I hope it removes all warnings, but the only alpha I have access to only
  has a compiler that doesn't give these warnings)
- CHANGESTRING macro will now also handle NULL strings
- Sparcaudio is now always compiled in. If you want it, you will have to set
  the audiofile resource though (useful now that more machines provide a
  sparc-like /dev/audio, and even sparc users don't always sit behind the 
  console. Also one less thing to understand for somebody who compiles xgospel)
- Fixed the fact that commands from the command line still did printf %.
  substitution from garbage on the stack
- Added alternate setup procedure using GNU configure
   for this also renamed several of the configuration DEFINES
- parse of review command added (only principal variation though)
- error rules in gointer.y improved
- Made scrolling of text in tell/broadcast/channel a bit smoother
- removed bug were it would send a moves command if some game resumed
- use say (not tell) when talking to opponent during scoring
- Some patches for the fact that alpha long is 8 bytes. This causes problems
  with the name server lookup functions. I hope the changes are portable to
  other 8 byte long machines (should still be ok on 4 byte long machines)
- Removed some dependency of internal format of X Callback structures. Makes
  the thing more portable (in particular to alpha OSF1)
- if you get out of client mode you should now be able to give some commands 
  (like toggle client on)
- Removed errors for systems that define const to nothing in the bison files
- Add a panel that allows you to change some login options interactively
- Remove malloc redefines in .y files on systems that have include files
  redefining
 malloc, free and/or calloc.
- Slow down players list update to at most once every n seconds (default 20)
- Ignore tell sent conform.
- removed bug in SetGameTitle
- Imake.options now gets its default settings from the imake Architecture flag
Version 1.8g
- very primitive filtering of commands in the main window for xgospel commands
- connect.c will be more aggressive in eating carriage returns.
  This should help with buggy telnets (mainly AIX).
- On bad telnets it was possible to get stuck in the goserver.l STATUS state.
  This is fixed.
- pointer error causing crash when looking at game fixed.
- Don't send a moves command if we can deduce that no moves have been played
  (improves game startup time)
- when trying to find a reference to a previous game, search for most recent
  first
- If a game log is found to be inconsistent, the game is replaced by an
  equivalent one (this should halt the most common assert exception)
- kludged away the last flex and bison warnings for unused static functions
- title of teaching game is now mentioned on each move. Support added.
- removed the forcenewgame kludge.
- adding to observation list now considered an atomic message
  (in case a game disappears just as you start observing).
- resume directly adds game back to list (without causing a games command)
- remove all alloca() use from the bison generated files
- support for kibitz messages that start at 2 spaces after the 11 (how the heck
  do people send that ?)
- Support for title in teaching game
- Handle the case you get a file that is not a game mailed
- When a move is done, never wait for more then 2 seconds before sending or
  forcing a resync
Version 1.8f
- Changed to newer flex version. My old one could give infinite loops on sun4
- If the connection is lost, your own games now get the adjourned flag
- bug in handling of pass in games by xgospel user solved
- Allow replay (default 1 move/second) of game up to current position
- Fix bug where a game could appear twice in the list
- suppress games/players database warnings when login sequence was not
  finished yet.
- Now show both movenumber of current board, and number of moves played
- Fixed logging on to a user with client mode with the wrong password
- In AixEsa the quark translations bug has now been fixed
  (seems like it was a bug in older X11R5 libraries)
- Analyzeboard left and right mouse buttons now toggle between putting black
  and white stones.
- All things that beeped to announce an event can now also raise their
  corresponding window.
- you can now play teaching game.
- fix for changes in GOE match dead group dispute
- Support for tgmatch and tmatch
- Fixed for new game flags
- Fixed stats, the command now includes whose stats it are
- Made -site and -port behavior like the other options. It should have worked
  like it was, but on some systems it seems not to.
- Fix for changed "mailed" message
- If xgospel notices the start of a new game, it does not directly add an
  entry, but first asks info about that new game. Now this asking has some
  added context so that when the info arrives, it is forced to be a new game,
  and can never be matched with an adjourned game.
- Added just enough functionality to allow a guest to log in and to register
- Removed "unreachable code" warnings from goserver.c
- Changed parsing of byo yomi to allow GOE style "penalty" stones
- Also changed parsing of game resumption to allow for byo yomi message at the
  moment a game gets resumed.
Version 1.8e
  Bug fix version made by obh@ifi.uio.no
Version 1.8d
- Fix bug where players list sorting got really confused (ChangeStrength()
  fix in 1.8c was too aggressive)
- Remove confusing double message about adjourned game
- Error messages for problems with files always used 0 as errno. Fixed.
Version 1.8c
- Fix bug in displaying of players. ChangeStrength() was still using the old
  method.
- Show handicap on observation window
- Really fix bug in undo in analyze.
Version 1.8b
- Remove all '= where possibly == was intended' warnings. Too many compilers
  do this nowadays (Never understood why, since it's a question of programming
  style. The next generation of compilers will probably start checking my
  indentation style :-) ).
- Added code for adjourn exchange
- removed spurious newline from illegal move message
- Added code to estimate IGS server round trip times
- Built in support for GOE match.
- The message you get when your version is out of date is now a resource
  (VersionMessage). This allows language customization.
- Fix bug in undo in analyze
- Fix for change in channel messages format
- Partly fix for upcoming change in who
- Fix for changed numbers in automatch
- Fix for game saved messages with different number, and that they can now
  also happen when the opponent move arrives
Version 1.8a
- Allow copying of new situation into analyze board
- Games started/stopped is batched now -> some speed improvement
- Player connect/disconnect is batched now -> serious speed improvement
- Login sequence turned out to be fooled by the terminal setting commands.
  (only happened when you didn't have client mode at the moment of first login)
Version 1.8
- added support for goe rules
- newmatch message changed (game id added).
- Used xpaint to draw a good wood like backgroundpixmap (board.xpm)
  (It was inspired by (but is different from) the pixmap in xgo)
- Added a bit of code to measure X server round trip times without stopping I/O
  (not used yet, but meant to implement back off when things get slow)
- Colors for the games determined from the strongest player.
- rewrote stone positioning for better results on (correct) X11R5 servers
- arc width/height could become smaller than 0 sending XP12 X server into a
  veeeeeery slooooow update. Fixed.
- erase stones by drawing the background over them. Is faster.
- don't directly close connection when an error occurs on a socket. Sometimes
  we can recover.
- Komi is shown on observe and play board
- displayed results (clicking "stats" on some player) are now filtered
  for entries where the name was just a prefix
- If you played outside the board, it would detect the invalid move, but not
  recover. Now it will just ring the error bell.
- If you do a move, and it is not yet handled by the server, already put the
  position marks. This way the user is sure the mouse click came through.
- improved parsing in pixmap converter (for people using xpm). Now the spaces
  get parsed from the colors.
- Added multi line tell, broadcast, yell and kibitz ability (allows paste of
  multi line text)
- removed pseudo tty from relay.c . Turned out to be too non portable
  (can still be enabled with -DPSEUDOBSD)
- make main widget the real applicationshell. I used to get the same effect
  using groupwindows, but some windowmanagers (gwm) were not fooled (according
  to the specs they should have been though). Success is doubtful, since gwm
  can still not be completely convinced not to put all xgospel windows in one
  icon
- Generalized board wedges to work with backgroundpixmaps (ParentRelative
  and CopyFromParent are still unsupported)
- Added relay.c, allowing connections with an arbitrary amount of connection
  methods in between. Will only work on BSD4.3 alike systems though.
- Improved resynchronization, also because of terrible net. Only send commands
  when the pending responses buffer is empty, so if we send a command we will
  never consider the already received stuff an answer.
- The local flaky net got on my nerves so much that I added an automatic 
  reconnect after 15 seconds of no connection.
- Also give cleanconnection messages if write fails
  Partial writes are still unhandled (exceptions)
- Added wedges to board to indicate the last move
- changed letter positioning in goboard slightly (better centering)
- changed all =* to = * for these compilers that remember the ancient times
  where =* meant `multiply by'
- Fixed elusive redraw bug in GoBoard.c (sometimes it would redraw the outer
  edge of the board without redrawing the stone), resulting in a white stone 
  with a line through it.
- Fixed invalid call to convert move description to coordinates. Would cause
  problems if you started observing at an abnormal move (Pass, Handicap)
- Added option to save in postscript format
- In case of connection problems, we now try to resync by sending newlines
  until connection is reestablished. Then the old command is resent. Before,
  the command was resent again and again, and if response time was extremely
  bad, the pending responses only made things worse (this method fails badly
  if a response does not end with a prompt, which unfortunately happens when
  IGS tries to send too long a response)
- Now sends me real version information, instead of the thing set with *version
- added RS/6000 support. xlc caught some non-ANSI-isms that even gcc -Wall
  didn't complain about (mainly types in WidgetClass declarations). These were
  `fixed' (xlc is probably too precise on its types).

Version 1.7
- Added closure information to SendCommand()
- Added autorated to possible observe window titles
- Connection now uses direct TCP/IP. This means some loss of flexibility with
  the way of connecting, but finally allows full control over the connection
  itself. Now that disconnect can be detected, reconnect has become possible.
- Fixed bug that your own say was saved under the name of the opponent.
- Fix for suddenly appearing "you must PASS" message
- Removed -DYY_USE_PROTOS again. Some ANSI-like compilers have non ANSI
  preprocessors. For non gnu c this means incorrect declarations in the
  lex files.
- Replaced all parsers by 8-bit parsers. Old version could get stuck on an 
  extended character

Version 1.6e

- use `all', `observe' and `unobserve' responses for a better count of the 
  number of observers.
- improved error messages in the .l files in my/
- Added -DYY_USE_PROTOS to the default flags. I'm assuming ANSI C prototypes
  anyways, and it helps for non gcc compilers that don't set __STDC__ .
- Fixed a few va_end's with a wrong variable (some compilers DO care)
- Behave intelligently on `games nr', and use it instead of games when
  possible.
- Renamed all duplicate identifiers in my/TMyprint.c and removed _XtBoolean.
  This should help porting.
- Add CHANGES file to the distribution
- Add FILES file to the distribution
- Improved moves sharing
- Fixed bug in reporting free games
- kept on introducing kludges for automatch until it worked
- Fix for changed byo yomi message
- ChangeStrength passed on to Tell and Game
- Ctrl left mouse on player entry gives debug info on player
- games can be sorted by other criteria than id on server
  (currently by strength of strongest player, if equal by weakest player, and
   if equal by number on the server)
- Version message now gives full ftp instructions
- Do word wrap for very long stats info line
- Sort result of observers query
- Sort result of channels query
- Add "observers" to command menu
- Fixed problem with undo pass and undo handicap
- Fixed bug in resource allocation in my/myxlib.c
- Fixed bug in test code of my/mymalloc.c (some machines are very strict about
  the alignment of longs)
- remove reference to X libraries for link of relog
  
Previous version: 1.6d

The rest of this file exists to make emacs (ispell) happy.

 LocalWords:  Imakefile xgospel Xlib Xt SP fd localdepend ARFLAGS RM makeflags
 LocalWords:  CPP nsl movedist AllowSuicide aclocal rport makedepend tweet GOE
 LocalWords:  widgettree analyzeboard relog etags MyNameToWidget popup witchet
 LocalWords:  showcounters myxlib tearof tearof unobserve SmeToggle XtName SMT
 LocalWords:  radiogroup uninstall NodeName resourcetype iconPixmap BUFSIZ ok
 LocalWords:  showwidgets colormaps DumpOnXError GameMessage reviewlist YYBREAK
 LocalWords:  goserver YYTERMINATE CommentFun CHANGESTRING Sparcaudio audiofile
 LocalWords:  gointer Callback const SetGameTitle forcenewgame resync AixEsa XP
 LocalWords:  movenumber tgmatch tmatch byo yomi obh ifi uio ChangeStrength goe
 LocalWords:  VersionMessage automatch newmatch xpaint backgroundpixmap xgo gwm
 LocalWords:  veeeeeery slooooow Komi DPSEUDOBSD applicationshell groupwindows
 LocalWords:  windowmanagers backgroundpixmaps ParentRelative CopyFromParent va
 LocalWords:  cleanconnection goboard GoBoard isms WidgetClass SendCommand DYY
 LocalWords:  autorated PROTOS end's TMyprint XtBoolean Ctrl mymalloc
 LocalWords:  LocalWords
