Between 1.0RC7 and 1.0.0:

	* include/game.h: Make sure SEE cache is initialised to 0 at
	  startup.

	* include/piece_types.h: Use piece_bit_t to encode promotion
	  choices.

	* include/chase.h: Fix chase detection: the retrieved from/to
	  squares were entirely bogus. Avoid using
	  get_move_captured_piece().

	* include/move.h, include/see.h: Retire get_move_captured_piece.

	* include/move.h: Reduce size of pickup encoding to a single
	  square.

	* include/movegen.h, include/variants.h, src/rules/move.cc: Add a
	  prototype version of the Chu Shogi Lion to the test variant (as
	  WFADN0 leaper). Add the ability to store a null-move to the move
	  generator
	  (implemented as a 0-jump). This is output as @@@@ in LAN.

	* include/move.h: Allow encoding of double captures (Lion moves).
	  DO not reset 50 move counter on castling. Make move description
	  agree with what is implemented.

	* include/variants.h: Add Lion definition to test game.

	* include/board.h, include/history.h, include/killer.h,
	  include/move.h, include/search.h, include/see.h: Eliminate
	  get_move_player.

	* include/movegen.h: Try to unwind some of the nested template
	  code. This still does the same,
	  but it leaves the job to the compiler.

	* include/movestring.h: Remove move_is_long_algebraic, it is no
	  longer used.

	* src/xboard.cc: Add longmoves command, which prints out the moves
	  in different formats.

	* include/piece_rules.h: Apply "cyclic" promotions on Shogi pieces:
	  if a + piece is promoted, it reverts to its unpromoted state.

	* src/rules/move.cc, src/rules/san.cc: Correctly output "+" for
	  "promotion" of promotion pieces (subject to change)

	* include/fen.h: Allow multi-character piece encodings in FEN
	  strings. In particular, this allows ' and ! which are allowed
	  extra characters in XBoard.

	* src/xboard.cc: Backport UCI ponder fix from Jazz.

	* src/xboard.cc: Remove stray ;

	* include/game.h: Push pawns more agressively in drop games, since
	  we cannot rely on game phase to activate an end-game term for
	  this.

	* include/eval_param.h, include/game.h: Add general quadratic terms
	  for pawn advancement in piece square tables. The only term
	  currently in use is the quadratic end-game term, but at least the
	  linear MG term may be useful to have as well.

	* include/search.h: Remove unused maxdepth/seldepth output.

	* include/board.h, include/movegen.h, include/variants.h,
	  src/rules/move.cc, variants.txt: Allow promotions on drop moves.
	  Allows for the implementation of Kyoto Shogi.

	* include/game.h, include/movegen.h, include/piece_types.h: Use 32
	  bit integers for piece masks, since we now have 32 piece types.

Between 1.0RC6 and 1.0RC7:

	* include/board.h: Trap illegal square numbers being passed to
	  board.get_piece() in debug mode.

	* include/game.h: Reflect changes in castle rights in the hash key.
	  This needs to be done in "playmove" rather than "makemove"
	  because "makemove" does nt have access to the move generator.

	* include/fen.h: Correct presence of castling and en-passant fields
	  in FEN string for whether these moves occur in a game. Correct
	  full-move counter output in FEN.

	* include/movegen.h: More direct and explicit test of whether
	  promotion moves out of the promotion zone are allowed or not.
	  Again, this should perhaps be a separate flag in the future,
	  instead of being implied by RF_PROMOTION_IN_PLACE.

	* src/xboard.cc: Fix Sittuyin test positions.

	* include/see.h: Do not order non-captures by LVA. This seems to
	  cause problems with optimised builds under Windows.

	* include/movegen.h: Print an error message if a config file
	  defines too many pieces.

	* include/movegen.h: Separate leaper and aleaper counts.

	* include/game.h: Avoid floating point exception when assigning a
	  scaled piece value with a scale of 0

	* include/movegen.h: Proper re-use of stepper descriptions/indices.

	* include/game.h: Print number of pieces of a particular type as
	  output of pieceinfo.

	* include/betza_string.h, include/movegen.h: Rewrite matching of
	  leaper moves to more efficiently reuse existing entries. The code
	  is now simpler as well.

	* include/movegen.h: Rewrite matching of aleaper moves to more
	  efficiently reuse existing entries. The code is now simpler as
	  well.

	* include/variants.h: Promotions are not optional in Makruk.

Between 1.0RC5 and 1.0RC6:
	* src/xboard.cc: Fix compilation if readline is not available.

	* include/movegen.h, include/piece_rules.h, include/piece_types.h,
	  include/variants.h: Fix a problem in Tori Shogi: the drop-rule
	  states a sparrow may not be dropped on a file that has *two*
	  friendly sparrows.

	* include/evaluate.h: Disable game-phase interpolation for variants
	  where captured pieces are
	  returned to the board: material on the board does not reflect
	  game phase in
	  this case.

	* include/movegen.h: Fix a problem with promotions in Shogi: pawn
	  moves out of the optional
	  promotion zone are not optional.

	* include/movegen.h: Better fix for optional promotions in Shogi
	  that does not potentially break
	  EuroShogi.

	* include/move.h: Replace hard-coded numbers with symbolic
	  constants for shifts and masks when building up the move struct.

	* include/move.h: Replace more hard-coded numbers with symbolic
	  constants for shifts and masks when building up the move struct.

	* include/move.h: Replace more hard-coded numbers with symbolic
	  constants for shifts and masks when building up the move struct.

	* include/move.h, include/pieces.h: Replace hard-coded numbers with
	  symbolic constants for shifts and masks when building up piece
	  IDs.

	* include/board.h, include/pieces.h: Remove almost unused piece_t.
	  This also fixes a hidden conversion of unsigned->signed.

	* include/game.h, include/movegen.h, include/piece_types.h,
	  include/search.h: Do not defer promotion (in the search) if this
	  is unneeded because the unpromoted piece has a subset of the
	  moves of the promoted piece. Mainly affects Shogi-like variants.

	* include/piece_types.h, include/pieces.h: Use typedef for piece
	  bitfields (instead of uint16_t).

	* include/movegen.h: Replace 0xffffffff by ~0 for bitmasks
	  representing piece-sets: this makes
	  it agnostic of the size of the bitmask.

	* include/movegen.h: Reuse leaper tables more efficiently by just
	  looping over existing tables at the end (the clever way that
	  avoids this doesn't seem to actually work, and only captures a
	  sub-set anyway). Also fixes a bug where defining a new leaper
	  could clear the aleaper tables.

	* include/movegen.h: Reuse stepper descriptions in the same way as
	  leaper descriptions.

	* include/movegen.h: Make sure piece-type masks have enough space.

	* include/movegen.h, include/pieces.h: We do not need to keep track
	  of the number of sliders and hoppers; to construct the super
	  slider/hopper we only need to keep track of the joined move
	  flags.

	* include/move.h: Re-use piece side encode/decode in move decoding.

	* include/move.h, include/see.h: Fix a bug in MVV/LVA ordering:
	  make sure a move is a capture move before extracting a captured
	  piece.

	* include/betza_string.h: Betza notation for drop moves
	  (future-proofing for XBoard).

	* include/variants.h: Handle arbitrary-length pieceToChar strings
	  in input file.

	* include/search.h: Fix cosmetic typo: use hash_move when storing
	  the counter-move table.

	* include/game.h: Cleanup.

	* include/board.h: Keep track of a separate hash key for the board
	  hash (in addition to the full hash).

	* include/search.h: More agressive pruning of futile drops near the
	  leaves of the tree.

	* include/search.h: Always accept mate scores from the TT,
	  independent of remaining depth: more depth is not going to alter
	  the mate result...

	* include/search.h: Offer a draw if the game lasts extremely long
	  (> 400 moves). This may take some 8 moves or so to trigger for
	  the first time.

	* include/board.h, include/fen.h, include/game.h, include/search.h:
	  Implement detection of "pseudo-repeats" in drop games: these are
	  repeats
	  where the position is repeated, but the holdings are not. In a
	  typical
	  case, we may be leaking pieces to the hand of the opponent -
	  which means we
	  are now worse off than we were when the position occurred last.
	  If this situation is detected, we simply fail low immediately at
	  this node.

	* include/variants.h: Handle arbitrary-length pieceToChar strings
	  in input file: now without crashing (the required size was
	  calculated incorrectly).

	* include/movegen.h: Fix generation of evasions if the checker is a
	  lame leaper (which can be blocked). This caused Sjaak to miss
	  some possible evasions.

	* src/xboard.cc: Switch to force mode after setboard. This is safe
	  to do, but not strictly specified in the protocol.

	* include/evaluate.h, src/xboard.cc: Add another Xiangqi test
	  position, this one testing evasion by blocking a lame leaper.

	* include/evaluate.h: Revert accidental inclusion of change in
	  evaluate.h in last commit.

	* include/eval_param.h, include/game.h: Implement framework for
	  piece value scaling of defensive pieces with game phase. Swap the
	  test for defensive pieces and lame leapers.

	* include/game.h: Fix calculation of pair bonus for defensive
	  pieces, which was completely wrong (resulting in a bonus that was
	  larger than the piece value).

	* include/eval_param.h: Decrease the value of defensive pieces in
	  the end game.
	  This encourages advancing the game phase (exchanging attacking
	  pieces) if
	  we are behind an attacking piece for a defensive piece, and
	  discourages
	  simplification to dead-drawn endings where the advantage consists
	  entirely
	  of defensive pieces.
	  The end point of the scale (0.8 of the nominal value) has not
	  been tuned.

	* include/movegen.h: If promotions are flagged as in-place,
	  disallow optional promotions by moving out of the promotion zone.
	  Fixes a bug in Sittuyin that allowed them.

	* src/xboard.cc: Modularise testing of move generator. Add Sittuyin
	  test position, to handle drop promotions.

	* variants.txt: Add three (four) contributed variants: Euro Shogi,
	  Yari Shogi and Goro goro
	  Shogi (with and without knight/lance in hand).
	  Thanks to Harm-Geert Muller and Keith White.

	* include/move.h: Make move format description match what is
	  actually implemented in the code.

	* include/pieces.h: Increase number of allowed pieces to 32 (up
	  from 16).

	* include/evaluate.h: Revert Shogi forward king-safety patch. It is
	  a regression at longer time controls.

	* include/search.h: Change repetition detection: if the first
	  repetition is in the game history (as opposed to search) do not
	  automatically score the second repetition as a draw if it occurs
	  in the search.

	* src/xboard.cc: Fix a cosmetic mistake when listing variant names
	  for the "Fairy selects" option (stray ,).

	* include/movegen.h: Generalise castle mask code to work along
	  general rays (not just ranks)

	* include/fen.h: Make FEN parsing of castle moves work if king and
	  rook are not on the same rank.

	* variants.txt: Fix board FEN for Troitzky Chess to include dark
	  squares.

	* variants.txt: Fix board FEN for Troitzky Chess to not list
	  castling.

	* include/movegen.h: Guard against accidentally setting
	  off-the-board squares.

	* variants.txt: Added the 'Byway' setup as an alternative to the
	  'Jelliss' setup for Troitzky Chess. This implements castling with
	  a rook that is not on the same rank. This will NOT work in
	  XBoard.

	* include/variants.h: Rename Marshall->Marshal.

	* include/game.h, include/movegen.h, src/xboard.cc: Make rules
	  include pawn doubl-pushes in board output. Add a special
	  "wikirules" command that prints out the rules in a template
	  suitable for putting on a wiki.

	* include/game.h: Fix wiki formatting for bullet lists.

	* include/game.h: Add templated note about rules being
	  auto-generated.

	* include/variants.h: Fix promotion in Shatranj: to queen (ferz)
	  only.

	* include/variants.h: Fix white promotion zone in Gardner
	  Minichess.

	* variants.txt: Fix promotions in Omicron Chess to include Wizard
	  and Champion.

	* include/game.h: Tweaks to Wiki-output for rules. Add a section on
	  promotions, with boards
	  indicating the promotion zones.

	* include/game.h: Clarify drop rules in rule description.

	* include/game.h: Tweaks to wiki-fied output.

	* variants.txt: Fix Black promotion zone for Peasant's Revolt.
	  Cosmetic fix for Corner Chess.

Between 1.0RC4 and 1.0RC5:

	* include/move.h: Fix a bug in decoding the move piece. This seems
	  to have mainly had cosmetic effects, but it is an actual bug that
	  could trip up move matching and things like SEE.

	* include/piece_rules.h, src/rules/move.cc, src/rules/san.cc:
	  Correct SAN output of piece symbol for promoted pieces in Shogi.

	* variants.txt: Mark perpetual check as illegal in Judkins Shogi.

	* include/game.h, include/piece_rules.h, include/piece_types.h,
     include/variants.h, variants.txt: Allow specifying of the optional
     promotion zone, prison and drop-zones from the configuration file. Add
     a new piece property, "drop dead", which means the piece can be
     dropped in locations where it has no legal moves.

	* src/xboard.cc: Fix missing strdup().

	* include/search.h: Fix overzealous pruning of drops near the root
	  to finish a 1-ply search: doing it at greater depth leads to ugly
	  and misleading analysis from shallow searches.

	* src/xboard.cc: Add protocol extension load and unload commands,
	  to load variant definitions on the fly.

	* src/xboard.cc: Invalidate a file before loading it again.

	* include/search.h: Code cleanup: put code to score moves in the
	  move list in its own function.

	* include/search.h: Replace static capture search with actual
	  q-search.

	* include/move.h, include/search.h, include/see.h: Fix a major bug
	  when extracting the side that moved from a move: it was
     always extracted as white. This completely broke SEE for black, and
     broke history and counter-move tables as well by lumping all moves
     from both sides together.  Add proper SEE evaluation of drop moves.

	* src/xboard.cc: Print the correct repetition count for N-fold
	  repetition (instead of just 3)

	* include/board.h, src/xboard.cc: Add "(debug)" to the version
	  number of debugging builds.
	  Add an extra sanity-check/assert in makemove.

	* include/search.h: Re-organise code for pruning decisions. This is
	  a bit cleaner, and allows us to avoid calculating the static
	  evaluationif it is not needed.

	* include/search.h: Get rid of the beta==alpha-1 condition on
	  razoring. First of all it is a bug (should be beta==alpha+1),
	  second of all, razoring in PV nodes is perfectly fine.

	* include/fen.h, include/game.h, include/movegen.h,
	  include/piece_rules.h, include/piece_types.h, include/pieces.h,
	  include/variants.h, src/xboard.cc: Fix parsing of initial state
	  in FEN positions.
     There was a bug that could cause both castle flags to be set if one of
     them was, and the parser did not work correctly for Seirawan-style
	  strings.
	  
     There are a number of caveats with this though, for the interaction
     between backrank virgin pieces and castling rights in s-FEN. There may
     also be issues with shuffle variants on large boards (where 'k'
     denotes a rank, but 'k' is also used to indicate castling rights in
     Omega chess, for instance).

	* include/eval_param.h, include/evaluate.h: Award a penalty to a
	  loose minor (a minor that is not defended by a pawn), scaled with
	  the number of super pieces.

	* include/search.h: Fixes for analysis mode: do not break out early
	  if mate is found or if there is only one move in the current
	  position. If we do reach the end of the line, just wait until
	  we're told to exit analysis mode. Otherwise the engine starts
	  spamming the GUI over and over again until something breaks and
	  things crash.

	* include/search.h: Fixes for analysis mode: do not break out of
	  the analysis loop if asked to analyse in a checkmate position.
	  This floods the output queue.

	* include/fen.h: Make sure king_from was set before trying derive
	  castle flags from it.

	* include/game.h, include/piece_types.h: Add a function to
	  guestimate piece values if none are specified.

	* include/fen.h, include/movegen.h: Make sure variables related to
	  castle moves that are not defined in a variant are well-defined.

	* include/evaluate.h, include/variants.h: Scale piece-values in
	  Shogi by 0.25.

	* include/variants.h: Tune scale-factor for material in Shogi.

	* include/game.h: Tune scale-factor for material in Shogi.

	* include/game.h: Minor tweaks to the piece value guestimator to
	  try to give a better indication of piece strength for asymmetric
	  pieces (it now scores shogi-knight ahead of shogi-lance) as well
	  as take into account the elephantiasis of all pieces promoting to
	  gold generals in shogi.

	* include/eval_param.h, include/evaluate.h: Parameterise space
	  advantage.

	* include/eval_param.h, include/evaluate.h: Minor refactoring and
	  code cleanup for evaluation.

	* include/evaluate.h: Prophylactic commit: penalise the king
	  shelter in shogi if there are empty squares in front of the king.
	  This is a very clear gain at slow time controls, less so at long
	  time controls (test is still running, but doesn't look bad - it's
	  still better).

	* src/xboard.cc: If reading input from a file rather than a
	  terminal, skip comments.

	* include/variants.h: Fix parsing of optional promotion zones from
	  the input file.

	* include/movegen.h: If a move originates within the promotion
	  zone, but not the optional promotion zone, disallow generation of
	  regular move.

	* src/rules/san.cc: SAN output: no need to disambiguate with
	  respect to drop moves.

	* include/variants.h: Ensure that the promotion zone includes the
	  optional promotion zone, if both are set from the config file.

	* include/fen.h, include/game.h, include/search.h: Two unrelated
	  things:
	  
     1. Detect (some) mates in quiescence search: if the path leading to
     mate consists entirely of check/evasion moves, then the mate score
     from quiescence can be trusted and returned.
	  
     2. Record the correct full-move number from the startup FEN (instead
     of always behaving as though it were 1).

	* include/movegen.h: Add a special staged move generation. This is
	  as yet not used much, but it could be.

	* include/mate.h, include/search.h: Add special mate-search code:
	  this is a special search function that uses the staged
	  move-generator. It returns either a mate-score (which is
	  accurate) or a non-mate score (which is arbitrary and should be
	  treated as an indication to continue the regular search).

	* include/fen.h, include/search.h: Fix parsing FEN records that do
	  not include an en-passant square: we don't want to skip over the
	  next field in that case.

	* include/mate.h, include/search.h: Make sure the mate-search is
	  aborted if time runs out.

	* include/search.h: Fix move number in PV output with black to
	  move.

	* include/search.h: Do not break out with a mate score based on the
	  depth of the iteration matching the mate score, but based on the
	  length of the PV matching the distance to mate.

	* include/search.h: Perform a special mate-search close to the root
	  or at great depth in drop variants. Tests as a mild improvement
	  there, can probably be tweaked for more.

	* include/game.h, include/search.h, src/xboard.cc: Add an option to
	  enable/disable the special mate search.

	* include/search.h: Allow for future expansion of the mate-search
	  options.


Between 1.0RC3 and 1.0RC4:

	* include/board.h: Avoid warning about shadowing a member variable
	  of the same name.

	* CMakeLists.txt: Fix make install target for manpage.

	* include/game.h, src/xboard.cc: Fix handling of commands in
	  analysis mode: commands that should act on the
	  root position should not be handled until after we return from
	  the search.

	* src/xboard.cc: Add some FRC/Chess960 castling test positions from
	  Reinhard Scharnagl.

	* src/xboard.cc: Report depth for expected perft positions.

	* src/xboard.cc: Fix a mistake in the perft count for one of the
	  new FRC test positions.

	* include/board.h: Fix a design flaw in makemove: also for swaps,
	  the destination squares need to be cleared before we resolve the
	  drop side of the swap. Not doing this will corrupt the board
	  state in FRC castle positions where the king moves to the rook
	  square.

	* include/fen.h: Correct FEN output strings for boards with virtual
	  ranks/files and holes.
	  Fix a bug where the 50-move counter would be wrong (~arbitrary)
	  for FEN strings that didn't include the field.

	* include/betza_string.h: Fix a bug in the generation of Betza
	  strings for steppers: the direction masks for the Ferz were not
	  properly calculated, leading to a buggy definition of the pawn
	  move in Legan Chess (mF rather than lfmF).

	* include/game.h, src/xboard.cc: Keep track of time at each move,
     so the program will keep proper time during takenback/undo.

	* src/xboard.cc: Remove temporary debugging print statement.

	* include/test_suite.h: Expand STS test suite positions to include
	  the full range of positions.

	* include/test_suite.h, src/xboard.cc: Add STS 13 and 14.
	  Avoid hanging the program in case of a bad testsuite string.
	  Print number of positions that got awarded points (regardless of
	  whether the score is optimal or not) in the intermediate outout.

	* include/variants.h, src/xboard.cc: Add Great Shatranj as a known
	  variant. http://hgm.nubati.net/rules/Great.html or
	  http://www.chessvariants.org/index/msdisplay.php?itemid=MSgreatshatranjm

	* include/variants.h, src/xboard.cc: Add Superchess. XBoard has a
	  bug in that it will publish castling rights if no corresponding
	  rook is present, which will probably mess us up. Fix missing
	  limit on number of black pieces in Great Shatranj.

	* include/variants.h, variants.txt: Allow specifying the maximum
	  number of a particular piece type in the configuration file.

	* variants.txt: Rename Judkins Shogi -> Judkins' Shogi. This
	  changes the short name to 'judkins'.

	* src/xboard.cc: Unload the user-defined variant config file before
	  loading a new one. Reset
	  the options that are sent to XBoard, which updates the variant
	  list.

	* src/xboard.cc: Allow changing whether user-defined variants are
     listed first or not through a config options. This is useful because
     the XBoard variant dialog box is not large enough to contain all
     build-in variants and all user-defined variants defined in the
     standard config file, so some of them will be pushed out.

	* include/movegen.h, src/xboard.cc: Minor cleanup of leaper move
	  generation: use bitboard generation functions where they exist.

	* include/bitboard.h, include/movegen.h: Minor cleanup for
	  calculating "in-between" squares along a ray.
	  Move #define update_leaper_bb to before make_aleaper_bitboard().

	* include/search.h: Spacing of PV output in standard mode.

	* sjaakii.pod, src/xboard.cc: Add -xboard/-uci/-usi/-ucci
	  commandline options to start the engine directly in a particular
	  mode. These aren't really needed, but they serve to suppress the
	  board/prompt output, which may be desirable for some interfaces.

	* include/evaluate.h: Document purpose of evaluation term attacking
	  flags.

	* src/xboard.cc: Fix highlight FEN on normal (non-virtual/omega)
	  boards, which were broken by the fix that made them work for
	  Omega (duh). Fix using input[1] to determine the UCI dialect if
	  -uci/usi/ucci are passed as startup options (reported by Martin).

	* src/rules/san.cc: Fix a bug in the output of SAN moves: the
	  disambiguation didn't work correctly if the alternatives were a
	  regular move and a promotion move: the code would still end up
	  trying to 'disambiguate' by file and rank, rather than by
	  promotion/no promotion.

	* include/movestring.h: Discard '=' token as optional when parsing
	  a string. It is used as a promotion deferral in Shogi, or
	  sometimes in variants of SAN to indicate promotion. Either way,
	  we don't need it, so just skip it.

	* src/xboard.cc: Make it possible to defer commands received while
	  thinking until after we have broken out of the thinking loop.
	  Fixes cases of Sjaak ignoring 'new' while it is thinking, but
	  giving the impression that it handled the command (by responding
	  to ping with the proper pong).

	* include/evaluate.h: Include a space-advantage term, as suggested
	  in http://www.talkchess.com/forum/viewtopic.php?p=609260. No
	  measurable improvement in regular chess, but a massive plus for
	  Gothic chess.

	* src/xboard.cc: Fix an issue with colour-FENs: if there is an
	  optional promotion, the colour of the target square used to
	  depend on the order in which moves are generated. This is no
	  longer the case now, and the square gets the colour for promotion
	  in preference to its default colour.

	* include/variants.h, variants.txt: Allow setting of the number of
	  repeats required to trigger the "repeated position" end-game
	  condition from the config file.

	* include/game.h, include/search.h, include/variants.h,
	  src/xboard.cc, variants.txt: Implement triggering of no_pieces
	  game-end condition.

	* include/game.h, include/search.h, src/xboard.cc: Implement resign
	  and draw offer code (disabled by default)

	* include/game.h, include/search.h, src/xboard.cc: Optionally
	  supress the claiming of repetition draws.

	* include/movegen.h: Do not generate drop moves in QS: they are
	  pruned anyway (for now).

	* include/game.h, include/search.h, include/variants.h,
	  src/xboard.cc, variants.txt: Score "perpetual" seperately from
	  "repeat" (but the same by default). Try really hard to finish the
	  first iteration (up to possibly using all our available time) to
	  avoid the situation where we end up with no move to play.

	* include/game.h, include/search.h: Use finer granularity in
	  clock-testing for drop variants. If we cannot complete the d=1
	  iteration, prefer to use a move from the hash table to playing a
	  random move, if there is one.


Between 1.0RC2 and 1.0RC3:

	* CMakeLists.txt, include/bitboard.h, include/eval_types.h,
	  include/evaluate.h, include/game.h, include/killer.h,
	  include/move.h, include/movegen.h, include/search.h,
	  include/see.h, include/variants.h, src/xboard.cc: Fix many
	  compiler warnings. Enable warnings by default.

	* include/movestring.h: Fix disambiguation of castling move when a
	  piece is gated in.

	* include/fen.h: Ignore squares marked * in a FEN: these are meant
	  to be void (off-board) squares

	* src/xboard.cc: Include promotions in the highlight colour FEN.

	* include/bitboard.h, include/board_rules.h: Fix the double-use of
	  board_files[0] as the file_mask: this will not work
	  correctly if a variant deletes squares from the file.

	* variants.txt: Fix a mistake in the definition of Judkins Shogi:
     the drop restrictions for pawns were accidentally applied to promoted
     pawns instead.

	* variants.txt: Add a new variant: Omicron Chess, which is like
     Omega Chess but on a 12x10 board rather than 12x12. Castling is
     disabled for now and off-board squares are not marked as "dark" to
     avoid crashes in XBoard (this should be purely cosmetic).

	* variants.txt: Replace Wizard pictograph with Wazir (instead of
	  Vortex Chancellor)

	* src/xboard.cc: Get rid of __DATE__ in output because it causes
	  binaries built on different dates to test as different even if
	  they're not. Change order of variants in XBoard variants tag so
	  variants from config files are listed first.

	* variants.txt: Remove outdated and misleading comment.

	* CMakeLists.txt, src/timer/timer.c: Don't try to use the realtime
	  clock if we can't link to librt.

	* CMakeLists.txt, src/timer/timer.c: Better detection of
	  clock_gettime.

	* variants.txt: Set Omicron Chess FEN to black out the deleted
	  squares.

	* src/xboard.cc: Add a config option to mark holes in the board in
     the FEN sent to XBoard.  Needs 4.8+ to work correctly, or XBoard will
     crash. The option is disabled by default for this reason.

	* src/xboard.cc: Flip the default for "mask dark squares" from true
	  to false. This means a work-around needs to be enabled for XBoard
	  4.8

	* include/board.h, include/fen.h, include/movegen.h: Rename
	  ep_capture->ep_victim. It is clearer.

	* include/movegen.h: Not all instances of ep_capture referred to
	  the victim (which is yet another reason to change the name).
	  Change instances where it referred to the destination square
	  accordingly.

	* include/board.h, include/fen.h, include/movegen.h: Replace
	  en-passant square with a bitboard. The idea is that this can hold
	  multiple en-passant squares, for large variants where pawns can
	  move three ranks on their first step (such as Omega Chess)

	* include/board_rules.h, include/fen.h, include/game.h,
	  include/movestring.h, include/squares.h, src/rules/squares.cc:
	  Loosen the connection between the square ID in the FEN string and
	  the bit index on the board. This allows us to make mangled
	  boards, like for Omega Chess, that are larger than 128 bits.
	  Better (more robust) identification of LAN strings. More accurate
	  square-string matching.

	* include/variants.h, src/xboard.cc: Add Omega Chess (not enabled).
     It works, after a fashion, by hacking the movement tables so we can
     fake the 12x12 on a 12x10 board.  Castling is missing (no real reason,
     but XBoard can't do it), SAN input is likely broken, board output is
     broken (it displays the mangled internal view of the board) and
     detecting of mate potential does not work (the routine is not designed
     with holey boards in mind).

	* include/game.h, include/variants.h, src/xboard.cc, variants.txt:
	  Add a "Xboard parent" tag for variants defined in the config
	  file. Needed because "fairy" does not always work correctly.

	* include/chase.h: Fix "may be used uninitialised" warning.

	* include/game.h, include/movegen.h: Apply board mask to leaper
     tables, otherwise "holes" in the board will not be masked out. This is
     not a problem during play, because the move generator applies the mask
     anyway, but it breaks mate potential detection and is generally
     sloppy.  Fix a few issues in the mate potential detection: the
     defending king is allowed an entire quadrant (to take into account
     boards with holes, where we may not just be able to stick the king in
     a corner), but the corner and edge are tested first for efficiency
     reasons.  Discard positions where the attacking king blocks all escape
     squares by itself: such positions are unreachable in legal play. They
     occur in the analysis of Omega Chess and Knightmate.

	* include/betza_string.h, include/variants.h, src/xboard.cc,
	  variants.txt: Enable castling in Omega and Omicron Chess.

	* include/game.h: Fix detection of mating pairs and mate-potential
	  assesment in Omega Chess. It fails to detect that a rook cannot
	  force mate.

	* src/xboard.cc: Send multi-leg moves in two consecutive lines. Not
	  that we generate those at the moment.

	* include/game.h, include/movestring.h, include/xstring.h,
	  src/xboard.cc: Simplify matching of move string to move: instead
	  of parsing the string, simply convert all legal moves to a string
	  and test if the strings match. This is much less error-prone.

	* include/xstring.h: Add missing header files.

	* include/board.h, include/fen.h, include/game.h,
     include/piece_rules.h, include/variants.h, src/rules/squares.cc:
     Change the way the board is printed so "virtual" boards are printed
     accurately. So far, this only affects the output for Omega Chess.

	* src/xboard.cc: Fix a bug in the formatting of the variant list
	  that is printed in response to "variants".

	* include/board.h, include/game.h: Unify the board.print() and
	  board.print_demo_board() routines.

	* CMakeLists.txt, sjaakii.pod: Add a basic manpage.

	* CMakeLists.txt, src/xboard.cc: Rename SVNVERSION->SJAAKIIVERSION.

