capablanca.git
2 years agoUse gcore for creating core dump on segfault
H.G.Muller [Sun, 8 Jan 2017 22:15:36 +0000 (23:15 +0100)]
Use gcore for creating core dump on segfault

The ICS called a program 'backtrace', which no longer seems to exist,
in its segfault hadler. This is now changed to gcore, to create a numbered
core dump in the chessd directory.

2 years agoFix sudden crash-proneness
H.G.Muller [Sun, 8 Jan 2017 16:07:17 +0000 (17:07 +0100)]
Fix sudden crash-proneness

Since October 2016 the ICS crashed within minutes, when games are going on.
The cause seems to be a reversed test for bughouse in game_ended(), which
informed players of the availability of the bughouse partners of the ending
game if and only if the game was not bughouse. Accessig bughouse partners
only when they exist seems to have solved the problem.

3 years agostash
H.G.Muller [Tue, 22 Dec 2015 12:27:07 +0000 (13:27 +0100)]
stash

3 years agoAmeliorate name-length hack
H.G.Muller [Mon, 14 Dec 2015 12:52:43 +0000 (13:52 +0100)]
Ameliorate name-length hack

Structs t_dirs and t_trees declared only a single character for the name
field, but were put in allocated memory so that it could harmlessly
overrun to the required size. On compilers that explicitly check for
buffer overruns this caused a crash. Now 100 char are declared, but the
actually allocated memory will be smaller (as small as before, and thus
still large enough to hold the actual name).

3 years agoFix buffer overrun during loadding opening names
H.G.Muller [Mon, 14 Dec 2015 12:37:22 +0000 (13:37 +0100)]
Fix buffer overrun during loadding opening names

One line in the long999.idx file was excessively long, and caused an overrun.
Limit increased to 99 characters now.

3 years agoFix parantheses balancing
H.G.Muller [Tue, 27 Oct 2015 10:34:26 +0000 (11:34 +0100)]
Fix parantheses balancing

4 years agoUpdate README file
H.G.Muller [Fri, 8 May 2015 12:35:59 +0000 (14:35 +0200)]
Update README file

4 years agoAllow the game number in smoves to be negative
H.G.Muller [Fri, 8 May 2015 11:02:55 +0000 (13:02 +0200)]
Allow the game number in smoves to be negative

Negative game numbers now indicate relative game numbers compared to
the end of the list: -1 means latest game, -2 the game before it, etc.

4 years agoAllow signed integers as command parameter
H.G.Muller [Fri, 8 May 2015 10:59:16 +0000 (12:59 +0200)]
Allow signed integers as command parameter

Strings starting with '-' (or other punctuation) were classified as a
single-character text parameter, making entry of negative numbers
impossible. A parameter described by 'j' in the command list now indicates
a '-' followed by digits should be interpreted as a negative number.

4 years agoFix crash after recursive aliasing
H.G.Muller [Fri, 8 May 2015 10:56:17 +0000 (12:56 +0200)]
Fix crash after recursive aliasing

The ICS translatese some commands (like 'storedmoves') to others
(like 'smoves'), which are then also subject to aliasing. Defining the
reverse substitution as alias then leads to infinite recursion.
The recursion is now limited to 10 levels, and makes the command fail
otherwise.

5 years agoAlter Makefile to force 32-bit compile
H.G.Muller [Mon, 28 Apr 2014 11:38:57 +0000 (13:38 +0200)]
Alter Makefile to force 32-bit compile

The code is not 64-bit compliant, and crashes when run as 64-bit compile.
The first such crash already occurs when initializing, and could be traced
to a vasprintf in fopen_p. Presumably the list of variable arguments
cannot handle it that pointers and ints are not the same size.
Rather than trying to fix this (and leaving an unknown number of potential
other problems), we stick to 32-bit.

5 years agoChange one more occurrence of fics in pathname
H.G.Muller [Mon, 28 Apr 2014 11:37:59 +0000 (13:37 +0200)]
Change one more occurrence of fics in pathname

Some log file was made in a directory that no longer existed.

5 years agoFix rep-draw detection
H.G. Muller [Sat, 21 Dec 2013 18:56:03 +0000 (19:56 +0100)]
Fix rep-draw detection

The FENs describing te game positions do not contain a side-to-move field.
So we sould take care to only compare te current position(s) with those in
the game history that have the same side to move.

6 years agoAllow mamer addtotourney to do late-joins
H.G. Muller [Mon, 25 Feb 2013 19:36:13 +0000 (20:36 +0100)]
Allow mamer addtotourney to do late-joins

The score parameter of AddPlayer is now used to  indicate it was invoked
by addtotourney rather than join (info passed in pendingList through the
Player.floatValue field), as in the existing code it was only called with
score = 0. anyway. When invoked from addtotourney, the command is also
allowed in 'closed' tourneys. In this case it would not only add the player,
but also clear its color counts and give it a 0 result against the BYE.

6 years agoReduce number of lines in who command to 8
H.G. Muller [Mon, 25 Feb 2013 12:53:22 +0000 (13:53 +0100)]
Reduce number of lines in who command to 8

With 9 lines a 9-round tourney would make the ICS's qtell buffers overflow.

6 years agoPrint paused status in tourney overview
H.G. Muller [Mon, 25 Feb 2013 12:52:14 +0000 (13:52 +0100)]
Print paused status in tourney overview

6 years agoLimit length of lines sent to timeseal decoder
H.G. Muller [Mon, 25 Feb 2013 12:42:58 +0000 (13:42 +0100)]
Limit length of lines sent to timeseal decoder

The timeseal decoder seems to crash on lines longer than 1000 characters.

6 years agoFix classification of variant games
H.G. Muller [Sat, 15 Sep 2012 17:51:24 +0000 (19:51 +0200)]
Fix classification of variant games

Variants were classified as non-standard, rather than wild.

6 years agoFix time overflow bug
H.G. Muller [Sat, 15 Sep 2012 17:31:23 +0000 (19:31 +0200)]
Fix time overflow bug

Time is stored in tenths of seconds, which makes it overflow. An attempt
to correct this in untenths() was ineffective, because of a signed/unsigned
mistake. (0xffffffff is not a large number, but equals -1!)

6 years agoFix printing of date with rating
H.G. Muller [Tue, 11 Sep 2012 14:08:51 +0000 (16:08 +0200)]
Fix printing of date with rating

The old code was not safe: it passed a (time_t*) pointing to an (in),
which included garbage if time_t was of larger size. This again made
localtime return a null-pointer, which would crash strftime.

6 years agoFix bad timeseal bug
H.G. Muller [Tue, 11 Sep 2012 14:02:50 +0000 (16:02 +0200)]
Fix bad timeseal bug

When flagging the opponent, the black elapsed time was calculated using
whites time for receiving the move.

6 years agoadd code to keep log of user input
H.G. Muller [Tue, 4 Sep 2012 09:16:11 +0000 (11:16 +0200)]
add code to keep log of user input

6 years agoCheck for validity of category/board when placing seek ad
H.G. Muller [Mon, 3 Sep 2012 10:21:42 +0000 (12:21 +0200)]
Check for validity of category/board when placing seek ad

Code was copied for this from the match command

6 years agoAdd seek variable as synonym for ads
H.G. Muller [Mon, 3 Sep 2012 10:13:09 +0000 (12:13 +0200)]
Add seek variable as synonym for ads

This so 'set seek 1|0' will work, as described in the help files.

6 years agoChange seek-ad-removal notification text
H.G. Muller [Mon, 3 Sep 2012 10:10:04 +0000 (12:10 +0200)]
Change seek-ad-removal notification text

Use the same message as freechess.org, to make life less hard on interfaces.

6 years agoCorrect printing of increment in Creating message
H.G. Muller [Sun, 2 Sep 2012 16:34:05 +0000 (18:34 +0200)]
Correct printing of increment in Creating message

The increment was printed 10 times too large.

6 years agoFix crash of ICS caused by printing invalid seek ad
H.G. Muller [Sun, 2 Sep 2012 16:30:46 +0000 (18:30 +0200)]
Fix crash of ICS caused by printing invalid seek ad

A seek ad with invalid arguments obtained status SEEK_CLOSED before
processing it was aborted, with as result an uninitialized ad, which
would crash a later sought command.

6 years agoFix bug in setting up w3 and w4 games
H.G. Muller [Sun, 2 Sep 2012 16:24:33 +0000 (18:24 +0200)]
Fix bug in setting up w3 and w4 games

The expression to generate a random NBRQ in fact generated a random NBRA,
because of altered piece encoding.

7 years agoFix gating on corner squares
H.G. Muller [Tue, 10 Jan 2012 14:47:25 +0000 (15:47 +0100)]
Fix gating on corner squares

The test for virginity of the rook would also match opponent castlings!

7 years agoLet seek command accept same parameters as match
H.G. Muller [Mon, 9 Jan 2012 22:41:46 +0000 (23:41 +0100)]
Let seek command accept same parameters as match

The seek command was not accepting category and board params, just 4
numeric ones. This is fixed now by letting it accept a single string,
parsed by the same routine that parses the match arguuments. The
category and board are now also displayed with the ad in the sought list.

7 years agoFix takeback of S-Chess gatings
H.G. Muller [Sun, 8 Jan 2012 22:53:08 +0000 (23:53 +0100)]
Fix takeback of S-Chess gatings

The code for takeback of Spartan promotions had broken this, as it was
applied to gatings too, reverting the moved piece to Pawn!

7 years agoImplement test for perpetual checking
H.G. Muller [Fri, 6 Jan 2012 23:01:36 +0000 (00:01 +0100)]
Implement test for perpetual checking

7 years agoCheck validity of promotion piece in long algebraic
H.G. Muller [Tue, 3 Jan 2012 22:07:11 +0000 (23:07 +0100)]
Check validity of promotion piece in long algebraic

Long algebraic moves have their own parser, and this was not yet checking
if the chosen promotion piece was valid, so that it was possible to
promote to Archbishop in normal Chess, etc.

7 years agoPay attention to variant when resuming adjourned game
H.G. Muller [Sat, 31 Dec 2011 10:25:53 +0000 (11:25 +0100)]
Pay attention to variant when resuming adjourned game

7 years agoImplement Spartan Chess
H.G. Muller [Thu, 1 Dec 2011 20:47:24 +0000 (21:47 +0100)]
Implement Spartan Chess

This required new pieces, their parsing in algebraic moves and promotions,
a lot of promotion code because Hoplites can promote, implementation of
the duple-check rule by letting in_check recursively call itself after
abdicating the first king, making the test for nr of kings less critical,
and choosing a promotion piece in the mate test (because promotion to K
could solve the mate).

7 years agoPay attention to category/board when examining adjourned games
H.G. Muller [Thu, 29 Dec 2011 20:05:06 +0000 (21:05 +0100)]
Pay attention to category/board when examining adjourned games

The ICS assumed all adourned games were of type blitz...

7 years agoSeirawan gatings on castling
H.G. Muller [Thu, 1 Dec 2011 11:49:36 +0000 (12:49 +0100)]
Seirawan gatings on castling

Castlings can now have promo suffix in any move format. RxK is understood
as castling, and in combination with promosuffix will cause gating at
the Rook square. For now it is printed as h1e1=h in SAN.

7 years agoDebug Seirawan Chess
H.G. Muller [Tue, 29 Nov 2011 21:59:48 +0000 (22:59 +0100)]
Debug Seirawan Chess

7 years agoFix build error in perl script
H.G. Muller [Tue, 29 Nov 2011 18:18:38 +0000 (19:18 +0100)]
Fix build error in perl script

7 years agoImplement S-Chess
H.G. Muller [Tue, 29 Nov 2011 17:05:44 +0000 (18:05 +0100)]
Implement S-Chess

The value drops=2 in the gameState controls whether gating in pieces
from the holdings is possible, and implies holdings even if holdings=0.
New incarations of Cardinal and Marshall are added to the piece types,
under the names H and E. Gating has to be entered as promotion ('/' in
stead of '=' is allowed). King does no longer have to be the last piece
type; a macro PIECES has been added to indicate the number of piece types.

7 years agoFix mamer crash on listmanagers command
H.G. Muller [Tue, 29 Nov 2011 10:31:48 +0000 (11:31 +0100)]
Fix mamer crash on listmanagers command

7 years agoPrint minutes, not deci-sec in 'Creating' message
H.G. Muller [Sun, 6 Nov 2011 20:39:09 +0000 (21:39 +0100)]
Print minutes, not deci-sec in 'Creating' message

7 years agoIncrease number of games retained in history to 40
H.G. Muller [Thu, 3 Nov 2011 16:07:46 +0000 (17:07 +0100)]
Increase number of games retained in history to 40

Unfortunately this parameter is hard-coded in the server.

7 years agoAdd pause function to mamer
H.G. Muller [Wed, 2 Nov 2011 14:45:59 +0000 (15:45 +0100)]
Add pause function to mamer

Mamer can now 'pause' an indicated tourney, meaning it suppresses starting
a new round. The command 'resume' would then be needed to start the next
round, and reset the pause condition. (Cloned from OpenTourney.)

7 years agoAdd 2-sec delay before issuing rmatch
H.G. Muller [Sat, 22 Oct 2011 16:22:58 +0000 (18:22 +0200)]
Add 2-sec delay before issuing rmatch

To prevent server overload when all matches start simutaneously.

7 years agoLet mamer take colors into account for pairing
H.G. Muller [Fri, 21 Oct 2011 21:17:31 +0000 (23:17 +0200)]
Let mamer take colors into account for pairing

During the pairing phase mamer now avodids pairing participants that
cannot not be assigned a color without violating the absolute rules
of three consecutives or imbalance.

7 years agoMake mamer compilable
H.G. Muller [Fri, 21 Oct 2011 21:07:53 +0000 (23:07 +0200)]
Make mamer compilable

Apparently some non-compliancies that were still accepted under
Ubuntu 8.04 are not accepted anymore.

7 years agoCheck in modified mamer
H.G. Muller [Fri, 21 Oct 2011 20:25:23 +0000 (22:25 +0200)]
Check in modified mamer

This mamer was modified by hgm in pre-git days (and also obtained elsewhere?)
to pay attention to the colors of the participants in Swiss pairigs.

7 years agoFix use of promoChar G,D,H in long-algebraic Shogi moves
H.G. Muller [Mon, 11 Jul 2011 19:38:07 +0000 (21:38 +0200)]
Fix use of promoChar G,D,H in long-algebraic Shogi moves

D and H were not recognized at all, and G was MASTODON. Now D&H are added,
and MASTODON is redefined in parse_move as GOLD when promoType==3.
SAN moves do their own interpretation of the promo suffix, which
was already OK.

7 years agoFix rep-draw detection
H.G. Muller [Mon, 11 Jul 2011 18:33:17 +0000 (20:33 +0200)]
Fix rep-draw detection

The comparison with previous positions started one half-move too late,
so that a third repetition was not recognized if the first occurrence
was created by an irreversible move.

8 years agoImplement Grand Chess
H.G. Muller [Tue, 8 Mar 2011 18:24:46 +0000 (19:24 +0100)]
Implement Grand Chess

This required an extra game parameter to indicate the depth of the
promotion zone. The character 'Z' in the board file sets this to 3. The
promotion code had to be changed to allow for deferral when the last
rank is not yet reached. A missing promo char now defaults to deferral
when possible, and to the highest available piece if not.

8 years agoMake mate test handle Shogi
H.G. Muller [Mon, 11 Oct 2010 19:52:10 +0000 (21:52 +0200)]
Make mate test handle Shogi

If we must rely on interposing drop for resolving the check, now use
legal_andcheck_move() to test if the drop is legal.

8 years agoFix Shogi Knight-demotion bug
H.G. Muller [Mon, 11 Oct 2010 19:40:48 +0000 (21:40 +0200)]
Fix Shogi Knight-demotion bug

8 years agoFix bugs in Shogi Knight moves and promotions
H.G. Muller [Mon, 11 Oct 2010 11:50:06 +0000 (13:50 +0200)]
Fix bugs in Shogi Knight moves and promotions

The legality check for Shogi Knight moves was improperly parenthesized,
and in the promotion code KNIGHT was used in stead of HONORABLEHORSE.

8 years agoTest Legality of Shogi promotions
H.G. Muller [Mon, 11 Oct 2010 07:13:59 +0000 (09:13 +0200)]
Test Legality of Shogi promotions

The old code would allow any drop, except Pawns on first and last rank,
which is actually too restrictive for Shogi (which does allow back-rank
Pawn drops). Only thing still missing is Pawn drop with mate.

8 years agoHandle Shogi promotions on SAN moves
H.G. Muller [Mon, 11 Oct 2010 06:57:39 +0000 (08:57 +0200)]
Handle Shogi promotions on SAN moves

8 years agoRepresent DragonKing and DragonHorse by D and H
H.G. Muller [Mon, 11 Oct 2010 06:56:34 +0000 (08:56 +0200)]
Represent DragonKing and DragonHorse by D and H

Only in the board file it remains J and I.

8 years agoFinish implementation of Shogi
H.G. Muller [Sun, 10 Oct 2010 10:38:56 +0000 (12:38 +0200)]
Finish implementation of Shogi

Shogi promotions were implemented by introducing a new promoType
value (3), which can be set y 'S' in the board status line.
Demotion of pieces takes place on capture, by tracing them back with
was_promoted() to their original, which now is not automatically Pawn,
but derived from the piece mentioned in the move string.

Like in Bughouse a promoted Queen is not distinguished from a
primordial one on the board, Golds which are promoted Pawns / Lances /
Knights / Silvers all look the same as a primordial Gold. The Dragon
Horse and Draon King look different from Bishop and Rook, though, and
are indicated by the letters I and J on the board.

The promotion is indicated in the SAN move by suffix =G, =I or =J.
Deferral is not indicated. On input == is understood as deferral, =+ or
=^ (or in fact =<ANY PIECE> as promotion).

9 years agoInclude TD list with mamer on it in distribution
H.G. Muller [Fri, 12 Mar 2010 10:43:47 +0000 (11:43 +0100)]
Include TD list with mamer on it in distribution

9 years agoPreconfigure admin as TM for mamer in the distribution
H.G. Muller [Fri, 12 Mar 2010 10:32:25 +0000 (11:32 +0100)]
Preconfigure admin as TM for mamer in the distribution

The file bots/mamer/data/managers was changed to list admin, and the
file bots/mamer/players/a/admin where admin has TM rights was added.

9 years agoFix color assignment by mamer
H.G. Muller [Fri, 12 Mar 2010 08:59:10 +0000 (09:59 +0100)]
Fix color assignment by mamer

Mamer was not keeping track of the total number of whites and blacks,
and was furthermore clearing these counts and the consecutive
whites / blacks before every round.

9 years agoFix crash on rated Gothic games
H.G. Muller [Fri, 12 Mar 2010 08:07:46 +0000 (09:07 +0100)]
Fix crash on rated Gothic games

The new game types were not everywere mapped on rating types, leading to
a crash. Types KNIGHTMATE, CAPABLANCA and GOTHIC are for the time being
now all treated as WILD, in rating calculations. Eventually these should
all have their own rating type, but this requires an extension of the
rating database format.

9 years agoChmod 644
H.G. Muller [Mon, 18 Jan 2010 12:44:43 +0000 (13:44 +0100)]
Chmod 644

Some C source files had inadvertantly acquired mode 755.

9 years agoInitial boards for the various variants
H.G. Muller [Mon, 18 Jan 2010 12:27:39 +0000 (13:27 +0100)]
Initial boards for the various variants

In the new logic, the 'category', i.e. the name of the subdirectory of
'data/boards' now should correspond to the variant name used in the
XBoard client. The default setup for the variant is then in the file '0'
inside that, and is used wen no explicit board name is given.

9 years agoCheck-in modifications made by HGM so far
H.G. Muller [Mon, 18 Jan 2010 12:20:48 +0000 (13:20 +0100)]
Check-in modifications made by HGM so far

This is the version of the variant ICS that first started running
permanently on my ADSL connection.

9 years agoCheck-in Lasker-2.2.3 tar ball from samba.org
H.G. Muller [Mon, 18 Jan 2010 12:16:33 +0000 (13:16 +0100)]
Check-in Lasker-2.2.3 tar ball from samba.org