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;
}
void
Raw_SelectLevel(char *sx)
{
+ /* FIXME: NO_SQUARES is nonsense here */
+ char T[NO_SQUARES + 1], *p;
- char T[NO_SQUARES + 1], *p, *q;
-
- if ((p = strstr(sx, "level")) != NULL)
- p += strlen("level");
- else if ((p = strstr(sx, "clock")) != NULL)
- p += strlen("clock");
-
- strcat(sx, "XX");
- q = T;
- *q = '\0';
-
- for (; *p != 'X'; *q++ = *p++);
-
- *q = '\0';
+ strncpy(T, sx, NO_SQUARES);
+ T[NO_SQUARES] = '\0';
- /* line empty ask for input */
+ /* if line empty, ask for input */
if (!T[0])
{
fputs("Enter #moves #minutes: ", stdout);
fgets(T, NO_SQUARES + 1, stdin);
- strcat(T, "XX");
}
/* skip blackspace */
if (*p == 'f')
{
/* its a fischer clock game */
+ char *q;
p++;
TCminutes = (short)strtol(p, &q, 10);
TCadd = (short)strtol(q, NULL, 10) *100;
else
{
/* regular game */
+ char *q;
TCadd = 0;
TCmoves = (short)strtol(p, &q, 10);
TCminutes = (short)strtol(q, &q, 10);