Miscellaneous cleanups and fixes.
[cboard.git] / NEWS
blobd85b669399c6a80fb3ff4133649c1bd7e844cf56
1 CBoard version 0.7.1
2 --------------------
3 Fixed color pair mixing.
5 Added configuration color parameter "color_board_prev_move".
7 Fixed the "engine_init" and "cbind" configuration parameters.
9 Fixed "show_attacks" to work with a rotated board and the en-passant square.
11 Translatable string fixes and updated ES translation.
13 Fixed memory leak when deleting a game.
15 Redraw the entire screen during terminal resize.
17 Let message dialog boxes scroll.
19 Fixed a couple of potential buffer overruns while parsing a move.
21 Restore game flags before returning from pgn_validate_move().
24 CBoard version 0.7.0
25 --------------------
26 Many thanks to Noel Tlatempa G <ntlatempa@gmail.com> most all feature
27 patches in this release.
29 UTF-8 support and gettext support.
31 Unicode chess pieces when -u or 'utf8_pieces' is enabled.
33 Es translation.
35 Ability to rotate the board at the beginning of a round and in history mode.
37 Added option 'coords_y_left' to change sides of the board characters.
39 Added option 'fm_polyglot' to fix quirks with some chess engine interfaces.
40 Sends the 'go' command after beginning a round.
42 Added the 'board_left' config option to put the chess board to the right or
43 left of other windows.
45 Added confirmation before quitting.
47 Added option 'engine_cmd_blacktag' to set the oppenent tag to the engine
48 command line.
50 Added option 'show_attacks' to hilight opponent pieces that can attack the
51 square under the cursor using the 'color_board_attack' color.
53 Fixed castling bug.
55 Fixed game copying.
57 Added big and mega board sizes. These can be viewed when resizing the
58 terminal to 112x40 and 144x50.
60 Minimal terminal size is now 74x23.
63 CBoard version 0.6.1
64 --------------------
65 This version fixes a bug when copying a game the FEN tag wasn't getting parsed
66 correctly.
68 Also fixes a threading issue in pgn_parse_move() if you'd like to use libchess
69 in your own multi-threaded chess game.
72 CBoard version 0.6
73 --------------------
74 No longer send SIGINT to the chess engine before each command. I'm not sure
75 how or when this broke things but no longer doing it fixes engine IO.
77 A macro value can now reference other macros and may also contain spaces.
79 Faster history parsing.
81 Fixed multiple game crashes. libchess no longer uses global variables.
83 Preliminary perl support. See README for details.
85 New signing key 0xB140DCE2.
87 New homepage. Please use http://c-board.sourceforge.net/.
89 Other minor fixes and changes. See ChangeLog for details.
92 CBoard version 0.5
93 --------------------
94 Board details are now enabled by default.
96 Added configuration parameter color_board_castling to change the castling
97 availability colors when board details is enabled.
99 Added configuration parameter color_board_enpassant. Visible when board
100 details is enabled.
102 The default color for a color definition can be used be specifying '-' as the
103 color.
105 A more complete clock. Time controls and move increments are now supported.
106 This only works for human/human play at the moment.
108 CBoard now uses nearly zero CPU time.
110 When sent SIGTERM, save all games to save_directory if specified and ~/.cboard
111 if not before quitting.
113 Fixed opening and saving to compressed files. Appending to compressed files is
114 now supported.
116 Added form input history for single line input dialogs.
118 A few bugfixes. See ChangeLog for details.
121 CBoard version 0.4
122 --------------------
123 The status window is now on top of the roster tag window.
125 Added command line option -C to enable strict castling.
127 A better clock. Each player has its own clock. The input format is the same as
128 before and also supports 'G/5' format. I'll add more features later.
130 A few (some important) bugfixes. See ChangeLog for details.
133 CBoard version 0.3
134 --------------------
135 New versioning scheme. It's less confusing and easier for me to use X.X
136 format. I really only work and release on one branch anyway.
138 Added global CTRL-i which copies the current game to a new one.
140 Added -D command line option to enable debugging if debugging was enabled at
141 compile time.
143 Added configuration parameter "engine_protocol" which specifies the XBoard
144 protocol that the engine uses. Right now this only means whether to send SAN
145 formatted moves (version 2) or FRFR formatted moves (version 1, the default).
147 Added file browser binding CTRL-e to change the filename expression.
149 Added configuration parameter 'strict_castling'. When enabled a castling move
150 will be invalid if the opponent can attack a castling square, beit the King,
151 Rook or the squares between the two. The default is off. This also adds a
152 keyboard binding CTRL-p to toggle strict castling.
154 New status window line 'Flags' which shows game flags for the current game.
156 Bugfixes and invisible changes. See ChangeLog for details.
159 CBoard version 0.2.4
160 --------------------
161 libchess: Castling bugfix.
163 You can now customize the key bindings for each game mode. The old "bind"
164 configuration parameter has been renamed to "cbind". The new "bind" works like
165 this: 
167     bind  <game_mode>  <key>  <command>  [alternate_description]
169 where game_mode is one of play, history or edit. The command is the command
170 associated with the game_mode. See doc/config.example for the default
171 bindings.
173 Added macros. When pressing a single key multiple keys can be "pressed"
174 without interaction. This adds a configuration parameter "macro" which looks
175 like this:
177     macro  <game_mode>  <key>  <key_sequence>
179 It's kinda like "bind" but with a key_sequence instead of a command so make
180 sure you specify all the "bind" stuff before "macro" stuff. It's also
181 different in that you can specify "any" as a game_mode so you can access the
182 global keys.
185 CBoard version 0.2.3
186 --------------------
187 Added non-blocking message windows, input dialogs and menus. This means that
188 other games can be running while editing tags etc.
190 Added a move history tree menu. From this you can view and edit a moves
191 annotation. RAV will be supported problably in the next release.
193 The board details key 'd' has changed to CTRL-d and annotating a move in
194 history mode now uses the key CTRL-a.
196 A couple bug fixes. See ChangeLog for details.
199 CBoard version 0.2.2
200 --------------------
201 Black opening and history mode fix.
203 Tag window and long value fix.
205 Added frfr2san.pgn to test/.
207 Increased MAX_PGN_NAG from 5 to 8.
209 The "Result" tag is determined by the move validator. Don't trust the result
210 tag from PGN import format unless it's a draw and the result couldn't be
211 determined.
213 -E command line switch fix.
215 When there is no promotion piece in the move text, promote to queen.
217 A few PGN parsing and writing fixes. RAV, NAG, comments and EOG.
219 Fix for copying the cc.data file.
221 Fix installing config.example to PREFIX/share/man/man6.
223 Added Debianization stuff.
226 Cboard version 0.2.1
227 --------------------
228 The move validator is a little more than 5 times faster. The major problem was
229 initializing each games g->b board when a file was parsed. Now g->b has
230 disappeared and a single board is used (caching). I discovered this on
231 accident, learn something new every day. Still not as fast as 0.1.6 though.
233 Switching between games will remember the cursor position and selected piece.
235 Switching playing sides will update the White and Black roster tags.
237 Castling and en passant validation fixes.
239 Resuming a game with a Black opening fixed.
241 FEN tag fix when loading a file.
243 Fixed the 'u'ndo command.
245 Cosmetic menu fix.
247 Added configuration parameter 'board_details' to enable/disable it by default.
249 Added board details indicator at the lower-right of the board window.
251 Added a move clock for both Black and White. Also added a countdown clock that
252 can be set by pressing 'C' in play mode.
254 When an ambiguous piece was pinned both the pinned piece and the other piece
255 failed validation. This has been fixed.
257 Fixed another SAN bug. If an ambiguous piece was pinned and the other was on
258 the same file the libchess would put the rank next to the piece in the move
259 text rather than the file.
261 Fixed resuming a game from a previous move in the history.
263 SIGTERM and SIGINT are caught and both will have cboard exit cleanly.
265 Black opening fix. Also when saving.
268 Cboard version 0.2.0
269 --------------------
270 Quite a while since the last release, I've lost interest in the project off
271 and on but still keep at it enough to fix and add things. The most important
272 change in this version is better SAN handling. Ambiguities are fixed along
273 with frfr to SAN conversion. There are quite a few internal changes too but
274 unfortunately this version is quite a bit slower than the last do to more
275 functionality. I'm trying to find ways to speed it up though. The PGN portion
276 of the code has been split up into a library "libchess". This allows for easy
277 inclusion into other projects. In-game keys have changed quite a bit. Press F1
278 to see them. Also read the manual page as configuration parameters have been
279 changed/added/removed. Here's the rest of the changes:
281 Switch from CVS to GIT.
283 Lots of FEN tag fixes when parsing, saving and editing the board.
285 When in history mode, the cursor is updated to the last position on the board.
287 Support for Unix 98 ptys.
289 Show the repeat count in the status window.
291 Added command line options -V to only validate a .pgn file, -S to save a PGN
292 formatted game and -R to save a reduced PGN formatted game. The return value
293 of cboard will be 1 if there was a parse error or 0 on success.
295 Added option -t to save custom tags from the configuration file when -S is
296 specified.
298 Added option -E to stop processing the file when a game contains a parse
299 error. Also see configuration parameter stop_on_error in the manual page.
301 A few key bindings have been removed. Press 'F1' in game for help.
303 Added human/human play. Toggle it with the 'H' key.
305 Added engine/engine play. Toggle it with the 'E' key then hit 'g'o!.
307 I've got a new email address. Send any bugs reports patches etc to me at
308 bjk@luxsci.net.
310 When a piece is selected cboard will only highlight legal squares the piece
311 can move to.
313 Updated manual page. Read this because a few configuration parameters have
314 changed.
316 Added game key 'd' to show board details. Details are the enpassant square and
317 castling availability.
319 The parser now supports RAV. Moves are read into the history but the interface
320 is minimal at the moment. Saving also works but is buggy.
322 Support window resizing when in an xterm. Need at least an 80x24 terminal.
324 Support for all engines that utilize the XBoard protocol. Not very well
325 tested. GNUChess and Crafty seem to work fine though.
327 Added configuration parameter 'engine_init' which sends a command to the
328 engine when initialized.
330 The file browser (save/load prompt) supports filters.
332 A "Loading..." window/line when a file is being loaded.
334 Added configuration parameter 'bind' which binds a key to a command to send to
335 the engine when in play mode. Read the manual page.
337 Added key 'W' to show an engine io window.
339 New menu code. Looks better with custom colors. Type ahead searching is buggy
340 though.
342 Lots of internal, parser, validation and bug fixes.
345 CBoard version 0.1.6
346 --------------------
347 A few important save game, validation and file parser fixes.
349 Added command 't' to edit tags. You won't be prompted to edit tags anymore
350 when saving.
352 Renamed game deletion commands 'd' and 'D' to 'x' and 'X'. The delete commands
353 also accept a "range" to delete by specifying a count the one of the delete
354 commands then a direction ('<' or '>').
356 Tildes in the load/save dialog are expanded.
358 Added commands '!'-'*' and 'A'-'H' to move the cursor to the specified
359 rank/file.
361 Move numbers and tags are no longer needed in a PGN file.
363 The ncurses interface is initialized before trying to parse a file specified
364 on the command line.
366 The annotation viewing commands '[' and ']' have changed to 'V' and 'v'.
368 The next/prev move text expression keys '}' and '{' have changed to ']' and
369 '['.
371 Added game searching commands '?', '}' and '{'. These work like to move text
372 searching commands, but for roster tags instead.
374 Now parses the FEN tag. When editing tags, you can press CTRL-f to insert or
375 update the FEN tag with the current move in the move history.
377 Added command 'e' to toggle edit mode. This will allow positioning, deleting
378 ('x' command) and inserting ('I' command) of pieces. No move validation is
379 done in edit mode and may only be enabled with a fresh board ('N' or 'n'
380 commands). After leaving edit mode, a FEN tag is created. It's somewhat
381 useless right now though.
383 Redone main command keys help.
385 Added commands '_' and '+' to decrease and increase the engine depth. These
386 can take a count.
389 CBoard version 0.1.5
390 --------------------
391 The repeat count commands are now 0-9. The first non-integer is the command to
392 repeat. So now you can have more than ten as a count. Pressing ESCAPE in the
393 middle of the count will reset it (similar to VIM's repeat).
395 The 'u'ndo command can take a repeat count.
397 Replaced the black and white status windows with a Seven Tag Roster window
398 (like before). The black and white info will be in the game status window.
400 Check and checkmate recognition are working (not draw though).
402 Added history move text searching commands. '/' will prompt for a new regular
403 expression and jump to the next match, '{' and '}' will jump to the previous
404 or next match prompting for an expression if one doesn't already exist. All of
405 these commands can take a repeat count.
407 Move numbers in the history window are full move numbers now. So by default,
408 the cursor keys in history mode will jump 2 moves. Pressing SPACE in history
409 mode will toggle half-move stepping.
411 The "board_moves" color parameter has been replaced by "board_white_moves" and
412 "board_black_moves" to specify the valid move color for those squares.
415 CBoard version 0.1.4
416 --------------------
417 This release fixes a few bugs and plugs a couple memory leaks in the menu code.
418 The SAN move parser still needs quite a bit of work though when interfaced
419 with the engine, so check and end-of-game determination are on hold until that
420 gets stable. But viewing games seems alright. Beginnings of ICS support
421 (ignore the manual references as its useless right now). Hopefully the code is
422 little more readable and easier to follow now. Heres the rest of the news:
424 "make install" will install the data files and example configuration file to
425 DATADIR/cboard (/usr/local/share/cboard by default). They will be copied to
426 ~/.cboard if they cannot be found.
428 Linux runtime fixes.
430 Can load and save .Z, .gz, .zip, .bz and .bz2 compressed files. Can't append
431 to a compressed file though (for now).
433 If theres a parse error when loading a file with multiple games, CBoard will
434 keep reading the file rather than aborting.
436 When editing the "Site" tag, you can lookup country codes which are stored in
437 ~/.cboard/cc.data.
439 If a filename doesn't contain a ".", then ".pgn" is appended to it when
440 saving.
442 A few but important PGN parser fixes.
444 Tags are sorted when loading and saving.
446 Added command "d" to toggle the delete flag of the current game. Pressing "D"
447 will delete all flagged games or the current one if none are flagged. This
448 adds the configuration parameter "delete_prompt". The default is on.
450 Added configuration parameter "valid_moves" to show valid moves when a piece
451 is selected. The color can be adjusted with the "board_moves" color parameter.
452 The cursor keys will move to the associated valid move. This is still buggy
453 though.
455 Added cursor repeat commands 0..9 (zero being ten). These will work with the
456 board navigation, history browsing and game browsing keys.
458 Removed cursor movement command 'j', 'k', 'l', and ';'.
460 Added commands 'j' and 'J' to jump to a history move number or game number.
462 Added "board_window" color configuration parameter.
464 Added "engine_cmd" to specify the chess engine path, command and any
465 arguments. The default is "gnuchess xboard". Note that other commands/engines
466 haven't been tested.
469 CBoard version 0.1.3
470 --------------------
471 Can now load and save SAN move format! Still not perfect I'm sure.
473 A file browser has been added to the load/save game prompt. Pressing TAB will
474 enable it.
476 Added configuration parameter "save_directory". If set, saved games will be
477 stored here and will also be the default open location of the file browser.
479 The annotation viewing keys have changed from 'V' and 'v' to '[' and ']'.
481 Configuration parameters whose values were either "0" or "1" are now "off" or
482 "on" respectively.
484 New configuration parameter "line_graphics". If "off", then the board line
485 graphics will not be drawn.
487 The data window has been replaced by two separate white and black player
488 information windows. This adds color configuration parameters white_... and
489 black_...
491 The PGN file parser now supports "!?"/"!!"/etc. NAG format and end-of-game
492 markers.
494 When multiple games are loaded, you can choose to save all games or just the
495 current one.
497 When saving from history mode, you can save up to the current move or all
498 moves.
500 Added configuration parameter "save_prompt" and ingame command "S". When set
501 to "off", don't prompt to edit roster tags and for history save commands when
502 in history mode.
504 The ingame "N" command has changed to start a new game from scratch. The "n"
505 command starts a new game or round.
507 Added command "D" to delete game.
510 CBoard version 0.1.2
511 --------------------
512 Loading a saved game and resuming a game from previous history works now. This
513 is done by having the chess engine read a FIFO and have CBoard write to it.
514 This allows for easy game switching when more than one game has been loaded.
516 Promotions, En Passant and castling moves are recognized now.
518 Agony strings are stored in ~/.cboard/agony.data and can be disabled with a
519 configuration file option (see below).
521 Rewritten move text section in the PGN parser. Now move annotations are read
522 and written and can be viewed with the 'v' and 'V' commands in history mode.
523 This supports both move comments and NAG data (see below).
525 There is no longer a -f command line option to specify a configuration file.
526 The new configuration file is stored in the ~/.cboard directory along with a
527 few data files. The files that need to be found in this directory are:
529     config     - This is optional, CBoard will use defaults if not found.
530     nag.data   - For viewing and editing move annotations.
531     agony.data - Agony strings displayed in the status window when a capture
532                  has been made.
533     fifo       - Used for resuming games.
535 You can find the data files along with an example configuration file in the
536 'etc/' directory of the archive. You'll have to copy them over to ~/.cboard
537 yourself until I figure out a way to do it with 'make install'.
539 You can define custom colors and attributes in the configuration file. See the
540 manual page for more infomation on the syntax.
542 Added configuration parameters:
543           pgntag - Define custom tags for new games or override defaults.
544            agony - Show a random agony string on a capture.
545     historyagony - Enable or disable agony strings in history mode.
547 SAN move format is the next major thing that needs to be done. It seems like
548 I'm going in reverse order of how things should be developed, but oh well.