Attempt to fix getting trapped in ponder mode
[hachu.git] / hachu.c
diff --git a/hachu.c b/hachu.c
index 4416567..fdf5bb4 100644 (file)
--- a/hachu.c
+++ b/hachu.c
@@ -10,7 +10,7 @@
 // promotions by pieces with Lion power stepping in & out the zone in same turn\r
 // promotion on capture\r
 \r
-#define VERSION "0.19"\r
+#define VERSION "0.20"\r
 \r
 //define PATH level==0 || path[0] == 0x590cb &&  (level==1 || path[1] == 0x4c0c9 && (level == 2 || path[2] == 0x8598ca && (level == 3 /*|| path[3] == 0x3e865 && (level == 4 || path[4] == 0x4b865 && (level == 5))*/)))\r
 #define PATH 0\r
@@ -153,7 +153,7 @@ typedef struct {
 } PieceDesc;\r
 \r
 typedef struct {\r
-  int from, to, piece, victim, new, booty, epSquare, epVictim[8], ep2Square, revMoveCount;\r
+  int from, to, piece, victim, new, booty, epSquare, epVictim[9], ep2Square, revMoveCount;\r
   int savKeyL, savKeyH, gain, loss, filling, saveDelta;\r
   char fireMask;\r
 } UndoInfo;\r
@@ -2646,16 +2646,18 @@ printf("# ponder hit\n");
 \r
     main()\r
     {\r
-      int engineSide=NONE;                     // side played by engine\r
+      int engineSide=NONE;                // side played by engine\r
       MOVE move;\r
       int i, score, curVarNr;\r
 \r
-  Init(V_CHU); // Chu\r
+      setvbuf(stdin, NULL, _IOLBF, 1024); // buffering more than one line flaws test for pending input!\r
+\r
+      Init(V_CHU); // Chu\r
       seed = startTime = GetTickCount(); moveNr = 0; // initialize random\r
 \r
       while(1) { // infinite loop\r
 \r
-        fflush(stdout);                 // make sure everything is printed before we do something that might take time\r
+        fflush(stdout);                   // make sure everything is printed before we do something that might take time\r
         *inBuf = 0; if(moveNr >= 20) randomize = OFF;\r
 //if(moveNr >20) printf("resign\n");\r
 \r