Fix typeMask
[gnushogi.git] / gnushogi / rawdsp.c
index a856806..ee40dcf 100644 (file)
@@ -111,10 +111,15 @@ Raw_ShowLine(unsigned short *bstline)
 
 
 static void
-Raw_ShowMessage(char *s)
+Raw_ShowMessage(char *format, ...)
 {
-    if (!XSHOGI)
-        printf("%s\n", s);
+    if (XSHOGI)
+        return;
+    va_list ap;
+    va_start(ap, format);
+    vprintf(format, ap);
+    printf("\n");
+    va_end(ap);
 }
 
 
@@ -753,8 +758,8 @@ Raw_SelectLevel(char *sx)
     } else {
         int min, sec=0, inc, mps;
         /* parse regular "level MPS TC INC" command of WB protocol */
-        sscanf(sx, "%d %d %d", &mps, &min, &inc) == 3 ||
-        sscanf(sx, "%d %d:%d %d", &mps, &min, &sec, &inc);
+        if (sscanf(sx, "%d %d %d", &mps, &min, &inc) != 3)
+            sscanf(sx, "%d %d:%d %d", &mps, &min, &sec, &inc);
         TCminutes = min; TCseconds = sec;
         TCadd = inc*100; TCmoves = mps ? mps : 50;
         MaxResponseTime = 0; TCflag = true;
@@ -975,7 +980,7 @@ Raw_PollForInput(void)
         Raw_ExitShogi();
     }
 #endif
-    if (cnt) { /* if anything to read, or error occured */
+    if (cnt && InputCommand(NULL, false)) { /* if anything to read, or error occured */
         if (!flag.timeout)
             flag.back = true; /* previous: flag.timeout = true; */
         flag.bothsides = false;