Raw_GetString(char* sx)
{
int eof = 0;
+ char *nl;
sx[0] = '\0';
while(!eof && !sx[0])
eof = (fgets(sx, 80, stdin) == NULL);
+
+ /* remove any trailing newline */
+ nl = strchr(sx, '\n');
+ if (nl)
+ nl[0] = '\0';
+
return eof;
}
/* 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
{
Raw_ClearScreen();
printf("GNU Shogi %s command summary\n", PACKAGE_VERSION);
- printf("----------------------------------"
- "------------------------------\n");
- fputs ("7g7f move from 7g to 7f quit Exit Shogi\n", stdout);
- printf("S6h move silver to 6h beep turn %s\n", (flag.beep) ? "OFF" : "ON");
- printf("2d2c+ move to 2c and promote material turn %s\n", (flag.material) ? "OFF" : "ON");
- printf("P*5e drop pawn to 5e easy turn %s\n", (flag.easy) ? "OFF" : "ON");
- printf("tsume toggle tsume mode hash turn %s\n", (flag.hash) ? "OFF" : "ON");
- fputs ("bd redraw board reverse board display\n", stdout);
- printf("list game to shogi.lst book turn %s used %d of %d\n", (Book) ? "OFF" : "ON", bookcount, booksize);
- fputs ("undo undo last ply remove take back a move\n", stdout);
- fputs ("edit edit board force toggle manual move mode\n", stdout);
- fputs ("switch sides with computer both computer match\n", stdout);
- fputs ("black computer plays black white computer plays white\n", stdout);
- fputs ("depth set search depth clock set time control\n", stdout);
- fputs ("post principle variation hint suggest a move\n", stdout);
- fputs ("save game to file get game from file\n", stdout);
- printf("xsave pos. to xshogi file xget"
- " pos. from xshogi file\n");
- fputs("random randomize play new start new game\n", stdout);
- printf("--------------------------------"
- "--------------------------------\n");
+ printf("----------------------------------------------------------------\n");
+ printf("7g7f move from 7g to 7f quit Exit Shogi\n");
+ printf("S6h move silver to 6h beep turn %s\n",
+ (flag.beep) ? "OFF" : "ON");
+ printf("2d2c+ move to 2c and promote material turn %s\n",
+ (flag.material) ? "OFF" : "ON");
+ printf("P*5e drop pawn to 5e easy turn %s\n",
+ (flag.easy) ? "OFF" : "ON");
+ printf("tsume toggle tsume mode hash turn %s\n",
+ (flag.hash) ? "OFF" : "ON");
+ printf("bd redraw board reverse board display\n");
+ printf("list game to shogi.lst book turn %s used %d of %d\n",
+ (Book) ? "OFF" : "ON", bookcount, booksize);
+ printf("undo undo last ply remove take back a move\n");
+ 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("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");
+ printf("random randomize play new start new game\n");
+ printf("setup first \n");
+ printf("go computer plays now material turn %s\n",
+ flag.material ? "OFF" : "ON");
+ printf("level time control gamein \n");
+ printf("time set engine clock otime set opponent clock\n");
+ printf("Awindow Bwindow \n");
+ printf("rcptr turn %3s bsave book save\n",
+ flag.rcptr ? "OFF" : "ON ");
+ printf("hashdepth hard turn easy OFF\n");
+ printf("contempt xwndw \n");
+ printf("rv turn %3s coords turn %s\n",
+ flag.rv ? "OFF" : "ON ", flag.coords ? "OFF" : "ON");
+ printf("stars turn %3s moves \n",
+ flag.stars ? "OFF" : "ON ");
+ printf("test p \n");
+ printf("debug depth alias for 'sd'\n");
+ printf("----------------------------------------------------------------\n");
printf("Computer: %-12s Opponent: %s\n",
ColorStr[computer], ColorStr[opponent]);
printf("Depth: %-12d Response time: %ld sec\n",
void
Raw_SelectLevel(char *sx)
{
+ /* FIXME: NO_SQUARES is nonsense here */
char T[NO_SQUARES + 1], *p;
strncpy(T, sx, NO_SQUARES);
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);
}