H.G.Muller [Mon, 4 Apr 2016 10:04:36 +0000]
Fix help clicks in Engine Settings dialogs
A previous patch had broken recognition of the .IX Item "..." lines.
H.G.Muller [Mon, 4 Apr 2016 10:00:57 +0000]
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.
H.G.Muller [Mon, 4 Apr 2016 08:53:26 +0000]
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.
Joshua Pettus [Wed, 13 Apr 2016 18:22:35 +0000]
Update nl.po Translation
Joshua Pettus [Sun, 10 Apr 2016 12:32:47 +0000]
Update es.po translation
Joshua Pettus [Wed, 6 Apr 2016 21:29:37 +0000]
Update de.po translation
Joshua Pettus [Wed, 6 Apr 2016 03:59:50 +0000]
Update fr.po translation
Joshua Pettus [Tue, 5 Apr 2016 19:11:25 +0000]
Update zh_CN.po translation
Joshua Pettus [Mon, 4 Apr 2016 17:41:23 +0000]
Update uk.po translation
Arun Persaud [Sun, 3 Apr 2016 20:55:34 +0000]
new developer release; updated po/pot
H.G.Muller [Sun, 3 Apr 2016 19:25:31 +0000]
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.
H.G.Muller [Sun, 3 Apr 2016 14:28:42 +0000]
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.
H.G.Muller [Sun, 3 Apr 2016 08:23:49 +0000]
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.
H.G.Muller [Sat, 2 Apr 2016 17:12:22 +0000]
Let color-pickers start at current color
H.G.Muller [Fri, 1 Apr 2016 20:01:40 +0000]
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.
H.G.Muller [Fri, 1 Apr 2016 14:34:15 +0000]
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.
H.G.Muller [Fri, 1 Apr 2016 09:13:27 +0000]
Describe Fonts dialog in texi file
H.G.Muller [Fri, 1 Apr 2016 08:30:51 +0000]
Silence warning due to missing prototype
H.G.Muller [Fri, 1 Apr 2016 08:28:22 +0000]
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
tables.
H.G.Muller [Fri, 1 Apr 2016 08:19:29 +0000]
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.
H.G.Muller [Fri, 1 Apr 2016 08:08:15 +0000]
Silence warnings
H.G.Muller [Fri, 1 Apr 2016 07:50:46 +0000]
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.
H.G.Muller [Fri, 1 Apr 2016 07:13:51 +0000]
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.
H.G.Muller [Thu, 31 Mar 2016 22:46:37 +0000]
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.
H.G.Muller [Tue, 29 Mar 2016 19:23:41 +0000]
Add headers for <<, <, > and >> buttons in texi file
H.G.Muller [Tue, 29 Mar 2016 19:20:51 +0000]
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.
H.G.Muller [Tue, 29 Mar 2016 18:20:54 +0000]
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.
H.G.Muller [Tue, 29 Mar 2016 14:33:30 +0000]
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'.
H.G.Muller [Tue, 29 Mar 2016 14:30:50 +0000]
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.
H.G.Muller [Mon, 28 Mar 2016 20:31:13 +0000]
Describe New Shuffle dialog item by item in texi file
H.G.Muller [Mon, 28 Mar 2016 20:24:20 +0000]
Fix New Shuffle Game dialog
The insertion of the Fischer-castling option had broken the operation
of the 'randomize' and 'pick fixed' buttons.
H.G.Muller [Mon, 28 Mar 2016 19:56:32 +0000]
Describe -epd option in texi file
H.G.Muller [Mon, 28 Mar 2016 19:44:13 +0000]
Describe divide-by-60 option of TC dialog in texi file
H.G.Muller [Mon, 28 Mar 2016 19:37:52 +0000]
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.
H.G.Muller [Mon, 28 Mar 2016 07:56:38 +0000]
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.
H.G.Muller [Sun, 27 Mar 2016 16:17:52 +0000]
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.
H.G.Muller [Sun, 27 Mar 2016 15:27:30 +0000]
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.
H.G.Muller [Sun, 27 Mar 2016 11:21:52 +0000]
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.
H.G.Muller [Sun, 27 Mar 2016 10:59:36 +0000]
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.
H.G.Muller [Sun, 27 Mar 2016 10:02:01 +0000]
Internationalize EPD messages
H.G.Muller [Sun, 27 Mar 2016 09:58:10 +0000]
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.
H.G.Muller [Sun, 27 Mar 2016 09:22:41 +0000]
Fix determination of EPD solving time
Repeating an already found solution would increase the solving time
like the repetition was the first good solution.
H.G.Muller [Sat, 26 Mar 2016 22:35:51 +0000]
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.
H.G.Muller [Thu, 24 Mar 2016 22:46:01 +0000]
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.
H.G.Muller [Thu, 24 Mar 2016 16:25:44 +0000]
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.
H.G.Muller [Thu, 24 Mar 2016 15:15:47 +0000]
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.
H.G.Muller [Thu, 24 Mar 2016 13:40:06 +0000]
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.
H.G.Muller [Wed, 23 Mar 2016 21:54:27 +0000]
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.
H.G.Muller [Wed, 23 Mar 2016 19:25:40 +0000]
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.
H.G.Muller [Wed, 23 Mar 2016 19:16:24 +0000]
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.
H.G.Muller [Wed, 23 Mar 2016 10:07:43 +0000]
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.
H.G.Muller [Tue, 22 Mar 2016 21:37:24 +0000]
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).
H.G.Muller [Tue, 22 Mar 2016 19:59:51 +0000]
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.
H.G.Muller [Tue, 22 Mar 2016 14:40:28 +0000]
Remove debug printf
H.G.Muller [Tue, 22 Mar 2016 14:38:00 +0000]
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.
H.G.Muller [Tue, 22 Mar 2016 14:10:43 +0000]
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.
H.G.Muller [Tue, 22 Mar 2016 13:56:10 +0000]
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.
H.G.Muller [Tue, 22 Mar 2016 11:04:12 +0000]
Make startup announcement self-disappearing
The startup message is now configurable through an option -startupMessage,
and the master config file sets this to announce the help clicks.
The message can contain multiple lines. The display of lines that are a
sub-string of the option -messageSuppress is suppressed, however.
Using a help-click sets this latter option to the help-click announcement,
so that people who have used help clicks won't see this message anymoe.
Displaying the startup message is now only considered on board draws
that ordered a full repaint.
H.G.Muller [Tue, 22 Mar 2016 09:36:09 +0000]
Forget piece redefinitions before loading game
The effect of a VariantMen tag in a previous game of the same file
was also applied to later games that did not have such a tag.
H.G.Muller [Tue, 22 Mar 2016 08:41:44 +0000]
Prevent crash on loading empty game file
The parser code is made resistant to loading a file with 0 characters in it.
H.G.Muller [Mon, 21 Mar 2016 22:50:46 +0000]
Silence warning WB
No prototype for SendToICS was in a sufficiently shared header.
H.G.Muller [Mon, 21 Mar 2016 22:44:29 +0000]
Fix replay of multi-leg move
Replaying multi-leg moves made the moving piece reappear on the
from-square during continuation legs in WinBoard.
H.G.Muller [Mon, 21 Mar 2016 22:39:40 +0000]
fix2
H.G.Muller [Mon, 21 Mar 2016 22:37:24 +0000]
fix
H.G.Muller [Mon, 21 Mar 2016 21:30:00 +0000]
Implement 3-leg animation in WinBoard
Move animation in WinBoard now also pays attention to the kill2 square.
Besides a bug was fixed that made the animated piece re-appear on the
from-square during the second leg, and the victimes are made to disappear
when the animated piece passes over them.
H.G.Muller [Mon, 21 Mar 2016 20:51:50 +0000]
Move dataDir definition to args.h so WB can also use it
H.G.Muller [Mon, 21 Mar 2016 19:24:06 +0000]
Fix exposure of square highlights
The exposure of highlighted squares assumed the line gap was 1 pixel,
and thus failed for wider grid lines.
H.G.Muller [Mon, 21 Mar 2016 12:16:46 +0000]
Fix built-in Lion move
The 3-leg patch had uncovered a latent bug in the built-in move generation
for Lions/Falcons/Eagles, which would qualify moves as FirstLeg even when
the kill-square was already set.
H.G.Muller [Mon, 21 Mar 2016 11:25:02 +0000]
Repair flashing of moved piece (XB)
The flashing was not working (at least in GTK), because the redraw of
the square needed even processing to show something. So the draw/erase
loop that does the flashing needs to call DoEvents() to make things
visible. This however could lead to recursive processing of LeftClick,
as the press of a click-click move already enters the move and starts
the flashing, so that the release usually comes before the press
processing has finished. Which would cause it to be interpreted as
a second move identical to the first. A static flag inside LeftClick
now makes it ignore clicks during flashing, which is just what we had
to do with the release anyway. Flashing should be suppressed during
sweep-selection under-promotion.
H.G.Muller [Mon, 21 Mar 2016 10:33:55 +0000]
Streamline XBoard board drawing
XBoard was drawing in a very inefficient way. To improve efficiency
alteration of highlights will not immediately be exposed, but be
marked as damage so that a subsequent DrawPosition call will show them.
Squares touched by a to-be-erased arrow will be treated likewise.
The drawing now has three passes: repairing damage (which erases
highlights and arrow), emptying the from-square, and drawing new
pieces and highlights.
H.G.Muller [Mon, 21 Mar 2016 10:14:54 +0000]
Improve board drawing
The erasing of target-square markers could lead to flashing of the
moved piece. It was also ugly when the piece was slipped under a marker.
The actual display of the marker change on erasing can now be deferred
to a later position draw, and this is used when erasing after a drag-drop
move to do it after the move was accepted (so the piece would not be
flashed on the from-square, but still displayed without marker on it
after the drop). For click-click the erasure is shown before animation
starts. A problem with showing deselection when target-square marking
was off is now also fixed.
H.G.Muller [Thu, 17 Mar 2016 21:13:28 +0000]
Cleanse help texts of some common TeX escape codes
The TeX escapes \s-1, \s0 around all-capital words, \*(L, \*(R for
distinguishing left/right quoting, a mysterious \& and a \ in general
(e.g. for \- as forced hyphen) occur quite often in the man-page text.
They now no longer clutter the help popups.
H.G.Muller [Thu, 17 Mar 2016 11:04:27 +0000]
Also provide help on adapter options
Adapters often add their own options to thoso of the engine in the
Engine Settings dialog. Polyglot, for instance, has many options,
their names all starting with "Polyglot ...". We adopt this as a
convention, so that XBoard can compare the adapter name (the name
of the program actually run, if that is different from the name
of the engine binary) with the start of the option name for which
help is requested. If there is a match it will conclude we are dealing
with an adapter option, and will consult the adapter manual (for an
option without the adapter-name prefix) instead of the engine manual.
H.G.Muller [Thu, 17 Mar 2016 10:32:02 +0000]
Also buffer engine man page
The path to the engine man file, and possibly its unzipped text, are now
also buffered, together with the name of the engine they are for, so that
they can be re-used when the engine has not changed.
H.G.Muller [Wed, 16 Mar 2016 23:01:25 +0000]
Also recognize .IX lines in man file for help clicks
Beside .B and .SS directives, which tend to mark item headers in the
XBoard manual page, ".IX item" lines are now also recognized.
Such lines are produced by pod2man for =item directives in the .pod file.
H.G.Muller [Wed, 16 Mar 2016 13:40:33 +0000]
Implement XBetza iso modifier
An 'i' modifier on a continuation leg will force it to be of equal length
(measured in steps) as the latest sliding leg (i.e. of maximum length != 1)
before it. This is useful for defining rifle captures of sliding pieces.
On initial legs it still means the move is for virgin pieces only.
H.G.Muller [Tue, 15 Mar 2016 14:15:29 +0000]
Allow access to gzipped man files
For *.gz man files we run gunzip to buffer the unzipped version in
memory. For engines this buffer is not saved, because the engine might
change. (A bit course...)
H.G.Muller [Tue, 15 Mar 2016 11:36:49 +0000]
Fix reading of long man files
The low-level read call to read from the spawned process did not
always return as many characters as we asked for, so we now use fread.
H.G.Muller [Tue, 15 Mar 2016 10:29:35 +0000]
Obtain name of XBoard's man file from external command
Rather than hard-coding the path to the man file, it is now obtained
by running "man -w xboard".
H.G.Muller [Tue, 15 Mar 2016 10:08:04 +0000]
Add routine to run daughter process and collect its output
The routine BufferOutputCommand can run an arbitrary command in a
separate process, and collects its output in a buffer of the requested
size. It will kill the process when it doesn't terminate spontaneously,
and return the allocated buffer.
Joshua Pettus [Wed, 23 Mar 2016 00:56:08 +0000]
Update es.po translation
Joshua Pettus [Sat, 19 Mar 2016 04:03:20 +0000]
Mark the gtk browse button for translation
Joshua Pettus [Fri, 18 Mar 2016 20:45:16 +0000]
Update nl.po translation
Joshua Pettus [Thu, 17 Mar 2016 00:58:07 +0000]
Update fr.po translation
Joshua Pettus [Thu, 17 Mar 2016 00:56:42 +0000]
Update de.po translation
Joshua Pettus [Wed, 16 Mar 2016 03:00:17 +0000]
Update zh_CN.po translation
Joshua Pettus [Wed, 16 Mar 2016 02:54:36 +0000]
Update uk.po translation
Arun Persaud [Tue, 15 Mar 2016 02:36:44 +0000]
configure.ac: add pangocairo to list of needed libraries
H.G.Muller [Mon, 14 Mar 2016 14:18:18 +0000]
Display message on the board at startup
Drawing the board in the first second of running will display a short
message on top of it, to alert the user to the help-click possibility.
H.G.Muller [Mon, 14 Mar 2016 14:07:08 +0000]
Fix expansion of ~~ in OSX App
The ~~ expansion was still using the configured DATADIR rather than
the dynamic one.
H.G.Muller [Mon, 14 Mar 2016 12:59:02 +0000]
Print dynamic Datadir/Mandir on --show-config
Instead of printing the directories from the congigure process,
we print those actually in force, so that the info is valid in the
OSX App (which changes it) too.
H.G.Muller [Sun, 13 Mar 2016 22:25:11 +0000]
Use dataDir/manDir variables always
The DATADIR and MANDIR string constants obtained from the configure
process are now stored in variables, which are then used everywhere
instead of them. The OSX App overwrites these variables, so the
directory location can be made dynamic.
Arun Persaud [Sun, 13 Mar 2016 17:34:08 +0000]
new developer release; updated po/pot
H.G.Muller [Sun, 13 Mar 2016 09:51:49 +0000]
Uncomment line commentized for debugging purposes
The call attaching help clicks to Label Options was still commented out.
H.G.Muller [Sun, 13 Mar 2016 08:21:43 +0000]
Fix popdown of Error/Help dialog through window-close button
Closing an Error popup that was a daughter of another dialog (as Help
dialogs would often be) through the window-close button instead of 'OK'
would permanently block popdown of the parent dialog, because the info
that the Error dialog was still up would not have been reset by the Error
dialog's OK function. GenericPopDown now calls the OK function of such
a dialog (actually FatalDlg) even on a REJECT response.
H.G.Muller [Sat, 12 Mar 2016 22:32:00 +0000]
Make help clicks resistent to NULL-pointer Label names
This should be needed, but just in case...
H.G.Muller [Sat, 12 Mar 2016 22:30:20 +0000]
Silence two warnings
H.G.Muller [Sat, 12 Mar 2016 15:51:44 +0000]
Make help clicks also work for UCI engines
The help clicks were using the engine command to find the manual,
but this would not work for engines with parameters or using adapters.
Now it used the -fcp/scp arguments, and tidies these to stripp off
directory path and arguments. (cps->tidy could not be used, because
it is overwritten by the name reported by the engine itself, which
usually contains version numbers not in the manual name.)
H.G.Muller [Sat, 12 Mar 2016 15:41:38 +0000]
Make location of man file dynamic for OSX
MANDIR is redefined in the case of an OSX App to be a variable, in a
similar way as DATADIR, so it can be determined at startup, and the App
can be 'portable'. The way to concatenate it with the rest of the file
name hd to be made variable-proof.
H.G.Muller [Sat, 12 Mar 2016 13:33:05 +0000]
Suppress empty label at top of Edit Tags dialog
There is a Label Option above the text memo of the Edit Tags dialog
that can display a message, but it is only used in cmail mode, and
is passed as a NULL pointer otherwise. (On which GenericPopup then
crashed when it wanted to attach a help click.) Now we simply suppress
display of that widget when there is no message.