12 years agoRepair score printing with -serverMoves option
H.G. Muller [Fri, 28 May 2010 09:05:00 +0000 (11:05 +0200)]
Repair score printing with -serverMoves option

A previous patch had moved MakeMove to before the update of pvInfoList,
so that the score/depth info would not appear in the file with moves.

12 years agoRepair animate dragging
H.G. Muller [Fri, 28 May 2010 09:02:54 +0000 (11:02 +0200)]
Repair animate dragging

The previous patch had left a stray semicolon in the mouse handler.

12 years agoFix game end during dragging
H.G. Muller [Mon, 10 May 2010 08:32:19 +0000 (10:32 +0200)]
Fix game end during dragging

The stale-first-click fix interfered with proper handling of a piece
being dragged when a game suddenly ended (because of opponent resign,
or caling the flag), because up-clicks when the from-square was reset
were completely ignored. Now such an 'unmatched' upclick calls
DragPieceEnd() and redraws the board.

12 years agoPop down old tags on loadng new game in WinBoard
H.G. Muller [Mon, 10 May 2010 08:09:36 +0000 (10:09 +0200)]
Pop down old tags on loadng new game in WinBoard

ResetFrontEnd(), called from Reset(), did not do this in WinBoard
(unlike XBoard), so that the tags from the previous game were left on
display when -autoDisplayTags was off.

12 years agoReverse mousewheel action
H.G. Muller [Sun, 9 May 2010 20:15:27 +0000 (22:15 +0200)]
Reverse mousewheel action

Apparently WinBoard was stepping in the opposite direction through the
game in reaction to the mousewheel as every other GUI in existence.

12 years agoFix bug in sending "usermove" when forcing book moves
H.G. Muller [Sun, 9 May 2010 20:07:30 +0000 (22:07 +0200)]
Fix bug in sending "usermove" when forcing book moves

The keyword "usermove" was copied to the buffer, but not sent before it
was overwritten by the actual book move.

12 years agoFix engine stall on perpetual-check evasion
H.G. Muller [Thu, 6 May 2010 15:23:24 +0000 (17:23 +0200)]
Fix engine stall on perpetual-check evasion

The adjudication code had already put the engine in force mode after
postponing the actual adjudication to the next move. Now first determine
if we want to adjudicate now, and with which result, before stopping the
engine and ending the game.

12 years agoLet move parser return ImpossibleMove for off-board moves
H.G. Muller [Thu, 6 May 2010 14:37:04 +0000 (16:37 +0200)]
Let move parser return ImpossibleMove for off-board moves

It used to return 0, which interfered with buiding a game list. This
broke reading of multi-game PGN files containing games in a variant with
a board size larger than that of the currenty active variant.

12 years agoAlter XBoard key bindings to mimic WinBoard
H.G. Muller [Tue, 6 Apr 2010 13:05:10 +0000 (15:05 +0200)]
Alter XBoard key bindings to mimic WinBoard

A lot of new bindings were added, and four menuProcs had to be registered
to be able to add bindings to them. The use of the control key as
temporary take-back for the last move conflicted with the use of Ctrl
keystrokes, and this function was migrated to '.'. The iconify function
had no shortcut in WinBoard, but to get rid of letter bindings it was
migrated to '-'.

12 years agoUpdate README file
H.G. Muller [Mon, 5 Apr 2010 18:45:45 +0000 (20:45 +0200)]
Update README file

12 years agoFix typos in html help file
H.G. Muller [Sat, 3 Apr 2010 12:00:40 +0000 (14:00 +0200)]
Fix typos in html help file

12 years agoFix JAWS piece drop cursor, and streamline some sentences
H.G. Muller [Thu, 1 Apr 2010 13:22:41 +0000 (15:22 +0200)]
Fix JAWS piece drop cursor, and streamline some sentences

The cursor square was reset to a1 after every use of the piece menu,
which was very inconvenient. Some of the spoken sentences have been
improved; the square is read before the piece now, when using the arrow
keys on the board.

12 years agoAllow escape sequences in telluser(error) messages
H.G. Muller [Wed, 31 Mar 2010 20:31:44 +0000 (22:31 +0200)]
Allow escape sequences in telluser(error) messages

The routine EscapeExpand was moved to backend.c, and applied to the
message received from the engine.

12 years agoAllow lower-case promochar in moves of type h8=Q
H.G. Muller [Wed, 31 Mar 2010 19:29:39 +0000 (21:29 +0200)]
Allow lower-case promochar in moves of type h8=Q

Updated the parser rules. Other move formats already allowed this.

12 years agoFix Alt+M JAWS command in Two-Machines mode
H.G. Muller [Wed, 31 Mar 2010 19:36:14 +0000 (21:36 +0200)]
Fix Alt+M JAWS command in Two-Machines mode

The command refused to read the ast move because it contained thinking
output of the other engine. Let it pay attention to evenIfDuplicate.

12 years agoFix rep-draw recognition
H.G. Muller [Mon, 29 Mar 2010 07:57:48 +0000 (09:57 +0200)]
Fix rep-draw recognition

The refactoring had broken the rep-draw recognition, by adding and extra
condition in a conditional with side effects. The testing of this extra
condition is now moved to after the side effect.

12 years agoAllow any %ENVIRONMENTVAR% in WB settings file name rather than ~
H.G. Muller [Sun, 28 Mar 2010 10:32:07 +0000 (12:32 +0200)]
Allow any %ENVIRONMENTVAR% in WB settings file name rather than ~

Only a single variable at the beginning of the file name is recognized,
and the matching is not fool proof (it matches across backslashes).

12 years agoFix info lines being used as normal thinking output
H.G. Muller [Sun, 28 Mar 2010 09:24:44 +0000 (11:24 +0200)]
Fix info lines being used as normal thinking output

The new standard of using thinking output with time = nodes = score = 0
as info messages for printing in the Engine-Output window was not
understood everywhere, and led to such info lines being used for
autoKibitzing and PGN annotation. The programStats are now only updated
from thinking output received from an engine when it is not an info line.

12 years agonew developer release
Arun Persaud [Sat, 27 Mar 2010 18:54:41 +0000 (11:54 -0700)]
new developer release

12 years agoSuppress background observe for boards with own game number
H.G. Muller [Fri, 26 Mar 2010 20:16:52 +0000 (21:16 +0100)]
Suppress background observe for boards with own game number

This is really a work-around for an ICS bug. The Variant-ICS sent the
initial board of a game in a move list with relation = 0, which means
'observed'. So XBoard was thinking it was observing its own game, and
switched to dual board. It seems harmless to suppress such a switch for
all boards of your own game, however, which is now done.

12 years agoFix crash on switching to ICS xiangqi game
H.G. Muller [Fri, 26 Mar 2010 20:12:19 +0000 (21:12 +0100)]
Fix crash on switching to ICS xiangqi game

The oldBoard was a local variable, and only squares of the old board
were initialized. This led to a crash if the copied board was enlarged,
and then displayed. The variable is now declared static, so the
uninitialized squares contain harmless zeros.

12 years agoLet Chat Boxes pop up above console, rather than on top of it
H.G. Muller [Fri, 26 Mar 2010 17:32:36 +0000 (18:32 +0100)]
Let Chat Boxes pop up above console, rather than on top of it

Use EnsureOnScreen() to have them overlap if there was no room.

12 years agoFix disabling of Chat Box navigation buttons
H.G. Muller [Fri, 26 Mar 2010 17:26:04 +0000 (18:26 +0100)]
Fix disabling of Chat Box navigation buttons

The buttons for non-open boxes were enabed, rather than disabled.

12 years agoPrevent <Esc> closing chat box
H.G. Muller [Fri, 26 Mar 2010 17:17:44 +0000 (18:17 +0100)]
Prevent <Esc> closing chat box

Let it in stead switch focus back to the console window.

12 years agoLet WinBoard recognize ~ in settings file name as HOMEPATH
H.G. Muller [Fri, 26 Mar 2010 14:28:54 +0000 (15:28 +0100)]
Let WinBoard recognize ~ in settings file name as HOMEPATH

Fetch the appropriate environment variable to build the mathname in
MySearchPath() whenever the file name starts with "~\".

12 years agoChange name of Global Settings menu item to Common Engine Settings
H.G. Muller [Fri, 26 Mar 2010 12:59:28 +0000 (13:59 +0100)]
Change name of Global Settings menu item to Common Engine Settings

The old name confused ICS users, as this is an engine-only dialog.

12 years agoUpdate WinBoard RTF docs
H.G. Muller [Fri, 26 Mar 2010 12:58:46 +0000 (13:58 +0100)]
Update WinBoard RTF docs

12 years agoUpdate WinBoard html help
H.G. Muller [Fri, 26 Mar 2010 12:57:59 +0000 (13:57 +0100)]
Update WinBoard html help

12 years agoAllow adjustment of clocks in any mode with shift+click
H.G. Muller [Wed, 24 Mar 2010 17:00:08 +0000 (18:00 +0100)]
Allow adjustment of clocks in any mode with shift+click

In practice changing to edit-game mode during a game was very
cumbersome. In WinBoard shift+click is now offered as an alternative.
Make sure a right-click in the clock area is not also counted for other

12 years agoAllow loading of PGN variations in XBoard
H.G. Muller [Wed, 24 Mar 2010 16:21:47 +0000 (17:21 +0100)]
Allow loading of PGN variations in XBoard

Right-clicking variation comments in the comment-window was implemented
through a translation. The right button is now bound to routines that
set both the end and start of the selection, as setting a new start does
not seem to work if the previous select-start was not completed by a
select-end or extend-end. Finally the main handler uses the selection
cursors to know what was clicked.

12 years agoUpdate XBoard docs
H.G. Muller [Wed, 24 Mar 2010 16:16:59 +0000 (17:16 +0100)]
Update XBoard docs

Added a descripton of the new ICS options (seek graph, back-ground
observe) and menus (Upload) to the texi file. Also added a description
of the variation (Annotate menu item and PGN variation comments) and PV
walking (clicking engine-output). Describe the -shuffleOpenings option.

12 years agoPaint highlights on dual board (WB)
H.G. Muller [Wed, 24 Mar 2010 12:30:59 +0000 (13:30 +0100)]
Paint highlights on dual board (WB)

The highlight info is hidden in the partner board to pass it to the

12 years agoFix handling username change during game
H.G. Muller [Wed, 24 Mar 2010 12:14:54 +0000 (13:14 +0100)]
Fix handling username change during game

The title bar and gameInfo (going into the PGN) were not adapted when
the username was changed through the menu, so that the change became
only effective on the next game. Requires SetGameInfo to be called from
the front-end, and thus a prototype for it in backend.c.

12 years agoFix window-position upset on failing engine start in WinBoard
H.G. Muller [Wed, 24 Mar 2010 10:04:00 +0000 (11:04 +0100)]
Fix window-position upset on failing engine start in WinBoard

The main window was only positoned according to the settings-file data
after the engine was started up from InitBackend2(), so that if the
latter gave a fatal error, and Save Settings on Exit was on, a wrong
position for the main window would be saved. The call to InitBackend2()
is now moved until after setting the main-window position.

12 years agoDisplay PV from Engine-Output window (XBoard)
H.G. Muller [Tue, 23 Mar 2010 22:22:46 +0000 (23:22 +0100)]
Display PV from Engine-Output window (XBoard)

Translations are added to bind button 3 to the PV walk for the memo
widgets, and the corresponding handlers are ported from wengineoutput.c.

12 years agoSet keyboard focus at startup to board window
H.G. Muller [Wed, 10 Mar 2010 17:54:28 +0000 (18:54 +0100)]
Set keyboard focus at startup to board window

This makes XBoard sensitive to the keybindings also when the cursor is
outside the board window. This focus seems to persist indefinitely: each
time the board window gets selected, the key bindings become activem
wherever the mouse pointer is. Downside: the mouse pointer is no longer
an arrow outside the board window, but becomes a text-insert tool there.

12 years agoadded logo files for xboard
Arun Persaud [Sun, 28 Feb 2010 04:49:21 +0000 (20:49 -0800)]
added logo files for xboard

logos are installed in the hicolor theme [1] using $datadir as the basedir.
Added both png and svg logo.

[1] http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html

12 years agoRemake programVersion string after receiving engine features
H.G. Muller [Sat, 27 Feb 2010 16:36:10 +0000 (17:36 +0100)]
Remake programVersion string after receiving engine features

The engine could have sent a more accurate version of its own name
than the one derived from the exe filename in a myname feature, and we
better use that in the programVersion string, which will be sent as
interface name to the ICS.

12 years agoRevert "Repair settings-file name"
Arun Persaud [Fri, 26 Feb 2010 03:22:00 +0000 (19:22 -0800)]
Revert "Repair settings-file name"

This reverts commit a02042ef83ce1f3632f0cf3e0a2a4ce9a3ac5d85.

12 years agoAdd -autokibitz checkbox to UCI-options menu dialog
H.G. Muller [Thu, 25 Feb 2010 19:32:23 +0000 (20:32 +0100)]
Add -autokibitz checkbox to UCI-options menu dialog

12 years agoAlso capture (numeric) whispers of players for -autoKibitz
H.G. Muller [Thu, 25 Feb 2010 19:29:45 +0000 (20:29 +0100)]
Also capture (numeric) whispers of players for -autoKibitz

12 years agoAdd kibitzes and c-shouts Chat Box
H.G. Muller [Thu, 25 Feb 2010 19:25:32 +0000 (20:25 +0100)]
Add kibitzes and c-shouts Chat Box

A box dedicated to c-shouts will snatch any c-shout before it is
diverted to a normal shouts box. The kibitzes box can capture the
left-overs of -autoKibitz, if the latter is active.

12 years agoMark non-compliant lines of engine in debug file
H.G. Muller [Thu, 25 Feb 2010 14:45:16 +0000 (15:45 +0100)]
Mark non-compliant lines of engine in debug file

The option -engineDebugOutput is extended to accept value 3 for printing
a cear indication of non-compliancy in the debug file.

12 years agoRedraw second board on expose events
H.G. Muller [Thu, 25 Feb 2010 11:02:58 +0000 (12:02 +0100)]
Redraw second board on expose events

The -dualBoard option now does refresh the second board after another
window uncovers it. To acheive this, some data structures remembering
what is displayed had to be duplicated. (lastBoard and damage for XB,
lastReq, lastDrawn, lastReqValid and lastDrawnValid for WB.)
WinBoard now uses clipping also for second board. This required the
clips for the destination to be translated horizontally!

12 years agoPrint seconds with 2 digits in backgroundObserve status line
H.G. Muller [Thu, 25 Feb 2010 14:13:00 +0000 (15:13 +0100)]
Print seconds with 2 digits in backgroundObserve status line

12 years agoDo not recognize non-ICS variants from PGN event tag
H.G. Muller [Wed, 24 Feb 2010 16:01:23 +0000 (17:01 +0100)]
Do not recognize non-ICS variants from PGN event tag

These variants were introduced after supporting the variant tag, so if
the variant tag is missing, their recognition from the event tag will be
a false match. (Mainly to prevent events with 'super' in the name being
recognized as Superchess.)

12 years agoFix display of uninitialized boards in background observe hgm-4.20100223
H.G. Muller [Tue, 23 Feb 2010 12:52:51 +0000 (13:52 +0100)]
Fix display of uninitialized boards in background observe

A variable partnerBoardValid is cleared on starting our own game, and
set when a board from the background game comes in during it. At the end
of our own game, a valid partner board now is put in the display.

12 years agoAdd option Display Logo in WB general-options menu
H.G. Muller [Tue, 23 Feb 2010 12:46:25 +0000 (13:46 +0100)]
Add option Display Logo in WB general-options menu

Changing the option requires InitDrawingSizes to be called for
re-formatting the board window. Switching it off requires clearing of
the cps->programLogo fields to take effect immediately. Switching it on
only takes effect the next session, as we will need some refactoring to
redo the figuring out what logos to display.

12 years agoGroup Chat Boxes with console in stead of board window
H.G. Muller [Mon, 22 Feb 2010 11:02:59 +0000 (12:02 +0100)]
Group Chat Boxes with console in stead of board window

They now open and close with the console, which seems more natural, and
prevents the console from covering them.

12 years agoPut new options in WB ICS-options dialog
H.G. Muller [Mon, 22 Feb 2010 10:50:59 +0000 (11:50 +0100)]
Put new options in WB ICS-options dialog

The Seek-Graph, background-observe and Chat-Box options are added to the
ICS options dialog. They only control the appData settings, there are no
special actions yet on switching the settings.

12 years agoCreate space in WinBoard ICS-options dialog
H.G. Muller [Mon, 22 Feb 2010 10:46:33 +0000 (11:46 +0100)]
Create space in WinBoard ICS-options dialog

12 years agoUse side-by-side boards to display background game
H.G. Muller [Sat, 20 Feb 2010 11:42:09 +0000 (12:42 +0100)]
Use side-by-side boards to display background game

A game observed in the background (i.e. if -backgroundObserve true) will
be displayed right of the normal board in the same window if the new
(persistent) Boolean option -dualBoard is also set.
Very flakey hack, especially in XBoard, where clocks and messsage
field all get the wrong width (and resist adjustment in the strangest
ways). The clocks of the partner game are not yet displayed, and
disaster happens when the background and foreground games do not have
the same board format.

12 years agoRepair background-observe patch
H.G. Muller [Tue, 23 Feb 2010 13:57:01 +0000 (14:57 +0100)]
Repair background-observe patch

Apparently a commit was lost that I collapsed with 3018a6 while the
latter was already pushed to savannah. Here I recreated this commit from
a diff between the respective commits in the savannah & nubati gits.

12 years agoRepair settings-file name
H.G. Muller [Sun, 31 Jan 2010 10:07:33 +0000 (11:07 +0100)]
Repair settings-file name

The default name is put back to /etc/xboard/xboard.conf, so that XBoard
can again find its settings file. "make install" will still install it
in the wrong place.

12 years agonew developer release master-20100221
Arun Persaud [Mon, 22 Feb 2010 02:43:59 +0000 (18:43 -0800)]
new developer release

12 years agofixed compiler warning for file-browser code
Arun Persaud [Mon, 22 Feb 2010 03:45:58 +0000 (19:45 -0800)]
fixed compiler warning for file-browser code

missing "void"s in the function declaration and missing returns showed up when trying to build on the opensuse build server. fixed now.

12 years agoPut newly opened Chat Box on top
H.G. Muller [Sun, 21 Feb 2010 22:09:24 +0000 (23:09 +0100)]
Put newly opened Chat Box on top

Dialogs always pop up in front, so set the onTop variable that prevents
highighting the button to navigate to it from other Chat Boxes
to reflect that a newly opened Chat Box is in view.

12 years agoFix copying of kibitzed info in Engine-Output window
H.G. Muller [Sun, 21 Feb 2010 17:55:03 +0000 (18:55 +0100)]
Fix copying of kibitzed info in Engine-Output window

Make sure all lines end with "\r\n" to not lose line breaks on
copy-paste from the memo. (XBoard would strip those again.)

12 years agoAllow walking a kibitzed PV
H.G. Muller [Sun, 21 Feb 2010 17:25:45 +0000 (18:25 +0100)]
Allow walking a kibitzed PV

If no tabs are found in te 'thinking output' we assume it is a captured
kibitz message, and look for "PV=" to locate the start of a PV in it.
Also try to include any continuation lines below the selected line.

12 years agoInsert autoKibitz continuation lines at end of line
H.G. Muller [Sun, 21 Feb 2010 16:45:37 +0000 (17:45 +0100)]
Insert autoKibitz continuation lines at end of line

In the engine-output window lines that start with the ICS continuation
sequence "\   " are inserted behind the line they belong to, in stead of
at the top. This required keeping thrack of the length of the currently
active line in OutputKibitz().

12 years agoDon't disturb background observe when receiving new piece
H.G. Muller [Sat, 20 Feb 2010 14:39:29 +0000 (15:39 +0100)]
Don't disturb background observe when receiving new piece

When new holdings are sent when the background game is displayed, we now
ignore this, as presumably we are peeking at our partners game, and thus
should be well aware of what is captured there.

12 years agoNewly lexed parser in XBoard directory
H.G. Muller [Fri, 19 Feb 2010 20:52:06 +0000 (21:52 +0100)]
Newly lexed parser in XBoard directory

12 years agoLet yy_text determine progress of PV parsing
H.G. Muller [Fri, 19 Feb 2010 10:18:21 +0000 (11:18 +0100)]
Let yy_text determine progress of PV parsing

The parsed unit yy_text was not available after ParseOneMove(), because
the buffer switch in yylexstr() apparently destroys it. To solve that,
yylexstr() now is equiped with an extra buffer argument, where it copies
yy_text before the switch, so the caller, ParsePV(), can see what was
parsed in yy_textstr. This is used to update the PV pointer, but also to
save any parsed comments (when ParsePV is used for parsing a PGN variation).

12 years agoSupport playing through PGN variation comments
H.G. Muller [Thu, 18 Feb 2010 16:42:48 +0000 (17:42 +0100)]
Support playing through PGN variation comments

Right-clicking a variation line in the comment dialog will shelve the
current variation, and parse the comment to replace it. This uses
ParsePV() in an alternative way, for which the latter had to be
enhanced: it was made resistent to move numbers and comments inside
the PV. It now has an argument to indicate if such comments should be
stored with the moves. The Comment Popup is closed on revert, to
make sure no comments to moves that are destroyed, containing
variations on a non-valid line, can keep hanging around.

12 years agoAdd Annotate item in Step menu
H.G. Muller [Thu, 18 Feb 2010 15:05:35 +0000 (16:05 +0100)]
Add Annotate item in Step menu

This does the same as Revert, except that it adds the destroyed
variation as comment to the original movem in PGN variation format.
RevertEvent now has an argument to indicate if it should add the
comment, or not. Comments in the abandoned variation are included in the
varriation command to the main line. (The exact layout of the variation
comment that results leaves still to be desired.)

12 years agoAdd option -shuffleOpenings
H.G. Muller [Mon, 15 Feb 2010 18:07:12 +0000 (19:07 +0100)]
Add option -shuffleOpenings

This volatile option is added just to make the existing variable
available from the command line, not only from the menus.

12 years agoLet the sounds sound on receiving a message in a Chat Box
H.G. Muller [Fri, 19 Feb 2010 10:48:49 +0000 (11:48 +0100)]
Let the sounds sound on receiving a message in a Chat Box

Use Colorize() to the applicable color to trigger the sound, and then
restore the original color as 'continuation', to do it silently.

12 years agoAllow WB Chat Box to be dedicated to shouts and 'it'
H.G. Muller [Wed, 10 Feb 2010 09:55:51 +0000 (10:55 +0100)]
Allow WB Chat Box to be dedicated to shouts and 'it'

By putting 'shouts' in the handle field, a chat window will capture all
shouts and c-shouts, and send messages typed into it as shouts.
The bracketing of the shouter name now indicates the type of shout.
The handle for WHISPER Chat Boxes has been changed to 'whispers', to
make it easier to pop them up by clicking the console.

12 years agoAdd -chatBoxes option to open Chat Boxes at startup
H.G. Muller [Tue, 16 Feb 2010 21:34:23 +0000 (22:34 +0100)]
Add -chatBoxes option to open Chat Boxes at startup

This string option contains a semicolon-separated list of handles for
which Chat Boxes should be opened at startup. The value saved in the ini
file is the value that was read, not the actual chat boxes that were
open at the time of saving.

12 years agoMake Chat Windows pseudo-tabbed
H.G. Muller [Tue, 16 Feb 2010 18:44:46 +0000 (19:44 +0100)]
Make Chat Windows pseudo-tabbed

By adding buttons in every Chat Box to navigate directly to every other
Chat Box, a stacked set of Chat Windows behaves like a single tabbed
window, but can still be unstacked. The buttons turn grey to warn that
new text appeared in hidden boxes (i.e. not the one last brought to top).

12 years agoAllow arrow keys in WB Chat Box to access command history
H.G. Muller [Fri, 19 Feb 2010 20:46:05 +0000 (21:46 +0100)]
Allow arrow keys in WB Chat Box to access command history

The history is shared between al boxes and the ICS console.

12 years agoMake WB Chat Boxes wrap and handle URLs
H.G. Muller [Fri, 12 Feb 2010 21:35:11 +0000 (22:35 +0100)]
Make WB Chat Boxes wrap and handle URLs

Cloned the code for the console text field to hande URL. (Initialization
to recogize the link, and notifiction to open it when clicked.)
Removed the ES_AUTOHSCROLL style from the RichEdit in the resource.

12 years agoFix copying of WB Chat Window contents
H.G. Muller [Wed, 10 Feb 2010 09:58:29 +0000 (10:58 +0100)]
Fix copying of WB Chat Window contents

All line breks were lost on copy-pasting the contents of a chat window.
Adding CR to each outputted line in the front-end (wchat.c) solves this.
(Tell messages sent to a handle (which are not echoed by the ICS, and
thus have to copied to the chat box directly) also need CR!)

12 years agoAdd upload of game to ICS for examining
H.G. Muller [Fri, 19 Feb 2010 21:34:30 +0000 (22:34 +0100)]
Add upload of game to ICS for examining

New item "Upload to Examin" in Action menu, calls UploadGameEvent().
Use SAN moves to upload game to ICS, rather than long algebraic
(The ICS did not understand long-algebraic promotion moves)
Use bsetup within examine to set position onFICS, and also variant.
Castling rights do not work yet for FRC. Totally different set of
commands are needed on FICS and ICC.
 FICS does not understand w23 or wild/23, but needs 'crazyhouse' in the
besetup command that specifies the variant. XBoard variant names are
used, except for fischerandom, which is 'fr'. Things like nocastle will
probably still not work.

12 years agoHandle display of PV that starts with other move than played
H.G. Muller [Thu, 18 Feb 2010 16:41:10 +0000 (17:41 +0100)]
Handle display of PV that starts with other move than played

Insert the retraction of the played move, without premove highlighting.

12 years agoBugfix smart capture
H.G. Muller [Tue, 16 Feb 2010 18:36:18 +0000 (19:36 +0100)]
Bugfix smart capture

Disambiguate was changed to make sure that for ambiguous moves, a
capture would always prevail in the closure, rather than the last move
that happened to be generated. Before, double-clicking a piece would
sometimes plsy a non-capture.

12 years agoFix XB crash on giving keyboard focus to non-text widget
H.G. Muller [Sat, 13 Feb 2010 14:34:04 +0000 (15:34 +0100)]
Fix XB crash on giving keyboard focus to non-text widget

In the Engine-Settings dialog SetFocus() could be called for non-text
widgets, and this made XawTextSetInsertionPoint() croak. Setting the
insertion point to the end in SetFocus() was a bad ide anyway, as it
interfered with copying from the engine-output window, which would
uncontrollably scroll on getting focus. It is solved now by setting the
insertion point already on creation of the text widgets.

12 years agoSeek-Graph bugfix: disappearing output in ICS console
H.G. Muller [Fri, 19 Feb 2010 21:32:35 +0000 (22:32 +0100)]
Seek-Graph bugfix: disappearing output in ICS console

Suppression of output to the cosole was handled fundamentally wrong: it
was not enough to set next_out to after the unit that should be
suppressed, as there can be a backlog in printing of previous units that
came in the same packet. So this has to be flushed first, or it will be
lost. -autoKibitz probably got away with that, because it comes in a
separate packet. But seek ads are often suffixed to other output, and
then that output disappeared! Now we flush everywhere before suppressing.
We now totally rely on the prompt to restart the printing, so that
acknowledgements following the echo of the sent message are also
suppressed. Also suppress LF before diverted chat messages.
  Also fixed is the 'mamer bug' in Chat Boxes, due to false parsing of
a "* (*): " pattern in tell messages, because of a missing continue.

12 years agoPop up ICS text menu with default item under mouse pointer
H.G. Muller [Fri, 12 Feb 2010 17:08:29 +0000 (18:08 +0100)]
Pop up ICS text menu with default item under mouse pointer

The menu popup is migrated to the down-click (was up-click), so the
up-click can select the item. Some trickery is needed to fool the menu
into thinking that the mouse moved, so that a moveless up-down click in
the ICS text field selects the default item (the upper-right one).
Also allow dummy item in ICS text menu: The command "none" in the ICS
text menu will now be treated as a grayed-out (disabled) entry, so it
can be defined in the position underthe mouse pointer to prevent the
up-click from doing anything, while keeping the menu open. Recommended
for use with an entry of spaces.

12 years agoAllow ICS context menu to pop up a Chat Box on clicking handle
H.G. Muller [Wed, 10 Feb 2010 13:42:49 +0000 (14:42 +0100)]
Allow ICS context menu to pop up a Chat Box on clicking handle

A command "chat" defined in the WinBoard icsMenu string will cause
ChatPopUp() to be called when it is clicked, with the clicked handle
(name) in the ChatPartner field, and focus on the input field.
ChatPopUp() had to get a parameter (the handle) to make this possible.
If that parameter is NULL (as when it is called from the Mode menu),
focus will still start on the (empty) ChatPartner field of the box.

12 years agoFix right-edge spillover of Seek-Graph dots in WinBoard
H.G. Muller [Wed, 10 Feb 2010 09:50:11 +0000 (10:50 +0100)]
Fix right-edge spillover of Seek-Graph dots in WinBoard

Rescale the X-axis to allow margin for dot size and color offset.

12 years agoInterface XBoard to GhostView file-browser dialog
H.G. Muller [Sat, 30 Jan 2010 10:05:52 +0000 (11:05 +0100)]
Interface XBoard to GhostView file-browser dialog

Note: The Ghostview dialog was using some deprecated variables for error
printing, and conditionally used getwd() on some systems that presumably
do not have getcwd(), but it did not assess the latter properly.

12 years agoAllow recalling history in ICS input box with arrow keys
H.G. Muller [Tue, 9 Feb 2010 13:38:09 +0000 (14:38 +0100)]
Allow recalling history in ICS input box with arrow keys

By adding translations for the Up and Down keys, and stealing some code
from winboard.c. Still needs some refactoring to move the duplicate code
to the back-end.

12 years agoStart insertion point at end of text edits in XB dialogs
H.G. Muller [Tue, 9 Feb 2010 13:34:33 +0000 (14:34 +0100)]
Start insertion point at end of text edits in XB dialogs

The function SetFocus now uses XawTextSetInsertionPoint to position the
end of the string it aready contains, rather than at the beginning.

12 years agoCapture holdings of background observed game
H.G. Muller [Mon, 8 Feb 2010 16:55:44 +0000 (17:55 +0100)]
Capture holdings of background observed game

12 years agoMatch handles with multiple titles for channel Chat Boxes
H.G. Muller [Mon, 8 Feb 2010 10:57:57 +0000 (11:57 +0100)]
Match handles with multiple titles for channel Chat Boxes

Only handles with at most one suffixed 'title', such as (U), (C), (IM)
or (TD), followed by the parenthesized channel number, were recognized,
so tells by people with more titles always went to the ICS console window.
Patterns are added to recognize handles with upto three such qualifiers.

12 years agoDo not pop down Seek Graph on on-dot click
H.G. Muller [Mon, 8 Feb 2010 10:54:55 +0000 (11:54 +0100)]
Do not pop down Seek Graph on on-dot click

Leave the graph up, and let the incoming board of a started game cause
the pop-down. This in case the clicked ad is no longer vailable, or
manuay refused, and fails to start a game.

13 years agoObserve a game in the background while playing
H.G. Muller [Sun, 7 Feb 2010 20:26:39 +0000 (21:26 +0100)]
Observe a game in the background while playing

A new (persistent) option -backgroundObserve true|false is added. When
set, observed boards received while playing a game will not trigger a
game switch, but will be ignored except for storing in a dedicated board
buffer. Pressing the right mouse button will cause the board to be
displayed, until we release it. Time, strength and stm are always
displayed in the message window.

13 years agoRemove race condition in clock switching
H.G. Muller [Sun, 7 Feb 2010 15:43:36 +0000 (16:43 +0100)]
Remove race condition in clock switching

The move number is now incremented inside SwitchClock, when no timer
interrupt is scheduled, so the interrupt cannot occur at the wrong side
of the increment, and decrement the wrong clock.

13 years agoLet second click on piece make only capture, with -oneClickMove
H.G. Muller [Sun, 7 Feb 2010 10:53:03 +0000 (11:53 +0100)]
Let second click on piece make only capture, with -oneClickMove

Normally this would clear the highlighting of that piece.
Required new field in DisambiguateClosure to count nr of captures.

13 years agoBugfix stale first-click
H.G. Muller [Sun, 7 Feb 2010 10:18:56 +0000 (11:18 +0100)]
Bugfix stale first-click

When the opponent resigned after the user had cicked a from-square,
clicking the from-square for the first move in the next game would
produce an "illegal move" message, because it was considered a to-click!
We now set fromX and fromY to invalid in GameEnds().
Should we also reset them on mode changes?

13 years agoAdd promotions and e.p. to oneClickMove
H.G. Muller [Sun, 7 Feb 2010 10:08:05 +0000 (11:08 +0100)]
Add promotions and e.p. to oneClickMove

For e.p. the to-Square of the Pawn has to be clicked. Promotions are
always to Queen when you click the to-square, but use the promotion
pop-up when you click the from-square.

13 years agoFix error that compiler does not notice
H.G. Muller [Sun, 7 Feb 2010 09:38:38 +0000 (10:38 +0100)]
Fix error that compiler does not notice

Boolean GLT_GetFromList did not return a value. But no error on Ubuntu!

13 years agonew developer release master-20100206
Arun Persaud [Sun, 7 Feb 2010 02:55:38 +0000 (18:55 -0800)]
new developer release

13 years agoupdated year in copyright info
Arun Persaud [Sun, 7 Feb 2010 02:30:42 +0000 (18:30 -0800)]
updated year in copyright info

13 years agoOne-click moves
H.G. Muller [Fri, 5 Feb 2010 21:27:51 +0000 (22:27 +0100)]
One-click moves

Playing on ICS or against engine, clicking a square from or to which
only a single move can be made causes the move to be done, when the new
option -oneClickMove is set to true.

13 years agoUse squares for computer seek ads
H.G. Muller [Thu, 4 Feb 2010 15:09:25 +0000 (16:09 +0100)]
Use squares for computer seek ads

Shape indication passed in sign bit of color (char) variable.

13 years agoUse right mouse button to view seek ads
H.G. Muller [Thu, 4 Feb 2010 21:46:41 +0000 (22:46 +0100)]
Use right mouse button to view seek ads

Right down-click does the same as left down-click, right up-click
simulates a left up-click off board (so it misses all dots).

Use right-click miss to refresh Seek Graph

The 'moving' parameter had to be made into an int for this, to indicate
right clicks with code 2. Right press now already pushes the clicked ad
to the back, so that the up-click will display an underlying one.

Bugfix pushing back seek ads on right-click

On a right button press the previous in stead of currently hit ad was
receiving the penalty.

Indicate seek-ad multiplicity

If more than one seek ad is inside the capture range of the mouse
pointer, an exclamation point is printed before the seek-ad text.

Some fixes to make seek-ad suppression work in WinBoard

In WinBoard the z-depth was immediately erased by redrawing the graph;
the clearing of zlist had to be moved from PlotSeekAd() to AddAd()
(where it really belongs). Also aging of z-depth is now suppressed on
mere pointer motion.

13 years agoDynamic Seek Graph
H.G. Muller [Thu, 4 Feb 2010 21:45:01 +0000 (22:45 +0100)]
Dynamic Seek Graph

The new option -autoRefresh sets FICS and ICC to report removal of seek
ads, and then removes those from the Seek Graph. New seek ads are added
to the graph, as soon as the ICS reports them.

13 years agoImplement SeekGraph in XBoard
H.G. Muller [Thu, 4 Feb 2010 21:42:15 +0000 (22:42 +0100)]
Implement SeekGraph in XBoard

For now only controlled by left mouse clicks on board. New options
-seekGraph true|false and -sg to switch this feature on.

Facilitate selection of coinciding seek ads

Seek-ads that are viewed but not answered get a distance penalty on the
up-click that makes their selection more difficult next time, so that
the ad they covered gets a (better) change. The penalty ages away in the
course of 5 clicks.

Slightly offset Seek-Graph dots of different color

Dots of different color are now displaced horizontally be 3 pixels, to
prevent them from completely covering each other. (Required the axis
labels to be moved a little too, to not be covered by the 1-min ads.)

Auto-show seek-ad texts in WinBoard

Hovering the mouse above a Seek-Graph dot will make the text belonging
to it appear in the message field without the need to press a button.
Required SeekGraphClick() to be called from the WB mouse event handler,
with an extra argument 'moving' to make the distinction with a real

Show seek-ad text on mouse hovering (XBoard)

The Eventproc is also set to trigger on PointerMotion, and this event
then calls SeekGraphClick with motion=true to handle it.

Put poetic name of wilds in seek-ad text

Use XBoard variant names, except for 'loadable' and 'fischerandom'
(becomes 'setup' and 'chess960'), but leave number (to distinguish wilds
that transate to same XBoard variant).