XBoard: teach about xboard move notation.
[gnushogi.git] / gnushogi / commondsp.c
index 7361e76..addec64 100644 (file)
@@ -182,7 +182,7 @@ algbr(short f, short t, short flag)
         short piece = flag & pmask;
 
         mvstr[0][0] = pxx[piece];
-        mvstr[0][1] = '*';
+        mvstr[0][1] = xboard ? '@' : '*';
         mvstr[0][2] = COL_NAME(column(t));
         mvstr[0][3] = ROW_NAME(row(t));
         mvstr[0][4] = '\0';
@@ -1615,9 +1615,15 @@ InputCommand(char *command)
         }
         else if (strcmp(s, "post") == 0)
         {
-            flag.post = !flag.post;
+            flag.post = (xboard ? 1 : !flag.post);
         }
-        else if (strcmp(s, "alg") == 0)
+        else if (strcmp(s, "nopost") == 0)
+        {
+            flag.post = 0;
+        }
+        else if (strcmp(s, "alg") == 0 ||
+                 strcmp(s, "accepted") == 0 || strcmp(s, "rejected") == 0 ||
+                 strcmp(s, "variant") == 0 || strcmp(s, "computer") == 0)
         {
             /* noop */ ;
         }
@@ -1626,6 +1632,16 @@ InputCommand(char *command)
         {
             flag.quit = true;
         }
+        else if (strcmp(s, "protover") == 0)
+        {
+            printf("feature myname=\"GNU %sShogi %s\" variants=\"%sshogi\" debug=1 setboard=0 sigint=0 done=1\n",
+#ifdef MINISHOGI
+                                       "mini", PACKAGE_VERSION, "5x5+5_"
+#else
+                                         "",   PACKAGE_VERSION, ""
+#endif
+                  );
+        }
         else if ((strcmp(s, "set") == 0)
                  || (strcmp(s, "edit") == 0))
         {
@@ -1713,7 +1729,8 @@ InputCommand(char *command)
         {
             SetMachineTime(sx + strlen("time"));
         }
-        else if (strcmp(s, "otime") == 0)
+        else if (strcmp(s, "otime") == 0 ||
+                 (xboard && strcmp(s, "otim")) == 0)
         {
             SetOppTime(sx + strlen("otime"));
         }