version 1.4.33b
authorH.G. Muller <h.g.muller@hccnet.nl>
Thu, 9 Jun 2011 07:56:59 +0000 (09:56 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Thu, 9 Jun 2011 07:56:59 +0000 (09:56 +0200)
12 files changed:
ChangeLog
README
config.h
configure
configure.ac
main.c
option.c
pipex_win32.c
polyglot.man
polyglot.pod
polyglot.spec
xboard2uci.c

index 6a60026..070eeb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+=========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
diff --git a/README b/README
index 82bd6e4..f36abee 100644 (file)
--- a/README
+++ b/README
@@ -440,6 +440,17 @@ CONFIG FILE FORMAT
            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
@@ -512,4 +523,4 @@ SEE ALSO
 
 
 
-                                  2009-08-03                       POLYGLOT(6)
+                                  2009-08-06                       POLYGLOT(6)
index 608b803..47ea08c 100644 (file)
--- a/config.h
+++ b/config.h
 #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
index 6ea37d6..264d016 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /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>.
 #
@@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # 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"
@@ -1207,7 +1207,7 @@ if test "$ac_init_help" = "long"; then
   # 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]...
 
@@ -1273,7 +1273,7 @@ fi
 
 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
 
@@ -1357,7 +1357,7 @@ fi
 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,
@@ -1371,7 +1371,7 @@ cat >config.log <<_ACEOF
 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 $@
@@ -2061,7 +2061,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='polyglot'
- VERSION='1.4.32b'
+ VERSION='1.4.33b'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6848,7 +6848,7 @@ exec 6>&1
 # 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
@@ -6901,7 +6901,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _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'`\\"
 
index 3f63c72..91b66f3 100644 (file)
@@ -2,7 +2,7 @@
 # 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])
diff --git a/main.c b/main.c
index 70c5917..3dc5c20 100644 (file)
--- a/main.c
+++ b/main.c
@@ -35,7 +35,7 @@
 // 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
@@ -43,7 +43,7 @@ SYNTAX\n\
 * 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
index 4830be6..07b36cf 100644 (file)
--- a/option.c
+++ b/option.c
@@ -64,10 +64,11 @@ option_t Option[] = {
     { "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
index 8d9e893..13adfeb 100644 (file)
@@ -322,6 +322,8 @@ bool pipex_eof(pipex_t *pipex){
 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;
@@ -329,10 +331,18 @@ bool pipex_readln_nb(pipex_t *pipex, char *szLineStr) {
     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);
index 3fbbdb4..db0bd7e 100644 (file)
 .\" ========================================================================
 .\"
 .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 
@@ -553,6 +553,16 @@ however do not send a new pv string just before sending the move.
 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
index ef88cd4..0465ce6 100644 (file)
@@ -519,6 +519,17 @@ 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. 
 
+=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
 
 
index 063c23e..ea33c64 100644 (file)
@@ -1,6 +1,6 @@
 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
index db02bc0..d255d6f 100644 (file)
@@ -815,6 +815,11 @@ static void send_xboard_options(){
         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