Remove redefine of DATADIR that leaked in from v4.7.x
Fix Chu promotion of L, HM and GB

The promotion popup would not be shown for HM and GB with legality testing
on because the piece types used for them were wild-card pieces. The Lance
was treated as a Pawn in HasPrmotionChoice().
Fix name of master settings file in OS X

The name needs to be relative to the bundle path, but ~~ expansion
did not work for compiled-in defaults, as the expansion takes place
when parsing an option. The dataDir is now also kept in an array rather
than as a pointer, to allow it to appear in statically initialized tables.
Overhaul kill code

Engines were not always forcefully killed in XBoard, which could make
the tournament manager hang when an engine became unresponsive to "quit".
The various levels of killing are now revised, and the -delayAfterQuit
is absorbed in DestroyChildProcess(). There is a hard killing mode 9,
which immediately sends SIGKILL, intended for engines that have already
proven to malfunction or could not start at all. In other cases SIGTERM
is sent according to specs, but a SIGKILL is scheduled -delayAfterQuit + 1
sec later just in case the SIGTERM would be ignored.
Add --show-config special option

This prints a list of configure parameters, and then exits. If a second
argument is given, it only prints the value of that config parameter,
so that tricks like cp *.svg `xboard --show-config Datadir`/themes/chu
can be used in install scripts of packages with piece images.
Allow popup of TC and Common Engine from Tournament dialog

A new dialog class MasterDlg was added, similar to TransientDlg,
but to allow two dialogs to be up simultaneously. The Tournament Options
dialog was migrated to this class, so it can now get buttons to pop up
the Time Control and Common Engine dialog, like WinBoard. It even has
a button for the General options dialog.
Special care had to be taken to prevent popdown of the MasterDlg when
a Transient child is still up (similar to browser or error childs).
Fix Tournament Options dialog

Deleting a Label option had renumbered the remaining Options, breaking
the dialog and causing a crash when an engine was selected. A considyency
check is now added to catch this condition, and throw an error popup
when we mess up again.
Add 'Continue later' button to Tournament dialog XB

To do GenericReadout without triggering a call to the OK function,
we introduced a new value for the option-number parameter, -2.
Fix access to ~~/themes/conf for OS X

In OS X DATADIR is a variable.
Fix ManProc for OS X
Allow hide/show of columns in Engine Output

A new persistent Boolean option -memoHeaders enables a new feature:
text headers are shown above the depth, score, nodes, time columns in the
engine output. Right-clicking them will subsequently hide the corresponding
data, and move the column header to above the PV in a 'not shown' list,
where it can be clicked again to re-open the column.
Configure maseter settings to switch -memoHeaders on by default.
Implement extended thinking output

The PV field can now start with three quantities, selective depth,
engine speed and tablebase hits, disguised as PGN comment. XBoard will
strip that off, and allow them to be displayed in separate columns of
the engine-output window.
Handle fali-low & fail high

A ? or ! at the end of the PV are now also written behind the score.
Fix sorting of Engine Output

The moveKey of the top line was never stored, so that more recent
lower scores could not pass it even if they had the same move.
switch to new tbhits protocol

The extended info is now expected as 3 bare integers, the last one
separated from the PV by at least one tab character.
The protocol extension is described in the CECP specs document.
Put fail-high/fail-low indicators in protocol specs
Implement new mate-score standard

Matescores are now indicated in the protocol as +/- 100000+DTM,
and in the Engine Output window as #DTM or #-DTM.
Drag touching edges together (WB)

When an auxiliary window is dragged by an edge, the snap code now checks
if that edge was touching another window. If so, that other window is sized
to keep touching the dragged edge. Unless it was also touching the main
window.
Fix sticky windows on Win8
Fix printing of engine-output headers

They were not printed on analyis of the first position after opening
the Engine Output window.