xboard.git
8 years agoAllow null move in analysis and edit-game mode
H.G. Muller [Wed, 19 Jan 2011 10:46:41 +0000 (11:46 +0100)]
Allow null move in analysis and edit-game mode

In some games it is allowed to pass your turn. The internal
representation picked for such a null move is the drop of an empty
square, (EmptySquare,DROP_RANK,0,0). Computer-algebraic form is "@@@@",
SAN form is "--", (for compatibility with ChessBase / SCID), and the
non-compliant forms "null", "pass"and "Z0" are recognized in
the parser as well. ApplyMove() has to test for this special case
(to not actually clear a1), and a way to enter the pass for the user had
to be found (clicking the opponent clock, like in EditPosition mode).
 The null move is made move irreversible to prevent repetition draws
spanning null moves being adjudicated.
  Such entry of null move is now allowed in AnalyzeMode and EditGame mode.
Because Chess engines will not accept null moves, SendMoveToProgram had
to be adapted to send not the move, but the position after it in
case of a null move. This erases the move history in the engine,
so it will not react to 'undo' for that null move, so BackwardInner
had to be adapted to test for intervening null moves, and if one is
found, approach the target from the other side after loading the
earliest position before it not crossing another null move, and
then loading the moves upto the target.
  XBoard clock clicks had to be fixed, to pay attention to the shift key.

8 years agoGive WinBoard Game List its own font
H.G. Muller [Mon, 25 Jul 2011 19:58:58 +0000 (21:58 +0200)]
Give WinBoard Game List its own font

The font fort he Game List used to be shared with the Engine Output and
Move History windows, but this made it impossible to use a figurine font
in the latter two (which displays piece symbols for capitals) without
messing up the Game List. An option -gameListFont has been added to specify
the font for the Game List(and save it in the settings file), while a
control for it is added in the fonts dialog.

8 years agoFix crash on OK after Save Changes in Tags and Comment popup.
H.G. Muller [Thu, 21 Jul 2011 17:02:01 +0000 (19:02 +0200)]
Fix crash on OK after Save Changes in Tags and Comment popup.

The global variables tagsText and commentText were used to pass
a string obtained from a widget (and thus not malloc'ed), which
caused a crash when the GenericReadout tried to use those variables
for the new value. Fixed by using GenericReadout (which does malloc)
to read out the text,in stead of GetWidgetText.

8 years agoRevert "fixed segfault in xengineoutput", fixed in the backend now (from HGM)
Arun Persaud [Sat, 16 Jul 2011 16:31:12 +0000 (09:31 -0700)]
Revert "fixed segfault in xengineoutput", fixed in the backend now (from HGM)

This reverts commit 33a0e73843115ff6d4eacaf963a38f2e8b20b295.

8 years agoSuppress some XBoard warnings
H.G. Muller [Sat, 16 Jul 2011 12:53:14 +0000 (14:53 +0200)]
Suppress some XBoard warnings

8 years agofixed segfault in xengineoutput
Arun Persaud [Fri, 15 Jul 2011 18:21:29 +0000 (11:21 -0700)]
fixed segfault in xengineoutput

8 years agoDisable -showTargetSquares in ICS mode
H.G. Muller [Mon, 11 Jul 2011 18:04:57 +0000 (20:04 +0200)]
Disable -showTargetSquares in ICS mode

Help like this is considered cheating on FICS, so it is disabled for
all 'classical' ICS variants. (For variants eyont Shogi we don't care.)

8 years agoPut grab on sweep-selecting in Edit Position
H.G. Muller [Sun, 10 Jul 2011 19:20:49 +0000 (21:20 +0200)]
Put grab on sweep-selecting in Edit Position

A right down-click starting a sweep-selection event did not grab the
mouse events, so that an up-click outside the window would go
unnoticed, and the pointer motion stayed coupled to selecting the
piece until the next click. By returning 2 from the RightClick back-end
routine we request the grab.

8 years agoWrite more labels on score axis of eval graph
H.G. Muller [Sat, 9 Jul 2011 11:50:58 +0000 (13:50 +0200)]
Write more labels on score axis of eval graph

The labels for +/-1 and +/-3 are now also written, provided there is
enough space.

8 years agoImprove Eval Graph with -evalZoom and -evalThreshold
H.G. Muller [Sat, 9 Jul 2011 11:28:08 +0000 (13:28 +0200)]
Improve Eval Graph  with -evalZoom and -evalThreshold

The score range between -1 and +1 can now be blown up by a factor
specified through -evalZoom. The threshold below which histogram bars
are no longer printed (wich used to e hard-coded 25 centi-Pawn) can now
be set through the -evalThreshold option.

8 years agoPrint reversible plies done in stead of plies to go
H.G. Muller [Sat, 9 Jul 2011 11:18:07 +0000 (13:18 +0200)]
Print reversible plies done in stead of plies to go

Printing the number of plies left to the draw-adjudication point was
confusing when the N-move rule was set to a non-standard value.
In stead we now print the number of plies since the last irreversible
move, so the user can compare it to both the engine claim point (100)
and the adjudication point he set (which might be beyond 100).

8 years agoLet WB eval graph react ot single left-click
H.G. Muller [Sat, 9 Jul 2011 11:13:49 +0000 (13:13 +0200)]
Let WB eval graph react ot single left-click

Unlike in XBoard, the WinBoard eval graph awatys had required double-
clicking to go the the corresponding move, while there really is no
reason for this, as it is no text edit, and single-clicks have no function
(like select).

8 years agoAdd -scoreWhite option
H.G. Muller [Thu, 7 Jul 2011 17:37:12 +0000 (19:37 +0200)]
Add -scoreWhite option

This is similar to -absoluteAnalysisScores, except that it works in
all modes, and flips the score given by the engines in the engine-output
window when black is to move.

8 years agoPrint 50-move counter in Engine-Output title
H.G. Muller [Thu, 7 Jul 2011 17:28:04 +0000 (19:28 +0200)]
Print 50-move counter in Engine-Output title

8 years agoDisplay score/depth in Eval Graph title
H.G. Muller [Thu, 7 Jul 2011 16:50:56 +0000 (18:50 +0200)]
Display score/depth in Eval Graph title

No longer print it in the comment window.

8 years agoLet -sweepPromotions also work for click-click moves
H.G. Muller [Mon, 4 Jul 2011 09:06:12 +0000 (11:06 +0200)]
Let -sweepPromotions also work for click-click moves

A click-click promotion no longer causes auto-queening, but the down-click
on the to-square causes a Queen to stick to the mouse pointer, and then
allows the user to change it through dragging backwards before releasing it
with an up-click.
  In WinBoard this required a slight change in DragPieceBegin, because
the dragged piece there only was made visible when the mouse pointer
actually started moving (and dragInfo.pos was set), presumably under the
assumption that before mouse move the piece was already on the clicked
square. Which in the case of a to-square was of course not true. (Because
a piece jumps to the mouse pointer when the click is not centered on a
square, this gives less jittery static clicks.) So DragPieceBegin has
been given an extra argument now, to indicate whether it should attach
the piece to the mouse pointer immediately.
  To make the click-click sweepPromotions work in Shogi (for which the
drag-drop sweepPromotions could never work, because it is not clear the
piece has a posibility to promote when you pick it up), translation of
the sweep-selected piece to a Shogi promoChar had to e added.

8 years agoImprove -showTargetSquares on click-click moves
H.G. Muller [Mon, 4 Jul 2011 08:45:04 +0000 (10:45 +0200)]
Improve -showTargetSquares on click-click moves

The markers on move targets are now kept when a first click merely
selects a piece, rather than dragging it elsewhere. The second click
(by definition on the to-square) then clears the markers.

8 years agoLet PGN parser accept lower-case piece in drop moves
H.G. Muller [Mon, 4 Jul 2011 09:23:05 +0000 (11:23 +0200)]
Let PGN parser accept lower-case piece in drop moves

The @ sign prevents amiguity with other notations anyway.

8 years agoFix parser.c line endings
H.G. Muller [Mon, 4 Jul 2011 10:42:12 +0000 (12:42 +0200)]
Fix parser.c line endings

8 years agoFix writing searchTime in tourneyFile
H.G. Muller [Wed, 29 Jun 2011 18:29:12 +0000 (20:29 +0200)]
Fix writing searchTime in tourneyFile

This had to be derived from the variable searchTime, which gives it
in seconds, as appData.searchTime (a string in minutes) is not reliable,
as it contains the command-line value, which might have been altered
through the time-control dialog.

8 years agoFix resetting searchTime if other TC mode is chosen (XB)
H.G. Muller [Wed, 29 Jun 2011 18:25:00 +0000 (20:25 +0200)]
Fix resetting searchTime if other TC mode is chosen (XB)

This fixes a bug in the new time-control dialog.

8 years agoFix coords display on large boards
H.G. Muller [Wed, 29 Jun 2011 12:32:43 +0000 (14:32 +0200)]
Fix coords display on large boards

The file indicators can now run upto 'w'. Only the lowest digit
of the rank number is printed, from a table that is valid to 22.

8 years agoFix crash on making too-long FEN
H.G. Muller [Wed, 29 Jun 2011 11:53:00 +0000 (13:53 +0200)]
Fix crash on making too-long FEN

The buffer for in PositionToFEN was only 128 bytes, which was not enough
for large boards such as 19x19 Go. It is enlarged to MSG_SIZ(512) now.
There also is some approximate overflow checking added (but it is not
fool proof in case there are holdings...)

8 years agoFix drop moves on boards with more than 10 ranks
H.G. Muller [Wed, 29 Jun 2011 11:36:26 +0000 (13:36 +0200)]
Fix drop moves on boards with more than 10 ranks

The internal encoding for rank 16 is '@', and thus ambiguous with drop
moves. They were always printed as 16, breaking drop games on large
boards. The ambiguity is now solved (for boards with more than 16 ranks)
by checking if the preceeding letter is upper case, in which case it
cannot be a fileindicator, but must be a piece, and thus a drop.

8 years agoDon't one-click move when legality testing is off
H.G. Muller [Wed, 29 Jun 2011 11:29:38 +0000 (13:29 +0200)]
Don't one-click move when legality testing is off

8 years agoReorder controls in Engine Setings dialog WB
H.G. Muller [Thu, 23 Jun 2011 19:18:11 +0000 (21:18 +0200)]
Reorder controls in Engine Setings dialog WB

To get tabbing through the controls in left-to-right order, they are
now added to the template structure in that order. Also add a tabstop
to Label options, so that JAWS will read those.

8 years agoAdd tab stops in WB generic popup
H.G. Muller [Thu, 23 Jun 2011 12:02:50 +0000 (14:02 +0200)]
Add tab stops in WB generic popup

The WinBoard generic popup did not put tab stops on push buttons,
including the OK and cancel button, with as a consequence that these were
skipped when tabbing through the dialog controls. In addition the tabbing
could not begin before the user selected one of the controls with the mouse.
  Now all buttons have tab stops, and the cancel button is given focus
when the dialog pops up.

8 years agoImplement Grand Chess
H.G. Muller [Thu, 10 Mar 2011 19:06:39 +0000 (20:06 +0100)]
Implement Grand Chess

Grand Chess requires a lot of exceptional handling similar to Superchess
and Great Shatran, because it also allows only promotion to a captured
piece. In addition it shares the enlarged promotion zone with Makruk and
Shogi, as well as the fact that promotion can be deferred. The 10-rank
board furthermore required a better generalization of double-pushes and
e.p. captures. On such a board double puhes are now allowed from 2nd and
3rd rank, e.p. capture from 5th and 4th.

8 years agoAllow promotion to Pawn with legality testing off
H.G. Muller [Fri, 28 Jan 2011 18:20:38 +0000 (19:20 +0100)]
Allow promotion to Pawn with legality testing off

In stead of ImpossibleMove promotionto Pawn now merely is an
IllegalMove, so it can be played with legality testing off.

8 years agoCreate some space in WB New Variant dialog
H.G. Muller [Mon, 24 Jan 2011 14:06:17 +0000 (15:06 +0100)]
Create some space in WB New Variant dialog

8 years agoAllow double-digit rank numbers
H.G. Muller [Mon, 20 Jun 2011 21:53:49 +0000 (23:53 +0200)]
Allow double-digit rank numbers

The parser already understood double-digit numbers on input, and
CoordsToAlgebraic produced them on otput. This patch also fixes sending
of the moves to the computer, for which the moveList was used. The latter
stored 10 as ':', etc,to always get a 4-char move, the characters of which
were frequently being converted to fromY or toY by adding/subtracting ONE.
To not break that the one-character encoding of rank number is kept in
moveList, but in SendMoveToProgram, characters > '9' are converted to
double digits.

8 years agoAdd Absolute Analysis Scores in Genral Options dialog XB
H.G. Muller [Thu, 23 Jun 2011 09:26:48 +0000 (11:26 +0200)]
Add Absolute Analysis Scores in Genral Options dialog XB

8 years agoFix texi file, and update it further
H.G. Muller [Thu, 23 Jun 2011 09:16:34 +0000 (11:16 +0200)]
Fix texi file, and update it further

8 years agoModified po
H.G. Muller [Mon, 20 Jun 2011 10:15:14 +0000 (12:15 +0200)]
Modified po

8 years agoUpdate texi file
H.G. Muller [Wed, 22 Jun 2011 15:51:51 +0000 (17:51 +0200)]
Update texi file

8 years agoRestore echo after ^C in ICS password
H.G. Muller [Wed, 22 Jun 2011 09:02:45 +0000 (11:02 +0200)]
Restore echo after ^C in ICS password

8 years agoFix some warnings
H.G. Muller [Wed, 22 Jun 2011 08:45:27 +0000 (10:45 +0200)]
Fix some warnings

8 years agoIncrease efficiency of SAN generation / disambiguation
H.G. Muller [Sun, 19 Jun 2011 18:30:09 +0000 (20:30 +0200)]
Increase efficiency of SAN generation / disambiguation

**************** Risky patch! **********************
The algorithm used for disambiguating and generating SAN was extremely
inefficient, because it generated all pseudo-legal moves from the relevant
position, and then for each of those did a check test (involving generation
of all moves of the opponent), before determining if the move matched the
(proposed or given) SAN move. While it is pointless to generate moves
with a piece that does not match (let alone checking them for legality).
And for a piece that matches, it is pointless to test legality of moves
that do not match the to-square.
  To speed up the process GenLegal and GenPseudoLegal have been equiped
with an argument that can indicate the piece type of the required move,
so they can skip generating moves with other pieces. TestLegality,
Disambiguate and CoordsToAlgebraic make use of this facility, and set also
(through global variables rFilter and fFilter) a to-square filter to be
applied in the GenLegalCallback before it tests the move for legality.
  This patch is especially tricky for Crazyhouse, where the piece indicated
in the move might not be the piece actually on the board, because the latter
is a promoted Pawn, and has to be demoted toits base type before the
comparison.

8 years agoFix compile errors WinBoard
H.G. Muller [Sun, 19 Jun 2011 14:18:15 +0000 (16:18 +0200)]
Fix compile errors WinBoard

The patch to make non-existing options non-fatal broke WinBoard. All calls
to ExitArgError from it now supply a third argument TRUE to fix it.

8 years agoAdd -fSAN / -sSAN options
H.G. Muller [Sun, 19 Jun 2011 12:28:09 +0000 (14:28 +0200)]
Add -fSAN / -sSAN options

These options force the PV of the applicable engine to be converted to SAN.
They make use of the existing ParsePV routine, after shelfing a possible
PV (from user PV walking) to free the space after the last move.
Could be costly in terms of CPU usage.

8 years agoCure flicker in Move History window, fix highlighting
H.G. Muller [Sun, 19 Jun 2011 08:56:25 +0000 (10:56 +0200)]
Cure flicker in Move History window, fix highlighting

The highlighting of the current move in the Move List window by selecting
it did not always work, because some other windows were clearing their text
widgets by selecting the contents and killing it, thus snatching the
selection away. This has been changed to setting XtNstring to an empty
string as a method for clearing without side effects on the selection.
As a bonus the Engine Output window now also no longer has the black flicker
on clearing it.
  In addition, triggering a scroll by setting the insertion point to the
end of the text caused excessive flicker in the Move List window, apparently
clearing it and redrawing from scratch, (even if there was no scroll motion),
to the point where on my slow laptop the move history stayed entirely blank
during a rapid succession of moves. This has been combatted by using the
end-of-line action procedure (which does not seem to suffer from this) to put
the insertion point at the end, when we need to scroll to close to the end.

8 years agoFix crash on clearing new Move List window
H.G. Muller [Sat, 18 Jun 2011 21:48:13 +0000 (23:48 +0200)]
Fix crash on clearing new Move List window

When a new game started and a previous game had filled the Move List
window, a crash occurred because an attempt was made to undo the
highlighting of a no-longer-existing move, and then scrolling to it.

8 years agoUse sound for ICS tells also with engine telluser popups
H.G. Muller [Sat, 18 Jun 2011 18:46:57 +0000 (20:46 +0200)]
Use sound for ICS tells also with engine telluser popups

The telluser and tellusererror commands now can be assigned a sound.

8 years agoAdd Score in Move List option to general options dialog XB
H.G. Muller [Sat, 18 Jun 2011 18:45:12 +0000 (20:45 +0200)]
Add Score in Move List option to general options dialog XB

Now that we have a WinBoard-style Move History window, this option is
no longer a no-op in XBoard.

8 years agonew developer release
Arun Persaud [Sat, 18 Jun 2011 19:42:41 +0000 (12:42 -0700)]
new developer release

8 years agoupdated Changelog, NEWS, etc.
Arun Persaud [Sat, 18 Jun 2011 19:38:32 +0000 (12:38 -0700)]
updated Changelog, NEWS, etc.

8 years agoUpdate window itle after last game of match
H.G. Muller [Sat, 18 Jun 2011 10:51:10 +0000 (12:51 +0200)]
Update window itle after last game of match

The result printed behind player names during a match would still be the one
without the game, differing from what the popup would show, which looked
sloppy enough for people to complain about it.
.

8 years agoMake WB generic popup translatable
H.G. Muller [Sat, 18 Jun 2011 08:26:31 +0000 (10:26 +0200)]
Make WB generic popup translatable

When used for internal settings (as in the Load Engine and Tournament
Options dialogs), the option names are now subectto translation.

8 years agoRedo Move History with generic popup in WinBoard style
H.G. Muller [Fri, 17 Jun 2011 19:05:00 +0000 (21:05 +0200)]
Redo Move History with generic popup in WinBoard style

The use of color and boldness to make the move list more readable
unfortunately cannot work in Xaw; reverse video by selection is used as an alternative to highlight the current move.

8 years agoRemove stray else
H.G. Muller [Fri, 17 Jun 2011 19:19:41 +0000 (21:19 +0200)]
Remove stray else

Due to an erroneous else, the window parameters of Move History were
not retreived (and thus incorrectly saved) when the Engine Output was up.

8 years agoMake non-existing opton in settings file non-fatal
H.G. Muller [Tue, 14 Jun 2011 16:47:30 +0000 (18:47 +0200)]
Make non-existing opton in settings file non-fatal

It is rather difficult to recover from a situaton where the settings
file contains an unknown option (e.g. because you downgraded to a
previous version that had fewer options), especially in WinBoard, where
the user settings file is in a hidden folder, and people might not be
able to find it, let alone edit it. By just skipping the line with the
offending option, rather than generating a fatal error, when reading
from a settings file, such options will be automatically purged from the
file as soon as you save settings.
  Small problem is that the user cannot be warned, as the initialization
has not progressed far enough at this point to generate error popups. In
XBoard we can at least print to the console, but in WinBoard there is no
warning at all. But the worst thing that can happen is that new options
in a settings file of a more advanced version will revert to their
defaults.

8 years agoChange long form of -tf option to -tourneyFile
H.G. Muller [Tue, 14 Jun 2011 16:20:37 +0000 (18:20 +0200)]
Change long form of -tf option to -tourneyFile

This is a more logical name, and in the WinBoard docs it was already
described as such. Also remove the -processes option, which in the
current design of the tourney manager is no longer used.

8 years agoFix default of -remoteUser
H.G. Muller [Tue, 14 Jun 2011 16:17:08 +0000 (18:17 +0200)]
Fix default of -remoteUser

This has to be an empty string, rather than NULL, to prevent XBoard from
segfaulting when the -gateway option is used.

8 years agoAdd -at and -opt options as alternative for @
H.G. Muller [Tue, 14 Jun 2011 11:32:38 +0000 (13:32 +0200)]
Add -at and -opt options as alternative for @

Windows XP and Vista shortcuts do not display command lines with @ in
them correctly, and these optionsprovide a work-around for that.

8 years agoFix empty-string option values in XBoard
H.G. Muller [Tue, 14 Jun 2011 10:46:36 +0000 (12:46 +0200)]
Fix empty-string option values in XBoard

8 years agoFix crash on switching sound in Vista
H.G. Muller [Tue, 14 Jun 2011 10:40:11 +0000 (12:40 +0200)]
Fix crash on switching sound in Vista

When choosing a new sound the wave form of the old one was free'ed, but
because built-in sounds are not really malloc'ed, this led to a crash.

8 years agoUpdate WB docs for tourney manager
H.G. Muller [Tue, 14 Jun 2011 10:36:16 +0000 (12:36 +0200)]
Update WB docs for tourney manager

8 years agoAdd icon to WB for tournament files
H.G. Muller [Tue, 14 Jun 2011 10:35:01 +0000 (12:35 +0200)]
Add icon to WB for tournament files

8 years agoRedo Time Control dialog with generic popup
H.G. Muller [Fri, 10 Jun 2011 14:52:01 +0000 (16:52 +0200)]
Redo Time Control dialog with generic popup

As poor-man's disabling of the unneeded input fields, we print the word
"Unused" in them.

8 years agoSome refactoring in xoptions.c to separate out front-end
H.G. Muller [Fri, 10 Jun 2011 12:14:45 +0000 (14:14 +0200)]
Some refactoring in xoptions.c to separate out front-end

8 years agoRedo New Shuffle Game dialog with generic popup
H.G. Muller [Fri, 10 Jun 2011 10:38:08 +0000 (12:38 +0200)]
Redo New Shuffle Game dialog with generic popup

The buttons are slightly renamed, and in stead of having an 'off'
button to clear it, shuffleOpenings now has its own checkbox, which is
ticked when a fixed or dynamic random is chosen with the buttons.

8 years agoFix type of shuffleOpenings
H.G. Muller [Fri, 10 Jun 2011 09:58:17 +0000 (11:58 +0200)]
Fix type of shuffleOpenings

This was a Boolean option, and thus accessed by the args.h code as such,
while it was declared as an int (and used in backend.c as such). This
could have led to problems with different endianness.

8 years agoInternationalize the file browser.
Tim Mann [Fri, 10 Jun 2011 06:57:43 +0000 (23:57 -0700)]
Internationalize the file browser.

The file browser was missed in the previous round of
internationalization and had gotten broken by setting international =
True in its widgets.  I got nothing but segfaults trying to set
international to False in the file browser widget subtree when it was
True in the main window, so I gave up and did the
internationalization.  It turned out to be pretty easy.

As a tiny bonus fix, I removed some ../'s from includes, and you can
now configure and build xboard in a subdirectory again.  This was
useful for building both --enable-nls and --disable-nls from the same
sources to compare functionality and make sure both still work.

8 years agoFix crash at end of Swiss tourney
H.G. Muller [Wed, 8 Jun 2011 18:26:28 +0000 (20:26 +0200)]
Fix crash at end of Swiss tourney

8 years agoFix display of logos
H.G. Muller [Wed, 8 Jun 2011 15:33:34 +0000 (17:33 +0200)]
Fix display of logos

The logo files are now sought relative to the WinBoard install
directory. Non-existing logos cause clearing of the logo, rather than
letting the logo of the prevous engine hang. Logo change is requested
explicitly from the back-end (when an engine is initialized for a new
game), rather than using the kludge in StartChileProcess. This required
a dummy UpdateLogos routine in the XBoard front-end.

8 years agoFix parameter handling in adapter command
H.G. Muller [Wed, 8 Jun 2011 16:02:31 +0000 (18:02 +0200)]
Fix parameter handling in adapter command

A backslash was not considered the end of an option name, which was
fatal for UCCI2WB, which needs %fd\\%fcp in its command line.

8 years agoClear Engine-Output pane when initializing engine
H.G. Muller [Wed, 8 Jun 2011 15:16:54 +0000 (17:16 +0200)]
Clear Engine-Output pane when initializing engine

This to prevent output from the previous game hanging there during the
next game, when the engine that is really playing is in book and
doesn't produce thinking output there.

8 years agoFix display of last move of last match game
H.G. Muller [Wed, 8 Jun 2011 15:20:01 +0000 (17:20 +0200)]
Fix display of last move of last match game

When a game was adjudicated (e.g. because XBoard detected mate) GameEnds
would trigger an exit if it was the last game of the match, and thus
never returned, while the ShowMove was called only after return from
Adjudicate. An extra ToNrEvent is now used in GameEnd in this case to
cause ShowMove to be called before exiting. (Ugly kludge...)

8 years agoFix concurrency in Swiss tourneys
H.G. Muller [Wed, 8 Jun 2011 15:38:43 +0000 (17:38 +0200)]
Fix concurrency in Swiss tourneys

The pairing engine was consulted for the next round before all games of
the previous round were finished, if other XBoard instances were still
playing games. This caused the instances finishing early to stall
indefinitely. This is fixed by moving the Swiss pairing code to after
the syncInterval code. The normal pairing code (the call to Pairing)
must stay before it, because it determines the syncInterval. So ther is
a bit of tourneyType dependence cluttering up the code here. :-(

8 years agoGive error popup when pairing engine fails
H.G. Muller [Wed, 8 Jun 2011 15:27:01 +0000 (17:27 +0200)]
Give error popup when pairing engine fails

An invalid pairing now produces an error popup to inform the user, so he
knows why the tourney stagnates.

8 years agoFix clock mode in tourney starting from -ncp mode
H.G. Muller [Wed, 8 Jun 2011 15:24:41 +0000 (17:24 +0200)]
Fix clock mode in tourney starting from -ncp mode

When a tourney started from -ncp mode, which was allowed in MatchEvent,
because the tourney loads its own engines anyway, the menu enablings and
clockmode where not restored to their 'GNUMode' state.

8 years agoFix round-robin schedule
H.G. Muller [Wed, 8 Jun 2011 15:11:31 +0000 (17:11 +0200)]
Fix round-robin schedule

The first round was played twice, and the formulas used to derive the
pairing were not even-odd resistant anyway. Both even and odd number of
participants should work now.

8 years agoFix interrupting tournament
H.G. Muller [Wed, 8 Jun 2011 15:08:55 +0000 (17:08 +0200)]
Fix interrupting tournament

Stopping a tourney by using the Machine Match menu item did not wor
properly.

8 years agoImprove quoting of engine name on install
H.G. Muller [Wed, 8 Jun 2011 14:57:09 +0000 (16:57 +0200)]
Improve quoting of engine name on install

Rather than always using double quotes for the engine command, the
engine filename is now double-quoted if it contains spaces (and no
double-quotes), and the comand is single-quoted if it contains
double-quotes (and double-quoted otherwise).

8 years agoPrint sensible window title during tourneys
H.G. Muller [Wed, 8 Jun 2011 14:49:18 +0000 (16:49 +0200)]
Print sensible window title during tourneys

Rather than the "(W-L-D)" in the title we now print game number and
total games, plus indication of the tourney type (rr, gt or sw).

8 years agoLet XBoard propose name of tourney file
H.G. Muller [Wed, 8 Jun 2011 14:44:16 +0000 (16:44 +0200)]
Let XBoard propose name of tourney file

Add an option -defaultTourneyName to configure the name that will be
proposed in the Tournament Options dialog's tournament-file field. The
option can contain %y, %M, %d, %h, %m, %s for year, month, day, hour,
mintes, seconds of the curret time in %02d format, or %Y for the year in
%04d format. Any tournament -file name is ignored when no participants
are given. Participants without a tourney file remains an error.

8 years agoImprove Tournament dialog layout WB
H.G. Muller [Wed, 8 Jun 2011 14:30:34 +0000 (16:30 +0200)]
Improve Tournament dialog layout WB

8 years agoFix -matchGames option
H.G. Muller [Wed, 8 Jun 2011 15:05:02 +0000 (17:05 +0200)]
Fix -matchGames option

The new MatchEvent code had broken the -mg option, and used always
-defaultMatchGames in stead.

8 years agoFixed small bugs in several .po files, enabling these translations to
Tim Mann [Tue, 31 May 2011 02:55:13 +0000 (19:55 -0700)]
Fixed small bugs in several .po files, enabling these translations to
be used.  They all probably need more work from the translation team.
I don't speak any of these languages, but I did some spot checks
either from my own knowledge or using Google Translate, and they
generally look sane.

- Several files were in utf8 but needed to be marked as such (that is,
  "CHARSET" changed to "UTF-8").  Affected es.po, it.po, ru.po, vi.po,
  zh_CN.po, zh_TW.po.

- it.po was missing a \n at the end of one translation.

- ru.po had unescaped double-quote marks in one translation.

- vi.po needed to be normalized to Unicode normalization form C.  With
  this fix, more characters display correctly, though at least one is
  still missing in the X core fonts that xboard is able to use.
  See http://vietunicode.sourceforge.net/ for more about Vietnamese.

- zh_HK.po was written in big5 and then utf8-encoded on top of that,
  making it unusable.  I stripped off the spurious utf8 encoding and
  then used recode to convert the file to Unicode properly encoded as
  utf8.

Unfortunately, I wasn't able to test any of the Chinese translations,
as I haven't been able to get XCreateFontSet to work in Chinese
locales with any of the fonts I have installed, even after adding the
Ubuntu language support packages for both simplified and traditional
Chinese.  I did spot check a bunch of the translations using Google
Translate.

I've checked in a couple of tiny Perl scripts that I used to do part
of the fixups on vi.po and zh_HK.po in case we need them again.

8 years agoThe empty string can't be translated and it causes the gettext
Tim Mann [Mon, 30 May 2011 21:12:53 +0000 (14:12 -0700)]
The empty string can't be translated and it causes the gettext
utilities to complain, so change _("") to "".

8 years agoAdd a final wildcard default for fonts. This gives XCreateFontSet
Tim Mann [Mon, 30 May 2011 20:21:06 +0000 (13:21 -0700)]
Add a final wildcard default for fonts.  This gives XCreateFontSet
more freedom and lets it find fonts for some obscure charsets where
fixed-bold or fixed-medium etc. may not have one.

8 years agoAdded "misc-fixed" as a fallback font to handle locales where
Tim Mann [Mon, 30 May 2011 03:14:37 +0000 (20:14 -0700)]
Added "misc-fixed" as a fallback font to handle locales where
adobe-helvetica does not have all the required characters.  The fixed
font is ugly but does have a rather complete set of characters, while
the helvetica font is missing Cyrillic characters (at least on my
distro).  I haven't found a way to get a nicer font that includes
Cyrillic to work with XCreateFontSet, but I don't fully understand
why.  I'll try to improve things further in the future if I figure out
what's all going wrong.

In the process I had to rewrite the code to insert the pixel size into
a font name (replacing a "*" in that field).  The new code is much
more general.

8 years agotranslation: activated Ukrainian translation
Arun Persaud [Sun, 29 May 2011 06:55:42 +0000 (23:55 -0700)]
translation: activated Ukrainian translation

8 years agotranslation: added new Ukrainian PO file from the TP
Arun Persaud [Sun, 29 May 2011 06:41:24 +0000 (23:41 -0700)]
translation: added new Ukrainian PO file from the TP

8 years agoFix display of international characters outside the ASCII range.
Tim Mann [Sun, 29 May 2011 04:07:08 +0000 (21:07 -0700)]
Fix display of international characters outside the ASCII range.

1) Set Xaw resources required for internationalization --
   *international and *fontSet.

2) Untangle the new XFontSet-aware code from the old FindFont code.
   It doesn't make any sense to apply the old (and obsolete) size
   searching code from FindFont to a font set, which contains fonts
   that are all the requested size.

3) With these changes, the -font option doesn't work at all when given
   on the command line.  The -font option actually is parsed by the Xt
   library, used to set the *font resource, and removed from argv
   before xboard can see it, so the option didn't really work properly
   with the new WinBoard-style option framework anyway.  Now that
   -font is even more broken, I changed the documented name of the
   option to -messageFont and changed args.h so the option is saved in
   ~/.xboard as -messageFont.

8 years agoMove "hide thinking" option into alphabetical order.
Tim Mann [Sun, 29 May 2011 04:05:00 +0000 (21:05 -0700)]
Move "hide thinking" option into alphabetical order.

8 years agoFix a size mismatch in scanf. Untested, but the code could not have
Tim Mann [Sun, 29 May 2011 04:01:25 +0000 (21:01 -0700)]
Fix a size mismatch in scanf.  Untested, but the code could not have
worked properly without this fix -- scanf would have written 32-bit
values to 16-bit fields, thus smashing adjacent memory.

8 years agoFix layout tournament Load Engine dialog WB
H.G. Muller [Mon, 23 May 2011 17:05:36 +0000 (19:05 +0200)]
Fix layout tournament Load Engine dialog WB

8 years agoFix ArgTwo warnings
H.G. Muller [Mon, 23 May 2011 17:03:56 +0000 (19:03 +0200)]
Fix ArgTwo warnings

8 years agoAdd Swiss tourneys through pairing engine
H.G. Muller [Mon, 23 May 2011 17:00:00 +0000 (19:00 +0200)]
Add Swiss tourneys through pairing engine

An external program can be designated pairing engine through the new
persistent option -pairingEngine. Defining the option will allow
tourneytype -1 to be chosen for Swiss. In this case the pairing engine
will be queried for a pairing before every new match game, by sending it
the -results string, plus the command 'pairing' + game number.

8 years agoAllow generic dialog to ignore OK
H.G. Muller [Mon, 23 May 2011 15:37:43 +0000 (17:37 +0200)]
Allow generic dialog to ignore OK

The EndMark callback can now suppress popdown of the dialog on OK, when
it somehow does not like the values entered by the user. In XBoard this
required all the callbacks to return a value.
Caveat: A refused OK would still have set all new values given in the
dialog!

8 years agoFix CR in multi-line WinBoard text-edits
H.G. Muller [Mon, 23 May 2011 15:22:58 +0000 (17:22 +0200)]
Fix CR in multi-line WinBoard text-edits

The generic popup did not add CR when strings containing '\n' were
printed in a multi-line text-edit, thus joining the lines. It was also
not possible to type a CR in a multi-line text-edit.

8 years agoLet mentioning completed tourney file add one cycle
H.G. Muller [Mon, 23 May 2011 12:16:17 +0000 (14:16 +0200)]
Let mentioning completed tourney file add one cycle

Secifying a tourney file of a fully completed tourney will now resume
that tourney with another cycle added. When there are still uncomleted
games in the tourney, the usual error message will appear. There are
also error popups added for when the user fails to specify a tourney
file, or gives too few participants.

8 years agoMake engine startup failure non-fatal in WinBoard
H.G. Muller [Mon, 16 May 2011 09:02:08 +0000 (11:02 +0200)]
Make engine startup failure non-fatal in WinBoard

Unlike XBoard, which forks first, the parent process WinBoard has direct
knowledge of a failure to execute the engine command, and used it to
trigger a fatal error. The code doing this has now been disabled. Only
in case of a first engine we switch back to -ncp mode in stead, but no
action is taken to 'bury' the deceased engine process. Like in XBoard,
errors in writing or reading the pipes will trigger this.

8 years agoAdd secondry adapter command for UCCI or USI
H.G. Muller [Sat, 14 May 2011 15:03:44 +0000 (17:03 +0200)]
Add secondry adapter command for UCCI or USI

The option -uxiAdapter can define a second adapterCommand, which will be
invoked on encountering the options -fUCCI, -sUCCI and -fUSI, sUCI.

8 years agoObey san feature when sending book moves
H.G. Muller [Sat, 14 May 2011 08:05:11 +0000 (10:05 +0200)]
Obey san feature when sending book moves

Book moves were always sent in long algebraic, even when the engine had
said it wanted to receive SAN.

8 years agoFix initialization of engine state
H.G. Muller [Sat, 14 May 2011 08:03:20 +0000 (10:03 +0200)]
Fix initialization of engine state

Some of the initialization relied on variables being zero at startup,
which meant value from the previouly loaded engine hng on after loading
a new one.

8 years agoTake account of holdings in book key
H.G. Muller [Wed, 11 May 2011 21:06:20 +0000 (23:06 +0200)]
Take account of holdings in book key

The board is numbered by rank, for comptibility with Polyglot format,
starting at a1. We then continue counting in the holdings 'files', in
up-rank direction, each holding spanning the full board height (even if
it is not fully used). Firstthe left (black) holdings, then the right,
Even in Shogi this limits the square number to < 99, which is below the
absolute limit of 128 (where we would run out of hash keys).

8 years agoAlow promotions and drops in book-editing
H.G. Muller [Wed, 11 May 2011 20:48:34 +0000 (22:48 +0200)]
Alow promotions and drops in book-editing

8 years agoInclude learn info in book edit
H.G. Muller [Wed, 11 May 2011 18:15:58 +0000 (20:15 +0200)]
Include learn info in book edit