+=========1.4.33b================\r
+- New option: "WbWorkArounds". Currently it blocks options which contain "Draw" in their name from being sent to the GUI. Engines that have such options are Rybka and HIARCS. \r
+- Bugfix for ASSERT failure in bright. Now another ASSERT failure has appeared which seems to be bright's fault however. \r
=========1.4.32b================\r
- Bugfix: the default setting for RepeatPV had become false again...\r
=========1.4.31b================\r
to the way kibitzing is implemented, KibitzMove is disabled in that
case.
+ WbWorkArounds (default: false)
+ The intention of this option is to provide work arounds for
+ xboard/winboard bugs should they arise. Currently it only prevents
+ "feature option=" commands which contain "Draw" in their name from
+ being sent to the GUI. Some versions of xboard/winboard contain a
+ bug which causes such options to be interpreted as draw claims by
+ the engine.
+
+ Engines that send options with "Draw" in their name are Rybka and
+ HIARCS.
+
[Engine] section
This section contains engine UCI options. PolyGlot does not understand
- 2009-08-03 POLYGLOT(6)
+ 2009-08-06 POLYGLOT(6)
#define PACKAGE_NAME "polyglot"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "polyglot 1.4.32b"
+#define PACKAGE_STRING "polyglot 1.4.33b"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "polyglot"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.4.32b"
+#define PACKAGE_VERSION "1.4.33b"
/* Define to 1 if the C compiler supports function prototypes. */
#define PROTOTYPES 1
#define TIME_WITH_SYS_TIME 1
/* Version number of package */
-#define VERSION "1.4.32b"
+#define VERSION "1.4.33b"
/* Define like PROTOTYPES; this can be used by system headers. */
#define __PROTOTYPES 1
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for polyglot 1.4.32b.
+# Generated by GNU Autoconf 2.61 for polyglot 1.4.33b.
#
# Report bugs to <michel.vandenbergh@uhasselt.be>.
#
# Identity of this package.
PACKAGE_NAME='polyglot'
PACKAGE_TARNAME='polyglot'
-PACKAGE_VERSION='1.4.32b'
-PACKAGE_STRING='polyglot 1.4.32b'
+PACKAGE_VERSION='1.4.33b'
+PACKAGE_STRING='polyglot 1.4.33b'
PACKAGE_BUGREPORT='michel.vandenbergh@uhasselt.be'
ac_unique_file="mainloop.c"
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures polyglot 1.4.32b to adapt to many kinds of systems.
+\`configure' configures polyglot 1.4.33b to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of polyglot 1.4.32b:";;
+ short | recursive ) echo "Configuration of polyglot 1.4.33b:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-polyglot configure 1.4.32b
+polyglot configure 1.4.33b
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by polyglot $as_me 1.4.32b, which was
+It was created by polyglot $as_me 1.4.33b, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='polyglot'
- VERSION='1.4.32b'
+ VERSION='1.4.33b'
cat >>confdefs.h <<_ACEOF
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by polyglot $as_me 1.4.32b, which was
+This file was extended by polyglot $as_me 1.4.33b, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-polyglot config.status 1.4.32b
+polyglot config.status 1.4.33b
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
-AC_INIT([polyglot], [1.4.32b], [michel.vandenbergh@uhasselt.be])
+AC_INIT([polyglot], [1.4.33b], [michel.vandenbergh@uhasselt.be])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([mainloop.c])
AC_CONFIG_HEADER([config.h])
// constants\r
\r
\r
-static const char * const Version = "1.4.32b";\r
+static const char * const Version = "1.4.33b";\r
static const char * const HelpMessage = "\\r
SYNTAX\n\\r
* polyglot [configfile]\n\\r
* polyglot make-book [-pgn inputfile] [-bin outputfile] [-max-ply ply] [-min-game games] [-min-score score] [-only-white] [-only-black] [-uniform]\n\\r
* polyglot merge-book -in1 inputfile1 -in2 inputfile2 [-out outputfile]\n\\r
* polyglot info-book [-bin inputfile] [-exact]\n\\r
-* polyglot dumb-book [-bin inputfile] -color color [-out outputfile]\n\\r
+* polyglot dump-book [-bin inputfile] -color color [-out outputfile]\n\\r
* polyglot [configfile] epd-test [-epd inputfile] [-min-depth depth] [-max-depth depth] [-min-time time] [-max-time time] [-depth-delta delta]\n\\r
* polyglot perft [-fen fen] [-max-depth depth]\\r
";\r
{ "UCIVersion", "spin","1","2", "2" , NULL,0,NNB, PG|XBOARD}, \r
{ "CanPonder", "check","1","2", "false" , NULL,0,NNB, PG|XBOARD}, \r
{ "SyncStop", "check","1","2", "false" , NULL,0,NNB, PG|XBOARD}, \r
- { "Affinity", "spin","-1","32", "-1" , NULL,0,NNB, PG}, \r
- { "RepeatPV", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD},\r
+ { "Affinity", "spin","-1","32", "-1" , NULL,0,NNB, PG}, \r
+ { "RepeatPV", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD},\r
{ "PromoteWorkAround","check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, \r
\r
+ { "WbWorkArounds", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, \r
{ NULL, NULL,"0","0", NULL , NULL,0,NNB, 0},\r
};\r
\r
bool pipex_readln_nb(pipex_t *pipex, char *szLineStr) {
int nFeedEnd;
int ret;
+ int src, dst;
+ char c;
EnterCriticalSection(&(pipex->CriticalSection));
if ((pipex->lpFeedEnd) == NULL) {
ret=FALSE;
nFeedEnd = pipex->lpFeedEnd - pipex->lpBuffer;
memcpy(szLineStr, pipex->lpBuffer, nFeedEnd+1);
szLineStr[nFeedEnd] = '\0';
- // temp hack: we use the fact that strtok modifies its first argument
- strtok(szLineStr,"\r\n");
+
+ // temp hack: stolen from util.c
+ // remove CRs and LFs
+ src = 0;
+ dst = 0;
+ while ((c=szLineStr[src++]) != '\0') {
+ if (c != '\r' && c != '\n') szLineStr[dst++] = c;
+ }
+ szLineStr[dst] = '\0';
ASSERT(strchr(szLineStr,'\n')==NULL)
ASSERT(strchr(szLineStr,'\r')==NULL)
+
nFeedEnd ++;
pipex->nReadEnd -= nFeedEnd;
memcpy(pipex->lpBuffer, pipex->lpBuffer + nFeedEnd, pipex->nReadEnd+1);
.\" ========================================================================
.\"
.IX Title "POLYGLOT 6"
-.TH POLYGLOT 6 "2009-08-03" "" ""
+.TH POLYGLOT 6 "2009-08-06" "" ""
.SH "NAME"
PolyGlot \- Winboard protocol to UCI protocol adapter
\- book engine for Polyglot books
In that case the output of PolyGlot would be inconsistent.
When RepeatPV is false PolyGlot does not repeat the last pv string.
Due to the way kibitzing is implemented, KibitzMove is disabled in that case.
+.IP "\fBWbWorkArounds\fR (default: false)" 4
+.IX Item "WbWorkArounds (default: false)"
+The intention of this option is to provide work arounds for
+xboard/winboard bugs should they arise. Currently it only prevents
+\&\*(L"feature option=\*(R" commands which contain \*(L"Draw\*(R" in their name from
+being sent to the \s-1GUI\s0. Some versions of xboard/winboard contain a bug
+which causes such options to be interpreted as draw claims by the
+engine.
+.Sp
+Engines that send options with \*(L"Draw\*(R" in their name are Rybka and \s-1HIARCS\s0.
.Sh "[Engine] section"
.IX Subsection "[Engine] section"
This section contains engine \s-1UCI\s0 options. PolyGlot does not
When RepeatPV is false PolyGlot does not repeat the last pv string.
Due to the way kibitzing is implemented, KibitzMove is disabled in that case.
+=item B<WbWorkArounds> (default: false)
+
+The intention of this option is to provide work arounds for
+xboard/winboard bugs should they arise. Currently it only prevents
+"feature option=" commands which contain "Draw" in their name from
+being sent to the GUI. Some versions of xboard/winboard contain a bug
+which causes such options to be interpreted as draw claims by the
+engine.
+
+Engines that send options with "Draw" in their name are Rybka and HIARCS.
+
=back
Summary: A Winboard protocol to UCI protocol adapter
Name: polyglot
-Version: 1.4.32b
+Version: 1.4.33b
Release: 1
License: GPL
Group: Amusement/Games
if(my_string_case_equal(Uci->option[i].name,"Hash")) continue;\r
if(my_string_case_equal(Uci->option[i].name,"NalimovPath")) continue;\r
if((name=uci_thread_option(Uci))!=NULL && my_string_case_equal(Uci->option[i].name,name)) continue;\r
+ if(option_get_bool("WbWorkArounds") &&\r
+ strstr(Uci->option[i].name,"Draw")){\r
+ my_log("POLYGLOT Dropping option \"%s\" because it contains \"Draw\"\n",Uci->option[i].name);\r
+ continue;\r
+ }\r
format_xboard_option_line(option_line,Uci->option+i);\r
\r
gui_send(GUI,"%s",option_line);\r