X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Frawdsp.c;h=8512633736f331923eb3e462104ffb977ffeedc2;hb=2bd15473d35a00d107923dabc82b5a6ae12afd92;hp=bfbc7d206de24437185b6044f47080098a9eb8f7;hpb=8ae7e7d1b257ef36d8a9fd1cd88807954ef10764;p=gnushogi.git
diff --git a/gnushogi/rawdsp.c b/gnushogi/rawdsp.c
index bfbc7d2..8512633 100644
--- a/gnushogi/rawdsp.c
+++ b/gnushogi/rawdsp.c
@@ -14,8 +14,8 @@
*
* GNU Shogi is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 1, or (at your option) any
- * later version.
+ * Free Software Foundation; either version 3 of the License,
+ * or (at your option) any later version.
*
* GNU Shogi is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@@ -23,14 +23,15 @@
* for more details.
*
* You should have received a copy of the GNU General Public License along
- * with GNU Shogi; see the file COPYING. If not, write to the Free
- * Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * with GNU Shogi; see the file COPYING. If not, see
+ * .
* ----------------------------------------------------------------------
*
*/
#include
#include
+#include
#include
#include
#include
@@ -66,7 +67,7 @@ PromptForMove(void)
if (!barebones && !XSHOGI)
{
/* printf("\nYour move is? "); */
- printf(CP[124]);
+ fputs(CP[124], stdout);
}
}
@@ -123,6 +124,22 @@ Raw_ShowMessage(char *s)
void
+Raw_Printf(const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ vprintf(format, ap);
+ va_end(ap);
+}
+
+void
+Raw_doRequestInputString(const char* fmt, char* buffer)
+{
+ scanf(fmt, buffer);
+}
+
+
+void
Raw_ShowPatternCount(short side, short n)
{
if (flag.post)
@@ -204,6 +221,8 @@ Raw_ExitShogi(void)
if (!nolist)
ListGame();
+
+ exit(0);
}
@@ -241,12 +260,12 @@ Raw_help(void)
{
Raw_ClearScreen();
/* printf("SHOGI command summary\n"); */
- printf(CP[40]);
+ printf(CP[40], version, patchlevel);
printf("----------------------------------"
"------------------------------\n");
/* printf("7g7f move from 7g to 7f quit
* Exit Shogi\n"); */
- printf(CP[158]);
+ fputs(CP[158], stdout);
/* printf("S6h move silver to 6h beep
* turn %s\n", (flag.beep) ? "off" : "on"); */
printf(CP[86], (flag.beep) ? CP[92] : CP[93]);
@@ -260,36 +279,36 @@ Raw_help(void)
printf(CP[174], (flag.hash) ? CP[92] : CP[93]);
/* printf("bd redraw board reverse
* board display\n"); */
- printf(CP[130]);
+ fputs(CP[130], stdout);
/* printf("list game to shogi.lst book
* turn %s used %d of %d\n", (Book) ? "off" : "on", bookcount); */
printf(CP[170], (Book) ? CP[92] : CP[93], bookcount, booksize);
/* printf("undo undo last ply remove
* take back a move\n"); */
- printf(CP[200]);
+ fputs(CP[200], stdout);
/* printf("edit edit board force
* enter game moves\n"); */
- printf(CP[153]);
+ fputs(CP[153], stdout);
/* printf("switch sides with computer both
* computer match\n"); */
- printf(CP[194]);
+ fputs(CP[194], stdout);
/* printf("black computer plays black white
* computer plays white\n"); */
- printf(CP[202]);
+ fputs(CP[202], stdout);
/* printf("depth set search depth clock
* set time control\n"); */
- printf(CP[149]);
+ fputs(CP[149], stdout);
/* printf("post principle variation hint
* suggest a move\n"); */
- printf(CP[177]);
+ fputs(CP[177], stdout);
/* printf("save game to file get
* game from file\n"); */
- printf(CP[188]);
+ fputs(CP[188], stdout);
printf("xsave pos. to xshogi file xget"
" pos. from xshogi file\n");
/* printf("random randomize play new
* start new game\n"); */
- printf(CP[181]);
+ fputs(CP[181], stdout);
printf("--------------------------------"
"--------------------------------\n");
/* printf("Computer: %-12s Opponent: %s\n", */
@@ -313,9 +332,6 @@ Raw_help(void)
(TCflag) ? CP[93] : CP[92],
TimeControl.moves[black], TimeControl.clock[black] / 100,
TCadd/100, MaxSearchDepth);
-
- signal(SIGINT, Raw_TerminateSearch);
- signal(SIGQUIT, Raw_TerminateSearch);
}
@@ -336,13 +352,13 @@ Raw_EditBoard(void)
Raw_ClearScreen();
Raw_UpdateDisplay(0, 0, 1, 0);
/* printf(". exit to main\n"); */
- printf(CP[29]);
+ fputs(CP[29], stdout);
/* printf("# clear board\n"); */
- printf(CP[28]);
+ fputs(CP[28], stdout);
/* printf("c change sides\n"); */
- printf(CP[136]);
+ fputs(CP[136], stdout);
/* printf("enter piece & location: \n"); */
- printf(CP[155]);
+ fputs(CP[155], stdout);
a = black;
@@ -382,8 +398,8 @@ Raw_EditBoard(void)
}
else
{
- c = '9' - s[1];
- r = 'i' - s[2];
+ c = COL_NAME(s[1]);
+ r = ROW_NAME(s[2]);
}
if ((c >= 0) && (c < NO_COLS) && (r >= 0) && (r < NO_ROWS))
@@ -480,16 +496,13 @@ SetupBoard(void)
Raw_ClearScreen();
Raw_UpdateDisplay(0, 0, 1, 0);
/* printf("Setup successful\n"); */
- printf(CP[106]);
+ fputs(CP[106], stdout);
}
void
Raw_SearchStartStuff(short side)
{
- signal(SIGINT, Raw_TerminateSearch);
- signal(SIGQUIT, Raw_TerminateSearch);
-
if (flag.post)
{
printf(CP[123],
@@ -573,7 +586,7 @@ Raw_OutputMove(void)
if (root->flags & draw)
{
/* printf("Drawn game!\n"); */
- printf(CP[57]);
+ fputs(CP[57], stdout);
}
else if (root->score == -(SCORE_LIMIT + 999))
{
@@ -690,7 +703,7 @@ Raw_GiveHint(void)
printf(CP[72], mvstr[0]); /*hint*/
}
else
- printf(CP[223]);
+ fputs(CP[223], stdout);
}
@@ -717,7 +730,7 @@ Raw_SelectLevel(char *sx)
/* line empty ask for input */
if (!T[0])
{
- printf(CP[61]);
+ fputs(CP[61], stdout);
fgets(T, NO_SQUARES + 1, stdin);
strcat(T, "XX");
}
@@ -748,7 +761,7 @@ Raw_SelectLevel(char *sx)
TCseconds = 0;
#ifdef OPERATORTIME
- printf(CP[94]);
+ fputs(CP[94], stdout);
scanf("%hd", &OperatorTime);
#endif
@@ -967,4 +980,3 @@ Raw_ShowPostnValues(void)
mtl[opponent], pscore[opponent], GameType[opponent]);
printf("\nhung black %d hung white %d\n", hung[black], hung[white]);
}
-