11 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

11 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.

11 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.

11 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.

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

11 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.

11 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.

11 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.)

11 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.

11 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().

11 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.

11 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

11 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).

11 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.

11 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.)

11 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.

11 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.

11 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.

11 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.

11 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).

11 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.

11 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.

11 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!)

11 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.

11 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.

11 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.

11 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.

11 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.

11 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.

11 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.

11 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.

11 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.

11 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.

11 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.

11 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

11 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.

11 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.

11 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.

11 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.

11 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.

11 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?

11 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.

11 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!

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

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

11 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.

11 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.

11 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.

11 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.

11 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).

11 years agoFix highlighting bug in XBoard
H.G. Muller [Fri, 5 Feb 2010 19:36:50 +0000 (20:36 +0100)]
Fix highlighting bug in XBoard

The from-square was drawn before the to-square was erased, which led to
a missing highlight line if they shared an edge or corner.

11 years agoShorten autoKibitz confirmation on FICS
H.G. Muller [Fri, 5 Feb 2010 14:49:59 +0000 (15:49 +0100)]
Shorten autoKibitz confirmation on FICS

Strip off the "players)", but leave the separatng space.

11 years agoRepair damage to -autoKibitz done by FICS atomic zippy claim
H.G. Muller [Fri, 5 Feb 2010 13:39:55 +0000 (14:39 +0100)]
Repair damage to -autoKibitz done by FICS atomic zippy claim

The sending of -autoKibitz info was also moved back in that patch, but
unfortunately to after clearing of the programStats info. Now the
clearing has been moved also, to remain after it.

11 years agoSend continuation lines to chat box they belong to
H.G. Muller [Thu, 4 Feb 2010 22:33:50 +0000 (23:33 +0100)]
Send continuation lines to chat box they belong to

The variable savingComment is used as a kludge to remember where the
comment should go (i.e. which chatbox, or elsewhere), so that when a
continuation line is matched, chatPartner (which was reset at EOL) can
be restored to its original value. Also put space after handle of talker
in channel Chat Windows

11 years agoFix u64 format for cygwin
H.G. Muller [Tue, 2 Feb 2010 18:08:42 +0000 (19:08 +0100)]
Fix u64 format for cygwin

With a -mno-cygwin compile %llu and %lld are definitely not understood
by scanf and printf, although they are by the compiler. In stead, %I64u
seems to work. Put it in under control of a switch USE_I64, which is
defined only in the gcc makefile when MINGW is used.

11 years agoRemove stray dot from WinBoard makefiles
H.G. Muller [Tue, 2 Feb 2010 18:02:28 +0000 (19:02 +0100)]
Remove stray dot from WinBoard makefiles

There was a period suffixed to config.h in the wgamelist.o dependency.

11 years agoFix bug in display of logos
H.G. Muller [Mon, 1 Feb 2010 13:50:01 +0000 (14:50 +0100)]
Fix bug in display of logos

The logo continued to be drawn after a boardSize change to a tinyLayout
size, although there was no space reserved for it. Fixed by explicitly
resetting logoHeight when no logo space is reserved in InitDrawingSizes().

11 years agoRight-click refactoring: step III
H.G. Muller [Tue, 19 Jan 2010 19:15:49 +0000 (20:15 +0100)]
Right-click refactoring: step III

Let WinBoard call RightClick in back-end, and delete the duplicate code
it had for this, after rescuing the front-end bits, and let the letter
act depending on the result returned by RightClick.

11 years agoRight-click refactoring: step II
H.G. Muller [Tue, 19 Jan 2010 18:07:15 +0000 (19:07 +0100)]
Right-click refactoring: step II

Migrate the Right-click routine to the back-end. Let it communicate back
square coordinates through pointer arguments, to accomodate their
different naming in XBoard and WinBoard. Template added in frontend.h.

11 years agoRight-click refactoring, step I
H.G. Muller [Tue, 19 Jan 2010 16:55:05 +0000 (17:55 +0100)]
Right-click refactoring, step I

Divorce front-end part from back-end part of PieceMenuPopup in XBoard
front-end, and forge the back-end part into a new routine RightClick.
The right up-click in XBoard, which called unLoadPV() directly, now
calls RightClick through PieceMenuPopUp().

11 years agoMerge gamelistopt sources into gamelist source files
H.G. Muller [Thu, 4 Feb 2010 22:09:47 +0000 (23:09 +0100)]
Merge gamelistopt sources into gamelist source files

The files xgamelistopt.c and gamelistopt.c are merged with xgamelist.c
and gamelist.c, respectively. The WB front-end for the dialog already
resided in winboard.c, so there was little need to move it to wgameist.c
file. Makefiles adapted accordingly. Unsuitable key bindings were
removed. The low-level front-end prototypes are now defined in in

11 years agoGame-List options dialog for XBoard
H.G. Muller [Fri, 29 Jan 2010 20:47:47 +0000 (21:47 +0100)]
Game-List options dialog for XBoard

A dialog similar to that of WinBoard was cloned from the game-list
window. The XBoard front-end is in a separate file xgamelistopt.c,
which in fact implements most of the low-level front-end as back-end.

11 years agoRefactoring of game-list-options dialog
H.G. Muller [Fri, 29 Jan 2010 11:48:50 +0000 (12:48 +0100)]
Refactoring of game-list-options dialog

The back-end part is separated off, and moved to a file gamelistopt.c.
Front-end for now stays in winboard.c. No prototypes in frontend.h yet.

11 years agoFix of ancient WB bug: test integer option values for validity
H.G. Muller [Tue, 26 Jan 2010 18:28:43 +0000 (19:28 +0100)]
Fix of ancient WB bug: test integer option values for validity

Only a string of digits preceded by an optional sign is accepted now.
Before, any string was accepted, and leaving out a value could lead to
the next option being ignored (if it did not need a value) because it
was considered the value for the previous one!

11 years agoFix bug in edit-position of holdings
H.G. Muller [Tue, 26 Jan 2010 18:00:54 +0000 (19:00 +0100)]
Fix bug in edit-position of holdings

The holdings were effectivelly taken one too large, so that a promoted
shogi Pawn moved to, or created in the holdings was not demoted to Pawn,
but put in the dark (which you could see by the holding count if you did
it twice). The overflow tests in these two cases now have been corrected.

11 years agoSave fonts in XBoard settings file per boardSize
H.G. Muller [Mon, 25 Jan 2010 12:54:40 +0000 (13:54 +0100)]
Save fonts in XBoard settings file per boardSize

Each -boardSize now can have its own font specified in the settings file
(and thus by a command-line option, although it would in general not be
very useful to specify a font for a size other than the selected). E.g.
a prefix "size33:" to the font name will apply it only to -size 33.
An unspecified-size font option (not normally in the settings file) will
always prevail over a font option specific for the current size.
A font of some size must have been used or specified in order to be

11 years agoFix width of filter field in XBoard GameList
H.G. Muller [Mon, 25 Jan 2010 07:56:35 +0000 (08:56 +0100)]
Fix width of filter field in XBoard GameList

An empirical dependence of the width of this text edit on the square
size now makes for an acceptable layout at any board size.

11 years agoUse FICS atomic draw claim for sending move in zippy mode
H.G. Muller [Sun, 24 Jan 2010 18:09:45 +0000 (19:09 +0100)]
Use FICS atomic draw claim for sending move in zippy mode

For this the relaying of the move had to be moved until after the
adjudication, which again has to be done after MakeMove(), which is a
bit dubious, as MakeMove might take significant time when animating.

11 years agoSend FICS atomic claim to ICS if move creates draw after offer
H.G. Muller [Sun, 24 Jan 2010 17:51:38 +0000 (18:51 +0100)]
Send FICS atomic claim to ICS if move creates draw after offer

The FICS format "draw MOVE" is used to send the move to the ICS  when
the user enters a move that adjudicates as a claimable draw, and he
offered a draw before the move. For the benefit of ICS that do not
understand this format, the plain move is sent afterwards.

11 years agoAlso allow user to claim by offering draw before his move
H.G. Muller [Sun, 24 Jan 2010 17:16:14 +0000 (18:16 +0100)]
Also allow user to claim by offering draw before his move

Use the existing userOfferedDraw variable to test for such offers in

11 years agoAlso adjudicate after user move
H.G. Muller [Sun, 24 Jan 2010 16:29:42 +0000 (17:29 +0100)]
Also adjudicate after user move

Call Adjudicate() in FinishMove().

11 years agoRefactoring of adjudication code
H.G. Muller [Sun, 24 Jan 2010 14:56:56 +0000 (15:56 +0100)]
Refactoring of adjudication code

Put all the rule-based (as opposed to score-based) adjudications in a
separate routine, so they can also be called on user moves. This
requires sending the drawing move to the opponent engine to be made
conditional on existence of the latter. Execution of the code is no
longer dependent on the condition TwoMachinesPlay, but actual game
terminations are now all restricted by an alternative condition (no ICS

11 years agoUse -keepAlive option to determine connection health
H.G. Muller [Sun, 24 Jan 2010 10:46:30 +0000 (11:46 +0100)]
Use -keepAlive option to determine connection health

When there has been no ICS response since the previous 'ping', assume we
are disconnected and do a fatal-error exit. Also auto-start the ping
process in InitBackend3().

11 years agoUse arrow keys in XBoard GameList for entry selection
H.G. Muller [Sat, 23 Jan 2010 22:00:10 +0000 (23:00 +0100)]
Use arrow keys in XBoard GameList for entry selection

Add translations for arrows and home/end, to call LoadSelectedProc with
argument to indicate the step, and let the latter perform the action.

11 years agoAllow <Enter> to apply filter in XB GameList filter edit
H.G. Muller [Sat, 23 Jan 2010 21:24:20 +0000 (22:24 +0100)]
Allow <Enter> to apply filter in XB GameList filter edit

Apply a translation to intercept the <Enter> key. Set focus back to the
list display afterwards.

11 years agoAccept <Enter> for changing chat partner
H.G. Muller [Sat, 23 Jan 2010 20:44:36 +0000 (21:44 +0100)]
Accept <Enter> for changing chat partner

A kludge stolen from Alessandro's GameList filter allowed to let the
typing of <Enter> while updating the chat-partner field of the WinBoard
chat windows to act as pressing the Change button. Gives focus to the
input field of the window afterwards.

11 years agoMove duplicat gamelist code to backend
H.G. Muller [Sat, 23 Jan 2010 20:42:38 +0000 (21:42 +0100)]
Move duplicat gamelist code to backend

The filtering routines are moved from xgamelist.c and wgamelist.c to
gamelist.c, and a prototype for them is placed in backend.h.

11 years agoPort game-list filtering to XBoard
H.G. Muller [Sat, 23 Jan 2010 18:29:18 +0000 (19:29 +0100)]
Port game-list filtering to XBoard

Added a text edit and apply button to the XBoard game-list dialog, and
only have it print those lines that match the filter. Translate index in
list to index of game in file when a game is selected, and index in file
to index in list when a line is highlighted. Duplicates some code
between xgamelist.c and wgamelist.c, which should be moved to back-end.

11 years agoConvert to DOS line endings
H.G. Muller [Thu, 21 Jan 2010 18:24:49 +0000 (19:24 +0100)]
Convert to DOS line endings

For easier understanding of upcoming diffs of winboard.c

11 years agoRefactoring of move-history code
H.G. Muller [Thu, 21 Jan 2010 13:32:46 +0000 (14:32 +0100)]
Refactoring of move-history code

The WinBoard code in whistory.c was split in a front-end part (remaining
in whistory.c) and a back-end part (now in history.c in the xboard
directory). This to allow easy porting to other platforms.

11 years agoAdd fixed-time/move button in XBoard time-control dialog
H.G. Muller [Wed, 20 Jan 2010 11:48:30 +0000 (12:48 +0100)]
Add fixed-time/move button in XBoard time-control dialog

Put the TC-type buttons in a radio-group, and highlight the selected mode.

11 years agoFix bug in XBoard PV display
H.G. Muller [Tue, 19 Jan 2010 17:27:14 +0000 (18:27 +0100)]
Fix bug in XBoard PV display

The PV was unloaded on anything but a button release, in stead of the
other way around.

11 years agofixed hardcoded location of config file for xboard
Arun Persaud [Sat, 23 Jan 2010 19:04:11 +0000 (11:04 -0800)]
fixed hardcoded location of config file for xboard

the location should now follow sysconfdir during the configuration process.
Also added some more output to the configure script.

11 years agonew developer release master-20100118
Arun Persaud [Mon, 18 Jan 2010 20:18:32 +0000 (12:18 -0800)]
new developer release

11 years agofixed Makefile.am to handle config file correctly
Arun Persaud [Mon, 18 Jan 2010 20:15:06 +0000 (12:15 -0800)]
fixed Makefile.am to handle config file correctly

11 years agoChange opening array -variant fairy
H.G. Muller [Fri, 15 Jan 2010 20:55:29 +0000 (21:55 +0100)]
Change opening array -variant fairy

We now use the position of "Chess with Different Armies", FIDE army vs.
a fantasy army (inspired on the Color-bound Clobberers) as opening

11 years agoAdd variant Makruk
H.G. Muller [Wed, 13 Jan 2010 18:08:45 +0000 (19:08 +0100)]
Add variant Makruk

Thai Chess, played by 2 million world-wide. Required pawn promotion to
happen in a zone, and the Alfil to move as Shogi Silver, a new opening
array, and unusual Pawn placement. Because of the latter, I consider it
a setup position, so a FEN will always be sent to the engine.

11 years agoFix parsing of O-O and O-O-O after FEN pasting in FRC
H.G. Muller [Sun, 17 Jan 2010 13:17:10 +0000 (14:17 +0100)]
Fix parsing of O-O and O-O-O after FEN pasting in FRC

Because the initial rights were not set in the FEN reader, the
initial rights of the previous game remained in force, so that the
parser did not understand OO-castling (although it would allow KxR

11 years agoFix reading FEN castling rights for knightmate and twokings
H.G. Muller [Fri, 15 Jan 2010 13:40:43 +0000 (14:40 +0100)]
Fix reading FEN castling rights for knightmate and twokings

Scanning the back-rank for a King did not work in these variants,
because either the Unicorn castles, or there might be two Kings.

11 years agoFix omission in castling refactoring for ICS received boards
H.G. Muller [Wed, 13 Jan 2010 10:42:52 +0000 (11:42 +0100)]
Fix omission in castling refactoring for ICS received boards

A default of -1 was still used, in stead of NoRights, when no Rook was
found. In theory this could have had effect in a setup board 0 in FRC,
when there were no Rooks on the back rank.

11 years agoFix TwoKings ICS castling-rights bug
H.G. Muller [Wed, 13 Jan 2010 10:35:34 +0000 (11:35 +0100)]
Fix TwoKings ICS castling-rights bug

Scanning the rank (as is done because of FRC) assigned castling rights
to the rightmost King. Even scanning the opposite direction would not
work, as it is not always the eftmost King that can castle. So we now
explicitly test for a King on e1/e8 in TwoKings and assign it rights,
relying on the Rook rights received from the ICS to control castling.

11 years agofix double start of zippy engine after switch to gothic
H.G. Muller [Thu, 19 Nov 2009 03:12:25 +0000 (19:12 -0800)]
fix double start of zippy engine after switch to gothic

In ICS mode we now switch to the proper variant as soon as we receive
the generic game-start message, to prevent a mismatch when the first
board is received (which would trigger fetching of a move list).

11 years agoExtensive bugfix of -autoKibitz
H.G. Muller [Mon, 11 Jan 2010 15:44:40 +0000 (16:44 +0100)]
Extensive bugfix of -autoKibitz

Suppression of printing of diverted kibitz messages failed when they
extended over more than one read. This could even lead to such
messages being erroneously saved as comments, which then lead to
crashes. The suppression mechanism now waits for a prompt, in stead of
the end of buffer. This required the printing of any leftover in the
buffer to be deferred until the next read completes it.
The number of people kibitzed to is now printed.

11 years agoFix piece-to-char table -variant fairy
H.G. Muller [Mon, 11 Jan 2010 15:30:59 +0000 (16:30 +0100)]
Fix piece-to-char table -variant fairy

The letters for Lance and Snake where swapped.

11 years agoMake WinBoard makefiles use parser.c in XBoard directory
H.G. Muller [Sat, 9 Jan 2010 10:54:20 +0000 (11:54 +0100)]
Make WinBoard makefiles use parser.c in XBoard directory

11 years agoDocs update for new features
H.G. Muller [Fri, 8 Jan 2010 17:23:39 +0000 (18:23 +0100)]
Docs update for new features

11 years agoFix new args parsing of -lowTimeWarningColor
H.G. Muller [Fri, 8 Jan 2010 14:18:37 +0000 (15:18 +0100)]
Fix new args parsing of -lowTimeWarningColor

This did not occur in the XBoard color translation table yet.

11 years agoAllow editing of holdings in EditPosition mode
H.G. Muller [Fri, 8 Jan 2010 13:16:59 +0000 (14:16 +0100)]
Allow editing of holdings in EditPosition mode

Dragging pieces to and from the holdings now consistently keep track of
the home square of pieces and the piece counts, as does creation of
pieces in the holdings through the piece menu.

11 years agoIndicate squares a lifted piece can legally move to
H.G. Muller [Fri, 8 Jan 2010 12:59:57 +0000 (13:59 +0100)]
Indicate squares a lifted piece can legally move to

Under control of the new option -showTargetSquares when
-highlightDragging and -testLegality are on, the squares a piece can
move to are marked by fat dots in the highlightColor (non-captures) and
premoveHighlightColor (captures), as soon as you grab it for dragging.
In variants with mandatory capture, the capture target of other pieces
is marked with the highlightColor (as non-captures are then not allowed).

11 years agoFix bug for incommensurate time odds
H.G. Muller [Fri, 8 Jan 2010 11:35:10 +0000 (12:35 +0100)]
Fix bug for incommensurate time odds

After normalization (-timeOddsMode 1) the time odds factors can be
non-integer, and thus must be stored as float.