/*
* gamelist.c -- Functions to manage a gamelist
*
- * Copyright 1995,2009 Free Software Foundation, Inc.
+ * Copyright 1995, 2009, 2010 Free Software Foundation, Inc.
*
* Enhancements Copyright 2005 Alessandro Scotti
*
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
+ * along with this program. If not, see http://www.gnu.org/licenses/.
*
*------------------------------------------------------------------------
** See the file ChangeLog for a revision history. */
do {
yyboardindex = 0;
offset = yyoffset();
- cm = (ChessMove) yylex();
+ cm = (ChessMove) Myylex();
switch (cm) {
case GNUChessGame:
if ((error = GameListNewGame(¤tListGame))) {
do {
yyboardindex = 1;
offset = yyoffset();
- cm = (ChessMove) yylex();
+ cm = (ChessMove) Myylex();
if (cm == PGNTag) {
ParsePGNTag(yy_text, ¤tListGame->gameInfo);
}
free(currentListGame->gameInfo.resultDetails);
}
if(yy_text[0] == '{') { char *p;
- strcpy(lastComment, yy_text+1);
- if(p = strchr(lastComment, '}')) *p = 0;
- currentListGame->gameInfo.resultDetails = StrSave(lastComment);
+ safeStrCpy(lastComment, yy_text+1, sizeof(lastComment)/sizeof(lastComment[0]));
+ if(p = strchr(lastComment, '}')) *p = 0;
+ currentListGame->gameInfo.resultDetails = StrSave(lastComment);
}
break;
default:
char *white = gameInfo->white ? gameInfo->white : "?";
char *black = gameInfo->black ? gameInfo->black : "?";
char *date = gameInfo->date ? gameInfo->date : "?";
- int len = 10 + strlen(event) + 2 + strlen(white) + 1 +
+ int len = 10 + strlen(event) + 2 + strlen(white) + 1 +
strlen(black) + 11 + strlen(date) + 1;
char *ret = (char *) malloc(len);
sprintf(ret, "%d. %s, %s-%s, %s, %s",
char * GameListLine( int number, GameInfo * gameInfo )
{
- char buffer[1024];
+ char buffer[2*MSG_SIZ];
char * buf = buffer;
char * glt = appData.gameListTags;
-
+
buf += sprintf( buffer, "%d.", number );
while( *glt != '\0' ) {
strncpy( buf, gameInfo->black ? gameInfo->black : "?", MAX_FIELD_LEN );
break;
case GLT_RESULT:
- strcpy( buf, PGNResult(gameInfo->result) );
+ safeStrCpy( buf, PGNResult(gameInfo->result), 2*MSG_SIZ );
break;
case GLT_WHITE_ELO:
if( gameInfo->whiteRating > 0 )
- sprintf( buf, "%d", gameInfo->whiteRating );
+ sprintf( buf, "%d", gameInfo->whiteRating );
else
- strcpy( buf, "?" );
+ safeStrCpy( buf, "?" , 2*MSG_SIZ);
break;
case GLT_BLACK_ELO:
if( gameInfo->blackRating > 0 )
sprintf( buf, "%d", gameInfo->blackRating );
else
- strcpy( buf, "?" );
+ safeStrCpy( buf, "?" , 2*MSG_SIZ);
break;
case GLT_TIME_CONTROL:
strncpy( buf, gameInfo->timeControl ? gameInfo->timeControl : "?", MAX_FIELD_LEN );
char * date = gameInfo->date ? gameInfo->date : "?";
char * oob = gameInfo->outOfBook ? gameInfo->outOfBook : "";
char * reason = gameInfo->resultDetails ? gameInfo->resultDetails : "";
-
+
int len = 64 + strlen(event) + strlen(site) + strlen(white) + strlen(black) + strlen(date) + strlen(oob) + strlen(reason);
char *ret = (char *) malloc(len);
{ 0, 0 }
};
-char lpUserGLT[64];
+char lpUserGLT[LPUSERGLT_SIZE];
// back-end: convert the tag id-char to a full tag name
char * GLT_FindItem( char id )
GLT_ListItemToTag( int index )
{
char result = '\0';
- char name[128];
+ char name[MSG_SIZ];
GLT_Item * list = GLT_ItemInfo;