-/* $NetBSD: stoc.c,v 1.4 1997/10/10 13:36:07 lukem Exp $ */
+/* $NetBSD: stoc.c,v 1.12 2009/08/12 06:19:17 dholland Exp $ */
/*
* Copyright (c) 1994
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
#if 0
static char sccsid[] = "@(#)stoc.c 8.1 (Berkeley) 7/24/94";
#else
-__RCSID("$NetBSD: stoc.c,v 1.4 1997/10/10 13:36:07 lukem Exp $");
+__RCSID("$NetBSD: stoc.c,v 1.12 2009/08/12 06:19:17 dholland Exp $");
#endif
#endif /* not lint */
#include <ctype.h>
#include <stdlib.h>
+#include <string.h>
#include "gomoku.h"
-char *letters = "<ABCDEFGHJKLMNOPQRST>";
+const char *letters = "<ABCDEFGHJKLMNOPQRST>";
struct mvstr {
int m_code;
- char *m_text;
+ const char *m_text;
};
-static struct mvstr mv[] = {
+static const struct mvstr mv[] = {
{ RESIGN, "resign" },
{ RESIGN, "quit" },
{ SAVE, "save" },
{ -1, 0 }
};
+static int lton(int);
+
+
/*
* Turn the spot number form of a move into the character form.
*/
-char *
-stoc(s)
- int s;
+const char *
+stoc(int s)
{
static char buf[32];
int i;
for (i = 0; mv[i].m_code >= 0; i++)
if (s == mv[i].m_code)
return(mv[i].m_text);
- sprintf(buf, "%c%d", letters[s % BSZ1], s / BSZ1);
+ snprintf(buf, sizeof(buf), "%c%d", letters[s % BSZ1], s / BSZ1);
return(buf);
}
* Turn the character form of a move into the spot number form.
*/
int
-ctos(mp)
- char *mp;
+ctos(const char *mp)
{
int i;
for (i = 0; mv[i].m_code >= 0; i++)
if (strcmp(mp, mv[i].m_text) == 0)
return(mv[i].m_code);
- if (!isalpha(mp[0]))
+ if (!isalpha((unsigned char)mp[0]))
return(ILLEGAL);
i = atoi(&mp[1]);
if (i < 1 || i > 19)
return(ILLEGAL);
- return(PT(lton(mp[0]), i));
+ return(PT(lton((unsigned char)mp[0]), i));
}
/*
* Turn a letter into a number.
*/
-int
-lton(c)
- int c;
+static int
+lton(int c)
{
int i;