W_FLAGS = -Wall -Werror -Wshadow -Wformat-security -Wpointer-arith -Wcast-align -Wredundant-decls -Wno-write-strings
rlist:
void do_rlist( CHAR_DATA * ch, char *argument )
{
ROOM_INDEX_DATA *room;
int vnum;
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
char arg3[MAX_INPUT_LENGTH];
AREA_DATA *tarea;
int lrange;
int trange;
char buf[MSL];
char buf2[MSL];
arg1[0] = arg2[0] = arg3[0] = buf[0] = buf2[0] = '\0';
if( IS_NPC( ch ) || get_trust( ch ) < LEVEL_AVATAR || !ch->pcdata
|| ( !ch->pcdata->area && get_trust( ch ) < LEVEL_GREATER ) )
{
send_to_char( "You don't have an assigned area.\n\r", ch );
return;
}
tarea = ch->pcdata->area;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
argument = one_argument( argument, arg3 );
if( tarea )
{
if( arg1[0] == '\0' ) /* cleaned a big scary mess */
lrange = tarea->low_r_vnum; /* here. -Thoric */
else
lrange = atoi( arg1 );
if( arg2[0] == '\0' )
trange = tarea->hi_r_vnum;
else
trange = atoi( arg2 );
if( ( lrange < tarea->low_r_vnum || trange > tarea->hi_r_vnum ) && get_trust( ch ) < LEVEL_GREATER )
{
send_to_char( "That is out of your vnum range.\n\r", ch );
return;
}
}
else
{
lrange = ( is_number( arg1 ) ? atoi( arg1 ) : 1 );
trange = ( is_number( arg2 ) ? atoi( arg2 ) : 1 );
}
// Problem area
for( vnum = lrange; vnum <= trange; vnum++ )
{
if( ( room = get_room_index( vnum ) ) == NULL )
continue;
if( room->description && ( strlen( room->description ) <= 1 ) )
sprintf( buf, "&B(&W&R*&WNO DESC&R*&B)" );
else
sprintf( buf, "&B(&G+&B)" );
sprintf( buf2, "%s %s", flag_string(room->room_flags, r_flags ), flag_string(room->room_flags2, r_flags2) );
ch_printf( ch, "&W%5d&B) &W%s %s &B[&W%s&B]\n\r", vnum, room->name, buf, (!str_cmp(arg3, "flags")) ? buf2 : "" );
}
return;
}
Force thing in nanny:
void nanny( DESCRIPTOR_DATA * d, char *argument )
{
/* extern int lang_array[];
extern char *lang_names[];*/
char buf[MAX_STRING_LENGTH];
char buf2[MAX_STRING_LENGTH];
char col;
char arg[MAX_STRING_LENGTH];
char tmp[MAX_STRING_LENGTH];
CHAR_DATA *ch;
int iRace, iClass;
int iHair, iEye, iBuild, iDroid, iHeight;
BAN_DATA *pban;
/* int iLang;*/
bool fOld, chk;
int sn, cnt = 0, fpnt = 0;
buf[0] = buf2[0] = arg[0] = tmp[0] = '\0';
// few lines down
sprintf( buf2, "Force: %s has %d.", ch->name, ch->perm_frc );
log_string_plus( buf2, LOG_NORMAL, sysdata.admin_level );
sprintf( buf2, "%s %s", flag_string(room->room_flags, r_flags ), flag_string(room->room_flags2, r_flags2) );
sprintf( buf2, "%s %s", flag_string(room->room_flags, r_flags ), flag_string(room->room_flags2, r_flags2) );
char buf[4];
int unused; /* don't remove this or the program crashes lolz!121!`` */
strcpy(buf, "Hiya");
mb@mb:~/Rom24/src$ grep narf *
act_wiz.c: * Snarf the value.
act_wiz.c: * Snarf the value (which need not be numeric).
act_wiz.c: * Snarf the value (which need not be numeric).
act_wiz.c: * Snarf the value.
comm.c: /* Snarf input. */
db2.c:/* snarf a socials file */
db2.c: * Snarf a mob section. new style
db2.c: * Snarf an obj section. new style
db.c: * Snarf an 'area' header line.
db.c: * Snarf a help section.
db.c: * Snarf a mob section. old style
db.c: * Snarf an obj section. old style
db.c: * Snarf a reset section.
db.c: * Snarf a room section.
db.c: * Snarf a shop section.
db.c: * Snarf spec proc declarations.
The Log on the first line should say Force: Ephram has 0.
The 'Imperial Army) [Roleplaying]' should be a + sign.
Something is being weird ever since C++ conversion. I was told to snarf my values on the function above and it fixed it, but I was also told sprintf is supposed to do that itself. Is there another function I can pass everything through to fix this problem or something where garbage is being left over in my bufs?