changelog
    
    
    - Fri, 06 Jun 2025 19:21:03 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 06 Jun 2025 19:21:03 +0200] rev 84
 
    - disabling Unicode pieces is a general option
 
    - Fri, 06 Jun 2025 19:19:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 06 Jun 2025 19:19:14 +0200] rev 83
 
    - fix that network connection is still open during game review
 
    - Thu, 05 Jun 2025 19:05:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 05 Jun 2025 19:05:02 +0200] rev 82
 
    - remove unnecessary loop variable
 
    - Wed, 04 Jun 2025 23:58:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 04 Jun 2025 23:58:05 +0200] rev 81
 
    - fix incorrect error value when a move string is too long in a PGN
 
    - Wed, 04 Jun 2025 23:56:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 04 Jun 2025 23:56:40 +0200] rev 80
 
    - replace _Bool with bool from C23 and/or stdbool.h
 
    - Tue, 03 Jun 2025 08:43:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 03 Jun 2025 08:43:17 +0200] rev 79
 
    - fix debug and release flags after uwproj update + add warnings in debug mode
 
    - Mon, 02 Jun 2025 19:40:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Jun 2025 19:40:24 +0200] rev 78
 
    - improve code structure
 
    - Mon, 02 Jun 2025 19:32:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Jun 2025 19:32:37 +0200] rev 77
 
    - fix missing update of rules in chess subdir
 
    - Mon, 02 Jun 2025 19:16:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Jun 2025 19:16:36 +0200] rev 76
 
    - update uwproj
 
    - Mon, 02 Jun 2025 18:42:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Jun 2025 18:42:41 +0200] rev 75
 
    - fix typo in help text
 
    - Mon, 02 Jun 2025 18:40:26 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Jun 2025 18:40:26 +0200] rev 74
 
    - fix compilation error when using C23
 
    - Mon, 02 Jun 2025 18:39:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Jun 2025 18:39:40 +0200] rev 73
 
    - add .idea folder to .hgignore
 
    - Sun, 01 Oct 2023 13:56:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Oct 2023 13:56:42 +0200] rev 72
 
    - improve Makefiles
 
    - Sun, 01 Oct 2023 12:53:35 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Oct 2023 12:53:35 +0200] rev 71
 
    - add uwproj configure script generator
 
    - Tue, 13 Aug 2019 00:33:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 13 Aug 2019 00:33:59 +0200] rev 70
 
    - pgn parser can now handle comments (although it ignores them for now)
 
    - Tue, 18 Sep 2018 15:02:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Sep 2018 15:02:08 +0200] rev 69
 
    - adds unicode support
 
    - Wed, 29 Aug 2018 17:31:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Aug 2018 17:31:36 +0200] rev 68
 
    - error message when syntactically validating a King's move into a check position is now correct
 
    - Wed, 29 Aug 2018 17:05:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Aug 2018 17:05:40 +0200] rev 67
 
    - verified that checkmate notation does work correctly
 
    - Wed, 29 Aug 2018 15:12:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Aug 2018 15:12:24 +0200] rev 66
 
    - fixes ambiguity resolver in PGN output not resolving ambiguities for diagonally attacking Knights
 
    - Wed, 29 Aug 2018 14:01:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Aug 2018 14:01:41 +0200] rev 65
 
    - PGN output now correctly breaks after black has also moved
 
    - Wed, 29 Aug 2018 13:55:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Aug 2018 13:55:18 +0200] rev 64
 
    - fixes castling not printed correctly to PGN
 
    - Wed, 29 Aug 2018 13:45:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Aug 2018 13:45:13 +0200] rev 63
 
    - move log has now three columns and starts scrolling after 45 moves
 
    - Tue, 28 Aug 2018 15:56:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Aug 2018 15:56:33 +0200] rev 62
 
    - fixes move validation working on old king's position, when the king moves
 
    - Tue, 28 Aug 2018 15:45:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Aug 2018 15:45:44 +0200] rev 61
 
    - fixes wrong macro expansion for is_attacked()
 
    - Tue, 28 Aug 2018 14:37:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Aug 2018 14:37:09 +0200] rev 60
 
    - adds error messages to PGN reader
 
    - Tue, 28 Aug 2018 14:16:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Aug 2018 14:16:30 +0200] rev 59
 
    - fixes inappropriate use of EXIT_ macros + adds a sample PGN file
 
    - Tue, 28 Aug 2018 14:03:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Aug 2018 14:03:09 +0200] rev 58
 
    - simplifies Makefiles
 
    - Tue, 28 Aug 2018 13:45:22 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Aug 2018 13:45:22 +0200] rev 57
 
    - using pkg-config in hand crafted make file
 
    - Mon, 21 Mar 2016 20:35:58 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 21 Mar 2016 20:35:58 +0100] rev 56
 
    - fixed hypthetical bug, where the client address is not correctly retrieved by accept()
 
    - Fri, 26 Feb 2016 11:55:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 26 Feb 2016 11:55:42 +0100] rev 55
 
    - updated copyright and version info
 
    - Wed, 26 Aug 2015 14:46:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Aug 2015 14:46:42 +0200] rev 54
 
    - implemented FEN
 
    - Wed, 26 Aug 2015 12:59:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Aug 2015 12:59:30 +0200] rev 53
 
    - fixed new network games starting with BLACK
 
    - Wed, 02 Jul 2014 15:09:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 02 Jul 2014 15:09:17 +0200] rev 52
 
    - added program version
 
    - Mon, 16 Jun 2014 15:41:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 16 Jun 2014 15:41:06 +0200] rev 51
 
    - added support for game continuation over network + fixed major bug in checkmate anticipation when the king is attacked diagonally
 
    - Mon, 16 Jun 2014 13:45:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 16 Jun 2014 13:45:31 +0200] rev 50
 
    - added pgn parser and writer (without comment support yet) + minor refactorings
 
    - Wed, 11 Jun 2014 16:54:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 11 Jun 2014 16:54:20 +0200] rev 49
 
    - logging string representation of moves in short algebraic notation
 
    - Wed, 11 Jun 2014 15:38:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 11 Jun 2014 15:38:01 +0200] rev 48
 
    - added return code to move validation (for more informative messages) + fixed a bug where simulations added movelist items to the original gamestate
 
    - Wed, 28 May 2014 15:47:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 28 May 2014 15:47:57 +0200] rev 47
 
    - refactoring of getlocation mechanism for better short algebraic notation support (does now respect pinned pieces) + fixed a bug where a pawn could advance through a piece (e.g. e2e4 could jump over a piece on e3)
 
    - Thu, 17 Apr 2014 12:16:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2014 12:16:14 +0200] rev 46
 
    - netcode is now aware of connection losses
 
    - Thu, 17 Apr 2014 11:55:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2014 11:55:36 +0200] rev 45
 
    - removed nonblocking sockets for causing problems and not being necessary
 
    - Thu, 17 Apr 2014 11:41:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2014 11:41:02 +0200] rev 44
 
    - surrender is now resign
 
    - Wed, 16 Apr 2014 22:20:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2014 22:20:59 +0200] rev 43
 
    - changed netcode numbers
 
    - Wed, 16 Apr 2014 21:57:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2014 21:57:53 +0200] rev 42
 
    - fixed bug where an invalid network response lead to an accepted move
 
    - Wed, 16 Apr 2014 21:46:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2014 21:46:34 +0200] rev 41
 
    - faced struct alignment problems
 
    - Wed, 16 Apr 2014 21:16:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2014 21:16:05 +0200] rev 40
 
    - fixed Move struct size inconsistancy across plattforms
 
    - Wed, 16 Apr 2014 20:32:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2014 20:32:25 +0200] rev 39
 
    - mvwasyncgetnstr now echos EOL
 
    - Sat, 12 Apr 2014 13:42:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 12 Apr 2014 13:42:57 +0200] rev 38
 
    - fixed memory underflow bug in mvwasyncgetnstr
 
    - Thu, 10 Apr 2014 12:10:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 10 Apr 2014 12:10:09 +0200] rev 37
 
    - minor improvements by using macros
 
    - Thu, 10 Apr 2014 11:44:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 10 Apr 2014 11:44:55 +0200] rev 36
 
    - reduced awesome great nanosecond precision so we can compile on OS X
 
    - Wed, 09 Apr 2014 18:11:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 09 Apr 2014 18:11:51 +0200] rev 35
 
    - tried to improve colors
 
    - Wed, 09 Apr 2014 12:07:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 09 Apr 2014 12:07:47 +0200] rev 34
 
    - added nonblocking read for network games + minor build system fixes
 
    - Wed, 09 Apr 2014 11:12:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 09 Apr 2014 11:12:04 +0200] rev 33
 
    - implemented time control
 
    - Wed, 09 Apr 2014 09:34:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 09 Apr 2014 09:34:07 +0200] rev 32
 
    - improved async input + improved build system + added time values to move struct
 
    - Tue, 08 Apr 2014 21:13:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 08 Apr 2014 21:13:28 +0200] rev 31
 
    - fixed some type bugs, uninitialized memory and async input function
 
    - Mon, 07 Apr 2014 17:39:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 07 Apr 2014 17:39:46 +0200] rev 30
 
    - experimental async input for single machine mode
 
    - Mon, 07 Apr 2014 14:08:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 07 Apr 2014 14:08:57 +0200] rev 29
 
    - fixed checkmate and completed implementation (more testing is still advised)
 
    - Fri, 04 Apr 2014 17:36:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Apr 2014 17:36:42 +0200] rev 28
 
    - NEED TESTING: implemented check and checkmate - TODO: avoid checkmate by moving another piece in between
 
    - Thu, 03 Apr 2014 16:07:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 03 Apr 2014 16:07:04 +0200] rev 27
 
    - moved checkmate and stalemate flags to gamestate
 
    - Tue, 01 Apr 2014 14:04:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 01 Apr 2014 14:04:00 +0200] rev 26
 
    - introduced single machine mode
 
    - Tue, 01 Apr 2014 12:30:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 01 Apr 2014 12:30:25 +0200] rev 25
 
    - implemented king
 
    - Tue, 01 Apr 2014 10:28:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 01 Apr 2014 10:28:08 +0200] rev 24
 
    - implemented queen
 
    - Mon, 31 Mar 2014 15:03:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Mar 2014 15:03:25 +0200] rev 23
 
    - introduced game state structure
 
    - Mon, 31 Mar 2014 14:08:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Mar 2014 14:08:00 +0200] rev 22
 
    - improved network performance
 
    - Mon, 31 Mar 2014 14:00:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Mar 2014 14:00:58 +0200] rev 21
 
    - implemented rook + some fixes
 
    - Mon, 31 Mar 2014 11:41:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Mar 2014 11:41:08 +0200] rev 20
 
    - added optional alternate config for chess lib
 
    - Mon, 31 Mar 2014 11:16:32 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Mar 2014 11:16:32 +0200] rev 19
 
    - moved chess rules to separate lib
 
    - Sat, 29 Mar 2014 16:53:58 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 29 Mar 2014 16:53:58 +0100] rev 18
 
    - fixed bishop + added pawn promotion + added move log
 
    - Sat, 29 Mar 2014 14:46:33 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 29 Mar 2014 14:46:33 +0100] rev 17
 
    - implemented bishop rules
 
    - Fri, 28 Mar 2014 14:32:52 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 28 Mar 2014 14:32:52 +0100] rev 16
 
    - introduced status codes for get_location to produce detailed error messages + added knight rules
 
    - Fri, 28 Mar 2014 11:45:01 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 28 Mar 2014 11:45:01 +0100] rev 15
 
    - completed pawn rules + bug fixes for 4-char-moves
 
    - Wed, 26 Mar 2014 14:53:15 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Mar 2014 14:53:15 +0100] rev 14
 
    - fixed crucial bug where both players could move at the same time + added pawn rules (TODO: en passant)
 
    - Wed, 26 Mar 2014 14:12:59 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Mar 2014 14:12:59 +0100] rev 13
 
    - completed eval_move
 
    - Wed, 26 Mar 2014 13:16:49 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Mar 2014 13:16:49 +0100] rev 12
 
    - interface for retrieving locations when using short algebraic notation
inverted return values of not yet implemented functions to prevent bugs 
    - Sat, 22 Mar 2014 18:56:52 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Mar 2014 18:56:52 +0100] rev 11
 
    - added network messages for check and checkmate
 
    - Sat, 22 Mar 2014 17:23:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Mar 2014 17:23:07 +0100] rev 10
 
    - prepared code base for implementing rules
 
    - Sat, 22 Mar 2014 16:25:49 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Mar 2014 16:25:49 +0100] rev 9
 
    - implemented castling (without validation)
 
    - Sat, 22 Mar 2014 16:04:02 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Mar 2014 16:04:02 +0100] rev 8
 
    - implemented simple pawn movement
 
    - Wed, 19 Mar 2014 15:36:54 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 19 Mar 2014 15:36:54 +0100] rev 7
 
    - implemented chess board and remis/surrender messages
 
    - Wed, 19 Mar 2014 10:08:25 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 19 Mar 2014 10:08:25 +0100] rev 6
 
    - structured code
 
    - Mon, 17 Mar 2014 15:39:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 17 Mar 2014 15:39:36 +0100] rev 5
 
    - separated server and client module
 
    - Mon, 17 Mar 2014 14:35:53 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 17 Mar 2014 14:35:53 +0100] rev 4
 
    - exit hook
 
    - Thu, 06 Mar 2014 15:03:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 06 Mar 2014 15:03:06 +0100] rev 3
 
    - changed UI to ncurses session + added network handshake
 
    - Sun, 23 Feb 2014 21:03:35 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 23 Feb 2014 21:03:35 +0100] rev 2
 
    - fixed network code + added game info and transmission of game info
 
    - Wed, 05 Feb 2014 14:07:43 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 05 Feb 2014 14:07:43 +0100] rev 1
 
    - added (single) client / server architecture
 
    - Thu, 23 Jan 2014 14:45:34 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Jan 2014 14:45:34 +0100] rev 0
 
    - init project