3 This version fixes a bug when copying a game the FEN tag wasn't getting parsed
6 Also fixes a threading issue in pgn_parse_move() if you'd like to use libchess
7 in your own multi-threaded chess game.
12 No longer send SIGINT to the chess engine before each command. I'm not sure
13 how or when this broke things but no longer doing it fixes engine IO.
15 A macro value can now reference other macros and may also contain spaces.
17 Faster history parsing.
19 Fixed multiple game crashes. libchess no longer uses global variables.
21 Preliminary perl support. See README for details.
23 New signing key 0xB140DCE2.
25 New homepage. Please use http://c-board.sourceforge.net/.
27 Other minor fixes and changes. See ChangeLog for details.
32 Board details are now enabled by default.
34 Added configuration parameter color_board_castling to change the castling
35 availability colors when board details is enabled.
37 Added configuration parameter color_board_enpassant. Visible when board
40 The default color for a color definition can be used be specifying '-' as the
43 A more complete clock. Time controls and move increments are now supported.
44 This only works for human/human play at the moment.
46 CBoard now uses nearly zero CPU time.
48 When sent SIGTERM, save all games to save_directory if specified and ~/.cboard
49 if not before quitting.
51 Fixed opening and saving to compressed files. Appending to compressed files is
54 Added form input history for single line input dialogs.
56 A few bugfixes. See ChangeLog for details.
61 The status window is now on top of the roster tag window.
63 Added command line option -C to enable strict castling.
65 A better clock. Each player has its own clock. The input format is the same as
66 before and also supports 'G/5' format. I'll add more features later.
68 A few (some important) bugfixes. See ChangeLog for details.
73 New versioning scheme. It's less confusing and easier for me to use X.X
74 format. I really only work and release on one branch anyway.
76 Added global CTRL-i which copies the current game to a new one.
78 Added -D command line option to enable debugging if debugging was enabled at
81 Added configuration parameter "engine_protocol" which specifies the XBoard
82 protocol that the engine uses. Right now this only means whether to send SAN
83 formatted moves (version 2) or FRFR formatted moves (version 1, the default).
85 Added file browser binding CTRL-e to change the filename expression.
87 Added configuration parameter 'strict_castling'. When enabled a castling move
88 will be invalid if the opponent can attack a castling square, beit the King,
89 Rook or the squares between the two. The default is off. This also adds a
90 keyboard binding CTRL-p to toggle strict castling.
92 New status window line 'Flags' which shows game flags for the current game.
94 Bugfixes and invisible changes. See ChangeLog for details.
99 libchess: Castling bugfix.
101 You can now customize the key bindings for each game mode. The old "bind"
102 configuration parameter has been renamed to "cbind". The new "bind" works like
105 bind <game_mode> <key> <command> [alternate_description]
107 where game_mode is one of play, history or edit. The command is the command
108 associated with the game_mode. See doc/config.example for the default
111 Added macros. When pressing a single key multiple keys can be "pressed"
112 without interaction. This adds a configuration parameter "macro" which looks
115 macro <game_mode> <key> <key_sequence>
117 It's kinda like "bind" but with a key_sequence instead of a command so make
118 sure you specify all the "bind" stuff before "macro" stuff. It's also
119 different in that you can specify "any" as a game_mode so you can access the
125 Added non-blocking message windows, input dialogs and menus. This means that
126 other games can be running while editing tags etc.
128 Added a move history tree menu. From this you can view and edit a moves
129 annotation. RAV will be supported problably in the next release.
131 The board details key 'd' has changed to CTRL-d and annotating a move in
132 history mode now uses the key CTRL-a.
134 A couple bug fixes. See ChangeLog for details.
139 Black opening and history mode fix.
141 Tag window and long value fix.
143 Added frfr2san.pgn to test/.
145 Increased MAX_PGN_NAG from 5 to 8.
147 The "Result" tag is determined by the move validator. Don't trust the result
148 tag from PGN import format unless it's a draw and the result couldn't be
151 -E command line switch fix.
153 When there is no promotion piece in the move text, promote to queen.
155 A few PGN parsing and writing fixes. RAV, NAG, comments and EOG.
157 Fix for copying the cc.data file.
159 Fix installing config.example to PREFIX/share/man/man6.
161 Added Debianization stuff.
166 The move validator is a little more than 5 times faster. The major problem was
167 initializing each games g->b board when a file was parsed. Now g->b has
168 disappeared and a single board is used (caching). I discovered this on
169 accident, learn something new every day. Still not as fast as 0.1.6 though.
171 Switching between games will remember the cursor position and selected piece.
173 Switching playing sides will update the White and Black roster tags.
175 Castling and en passant validation fixes.
177 Resuming a game with a Black opening fixed.
179 FEN tag fix when loading a file.
181 Fixed the 'u'ndo command.
185 Added configuration parameter 'board_details' to enable/disable it by default.
187 Added board details indicator at the lower-right of the board window.
189 Added a move clock for both Black and White. Also added a countdown clock that
190 can be set by pressing 'C' in play mode.
192 When an ambiguous piece was pinned both the pinned piece and the other piece
193 failed validation. This has been fixed.
195 Fixed another SAN bug. If an ambiguous piece was pinned and the other was on
196 the same file the libchess would put the rank next to the piece in the move
197 text rather than the file.
199 Fixed resuming a game from a previous move in the history.
201 SIGTERM and SIGINT are caught and both will have cboard exit cleanly.
203 Black opening fix. Also when saving.
208 Quite a while since the last release, I've lost interest in the project off
209 and on but still keep at it enough to fix and add things. The most important
210 change in this version is better SAN handling. Ambiguities are fixed along
211 with frfr to SAN conversion. There are quite a few internal changes too but
212 unfortunately this version is quite a bit slower than the last do to more
213 functionality. I'm trying to find ways to speed it up though. The PGN portion
214 of the code has been split up into a library "libchess". This allows for easy
215 inclusion into other projects. In-game keys have changed quite a bit. Press F1
216 to see them. Also read the manual page as configuration parameters have been
217 changed/added/removed. Here's the rest of the changes:
219 Switch from CVS to GIT.
221 Lots of FEN tag fixes when parsing, saving and editing the board.
223 When in history mode, the cursor is updated to the last position on the board.
225 Support for Unix 98 ptys.
227 Show the repeat count in the status window.
229 Added command line options -V to only validate a .pgn file, -S to save a PGN
230 formatted game and -R to save a reduced PGN formatted game. The return value
231 of cboard will be 1 if there was a parse error or 0 on success.
233 Added option -t to save custom tags from the configuration file when -S is
236 Added option -E to stop processing the file when a game contains a parse
237 error. Also see configuration parameter stop_on_error in the manual page.
239 A few key bindings have been removed. Press 'F1' in game for help.
241 Added human/human play. Toggle it with the 'H' key.
243 Added engine/engine play. Toggle it with the 'E' key then hit 'g'o!.
245 I've got a new email address. Send any bugs reports patches etc to me at
248 When a piece is selected cboard will only highlight legal squares the piece
251 Updated manual page. Read this because a few configuration parameters have
254 Added game key 'd' to show board details. Details are the enpassant square and
255 castling availability.
257 The parser now supports RAV. Moves are read into the history but the interface
258 is minimal at the moment. Saving also works but is buggy.
260 Support window resizing when in an xterm. Need at least an 80x24 terminal.
262 Support for all engines that utilize the XBoard protocol. Not very well
263 tested. GNUChess and Crafty seem to work fine though.
265 Added configuration parameter 'engine_init' which sends a command to the
266 engine when initialized.
268 The file browser (save/load prompt) supports filters.
270 A "Loading..." window/line when a file is being loaded.
272 Added configuration parameter 'bind' which binds a key to a command to send to
273 the engine when in play mode. Read the manual page.
275 Added key 'W' to show an engine io window.
277 New menu code. Looks better with custom colors. Type ahead searching is buggy
280 Lots of internal, parser, validation and bug fixes.
285 A few important save game, validation and file parser fixes.
287 Added command 't' to edit tags. You won't be prompted to edit tags anymore
290 Renamed game deletion commands 'd' and 'D' to 'x' and 'X'. The delete commands
291 also accept a "range" to delete by specifying a count the one of the delete
292 commands then a direction ('<' or '>').
294 Tildes in the load/save dialog are expanded.
296 Added commands '!'-'*' and 'A'-'H' to move the cursor to the specified
299 Move numbers and tags are no longer needed in a PGN file.
301 The ncurses interface is initialized before trying to parse a file specified
304 The annotation viewing commands '[' and ']' have changed to 'V' and 'v'.
306 The next/prev move text expression keys '}' and '{' have changed to ']' and
309 Added game searching commands '?', '}' and '{'. These work like to move text
310 searching commands, but for roster tags instead.
312 Now parses the FEN tag. When editing tags, you can press CTRL-f to insert or
313 update the FEN tag with the current move in the move history.
315 Added command 'e' to toggle edit mode. This will allow positioning, deleting
316 ('x' command) and inserting ('I' command) of pieces. No move validation is
317 done in edit mode and may only be enabled with a fresh board ('N' or 'n'
318 commands). After leaving edit mode, a FEN tag is created. It's somewhat
319 useless right now though.
321 Redone main command keys help.
323 Added commands '_' and '+' to decrease and increase the engine depth. These
329 The repeat count commands are now 0-9. The first non-integer is the command to
330 repeat. So now you can have more than ten as a count. Pressing ESCAPE in the
331 middle of the count will reset it (similar to VIM's repeat).
333 The 'u'ndo command can take a repeat count.
335 Replaced the black and white status windows with a Seven Tag Roster window
336 (like before). The black and white info will be in the game status window.
338 Check and checkmate recognition are working (not draw though).
340 Added history move text searching commands. '/' will prompt for a new regular
341 expression and jump to the next match, '{' and '}' will jump to the previous
342 or next match prompting for an expression if one doesn't already exist. All of
343 these commands can take a repeat count.
345 Move numbers in the history window are full move numbers now. So by default,
346 the cursor keys in history mode will jump 2 moves. Pressing SPACE in history
347 mode will toggle half-move stepping.
349 The "board_moves" color parameter has been replaced by "board_white_moves" and
350 "board_black_moves" to specify the valid move color for those squares.
355 This release fixes a few bugs and plugs a couple memory leaks in the menu code.
356 The SAN move parser still needs quite a bit of work though when interfaced
357 with the engine, so check and end-of-game determination are on hold until that
358 gets stable. But viewing games seems alright. Beginnings of ICS support
359 (ignore the manual references as its useless right now). Hopefully the code is
360 little more readable and easier to follow now. Heres the rest of the news:
362 "make install" will install the data files and example configuration file to
363 DATADIR/cboard (/usr/local/share/cboard by default). They will be copied to
364 ~/.cboard if they cannot be found.
368 Can load and save .Z, .gz, .zip, .bz and .bz2 compressed files. Can't append
369 to a compressed file though (for now).
371 If theres a parse error when loading a file with multiple games, CBoard will
372 keep reading the file rather than aborting.
374 When editing the "Site" tag, you can lookup country codes which are stored in
377 If a filename doesn't contain a ".", then ".pgn" is appended to it when
380 A few but important PGN parser fixes.
382 Tags are sorted when loading and saving.
384 Added command "d" to toggle the delete flag of the current game. Pressing "D"
385 will delete all flagged games or the current one if none are flagged. This
386 adds the configuration parameter "delete_prompt". The default is on.
388 Added configuration parameter "valid_moves" to show valid moves when a piece
389 is selected. The color can be adjusted with the "board_moves" color parameter.
390 The cursor keys will move to the associated valid move. This is still buggy
393 Added cursor repeat commands 0..9 (zero being ten). These will work with the
394 board navigation, history browsing and game browsing keys.
396 Removed cursor movement command 'j', 'k', 'l', and ';'.
398 Added commands 'j' and 'J' to jump to a history move number or game number.
400 Added "board_window" color configuration parameter.
402 Added "engine_cmd" to specify the chess engine path, command and any
403 arguments. The default is "gnuchess xboard". Note that other commands/engines
409 Can now load and save SAN move format! Still not perfect I'm sure.
411 A file browser has been added to the load/save game prompt. Pressing TAB will
414 Added configuration parameter "save_directory". If set, saved games will be
415 stored here and will also be the default open location of the file browser.
417 The annotation viewing keys have changed from 'V' and 'v' to '[' and ']'.
419 Configuration parameters whose values were either "0" or "1" are now "off" or
422 New configuration parameter "line_graphics". If "off", then the board line
423 graphics will not be drawn.
425 The data window has been replaced by two separate white and black player
426 information windows. This adds color configuration parameters white_... and
429 The PGN file parser now supports "!?"/"!!"/etc. NAG format and end-of-game
432 When multiple games are loaded, you can choose to save all games or just the
435 When saving from history mode, you can save up to the current move or all
438 Added configuration parameter "save_prompt" and ingame command "S". When set
439 to "off", don't prompt to edit roster tags and for history save commands when
442 The ingame "N" command has changed to start a new game from scratch. The "n"
443 command starts a new game or round.
445 Added command "D" to delete game.
450 Loading a saved game and resuming a game from previous history works now. This
451 is done by having the chess engine read a FIFO and have CBoard write to it.
452 This allows for easy game switching when more than one game has been loaded.
454 Promotions, En Passant and castling moves are recognized now.
456 Agony strings are stored in ~/.cboard/agony.data and can be disabled with a
457 configuration file option (see below).
459 Rewritten move text section in the PGN parser. Now move annotations are read
460 and written and can be viewed with the 'v' and 'V' commands in history mode.
461 This supports both move comments and NAG data (see below).
463 There is no longer a -f command line option to specify a configuration file.
464 The new configuration file is stored in the ~/.cboard directory along with a
465 few data files. The files that need to be found in this directory are:
467 config - This is optional, CBoard will use defaults if not found.
468 nag.data - For viewing and editing move annotations.
469 agony.data - Agony strings displayed in the status window when a capture
471 fifo - Used for resuming games.
473 You can find the data files along with an example configuration file in the
474 'etc/' directory of the archive. You'll have to copy them over to ~/.cboard
475 yourself until I figure out a way to do it with 'make install'.
477 You can define custom colors and attributes in the configuration file. See the
478 manual page for more infomation on the syntax.
480 Added configuration parameters:
481 pgntag - Define custom tags for new games or override defaults.
482 agony - Show a random agony string on a capture.
483 historyagony - Enable or disable agony strings in history mode.
485 SAN move format is the next major thing that needs to be done. It seems like
486 I'm going in reverse order of how things should be developed, but oh well.