changelog
- Thu, 03 Sep 2026 12:13:05 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 03 Sep 2026 12:13:05 +0200] rev 214
- make all should really build all (including the tests)
we removed the tests from the all-target initially
because they will cause warnings with compilers not
supporting C23
but we should not care too much about this
- Thu, 03 Sep 2026 11:54:19 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 03 Sep 2026 11:54:19 +0200] rev 213
- add (empty) test suites for all pieces
- Thu, 03 Sep 2026 11:53:58 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 03 Sep 2026 11:53:58 +0200] rev 212
- fix missing test adaptation for pgn_result
relates to #958
- Thu, 03 Sep 2026 11:42:53 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 03 Sep 2026 11:42:53 +0200] rev 211
- merge #958 and #984
- Thu, 03 Sep 2026 11:41:19 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 03 Sep 2026 11:41:19 +0200] rev 210
- replace unnecessary printw() calls with addstr() or addch()
resolves #984
- Wed, 02 Sep 2026 17:11:56 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 02 Sep 2026 17:11:56 +0200] rev 209
- improve error reporting in PGN parser - resolves #958
- Tue, 01 Sep 2026 17:47:07 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 01 Sep 2026 17:47:07 +0200] rev 208
- try different include order to hopefully avoid problems with curses wanting to define bool
- Tue, 01 Sep 2026 17:39:13 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 01 Sep 2026 17:39:13 +0200] rev 207
- prioritize cursesw over ncursesw on BSD because of color problems
- Tue, 01 Sep 2026 16:44:16 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 01 Sep 2026 16:44:16 +0200] rev 206
- fix that error message about non-colored terminals was printed before ending the curses session
- Mon, 31 Aug 2026 18:48:55 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 18:48:55 +0200] rev 205
- add -lsocket on Solaris
- Mon, 31 Aug 2026 18:35:13 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 18:35:13 +0200] rev 204
- try to fix the use of ncurses extensions in colors.h
- Mon, 31 Aug 2026 18:22:04 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 18:22:04 +0200] rev 203
- fix incompatible curses include in colors.c
- Mon, 31 Aug 2026 18:03:50 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 18:03:50 +0200] rev 202
- fix getmaxy() not being available in POSIX curses
- Mon, 31 Aug 2026 17:56:17 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 17:56:17 +0200] rev 201
- add support for long notation with hyphen - resolves #894
- Mon, 31 Aug 2026 17:51:32 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 17:51:32 +0200] rev 200
- fix asyncgetnstr() not being compatible with POSIX curses
- Mon, 31 Aug 2026 17:44:06 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 17:44:06 +0200] rev 199
- fix label before declaration
- Mon, 31 Aug 2026 16:07:21 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 16:07:21 +0200] rev 198
- try to fix errors from outdated curses.h (e.g., older Solaris)
- Mon, 31 Aug 2026 15:49:31 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 31 Aug 2026 15:49:31 +0200] rev 197
- add option to select a specific curses implementation
resolves #981
- Tue, 25 Aug 2026 22:25:33 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 25 Aug 2026 22:25:33 +0200] rev 196
- fix missing include in network.c (was implicit on most Linux systems)
- Tue, 25 Aug 2026 19:42:15 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 25 Aug 2026 19:42:15 +0200] rev 195
- flip File and Rank parameters into correct order
resolves #956
- Tue, 25 Aug 2026 18:59:18 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 25 Aug 2026 18:59:18 +0200] rev 194
- rename Row to Rank
+ fix increase type safety where we overlooked it before
relates to #956
- Tue, 25 Aug 2026 18:35:18 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 25 Aug 2026 18:35:18 +0200] rev 193
- increase type safety + add backwards compatibility including C99
- Mon, 24 Aug 2026 16:13:51 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 16:13:51 +0200] rev 192
- fix how agreeing on a draw works
fixes #980
- Mon, 24 Aug 2026 15:48:19 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 15:48:19 +0200] rev 191
- complete documentation of the network protocol
resolves #938
- Mon, 24 Aug 2026 14:43:33 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 14:43:33 +0200] rev 190
- remove unnecessary fen.h include in main.c
- Mon, 24 Aug 2026 14:38:15 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 14:38:15 +0200] rev 189
- rework network message codes + add NETCODE_ACCEPT_MOVE
relates to #976
- Mon, 24 Aug 2026 14:31:37 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 14:31:37 +0200] rev 188
- change how a game is ended in multiplayer
relates to #976
- Mon, 24 Aug 2026 14:30:47 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 14:30:47 +0200] rev 187
- add test data for games that are one move away from completion
- Mon, 24 Aug 2026 13:42:35 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 13:42:35 +0200] rev 186
- fix regression in network play: we have to transmit capture/check(mate) flags
- Mon, 24 Aug 2026 13:20:19 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 24 Aug 2026 13:20:19 +0200] rev 185
- fix wrong error code when chess rules are violated
+ fix error message for that code
- Sun, 23 Aug 2026 12:19:05 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 23 Aug 2026 12:19:05 +0200] rev 184
- fix byte-order problem in GameInfo and change decline reason to one byte
relates to #976
- Sun, 23 Aug 2026 11:38:27 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 23 Aug 2026 11:38:27 +0200] rev 183
- fix missing byte-order conversion in ntoh_move() and change protocol byte order to little-endian
relates to #976
- Sat, 22 Aug 2026 16:22:05 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 22 Aug 2026 16:22:05 +0200] rev 182
- start fixing the network protocol
relates to #976
documentation issue #938
- Sat, 22 Aug 2026 15:15:52 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 22 Aug 2026 15:15:52 +0200] rev 181
- simplify how the elapsed move time is recorded
relates to #974
- Fri, 21 Aug 2026 20:06:26 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 21 Aug 2026 20:06:26 +0200] rev 180
- fix that client is not sending netcode version back on version mismatch
- Fri, 21 Aug 2026 17:04:43 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 21 Aug 2026 17:04:43 +0200] rev 179
- implement draw due to insufficient material
resolves #951
- Fri, 21 Aug 2026 16:08:50 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 21 Aug 2026 16:08:50 +0200] rev 178
- add create_pgn() function and use it in test-real-pgn
resolves #961
- Mon, 17 Aug 2026 12:22:08 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 17 Aug 2026 12:22:08 +0200] rev 177
- fix FEN being off by one
- Mon, 17 Aug 2026 12:14:51 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 17 Aug 2026 12:14:51 +0200] rev 176
- split DECLINE message into DECLINE and DECLINE_MOVE
resolves #937
- Mon, 17 Aug 2026 12:01:19 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 17 Aug 2026 12:01:19 +0200] rev 175
- allow continuing resigned or (actively) drawn games
resolves #898 and issue #842
- Fri, 14 Aug 2026 13:52:27 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 14 Aug 2026 13:52:27 +0200] rev 174
- add info text in game review for threefold repetition
relates to #843
- Fri, 14 Aug 2026 13:40:26 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 14 Aug 2026 13:40:26 +0200] rev 173
- implement first naive draw by threefold repetition
partially resolves #843
- Fri, 14 Aug 2026 11:35:36 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 14 Aug 2026 11:35:36 +0200] rev 172
- withdraw requirement that PGN parser should work on uninitialized state
- Sun, 09 Aug 2026 14:34:23 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 09 Aug 2026 14:34:23 +0200] rev 171
- add expected game result to test-real-pgn suite
- Thu, 06 Aug 2026 16:11:37 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 06 Aug 2026 16:11:37 +0200] rev 170
- implements stalemate detection + fixes missing const qualifier in new *_moves[_allowed] API
resolves #947
relates to #952
- Thu, 06 Aug 2026 14:45:55 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 06 Aug 2026 14:45:55 +0200] rev 169
- add functions to list the possible moves for each piece
resolves #952
- Sun, 02 Aug 2026 15:19:47 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 02 Aug 2026 15:19:47 +0200] rev 168
- fix unnecessary disambiguation + simplify get_real_threats() code
relates to #932
- Sun, 02 Aug 2026 15:08:43 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 02 Aug 2026 15:08:43 +0200] rev 167
- fix regression: pieces could not threaten fields when pinned
relates to #960
- Sat, 01 Aug 2026 11:26:48 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 01 Aug 2026 11:26:48 +0200] rev 166
- fix regression: pawns cannot block check threats
relates to #960
- Sat, 01 Aug 2026 10:58:39 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 01 Aug 2026 10:58:39 +0200] rev 165
- fix regression: missing promotion when simulating threats
- Sat, 01 Aug 2026 10:53:44 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 01 Aug 2026 10:53:44 +0200] rev 164
- fix bug when parsing checkmate indicator
- Thu, 30 Jul 2026 19:17:38 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 30 Jul 2026 19:17:38 +0200] rev 163
- major refactoring of rules API
- validate_move() no longer alters the game state (fixes #935)
- get_threats() now correctly only reports threats
while get_candidates() reports possible moves (fixes #959)
- qualify GameState and Move parameters as const where possible
- Thu, 30 Jul 2026 18:34:15 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 30 Jul 2026 18:34:15 +0200] rev 162
- add dependency on fen.h for rules.c
- Thu, 30 Jul 2026 11:49:47 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 30 Jul 2026 11:49:47 +0200] rev 161
- convert some macros to static inline functions
also fixes a theoretical memmory access bug in king_isblocked()
- Wed, 29 Jul 2026 13:45:51 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 29 Jul 2026 13:45:51 +0200] rev 160
- refactor rules.h / rules.c
- add meaningful type aliases
- add more useful functions and macros
- increase safety when working with flags and nibbles
- Tue, 28 Jul 2026 13:44:10 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 28 Jul 2026 13:44:10 +0200] rev 159
- add another game to test stalemate detection
relates to #947
- Tue, 28 Jul 2026 13:37:19 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 28 Jul 2026 13:37:19 +0200] rev 158
- gamestate_cleanup() is now safe to be called multiple times
fixes #950
- Tue, 28 Jul 2026 12:58:49 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 28 Jul 2026 12:58:49 +0200] rev 157
- add FEN history to the game state
relates to #872
- Fri, 24 Jul 2026 15:35:06 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Jul 2026 15:35:06 +0200] rev 156
- fix: wrong error code when king moves into check and missing auto-disambiguation when one of the candidate pieces is pinned
fixes #899 and fixes #932
- Fri, 24 Jul 2026 12:53:58 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Jul 2026 12:53:58 +0200] rev 155
- fix: disambiguation by row while capturing was not implemented
fixes #934