Remove more duplicate variable declarations.
[gnushogi.git] / gnushogi / rawdsp.c
index b73bd0a..ba700db 100644 (file)
@@ -4,6 +4,7 @@
  * ----------------------------------------------------------------------
  * Copyright (c) 1993, 1994, 1995 Matthias Mutz
  * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
+ * Copyright (c) 2008, 2013, 2014 Yann Dirson and the Free Software Foundation
  *
  * GNU SHOGI is based on GNU CHESS
  *
 
 #include "gnushogi.h"
 
-unsigned short MV[MAXDEPTH];
-int MSCORE;
-
-int mycnt1, mycnt2;
-char *DRAW;
-extern char *InPtr;
-extern short pscore[];
-
 /****************************************
  * forward declarations
  ****************************************/
@@ -64,7 +57,7 @@ void Raw_UpdateDisplay(short f, short t, short redraw, short isspec);
 void
 Raw_ClearScreen(void)
 {
-    if (!barebones && !XSHOGI)
+    if (!XSHOGI)
         printf("\n");
 }
 
@@ -72,10 +65,8 @@ Raw_ClearScreen(void)
 void
 Raw_ShowPrompt(void)
 {
-    if (!barebones && !XSHOGI)
-    {
+    if (!XSHOGI)
         fputs("\nYour move is? ", stdout);
-    }
 }
 
 
@@ -88,11 +79,8 @@ Raw_ShowCurrentMove(short pnt, short f, short t)
 void
 Raw_ShowDepth(char ch)
 {
-    if (!barebones && !XSHOGI)
-    {
-        printf("Depth= %d%c ", Sdepth, ch);
-        printf("\n");
-    }
+    if (!XSHOGI)
+        printf("Depth= %d%c \n", Sdepth, ch);
 }
 
 
@@ -241,13 +229,13 @@ Raw_Initialize(void)
         /* needed because of inconsistency between MSVC run-time system and gcc includes */
         setbuf(stdout, NULL);
 #else
-#ifdef HAVE_SETLINEBUF
-        setlinebuf(stdout);
-#else
-#  ifdef HAVE_SETVBUF
+#ifdef HAVE_SETVBUF
         setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
+#else
+#  ifdef HAVE_SETLINEBUF
+        setlinebuf(stdout);
 #  else
-#    error "Need setlinebuf() or setvbuf() to compile gnushogi!"
+#    error "Need setvbuf() or setlinebuf() to compile gnushogi!"
 #  endif
 #endif
 #endif
@@ -276,19 +264,6 @@ Raw_ExitShogi(void)
 
 
 void
-Raw_Die(int sig)
-{
-    char s[80];
-
-    Raw_ShowMessage("Abort? ");
-    scanf("%s", s);
-
-    if (strcmp(s, "yes") == 0)
-        Raw_ExitShogi();
-}
-
-
-void
 Raw_TerminateSearch(int sig)
 {
 #ifdef INTERRUPT_TEST
@@ -324,7 +299,7 @@ Raw_help(void)
     printf("edit      edit board              force     toggle manual move mode\n");
     printf("switch    sides with computer     both      computer match\n");
     printf("black     computer plays black    white     computer plays white\n");
-    printf("depth     set search depth        clock     set time control\n");
+    printf("sd        set search depth        clock     set time control\n");
     printf("post      principle variation     hint      suggest a move\n");
     printf("save      game to file            get       game from file\n");
     printf("xsave     pos. to xshogi file     xget      pos. from xshogi file\n");
@@ -344,7 +319,7 @@ Raw_help(void)
     printf("stars     turn %3s                moves                  \n",
            flag.stars ? "OFF" : "ON ");
     printf("test                              p                      \n");
-    printf("debug                                                    \n");
+    printf("debug                             depth     alias for 'sd'\n");
     printf("----------------------------------------------------------------\n");
     printf("Computer: %-12s Opponent:            %s\n",
            ColorStr[computer], ColorStr[opponent]);
@@ -543,15 +518,11 @@ Raw_OutputMove(void)
         goto nomove;
 
     if (XSHOGI)
-    {
         /* add remaining time in milliseconds to xshogi */
         printf("%d. ... %s %ld\n", ++mycnt1, mvstr[0],
                (TimeControl.clock[player] - et) * 10);
-    }
     else
-    {
         printf("%d. ... %s\n", ++mycnt1, mvstr[0]);
-    }
 
  nomove:
     if ((root->flags & draw) || (root->score == -(SCORE_LIMIT + 999))
@@ -596,28 +567,18 @@ Raw_OutputMove(void)
 
  summary:
     if (root->flags & draw)
-    {
         fputs("Drawn game!\n", stdout);
-    }
     else if (root->score == -(SCORE_LIMIT + 999))
-    {
         printf("%s mates!\n", ColorStr[opponent]);
-    }
     else if (root->score == (SCORE_LIMIT + 998))
-    {
         printf("%s mates!\n", ColorStr[computer]);
-    }
 #ifdef VERYBUGGY
-    else if (!barebones && (root->score < -SCORE_LIMIT))
-    {
+    else if (!XSHOGI && (root->score < -SCORE_LIMIT))
         printf("%s has a forced mate in %d moves!\n",
                ColorStr[opponent], SCORE_LIMIT + 999 + root->score - 1);
-    }
-    else if (!barebones && (root->score > SCORE_LIMIT))
-    {
+    else if (!XSHOGI && (root->score > SCORE_LIMIT))
         printf("%s has a forced mate in %d moves!\n",
                ColorStr[computer], SCORE_LIMIT + 998 - root->score - 1);
-    }
 #endif /* VERYBUGGY */
 }
 
@@ -794,10 +755,16 @@ Raw_SelectLevel(char *sx)
 
 
 void
-Raw_ChangeSearchDepth(void)
+Raw_ChangeSearchDepth(char *sx)
 {
-    printf("depth = ");
-    scanf("%hd", &MaxSearchDepth);
+    char buf[80+1];
+    strncpy(buf, sx, 80); buf[80] = '\0';
+    /* if line empty, ask for input */
+    if (!buf[0]) {
+        printf("depth = ");
+        fgets(buf, 80+1, stdin);
+    }
+    sscanf(buf, "%hd", &MaxSearchDepth);
     TCflag = !(MaxSearchDepth > 0);
 }