*
*/
+/* request *snprintf prototypes */
+#define _POSIX_C_SOURCE 200112L
+#include <stdio.h>
+
#if defined HAVE_GETTIMEOFDAY
#include <sys/time.h>
#endif
}
-void
+static void
GetGame(void)
{
FILE *fd;
}
-void
+static void
SaveGame(void)
{
FILE *fd;
* xshogi wasn't defined -- wonder why?
*/
-void
+static void
GetXGame(void)
{
FILE *fd;
}
-void
+static void
SaveXGame(void)
{
FILE *fd;
}
-void
+static void
BookSave(void)
{
FILE *fd;
}
-void
+static void
FlagMove(char c)
{
switch(c)
* Undo the most recent half-move.
*/
-void
+static void
Undo(void)
{
short f, t;
}
-void
+static void
TestSpeed(void(*f)(short side, short ply,
short in_check, short blockable),
unsigned j)
}
-void
+static void
TestPSpeed(short(*f) (short side), unsigned j)
{
unsigned i;
}
-void
-SetOppTime(char *s)
+static void
+SetOppTime(char *time)
{
- char *time;
int m, t, sec;
sec = 0;
- time = &s[strlen("otime")];
t = (int)strtol(time, &time, 10);
if (*time == ':')
}
-void
-SetMachineTime(char *s)
+static void
+SetMachineTime(char *time)
{
- char *time;
int m, t, sec;
- time = &s[strlen("time")];
sec = 0;
t = (int)strtol(time, &time, 10);
* Process the user's command. If easy mode is OFF (the computer is thinking
* on opponents time) and the program is out of book, then make the 'hint'
* move on the board and call SelectMove() to find a response. The user
- * terminates the search by entering ^C (quit siqnal) before entering a
- * command. If the opponent does not make the hint move, then set Sdepth to
- * zero.
+ * terminates the search by entering a command. If the opponent does not make
+ * the hint move, then set Sdepth to zero.
*/
void
InputCommand(char *command)
{
- int eof = 0;
short have_shown_prompt = false;
short ok, done, is_move = false;
unsigned short mv;
algbr((short) hint >> 8, (short) hint & 0xff, false);
strcpy(s, mvstr[0]);
-#if !defined NOPOST
if (flag.post)
dsp->GiveHint();
-#endif
/* do the hint move */
if (VerifyMove(s, VERIFY_AND_TRY_MODE, &mv))
#endif /* QUIETBACKGROUND */
if (command == NULL) {
- if (NOT_CURSES)
- s[0] = '\0';
-
- eof = dsp->GetString(sx);
+ int eof = dsp->GetString(sx);
+ if (eof)
+ dsp->ExitShogi();
} else {
strcpy(sx, command);
done = true;
}
- sscanf(sx, "%s", s);
-
- if (eof)
- dsp->ExitShogi();
-
- if (s[0] == '\0')
+ /* extract first word */
+ if (sscanf(sx, "%s", s) < 1)
continue;
if (strcmp(s, "bd") == 0) /* bd -- display board */
}
else if (strcmp(s, "alg") == 0)
{
- /* noop */ ; /* alg */
+ /* noop */ ;
}
else if ((strcmp(s, "quit") == 0)
|| (strcmp(s, "exit") == 0))
{
flag.quit = true;
}
-#if !defined NOPOST
- else if (strcmp(s, "post") == 0)
- {
- flag.post = !flag.post;
- }
-#endif
else if ((strcmp(s, "set") == 0)
|| (strcmp(s, "edit") == 0))
{
dsp->EditBoard();
}
- else if ((strcmp(s, "setup") == 0))
+ else if (strcmp(s, "setup") == 0)
{
dsp->SetupBoard();
}
}
else if (strcmp(s, "time") == 0)
{
- SetMachineTime(sx);
+ SetMachineTime(sx + strlen("time"));
}
else if (strcmp(s, "otime") == 0)
{
- SetOppTime(sx);
+ SetOppTime(sx + strlen("otime"));
}
else if (strcmp(s, "Awindow") == 0)
{
}
else if (strcmp(s, "depth") == 0)
{
- dsp->ChangeSearchDepth();
+ dsp->ChangeSearchDepth(sx + strlen("depth"));
+ }
+ else if (strcmp(s, "sd") == 0)
+ {
+ dsp->ChangeSearchDepth(sx + strlen("sd"));
}
else if (strcmp(s, "hashdepth") == 0)
{
}
#ifdef notdef /* optional pass best line to frontend with move */
-# if !defined NOPOST
-
if (flag.post && !flag.mate)
{
int i;
printf("%5s ", mvstr[0]);
}
}
-# endif
printf("\n");
#endif
}