xboard.git
10 years agoKludge repair of expose after startup resize
H.G. Muller [Wed, 26 Feb 2014 15:34:52 +0000]
Kludge repair of expose after startup resize

Redraw of the main board after resize is delegated to DragProc, which is
scheduled after a delay, to make sure the user is done sizing (mainly to
reposition docked windows). But at startup the program-requested resize when
an engine does not support variant normal and needs a different board format
takes so long that the finale size expose occurs after the DragProc timeout.
As a result, the board was never drawn on the resized canvas.
  This is quite hard to fix in a satisfactory way. For now the suppression
of board redrawing during resize is disabled during the first 10 seconds
after startup, as any resize during that time is likely to be the result
of a program request.

10 years agoUse first engine as default for second
H.G. Muller [Wed, 26 Feb 2014 12:08:50 +0000]
Use first engine as default for second

Rather than having the same fixed default for both engines, we noww only
have a fixed default for the first, and use the actual first as default
for the second. One advantage is that this guarantees the second engine
plays the same variants as the first by default.

10 years agoAllow adding played move to book
H.G. Muller [Sun, 23 Feb 2014 22:51:20 +0000]
Allow adding played move to book

A button is added in the Edit Book dialog to prime XBoard for adding the
next move entered through the user interface to the book window, without
actually playing it.

10 years agoPlay move right-clicked in Edit Book dialog
H.G. Muller [Sun, 23 Feb 2014 21:54:55 +0000]
Play move right-clicked in Edit Book dialog

A handler for button-3 down-clicks is added to the Edit Tags dialog,
which fakes the clicked word was typed in the move type-in box.

10 years agoFix pop-down of ChatDlg and TextMenuDlg from menu
H.G. Muller [Sun, 23 Feb 2014 18:23:28 +0000]
Fix pop-down of ChatDlg and TextMenuDlg from menu

Unlike other windows these two would not react to clicking the menu item
once they were up. Now they pop down in that case.

10 years agoPreserve window width on board-format change
H.G. Muller [Fri, 21 Feb 2014 10:10:41 +0000]
Preserve window width on board-format change

When a variant switch would cause recalculation of the board window,
we now first recalculate square size to keep the window width fixed.
Also adapt initial width on high boards.

10 years agoEquip Board Options dialog with themes listbox
H.G. Muller [Tue, 18 Feb 2014 21:37:31 +0000]
Equip Board Options dialog with themes listbox

The option -themeNames is made persistent for XBoard, and its value is
displayed in a listbox added to the View -> Board dialog. The user
can select themes from this, and manipulate the contents similar to
the engine list in Load Engine. A textedit allows the user to define a
theme name for the current settings, and doing so adds the theme to the
-themeNames list.

10 years agoImplement copy function in ICS Text Menu
H.G. Muller [Fri, 7 Feb 2014 10:22:44 +0000]
Implement copy function in ICS Text Menu

A command consisting of the word $copy will place the clicked word on
the clipboard. When there was already text selected during the click,
that selected text will be used for $copy and $name, rather than the
right-clicked word.

10 years agoWhen ICS Console open EOF from keyboard is no error
H.G. Muller [Fri, 7 Feb 2014 08:48:31 +0000]
When ICS Console open EOF from keyboard is no error

In case the user started without a terminal, we just close the input source,
and suppress future writing to the xterm.

10 years agoLeave xterm at start of new line after quitting XBoard
H.G. Muller [Thu, 6 Feb 2014 17:46:21 +0000]
Leave xterm at start of new line after quitting XBoard

10 years agoAlso display channel tell in ICS Console during private chat
H.G. Muller [Thu, 6 Feb 2014 17:36:41 +0000]
Also display channel tell in ICS Console during private chat

Channel tells of players for which a chat wa opened were displayed in that
chat, as well as in the channel chatbox, if the latter was open. But when
there was no channel chatbox it would not appear as colorized channel tell
in the console. This is now fixed, and in the private chat box such a
message is indicated as 'broadcast'.

10 years agoWrite broadcasts also to private chatbox of talker
H.G. Muller [Wed, 5 Feb 2014 22:08:50 +0000]
Write broadcasts also to private chatbox of talker

The shouts or channel chatboxes capture messages first, but if a private
chat with the talker is opened, it now goes there too. Prefixed with
the type of broadcast.

10 years agoFix Xaw Chat Console
H.G. Muller [Sun, 2 Mar 2014 12:18:34 +0000]
Fix Xaw Chat Console

10 years agoLet Ctrl-O key open chat for last talker
H.G. Muller [Wed, 5 Feb 2014 21:38:09 +0000]
Let Ctrl-O key open chat for last talker

10 years agoAdd End Chat button
H.G. Muller [Wed, 5 Feb 2014 21:15:03 +0000]
Add End Chat button

This button clears the current chat, so that it becomes free for
assignement to another partner.

10 years agoCtrl-N in chat opens empty chat
H.G. Muller [Wed, 5 Feb 2014 20:59:10 +0000]
Ctrl-N in chat opens empty chat

This key isequivalent to pressing the left-most New Chat button.
If no unused chat present, it the command will be ignored.

10 years agoPreserve unfinished input lines during chat switch
H.G. Muller [Wed, 5 Feb 2014 20:29:42 +0000]
Preserve unfinished input lines during chat switch

This is problematic, as apparently we cannot write in widgets that are
active with key hits, so attempting to write it back in response to Tab
did not work. This is now done with a delay, for lack of a better method.

10 years agoRecognize Esc and Tab in ICS Console input
H.G. Muller [Tue, 4 Feb 2014 12:57:16 +0000]
Recognize Esc and Tab in ICS Console input

Esc is used to close the chat, or transfer focus to the board window.
Tab is used to navigate between chats (or open the first). Priority
is given to dirty chats.

10 years agoLet ICS Console pop up GTK in stead of ICS Input Box
H.G. Muller [Mon, 3 Feb 2014 19:35:31 +0000]
Let ICS Console pop up GTK in stead of ICS Input Box

10 years agoAdd context menu to ICS console XB-GTK
H.G. Muller [Mon, 3 Feb 2014 18:45:44 +0000]
Add context menu to ICS console XB-GTK

A right-click handler is added to the output memos of the ICS Interaction
window. It pops up the ICS text menu. It is remembered whether the menu
was already up; if not, it will be popped down after a command is selected
from it. Like the WinBoard context menu, the commands will be able to use
the clicked word.
The -icsMenu 'command' $chat is now recognized as a special case, not to
be sent to the ICS, but executed by XBoard. It will assign one of the
five chats to the clicked name. If no empty chat is available, the last
chat will be used (but not cleared).
 The -icsMenu in the master config file is now configured to contain
this command, but unfortunately this will not become effective for users
that already have a settings file.
The Text Menu now puts $input commands in ICS Console Input field when the
ICS Input Box is not up.
 The text placed in the input field for completion (as per $input directive)
turned out to be selected in GTK, so that when you stated typing, it was
erased again!
 By making the Text menu dialog subject to WindowPlacement control,
and interrogating the poition of the ICS Console window, the Text Menu
can be popped up such that the mouse pointer is on the bottom-left button.

10 years agoIntegrate ICS output into Chat Window
H.G. Muller [Sun, 2 Feb 2014 20:17:00 +0000]
Integrate ICS output into Chat Window

An extra pane has been added to the Chat Window to display the ICS output.
In GTK this output is colorized just as in the xterm. For Xaw this is not
possible. This pane is always visible, and the chat output can be hidden,
to double its size. Entered input will go to the selected chat (when not
hidden) as a tell or shout, or to the ICS as a command. The Chat-Partner
field is hidden together with the chat pane and the Hide button. Each of
the five chats now has a dedicated button; for unused chats (empty Chat-
Partner field) these now gets the text 'New Chat' inscribed on it.
Focussing is made more intelligent (to the Partner field when shown and
empty, otherwise to the input field).
The Up and Down arrows now work in the input field to recall old input.
 ScrollToCursor() was broken in GTK, because a mark was made for only
a single buffer. Now each buffer has its own end mark.
 Another problem was that using ScrollToCursow immediately after a memo
was shrunk (because a neighboring one expanded) it would still use the
old memo size, so that the bottom part remained out of view. Delaying it
50 ms solved that problem.
 A new option -icsUp was added to store the visibility in the settings.
It is updated only in ICS mode. The ICS Console pops up automatically
when the stored parameters say so. It is also made sticky.
 Unlike the xterm the textView does not extend background color to unwritten
positions behind the line. A separate GTK call is now added to set the
unwritten part to the same color as the background in normal text.
 A  control was added in the ICS Options dialog for setting the colors
of normal text (-colorNormal).

10 years agoAdd logo-size control XBoard
H.G. Muller [Sun, 2 Feb 2014 16:27:26 +0000]
Add logo-size control XBoard

This is mainly for the benefit of OS X useres who cannot find their
settings file. It requires a restart to become effective, which is
really sub-standard.

10 years agoAdd Edit Engine List menu item to XBoard
H.G. Muller [Sun, 2 Feb 2014 16:18:56 +0000]
Add Edit Engine List menu item to XBoard

In OS X the settings file is hard to find...

10 years agoFix warnings
H.G. Muller [Sun, 2 Feb 2014 15:41:13 +0000]
Fix warnings

Some unread variables are commented out, rather than removed, because they
can be useful for future development.

10 years agoFix moves of Spartan Captain
H.G. Muller [Sun, 2 Feb 2014 15:33:34 +0000]
Fix moves of Spartan Captain

The rewrite of the move generator did no longer pay attention to rookRange,
so that the Spartan Captain moved like a Rook.

10 years agoAdd Option type 'Skip'
H.G. Muller [Sun, 2 Feb 2014 15:18:07 +0000]
Add Option type 'Skip'

The value -1 used to suppress rendering of option controls was drawing
error messages, because enums are unsigned. So a new member Skip was added
to the enum.

10 years agoDetect Fischer castling in FENs
H.G. Muller [Sun, 2 Feb 2014 13:40:16 +0000]
Detect Fischer castling in FENs

Castling rights with unorthodox piece placement imply Fischer castling.
Make sure shuffling is done after detecting this, because it means K & R
can also be shuffled (as long as K remains between both R).

10 years agoAllow shuffling indicators in FEN
H.G. Muller [Sun, 2 Feb 2014 13:09:19 +0000]
Allow shuffling indicators in FEN

If the back ranks are enclosed by < > in a FEN, the route to shuffle
initial positions is invoked on it.

10 years agoAllow wild-cards in FEN
H.G. Muller [Sun, 2 Feb 2014 12:51:37 +0000]
Allow wild-cards in FEN

A question mark in a FEN will now be interpreted as a piece randomly
chosen from the holdings. (From which it will be removed.) Intended
for use in symmetric black/white pairs; when used on asymetric locations
or with non-identical holdings the results will be undefined.

10 years agoFix Seirawan reverse-castling animation
H.G. Muller [Sun, 2 Feb 2014 09:40:18 +0000]
Fix Seirawan reverse-castling animation

In Chess960 animation of castlings is suppressed, because the move is encoded
as KxR, so that the to-square in general is not the final destination of the
King. So it is just confusing to the eye to see the King slide to the Rook,
and then jump to an entirely different square. In S-Chess castlings can
similarly be encoded as RxK (to indicate gating at the Rook square), and
animation of those moves should be suppressed for the same reason. But it
wasn't, and in Fischer castlings denoted as RxK this even caused the Rook
to disappear when it didn't need to moved.
 Perhaps one day a smart method of animating Fischer castlings can be
designed. (E.g. remove Rook, animate King move to true to-square, place Rook?
But what if the King doesn't move at all? Animate Rook then? Normal castlings
now animate the King, and then just displace the Rook.)

10 years agoMake Fischer castling generally available
H.G. Muller [Sun, 2 Feb 2014 09:22:25 +0000]
Make Fischer castling generally available

A new volatile option -fischerCastlings allows every variant to be played
with Fischer castling, which so far was only allowed in variants FRC/CRC.
This only makes sense in shuffle variants, where King and Rooks might not
be in their orthodox locations. But even when they are, it has consequences
for the user interface, which will require dragging King on Rook as the only
way to enter castling. Like -shuffleOpenings the setting will be cleared
as soon as you switch variant (unless you switch to FRC/CRC, where they
Fischer castling is on by default). It can be set from the New Shuffle dialog.

10 years agoupdated po/pot files
Arun Persaud [Mon, 20 Jan 2014 06:41:52 +0000]
updated po/pot files

10 years agonew version number for developer release
Arun Persaud [Mon, 20 Jan 2014 06:19:10 +0000]
new version number for developer release

10 years agoupdated Dutch translation
Arun Persaud [Mon, 20 Jan 2014 06:15:33 +0000]
updated Dutch translation

10 years agoPut ponder checkbox in Common Engine dialog WB
H.G. Muller [Sun, 19 Jan 2014 19:44:33 +0000]
Put ponder checkbox in Common Engine dialog WB

This is yet another duplicate of the one in General Options and Adjudiactions.

10 years agoExpand %s in -openCommand to DATADIR and fix OSX settings-file name
H.G. Muller [Sun, 19 Jan 2014 19:27:59 +0000]
Expand %s in -openCommand to DATADIR and fix OSX settings-file name

This can be used in OS X to biggy-back a cd to a directory in the App
on the open command.

10 years agoAdd some checkboxes in General Options dialog WB
H.G. Muller [Sat, 18 Jan 2014 22:42:01 +0000]
Add some checkboxes in General Options dialog WB

Checkboxes are added for -variations, -memoHeaders and -autoExtend.

10 years agoFix warning in CheckTest
H.G. Muller [Sat, 18 Jan 2014 22:26:03 +0000]
Fix warning in CheckTest

10 years agoFix printing of engine-output headers
H.G. Muller [Sat, 18 Jan 2014 21:40:27 +0000]
Fix printing of engine-output headers

They were not printed on analyis of the first position after opening
the Engine Output window.

10 years agoFix sticky windows on Win8
H.G. Muller [Thu, 16 Jan 2014 22:07:28 +0000]
Fix sticky windows on Win8

10 years agoDrag touching edges together (WB)
H.G. Muller [Thu, 16 Jan 2014 21:54:32 +0000]
Drag touching edges together (WB)

When an auxiliary window is dragged by an edge, the snap code now checks
if that edge was touching another window. If so, that other window is sized
to keep touching the dragged edge. Unless it was also touching the main
window.

10 years agoImplement new mate-score standard
H.G. Muller [Wed, 15 Jan 2014 21:35:23 +0000]
Implement new mate-score standard

Matescores are now indicated in the protocol as +/- 100000+DTM,
and in the Engine Output window as #DTM or #-DTM.

10 years agoPut fail-high/fail-low indicators in protocol specs
H.G. Muller [Wed, 15 Jan 2014 20:28:51 +0000]
Put fail-high/fail-low indicators in protocol specs

10 years agoswitch to new tbhits protocol
H.G. Muller [Wed, 15 Jan 2014 19:43:55 +0000]
switch to new tbhits protocol

The extended info is now expected as 3 bare integers, the last one
separated from the PV by at least one tab character.
The protocol extension is described in the CECP specs document.

10 years agoFix sorting of Engine Output
H.G. Muller [Tue, 14 Jan 2014 21:37:30 +0000]
Fix sorting of Engine Output

The moveKey of the top line was never stored, so that more recent
lower scores could not pass it even if they had the same move.

10 years agoHandle fali-low & fail high
H.G. Muller [Tue, 14 Jan 2014 21:35:22 +0000]
Handle fali-low & fail high

A ? or ! at the end of the PV are now also written behind the score.

10 years agoImplement extended thinking output
H.G. Muller [Tue, 14 Jan 2014 19:31:46 +0000]
Implement extended thinking output

The PV field can now start with three quantities, selective depth,
engine speed and tablebase hits, disguised as PGN comment. XBoard will
strip that off, and allow them to be displayed in separate columns of
the engine-output window.

10 years agoAllow hide/show of columns in Engine Output
H.G. Muller [Tue, 14 Jan 2014 13:46:47 +0000]
Allow hide/show of columns in Engine Output

A new persistent Boolean option -memoHeaders enables a new feature:
text headers are shown above the depth, score, nodes, time columns in the
engine output. Right-clicking them will subsequently hide the corresponding
data, and move the column header to above the PV in a 'not shown' list,
where it can be clicked again to re-open the column.
Configure maseter settings to switch -memoHeaders on by default.

10 years agoFix ManProc for OS X
H.G. Muller [Tue, 14 Jan 2014 08:55:40 +0000]
Fix ManProc for OS X

10 years agoFix access to ~~/themes/conf for OS X
H.G. Muller [Tue, 14 Jan 2014 09:02:22 +0000]
Fix access to ~~/themes/conf for OS X

In OS X DATADIR is a variable.

10 years agoAdd 'Continue later' button to Tournament dialog XB
H.G. Muller [Mon, 13 Jan 2014 18:23:30 +0000]
Add 'Continue later' button to Tournament dialog XB

To do GenericReadout without triggering a call to the OK function,
we introduced a new value for the option-number parameter, -2.

10 years agoFix Tournament Options dialog
H.G. Muller [Mon, 13 Jan 2014 16:32:28 +0000]
Fix Tournament Options dialog

Deleting a Label option had renumbered the remaining Options, breaking
the dialog and causing a crash when an engine was selected. A considyency
check is now added to catch this condition, and throw an error popup
when we mess up again.

10 years agoAllow popup of TC and Common Engine from Tournament dialog
H.G. Muller [Mon, 13 Jan 2014 16:09:01 +0000]
Allow popup of TC and Common Engine from Tournament dialog

A new dialog class MasterDlg was added, similar to TransientDlg,
but to allow two dialogs to be up simultaneously. The Tournament Options
dialog was migrated to this class, so it can now get buttons to pop up
the Time Control and Common Engine dialog, like WinBoard. It even has
a button for the General options dialog.
Special care had to be taken to prevent popdown of the MasterDlg when
a Transient child is still up (similar to browser or error childs).

10 years agoAdd --show-config special option
H.G. Muller [Mon, 13 Jan 2014 15:21:59 +0000]
Add --show-config special option

This prints a list of configure parameters, and then exits. If a second
argument is given, it only prints the value of that config parameter,
so that tricks like cp *.svg `xboard --show-config Datadir`/themes/chu
can be used in install scripts of packages with piece images.

10 years agoOverhaul kill code
H.G. Muller [Mon, 13 Jan 2014 13:25:30 +0000]
Overhaul kill code

Engines were not always forcefully killed in XBoard, which could make
the tournament manager hang when an engine became unresponsive to "quit".
The various levels of killing are now revised, and the -delayAfterQuit
is absorbed in DestroyChildProcess(). There is a hard killing mode 9,
which immediately sends SIGKILL, intended for engines that have already
proven to malfunction or could not start at all. In other cases SIGTERM
is sent according to specs, but a SIGKILL is scheduled -delayAfterQuit + 1
sec later just in case the SIGTERM would be ignored.

10 years agoFix name of master settings file in OS X
H.G. Muller [Mon, 13 Jan 2014 12:38:47 +0000]
Fix name of master settings file in OS X

The name needs to be relative to the bundle path, but ~~ expansion
did not work for compiled-in defaults, as the expansion takes place
when parsing an option. The dataDir is now also kept in an array rather
than as a pointer, to allow it to appear in statically initialized tables.

10 years agoFix Chu promotion of L, HM and GB
H.G. Muller [Wed, 8 Jan 2014 15:25:25 +0000]
Fix Chu promotion of L, HM and GB

The promotion popup would not be shown for HM and GB with legality testing
on because the piece types used for them were wild-card pieces. The Lance
was treated as a Pawn in HasPrmotionChoice().

10 years agoRemove redefine of DATADIR that leaked in from v4.7.x
H.G. Muller [Wed, 8 Jan 2014 15:09:15 +0000]
Remove redefine of DATADIR that leaked in from v4.7.x

10 years agoupdated po/pot files
Arun Persaud [Sun, 5 Jan 2014 20:42:56 +0000]
updated po/pot files

10 years agonew version number for developer release
Arun Persaud [Sun, 5 Jan 2014 20:40:23 +0000]
new version number for developer release

10 years agoadded check for apply OS X
Arun Persaud [Sun, 5 Jan 2014 19:26:14 +0000]
added check for apply OS X

added libraries needed to build gtk version on OS X

10 years agoMerge branch 'v4.7.x'
Arun Persaud [Sun, 5 Jan 2014 18:59:20 +0000]
Merge branch 'v4.7.x'

10 years agoupdated copyright to 2014 in menu.c
Arun Persaud [Sun, 5 Jan 2014 18:58:48 +0000]
updated copyright to 2014 in menu.c

10 years agoMerge branch 'v4.7.x' into master
Arun Persaud [Sun, 5 Jan 2014 18:51:08 +0000]
Merge branch 'v4.7.x' into master

Conflicts:
dialogs.c
gtk/xboard.c
gtk/xoptions.c
po/es.po
winboard/config.h
winboard/winboard.c

10 years agoremoved .DS_Store file from git
Arun Persaud [Sun, 5 Jan 2014 18:37:56 +0000]
removed .DS_Store file from git

10 years agoUpdated copyright notice to 2014
Arun Persaud [Sun, 5 Jan 2014 18:34:08 +0000]
Updated copyright notice to 2014

10 years agocleanup some trailing whitespaces
Arun Persaud [Sun, 5 Jan 2014 18:27:53 +0000]
cleanup some trailing whitespaces

10 years agoStart rank counting at 1 for boards deeper than 10
H.G. Muller [Sun, 5 Jan 2014 15:07:30 +0000]
Start rank counting at 1 for boards deeper than 10

Only exactly 10 ranks now starts counting at 1, to respect Xiangqi standard.

10 years agoFix crash on use of dialog Browse buttons GTK
H.G. Muller [Sun, 29 Dec 2013 12:46:40 +0000]
Fix crash on use of dialog Browse buttons GTK

The code to set a filter did not expect multiple extensions, and would
cause a buffer overrun when there were.

10 years agoMake building of Windows .hlp file optional
H.G. Muller [Fri, 27 Dec 2013 19:12:23 +0000]
Make building of Windows .hlp file optional

By using && and || operators in the build recipe, the building of WinBoard
with Cygwin is now not aborted whe the Help Compiler is not installed.

10 years agoUse __APPLE__ compile switch for OS X
H.G. Muller [Sun, 5 Jan 2014 10:47:18 +0000]
Use __APPLE__ compile switch for OS X

It seems that on Apple machines the compiler will always define the
symbol __APPLE__, so this is now used instead of OSX, which had to
be defined with a -DOSX compiler flag. The gtkmacintegration header
is now using <> in stead of "" in its #include. (Strange enough both
were working.)

10 years agoSet ~~ to bundle path for OS X
H.G. Muller [Sat, 4 Jan 2014 11:18:30 +0000]
Set ~~ to bundle path for OS X

DATADIR is now #defined in WinBoard as "~~" to make the expansion a no-op
there. For OS X it is redefined as a variable, obtained from GTK-OSX.

10 years agoImplement EGBB probing and -first/secondDrawDepth
H.G. Muller [Sun, 29 Dec 2013 16:27:24 +0000]
Implement EGBB probing and -first/secondDrawDepth

The new volatile options -first/secondDrawDepth N can be used with engines
that use tablebase, to limit their search depth to N ply in drawn positions
(as determined by bitbase probing). This prevents them from wasting lots
of CPU time on deep searches, when we know there is nothing to be discovered.
In won or lost positios such engines should move instantly anyway.

10 years agoFix crash on use of dialog Browse buttons GTK
H.G. Muller [Sun, 29 Dec 2013 12:46:40 +0000]
Fix crash on use of dialog Browse buttons GTK

The code to set a filter did not expect multiple extensions, and would
cause a buffer overrun when there were.

10 years agoActivate ManProc in GTK
H.G. Muller [Sun, 29 Dec 2013 22:27:12 +0000]
Activate ManProc in GTK

10 years agoRemove use of strndup
H.G. Muller [Sun, 29 Dec 2013 21:14:06 +0000]
Remove use of strndup

The use of strndup was actually unsafe, as the length was passed using
an ordinary strlen. strndup was not availableon OS X 10.6, and is now
replaced by an ordinary strdup, which should be save enough.

10 years agoPut some OSX code into gtk version
H.G. Muller [Sun, 29 Dec 2013 21:09:10 +0000]
Put some OSX code into gtk version

Under control of #ifdef OSX code is added to integrate the GTK front-end
into OS X. This involves moving the menu bar to outside the window, and
catching the signal that OS X sends to running applications when opening
another instance was requested. Som files are renamed to conform to the
file tree of the OS X App package.

10 years agoUpdate protocol specs for setup command
H.G. Muller [Fri, 27 Dec 2013 21:56:56 +0000]
Update protocol specs for setup command

10 years agoWrite -date stamp always with 10 characters
H.G. Muller [Fri, 27 Dec 2013 21:00:43 +0000]
Write -date stamp always with 10 characters

To make it easier to replace date stamps on uninstall, we give them
fixed length.

10 years agoCure weirdness when dragging outside of board
H.G. Muller [Fri, 27 Dec 2013 20:47:55 +0000]
Cure weirdness when dragging outside of board

Dragging outside the board (when people maximized the window) did not
properly restore background, (leaving a trail of dragged piece). Filling
the canvas with white when it is creatd cured this. The problem most likely
was that unitialized cairo surfaces had transparancy, and writing back
transparancy doesn't helpmuch to erase things.

10 years agoFix WB New Variant dialog
H.G. Muller [Fri, 27 Dec 2013 19:29:26 +0000]
Fix WB New Variant dialog

After selecting an engine-defined variant, all radio buttons would refer to
the already selected variant, and thus all appear active, but do nothing.

10 years agoFix compile error promo dialog WB
H.G. Muller [Fri, 27 Dec 2013 19:25:25 +0000]
Fix compile error promo dialog WB

10 years agoMake building of Windows .hlp file optional
H.G. Muller [Fri, 27 Dec 2013 19:12:23 +0000]
Make building of Windows .hlp file optional

By using && and || operators in the build recipe, the building of WinBoard
with Cygwin is now not aborted whe the Help Compiler is not installed.

10 years agoFix promotion in Ai-Wok
H.G. Muller [Fri, 27 Dec 2013 19:06:21 +0000]
Fix promotion in Ai-Wok

When in a variant with fixed promotion, such as Makruk, the promotion
piece did not participate, this led to disappearence of the piece, and
an =. suffix in SAN. This is relevant for the Makruk variant Ai-Wok,
which replaces the Met by a much more powerful Ai-Wok, which could not
be represented by another XBoard piece type due to this problem.
Now we search through the pieceToCharTable until a valid piece is found,
which works when the Ai-Wok is represented by a SMIRF Archbishop symbol.

10 years agoMake filler buttons in New Variant insensitive
H.G. Muller [Sun, 22 Dec 2013 20:01:36 +0000]
Make filler buttons in New Variant insensitive

10 years agoImplement option complex for installing engines
H.G. Muller [Fri, 25 Oct 2013 12:39:23 +0000]
Implement option complex for installing engines

Options are added to allow XBoard to be called to install engines in the
user settings files. With -addMasterOption a line can be added to the
master settings file, and this will be automatically be preceded by a
-date option to record the date it was added. This is intended for adding
-installEngine options to the master file, in order to 'broadcast' the
availability of the engine to the users.
  We now store the date in the user settings file, through a new -saveDate
option (as integer). This allows XBoard to relate the date of the saved
settings to -date stamps in the master settings file, and thus decide
if the latter (and install options that follow it) are seen for the first
time, or not. Depending on that it can decide if the install option should
be ignored.
  The volatile Boolean optio -autoClose causes XBoard to save its settings
and exit before bringing up its GUI (but after processing the command line).
This is added to facilitate calling XBoard from engine-install scripts,
with an -addMasterOption argument.

10 years agoExpand ~~/ to bundle path (OSX)
H.G. Muller [Sat, 4 Jan 2014 11:18:30 +0000]
Expand ~~/ to bundle path (OSX)

DATADIR is #defined in WinBoard as "~~" to make the expansion a no-op
there. Same for Linux compiles. For OS X it is #defined as a variable,
obtained from GTK-OSX at startup.

10 years agoActivate ManProc in GTK
H.G. Muller [Sun, 29 Dec 2013 22:27:12 +0000]
Activate ManProc in GTK

10 years agoRemove use of strndup
H.G. Muller [Sun, 29 Dec 2013 21:14:06 +0000]
Remove use of strndup

The use of strndup was actually unsafe, as the length was passed using
an ordinary strlen. strndup was not availableon OS X 10.6, and is now
replaced by an ordinary strdup, which should be save enough.

10 years agoPut some OSX code into gtk version
H.G. Muller [Sun, 29 Dec 2013 21:09:10 +0000]
Put some OSX code into gtk version

Under control of #ifdef OSX code is added to integrate the GTK front-end
into OS X. This involves moving the menu bar to outside the window, and
catching the signal that OS X sends to running applications when opening
another instance was requested. Som files are renamed to conform to the
file tree of the OS X App package.

10 years agoCure weirdness when dragging outside of board
H.G. Muller [Fri, 27 Dec 2013 20:47:55 +0000]
Cure weirdness when dragging outside of board

Dragging outside the board (when people maximized the window) did not
properly restore background, (leaving a trail of dragged piece). Filling
the canvas with white when it is creatd cured this. The problem most likely
was that unitialized cairo surfaces had transparancy, and writing back
transparancy doesn't helpmuch to erase things.

10 years agoFix mate and stalemate test in Chu Shogi
H.G. Muller [Fri, 22 Nov 2013 22:40:33 +0000]
Fix mate and stalemate test in Chu Shogi

Chu Shogi officially has no check, but we do want checkmate signs to
be displayed in SAN, and proper game-end messages to appear, rather than
force the user to play on until the King is captured. we also don't want
to allow him blundering away his King. So we don't use the F_IGNORE_CHECK
flag for Chu. But that means mate and stalemate will be recognized.
So it has to know stalemate is a win. Furthermore, check has to take
into account a possible spare royal. Finally, the + symbol to indicate
check should not be used in Chu, as in all Shogi variants this is reserved
to indicate promotion.

10 years agoFix Chu-Shogi Lance deferral
H.G. Muller [Fri, 22 Nov 2013 21:55:27 +0000]
Fix Chu-Shogi Lance deferral

The Lance was not exempted from being considerd a Hoplite Pawn, and would
thus be promoted in the Pawn-push code when it reached last rank to an
empty square (CharToPiece('=')).

10 years agoAllow Crown-Prince image to differ from King
H.G. Muller [Wed, 30 Oct 2013 13:03:17 +0000]
Allow Crown-Prince image to differ from King

Some of the pieces in the extended series have been assigned a new image,
in particular Prince, Phoenix and Kylin. These images are, however, optional.
If they cannot be found, the image files for King, Queen and Lion will be
used instead.

10 years agoImplement -installEngine option
H.G. Muller [Fri, 25 Oct 2013 20:24:43 +0000]
Implement -installEngine option

This volatile string option conditionally adds its argument as a line
to the engine list (-firstChessProgramNames). The condition is that the
line is not yet already there, and either that the -versionNumber option
read from settings files or command line has a value different from the
version of the binary, or that -autoClose is set. It can be used for two
purposes: to install engines from the master settings file (so that it
only works first time after upgrades, when the stored versionNumber is
obsolete), or from engine install scripts (calling XBoard with -autoClose).

10 years agoAutomatically switch to variant engine supports
H.G. Muller [Thu, 24 Oct 2013 09:15:37 +0000]
Automatically switch to variant engine supports

When XBoard is started with an engine that announces variants, but does
not lists normal or FRC amongst them, it switches to the first variant
that the engine announced (if not starting in a mode that involves other
engines or ICS). This will even take into account size overrides.

10 years agoFix promoting of Sho Elephant
H.G. Muller [Wed, 23 Oct 2013 19:30:14 +0000]
Fix promoting of Sho Elephant

10 years agoChange color of XQ board to better contrast with pieces
H.G. Muller [Wed, 23 Oct 2013 19:03:27 +0000]
Change color of XQ board to better contrast with pieces

10 years agoSupply oriental theme settings
H.G. Muller [Wed, 23 Oct 2013 14:31:01 +0000]
Supply oriental theme settings

Install creates a new directory .../themes/conf, in which a number of
settings files are places for defining oriental themes. These redefine the
user settings file for each of them to ~/.xboard-xxx-rc, so the settings
cannot leak into the default user settings file, but are nevertheless
persistent on revisiting the theme. XBoard now looks in this directory
for settingsfiles it could otherwise not find, so they can be invoked
with @shogi, @xq, @chu on the XBoard command line.
  Filenames starting with ~~ will now be expanded to the directory where
the XBoard data files are installed, so the installed settings files can
easily refer to installed other files (e.g. piece SVGs and textures).
The themes files will also redefine the default engine when they belong
to variants that Fairy-Max does not play.
  Some minor settings files for implementing variants that are not standard
(such as mini- and Sho Shogi) are also added in the conf directory.

10 years agoFix hover event (again)
H.G. Muller [Tue, 22 Oct 2013 15:16:13 +0000]
Fix hover event (again)