7 years agoMake preview resistent to nothing being selected
H.G.Muller [Wed, 20 Apr 2016 21:56:31 +0000 (23:56 +0200)]
Make preview resistent to nothing being selected

The name of the selected file could be a null pointer, and ScaleOnePiece
does not like that for a pieceImageDirectory.

7 years agoAdd option -jewelled to decide which King is a Zebra XB
H.G.Muller [Wed, 20 Apr 2016 12:44:13 +0000 (14:44 +0200)]
Add option -jewelled to decide which King is a Zebra XB

A new volatile option -jewelled is added, with default value -1.
When it is set to 0 the King image will be replaced by the Zebra image,
when it is 1 the same thing will happen to the black King. This color
testing will be done before the swapping of colors ordered by -flipBlack,
so that the color rather than the side of the (possibly flipped) board
decides which King is displayed as Zebra. (While the board side determines
whether a white or black Zebra will then be used in -flibBlack mode).
Shogi themes can use this by providing a Jewelled General as Zebra (a piece
that was not used in any Shogi variant).

7 years agoPoint out preview in title of file chooser GTK
H.G.Muller [Wed, 20 Apr 2016 09:51:56 +0000 (11:51 +0200)]
Point out preview in title of file chooser GTK

7 years agoFix sizing problem in i3wm tiling window manager GTK
H.G.Muller [Wed, 20 Apr 2016 09:31:35 +0000 (11:31 +0200)]
Fix sizing problem in i3wm tiling window manager GTK

Apparently i3wm creates a window of different size than the requested one
without sending a configure-event that would allow XBoard to adapt its
board size. This is now fixed by triggering a first configure-event by
hand. The first resize had to no longer be suppressed to make this work.
(This was not needed anymore anyway, as the board size is now protected
during clock resize.) The -fixedSize option had also to be fixed.

7 years agoLet file chooser show preview of textures on board
H.G.Muller [Tue, 19 Apr 2016 18:49:03 +0000 (20:49 +0200)]
Let file chooser show preview of textures on board

When browsing for a board texture or piece theme, selecting a file in
the browser will now cause immediate display of the board with that
texture or theme, which will revert if you cancel the choice. Or when
you accept the choice, but cancel the Board dialog.

7 years agoRenamed shogi jewled pieces to zebra
Joshua Pettus [Thu, 21 Apr 2016 03:49:26 +0000 (23:49 -0400)]
Renamed shogi jewled pieces to zebra

7 years agoUpdate ru.po translation
Joshua Pettus [Wed, 20 Apr 2016 20:51:49 +0000 (16:51 -0400)]
Update ru.po translation

7 years agoProvide item-by-item description of ICS Chat in texi file
H.G.Muller [Sun, 17 Apr 2016 08:16:26 +0000 (10:16 +0200)]
Provide item-by-item description of ICS Chat in texi file

7 years agoProvide help clicks on recently-used-engines menu items
H.G.Muller [Sun, 17 Apr 2016 08:13:38 +0000 (10:13 +0200)]
Provide help clicks on recently-used-engines menu items

The items for recently used engines in the Engine menu are now recognized
as such, and will look for help on "Recently Used Engines" rather than
on the item text (which is the engine name).

7 years agoUse missing SVG from parent if -pid name starts with sub_
H.G.Muller [Sun, 17 Apr 2016 08:05:39 +0000 (10:05 +0200)]
Use missing SVG from parent if -pid name starts with sub_

If the current piece-image directory's name starts with "sub_", any
pieces not found in it will be searched in the parent directory.
This allows variants that need just a few pieces of a theme changed
to get their own sub_xxx sub-directory within the directory with SVG
images, containing the deviating SVGs. This will work recursively.

7 years agoFix one-click moving with engine-define and wild-card pieces
H.G.Muller [Sun, 17 Apr 2016 07:32:40 +0000 (09:32 +0200)]
Fix one-click moving with engine-define and wild-card pieces

In the disambiguation routine wild-card pieces were still treated as
special even when explicit moves were defined for them. In addition,
Disambiguate would try native XBoard piece motion for resolving ambiguous
moves, which is sensible for parsing SAN (which might be saved by an old
version of XBoard), but wrecks one-click moving.

7 years agoImprove resize/co-dragging GTK
H.G.Muller [Mon, 11 Apr 2016 18:44:27 +0000 (20:44 +0200)]
Improve resize/co-dragging GTK

The reconfigure event of the main board is not processed directly,
but sets a timeout to call the actual handler, which will be restarted
when new reconfigure events occur during the timeout period. This makes
that the (very timeconsuming) redrawing and moving of all windows
will only be done if the stream of events dries up.
  Unfortunately the ReSize routine called as part of the handling needs
to be interruptable, which can cause recursive calling of the reconfigure
handler. A variable 'busy' would ignore such recursion, but at the price
of missing the interrupting event completely. The attempted fix to set
a new timeout was flawed, as delayedDragTag would not have been cleared
at that point. So we threw it out. Now 'busy' is a counter, which will
remember if there were ignored recursion attempts, and then makes these
into a harmless tail recursion, to do the resize/drag once more, based
on the latest window parameters.

7 years agoFix size collapse to 0 after too-small sizing
H.G.Muller [Sun, 10 Apr 2016 17:42:47 +0000 (19:42 +0200)]
Fix size collapse to 0 after too-small sizing

The test for the end of the sizeDefaults list was one off, so that
a too-small size request would be rounded to a size just behind
the table, where there is an all-zero sentinel element.

7 years agoAlso put themes and textures in file chooser GTK
H.G.Muller [Sat, 9 Apr 2016 21:40:54 +0000 (23:40 +0200)]
Also put themes and textures in file chooser GTK

The themes and textures folders are now also directly listed amongst
the 'Places' shortcuts in the GTK file chooser.

7 years agoAdd DATADIR as shortcut folder to file chooser
H.G.Muller [Sat, 9 Apr 2016 20:47:18 +0000 (22:47 +0200)]
Add DATADIR as shortcut folder to file chooser

The file chooser invoked by a dialog Browse button now puts XBoard's
DATADIR amongst the shortcuts in the 'Places' list, so you can navigate
there with a single mouse click.

7 years agoFix browsing for folders, and allow starting in DATADIR
H.G.Muller [Sat, 9 Apr 2016 18:12:26 +0000 (20:12 +0200)]
Fix browsing for folders, and allow starting in DATADIR

The previous path seemed to cause a segfault when browsing for a folder
with an empty text-edit. In addition there existed a bug for browsing
from the Engine Settings dialog, where the value of the option was taken
as a filter. Both are fixed now.
 The Option.textValue field, which for FileName Options holds the filter,
for PatName Options could be NULL or "". The latter is now taken to
mean that browsing should start in DATADIR, and is only used when
browsing for sound files or pieceImageDir with empty pathname field.

7 years agoStart button-activated browse near old field contents GTK
H.G.Muller [Sat, 9 Apr 2016 15:29:12 +0000 (17:29 +0200)]
Start button-activated browse near old field contents GTK

The file chooser activated by Browse buttons for filling a File or Path
text edit started in the last directory it visited for that file type.
But for the initial browse after startup it started in the current
directory. Now it starts in the directory derived from the filaname
currently in the text edit, if there is one, and only in the last-
visited directory for the file type if the text-edit was empty.

7 years agoExtend full-board textures by periodic tiling (XB)
H.G.Muller [Sat, 9 Apr 2016 14:30:20 +0000 (16:30 +0200)]
Extend full-board textures by periodic tiling (XB)

Texture images with an -NxM suffix to their name are scaled to match
that number of squares before cutting squares out of them. But if the
actual board was larger than NxM the remaining squares fell outside the
image and remained white. Now the cutting area is mapped back into
the image, effectively behaving as if it is periodically tiling the
entire plane.

7 years agoMention support for Arena960 protocol with USI/UCCI checkbox WB
H.G.Muller [Thu, 7 Apr 2016 20:14:54 +0000 (22:14 +0200)]
Mention support for Arena960 protocol with USI/UCCI checkbox WB

Normally the -uxiAdapter option would be configured to use UCI2WB,
and in the binary distribution of WinBoard it certainly will be.
As UCI2WB now supports the UCI dialect Arena uses to play Chess960,
people can use the USI/UCCI checkbox also for Chess960 engines that
use that protocol, and the checkbox label now points that out.

7 years agoFinish castling and e.p. rights for Edit Position
H.G.Muller [Thu, 7 Apr 2016 17:34:20 +0000 (19:34 +0200)]
Finish castling and e.p. rights for Edit Position

In stead of faking rights based on corner positioning of Rooks and
e-file King, EditPositionDone now interprets the rightsBoard that
recorded 'promotion clicks' on King, Rooks or Pawns to toggle their
rights. This rightsBoard is initialized from the castling rights in
the position that is being edited, and the clear and piece-pallette
boards now also set these castling rights correctly.

7 years agoDescribe Common Engine dialog item-by-item in texi file
H.G.Muller [Wed, 6 Apr 2016 16:22:46 +0000 (18:22 +0200)]
Describe Common Engine dialog item-by-item in texi file

This had not been done yet, so that help clicks in the dialog did
not retrieve any help.

7 years agoFix history/eng.out font setting on sizing and other bug
H.G.Muller [Wed, 6 Apr 2016 14:44:13 +0000 (16:44 +0200)]
Fix history/eng.out font setting on sizing and other bug

The coord font was set with the historyFont value, and when a valid
font was taken from the fontTable, fontIsSet was not set.

7 years agoApply fonts in 'other windows' after sizing
H.G.Muller [Wed, 6 Apr 2016 14:08:24 +0000 (16:08 +0200)]
Apply fonts in 'other windows' after sizing

7 years agoStore fonts changed by font dialog in fonts table
H.G.Muller [Wed, 6 Apr 2016 13:45:11 +0000 (15:45 +0200)]
Store fonts changed by font dialog in fonts table

The fonts table holds fonts per type and size that should be saved
in the settings file because they were either read from it, or explicitly
specified by the user on the command line. This now also holds for
fonts altered through the Fonts dialog, without waiting for the saving
of settings, because by that time the boardSize might already be different.

7 years agoOnly save fonts that are not defaults
H.G.Muller [Wed, 6 Apr 2016 12:38:43 +0000 (14:38 +0200)]
Only save fonts that are not defaults

When the font in use is a (size-adapted) default, we don't save
it in the settings file.

7 years agoConditionally replace 'other-window' fonts on sizing
H.G.Muller [Wed, 6 Apr 2016 12:25:19 +0000 (14:25 +0200)]
Conditionally replace 'other-window' fonts on sizing

Fonts not used in the main window (i.e. other than clock, coord and
message) are now also adjusted on sizing, but not when this would
mean replacing an explicitly specified font by a default one.
If we size to a boardSize for which a font was specified earlier,
we always switch to the latter, and if we were merely using the
default font for the old size we switch to the default font for
the new size rather than keeping it.

7 years agoReset fontIsSet when sizing causes change to default font
H.G.Muller [Wed, 6 Apr 2016 12:08:49 +0000 (14:08 +0200)]
Reset fontIsSet when sizing causes change to default font

The array fontIsSet now tracks whether the fonts in actual use are
from a (possibly size-adapted) default, or were specified by an option
(also through a fontIsValid entry in the fontsTable) or the Fonts dialog.
For changing a font on sizing a subroutine is now used.

7 years agoFix bold button fix
H.G.Muller [Wed, 6 Apr 2016 12:08:23 +0000 (14:08 +0200)]
Fix bold button fix

7 years agoLock board size when clock changes to two lines
H.G.Muller [Wed, 6 Apr 2016 11:03:38 +0000 (13:03 +0200)]
Lock board size when clock changes to two lines

First writing in the clock widget will usually increase its height
because the clock font is bigger than default. And for two-line
clocks as used with logos this will even be more pronounced. This
did cause the extra size to be taken from the board, ending up with
a smaller square size than originally requested. Which again would
cause any font changes to be saved as belonging to that smaller board
size. So starting next time with the originally requested size (as
opposed to the saved board size) would then not use those fonts!
The board size is now locked during the first write to the clocks,
or writes that change the number of lines.

7 years agoFix Bold button and application of commentFont
H.G.Muller [Wed, 6 Apr 2016 10:13:52 +0000 (12:13 +0200)]
Fix Bold button and application of commentFont

Oops! The B button in the Fonts dialog had disappeared with the
suppression of the B(lue) button in the Board dialog! The comment
font was applied to the wrong widget in the Edit Comment dialog.

7 years agoOnly adjust fonts that are actually changed
H.G.Muller [Wed, 6 Apr 2016 09:56:36 +0000 (11:56 +0200)]
Only adjust fonts that are actually changed

OK-ing the Fonts dialog now checks which fonts have been changed,
and only applies those to the widgets that use them. In addition it
sets a flag to indicate that the changed font no longer is a default.
 A bug that did not apply the gameListFont for preview is now also

7 years agoPut fonts in font table in allocated memory after sizing
H.G.Muller [Wed, 6 Apr 2016 08:49:53 +0000 (10:49 +0200)]
Put fonts in font table in allocated memory after sizing

To make it possible to change the font later it should always be
put in allocated memory.

7 years agoFix explosion of clocks for large board size GTK
H.G.Muller [Wed, 6 Apr 2016 07:38:56 +0000 (09:38 +0200)]
Fix explosion of clocks for large board size GTK

When packing things in a hbox for getting them on the same row,
the hbox was made vertically expandable when the height of the first
element was requested > 80 (assuming it would be a text memo). At
square sizes > 81 the logos would require a height > 80, though,
and would be the first element on the logo + clocks row. This would
make them expandable, so that the window height would be equally divided
between board and logos (which again would leave preciously little for
the board). Now the expandability is reserved for TextBox Options only.

7 years agoSuppress menubar text clipping on resize in OSX App
H.G.Muller [Tue, 5 Apr 2016 21:40:32 +0000 (23:40 +0200)]
Suppress menubar text clipping on resize in OSX App

The menu bar is not in the window in OSX, so the menu texts should
always remain full length.

7 years agoFix clipping of menu texts after sizing
H.G.Muller [Tue, 5 Apr 2016 20:07:27 +0000 (22:07 +0200)]
Fix clipping of menu texts after sizing

When tinyLayout = 0 the texts should not be clipped at all, rather
than to a single letter.

7 years agoEnlarge background of startup message
H.G.Muller [Tue, 5 Apr 2016 19:05:11 +0000 (21:05 +0200)]
Enlarge background of startup message

Because of rounding of the character size the message width exceeded
the background for some square sizes.

7 years agoAdapt clock and message font after board-window sizing
H.G.Muller [Tue, 5 Apr 2016 18:23:12 +0000 (20:23 +0200)]
Adapt clock and message font after board-window sizing

The clock and message font are now adapted to the new -boardSize value
determined after sizing of the board window. When a valid font for the
new size was already available (e.g. read from the settings file), it
uses that. If not it uses the hard-coded default font name. In both
cases a %d in the name is expanded based on the size-table indication
for that font. This makes the clock font adpat even without prior history.

7 years agoPrevent message text widening window GTK
H.G.Muller [Tue, 5 Apr 2016 18:19:21 +0000 (20:19 +0200)]
Prevent message text widening window GTK

Removing the size request from the label widget of the message field
made the width of this field grow with the text displayed in it, and
with it the entire board window. This could be prevented by setting
an ellipsize mode for it.

7 years agoPick -boardSize on window width rather than square size
H.G.Muller [Tue, 5 Apr 2016 16:52:32 +0000 (18:52 +0200)]
Pick -boardSize on window width rather than square size

For boards with other than 8 files the squares will be scaled different
from what the sizeDefaults say, so that the font and menu clipping
determined by the latter will match the total board width. We now pick
the boardSize after sizing such that popup with an 8-wide board next time
would reproduce the board width.

7 years agoAdjust menu-text clipping to square size
H.G.Muller [Tue, 5 Apr 2016 16:40:05 +0000 (18:40 +0200)]
Adjust menu-text clipping to square size

After window sizing has adjusted the square size the text on the menu
bar are now clipped to a length that would make the menu bar not exceed
the width of the board, similar to what is done at startup.

7 years agoMake user-adjusted board size quasi-persistent (GTK)
H.G.Muller [Tue, 5 Apr 2016 14:49:12 +0000 (16:49 +0200)]
Make user-adjusted board size quasi-persistent (GTK)

After adjusting the board-window size the newly calculated square size
will be used to derive a new -boardSize for saving in the settings file,
by rounding it down to the nearest standard size. (But the size actually
used for display will not be rounded!) This will cause the board to pop
up with approximately the same size next time. The remembered initial
square size will also be adapted to the rounded value, so that the fonts
will start to apply to the new -boardSize as well on saving settings.
This will only be done if the old -boardSize value did not contain
commas (meaning it specified more than just square size).

7 years agoUnlock width requests in board window GTK
H.G.Muller [Tue, 5 Apr 2016 14:36:15 +0000 (16:36 +0200)]
Unlock width requests in board window GTK

The message field and clocks had a specified width to force them as
wide as the board irrespective of their text content. This prevented
the user to size the board window below the initial width. The size
requests are now removes after initial pop up, as they already were
for Graph widgets. This means the width of the window can now be
decreased, although we quickly run into the point where the texts
on clock or menu bar prevent further shrinking. (Which could only
be prevented by clipping the menu texts more, or decreasing the clock

7 years agoAdjust window height after clock-font change
H.G.Muller [Tue, 5 Apr 2016 12:32:54 +0000 (14:32 +0200)]
Adjust window height after clock-font change

A routine LockBoardSize are added, and called to protect the board's
Graph widget from absorbing the height change pf clock and message field.
Enlarging these now forces the top-level window to expand, and after the
change we try to reduce this window size to tightly fit the board to
squeeze out empty area after shrinking.

7 years agoFix help clicks in Engine Settings dialogs
H.G.Muller [Mon, 4 Apr 2016 10:04:36 +0000 (12:04 +0200)]
Fix help clicks in Engine Settings dialogs

A previous patch had broken recognition of the .IX Item "..." lines.

7 years agoIgnore stderr when reading from man command
H.G.Muller [Mon, 4 Apr 2016 10:00:57 +0000 (12:00 +0200)]
Ignore stderr when reading from man command

BufferCommandOutput was using StartChildProcess also used for engines,
which combines the output from stdout and stderr on the pipe. On FreeBSD
"man -w" produces spurious error messages, however, which would append
to the path of the man file. To work around this we now use popen()
to collect the output of the man command during help clicks.

7 years agoSilence Clang warnings
H.G.Muller [Mon, 4 Apr 2016 08:53:26 +0000 (10:53 +0200)]
Silence Clang warnings

The assignment of the variant number to appData.variant was a real bug.
The signedness of EP_STATUS looked like one, but seemed to work in practice.

7 years agoUpdate nl.po Translation
Joshua Pettus [Wed, 13 Apr 2016 18:22:35 +0000 (14:22 -0400)]
Update nl.po Translation

7 years agoUpdate es.po translation
Joshua Pettus [Sun, 10 Apr 2016 12:32:47 +0000 (08:32 -0400)]
Update es.po translation

7 years agoUpdate de.po translation
Joshua Pettus [Wed, 6 Apr 2016 21:29:37 +0000 (17:29 -0400)]
Update de.po translation

7 years agoUpdate fr.po translation
Joshua Pettus [Wed, 6 Apr 2016 03:59:50 +0000 (23:59 -0400)]
Update fr.po translation

7 years agoUpdate zh_CN.po translation
Joshua Pettus [Tue, 5 Apr 2016 19:11:25 +0000 (15:11 -0400)]
Update zh_CN.po translation

7 years agoUpdate uk.po translation
Joshua Pettus [Mon, 4 Apr 2016 17:41:23 +0000 (13:41 -0400)]
Update uk.po translation

7 years agonew developer release; updated po/pot
Arun Persaud [Sun, 3 Apr 2016 20:55:34 +0000 (13:55 -0700)]
new developer release; updated po/pot

7 years agoStart implementing rights control in Edit Position mode
H.G.Muller [Sun, 3 Apr 2016 19:25:31 +0000 (21:25 +0200)]
Start implementing rights control in Edit Position mode

Clicking on an already selected Rook or King will toggle its virginity,
displaying the new state in the message field.

7 years agoFix erroneous use of @itemx
H.G.Muller [Sun, 3 Apr 2016 14:28:42 +0000 (16:28 +0200)]
Fix erroneous use of @itemx

The offending @itemx directives were changed to @item. This does mean
an unwanted empty line will appear above the corresponding headers.

7 years agoSave font settings based on initial square size
H.G.Muller [Sun, 3 Apr 2016 08:23:49 +0000 (10:23 +0200)]
Save font settings based on initial square size

Font settings were saved by the square size as it was at the time of
saving, which could have been altered compared to the reading of the
fonts from the settings file by interactive sizing of the window, or
by switching to a variant with other board dimensions. Now the initial
square size is remembered and used for this.
BEWARE: we might want to undo this when window sizing would affect font
selection, rather than just sizing the board.

7 years agoLet color-pickers start at current color
H.G.Muller [Sat, 2 Apr 2016 17:12:22 +0000 (19:12 +0200)]
Let color-pickers start at current color

7 years agoUse GTK color picker instead of R, G, B and D buttons
H.G.Muller [Fri, 1 Apr 2016 20:01:40 +0000 (22:01 +0200)]
Use GTK color picker instead of R, G, B and D buttons

By an awful hack in the generic dialog constructor ever Button Option
with the name R, G or B is now completely ignored, while Buttons with
name D will be replaced by GtkColorButtons. Instead of catching the
"clicked" signal these will respond to the "color-set" signal, invoking
a handler private to the GTK front end, which will set the color text
and colorof the reset button as the platform-independent handler of the
RGBD buttons would normally have done.
Unfortunately this had to use deprecated GTK2 stuff, as the recommended
GTK3 equivalents are not understood on Ubuntu 10.04.

7 years agoUse the official GTK font selector
H.G.Muller [Fri, 1 Apr 2016 14:34:15 +0000 (16:34 +0200)]
Use the official GTK font selector

A gtk_font_button is now put in the Fonts dialog to allow selection
of a general font. The individual window fonts got a button marked *
to assign this font to them. To implement the selector button some
kludgy code had to be added in the generic dialog constructor, to
recognize these Button Options by name, and use the special GTK
widget to implement them, or assign an unusual callback.

7 years agoDescribe Fonts dialog in texi file
H.G.Muller [Fri, 1 Apr 2016 09:13:27 +0000 (11:13 +0200)]
Describe Fonts dialog in texi file

7 years agoSilence warning due to missing prototype
H.G.Muller [Fri, 1 Apr 2016 08:30:51 +0000 (10:30 +0200)]
Silence warning due to missing prototype

7 years agoFix translation of dialog texts GTK
H.G.Muller [Fri, 1 Apr 2016 08:28:22 +0000 (10:28 +0200)]
Fix translation of dialog texts GTK

When using the Option names during the creation of GTK widgets,
the gettext macro _() was not applied to them, so they remained
untranslated even though they were marked with N_() in the Option

7 years agoFix Xaw for font damage
H.G.Muller [Fri, 1 Apr 2016 08:19:29 +0000 (10:19 +0200)]
Fix Xaw for font damage

A dummy for ApplyFont is added in the Xaw front end to allow compiling it,
and the Fonts dialog refuses to pop up when it recognizes an X-font setting
for the message font, with an apology.

7 years agoSilence warnings
H.G.Muller [Fri, 1 Apr 2016 08:08:15 +0000 (10:08 +0200)]
Silence warnings

7 years agoReplace coord font control for ICS font control
H.G.Muller [Fri, 1 Apr 2016 07:50:46 +0000 (09:50 +0200)]
Replace coord font control for ICS font control

In the Fonts the control to set the coord font is removed, as the Cairo
version currently ignores the -coordFont setting. Instead a control to
set the font in the ICS Console is added. As the fonts there are controlled
by tags, and would ignoe the global font setting of the widget, the font
tag is redefined through a kludgy call of AppendColorized with a NULL
string as text. This is now interpreted as a signalfor recreating the font
tag based on the current icsFont, which will then only be applied to
future messages.

7 years agoLet font entries show preview of their own setting
H.G.Muller [Fri, 1 Apr 2016 07:13:51 +0000 (09:13 +0200)]
Let font entries show preview of their own setting

The font settings are now applied to the text entries in the Fonts dialog
that control them, at popup of the dialog as well as when changing them
through the buttons.

7 years agoAdd Fonts dialog
H.G.Muller [Thu, 31 Mar 2016 22:46:37 +0000 (00:46 +0200)]
Add Fonts dialog

A dialog is added to set the various window fonts, either by typing or by
operating buttons for Bold, Italic, or adjusting the point size.

7 years agoAdd headers for <<, <, > and >> buttons in texi file
H.G.Muller [Tue, 29 Mar 2016 19:23:41 +0000 (21:23 +0200)]
Add headers for <<, <, > and >> buttons in texi file

7 years agoFix help search
H.G.Muller [Tue, 29 Mar 2016 19:20:51 +0000 (21:20 +0200)]
Fix help search

The help search was ignoring the last character of the searched string.
Which almost neven mattered, except when the searched string was only
1 or 2 characters, like for the buttons in the button bar.

7 years agoFix disambiguation for one-click moving
H.G.Muller [Tue, 29 Mar 2016 18:20:54 +0000 (20:20 +0200)]
Fix disambiguation for one-click moving

The test in the DisambiguateCallback to ignore duplicate moves (as
sometimes generated by Betza descriptions) was only testing for the
same from square. This is good enugh if the to-square is always given
(as in SAN), so that moves with different to-square would always be
rejected anyway. But to determine if a piece has only a single move
we disambiguate with unknown to-square. So all moves but the first
of a piece would be ignored, making it always pass the only-move test.
We now test both from- and to-square, and only ignore moves that
have both of these equal to that of an already matching move.

7 years agoFix exposing of premove highlight and move exclusion XB
H.G.Muller [Tue, 29 Mar 2016 14:33:30 +0000 (16:33 +0200)]
Fix exposing of premove highlight and move exclusion XB

Now that drawHighlights does not trigger an expose event itself, it is
essiential that DrawPosition is called after every SetPremoveHighlight()
call. But it wasn't after entering a premove, and after a drag-drop move
exclusion the old position was not redrawn at all, leaving the dragged
piece 'floating'.

7 years agoFix erasing of premove highlights XB
H.G.Muller [Tue, 29 Mar 2016 14:30:50 +0000 (16:30 +0200)]
Fix erasing of premove highlights XB

The to-square premove highlight was not marked for erasure (but
the from-square was marked twice if the to-square higlight  changed),
leading to accumulation of highlighted squares during PV walking.

7 years agoDescribe New Shuffle dialog item by item in texi file
H.G.Muller [Mon, 28 Mar 2016 20:31:13 +0000 (22:31 +0200)]
Describe New Shuffle dialog item by item in texi file

7 years agoFix New Shuffle Game dialog
H.G.Muller [Mon, 28 Mar 2016 20:24:20 +0000 (22:24 +0200)]
Fix New Shuffle Game dialog

The insertion of the Fischer-castling option had broken the operation
of the 'randomize' and 'pick fixed' buttons.

7 years agoDescribe -epd option in texi file
H.G.Muller [Mon, 28 Mar 2016 19:56:32 +0000 (21:56 +0200)]
Describe -epd option in texi file

7 years agoDescribe divide-by-60 option of TC dialog in texi file
H.G.Muller [Mon, 28 Mar 2016 19:44:13 +0000 (21:44 +0200)]
Describe divide-by-60 option of TC dialog in texi file

7 years agoSuppress participation of second engine in EPD mode
H.G.Muller [Mon, 28 Mar 2016 19:37:52 +0000 (21:37 +0200)]
Suppress participation of second engine in EPD mode

Starting the second engine, and initializng it for the next game in
TwoMachineEvent() is now suppressed in EPD mode, so that the latter
even works with a non-existent second engine.

7 years agoAlso copy -sd from -fd when no second engine defined
H.G.Muller [Mon, 28 Mar 2016 07:56:38 +0000 (09:56 +0200)]
Also copy -sd from -fd when no second engine defined

If the second engine defaults to the first, and the first needs to
be run in a specific directory, the second engine would not start
if we do not copy its directory too.

7 years agoOnly let second engine default to first when of same type
H.G.Muller [Sun, 27 Mar 2016 16:17:52 +0000 (18:17 +0200)]
Only let second engine default to first when of same type

When the first engine is UCI, making the second engine equal to the
first without setting the corresponding protocol flag, is a certain
recipe for causing trouble. So copy the flag too.

7 years agoChange EPD reporting
H.G.Muller [Sun, 27 Mar 2016 15:27:30 +0000 (17:27 +0200)]
Change EPD reporting

The individual positions now get "time: move" printed when solved,
and "move?" or "move???" when not solved (the latter when it was an
avoid move). The total time is now reported also, at the end.

7 years agoClear total solving time at start of match
H.G.Muller [Sun, 27 Mar 2016 11:21:52 +0000 (13:21 +0200)]
Clear total solving time at start of match

When multiple EPD suites are launched interactively, the time should be
calculated separately for each of them.

7 years agoAllow a list of best moves in EPD
H.G.Muller [Sun, 27 Mar 2016 10:59:36 +0000 (12:59 +0200)]
Allow a list of best moves in EPD

All characters upto a semicolon (rather than space) are now read as bestMove
string. For checking the correctness of a solution all moves in this string
are parsed and compared.

7 years agoInternationalize EPD messages
H.G.Muller [Sun, 27 Mar 2016 10:02:01 +0000 (12:02 +0200)]
Internationalize EPD messages

7 years agoPrint average solving time of EPD suite
H.G.Muller [Sun, 27 Mar 2016 09:58:10 +0000 (11:58 +0200)]
Print average solving time of EPD suite

The number of good solutions and average thinking time on them are
now printed in the 2nd engine-output pane.

7 years agoFix determination of EPD solving time
H.G.Muller [Sun, 27 Mar 2016 09:22:41 +0000 (11:22 +0200)]
Fix determination of EPD solving time

Repeating an already found solution would increase the solving time
like the repetition was the first good solution.

7 years agoAdd more EPD code
H.G.Muller [Sat, 26 Mar 2016 22:35:51 +0000 (23:35 +0100)]
Add more EPD code

The -epd option now causes color assignment such that the first engine
plays all moves. Extraction of the bm field from the EPD is fixed,
and clearing of the second engine-output pane is suppressed.

7 years agoAdd -analysisBell option to use move sound in analysis mode
H.G.Muller [Thu, 24 Mar 2016 22:46:01 +0000 (23:46 +0100)]
Add -analysisBell option to use move sound in analysis mode

The persistent integer option -analysisBell can be used to let the
move sound play in analysis mode for every PV that arrives after the
dely (in seconds) it specifies has elapsed since the current analysis
search started.

7 years agoFix crash on loading variant engine after changing variant
H.G.Muller [Thu, 24 Mar 2016 16:25:44 +0000 (17:25 +0100)]
Fix crash on loading variant engine after changing variant

The New Variant dialog did not store the variant name (and in fact
several other option values, such as nick names) in allocated memory,
but just by pointing to it, which made XBoard crash when the options
were parsed again (as part of an engine load), and it tried to free()
the old value.

7 years agoFix variant switch on engine load
H.G.Muller [Thu, 24 Mar 2016 15:15:47 +0000 (16:15 +0100)]
Fix variant switch on engine load

When an engine was installed with an engine-defined variant, selecting
that engine through the Load Engine dialog did not properly switch to
the intended variant. Now doing this at the start of a game forces an
extra New Game event. This event now also remembers the name of any
unknown variant, in the hope the engine will define it.

7 years agoDescribe Board Options dialog in texi file
H.G.Muller [Thu, 24 Mar 2016 13:40:06 +0000 (14:40 +0100)]
Describe Board Options dialog in texi file

The Board Options dialog is described item by item, so that the help
clicks on it will work.

7 years agoReorganize texi file
H.G.Muller [Wed, 23 Mar 2016 21:54:27 +0000 (22:54 +0100)]
Reorganize texi file

For the help clicks to work universaly, it is necessary that all dialog
items are described separately, with headers exactly equal to the label
they have in the dialog. This is a first step in that direction.

7 years agoAllow help-clicks on Label Options with linefeeds
H.G.Muller [Wed, 23 Mar 2016 19:25:40 +0000 (20:25 +0100)]
Allow help-clicks on Label Options with linefeeds

Some of the LabelOptions in dialogs do have linefeeds. (In particular,
those in the Load Options dialog.) So we allow help clicks on them,
but add linefeed with the termination characters. Except that a leading
linefeed will be clipped off.

7 years agoMake sizing more robust (GTK)
H.G.Muller [Wed, 23 Mar 2016 19:16:24 +0000 (20:16 +0100)]
Make sizing more robust (GTK)

On sizing we now do not immediately replace the buffer canvas, but set
a flag in the Graph Option to indicate the canvas is invalid. Instead
of taking the canvas handle from a global variable (csBoardWindow) we
now obtain it in every drawing call from a function, which first tests
if the canvas is still valid. If it is not, we replace it by one of
the size specified in the Option (which was obtained from the window
size the moment the flag was set).
 The GraphExpose requests now bypass the general GraphEventProc, by
calling the drawing of the exposed area (which was relocated to a
separate function) directly. This avoids the overhead of checking for
resizing through requesting the window geometry.

7 years agoImprove behavior of secondary board on sizing main window
H.G.Muller [Wed, 23 Mar 2016 10:07:43 +0000 (11:07 +0100)]
Improve behavior of secondary board on sizing main window

Resizing the main window now immediately orders corresponding resizing
of the secondary board window, plus an immediate redraw, rather than
waiting for a move to occur on that board.

7 years agoPrevent FICS bell character fro printing in ICS Console XB
H.G.Muller [Tue, 22 Mar 2016 21:37:24 +0000 (22:37 +0100)]
Prevent FICS bell character fro printing in ICS Console XB

FICS sends bell characters (ascii 7) at the start of many messages.
We now strip a leading bell off the message before appending it to
the text memo of the ICS Console, and ignore the message altogether
if it was just bell + linefeed (to prevent each move of an observed
game adding an empty line).

7 years agoFix erasing and exposing of arrow on secondary board
H.G.Muller [Tue, 22 Mar 2016 19:59:51 +0000 (20:59 +0100)]
Fix erasing and exposing of arrow on secondary board

For the second board the damage flags set for exposing a freshly drawn
arrow are left for the next draw to erase that arrow again.

7 years agoRemove debug printf
H.G.Muller [Tue, 22 Mar 2016 14:40:28 +0000 (15:40 +0100)]
Remove debug printf

7 years agoPop up warning when engine manual is not available
H.G.Muller [Tue, 22 Mar 2016 14:38:00 +0000 (15:38 +0100)]
Pop up warning when engine manual is not available

Help clicks on the engine dialog pop up a warning when the manual is
not found. It seems useful to alert the user that this info has to
come from the manual of the engine' rather than XBoard's.

7 years agoAdd -men option for changing piece moves
H.G.Muller [Tue, 22 Mar 2016 14:10:43 +0000 (15:10 +0100)]
Add -men option for changing piece moves

A volatile string option -men allows the user to change the moves of
the pieces from the command line similar to what the VariantMen tag
does from a PGN file. Using the New Variant dialog resets the option.

7 years agoAdd -fen option
H.G.Muller [Tue, 22 Mar 2016 13:56:10 +0000 (14:56 +0100)]
Add -fen option

A volatile string option -fen can now be used to set the initial position
of the initial variant through the command line, removing the need to
prepare a position file for this. Otherwise the effect should be the same
as when using -lpf: New games will be started from the specifoed  positon
until the New Variant dialog is used. The position is 'auto-sizing', i.e.
the FEN is used to set the board geometry as well.