XBoard: deal with semantic differences in "post" between xboard and xshogi protocols
[gnushogi.git] / gnushogi / book.c
index 5a331c9..547f3fd 100644 (file)
@@ -117,8 +117,8 @@ Balgbr(short f, short t, short flag)
             short piece = flag & pmask;
             bmvstr[0][0] = pxx[piece];
             bmvstr[0][1] = '*';
-            bmvstr[0][2] = cxx[column(t)];
-            bmvstr[0][3] = rxx[row(t)];
+            bmvstr[0][2] = COL_NAME(column(t));
+            bmvstr[0][3] = ROW_NAME(row(t));
             bmvstr[0][4] = bmvstr[2][0] = '\0';
             strcpy(bmvstr[1], bmvstr[0]);
             bmvstr[1][1] = '\'';
@@ -130,10 +130,10 @@ Balgbr(short f, short t, short flag)
                 /* algebraic notation */
                 /* bmvstr[0]: 7g7f bmvstr[1]:
                  * (+)P7g7f(+) bmvstr[2]: (+)P7f(+) */
-                bmvstr[0][0] = cxx[column(f)];
-                bmvstr[0][1] = rxx[row(f)];
-                bmvstr[0][2] = cxx[column(t)];
-                bmvstr[0][3] = rxx[row(t)];
+                bmvstr[0][0] = COL_NAME(column(f));
+                bmvstr[0][1] = ROW_NAME(row(f));
+                bmvstr[0][2] = COL_NAME(column(t));
+                bmvstr[0][3] = ROW_NAME(row(t));
                 bmvstr[0][4] = '\0';
 
                 if (promoted)
@@ -293,7 +293,7 @@ BVerifyMove(char *s, unsigned short *mv, int moveno)
             UnmakeMove(opponent, &xnode, &tempb, &tempc, &tempsf, &tempst);
             /* Illegal move in check */
 #if !defined QUIETBOOKGEN
-            puts("Illegal move (in check) %s");
+            puts("Illegal move (in check): %s");
             bkdisplay(s, cnt, moveno);
 #endif
             return false;
@@ -313,7 +313,7 @@ BVerifyMove(char *s, unsigned short *mv, int moveno)
 
     /* Illegal move */
 #if !defined QUIETBOOKGEN
-    printf("Illegal move (no match) %s\n", s);
+    printf("Illegal move (no match): %s\n", s);
     bkdisplay(s, cnt, moveno);
 #endif
     return false;
@@ -334,10 +334,12 @@ RESET(void)
 {
     short l;
 
-    flag.illegal = flag.mate = flag.post = flag.quit
+    flag.illegal = flag.mate = flag.quit
         = flag.reverse = flag.bothsides = flag.onemove = flag.force
         = false;
 
+    flag.post &= xboard; /* [HGM] xboard: do not clear in XBoard mode */
+
     flag.material = flag.coords = flag.hash = flag.easy
         = flag.beep = flag.rcptr
         = true;