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.

7 years agoMake startup announcement self-disappearing
H.G.Muller [Tue, 22 Mar 2016 11:04:12 +0000 (12:04 +0100)]
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.

7 years agoForget piece redefinitions before loading game
H.G.Muller [Tue, 22 Mar 2016 09:36:09 +0000 (10:36 +0100)]
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.

7 years agoPrevent crash on loading empty game file
H.G.Muller [Tue, 22 Mar 2016 08:41:44 +0000 (09:41 +0100)]
Prevent crash on loading empty game file

The parser code is made resistant to loading a file with 0 characters in it.

7 years agoSilence warning WB
H.G.Muller [Mon, 21 Mar 2016 22:50:46 +0000 (23:50 +0100)]
Silence warning WB

No prototype for SendToICS was in a sufficiently shared header.

7 years agoFix replay of multi-leg move
H.G.Muller [Mon, 21 Mar 2016 22:44:29 +0000 (23:44 +0100)]
Fix replay of multi-leg move

Replaying multi-leg moves made the moving piece reappear on the
from-square during continuation legs in WinBoard.

7 years agofix2
H.G.Muller [Mon, 21 Mar 2016 22:39:40 +0000 (23:39 +0100)]

7 years agofix
H.G.Muller [Mon, 21 Mar 2016 22:37:24 +0000 (23:37 +0100)]

7 years agoImplement 3-leg animation in WinBoard
H.G.Muller [Mon, 21 Mar 2016 21:30:00 +0000 (22:30 +0100)]
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.

7 years agoMove dataDir definition to args.h so WB can also use it
H.G.Muller [Mon, 21 Mar 2016 20:51:50 +0000 (21:51 +0100)]
Move dataDir definition to args.h so WB can also use it

7 years agoFix exposure of square highlights
H.G.Muller [Mon, 21 Mar 2016 19:24:06 +0000 (20:24 +0100)]
Fix exposure of square highlights

The exposure of highlighted squares assumed the line gap was 1 pixel,
and thus failed for wider grid lines.

7 years agoFix built-in Lion move
H.G.Muller [Mon, 21 Mar 2016 12:16:46 +0000 (13:16 +0100)]
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.

7 years agoRepair flashing of moved piece (XB)
H.G.Muller [Mon, 21 Mar 2016 11:25:02 +0000 (12:25 +0100)]
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.

7 years agoStreamline XBoard board drawing
H.G.Muller [Mon, 21 Mar 2016 10:33:55 +0000 (11:33 +0100)]
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.

7 years agoImprove board drawing
H.G.Muller [Mon, 21 Mar 2016 10:14:54 +0000 (11:14 +0100)]
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.

7 years agoCleanse help texts of some common TeX escape codes
H.G.Muller [Thu, 17 Mar 2016 21:13:28 +0000 (22:13 +0100)]
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.

7 years agoAlso provide help on adapter options
H.G.Muller [Thu, 17 Mar 2016 11:04:27 +0000 (12:04 +0100)]
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.

7 years agoAlso buffer engine man page
H.G.Muller [Thu, 17 Mar 2016 10:32:02 +0000 (11:32 +0100)]
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.

7 years agoAlso recognize .IX lines in man file for help clicks
H.G.Muller [Wed, 16 Mar 2016 23:01:25 +0000 (00:01 +0100)]
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.

7 years agoImplement XBetza iso modifier
H.G.Muller [Wed, 16 Mar 2016 13:40:33 +0000 (14:40 +0100)]
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.

7 years agoAllow access to gzipped man files
H.G.Muller [Tue, 15 Mar 2016 14:15:29 +0000 (15:15 +0100)]
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...)

7 years agoFix reading of long man files
H.G.Muller [Tue, 15 Mar 2016 11:36:49 +0000 (12:36 +0100)]
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.

7 years agoObtain name of XBoard's man file from external command
H.G.Muller [Tue, 15 Mar 2016 10:29:35 +0000 (11:29 +0100)]
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".

7 years agoAdd routine to run daughter process and collect its output
H.G.Muller [Tue, 15 Mar 2016 10:08:04 +0000 (11:08 +0100)]
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.

7 years agoUpdate es.po translation
Joshua Pettus [Wed, 23 Mar 2016 00:56:08 +0000 (20:56 -0400)]
Update es.po translation

7 years agoMark the gtk browse button for translation
Joshua Pettus [Sat, 19 Mar 2016 04:03:20 +0000 (00:03 -0400)]
Mark the gtk browse button for translation

7 years agoUpdate nl.po translation
Joshua Pettus [Fri, 18 Mar 2016 20:45:16 +0000 (16:45 -0400)]
Update nl.po translation

7 years agoUpdate fr.po translation
Joshua Pettus [Thu, 17 Mar 2016 00:58:07 +0000 (20:58 -0400)]
Update fr.po translation

7 years agoUpdate de.po translation
Joshua Pettus [Thu, 17 Mar 2016 00:56:42 +0000 (20:56 -0400)]
Update de.po translation

7 years agoUpdate zh_CN.po translation
Joshua Pettus [Wed, 16 Mar 2016 03:00:17 +0000 (23:00 -0400)]
Update zh_CN.po translation

7 years agoUpdate uk.po translation
Joshua Pettus [Wed, 16 Mar 2016 02:54:36 +0000 (22:54 -0400)]
Update uk.po translation

7 years agoconfigure.ac: add pangocairo to list of needed libraries
Arun Persaud [Tue, 15 Mar 2016 02:36:44 +0000 (19:36 -0700)]
configure.ac: add pangocairo to list of needed libraries

7 years agoDisplay message on the board at startup
H.G.Muller [Mon, 14 Mar 2016 14:18:18 +0000 (15:18 +0100)]
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.

7 years agoFix expansion of ~~ in OSX App
H.G.Muller [Mon, 14 Mar 2016 14:07:08 +0000 (15:07 +0100)]
Fix expansion of ~~ in OSX App

The ~~ expansion was still using the configured DATADIR rather than
the dynamic one.

7 years agoPrint dynamic Datadir/Mandir on --show-config
H.G.Muller [Mon, 14 Mar 2016 12:59:02 +0000 (13:59 +0100)]
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.

7 years agoUse dataDir/manDir variables always
H.G.Muller [Sun, 13 Mar 2016 22:25:11 +0000 (23:25 +0100)]
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.

7 years agonew developer release; updated po/pot
Arun Persaud [Sun, 13 Mar 2016 17:34:08 +0000 (10:34 -0700)]
new developer release; updated po/pot

7 years agoUncomment line commentized for debugging purposes
H.G.Muller [Sun, 13 Mar 2016 09:51:49 +0000 (10:51 +0100)]
Uncomment line commentized for debugging purposes

The call attaching help clicks to Label Options was still commented out.

7 years agoFix popdown of Error/Help dialog through window-close button
H.G.Muller [Sun, 13 Mar 2016 08:21:43 +0000 (09:21 +0100)]
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.

7 years agoMake help clicks resistent to NULL-pointer Label names help
H.G.Muller [Sat, 12 Mar 2016 22:32:00 +0000 (23:32 +0100)]
Make help clicks resistent to NULL-pointer Label names

This should be needed, but just in case...

7 years agoSilence two warnings
H.G.Muller [Sat, 12 Mar 2016 22:30:20 +0000 (23:30 +0100)]
Silence two warnings

7 years agoMake help clicks also work for UCI engines
H.G.Muller [Sat, 12 Mar 2016 15:51:44 +0000 (16:51 +0100)]
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.)

7 years agoMake location of man file dynamic for OSX
H.G.Muller [Sat, 12 Mar 2016 15:41:38 +0000 (16:41 +0100)]
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.

7 years agoSuppress empty label at top of Edit Tags dialog
H.G.Muller [Sat, 12 Mar 2016 13:33:05 +0000 (14:33 +0100)]
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.

7 years agoAlso try to get help for engine options
H.G.Muller [Fri, 11 Mar 2016 22:43:48 +0000 (23:43 +0100)]
Also try to get help for engine options

Help clicks in the Engine Settings dialogs will try to scan the man page
of the corresponding engine for info about the option. This is a bit
tricky, as it must assume the name of the engine is the same as that
of the engine command and the manual for it is in section 6. In addition
it must look in both /usr/share/man and /usr/local/share/man, as it cannot
know whether the engine was installed from source or repo. Finally it
must hope the man page isn't gzipped.

7 years agoFix recognition of .SS lines in manual
H.G.Muller [Fri, 11 Mar 2016 15:59:41 +0000 (16:59 +0100)]
Fix recognition of .SS lines in manual

The logic for recognizing .SS headers was reversed, and .SS lines were
also not tested for to decide whether display should end.

7 years agoLet configure supply path to manual file
H.G.Muller [Fri, 11 Mar 2016 15:54:25 +0000 (16:54 +0100)]
Let configure supply path to manual file

A new macro MANDIR is passed fro the configure process to the compiler
in a -D option to inform XBoard where to find its manual page.

7 years agoFix segfault on single-line help text
H.G.Muller [Fri, 11 Mar 2016 14:54:45 +0000 (15:54 +0100)]
Fix segfault on single-line help text

The help text itself is displayed in the ErrorPopUp as a label,
and allowing help clicks on a label would apparently trigger some
nfinite recursion of event handlers. Making labels in the ErrorDlg
not sensitive to help clicks solved this.

7 years agoMention item in title bar of help dialog
H.G.Muller [Fri, 11 Mar 2016 14:19:13 +0000 (15:19 +0100)]
Mention item in title bar of help dialog

7 years agoMake dialog labels and comboboxes also accept help clicks
H.G.Muller [Fri, 11 Mar 2016 14:02:21 +0000 (15:02 +0100)]
Make dialog labels and comboboxes also accept help clicks

Combobaoxes and bare labels had their own code for creating the label,
nd were not yet made sensitive to help clicks. (Which is a bit cumbersome,
as GTK does not allow attaching callbacks to label widgets, so that you
have to wrap them first into something that does.) The bare labels could
furthermore already have a callback specified (used for the clocks);
in this case, and the case of multi-line labels, no help handler is

7 years agoDo not save ICS password in command history
H.G.Muller [Fri, 11 Mar 2016 13:25:19 +0000 (14:25 +0100)]
Do not save ICS password in command history

Blanking out the password while typing it would have little effect if
the arrow keys could recall is. So we don't save any lines in the
history when echo is off.

7 years agoFix file-type combobox of Xaw file-selector dialog
H.G.Muller [Fri, 11 Mar 2016 12:46:55 +0000 (13:46 +0100)]
Fix file-type combobox of Xaw file-selector dialog

The list of combobox labels got out of phase with the list of values
after 'Images', because the value for the latter was missing.

7 years agoAllow hyphen in name of help item
H.G.Muller [Thu, 10 Mar 2016 15:28:52 +0000 (16:28 +0100)]
Allow hyphen in name of help item

Some dialog items have names with hyphens in them, such as 'Auto-save',
and these would all be confusedif the true name was taken to end before
the hyphen.

7 years agoSuppress echo of password in ICS Chat window (GTK)
H.G.Muller [Thu, 10 Mar 2016 12:03:55 +0000 (13:03 +0100)]
Suppress echo of password in ICS Chat window (GTK)

The GTK version uses the set_visibility GTK call to switch echoing
of the ICS input widget. In Xaw this is a dummy. EchoOn/Off had to
be moved to dialogs.c for this.

7 years agoFix popdown of menus on help click
H.G.Muller [Thu, 10 Mar 2016 09:41:07 +0000 (10:41 +0100)]
Fix popdown of menus on help click

Because menus by default also react to button3 clicks, using those
clicks for help popup needs to suppress the default action. But this
action was also reponsible for the popdown of the menu, so that it
stayed up, covering the help dialog. Now we do allow the default action,
but flag to the generic menu handler that it should not execute the
menu function.

7 years agoImplement rough help popup
H.G.Muller [Wed, 9 Mar 2016 22:15:22 +0000 (23:15 +0100)]
Implement rough help popup

A routine is added that searches a given text header in the man file,
and then displays the following text until the next header (after
skipping additional headers that come before any text) in a message
box. The text uses a simple fill and wrap to line length > 80, and
ignores all control characters, except empty lines. Both .B and .SS
directives are recognized as headers.

7 years agoImplement help clicks
H.G.Muller [Wed, 9 Mar 2016 16:47:55 +0000 (17:47 +0100)]
Implement help clicks

A button3 click on the text labels of text-edit, spin, checkbox and
button controls, as well as menu items, now pops up an alert box
with the name of the clicked item. This as a first step to making an
interactive help that would use that name to look up information on the
item in the texi file, and display that.

7 years agoLogout from ICS after fatal error
H.G.Muller [Wed, 9 Mar 2016 09:53:35 +0000 (10:53 +0100)]
Logout from ICS after fatal error

Exiting of XBoard after a fatal error such as crashing of the engine
could be delayed by popping up an exit message, which then had to be
confirmed first. This would leave XBoard in zippy mode open for new
challenges, which it would even accept, and lose by forfeit. Now
we send a 'logout' command to the ICS before popping up the exit

7 years agoDeprecate -defaultPathEGTB option
H.G.Muller [Wed, 9 Mar 2016 08:44:45 +0000 (09:44 +0100)]
Deprecate -defaultPathEGTB option

The value of the -defaultPathEGTB option is now automatically cleared
at startup, after appending it as "nalimov:" format to -egtFormats.
We also no longer preconfigure a (dummy) value for -defaultPathEGTB,
but instead one for -egtFormats, (which will show up in the EGT path
field of the Common Engine Settings dialog now -defaultPathEGTB is
empty) to serve as an example for the syntax of -egtFormats.

7 years agoMake EOF error conditionally non-fatal (XB)
H.G.Muller [Tue, 8 Mar 2016 22:26:57 +0000 (23:26 +0100)]
Make EOF error conditionally non-fatal (XB)

When the ICS Chat window is open, an EOF fromkeyboard is ignored.

7 years agoFix braces problem in texi file
H.G.Muller [Tue, 8 Mar 2016 22:26:05 +0000 (23:26 +0100)]
Fix braces problem in texi file

7 years agoDescribe ICS Text Menu in texi file
H.G.Muller [Tue, 8 Mar 2016 20:55:13 +0000 (21:55 +0100)]
Describe ICS Text Menu in texi file

7 years agoFix WinBoard compile errors
H.G.Muller [Tue, 8 Mar 2016 19:41:41 +0000 (20:41 +0100)]
Fix WinBoard compile errors

7 years agoFix dressed-letter IDs in VariantMen PGN Tag
H.G.Muller [Tue, 8 Mar 2016 19:36:56 +0000 (20:36 +0100)]
Fix dressed-letter IDs in VariantMen PGN Tag

Due to sign extension the ID suffxes would never be printed.

7 years agoMake texi file sub-section free
H.G.Muller [Tue, 8 Mar 2016 19:11:37 +0000 (20:11 +0100)]
Make texi file sub-section free

Because the sub-sections did not work, all subsections (which occurred
mainly in the Options Menu section, to describe the various menu dialogs)
are now upgraded to sections.

7 years agoDescribe choice command in protocol specs
H.G.Muller [Tue, 8 Mar 2016 18:20:06 +0000 (19:20 +0100)]
Describe choice command in protocol specs

7 years agoImprove highlight-arrow pointing and fix its erasure
H.G.Muller [Tue, 8 Mar 2016 18:14:05 +0000 (19:14 +0100)]
Improve highlight-arrow pointing and fix its erasure

The code to calculate whether the arrow shoud endnear an edge or corner
of the to-square was buggy, leading to orientation-dependent decisions.
In addition the damage trace wasnot exactly following the arrow, so that
sometimes parts of the arrow were not displayed or erased.

7 years agoImprove triple-leg-move animation
H.G.Muller [Tue, 8 Mar 2016 16:20:21 +0000 (17:20 +0100)]
Improve triple-leg-move animation

When both locust squares (kill and kill2) are set, animation now takes
place in three stages. As kill2 is not retreived when stepping through
the game history, this works only for moves just entered or played by
the engine. Replayed moves are still animated in 2 stages, though, which
does look pretty good on 2-out-1-in moves.

7 years agoImplement triple capture
H.G.Muller [Tue, 8 Mar 2016 10:51:29 +0000 (11:51 +0100)]
Implement triple capture

Moves can now have two locust squares (and promote even when they are
locust captures). This applies to move entry (but only through click-
click; buttonless dragging does not yet work), as well as sending or
receiving from engine, and generating and parsing SAN.

7 years agoAllow use of context menu in text memos GTK
H.G.Muller [Mon, 7 Mar 2016 15:16:17 +0000 (16:16 +0100)]
Allow use of context menu in text memos GTK

Attaching a user handler for button3 events to text memos would suppress
the normal context menu, so you could copy/paste in those  only through
the keyboard. Now a button3 event while there is a non-empty selection,
or through a click behind all text, will pop up the normal context menu.

7 years agoShow moves in Edit Book window as SAN
H.G.Muller [Mon, 7 Mar 2016 12:46:50 +0000 (13:46 +0100)]
Show moves in Edit Book window as SAN

The opening moves in the GUI book for the current position shown in the
Edit Book window are converted to SAN before showing them, when they have
the simple form fromSqr toSqr promoChar. (This excludes drop moves and
double moves.)

7 years agoCleanup Edit Tags/Book/EngineList a bit
H.G.Muller [Mon, 7 Mar 2016 11:26:07 +0000 (12:26 +0100)]
Cleanup Edit Tags/Book/EngineList a bit

The Tags dialog is also used for two other functions, and this hack
causes some problems. This patch ameliorates these a bit. The Edit
Engine List now displays its own title (instead of "Tags"), and popping
it up pops down which other function was in use first. (Unfortunately
this can result in data loss for uncommitted changes.) The name of the
"save changes" button has been changed to "commit changes", to suggest
less strongly that a change in the Engine List would be immediately
saved to file (which in reality requires Save Settings Now as well).

7 years agoMake OK and Cancel buttons appear in top-level dialogs GTK
H.G.Muller [Mon, 7 Mar 2016 10:50:21 +0000 (11:50 +0100)]
Make OK and Cancel buttons appear in top-level dialogs GTK

The OK and Cancel buttons are created in GTK as part of the
dialog_with_buttons call, but to get top-level windows another call
had to be used, which does not automatically provide them.
We now explicitly add the buttons as requested by the EndMark Option,
paying attention to the SAME_ROW requests. (The code for that is currently
a bit messy, as one suspects that the cumbersome testing on Option.type
was done exactly to make the SAME_ROW request of EndMarks ignored.)
The GTK "clicked" signal is translated to a "response" in a kludgy way,
through a PopDownProxy routine.