- apply patch for constant len path & buffer to 1024 from Robert

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6753 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 58f4b114252a1e279f51c42b5e0dba31dcbdecfb
Former-commit-id: e64b75a1795a27eee04ca3305918cfe998d304ca
This commit is contained in:
torcs-ng 2019-11-06 09:09:11 +00:00
parent 5d448cdaaf
commit 34b663615f
7 changed files with 73 additions and 44 deletions

View file

@ -139,7 +139,7 @@ static void ReCareerNewResultXml( const char* filename, double date )
{
void *results;
snprintf( buf, 1024, filename, "results", "", "", "", "" );
snprintf( buf, sizeof(buf), filename, "results", "", "", "", "" );
ReInfo->results = GfParmReadFile( buf, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT );
results = ReInfo->results;
@ -159,7 +159,7 @@ static void ReCareerNewResult( const char* filename, const char *suffix, const c
{
void *results;
snprintf( buf, 1024, filename, "results", "_", suffix, group, "s" );
snprintf( buf, sizeof(buf), filename, "results", "_", suffix, group, "s" );
results = GfParmReadFile( buf, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT );
GfParmSetStr(subparam, RM_SECT_SUBFILES, RM_ATTR_RESULTSUBFILE, buf);
@ -226,12 +226,12 @@ static void ReCareerNewAddDrivers( void *curParam, void *curResult, char *humans
GfLogDebug(" %d : human #%d, ext=%d\n", xx,
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 1),
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_EXTENDED, NULL, 1));
sprintf( buf, "%s/%d", RM_SECT_DRIVERS, xx + 1 );
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_DRIVERS, xx + 1 );
GfParmSetStr(curParam, buf, RM_ATTR_MODULE, "human");
GfParmSetNum(curParam, buf, RM_ATTR_IDX, NULL, GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 1 ) );
GfParmSetNum(curParam, buf, RM_ATTR_EXTENDED, NULL, GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS,
RM_ATTR_EXTENDED, NULL, 1) );
sprintf( buf, "%s/%s/%d/%d/%s", RM_SECT_CLASSPOINTS, "human",
snprintf( buf, sizeof(buf), "%s/%s/%d/%d/%s", RM_SECT_CLASSPOINTS, "human",
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_EXTENDED, NULL, 1),
(int)GfParmGetCurNum(ReInfo->params, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 1 ),
GfParmGetStr( curParam, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, "" ) );
@ -246,15 +246,15 @@ static void ReCareerNewAddDrivers( void *curParam, void *curResult, char *humans
/* Now it is certain that a bot should be added : no humans at this point */
GfLogDebug(" %d : simplix #%d, ext=%d\n", xx, xx, 1);
sprintf( buf, "%s/%d", RM_SECT_DRIVERS, xx + 1 );
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_DRIVERS, xx + 1 );
path2 = strdup( buf );
GfParmSetStr(curParam, path2, RM_ATTR_MODULE, "simplix");
GfParmSetNum(curParam, path2, RM_ATTR_IDX, NULL, (tdble)xx);
GfParmSetNum(curParam, path2, RM_ATTR_EXTENDED, NULL, 1);
free( path2 );
sprintf( buf, "%s/%s/%d/%d", RM_SECT_DRIVERINFO, "simplix", 1, xx );
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RM_SECT_DRIVERINFO, "simplix", 1, xx );
path2 = strdup( buf );
snprintf( buf, 1024, "%s %s", GfParmGetCurStr(ReInfo->params, RM_SECT_FIRSTNAME, RM_ATTR_NAME, "Foo"),
snprintf( buf, sizeof(buf), "%s %s", GfParmGetCurStr(ReInfo->params, RM_SECT_FIRSTNAME, RM_ATTR_NAME, "Foo"),
GfParmGetCurStr(ReInfo->params, RM_SECT_LASTNAME, RM_ATTR_NAME, "Bar") );
GfParmSetStr(curParam, path2, RM_ATTR_NAME, buf);
if( GfParmListSeekNext(ReInfo->params, RM_SECT_FIRSTNAME) != 0 )
@ -264,7 +264,7 @@ static void ReCareerNewAddDrivers( void *curParam, void *curResult, char *humans
GfParmSetNum(curParam, path2, RM_ATTR_SKILLLEVEL, NULL, (tdble) ReCareerNewSkill( GfParmGetEltNb( ReInfo->params, RM_SECT_CLASSES ), classNb ) );
/* Add a driver to the result section */
snprintf( buf, 1024, "%s/%s/%d/%d/%s", RE_SECT_CLASSPOINTS, "simplix", 1, xx, GfParmGetStr( curParam, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, "" ) );
snprintf( buf, sizeof(buf), "%s/%s/%d/%d/%s", RE_SECT_CLASSPOINTS, "simplix", 1, xx, GfParmGetStr( curParam, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, "" ) );
GfParmSetNum( curResult, buf, RE_ATTR_POINTS, NULL, 1.0f );
free(path2);
@ -289,7 +289,7 @@ static void ReCareerNewAddTeams( void *curParam, void *curResult, int curIndex,
GfParmListSeekFirst( curParam, RM_SECT_TEAMS );
do {
if( cur >= start ) {
snprintf( buf, 1024, "%s/%s", RE_SECT_TEAMINFO, GfParmGetCurStr( curParam, RM_SECT_TEAMS, RM_ATTR_NAME, "" ) );
snprintf( buf, sizeof(buf), "%s/%s", RE_SECT_TEAMINFO, GfParmGetCurStr( curParam, RM_SECT_TEAMS, RM_ATTR_NAME, "" ) );
GfParmSetNum( curResult, buf, RE_ATTR_POINTS, NULL, 1.0f );
if( GfParmIsFormula( curParam, RM_SECT_TEAMS, RM_ATTR_CARNAME ) == 0 )
GfParmSetFormula( curResult, buf, RM_ATTR_CARNAME, GfParmGetCurFormula( curParam, RM_SECT_TEAMS, RM_ATTR_CARNAME ) );
@ -364,10 +364,10 @@ static void* ReCareerNewGroup( const char *filename, void *param, const char *gr
char *params_filename;
/* Save the params in a new file and open it */
snprintf( buf, 1024, filename, "params", "_", GfParmGetStr(param, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, ""), groupAlpha, "s" );
snprintf( buf, sizeof(buf), filename, "params", "_", GfParmGetStr(param, RM_SECT_SUBFILES, RM_ATTR_SUFFIX, ""), groupAlpha, "s" );
params_filename = strdup( buf );
strncpy( buf, GfParmGetName(param), 1024 );
ReCareerUtilManipString( buf, groupNumber, 1024 );
snprintf( buf, sizeof(buf), "%s", GfParmGetName(param) );
ReCareerUtilManipString( buf, groupNumber, sizeof(buf) );
GfParmWriteFile( params_filename, param, buf );
subparam = GfParmReadFile( params_filename, GFPARM_RMODE_STD );
free( params_filename );
@ -378,16 +378,16 @@ static void* ReCareerNewGroup( const char *filename, void *param, const char *gr
/* Set name and description */
GfParmSetVariable( subparam, RM_SECT_HEADER, "number", (tdble)groupNumber );
strncpy( buf, GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_NAME, "" ), 1024 );
snprintf( buf, sizeof(buf), "%s", GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_NAME, "" ) );
GfParmSetStr( subparam, RM_SECT_HEADER, RM_ATTR_NAME, buf );
strncpy( buf, GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_DESCR, "" ), 1024 );
snprintf( buf, sizeof(buf), "%s", GfParmGetStr( subparam, RM_SECT_HEADER, RM_ATTR_DESCR, "" ) );
GfParmSetStr( subparam, RM_SECT_HEADER, RM_ATTR_DESCR, buf );
GfParmRemoveVariable( subparam, RM_SECT_HEADER, "number" );
/* Set that it is not the last subfile */
GfParmSetStr( subparam, RM_SECT_SUBFILES, RM_ATTR_LASTSUBFILE, RM_VAL_NO );
GfParmSetNum( subparam, RM_SECT_TRACKS, RM_ATTR_TOTALNUM, NULL, (tdble)totalTracks );
snprintf( buf, 1024, "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName( ReInfo->params, RM_SECT_CLASSES ), RM_SECT_TRACKS );
snprintf( buf, sizeof(buf), "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName( ReInfo->params, RM_SECT_CLASSES ), RM_SECT_TRACKS );
GfParmSetNum( subparam, RM_SECT_TRACKS, RM_ATTR_MINNUM, NULL, (float)((int)GfParmGetNum( ReInfo->params, buf, RM_ATTR_MINNUM, NULL, (tdble)1 )) );
GfParmSetNum( subparam, RM_SECT_TRACKS, RM_ATTR_MAXNUM, NULL, (float)((int)GfParmGetNum( ReInfo->params, buf, RM_ATTR_MAXNUM, NULL, (tdble)totalTracks )) );
@ -404,7 +404,7 @@ static void* ReCareerNewClass( const char* filename, void *prevParam, void **fir
int xx;
/* Open subfile */
snprintf( buf, 1024, "%sconfig/raceman/%s", GfLocalDir(), GfParmGetCurStr(ReInfo->params, RM_SECT_CLASSES, RM_ATTR_SUBFILE, "") );
snprintf( buf, sizeof(buf), "%sconfig/raceman/%s", GfLocalDir(), GfParmGetCurStr(ReInfo->params, RM_SECT_CLASSES, RM_ATTR_SUBFILE, "") );
subparam = GfParmReadFile( buf, GFPARM_RMODE_STD );
if( !subparam ) {
GfLogError( "Subfile %s not found\n", buf );
@ -472,7 +472,7 @@ static void ReCareerNewParams( const char* filename, double date )
/* Calculate the maximum number of needed tracks */
do {
snprintf( buf, 1024, "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName(ReInfo->params, RM_SECT_CLASSES), RM_SECT_TRACKS );
snprintf( buf, sizeof(buf), "%s/%s/%s", RM_SECT_CLASSES, GfParmListGetCurEltName(ReInfo->params, RM_SECT_CLASSES), RM_SECT_TRACKS );
if( totalTracks < 0 || totalTracks < (int)GfParmGetNum(ReInfo->params, buf, RM_ATTR_MAXNUM, NULL, 1) )
totalTracks = (int)GfParmGetNum(ReInfo->params, buf, RM_ATTR_MAXNUM, NULL, 1);
} while( GfParmListSeekNext(ReInfo->params, RM_SECT_CLASSES) == 0 );
@ -513,7 +513,7 @@ void ReCareerNew()
t = time(NULL);
stm = localtime(&t);
snprintf( buf, 1024, "%sresults/%s/%%s-%4d-%02d-%02d-%02d-%02d%%s%%s%%s.xml%%s", GfLocalDir(), ReInfo->_reFilename,
snprintf( buf, sizeof(buf), "%sresults/%s/%%s-%4d-%02d-%02d-%02d-%02d%%s%%s%%s.xml%%s", GfLocalDir(), ReInfo->_reFilename,
stm->tm_year + 1900, stm->tm_mon + 1, stm->tm_mday, stm->tm_hour, stm->tm_min );
filename = strdup(buf); // Makes it possible to reuse buf
ReCareerNewParams(filename, (double)t);
@ -611,7 +611,7 @@ void ReCareerNextAddDrivers( tDriverInfo ***drivers, int *listLength, tCareerInf
newDrivers[ xx ]->module = strdup( GfParmGetCurStr( curParam, RM_SECT_DRIVERS, RM_ATTR_MODULE, "" ) );
newDrivers[ xx ]->extended = (int)GfParmGetCurNum( curParam, RM_SECT_DRIVERS, RM_ATTR_EXTENDED, NULL, 0 );
newDrivers[ xx ]->idx = (int)GfParmGetCurNum( curParam, RM_SECT_DRIVERS, RM_ATTR_IDX, NULL, 0 );
snprintf( buf, 1024, "%s/%s/%d/%d", RM_SECT_DRIVERINFO, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RM_SECT_DRIVERINFO, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
newDrivers[ xx ]->name = strdup( GfParmGetStr( curParam, buf, RM_ATTR_NAME, "" ) );
newDrivers[ xx ]->skill = GfParmGetNum( curParam, buf, RM_ATTR_SKILLLEVEL, NULL, 5.0f );
newDrivers[ xx ]->classPointList = (double*)malloc( sizeof( double ) * info->nbClasses );
@ -622,7 +622,7 @@ void ReCareerNextAddDrivers( tDriverInfo ***drivers, int *listLength, tCareerInf
/* Get class points */
classPosition[ xx - *listLength ] = (int*)malloc( sizeof(int) * info->nbClasses );
snprintf( buf, 1024, "%s/%s/%d/%d", RE_SECT_CLASSPOINTS, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RE_SECT_CLASSPOINTS, newDrivers[ xx ]->module, newDrivers[ xx ]->extended, newDrivers[ xx ]->idx );
for( yy = 0; yy < info->nbClasses; ++yy )
{
newDrivers[ xx ]->classPointList[ yy ] = 0.0f;
@ -675,7 +675,7 @@ void ReCareerNextAddDrivers( tDriverInfo ***drivers, int *listLength, tCareerInf
{
if( strcmp( info->classes[ yy ].suffix, GfParmGetCurStr( curParam, RM_SECT_ENDOFSEASON_CLASSPOINTS, RM_ATTR_SUFFIX, "" )) == 0 )
{
snprintf( buf, 1024, "%s/%s", RM_SECT_ENDOFSEASON_CLASSPOINTS,
snprintf( buf, sizeof(buf), "%s/%s", RM_SECT_ENDOFSEASON_CLASSPOINTS,
GfParmListGetCurEltName( curParam, RM_SECT_ENDOFSEASON_CLASSPOINTS ) );
GfParmSetVariable( curParam, buf, "curClassPos", (tdble)classPosition[ xx - *listLength ][ yy ] );
GfParmSetVariable( curParam, buf, "curClassPoints", (tdble)newDrivers[ xx ]->classPointList[ yy ] );
@ -906,15 +906,15 @@ static void ReCareerNextTracks( void *subparam )
while( curResultIndex < (int)floor( (double)(xx * ( total - 1 )) / (double)( number - 1 ) + 0.5f ) + 1 ) {
/* Free round */
snprintf( buf, 1024, "%s/%d", RM_SECT_TRACKS, curResultIndex );
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_TRACKS, curResultIndex );
GfParmSetStr( subparam, buf, RM_ATTR_NAME, "free" );
GfParmSetStr( subparam, buf, RM_ATTR_CATEGORY, "free" );
++curResultIndex;
}
snprintf( buf, 1024, "%s/%s", RM_SECT_ALLOWEDTRACKS, trackEltNames[ trackIndex ] );
snprintf( buf, sizeof(buf), "%s/%s", RM_SECT_ALLOWEDTRACKS, trackEltNames[ trackIndex ] );
path = strdup( buf );
snprintf( buf, 1024, "%s/%d", RM_SECT_TRACKS, curResultIndex );
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_TRACKS, curResultIndex );
GfParmSetStr( subparam, buf, RM_ATTR_NAME, GfParmGetStr( subparam, path, RM_ATTR_NAME, "free" ) );
GfParmSetStr( subparam, buf, RM_ATTR_CATEGORY, GfParmGetStr( subparam, path, RM_ATTR_CATEGORY, "free" ) );
@ -972,7 +972,7 @@ static void ReCareerNextWrite( tCareerInfo *info )
for( zz = 0; zz < curGroupPtr->nbTeams; ++zz ) {
for( uu = 0; uu < curGroupPtr->teams[ zz ].nbDrivers; ++uu ) {
/* Fill Drivers Section */
snprintf( buf, 1024, "%s/%d", RM_SECT_DRIVERS, yy );
snprintf( buf, sizeof(buf), "%s/%d", RM_SECT_DRIVERS, yy );
GfParmSetStr( curParam, buf, RM_ATTR_MODULE, curGroupPtr->teams[ zz ].drivers[ uu ]->module );
GfParmSetNum( curParam, buf, RM_ATTR_IDX, NULL, (tdble)curGroupPtr->teams[ zz ].drivers[ uu ]->idx );
GfParmSetNum( curParam, buf, RM_ATTR_EXTENDED, NULL, (tdble)curGroupPtr->teams[ zz ].drivers[ uu ]->extended );
@ -982,7 +982,7 @@ static void ReCareerNextWrite( tCareerInfo *info )
// pDriver->extended ? " extended" : "");
/* Fill Driver Info */
snprintf( buf, 1024, "%s/%s/%d/%d", RM_SECT_DRIVERINFO, curGroupPtr->teams[ zz ].drivers[ uu ]->module,
snprintf( buf, sizeof(buf), "%s/%s/%d/%d", RM_SECT_DRIVERINFO, curGroupPtr->teams[ zz ].drivers[ uu ]->module,
curGroupPtr->teams[ zz ].drivers[ uu ]->extended,
curGroupPtr->teams[ zz ].drivers[ uu ]->idx );
GfParmSetStr( curParam, buf, RM_ATTR_NAME, curGroupPtr->teams[ zz ].drivers[ uu ]->name );

View file

@ -865,7 +865,7 @@ ReCarsManageCar(tCarElt *car, bool& bestLapChanged)
int result;
GfLogInfo("Re-reading best lap\n");
sprintf(command, "SELECT datablob FROM car0 where lap=%d", car->_bestLap);
snprintf(command, sizeof(command), "SELECT datablob FROM car0 where lap=%d", car->_bestLap);
result = sqlite3_prepare_v2(replayDB, command, -1, &ghostcarBlob, 0);
if (result) {

View file

@ -73,6 +73,8 @@ static const char *aPszSkillLevelNames[] =
{ ROB_VAL_ARCADE, ROB_VAL_SEMI_ROOKIE, ROB_VAL_ROOKIE, ROB_VAL_AMATEUR, ROB_VAL_SEMI_PRO, ROB_VAL_PRO };
static const int NSkillLevels = (int)(sizeof(aPszSkillLevelNames)/sizeof(char*));
static const size_t PathLenMax = 1024;
// The list of robot modules loaded for the race.
tModList *ReRacingRobotsModList = 0;
@ -95,7 +97,7 @@ ReReset(void)
ReInfo->robModList = &ReRacingRobotsModList;
// Load Race engine params.
char buf[256];
char buf[PathLenMax];
snprintf(buf, sizeof(buf), "%s%s", GfLocalDir(), RACE_ENG_CFG);
ReInfo->_reParam = GfParmReadFile(buf, GFPARM_RMODE_REREAD | GFPARM_RMODE_CREAT);
}
@ -470,10 +472,10 @@ static tCarElt* reLoadSingleCar( int carindex, int listindex, int modindex, int
{
tCarElt *elt;
tMemoryPool oldPool;
char path[256];
char path2[256];
char buf[256];
char buf2[256];
char path[PathLenMax];
char path2[PathLenMax];
char buf[PathLenMax];
char buf2[PathLenMax];
char const *str;
char const *category;
char const *subcategory;
@ -946,12 +948,12 @@ ReInitCars(void)
int result;
if (replayRecord) {
sprintf(command, "DROP TABLE IF EXISTS car%d", i);
snprintf(command, sizeof(command), "DROP TABLE IF EXISTS car%d", i);
result = sqlite3_exec(replayDB, command, 0, 0, 0);
if (result) GfLogInfo("Replay: Unable to drop table car%d: %s\n", i, sqlite3_errmsg(replayDB));
}
sprintf(command, "CREATE TABLE IF NOT EXISTS car%d (timestamp, lap, datablob BLOB)", i);
snprintf(command, sizeof(command), "CREATE TABLE IF NOT EXISTS car%d (timestamp, lap, datablob BLOB)", i);
result = sqlite3_exec(replayDB, command, 0, 0, 0);
if (result) {
GfLogInfo("Replay: Unable to create table car%d: %s\n", i, sqlite3_errmsg(replayDB));
@ -960,7 +962,7 @@ ReInitCars(void)
if (replayReplay) {
// Build index to allow faster read access
sprintf(command, "CREATE UNIQUE INDEX IF NOT EXISTS index%d ON car%d (timestamp)", i, i);
snprintf(command, sizeof(command), "CREATE UNIQUE INDEX IF NOT EXISTS index%d ON car%d (timestamp)", i, i);
result = sqlite3_exec(replayDB, command, 0, 0, 0);
if (result) GfLogInfo("Replay: Unable to create index car%d: %s\n", i, sqlite3_errmsg(replayDB));
}

View file

@ -932,7 +932,7 @@ void ReSituationUpdater::replaySituation(tRmInfo*& pSource)
memcpy(&pTgtCar->pitcmd, &pSrcCar->pitcmd, sizeof(tCarPitCmd));
// and write to database
sprintf(command, "INSERT INTO car%d (timestamp, lap, datablob) VALUES (%f, %d, ?)", nCarInd,
snprintf(command, sizeof(command), "INSERT INTO car%d (timestamp, lap, datablob) VALUES (%f, %d, ?)", nCarInd,
pSource->s->currentTime, pSrcCar->_laps);
result = sqlite3_prepare_v2(replayDB, command, -1, &replayBlobs[nCarInd], 0);

View file

@ -730,6 +730,33 @@ reTrackInitSimuWeather(void)
if (!file.is_open())
{
GfLogError("Failed to open %s\n", weatherfile.str().c_str());
int clouds = TR_CLOUDS_NONE;
int rain = TR_RAIN_NONE;
// Really random clouds.
clouds = rand() % (TR_CLOUDS_FULL);
// Update track local info.
trackLocal->rain = rain;
trackLocal->hail = 0;
trackLocal->snow = 0;
trackLocal->clouds = clouds;
trackLocal->cloud_altitude = 5500.0 * 0.3048;
trackLocal->water = rain;
trackLocal->airtemperature = 15.0f;
trackLocal->dewp = 5.0f;
trackLocal->airpressure = 101300;
trackLocal->airdensity = 1.219f;
trackLocal->windspeed = (tdble)(rand() % 100);
trackLocal->winddir = (tdble)(rand() % 359);
trackLocal->relativehumidity = 65.0f;
trackLocal->visibility = (tdble)(rand() % 12000);
reTrackInitWeatherValues();
if ((trackLocal->visibility < 300) & (rain < 1))
trackLocal->visibility = 300;
ReTrackUpdate();
return;
}

View file

@ -70,7 +70,7 @@ int RmGetFeaturesList( void* param )
int raceFeatureMask = -1; // All bits set to 1.
void *robhdle;
char path[ 256 ];
char path[ 1024 ];
char buf[ 1024 ];
int xx, yy;
int features_index;
@ -80,15 +80,15 @@ int RmGetFeaturesList( void* param )
for( xx = 1; xx < nCars + 1; ++xx )
{
/* Open robot */
sprintf( path, "%s/%d", RM_SECT_DRIVERS, xx );
snprintf( path, sizeof(path), "%s/%d", RM_SECT_DRIVERS, xx );
cardllname = GfParmGetStr( param, path, RM_ATTR_MODULE, "" );
caridx = (int)GfParmGetNum( param, path, RM_ATTR_IDX, NULL, 0 );
sprintf( buf, "%s/drivers/%s/%s.xml", GfLocalDir(), cardllname, cardllname );
snprintf( buf, sizeof(buf), "%s/drivers/%s/%s.xml", GfLocalDir(), cardllname, cardllname );
robhdle = GfParmReadFile( buf, GFPARM_RMODE_STD );
if( !robhdle )
{
sprintf( buf, "drivers/%s/%s.xml", cardllname, cardllname );
snprintf( buf, sizeof(buf), "drivers/%s/%s.xml", cardllname, cardllname );
robhdle = GfParmReadFile( buf, GFPARM_RMODE_STD );
}
@ -97,7 +97,7 @@ int RmGetFeaturesList( void* param )
driverFeatureMask = 0;
sprintf( buf, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
snprintf( buf, sizeof(buf), "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
if( strcmp( GfParmGetStr( robhdle, buf, ROB_ATTR_TYPE, ROB_VAL_ROBOT ), ROB_VAL_HUMAN ) == 0 )
{
if( strcmp( GfParmGetStr( robhdle, buf, ROB_ATTR_LEVEL, ROB_VAL_ARCADE ), ROB_VAL_ARCADE ) == 0 )
@ -117,7 +117,7 @@ int RmGetFeaturesList( void* param )
/*RM_FEATURE_SC | RM_FEATURE_YELLOW | RM_FEATURE_BLUE | RM_FEATURE_RED | RM_FEATURE_PITEXIT |*/
} else if( strcmp( GfParmGetStr( robhdle, buf, ROB_ATTR_TYPE, ROB_VAL_ROBOT ), ROB_VAL_ROBOT ) == 0 )
{
sprintf( buf, "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
snprintf( buf, sizeof(buf), "%s/%s/%d", ROB_SECT_ROBOTS, ROB_LIST_INDEX, caridx );
features = GfParmGetStr( robhdle, buf, ROB_ATTR_FEATURES, "" );
features_index = 0;
buf_index = 0;

View file

@ -102,8 +102,8 @@ bool ReWebMetar::ReWebMetarFtp(const string& m)
CURL *curl;
CURLcode res;
char buffer[256];
snprintf(buffer, 255, "%sconfig/weather.txt", GetLocalDir());
char buffer[1024];
snprintf(buffer, sizeof(buffer), "%sconfig/weather.txt", GetLocalDir());
GfLogDebug("Save Weather file in = %s\n", buffer);
GfLogDebug("URL WebMetar = %s\n", m.c_str());