Fix vertical sizing of GTK board

The clipping of the boad at the bottom was due to resizing of the clock
height when we first write it with a big font. This patch delays calculation
of the final size until after the clock height changes.
Fix buffer overflow in feature parsing

String features (variants, egt, myname and option) relied on a buf[MSG_SIZ]
for processing their value. The Nebiyu engine had combobox options that
required more than that. All string features are now stored in allocated
memory rather than in static arrays, and StringFeature allocates a buffer
of sufficient size for them. Only limitation now is the low-level input
buffer in the InputSource threads, whih is a static buffer of 4096
(=INPUT_SOURCE_BUF_SIZE) characters.
Accept setup command for non-standard board size

The code to test if board-size is standard for the current variant
has been moved to a subroutine, to allow its calling when receiving
a "setup" command from the engine.
Fix fatal error on unsupported board size

When a board size unsupported by the engine was requested through the
New Variant dialog, this was discovered while the dialog was still up,
causing the error message to pop up as a child of the New Variant dialog,
so that it would immediately be taken down as the latter closed.
As a result it could not be confirmed, so that XBoard would not exit, and
was left in a pathologic state (ignoring window-close). This is fixed
by performing Reset (which detects the error) after PopDown of New Variant.
Fix GTK box popup

Key values > 255 are used for PgUp, PgDown etc., so to pop up only on
printables needs a two-sided test.
Let XBoard -autoBox option also affect move type-in
Fix spurious popup after batch-mode Analyze Game

A batch analysis of games was not properly terminated, because the game
mode was tested after it had already been changed. No oldGameMode is
tested in stead.
Fix saving of analyzed game

Anotated games after batch-mode Analyze Game were not auto-saved,
because the GameEnds() call supposed to do that was called with a NULL
argument for resultDetails. Now it is called with the resultDetails as
pre-existing in the gameInfo, or an empty string if none exist. This bug
was masked by the fact that in standard game ends (mate, etc.) the
analyzing engine would declare game end and supply a message.
 Also makes a distinction between Analyze Game and regular Analyze mode
when resuming analysis after loading a game; only the former now would
trigger a batch analysis.
Provide compatibility with Alien Edition setup command

The setup command of the Alien Edition has a board-size specifier
(possibly as prefix on a parent-variant name) between pieceToCharTable
and FEN. The regular version would choke on that, precluding engines
designed for the Alien protocol extension to have their setup processed
when running under regular XBoard. This patch makes it skip the extra info.
Fix quoting of book name in tourney file

The argument of -polyglotBook was written to the tourney file unquoted,
which effectively made it disappear if it was an empty or blank string.
Fix disappearence of pieces that were moved illegally

Dragging damages the from-square, but it is not marked as such, because
selective board redraws to update highlights and such would draw the piece
that is really still there, making it flash on the from-square before
the position after the move is drawn. This, however, backfires when the
move was illegal, as then there is no draw of a new position, and the
from-square stays empty. For now this is solved by making DisplayMoveError()
order a total redraw. (As this is rare, only done in case of an error,
and might even throw up a pop-up, the performance cost of this is acceptable.)
Fix horrible bug in reading scores from PGN

Reading scores like -0.94 flipped the sign, because the integer part
-0 would read as 0, and thus was no reason for sign flipping.
Print score of final position in Analyze Game

The score/depth of the final position of the analyed game is added
(as an explicit comment) behind the PV of the forelast position.
To make this work, a new 'addBraces' mode (3) had to be added to
AppendComment, which suppresses stripping of the score/depth from
the comment.
Fix GTK SetInsertPos

SetInsertPos() was not yet ported to GTK, with as a result that the cursor
was positioned at the start of a line recalled in the ICS Input Box,
rather than at the end. The code also called SetInsertPos to force scrolling
to that point in the text (which in Xaw is an automatic side effect). So for
multi-line text edits this function calls ScrollToCursor(). For some reason
this does not work when replacing texts in the Chat Box memo, when switching
chat, although it does work in the same memo when a line is added to the
existing text.
Fix scrolling of Chat Box

Seems the problem is that scroll_to_iter does not work until after some time,
needed to calculate line heights. Use scroll_to_mark instead, after clumsily
adding a text_mark.
Make Chat Box window obey -topLevel option

It was always popping up as a dialog of the main board, covering it.
One could argue it should always be to-level.
Fix Xaw file browser

The 'next page' entry of the Xaw file browser contained a \177 character
to keep at sorted at the bottom. This caused trouble for gettext.
Now the sorting range is adapted so the 'next page' is never part of it.
  More seriously, the listbox fill code had a wrong cast when testing for
an empty listbox on the first element, so that it only tested the low byte
of the pointer, in stead of the entire pointer for NULLness. As a result
the contents of the listboxes could suddenly disappear when even when it
was non-empty, because the first filename was allocated at an unlucky address.
Update zippy.README

It is explained how to generate multi-line commands for -zipyGameEnd.
updated Changelog, NEWS, etc.
new version number for release 4.7.1