Modified ExtractFilePath, ExtractFileName, ExtractFileBase, ExtractFileExtension, strcpy -> Q_strncpyz

This commit is contained in:
Pan7 2015-09-08 03:09:48 +02:00
parent 6e1dd532c4
commit 9c76371876
108 changed files with 701 additions and 671 deletions

View file

@ -313,8 +313,8 @@ bool DBobView::CalculateTrajectory( vec3_t start, vec3_t apex, float multiplier,
}
void DBobView::Begin( const char* trigger, const char *target, float multiplier, int points, float varGravity, bool bNoUpdate, bool bShowExtra ){
strcpy( entTrigger, trigger );
strcpy( entTarget, target );
Q_strncpyz( entTrigger, trigger, sizeof( entTrigger ) );
Q_strncpyz( entTarget, target, sizeof( entTarget ) );
fMultiplier = multiplier;
fVarGravity = varGravity;

View file

@ -727,7 +727,7 @@ bool DBrush::ResetTextures( const char* textureName, float fScale[2], float f
{
if ( !strcmp( ( *resetPlane )->texInfo.m_TextureName, textureName ) ) {
if ( bResetTextureName ) {
strcpy( ( *resetPlane )->texInfo.m_TextureName, newTextureName );
Q_strncpyz( ( *resetPlane )->texInfo.m_TextureName, newTextureName, sizeof( ( *resetPlane )->texInfo.m_TextureName ) );
}
if ( bResetScale[0] ) {
@ -758,7 +758,7 @@ bool DBrush::ResetTextures( const char* textureName, float fScale[2], float f
for ( list<DPlane *>::const_iterator resetPlane = faceList.begin(); resetPlane != faceList.end(); resetPlane++ )
{
if ( bResetTextureName ) {
strcpy( ( *resetPlane )->texInfo.m_TextureName, newTextureName );
Q_strncpyz( ( *resetPlane )->texInfo.m_TextureName, newTextureName, sizeof( ( *resetPlane )->texInfo.m_TextureName ) );
}
if ( bResetScale[0] ) {

View file

@ -120,7 +120,7 @@ char* getNextBracket( char* s ){
bool DEntity::LoadFromPrt( char *filename ){
CPortals portals;
strcpy( portals.fn, filename );
Q_strncpyz( portals.fn, filename, sizeof( portals.fn ) );
portals.Load();
if ( portals.node_count == 0 ) {

View file

@ -48,7 +48,7 @@ DPatch::~DPatch(){
}
void DPatch::SetTexture( const char *textureName ){
strcpy( texture, textureName );
Q_strncpyz( texture, textureName, sizeof( texture ) );
}
void CopyDrawVert( const drawVert_t* in, drawVert_t* out ){
@ -124,7 +124,7 @@ void DPatch::RemoveFromRadiant(){
bool DPatch::ResetTextures( const char *oldTextureName, const char *newTextureName ){
if ( !oldTextureName || !strcmp( texture, oldTextureName ) ) {
strcpy( texture, newTextureName );
Q_strncpyz( texture, newTextureName, sizeof( texture ) );
return TRUE;
}

View file

@ -367,7 +367,7 @@ bool DShape::BuildPit( vec3_t min, vec3_t max ){
int team = ( rand() % 10000 ) + 5000;
// ************* SPEAKER ***************
sprintf( buffer, "t%i_1", team );
snprintf( buffer, sizeof( buffer ), "t%i_1", team );
// trigger for speaker
vec3_t triggerVoiceBtm;
@ -388,7 +388,7 @@ bool DShape::BuildPit( vec3_t min, vec3_t max ){
DEntity* targetVoice = m_Container.AddEntity( "target_speaker" );
targetVoice->AddEPair( "targetname", buffer );
sprintf( buffer, "%f %f %f", voiceOrigin[0], voiceOrigin[1], voiceOrigin[2] );
snprintf( buffer, sizeof( buffer ), "%f %f %f", voiceOrigin[0], voiceOrigin[1], voiceOrigin[2] );
targetVoice->AddEPair( "origin", buffer );
targetVoice->AddEPair( "spawnflags", "8" );
targetVoice->AddEPair( "noise", "*falling1.wav" );
@ -397,7 +397,7 @@ bool DShape::BuildPit( vec3_t min, vec3_t max ){
// *********** END SPEAKER *************
// ********* POWERUP REMOVAL ***********
sprintf( buffer, "t%i_2", team );
snprintf( buffer, sizeof( buffer ), "t%i_2", team );
// trigger for powerup removal
vec3_t triggerPwrRmvTop, triggerPwrRmvBtm;
@ -420,7 +420,7 @@ bool DShape::BuildPit( vec3_t min, vec3_t max ){
DEntity* targetPwrRmv = m_Container.AddEntity( "target_remove_powerups" );
targetPwrRmv->AddEPair( "targetname", buffer );
sprintf( buffer, "%f %f %f", pwrRmvOrigin[0], pwrRmvOrigin[1], pwrRmvOrigin[2] );
snprintf( buffer, sizeof( buffer ), "%f %f %f", pwrRmvOrigin[0], pwrRmvOrigin[1], pwrRmvOrigin[2] );
targetPwrRmv->AddEPair( "origin", buffer );
//--------------------

View file

@ -236,7 +236,7 @@ void DTrainDrawer::BuildPaths() {
for ( int j = 2;; j++ ) {
char buffer[32];
sprintf( buffer, "control%i", j );
snprintf( buffer, sizeof( buffer ), "control%i", j );
e.SpawnString( buffer, NULL, &control );
if ( !control ) {

View file

@ -47,7 +47,7 @@ bool DTreePlanter::OnLButtonDown( guint32 nFlags, gdouble x, gdouble y ) {
char buffer[128];
DEntity e( m_entType );
sprintf( buffer, "%i %i %i", (int)vhit[0], (int)vhit[1], (int)vhit[2] );
snprintf( buffer, sizeof( buffer ), "%i %i %i", (int)vhit[0], (int)vhit[1], (int)vhit[2] );
e.AddEPair( "origin", buffer );
if ( m_autoLink ) {
@ -56,7 +56,7 @@ bool DTreePlanter::OnLButtonDown( guint32 nFlags, gdouble x, gdouble y ) {
int entNum = -1, lastEntNum = -1, entpos;
for ( int i = 0; i < 256; i++ ) {
sprintf( buffer, m_linkName, i );
snprintf( buffer, sizeof( buffer ), m_linkName, i );
pThisEntity = FindEntityFromTargetname( buffer, &entNum );
if ( pThisEntity ) {
@ -67,10 +67,10 @@ bool DTreePlanter::OnLButtonDown( guint32 nFlags, gdouble x, gdouble y ) {
}
if ( !pLastEntity ) {
sprintf( buffer, m_linkName, 0 );
snprintf( buffer, sizeof( buffer ), m_linkName, 0 );
}
else {
sprintf( buffer, m_linkName, entpos + 1 );
snprintf( buffer, sizeof( buffer ), m_linkName, entpos + 1 );
}
e.AddEPair( "targetname", buffer );
@ -88,7 +88,7 @@ bool DTreePlanter::OnLButtonDown( guint32 nFlags, gdouble x, gdouble y ) {
int angleYaw = ( rand() % ( m_maxYaw - m_minYaw + 1 ) ) + m_minYaw;
int anglePitch = ( rand() % ( m_maxPitch - m_minPitch + 1 ) ) + m_minPitch;
sprintf( buffer, "%i %i 0", anglePitch, angleYaw );
snprintf( buffer, sizeof( buffer ), "%i %i 0", anglePitch, angleYaw );
e.AddEPair( "angles", buffer );
}
@ -100,7 +100,7 @@ bool DTreePlanter::OnLButtonDown( guint32 nFlags, gdouble x, gdouble y ) {
if ( m_useScale ) {
float scale = ( ( ( rand() % 1000 ) * 0.001f ) * ( m_maxScale - m_minScale ) ) + m_minScale;
sprintf( buffer, "%f", scale );
snprintf( buffer, sizeof( buffer ), "%f", scale );
e.AddEPair( "modelscale", buffer );
}
@ -205,7 +205,7 @@ void DTreePlanter::DropEntsToGround( void ) {
FindDropPoint( vec, out );
char buffer[256];
sprintf( buffer, "%f %f %f", out[0], out[1], out[2] );
snprintf( buffer, sizeof( buffer ), "%f %f %f", out[0], out[1], out[2] );
ent.AddEPair( "origin", buffer );
ent.RemoveFromRadiant();
ent.BuildInRadiant( FALSE );
@ -221,17 +221,17 @@ void DTreePlanter::MakeChain( void ) {
for ( i = 0; i < m_linkNum; i++ ) {
DEntity e( "info_train_spline_main" );
sprintf( buffer, "%s_pt%i", m_linkName, i );
snprintf( buffer, sizeof( buffer ), "%s_pt%i", m_linkName, i );
e.AddEPair( "targetname", buffer );
sprintf( buffer, "0 %i 0", i * 64 );
snprintf( buffer, sizeof( buffer ), "0 %i 0", i * 64 );
e.AddEPair( "origin", buffer );
if ( i != m_linkNum - 1 ) {
sprintf( buffer, "%s_pt%i", m_linkName, i + 1 );
snprintf( buffer, sizeof( buffer ), "%s_pt%i", m_linkName, i + 1 );
e.AddEPair( "target", buffer );
sprintf( buffer, "%s_ctl%i", m_linkName, i );
snprintf( buffer, sizeof( buffer ), "%s_ctl%i", m_linkName, i );
e.AddEPair( "control", buffer );
}
@ -241,10 +241,10 @@ void DTreePlanter::MakeChain( void ) {
for ( i = 0; i < m_linkNum - 1; i++ ) {
DEntity e( "info_train_spline_control" );
sprintf( buffer, "%s_ctl%i", m_linkName, i );
snprintf( buffer, sizeof( buffer ), "%s_ctl%i", m_linkName, i );
e.AddEPair( "targetname", buffer );
sprintf( buffer, "0 %i 0", ( i * 64 ) + 32 );
snprintf( buffer, sizeof( buffer ), "0 %i 0", ( i * 64 ) + 32 );
e.AddEPair( "origin", buffer );
e.BuildInRadiant( FALSE );

View file

@ -132,7 +132,7 @@ bool ValidateTextFloat( const char* pData, const char* error_title, float* value
bool ValidateTextFloatRange( const char* pData, float min, float max, const char* error_title, float* value ){
char error_buffer[256];
sprintf( error_buffer, "Please Enter A Floating Point Number Between %.3f and %.3f", min, max );
snprintf( error_buffer, sizeof( error_buffer ), "Please Enter A Floating Point Number Between %.3f and %.3f", min, max );
if ( pData ) {
float testNum = (float)atof( pData );
@ -757,8 +757,8 @@ int DoBuildStairsBox( BuildStairsRS* rs ){
if ( ret == IDOK ) {
rs->bUseDetail = gtk_toggle_button_get_active( (GtkToggleButton*)checkUseDetail ) ? true : false;
strcpy( rs->riserTexture, gtk_entry_get_text( (GtkEntry*)textRiserTex ) );
strcpy( rs->mainTexture, gtk_entry_get_text( (GtkEntry*)textMainTex ) );
Q_strncpyz( rs->riserTexture, gtk_entry_get_text( (GtkEntry*)textRiserTex ), sizeof( rs->riserTexture ) );
Q_strncpyz( rs->mainTexture, gtk_entry_get_text( (GtkEntry*)textMainTex ), sizeof( rs->mainTexture ) );
if ( gtk_toggle_button_get_active( (GtkToggleButton*)radioNorth ) ) {
rs->direction = MOVE_NORTH;
@ -1005,8 +1005,8 @@ int DoDoorsBox( DoorRS* rs ){
while ( loop )
gtk_main_iteration();
strcpy( rs->mainTexture, gtk_entry_get_text( GTK_ENTRY( textFrontBackTex ) ) );
strcpy( rs->trimTexture, gtk_entry_get_text( GTK_ENTRY( textTrimTex ) ) );
Q_strncpyz( rs->mainTexture, gtk_entry_get_text( GTK_ENTRY( textFrontBackTex ) ), sizeof( rs->mainTexture ) );
Q_strncpyz( rs->trimTexture, gtk_entry_get_text( GTK_ENTRY( textTrimTex ) ), sizeof( rs->trimTexture ) );
rs->bScaleMainH = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( checkScaleMainH ) ) ? true : false;
rs->bScaleMainV = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( checkScaleMainV ) ) ? true : false;
@ -1574,8 +1574,8 @@ int DoResetTextureBox( ResetTextureRS* rs ){
rs->bResetTextureName = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbTexChange ) );
if ( rs->bResetTextureName ) {
strcpy( rs->textureName, gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editTexOld ) ) );
strcpy( rs->newTextureName, gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editTexNew ) ) );
Q_strncpyz( rs->textureName, gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editTexOld ) ), sizeof( rs->textureName ) );
Q_strncpyz( rs->newTextureName, gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editTexNew ) ), sizeof( rs->newTextureName ) );
}
}
}

View file

@ -186,7 +186,7 @@ void DoResetTextures(){
else
{
texName = GetCurrentTexture();
strcpy( rs.textureName, GetCurrentTexture() );
Q_strncpyz( rs.textureName, GetCurrentTexture(), sizeof( rs.textureName ) );
}
int ret;
@ -216,7 +216,7 @@ void DoResetTextures(){
void DoBuildStairs( vec3_t vMin, vec3_t vMax ){
BuildStairsRS rs;
strcpy( rs.mainTexture, GetCurrentTexture() );
Q_strncpyz( rs.mainTexture, GetCurrentTexture(), sizeof( rs.mainTexture ) );
// ensure we have something selected
if ( g_FuncTable.m_pfnSelectedBrushCount() != 1 ) {
@ -319,7 +319,7 @@ void DoBuildDoors( vec3_t vMin, vec3_t vMax ){
// cant release until we delete the brush, if we do...
DoorRS rs;
strcpy( rs.mainTexture, GetCurrentTexture() );
Q_strncpyz( rs.mainTexture, GetCurrentTexture(), sizeof( rs.mainTexture ) );
if ( DoDoorsBox( &rs ) == IDOK ) {
g_FuncTable.m_pfnDeleteBrushHandle( brush );
@ -554,7 +554,7 @@ void DoVisAnalyse(){
return;
}
strcpy( filename, rad_filename );
Q_strncpyz( filename, rad_filename, sizeof( filename ) );
char* ext = strrchr( filename, '.' ) + 1;
strcpy( ext, "bsp" ); // rename the extension

View file

@ -39,7 +39,7 @@ char g_CurrentTexture[256] = "";
void ReadCurrentTexture(){
const char* textureName = g_FuncTable.m_pfnGetCurrentTexture();
strcpy( g_CurrentTexture, textureName );
Q_strncpyz( g_CurrentTexture, textureName, sizeof( g_CurrentTexture ) );
}
const char* GetCurrentTexture(){
@ -354,7 +354,7 @@ void FillDefaultTexture( _QERFaceData* faceData, vec3_t va, vec3_t vb, vec3_t vc
faceData->m_nFlags = 0;
faceData->m_nValue = 0;
if ( *texture ) {
strcpy( faceData->m_TextureName, texture );
Q_strncpyz( faceData->m_TextureName, texture, sizeof( faceData->m_TextureName ) );
}
else{
strcpy( faceData->m_TextureName, "textures/common/caulk" );

View file

@ -574,7 +574,7 @@ void BuildDoorsX2( vec3_t min, vec3_t max,
srand( (unsigned)time( NULL ) );
char teamname[256];
sprintf( teamname, "t%i", rand() );
snprintf( teamname, sizeof( teamname ), "t%i", rand() );
/*epair_t* epDoor13 = */ GetNextChainItem( epDoor12, "team", teamname );
/*epair_t* epDoor23 = */ GetNextChainItem( epDoor22, "team", teamname );

View file

@ -194,10 +194,10 @@ static gint ci_apply( GtkWidget *widget, gpointer data ){
GetCurrentCam()->GetCam()->buildCamera();
}
sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getBaseTime() );
snprintf( buf, sizeof( buf ), "%.2f", GetCurrentCam()->GetCam()->getBaseTime() );
gtk_entry_set_text( GTK_ENTRY( g_pSecondsEntry ), buf );
sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getTotalTime() );
snprintf( buf, sizeof( buf ), "%.2f", GetCurrentCam()->GetCam()->getTotalTime() );
gtk_label_set_text( g_pCurrentTime, "0.00" );
gtk_label_set_text( g_pTotalTime, buf );
@ -326,7 +326,7 @@ static void RefreshEventList( void ){
}
// Total duration might have changed
sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getTotalTime() );
snprintf( buf, sizeof( buf ), "%.2f", GetCurrentCam()->GetCam()->getTotalTime() );
gtk_label_set_text( g_pCurrentTime, "0.00" );
gtk_label_set_text( g_pTotalTime, buf );
@ -462,7 +462,7 @@ static void ci_add_target( GtkButton *button, gpointer data ){
gtk_box_pack_start( GTK_BOX( hbox ), name, TRUE, TRUE, 0 );
gtk_widget_show( name );
sprintf( buf, "target%i", GetCurrentCam()->GetCam()->numTargets() + 1 );
snprintf( buf, sizeof( buf ), "target%i", GetCurrentCam()->GetCam()->numTargets() + 1 );
gtk_entry_set_text( GTK_ENTRY( name ), buf );
// -------------------------- //
@ -650,10 +650,10 @@ static gint ci_camlist_changed( GtkWidget *widget, gpointer data ){
gtk_label_set_text( g_pCamType, GetCurrentCam()->GetCam()->getPositionObj()->typeStr() );
// Set duration
sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getBaseTime() );
snprintf( buf, sizeof( buf ), "%.2f", GetCurrentCam()->GetCam()->getBaseTime() );
gtk_entry_set_text( GTK_ENTRY( g_pSecondsEntry ), buf );
sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getTotalTime() );
snprintf( buf, sizeof( buf ), "%.2f", GetCurrentCam()->GetCam()->getTotalTime() );
gtk_label_set_text( g_pCurrentTime, "0.00" );
gtk_label_set_text( g_pTotalTime, buf );
@ -885,7 +885,7 @@ static gint ci_del( GtkWidget *widget, gpointer data ){
static gint ci_timeline_changed( GtkAdjustment *adjustment ){
char buf[128];
sprintf( buf, "%.2f", gtk_adjustment_get_value( adjustment ) / 1000.f );
snprintf( buf, sizeof( buf ), "%.2f", gtk_adjustment_get_value( adjustment ) / 1000.f );
gtk_label_set_text( g_pCurrentTime, buf );
// FIXME: this will never work completely perfect. Startcamera calls buildcamera, which sets all events to 'nottriggered'.

View file

@ -41,13 +41,13 @@ static void DoNewCamera( idCameraPosition::positionType type ){
if ( cam ) {
char buf[128];
sprintf( buf, "camera%i", cam->GetCamNum() );
snprintf( buf, sizeof( buf ), "camera%i", cam->GetCamNum() );
cam->GetCam()->startNewCamera( type );
cam->GetCam()->setName( buf );
cam->GetCam()->buildCamera();
sprintf( buf, "Unsaved Camera %i", cam->GetCamNum() );
snprintf( buf, sizeof( buf ), "Unsaved Camera %i", cam->GetCamNum() );
cam->SetFileName( buf, false );
SetCurrentCam( cam );

View file

@ -1015,8 +1015,8 @@ void MakeBrushes( int NumTris, NODE *Node, TRI *Tri,bool surf,
for ( j = 0; j < 5; j++ )
{
strcpy( brush.face[j].texture,
( strlen( texture1 ) ? texture1 : texture0 ) );
Q_strncpyz( brush.face[j].texture,
( strlen( texture1 ) ? texture1 : texture0 ), sizeof( brush.face[j].texture ) );
brush.face[j].Shift[0] = (float)TexOffset[0];
brush.face[j].Shift[1] = (float)TexOffset[1];
brush.face[j].Rotate = 0.;
@ -1038,14 +1038,14 @@ void MakeBrushes( int NumTris, NODE *Node, TRI *Tri,bool surf,
CrossProduct( t[0],t[1],SurfNormal );
VectorNormalize( SurfNormal,SurfNormal );
if ( DotProduct( SurfNormal,PlaneNormal ) < Steep ) {
strcpy( brush.face[0].texture,texture2 );
Q_strncpyz( brush.face[0].texture, texture2, sizeof( brush.face[0].texture ) );
}
else{
strcpy( brush.face[0].texture,texture0 );
Q_strncpyz( brush.face[0].texture, texture0, sizeof( brush.face[0].texture ) );
}
}
else{
strcpy( brush.face[0].texture,texture0 );
Q_strncpyz( brush.face[0].texture, texture0, sizeof( brush.face[0].texture ) );
}
if ( surf ) {
@ -1364,7 +1364,7 @@ void MapOut( int NumNodes,int NumTris, NODE *Node, TRI *Tri ){
} // switch (Plane)
for ( face = 0; face < 6; face++ )
{
strcpy( brush.face[face].texture,( face <= 1 ? skip : hint ) );
Q_strncpyz( brush.face[face].texture,( face <= 1 ? skip : hint ), sizeof( brush.face[face].texture ) );
brush.face[face].Shift[0] = 0;
brush.face[face].Shift[1] = 0;
brush.face[face].Rotate = 0.;

View file

@ -359,7 +359,7 @@ void UseFaceBounds(){
BestDot = Dot;
BestFace = i;
if ( strlen( QERFaceData->m_TextureName ) ) {
strcpy( Texture[Game][0],QERFaceData->m_TextureName );
Q_strncpyz( Texture[Game][0], QERFaceData->m_TextureName, sizeof( Texture[Game][0] ) );
}
}
}
@ -370,8 +370,8 @@ void UseFaceBounds(){
}
QERFaceData = g_FuncTable.m_pfnGetFaceData( vp,i );
if ( strlen( QERFaceData->m_TextureName ) ) {
if ( strcmp( Texture[Game][0],QERFaceData->m_TextureName ) ) {
strcpy( Texture[Game][1],QERFaceData->m_TextureName );
if ( strcmp( Texture[Game][0], QERFaceData->m_TextureName ) ) {
Q_strncpyz( Texture[Game][1], QERFaceData->m_TextureName, sizeof( Texture[Game][1] ) );
}
}
}

View file

@ -726,14 +726,14 @@ static void main_go( GtkWidget *widget, gpointer data ){
ReadDlgValues( current_tab );
if ( NH < 1 || NH > MAX_ROWS ) {
sprintf( Text, _( "The number of divisions must be > 0 and no greater than %d." ), MAX_ROWS );
snprintf( Text, sizeof( Text ), _( "The number of divisions must be > 0 and no greater than %d." ), MAX_ROWS );
g_FuncTable.m_pfnMessageBox( g_pWnd, Text, "GenSurf", MB_ICONEXCLAMATION, NULL );
gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
return;
}
if ( NV < 1 || NV > MAX_ROWS ) {
sprintf( Text, _( "The number of divisions must be > 0 and no greater than %d." ), MAX_ROWS );
snprintf( Text, sizeof( Text ), _( "The number of divisions must be > 0 and no greater than %d." ), MAX_ROWS );
g_FuncTable.m_pfnMessageBox( g_pWnd, Text, "GenSurf", MB_ICONEXCLAMATION, NULL );
gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
return;
@ -882,9 +882,9 @@ static void extents_snaptogrid_spin( GtkAdjustment *adj, int *data ){
static gint bitmap_file_entryfocusout( GtkWidget* widget, GdkEventFocus* event, gpointer data ){
char filename[NAME_MAX];
strcpy( filename, gtk_entry_get_text( GTK_ENTRY( widget ) ) );
Q_strncpyz( filename, gtk_entry_get_text( GTK_ENTRY( widget ) ), sizeof( filename ) );
if ( strcmp( filename,gbmp.name ) ) {
strcpy( gbmp.name,filename );
Q_strncpyz( gbmp.name, filename, sizeof( gbmp.name ) );
if ( strlen( gbmp.name ) ) {
OpenBitmap();
}
@ -900,12 +900,12 @@ static void bitmap_browse( GtkWidget *widget, gpointer data ){
filename = g_FuncTable.m_pfnFileDialog( g_pWnd, TRUE, "Bitmap File", gbmp.defpath, "gtkgensurf", NULL );
if ( filename != NULL ) {
strcpy( gbmp.name, filename );
Q_strncpyz( gbmp.name, filename, sizeof( gbmp.name ) );
ptr = (char *) strrchr( filename, G_DIR_SEPARATOR );
if ( ptr != NULL ) {
*( ptr + 1 ) = '\0';
strcpy( gbmp.defpath, filename );
Q_strncpyz( gbmp.defpath, filename, sizeof( gbmp.defpath ) );
}
OpenBitmap();
@ -914,7 +914,7 @@ static void bitmap_browse( GtkWidget *widget, gpointer data ){
}
static void bitmap_reload( GtkWidget *widget, gpointer data ){
strcpy( gbmp.name, gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_file" ) ) ) );
Q_strncpyz( gbmp.name, gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_file" ) ) ), sizeof( gbmp.name ) );
if ( strlen( gbmp.name ) ) {
OpenBitmap();
ENABLE_WIDGET( "go", ( gbmp.colors != NULL ? TRUE : FALSE ) );
@ -935,7 +935,7 @@ static gint fix_value_entryfocusout( GtkWidget* widget, GdkEventFocus *event, gp
gdk_beep();
g_FuncTable.m_pfnMessageBox( g_pWnd, "The value must be between -65536 and 65536, inclusive.",
"GenSurf", MB_OK | MB_ICONEXCLAMATION, NULL );
sprintf( Text, "%d", (int)xyz[Vertex[0].i][Vertex[0].j].fixed_value );
snprintf( Text, sizeof( Text ), "%d", (int)xyz[Vertex[0].i][Vertex[0].j].fixed_value );
gtk_entry_set_text( GTK_ENTRY( widget ), Text );
gtk_window_set_focus( GTK_WINDOW( gtk_widget_get_toplevel( widget ) ), widget );
}
@ -1031,7 +1031,7 @@ void vertex_selected(){
gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "fix_value" ) ),
(int)xyz[Vertex[0].i][Vertex[0].j].fixed_value );
sprintf( Text, "%d", (int)xyz[Vertex[0].i][Vertex[0].j].range );
snprintf( Text, sizeof( Text ), "%d", (int)xyz[Vertex[0].i][Vertex[0].j].range );
gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "fix_range" ) ), Text );
snprintf( Text, sizeof( Text ), "%.5g", xyz[Vertex[0].i][Vertex[0].j].rate );
gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "fix_rate" ) ), Text );
@ -1070,7 +1070,7 @@ static void texture_terrainent( GtkToggleButton *check, gpointer data ){
}
static void texture_set( int index, const char* name ){
strcpy( Texture[Game][index], name );
Q_strncpyz( Texture[Game][index], name, sizeof( Texture[Game][index] ) );
}
static gint texture_entryfocusout( GtkWidget* widget, GdkEventFocus* event, gpointer data ){
@ -2132,8 +2132,8 @@ qboolean CALLBACK AboutDlgProc( HWND hwnd, unsigned msg, UINT wparam, LONG lpara
switch ( msg ) {
case WM_INITDIALOG:
strcpy( szText,"About " );
strcat( szText,gszCaption );
Q_strncpyz( szText, "About ", sizeof( szText ) );
strncat( szText, gszCaption, sizeof( szText ) );
SetWindowText( hwnd,gszCaption );
SetDlgItemText( hwnd,DLG_ABOUT_APP,szText );
/* Application icon: */
@ -2217,7 +2217,7 @@ qboolean CALLBACK AboutDlgProc( HWND hwnd, unsigned msg, UINT wparam, LONG lpara
void About(){
if ( DialogBox( ghInst,"About", ghwnd_main, (DLGPROC)AboutDlgProc ) < 0 ) {
char Text[256];
sprintf( Text,"In About(), GetLastError()=0x%08x",GetLastError() );
snprintf( Text, sizeof( Text ),"In About(), GetLastError()=0x%08x",GetLastError() );
MessageBox( ghwnd_main,Text,"GenSurf",MB_ICONEXCLAMATION );
}
}

View file

@ -192,7 +192,7 @@ int MapPatches(){
NH_patch -= 2;
NH_remain -= ( NH_patch - 1 );
if ( NH_remain < 0 ) {
sprintf( szOops, "Oops... screwed up with NH=%d", NH );
snprintf( szOops, sizeof( szOops ), "Oops... screwed up with NH=%d", NH );
g_FuncTable.m_pfnMessageBox( NULL, szOops, "Uh oh", 0, NULL );
}
NV_remain = NV + 1;
@ -233,7 +233,7 @@ int MapPatches(){
NV_patch -= 2;
NV_remain -= ( NV_patch - 1 );
if ( NV_remain < 0 ) {
sprintf( szOops, "Oops... screwed up with NV=%d", NV );
snprintf( szOops, sizeof( szOops ), "Oops... screwed up with NV=%d", NV );
g_FuncTable.m_pfnMessageBox( NULL, szOops, "Uh oh", 0, NULL );
}
@ -287,9 +287,9 @@ void MapBrushes(){
BRUSH brush;
XYZ v[8];
strcpy( surftext,Texture[Game][0] );
strcpy( sidetext,( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
strcpy( surftext2,( strlen( Texture[Game][2] ) ? Texture[Game][2] : Texture[Game][0] ) );
Q_strncpyz( surftext, Texture[Game][0], sizeof( surftext ) );
Q_strncpyz( sidetext,( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( sidetext ) );
Q_strncpyz( surftext2,( strlen( Texture[Game][2] ) ? Texture[Game][2] : Texture[Game][0] ), sizeof( surftext2 ) );
// if surftext2 is identical to surftext, there's no need to
// check surface angle
@ -376,8 +376,8 @@ void MapBrushes(){
XYZtoV( &v[0],&brush.face[0].v[0] );
XYZtoV( &v[3],&brush.face[0].v[1] );
XYZtoV( &v[4],&brush.face[0].v[2] );
strcpy( brush.face[0].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
Q_strncpyz( brush.face[0].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( brush.face[0].texture ) );
brush.face[0].Shift[0] = (float)TexOffset[0];
brush.face[0].Shift[1] = (float)TexOffset[1];
brush.face[0].Rotate = 0.;
@ -390,8 +390,8 @@ void MapBrushes(){
XYZtoV( &v[1],&brush.face[1].v[0] );
XYZtoV( &v[4],&brush.face[1].v[1] );
XYZtoV( &v[5],&brush.face[1].v[2] );
strcpy( brush.face[1].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
Q_strncpyz( brush.face[1].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( brush.face[1].texture ) );
brush.face[1].Shift[0] = (float)TexOffset[0];
brush.face[1].Shift[1] = (float)TexOffset[1];
brush.face[1].Rotate = 0.;
@ -404,8 +404,8 @@ void MapBrushes(){
XYZtoV( &v[2],&brush.face[2].v[0] );
XYZtoV( &v[5],&brush.face[2].v[1] );
XYZtoV( &v[3],&brush.face[2].v[2] );
strcpy( brush.face[2].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
Q_strncpyz( brush.face[2].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( brush.face[2].texture ) );
brush.face[2].Shift[0] = (float)TexOffset[0];
brush.face[2].Shift[1] = (float)TexOffset[1];
brush.face[2].Rotate = 0.;
@ -426,21 +426,21 @@ void MapBrushes(){
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
XYZtoV( &v[3],&brush.face[3].v[0] );
XYZtoV( &v[5],&brush.face[3].v[1] );
XYZtoV( &v[4],&brush.face[3].v[2] );
strcpy( brush.face[3].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? surft : sidetext ) );
Q_strncpyz( brush.face[3].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? surft : sidetext ), sizeof( brush.face[3].texture ) );
brush.face[3].Shift[0] = (float)TexOffset[0];
brush.face[3].Shift[1] = (float)TexOffset[1];
brush.face[3].Rotate = 0.;
@ -461,21 +461,21 @@ void MapBrushes(){
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
XYZtoV( &v[0],&brush.face[4].v[0] );
XYZtoV( &v[1],&brush.face[4].v[1] );
XYZtoV( &v[2],&brush.face[4].v[2] );
strcpy( brush.face[4].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? sidetext : surft ) );
Q_strncpyz( brush.face[4].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? sidetext : surft ), sizeof( brush.face[4].texture ) );
brush.face[4].Shift[0] = (float)TexOffset[0];
brush.face[4].Shift[1] = (float)TexOffset[1];
brush.face[4].Rotate = 0.;
@ -544,8 +544,8 @@ void MapBrushes(){
XYZtoV( &v[0],&brush.face[0].v[0] );
XYZtoV( &v[3],&brush.face[0].v[1] );
XYZtoV( &v[4],&brush.face[0].v[2] );
strcpy( brush.face[0].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
Q_strncpyz( brush.face[0].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( brush.face[0].texture ) );
brush.face[0].Shift[0] = (float)TexOffset[0];
brush.face[0].Shift[1] = (float)TexOffset[1];
brush.face[0].Rotate = 0.;
@ -558,8 +558,8 @@ void MapBrushes(){
XYZtoV( &v[1],&brush.face[1].v[0] );
XYZtoV( &v[4],&brush.face[1].v[1] );
XYZtoV( &v[5],&brush.face[1].v[2] );
strcpy( brush.face[1].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
Q_strncpyz( brush.face[1].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( brush.face[1].texture ) );
brush.face[1].Shift[0] = (float)TexOffset[0];
brush.face[1].Shift[1] = (float)TexOffset[1];
brush.face[1].Rotate = 0.;
@ -572,8 +572,8 @@ void MapBrushes(){
XYZtoV( &v[2],&brush.face[2].v[0] );
XYZtoV( &v[5],&brush.face[2].v[1] );
XYZtoV( &v[3],&brush.face[2].v[2] );
strcpy( brush.face[2].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ) );
Q_strncpyz( brush.face[2].texture,
( strlen( Texture[Game][1] ) ? Texture[Game][1] : Texture[Game][0] ), sizeof( brush.face[2].texture ) );
brush.face[2].Shift[0] = (float)TexOffset[0];
brush.face[2].Shift[1] = (float)TexOffset[1];
brush.face[2].Rotate = 0.;
@ -594,20 +594,20 @@ void MapBrushes(){
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
XYZtoV( &v[3],&brush.face[3].v[0] );
XYZtoV( &v[5],&brush.face[3].v[1] );
XYZtoV( &v[4],&brush.face[3].v[2] );
strcpy( brush.face[3].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? surft : sidetext ) );
Q_strncpyz( brush.face[3].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? surft : sidetext ), sizeof( brush.face[3].texture ) );
brush.face[3].Shift[0] = (float)TexOffset[0];
brush.face[3].Shift[1] = (float)TexOffset[1];
brush.face[3].Rotate = 0.;
@ -623,25 +623,25 @@ void MapBrushes(){
CrossProduct( t[0],t[1],SurfNormal );
VectorNormalize( SurfNormal,SurfNormal );
if ( DotProduct( SurfNormal,PlaneNormal ) < Steep ) {
strcpy( surft,surftext2 );
Q_strncpyz( surft, surftext2, sizeof( surft ) );
surf = surface[2];
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
}
else
{
strcpy( surft,surftext );
Q_strncpyz( surft, surftext, sizeof( surft ) );
surf = surface[0];
}
XYZtoV( &v[0],&brush.face[4].v[0] );
XYZtoV( &v[1],&brush.face[4].v[1] );
XYZtoV( &v[2],&brush.face[4].v[2] );
strcpy( brush.face[4].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? sidetext : surft ) );
Q_strncpyz( brush.face[4].texture,
( Plane == PLANE_XZ0 || Plane == PLANE_XZ1 ? sidetext : surft ), sizeof( brush.face[4].texture ) );
brush.face[4].Shift[0] = (float)TexOffset[0];
brush.face[4].Shift[1] = (float)TexOffset[1];
brush.face[4].Rotate = 0.;
@ -806,7 +806,7 @@ void MapBrushes(){
XYZtoV( &v[0],&brush.face[0].v[0] );
XYZtoV( &v[1],&brush.face[0].v[1] );
XYZtoV( &v[2],&brush.face[0].v[2] );
strcpy( brush.face[0].texture,skip );
Q_strncpyz( brush.face[0].texture, skip, sizeof( brush.face[0].texture ) );
brush.face[0].Shift[0] = 0.;
brush.face[0].Shift[1] = 0.;
brush.face[0].Rotate = 0.;
@ -819,7 +819,7 @@ void MapBrushes(){
XYZtoV( &v[4],&brush.face[1].v[0] );
XYZtoV( &v[7],&brush.face[1].v[1] );
XYZtoV( &v[6],&brush.face[1].v[2] );
strcpy( brush.face[1].texture,skip );
Q_strncpyz( brush.face[1].texture, skip, sizeof( brush.face[1].texture ) );
brush.face[1].Shift[0] = 0.;
brush.face[1].Shift[1] = 0.;
brush.face[1].Rotate = 0.;
@ -832,7 +832,7 @@ void MapBrushes(){
XYZtoV( &v[0],&brush.face[2].v[0] );
XYZtoV( &v[4],&brush.face[2].v[1] );
XYZtoV( &v[5],&brush.face[2].v[2] );
strcpy( brush.face[2].texture,hint );
Q_strncpyz( brush.face[2].texture, hint, sizeof( brush.face[2].texture ) );
brush.face[2].Shift[0] = 0.;
brush.face[2].Shift[1] = 0.;
brush.face[2].Rotate = 0.;
@ -845,7 +845,7 @@ void MapBrushes(){
XYZtoV( &v[1],&brush.face[3].v[0] );
XYZtoV( &v[5],&brush.face[3].v[1] );
XYZtoV( &v[6],&brush.face[3].v[2] );
strcpy( brush.face[3].texture,hint );
Q_strncpyz( brush.face[3].texture, hint, sizeof( brush.face[3].texture ) );
brush.face[3].Shift[0] = 0.;
brush.face[3].Shift[1] = 0.;
brush.face[3].Rotate = 0.;
@ -858,7 +858,7 @@ void MapBrushes(){
XYZtoV( &v[2],&brush.face[4].v[0] );
XYZtoV( &v[6],&brush.face[4].v[1] );
XYZtoV( &v[7],&brush.face[4].v[2] );
strcpy( brush.face[4].texture,hint );
Q_strncpyz( brush.face[4].texture, hint, sizeof( brush.face[4].texture ) );
brush.face[4].Shift[0] = 0.;
brush.face[4].Shift[1] = 0.;
brush.face[4].Rotate = 0.;
@ -871,7 +871,7 @@ void MapBrushes(){
XYZtoV( &v[3],&brush.face[5].v[0] );
XYZtoV( &v[7],&brush.face[5].v[1] );
XYZtoV( &v[4],&brush.face[5].v[2] );
strcpy( brush.face[5].texture,hint );
Q_strncpyz( brush.face[5].texture, hint, sizeof( brush.face[5].texture ) );
brush.face[5].Shift[0] = 0.;
brush.face[5].Shift[1] = 0.;
brush.face[5].Rotate = 0.;
@ -892,7 +892,7 @@ void MapBrushes(){
brush.NumFaces = 5;
for ( i = 0; i < 6; i++ )
{
strcpy( brush.face[i].texture,hint );
Q_strncpyz( brush.face[i].texture, hint, sizeof( brush.face[i].texture ) );
brush.face[i].Shift[0] = 0.;
brush.face[i].Shift[1] = 0.;
brush.face[i].Rotate = 0.;
@ -2015,7 +2015,7 @@ void MakePatch( patchMesh_t *p ){
ret = g_FuncTable.m_pfnCreatePatchHandle();
// strcpy(shadername, "textures/");
// strcpy(shadername+9, Texture[Game][0]);
strcpy( shadername, Texture[Game][0] );
Q_strncpyz( shadername, Texture[Game][0], sizeof( shadername ) );
g_FuncTable.m_pfnCommitPatchHandleToMap( ret,p,shadername );
g_FuncTable.m_pfnReleasePatchHandles();
}
@ -2037,12 +2037,12 @@ void MakeBrush( BRUSH *brush ){
for ( i = 0; i < brush->NumFaces; i++ )
{
if ( !strncmp( brush->face[i].texture, "textures/", 9 ) ) {
strcpy( QERFaceData.m_TextureName,brush->face[i].texture );
Q_strncpyz( QERFaceData.m_TextureName, brush->face[i].texture, sizeof( QERFaceData.m_TextureName ) );
}
else
{
strcpy( QERFaceData.m_TextureName,"textures/" );
strcpy( QERFaceData.m_TextureName + 9,brush->face[i].texture );
strcpy( QERFaceData.m_TextureName, "textures/" );
Q_strncpyz( QERFaceData.m_TextureName + 9,brush->face[i].texture, sizeof( QERFaceData.m_TextureName ) - 9 );
}
QERFaceData.m_nContents = brush->face[i].Contents;
QERFaceData.m_nFlags = brush->face[i].Surface;

View file

@ -100,15 +100,15 @@ char GameName[NUMGAMES][16] = {"Quake2", "Half-Life", "SiN", "Heretic2", "Kingpi
bool GenSurfInit(){
strcpy( gszVersion, "1.05" );
strcpy( gszCaption, "GtkGenSurf" );
Q_strncpyz( gszVersion, "1.05", sizeof( gszVersion ) );
Q_strncpyz( gszCaption, "GtkGenSurf", sizeof( gszCaption ) );
if ( strlen( gszVersion ) ) {
strcat( gszCaption, " v" );
strcat( gszCaption, gszVersion );
strncat( gszCaption, " v", sizeof( gszCaption ) );
strncat( gszCaption, gszVersion, sizeof( gszCaption ) );
}
strcpy( gszIni, g_FuncTable.m_pfnProfileGetDirectory() );
strcat( gszIni, "gensurf.ini" );
Q_strncpyz( gszIni, g_FuncTable.m_pfnProfileGetDirectory(), sizeof( gszIni ) );
strncat( gszIni, "gensurf.ini", sizeof( gszIni ) );
/*if (g_FuncTable.m_pfnReadProjectKey != NULL)
{
@ -273,9 +273,9 @@ void ReadIniFile( const char *file ){
for ( i = 0; i < NUMGAMES; i++ )
{
// strcpy (gszOutputDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"OutputDir",""));
strcpy( Texture[i][0], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture", "" ) );
strcpy( Texture[i][1], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture2", "" ) );
strcpy( Texture[i][2], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture3", "" ) );
Q_strncpyz( Texture[i][0], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture", "" ), sizeof( Texture[i][0] ) );
Q_strncpyz( Texture[i][1], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture2", "" ), sizeof( Texture[i][1] ) );
Q_strncpyz( Texture[i][2], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture3", "" ), sizeof( Texture[i][2] ) );
// strcpy (gszTextureDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"TextureDir",""));
// UsePak[i] = GetPrivateProfileInt(GameName[i],"UsePak",0);
// strcpy (pakfile[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"PakFile",""));
@ -312,7 +312,7 @@ void ReadIniFile( const char *file ){
if ( !strlen( Texture[QUAKE3][1] ) ) {
strcpy( Texture[QUAKE3][1], "textures/common/caulk" );
}
strcpy( gbmp.name, g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","Filename","" ) );
Q_strncpyz( gbmp.name, g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","Filename","" ), sizeof( gbmp.name ) );
gbmp.colors = NULL;
@ -320,7 +320,7 @@ void ReadIniFile( const char *file ){
OpenBitmap();
}
strcpy( gbmp.defpath, g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","DefaultPath","" ) );
Q_strncpyz( gbmp.defpath, g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","DefaultPath","" ), sizeof( gbmp.defpath ) );
Text = g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","BlackValue","" );
if ( strlen( Text ) ) {
@ -428,16 +428,16 @@ void SaveSetup( GtkWidget *parent ){
WriteIniFile( name );
g_FuncTable.m_pfnProfileSaveString( name, OPTS_SECTION,"MapFile",gszMapFile );
sprintf( text,"0x%04x",FileAppend );
snprintf( text, sizeof( text ), "0x%04x", FileAppend );
g_FuncTable.m_pfnProfileSaveString( name, OPTS_SECTION,"Append",text );
sprintf( text,"0x%04x",Decimate );
snprintf( text, sizeof( text ), "0x%04x", Decimate );
g_FuncTable.m_pfnProfileSaveString( name, OPTS_SECTION,"Decimate",text );
for ( i = 0; i <= NH; i++ )
{
for ( j = 0; j <= NV; j++ )
{
if ( xyz[i][j].fixed ) {
sprintf( key, "I%dJ%d", i, j );
snprintf( key, sizeof( key ), "I%dJ%d", i, j );
snprintf( text, sizeof( text ), "%g %g %g", xyz[i][j].fixed_value, xyz[i][j].range, xyz[i][j].rate );
g_FuncTable.m_pfnProfileSaveString( name, "FixedPoints",key,text );
}
@ -469,7 +469,7 @@ void OpenSetup( GtkWidget *parent, int UseDefaults ){
{
for ( j = 0; j <= NV; j++ )
{
sprintf( key,"I%dJ%d",i,j );
snprintf( key, sizeof( key ), "I%dJ%d", i, j );
text = g_FuncTable.m_pfnProfileLoadString( name, "FixedPoints", key, "" );
if ( strlen( text ) ) {
xyz[i][j].fixed = 1;

View file

@ -313,6 +313,11 @@
#include "triangle.h"
#endif /* TRILIBRARY */
#ifndef Q_strncpyz
#define Q_strncpyz(_dst, _source, _len) do { strncpy((_dst), (_source), (_len) - 1); (_dst)[(_len) - 1] = 0; } while( 0 )
#endif
/* The following obscenity seems to be necessary to ensure that this program */
/* will port to Dec Alphas running OSF/1, because their stdio.h file commits */
/* the unpardonable sin of including stdlib.h. Hence, malloc(), free(), and */
@ -2857,8 +2862,7 @@ char **argv;
}
#ifndef TRILIBRARY
} else {
strncpy( innodefilename, argv[i], FILENAMESIZE - 1 );
innodefilename[FILENAMESIZE - 1] = '\0';
Q_strncpyz( innodefilename, argv[i], FILENAMESIZE );
}
#endif /* not TRILIBRARY */
}
@ -2907,11 +2911,11 @@ char **argv;
}
#ifndef TRILIBRARY
strcpy( inpolyfilename, innodefilename );
strcpy( inelefilename, innodefilename );
strcpy( areafilename, innodefilename );
Q_strncpyz( inpolyfilename, innodefilename, sizeof( inpolyfilename ) );
Q_strncpyz( inelefilename, innodefilename, sizeof( inelefilename ) );
Q_strncpyz( areafilename, innodefilename, sizeof( areafilename ) );
increment = 0;
strcpy( workstring, innodefilename );
Q_strncpyz( workstring, innodefilename, sizeof( workstring ) );
j = 1;
while ( workstring[j] != '\0' ) {
if ( ( workstring[j] == '.' ) && ( workstring[j + 1] != '\0' ) ) {
@ -2933,64 +2937,64 @@ char **argv;
} while ( workstring[j] != '\0' );
}
if ( noiterationnum ) {
strcpy( outnodefilename, innodefilename );
strcpy( outelefilename, innodefilename );
strcpy( edgefilename, innodefilename );
strcpy( vnodefilename, innodefilename );
strcpy( vedgefilename, innodefilename );
strcpy( neighborfilename, innodefilename );
strcpy( offfilename, innodefilename );
strcat( outnodefilename, ".node" );
strcat( outelefilename, ".ele" );
strcat( edgefilename, ".edge" );
strcat( vnodefilename, ".v.node" );
strcat( vedgefilename, ".v.edge" );
strcat( neighborfilename, ".neigh" );
strcat( offfilename, ".off" );
Q_strncpyz( outnodefilename, innodefilename, sizeof( outnodefilename ) );
Q_strncpyz( outelefilename, innodefilename, sizeof( outelefilename ) );
Q_strncpyz( edgefilename, innodefilename, sizeof( edgefilename ) );
Q_strncpyz( vnodefilename, innodefilename, sizeof( vnodefilename ) );
Q_strncpyz( vedgefilename, innodefilename, sizeof( vedgefilename ) );
Q_strncpyz( neighborfilename, innodefilename, sizeof( neighborfilename ) );
Q_strncpyz( offfilename, innodefilename, sizeof( offfilename ) );
strncat( outnodefilename, ".node", sizeof( outnodefilename ) );
strncat( outelefilename, ".ele", sizeof( outelefilename ) );
strncat( edgefilename, ".edge", sizeof( edgefilename ) );
strncat( vnodefilename, ".v.node", sizeof( vnodefilename ) );
strncat( vedgefilename, ".v.edge", sizeof( vedgefilename ) );
strncat( neighborfilename, ".neigh", sizeof( neighborfilename ) );
strncat( offfilename, ".off", sizeof( offfilename ) );
}
else if ( increment == 0 ) {
strcpy( outnodefilename, innodefilename );
strcpy( outpolyfilename, innodefilename );
strcpy( outelefilename, innodefilename );
strcpy( edgefilename, innodefilename );
strcpy( vnodefilename, innodefilename );
strcpy( vedgefilename, innodefilename );
strcpy( neighborfilename, innodefilename );
strcpy( offfilename, innodefilename );
strcat( outnodefilename, ".1.node" );
strcat( outpolyfilename, ".1.poly" );
strcat( outelefilename, ".1.ele" );
strcat( edgefilename, ".1.edge" );
strcat( vnodefilename, ".1.v.node" );
strcat( vedgefilename, ".1.v.edge" );
strcat( neighborfilename, ".1.neigh" );
strcat( offfilename, ".1.off" );
Q_strncpyz( outnodefilename, innodefilename, sizeof( outnodefilename ) );
Q_strncpyz( outpolyfilename, innodefilename, sizeof( outpolyfilename ) );
Q_strncpyz( outelefilename, innodefilename, sizeof( outelefilename ) );
Q_strncpyz( edgefilename, innodefilename, sizeof( edgefilename ) );
Q_strncpyz( vnodefilename, innodefilename, sizeof( vnodefilename ) );
Q_strncpyz( vedgefilename, innodefilename, sizeof( vedgefilename ) );
Q_strncpyz( neighborfilename, innodefilename, sizeof( neighborfilename ) );
Q_strncpyz( offfilename, innodefilename, sizeof( offfilename ) );
strncat( outnodefilename, ".1.node", sizeof( outnodefilename ) );
strncat( outpolyfilename, ".1.poly", sizeof( outpolyfilename ) );
strncat( outelefilename, ".1.ele", sizeof( outelefilename ) );
strncat( edgefilename, ".1.edge", sizeof( edgefilename ) );
strncat( vnodefilename, ".1.v.node", sizeof( vnodefilename ) );
strncat( vedgefilename, ".1.v.edge", sizeof( vedgefilename ) );
strncat( neighborfilename, ".1.neigh", sizeof( neighborfilename ) );
strncat( offfilename, ".1.off", sizeof( offfilename ) );
}
else {
workstring[increment] = '%';
workstring[increment + 1] = 'd';
workstring[increment + 2] = '\0';
sprintf( outnodefilename, workstring, meshnumber + 1 );
strcpy( outpolyfilename, outnodefilename );
strcpy( outelefilename, outnodefilename );
strcpy( edgefilename, outnodefilename );
strcpy( vnodefilename, outnodefilename );
strcpy( vedgefilename, outnodefilename );
strcpy( neighborfilename, outnodefilename );
strcpy( offfilename, outnodefilename );
strcat( outnodefilename, ".node" );
strcat( outpolyfilename, ".poly" );
strcat( outelefilename, ".ele" );
strcat( edgefilename, ".edge" );
strcat( vnodefilename, ".v.node" );
strcat( vedgefilename, ".v.edge" );
strcat( neighborfilename, ".neigh" );
strcat( offfilename, ".off" );
snprintf( outnodefilename, sizeof( outnodefilename ), workstring, meshnumber + 1 );
Q_strncpyz( outpolyfilename, outnodefilename, sizeof( outpolyfilename ) );
Q_strncpyz( outelefilename, outnodefilename, sizeof( outelefilename ) );
Q_strncpyz( edgefilename, outnodefilename, sizeof( edgefilename ) );
Q_strncpyz( vnodefilename, outnodefilename, sizeof( vnodefilename ) );
Q_strncpyz( vedgefilename, outnodefilename, sizeof( vedgefilename ) );
Q_strncpyz( neighborfilename, outnodefilename, sizeof( neighborfilename ) );
Q_strncpyz( offfilename, outnodefilename, sizeof( offfilename ) );
strncat( outnodefilename, ".node", sizeof( outnodefilename ) );
strncat( outpolyfilename, ".poly", sizeof( outpolyfilename ) );
strncat( outelefilename, ".ele", sizeof( outelefilename ) );
strncat( edgefilename, ".edge", sizeof( edgefilename ) );
strncat( vnodefilename, ".v.node", sizeof( vnodefilename ) );
strncat( vedgefilename, ".v.edge", sizeof( vedgefilename ) );
strncat( neighborfilename, ".neigh", sizeof( neighborfilename ) );
strncat( offfilename, ".off", sizeof( offfilename ) );
}
strcat( innodefilename, ".node" );
strcat( inpolyfilename, ".poly" );
strcat( inelefilename, ".ele" );
strcat( areafilename, ".area" );
strncat( innodefilename, ".node", sizeof( innodefilename ) );
strncat( inpolyfilename, ".poly", sizeof( inpolyfilename ) );
strncat( inelefilename, ".ele", sizeof( inelefilename ) );
strncat( areafilename, ".area", sizeof( areafilename ) );
#endif /* not TRILIBRARY */
}
@ -10046,7 +10050,7 @@ char *polyfilename;
printf( "Inserting segments into Delaunay triangulation.\n" );
}
#ifdef TRILIBRARY
strcpy( polyfilename, "input" );
Q_strncpyz( polyfilename, "input", sizeof( polyfilename ) );
segments = numberofsegments;
segmentmarkers = segmentmarkerlist != (int *) NULL;
index = 0;

View file

@ -322,14 +322,14 @@ static void motion( GtkWidget *widget, GdkEventMotion *event, gpointer data ){
{
case PLANE_XZ0:
case PLANE_XZ1:
sprintf( Text," x=%d, z=%d ",(int)( floor( x - 0.5 ) + 1. ),(int)( floor( y - 0.5 ) + 1. ) );
snprintf( Text, sizeof( Text ), " x=%d, z=%d ", (int)( floor( x - 0.5 ) + 1. ), (int)( floor( y - 0.5 ) + 1. ) );
break;
case PLANE_YZ0:
case PLANE_YZ1:
sprintf( Text," y=%d, z=%d ",(int)( floor( x - 0.5 ) + 1. ),(int)( floor( y - 0.5 ) + 1. ) );
snprintf( Text, sizeof( Text ), " y=%d, z=%d ", (int)( floor( x - 0.5 ) + 1. ), (int)( floor( y - 0.5 ) + 1. ) );
break;
default:
sprintf( Text," x=%d, y=%d ",(int)( floor( x - 0.5 ) + 1. ),(int)( floor( y - 0.5 ) + 1. ) );
snprintf( Text, sizeof( Text ), " x=%d, y=%d ", (int)( floor( x - 0.5 ) + 1. ), (int)( floor( y - 0.5 ) + 1. ) );
}
texfont_write( Text, rcCoord.left, rcCoord.top );

View file

@ -86,17 +86,17 @@ static int DoColor( GdkRGBA *color ){
}
static void Set2DText( GtkWidget* label ){
char s[40];
char s[64];
sprintf( s, "Line Width = %6.3f", portals.width_2d * 0.5f );
snprintf( s, sizeof( s ), "Line Width = %6.3f", portals.width_2d * 0.5f );
gtk_label_set_text( GTK_LABEL( label ), s );
}
static void Set3DText( GtkWidget* label ){
char s[40];
char s[64];
sprintf( s, "Line Width = %6.3f", portals.width_3d * 0.5f );
snprintf( s, sizeof( s ), "Line Width = %6.3f", portals.width_3d * 0.5f );
gtk_label_set_text( GTK_LABEL( label ), s );
}
@ -104,7 +104,7 @@ static void Set3DText( GtkWidget* label ){
static void Set3DTransText( GtkWidget* label ){
char s[40];
sprintf( s, "Polygon transparency = %d%%", (int)portals.trans_3d );
snprintf( s, sizeof( s ), "Polygon transparency = %d%%", (int)portals.trans_3d );
gtk_label_set_text( GTK_LABEL( label ), s );
}
@ -112,7 +112,7 @@ static void Set3DTransText( GtkWidget* label ){
static void SetClipText( GtkWidget* label ){
char s[40];
sprintf( s, "Cubic clip range = %d", (int)portals.clip_range * 64 );
snprintf( s, sizeof( s ), "Cubic clip range = %d", (int)portals.clip_range * 64 );
gtk_label_set_text( GTK_LABEL( label ), s );
}

View file

@ -65,10 +65,10 @@ void DefaultExtension( char *path, char *extension, size_t length );
void DefaultPath( char *path, const char *basepath, size_t length );
void StripFilename( char *path );
void StripExtension( char *path );
void ExtractFilePath( const char *path, char *dest );
void ExtractFileName( const char *path, char *dest );
void ExtractFileBase( const char *path, char *dest );
void ExtractFileExtension( const char *path, char *dest, size_t length );
void ExtractFilePath( const char *path, char *dest, size_t size );
void ExtractFileName( const char *path, char *dest, size_t size );
void ExtractFileBase( const char *path, char *dest, size_t size );
void ExtractFileExtension( const char *path, char *dest, size_t size );
/*!
\brief create all directories leading to a file path. if you pass a directory, terminate it with a '/'
*/

View file

@ -221,8 +221,9 @@ void StripExtension( char *path ){
Extract file parts
====================
*/
void ExtractFilePath( const char *path, char *dest ){
void ExtractFilePath( const char *path, char *dest, size_t size ){
const char *src;
size_t length;
src = path + strlen( path ) - 1;
@ -232,13 +233,20 @@ void ExtractFilePath( const char *path, char *dest ){
while ( src != path && *( src - 1 ) != '/' && *( src - 1 ) != '\\' )
src--;
memcpy( dest, path, src - path );
dest[src - path] = 0;
length = src - path;
if( length + 1 > size )
{
length = size - 1;
}
memcpy( dest, path, length );
dest[length] = 0;
}
void ExtractFileName( const char *path, char *dest ){
void ExtractFileName( const char *path, char *dest, size_t size ){
const char *src;
if( size <= 0 )
return;
src = path + strlen( path ) - 1;
//
@ -250,7 +258,13 @@ void ExtractFileName( const char *path, char *dest ){
while ( *src )
{
if( size == 1 )
{
*dest = 0;
return;
}
*dest++ = *src++;
size--;
}
*dest = 0;
}
@ -278,14 +292,18 @@ inline unsigned int filename_get_base_length( const char* filename ){
return ( last_period != NULL ) ? last_period - filename : strlen( filename );
}
void ExtractFileBase( const char *path, char *dest ){
void ExtractFileBase( const char *path, char *dest, size_t size ){
const char* filename = path_get_filename_start( path );
unsigned int length = filename_get_base_length( filename );
if( length > size )
{
length = size; - 1;
}
strncpy( dest, filename, length );
dest[length] = '\0';
}
void ExtractFileExtension( const char *path, char *dest, size_t length ){
void ExtractFileExtension( const char *path, char *dest, size_t size ){
const char *src;
src = path + strlen( path ) - 1;
@ -300,7 +318,7 @@ void ExtractFileExtension( const char *path, char *dest, size_t length ){
return;
}
Q_strncpyz( dest, src, length );
Q_strncpyz( dest, src, size );
}
@ -338,7 +356,7 @@ void CreateDirectoryPath( const char *path ) {
char *src;
char back;
ExtractFilePath( path, base );
ExtractFilePath( path, base, sizeof( base ) );
src = base + 1;
while ( 1 ) {

View file

@ -395,8 +395,7 @@ int lwResolvePolySurfaces( lwPolygonList *polygon, lwTagList *tlist,
if ( !s[ index ]->name ) {
return 0;
}
strncpy( s[ index ]->name, tlist->tag[ index ], sizeof( s[ index ]->name ) - 1 );
s[ index ]->name[sizeof( s[ index ]->name ) - 1] = 0;
strcpy( s[ index ]->name, tlist->tag[ index ] );
lwListAdd( (void **) surf, s[ index ] );
*nsurfs = *nsurfs + 1;
}

View file

@ -54,6 +54,12 @@ extern "C"
#include "picomodel.h"
#if defined(_MSC_VER) && _MSC_VER<1900 && !(defined snprintf)
#define snprintf _snprintf
#endif
#ifndef Q_strncpyz
#define Q_strncpyz(_dst, _source, _len) do { strncpy((_dst), (_source), (_len) - 1); (_dst)[(_len) - 1] = 0; } while( 0 )
#endif
/* os dependant replacements */
#if WIN32 || _WIN32

View file

@ -216,8 +216,7 @@ picoModel_t *PicoLoadModel( char *fileName, int frameNum ){
remapFileName = _pico_alloc( length );
if ( remapFileName != NULL ) {
/* copy model file name and change extension */
strncpy( remapFileName, modelFileName, length );
remapFileName[length - 1] = 0;
Q_strncpyz( remapFileName, modelFileName, length );
_pico_setfext( remapFileName, "remap", length );
/* try to remap model; we don't handle the result */
@ -511,7 +510,7 @@ picoSurface_t *PicoNewSurface( picoModel_t *model ){
surface->model = model;
/* set default name */
sprintf( surfaceName, "Unnamed_%d", model->numSurfaces );
snprintf( surfaceName, sizeof( surfaceName ), "Unnamed_%d", model->numSurfaces );
PicoSetSurfaceName( surface, surfaceName );
}

View file

@ -421,26 +421,23 @@ static int GetMeshShader( T3dsLoaderPers *pers ){
char *name;
/* copy map name to local buffer */
strncpy( mapName, mapNamePtr, sizeof( mapName ) - 1 );
mapName[sizeof( mapName ) - 1] = 0;
Q_strncpyz( mapName, mapNamePtr, sizeof( mapName ) );
/* extract file name */
name = _pico_nopath( mapName );
strncpy( temp, name, sizeof( temp ) - 1 );
temp[sizeof( temp ) - 1] = 0;
Q_strncpyz( temp, name, sizeof( temp ) );
/* remove file extension */
/* name = _pico_setfext( name,"" ); */
/* assign default name if no name available */
if ( strlen( temp ) < 1 ) {
strncpy( temp, pers->basename, sizeof( temp ) - 1 );
temp[sizeof( temp ) - 1] = 0;
Q_strncpyz( temp, pers->basename, sizeof( temp ) );
}
/* build shader name */
_pico_strlwr( temp ); /* gaynux update -sea */
sprintf( mapName,"models/mapobjects/%s/%s",pers->basename,temp );
snprintf( mapName, sizeof( mapName ), "models/mapobjects/%s/%s", pers->basename, temp );
/* set shader name */
/* PicoSetShaderName( shader,mapName ); */ /* ydnar: this will screw up the named shader */
@ -733,8 +730,7 @@ static picoModel_t *_3ds_load( PM_PARAMS_LOAD ){
return NULL;
}
/* get model's base name (eg. jeep from c:\models\jeep.3ds) */
strncpy( basename, _pico_nopath( fileName ), sizeof( basename ) - 1 );
basename[sizeof( basename ) - 1] = 0;
Q_strncpyz( basename, _pico_nopath( fileName ), sizeof( basename ) );
_pico_setfext( basename, "", sizeof( basename ) );
/* initialize persistant vars (formerly static) */

View file

@ -408,8 +408,7 @@ static picoModel_t *_ase_load( PM_PARAMS_LOAD ){
}
/* remember node name */
strncpy( lastNodeName, ptr, sizeof( lastNodeName ) - 1 );
lastNodeName[sizeof( lastNodeName ) - 1] = 0;
Q_strncpyz( lastNodeName, ptr, sizeof( lastNodeName ) );
}
/* model mesh (originally contained within geomobject) */
else if ( !_pico_stricmp( p->token, "*mesh" ) ) {
@ -802,7 +801,7 @@ static picoModel_t *_ase_load( PM_PARAMS_LOAD ){
_ase_error_return( "Missing material name" );
}
strncpy( materialName, name, sizeof( materialName ) - 1 );
Q_strncpyz( materialName, name, sizeof( materialName ) );
materialName[sizeof( materialName ) - 1] = 0;
/* skip rest and continue with next token */
_pico_parse_skip_rest( p );

View file

@ -350,8 +350,7 @@ static picoModel_t *_fm_load( PM_PARAMS_LOAD ){
texCoord->t = _pico_little_short( texCoord[i].t );
}
// set Skin Name
strncpy( skinname, (char *) fm.fm_skin, FM_SKINPATHSIZE - 1 );
skinname[FM_SKINPATHSIZE - 1] = 0;
Q_strncpyz( skinname, (char *) fm.fm_skin, FM_SKINPATHSIZE );
#ifdef FM_VERBOSE_DBG
// Print out md2 values

View file

@ -234,8 +234,7 @@ static picoModel_t *_lwo_load( PM_PARAMS_LOAD ){
}
/* detox and set shader name */
strncpy( name, surface->name, sizeof( name ) - 1 );
name[sizeof( name ) - 1] = 0;
Q_strncpyz( name, surface->name, sizeof( name ) );
_pico_setfext( name, "", sizeof( name ) );
_pico_unixify( name );
PicoSetShaderName( picoShader, name );

View file

@ -431,8 +431,7 @@ static picoModel_t *_md2_load( PM_PARAMS_LOAD ){
}
// set Skin Name
strncpy( skinname, (char *) ( bb + md2->ofsSkins ), MD2_MAX_SKINNAME - 1 );
skinname[MD2_MAX_SKINNAME - 1] = 0;
Q_strncpyz( skinname, (char *) ( bb + md2->ofsSkins ), MD2_MAX_SKINNAME );
// Print out md2 values
_pico_printf( PICO_VERBOSE,"Skins: %d Verts: %d STs: %d Triangles: %d Frames: %d\nSkin Name \"%s\"\n", md2->numSkins, md2->numXYZ, md2->numST, md2->numTris, md2->numFrames, skinname );
@ -440,8 +439,8 @@ static picoModel_t *_md2_load( PM_PARAMS_LOAD ){
// relative texture path - allows moving of models in game dir structure without changing the skinpath
// e.g. used in ufo:ai
if ( skinname[0] == '.' ) {
strncpy( path, fileName, MD2_MAX_SKINNAME - 1 );
path[MD2_MAX_SKINNAME - 1] = 0;
Q_strncpyz( path, fileName, MD2_MAX_SKINNAME );
for ( i = MD2_MAX_SKINNAME; i--; ) {
// skip filename
if ( path[i] == '/' || path[i] == '\\' ) {
@ -450,8 +449,7 @@ static picoModel_t *_md2_load( PM_PARAMS_LOAD ){
path[i] = '\0';
}
strncat( path, &skinname[1], MD2_MAX_SKINNAME );
strncpy( skinname, path, MD2_MAX_SKINNAME - 1 );
skinname[MD2_MAX_SKINNAME - 1] = 0;
Q_strncpyz( skinname, path, MD2_MAX_SKINNAME );
// Print out md2 values
_pico_printf( PICO_VERBOSE,"Relative skin path converted to: \"%s\" (%s)\n", skinname, fileName );

View file

@ -136,7 +136,7 @@ idVec3 LerpVector( idVec3 &w1, idVec3 &w2, const float t ) {
*/
char *idVec3::string( void ) {
static int index = 0;
static char str[ 8 ][ 36 ];
static char str[ 8 ][ 256 ];
char *s;
// use an array so that multiple toString's won't collide

View file

@ -553,8 +553,7 @@ bool idCameraDef::getCameraInfo( long time, idVec3 &origin, idVec3 &direction, f
//}
}
else if ( events[i]->getType() == idCameraEvent::EVENT_FOV ) {
strncpy( buff, events[i]->getParam(), sizeof( buff ) - 1 );
buff[sizeof( buff ) - 1] = 0;
Q_strncpyz( buff, events[i]->getParam(), sizeof( buff ) );
const char *param1 = strtok( buff, " \t,\0" );
const char *param2 = strtok( NULL, " \t,\0" );
float len = ( param2 ) ? atof( param2 ) : 0;
@ -574,8 +573,7 @@ bool idCameraDef::getCameraInfo( long time, idVec3 &origin, idVec3 &direction, f
}
else if ( events[i]->getType() == idCameraEvent::EVENT_CAMERA ) {
memset( buff, 0, sizeof( buff ) );
strncpy( buff, events[i]->getParam(), sizeof( buff ) - 1 );
buff[sizeof( buff ) - 1] = 0;
Q_strncpyz( buff, events[i]->getParam(), sizeof( buff ) );
const char *param1 = strtok( buff, " \t,\0" );
const char *param2 = strtok( NULL, " \t,\0" );

View file

@ -450,7 +450,7 @@ void EClass_ImportFromClass( eclass_t *e, GSList *l_classes, class_t *bc ){
// COLOR
if ( bc->gotcolor ) {
memcpy( e->color, bc->color, sizeof( vec3_t ) );
sprintf( color, "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
snprintf( color, sizeof( color ), "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
e->texdef.SetName( color );
}
@ -547,7 +547,7 @@ void EClass_ImportFromClass( eclass_t *e, GSList *l_classes, class_t *bc ){
e->color[1] = 0.5; // how about a nice bright pink, mmm, nice! :)
e->color[2] = 1;
sprintf( color, "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
snprintf( color, sizeof( color ), "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
e->texdef.SetName( color );
}
}
@ -1069,21 +1069,21 @@ void Eclass_ScanFile( char *filename ){
Sys_Printf( "%s", (char *)tmp->data );
}
if ( tmpclass->gotsize ) {
sprintf( temp,"(%.0f %.0f %.0f) - (%.0f %.0f %.0f)",tmpclass->boundingbox[0][0],
snprintf( temp, sizeof( temp ),"(%.0f %.0f %.0f) - (%.0f %.0f %.0f)",tmpclass->boundingbox[0][0],
tmpclass->boundingbox[0][1],
tmpclass->boundingbox[0][2],
tmpclass->boundingbox[1][0],
tmpclass->boundingbox[1][1],
tmpclass->boundingbox[1][2] );
}
else{ strcpy( temp,"No Size" ); }
else{ Q_strncpyz( temp, "No Size", sizeof( temp ) ); }
Sys_Printf( ") '%s' Size: %s",tmpclass->description ? tmpclass->description : "No description",temp );
if ( tmpclass->gotcolor ) {
sprintf( temp,"(%d %d %d)",tmpclass->color[0],
snprintf( temp, sizeof( temp ), "(%d %d %d)", tmpclass->color[0],
tmpclass->color[1],
tmpclass->color[2] );
}
else{ strcpy( temp,"No Color" ); }
else{ Q_strncpyz( temp, "No Color", sizeof( temp ) ); }
Sys_Printf( " Color: %s Options:\n",temp );
if ( !tmpclass->l_optionlist ) {
Sys_Printf( " No Options\n" );

View file

@ -30,7 +30,7 @@
#include "plugin.h"
// cmdlib
extern void ExtractFileName( const char *path, char *dest );
extern void ExtractFileName( const char *path, char *dest, size_t size );
extern int g_MapVersion;
int abortcode; // see imap.h for values.
@ -65,7 +65,7 @@ void BuildWadList( char *wadstr ){
g_WadList = NULL;
strcpy( wads,wadstr );
Q_strncpyz( wads, wadstr, sizeof( wads ) );
QE_ConvertDOSToUnixName( wads,wads );
// ok, we got the list of ; delimited wads, now split it into a GSList that contains
@ -81,7 +81,7 @@ void BuildWadList( char *wadstr ){
}
if ( strchr( p1,'/' ) || strchr( p1,'\\' ) ) {
ExtractFileName( p1,cleanwadname );
ExtractFileName( p1, cleanwadname, sizeof( cleanwadname ) );
trim( cleanwadname );
@ -202,7 +202,7 @@ void Patch_Parse( patchMesh_t *pPatch ){
GetToken( true );
str = new char[strlen( token ) + 10];
strcpy( str, "textures/" );
strcpy( str + 9, token );
Q_strncpyz( str + 9, token, sizeof( str ) - 9 );
pPatch->pShader = QERApp_Shader_ForName( str );
pPatch->d_texture = pPatch->pShader->getTexture();
delete [] str;
@ -568,7 +568,7 @@ void Entity_Parse( entity_t *pEntity ){
}
else {
strcpy( temptoken, token );
Q_strncpyz( temptoken, token, sizeof( temptoken ) );
GetToken( false );
SetKeyValue( pEntity, temptoken, token );

View file

@ -77,9 +77,9 @@ void Patch_XMLWrite( patchMesh_t *pPatch, xmlNodePtr surface ){
node = xmlNewChild( surface, NULL, (xmlChar *)"matrix", (xmlChar *)str );
delete [] str;
sprintf( buf, "%i", pPatch->width );
snprintf( buf, sizeof( buf ), "%i", pPatch->width );
xmlSetProp( node, (xmlChar *)"width", (xmlChar *)buf );
sprintf( buf, "%i", pPatch->height );
snprintf( buf, sizeof( buf ), "%i", pPatch->height );
xmlSetProp( node, (xmlChar *)"height", (xmlChar *)buf );
}
@ -108,15 +108,15 @@ void Face_XMLWrite( face_t *face, xmlNodePtr surface, bool bAlternateTexdef = fa
if ( !bAlternateTexdef ) {
// write texdef
sprintf( buf, "%i", (int)face->texdef.shift[0] );
snprintf( buf, sizeof( buf ), "%i", (int)face->texdef.shift[0] );
str = str_append_token( NULL, buf );
sprintf( buf, "%i", (int)face->texdef.shift[1] );
snprintf( buf, sizeof( buf ), "%i", (int)face->texdef.shift[1] );
str = str_append_token( str, buf );
sprintf( buf, "%i", (int)face->texdef.rotate );
snprintf( buf, sizeof( buf ), "%i", (int)face->texdef.rotate );
str = str_append_token( str, buf );
sprintf( buf, "%f", face->texdef.scale[0] );
snprintf( buf, sizeof( buf ), "%f", face->texdef.scale[0] );
str = str_append_token( str, buf );
sprintf( buf, "%f", face->texdef.scale[1] );
snprintf( buf, sizeof( buf ), "%f", face->texdef.scale[1] );
str = str_append_token( str, buf );
node = xmlNewChild( surface, NULL, (xmlChar *)"texdef", (xmlChar *)str );
@ -139,11 +139,11 @@ void Face_XMLWrite( face_t *face, xmlNodePtr surface, bool bAlternateTexdef = fa
}
// write flags
sprintf( buf, "%i", face->texdef.contents );
snprintf( buf, sizeof( buf ), "%i", face->texdef.contents );
str = str_append_token( NULL, buf );
sprintf( buf, "%i", face->texdef.flags );
snprintf( buf, sizeof( buf ), "%i", face->texdef.flags );
str = str_append_token( str, buf );
sprintf( buf, "%i", face->texdef.value );
snprintf( buf, sizeof( buf ), "%i", face->texdef.value );
str = str_append_token( str, buf );
node = xmlNewChild( surface, NULL, (xmlChar *)"flags", (xmlChar *)str );

View file

@ -142,7 +142,7 @@ void init_filetypes(){
char buf[16];
buf[0] = '*';
buf[1] = '.';
strcpy( buf + 2, *ext );
Q_strncpyz( buf + 2, *ext, sizeof( buf ) - 2 );
GetFileTypeRegistry()->addType( MODEL_MAJOR, filetype_t( module->displayName, buf ) );
}
}

View file

@ -226,7 +226,7 @@ CPtrArray PatchShaders;
void PushPatch( patchMesh_t * patch ){
patchEntry_t *pEntry = new patchEntry_s;
pEntry->p = patch;
strcpy( pEntry->name, patch->pShader->getName() );
Q_strncpyz( pEntry->name, patch->pShader->getName(), sizeof( pEntry->name ) );
PatchShaders.Add( pEntry );
}
@ -734,7 +734,7 @@ qtexture_t *WINAPI QERApp_Try_Texture_ForName( const char *name ){
}
g_free( pPixels );
strcpy( q->name, name );
Q_strncpyz( q->name, name, sizeof( q->name ) );
// only strip extension if extension there is!
if ( q->name[strlen( q->name ) - 4] == '.' ) {
q->name[strlen( q->name ) - 4] = '\0';
@ -792,7 +792,7 @@ void CShader::CreateColor( const char *name ){
// copy this one
qtexture_t *q2 = new qtexture_t;
memcpy( q2, q1, sizeof( qtexture_t ) );
strcpy( q2->name, m_strTextureName.GetBuffer() );
Q_strncpyz( q2->name, m_strTextureName.GetBuffer(), sizeof( q2->name ) );
VectorCopy( m_vColor, q2->color );
m_pTexture = q2;
}

View file

@ -202,7 +202,7 @@ void IsFaceConflicting(){
tmp_texdef = &get_texdef_face_list()->texdef;
strcpy( texture_name, tmp_texdef->GetName() );
Q_strncpyz( texture_name, tmp_texdef->GetName(), sizeof( texture_name ) );
texdef_SI_values.shift[0] = tmp_texdef->shift[0];
texdef_SI_values.shift[1] = tmp_texdef->shift[1];
@ -297,14 +297,14 @@ static void PopulateTextureComboList(){
if ( texdef_face_list_empty() ) {
items = g_list_append( items, (gpointer) blank );
// For Texture Entry, activate only on entry change
strcpy( old_texture_entry, blank );
Q_strncpyz( old_texture_entry, blank, sizeof( old_texture_entry ) );
}
else if ( !is_TextureName_conflicting ) {
temp_texdef_face_list = get_texdef_face_list();
tmp_texdef = (texdef_t *) &get_texdef_face_list()->texdef;
items = g_list_append( items, (gpointer) tmp_texdef->GetName() );
// For Texture Entry, activate only on entry change
strcpy( old_texture_entry, tmp_texdef->GetName() );
Q_strncpyz( old_texture_entry, tmp_texdef->GetName(), sizeof( old_texture_entry ) );
}
else
{
@ -324,7 +324,7 @@ static void PopulateTextureComboList(){
// If this isn't added last (to the top of the list), g_list_find freaks.
items = g_list_prepend( items, (gpointer) blank );
// For Texture Entry, activate only on entry change
strcpy( old_texture_entry, blank );
Q_strncpyz( old_texture_entry, blank, sizeof( old_texture_entry ) );
}
for( lst = items; lst != NULL; lst = g_list_next( lst ) )
@ -1002,7 +1002,7 @@ void on_texture_combo_entry_activate( GtkEntry *entry, gpointer user_data ){
if ( !texdef_face_list_empty() && g_bListenChanged ) {
// activate only on entry change
strcpy( text, gtk_entry_get_text( entry ) );
Q_strncpyz( text, gtk_entry_get_text( entry ), sizeof( text ) );
if ( strcmp( old_texture_entry, text ) ) {
// Check for spaces in shader name
if ( text[0] <= ' ' || strchr( text, ' ' ) ) {
@ -1014,7 +1014,7 @@ void on_texture_combo_entry_activate( GtkEntry *entry, gpointer user_data ){
{
tmp_texdef = (texdef_t *) &temp_texdef_face_list->texdef;
tmp_orig_texdef = (texdef_t *) &temp_texdef_face_list->orig_texdef;
strcpy( old_texture_entry, text );
Q_strncpyz( old_texture_entry, text, sizeof( old_texture_entry ) );
tmp_texdef->SetName( text );
}
GetTexMods();

View file

@ -161,7 +161,7 @@ void IsFaceConflicting(){
tmp_texdef = &get_texdef_face_list()->texdef;
strcpy( texture_name, tmp_texdef->GetName() );
Q_strncpyz( texture_name, tmp_texdef->GetName(), sizeof( texture_name ) );
texdef_SI_values.shift[0] = tmp_texdef->shift[0];
texdef_SI_values.shift[1] = tmp_texdef->shift[1];
@ -261,14 +261,14 @@ static void PopulateTextureComboList(){
if ( texdef_face_list_empty() ) {
items = g_list_append( items, (gpointer) blank );
// For Texture Entry, activate only on entry change
strcpy( old_texture_entry, blank );
Q_strncpyz( old_texture_entry, blank, sizeof( old_texture_entry ) );
}
else if ( !is_TextureName_conflicting ) {
temp_texdef_face_list = get_texdef_face_list();
tmp_texdef = (texdef_t *) &get_texdef_face_list()->texdef;
items = g_list_append( items, (gpointer) tmp_texdef->GetName() );
// For Texture Entry, activate only on entry change
strcpy( old_texture_entry, tmp_texdef->GetName() );
Q_strncpyz( old_texture_entry, tmp_texdef->GetName(), sizeof( old_texture_entry ) );
}
else
{
@ -288,7 +288,7 @@ static void PopulateTextureComboList(){
// If this isn't added last (to the top of the list), g_list_find freaks.
items = g_list_prepend( items, (gpointer) blank );
// For Texture Entry, activate only on entry change
strcpy( old_texture_entry, blank );
Q_strncpyz( old_texture_entry, blank, sizeof( old_texture_entry ) );
}
for( lst = items; lst != NULL; lst = g_list_next( lst ) )
@ -883,7 +883,7 @@ void on_texture_combo_entry_activate( GtkEntry *entry, gpointer user_data ){
if ( !texdef_face_list_empty() && g_bListenChanged ) {
// activate only on entry change
strcpy( text, gtk_entry_get_text( entry ) );
Q_strncpyz( text, gtk_entry_get_text( entry ), sizeof( text ) );
if ( strcmp( old_texture_entry, text ) ) {
// Check for spaces in shader name
if ( text[0] <= ' ' || strchr( text, ' ' ) ) {
@ -895,7 +895,7 @@ void on_texture_combo_entry_activate( GtkEntry *entry, gpointer user_data ){
{
tmp_texdef = (texdef_t *) &temp_texdef_face_list->texdef;
tmp_orig_texdef = (texdef_t *) &temp_texdef_face_list->orig_texdef;
strcpy( old_texture_entry, text );
Q_strncpyz( old_texture_entry, text, sizeof( old_texture_entry ) );
tmp_texdef->SetName( text );
}
GetTexMods();

View file

@ -163,7 +163,7 @@ void set_surface_flags_button_state( texdef_to_face_t *texdef_face_list, bool b_
}
else {
working_value = value;
sprintf( tex_buff, "%d", value );
snprintf( tex_buff, sizeof( tex_buff ), "%d", value );
gtk_entry_set_text( (GtkEntry *)value_entry, tex_buff );
}

View file

@ -193,7 +193,7 @@ static GSList* vfsGetListInternal( const char *dir, const char *ext, bool direct
dirlen = strlen( dirname );
if ( ext != NULL ) {
strcpy( extension, ext );
Q_strncpyz( extension, ext, sizeof( extension ) );
}
else{
extension[0] = '\0';
@ -650,7 +650,7 @@ char* vfsExtractRelativePath_short( const char *in, bool shorten ){
}
vfsCleanFileName( l_in );
#else
strcpy( l_in, in );
Q_strncpyz( l_in, in, sizeof( l_in ) );
vfsCleanFileName( l_in );
#endif // ifdef WIN32

View file

@ -686,7 +686,7 @@ char* vfsExtractRelativePath_short( const char *in, bool shorten ){
}
vfsCleanFileName( l_in );
#else
strcpy( l_in, in );
Q_strncpyz( l_in, in, sizeof( l_in ) );
vfsCleanFileName( l_in );
#endif // ifdef WIN32

View file

@ -116,7 +116,7 @@ int vfsBuildShortPathName( const char* pPath, char* pBuffer, int nBufferLen ){
int nResult = GetFullPathName( pPath, nBufferLen, pBuffer, &pFile );
nResult = GetShortPathName( pPath, pBuffer, nBufferLen );
if ( nResult == 0 ) {
strcpy( pBuffer, pPath ); // Use long filename
Q_strncpyz( pBuffer, pPath, nBufferLen ); // Use long filename
}
return nResult;
#endif
@ -162,7 +162,7 @@ static void vfsInitPakFile( const char *filename ){
for ( i = strlen( filename ) - 1 ; i >= 0 && filename[i] != '\\' && filename[i] != '/' ; i-- )
wadnameptr = (char *)filename + i;
strcpy( wadname,wadnameptr );
Q_strncpyz( wadname, wadnameptr, sizeof( wadname ) );
wadname[strlen( wadname ) - 4] = 0; // ditch the .wad so everthing looks nice!
strlwr( wadname );
@ -221,7 +221,7 @@ static GSList* vfsGetListInternal( const char *refdir, const char *ext, bool dir
int i;
if ( refdir != NULL ) {
strcpy( dirname, refdir );
Q_strncpyz( dirname, refdir, sizeof( dirname ) );
strlwr( dirname );
vfsFixDOSName( dirname );
vfsAddSlash( dirname, sizeof( dirname ) );
@ -232,7 +232,7 @@ static GSList* vfsGetListInternal( const char *refdir, const char *ext, bool dir
dirlen = strlen( dirname );
if ( ext != NULL ) {
strcpy( extension, ext );
Q_strncpyz( extension, ext, sizeof( extension ) );
}
else{
extension[0] = '\0';
@ -366,7 +366,7 @@ void vfsInitDirectory( const char *path ){
return;
}
strcpy( g_strDirs[g_numDirs], path );
Q_strncpyz( g_strDirs[g_numDirs], path, sizeof( g_strDirs[g_numDirs] ) );
vfsFixDOSName( g_strDirs[g_numDirs] );
vfsAddSlash( g_strDirs[g_numDirs], sizeof( g_strDirs[g_numDirs] ) );
g_numDirs++;
@ -450,7 +450,7 @@ int vfsGetFileCount( const char *filename, int flag ){
char fixed[NAME_MAX], tmp[NAME_MAX];
GSList *lst;
strcpy( fixed, filename );
Q_strncpyz( fixed, filename, sizeof( fixed ) );
vfsFixDOSName( fixed );
strlwr( fixed );
@ -514,7 +514,7 @@ int vfsLoadFile( const char *filename, void **bufferptr, int index ){
GSList *lst;
*bufferptr = NULL;
strcpy( fixed, filename );
Q_strncpyz( fixed, filename, sizeof( fixed ) );
vfsFixDOSName( fixed );
strlwr( fixed );
@ -633,8 +633,8 @@ char* vfsExtractRelativePath( const char *in ){
Sys_Printf( "vfsExtractRelativePath: %s\n", in );
#endif
strcpy( l_in,in );
vfsCleanFileName( l_in );
Q_strncpyz( l_in, in, sizeof( l_in ) );
vfsCleanFileName( l_in, sizeof( l_in ) );
#ifdef DBG_RLTPATH
Sys_Printf( "cleaned path: %s\n", l_in );
@ -642,15 +642,15 @@ char* vfsExtractRelativePath( const char *in ){
for ( i = 0; i < g_numDirs; i++ )
{
strcpy( check,g_strDirs[i] );
vfsCleanFileName( check );
Q_strncpyz( check, g_strDirs[i], sizeof( check ) );
vfsCleanFileName( check, sizeof( check ) );
#ifdef DBG_RLTPATH
Sys_Printf( "Matching against %s\n", check );
#endif
// try to find a match
if ( strstr( l_in, check ) ) {
strcpy( out,l_in + strlen( check ) + 1 );
Q_strncpyz( out, l_in + strlen( check ) + 1, sizeof( out ) );
break;
}
}
@ -667,7 +667,7 @@ char* vfsExtractRelativePath( const char *in ){
}
// removed CString usage
void vfsCleanFileName( char *in ){
void vfsCleanFileName( char *in, size_t length ){
char str[PATH_MAX];
vfsBuildShortPathName( in, str, PATH_MAX );
strlwr( str );
@ -676,7 +676,7 @@ void vfsCleanFileName( char *in ){
if ( str[n - 1] == '/' ) {
str[n - 1] = '\0';
}
strcpy( in, str );
Q_strncpyz( in, str, length );
}
// HYDRA: this now searches VFS/PAK files in addition to the filesystem
@ -694,7 +694,7 @@ char* vfsGetFullPath( const char *in, int index, int flag ){
char fixed[NAME_MAX];
GSList *lst;
strcpy( fixed, in );
Q_strncpyz( fixed, in, sizeof( fixed ) );
vfsFixDOSName( fixed );
strlwr( fixed );
@ -723,7 +723,7 @@ char* vfsGetFullPath( const char *in, int index, int flag ){
strncat( tmp, in, sizeof( tmp ) );
if ( access( tmp, R_OK ) == 0 ) {
if ( count == index ) {
strcpy( out, tmp );
Q_strncpyz( out, tmp, sizeof( out ) );
return out;
}
count++;

View file

@ -51,7 +51,7 @@ int vfsLoadFullPathFile( const char *filename, void **buffer );
// on win32, will build the short path name
// directories will be cleaned, no ending filename seperator
// we modify the entry directly, the size of the string can only go down
void vfsCleanFileName( char * );
void vfsCleanFileName( char *, size_t );
// these return a static char*, doesn't need to be freed or anything
// get the base path to use when raising file dialogs
// we manually add "maps/" or "sounds/" or "mapobjects/models/" etc.

View file

@ -37,7 +37,7 @@ const char* Brush_Name( brush_t *b ){
static char cBuff[1024];
b->numberId = g_nBrushId++;
if ( g_qeglobals.m_bBrushPrimitMode ) {
sprintf( cBuff, "Brush %i", b->numberId );
snprintf( cBuff, sizeof( cBuff ), "Brush %i", b->numberId );
Brush_SetEpair( b, "Name", cBuff );
}
return cBuff;

View file

@ -228,7 +228,7 @@ void Dialog::UpdateData( bool retrieve ){
gtk_entry_set_text( GTK_ENTRY( data->object ), buf );
break;
case DLG_ENTRY_INT:
sprintf( buf, "%d", ( *(int*)data->buffer ) );
snprintf( buf, sizeof( buf ), "%d", ( *(int*)data->buffer ) );
gtk_entry_set_text( GTK_ENTRY( data->object ), buf );
break;
case DLG_SPIN_FLOAT:

View file

@ -282,14 +282,14 @@ void UpdateTarget( vec3_t origin, vec3_t dir ){
i = IntForKey( pe, "target" );
if ( i <= 0 ) {
i = GetUniqueTargetId( 1 );
sprintf( sz, "%d", i );
snprintf( sz, sizeof( sz ), "%d", i );
SetKeyValue( pe, "target", sz );
}
// set the target # into our src
sprintf( sz, "%d", i );
snprintf( sz, sizeof( sz ), "%d", i );
SetKeyValue( peLink, "targetname", sz );
Sys_UpdateWindows( W_ENTITY );

View file

@ -227,7 +227,7 @@ void Eclass_CreateSpriteModelPaths(){
{
// strip the path/ and the .extension.
ExtractFileBase( (char *)pFile->data,filename );
ExtractFileBase( (char *)pFile->data, filename, sizeof( filename ) );
// does the eclass name match the filename?
if ( stricmp( e->name,filename ) == 0 ) {
@ -297,7 +297,7 @@ eclass_t * EClass_Create( const char *name, float col1, float col2, float col3,
e->color[0] = col1;
e->color[1] = col2;
e->color[2] = col3;
sprintf( color, "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
snprintf( color, sizeof( color ), "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
e->texdef.SetName( color );
// supplied size ?

View file

@ -144,7 +144,7 @@ eclass_t *Eclass_InitFromText( char *text ){
if ( r != 3 ) {
return e;
}
sprintf( color, "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
snprintf( color, sizeof( color ), "(%f %f %f)", e->color[0], e->color[1], e->color[2] );
//strcpy (e->texdef.name, color);
e->texdef.SetName( color );

View file

@ -202,7 +202,7 @@ void GetSpawnFlags( void ){
}
else
{
sprintf( sz, "%i", f );
snprintf( sz, sizeof( sz ), "%i", f );
if ( multiple_entities ) {
brush_t *b;

View file

@ -1013,7 +1013,7 @@ void DoMapInfo(){
{
entry = (map_t*)entitymap->data;
char tmp[16];
sprintf( tmp, "%d", entry->count );
snprintf( tmp, sizeof( tmp ), "%d", entry->count );
GtkTreeIter iter;
gtk_list_store_append( GTK_LIST_STORE( store ), &iter );
gtk_list_store_set( GTK_LIST_STORE( store ), &iter, 0, tmp, 1, entry->name, -1 );
@ -1022,11 +1022,11 @@ void DoMapInfo(){
}
char tmp[16];
sprintf( tmp, "%d", TotalBrushes );
snprintf( tmp, sizeof( tmp ), "%d", TotalBrushes );
gtk_label_set_text( GTK_LABEL( brushes_label ), tmp );
sprintf( tmp, "%d", TotalEntities );
snprintf( tmp, sizeof( tmp ), "%d", TotalEntities );
gtk_label_set_text( GTK_LABEL( entities_label ), tmp );
sprintf( tmp, "%d", Net );
snprintf( tmp, sizeof( tmp ), "%d", Net );
gtk_label_set_text( GTK_LABEL( net_label ), tmp );
response_id = gtk_dialog_run( GTK_DIALOG( dialog ) );
@ -2740,7 +2740,7 @@ int DoBSInputDlg( const char *fields[5], float values[5] ){
gtk_widget_show( entries[i] );
char buf[64];
sprintf( buf, "%f", values[i] );
snprintf( buf, sizeof( buf ), "%f", values[i] );
gtk_entry_set_text( GTK_ENTRY( entries[i] ), buf );
}

View file

@ -182,11 +182,11 @@ int loki_getmountpoint( const char *device, char *mntpt, int max_size ){
{
char *tmp, mntdev[1024];
strcpy( mntdev, mntent->mnt_fsname );
Q_strncpyz( mntdev, mntent->mnt_fsname, sizeof( mntdev ) );
if ( strcmp( mntent->mnt_type, "supermount" ) == 0 ) {
tmp = strstr( mntent->mnt_opts, "dev=" );
if ( tmp ) {
strcpy( mntdev, tmp + strlen( "dev=" ) );
Q_strcnpyz( mntdev, tmp + strlen( "dev=" ), sizeof( mntdev ) );
tmp = strchr( mntdev, ',' );
if ( tmp ) {
*tmp = '\0';
@ -947,7 +947,7 @@ void QE_ExpandBspString( char *bspaction, GPtrArray *out_array, char *mapname ){
}
else
{
ExtractFileName( mapname, base );
ExtractFileName( mapname, base, sizeof( base ) );
}
// this important step alters the map name to add fs_game
@ -1143,7 +1143,7 @@ void RunBsp( char *command ){
if ( g_PrefsDlg.m_bWatchBSP ) {
// grab the file name for engine running
char *bspname = new char[1024];
ExtractFileName( currentmap, bspname );
ExtractFileName( currentmap, bspname, sizeof( bspname ) );
StripExtension( bspname );
g_pParentWnd->GetWatchBSP()->DoMonitoringLoop( sys, bspname );
} else {

View file

@ -3958,7 +3958,7 @@ void MainFrame::UpdateWindows( int nBits ){
#ifdef DBG_WINDOWPOS
static int bean_count = 0;
char bean_buf[100];
sprintf( bean_buf,"UpdateWindows %d",bean_count );
snprintf( bean_buf, sizeof( bean_buf ), "UpdateWindows %d", bean_count );
CheckWatchit( bean_buf );
bean_count++;
#endif
@ -3993,7 +3993,7 @@ void MainFrame::UpdateWindows( int nBits ){
}
}
#ifdef DBG_WINDOWPOS
sprintf( bean_buf,"%d (end UpdateWidows)",bean_count );
snprintf( bean_buf, sizeof( bean_buf ), "%d (end UpdateWidows)", bean_count );
CheckWatchit( bean_buf );
#endif
}
@ -4002,7 +4002,7 @@ void MainFrame::RoutineProcessing(){
#ifdef DBG_WINDOWPOS
static int bean_count = 0;
char bean_buf[100];
sprintf( bean_buf,"RoutineProcessing %d",bean_count );
snprintf( bean_buf, sizeof( bean_buf ), "RoutineProcessing %d", bean_count );
CheckWatchit( bean_buf );
bean_count++;
#endif
@ -4079,7 +4079,7 @@ void MainFrame::RoutineProcessing(){
*/
}
#ifdef DBG_WINDOWPOS
sprintf( bean_buf,"%d (end RoutineProcessing)",bean_count );
snprintf( bean_buf, sizeof( bean_buf ), "%d (end RoutineProcessing)", bean_count );
CheckWatchit( bean_buf );
#endif
}
@ -6243,7 +6243,7 @@ void MainFrame::OnMiscSelectentitycolor(){
if ( inspector_mode == W_ENTITY && ( DoColor( COLOR_ENTITY ) ) ) {
char buffer[256];
sprintf( buffer, "%f %f %f", g_qeglobals.d_savedinfo.colors[COLOR_ENTITY][0],
snprintf( buffer, sizeof( buffer ), "%f %f %f", g_qeglobals.d_savedinfo.colors[COLOR_ENTITY][0],
g_qeglobals.d_savedinfo.colors[COLOR_ENTITY][1],
g_qeglobals.d_savedinfo.colors[COLOR_ENTITY][2] );

View file

@ -830,7 +830,7 @@ void Map_New( void ){
Sys_Printf( "Map_New\n" );
Map_Free();
strcpy( currentmap, "unnamed.map" );
Q_strncpyz( currentmap, "unnamed.map", sizeof( currentmap ) );
Sys_SetTitle( currentmap );
world_entity = (entity_s*)qmalloc( sizeof( *world_entity ) );
@ -932,9 +932,9 @@ void AddRegionBrushes( void ){
SetKeyValue( region_startpoint, "classname", "info_player_start" );
region_startpoint->eclass = Eclass_ForName( "info_player_start", false );
char sTmp[1024];
sprintf( sTmp, "%d %d %d", (int)vOrig[0], (int)vOrig[1], (int)vOrig[2] );
snprintf( sTmp, sizeof( sTmp ), "%d %d %d", (int)vOrig[0], (int)vOrig[1], (int)vOrig[2] );
SetKeyValue( region_startpoint, "origin", sTmp );
sprintf( sTmp, "%d", (int)g_pParentWnd->GetCamWnd()->Camera()->angles[YAW] );
snprintf( sTmp, sizeof( sTmp ), "%d", (int)g_pParentWnd->GetCamWnd()->Camera()->angles[YAW] );
SetKeyValue( region_startpoint, "angle", sTmp );
// empty array of children
region_startpoint->pData = new CPtrArray;

View file

@ -229,7 +229,7 @@ void WindowPosition_Parse( window_position_t& m_value, const CString& value ){
void WindowPosition_Write( const window_position_t& m_value, CString& value ){
char buffer[64];
sprintf( buffer, "%d %d %d %d", m_value.x, m_value.y, m_value.w, m_value.h );
snprintf( buffer, sizeof( buffer ), "%d %d %d %d", m_value.x, m_value.y, m_value.w, m_value.h );
value = buffer;
}
@ -308,7 +308,7 @@ void CXMLPropertyBag::GetPref( const char *name, int *pV, int V ){
else
{
char s[12];
sprintf( s, "%d", V );
snprintf( s, sizeof( s ), "%d", V );
pNode = xmlNewChild( mpDocNode, NULL, (xmlChar *)"epair", (xmlChar *)s );
xmlSetProp( pNode, (xmlChar *)"name", (xmlChar *)name );
*pV = V;
@ -348,7 +348,7 @@ void CXMLPropertyBag::GetPref( const char *name, float *pV, float V ){
else
{
char s[64];
sprintf( s, "%f", V );
snprintf( s, sizeof( s ), "%f", V );
pNode = xmlNewChild( mpDocNode, NULL, (xmlChar *)"epair", (xmlChar *)s );
xmlSetProp( pNode, (xmlChar *)"name", (xmlChar *)name );
*pV = V;
@ -365,7 +365,7 @@ void CXMLPropertyBag::GetPref( const char *name, float* pV, float* V ){
else
{
char s[256];
sprintf( s, "%f %f %f", V[0], V[1], V[2] );
snprintf( s, sizeof( s ), "%f %f %f", V[0], V[1], V[2] );
pNode = xmlNewChild( mpDocNode, NULL, (xmlChar *)"epair", (xmlChar *)s );
xmlSetProp( pNode, (xmlChar *)"name", (xmlChar *)name );
pV[0] = V[0];
@ -416,11 +416,11 @@ void CXMLPropertyBag::UpdatePrefTree(){
xmlNodeSetContent( pNode, (const xmlChar *)( (Str *)pPref->mVal )->GetBuffer() );
break;
case PREF_INT:
sprintf( s, "%d", *(int *)pPref->mVal );
snprintf( s, sizeof( s ), "%d", *(int *)pPref->mVal );
xmlNodeSetContent( pNode, (xmlChar *)s );
break;
case PREF_FLOAT:
sprintf( s, "%f", *(float *)pPref->mVal );
snprintf( s, sizeof( s ), "%f", *(float *)pPref->mVal );
xmlNodeSetContent( pNode, (xmlChar *)s );
break;
case PREF_BOOL:
@ -430,7 +430,7 @@ void CXMLPropertyBag::UpdatePrefTree(){
case PREF_VEC3:
{
float* v = (float*)pPref->mVal;
sprintf( s, "%f %f %f", v[0], v[1], v[2] );
snprintf( s, sizeof( s ), "%f %f %f", v[0], v[1], v[2] );
xmlNodeSetContent( pNode, (xmlChar *)s );
}
break;
@ -849,7 +849,7 @@ CGameDescription::CGameDescription( xmlDocPtr pDoc, const Str &GameFile ){
aux_path[strlen( aux_path ) - 1] = '\0'; // strip ending '/' if any
}
char up_path[PATH_MAX]; // up one level
ExtractFilePath( aux_path, up_path );
ExtractFilePath( aux_path, up_path, sizeof( up_path ) );
mEnginePath = up_path;
}
}
@ -3044,7 +3044,7 @@ void PrefsDlg::LoadPrefs(){
for ( i = 0; i < 4; i++ )
{
char buf[64];
sprintf( buf, "%s%d", FILE_KEY, i );
snprintf( buf, sizeof( buf ), "%s%d", FILE_KEY, i );
mLocalPrefs.GetPref( buf, &m_strMRUFiles[i], "" );
}
@ -3087,7 +3087,7 @@ void PrefsDlg::LoadPrefs(){
for ( i = 0; i < 3; i++ ) {
char buf[64];
sprintf( buf, "%s%d", SI_AXISCOLORS_KEY, i );
snprintf( buf, sizeof( buf ), "%s%d", SI_AXISCOLORS_KEY, i );
mLocalPrefs.GetPref( buf, g_qeglobals.d_savedinfo.AxisColors[i], vDefaultAxisColours[i] );
}
@ -3111,7 +3111,7 @@ void PrefsDlg::LoadPrefs(){
for ( i = 0; i < COLOR_LAST; i++ ) {
char buf[64];
sprintf( buf, "%s%d", SI_COLORS_KEY, i );
snprintf( buf, sizeof( buf ), "%s%d", SI_COLORS_KEY, i );
mLocalPrefs.GetPref( buf, g_qeglobals.d_savedinfo.colors[i], vDefaultColours[i] );
}

View file

@ -187,13 +187,13 @@ static bool save_var( const char *filename, const char *section, const char *key
bool WINAPI profile_save_int( const char *filename, const char *section, const char *key, int value ){
char buf[16];
sprintf( buf, "%d", value );
snprintf( buf, sizeof( buf ), "%d", value );
return save_var( filename, section, key, buf );
}
bool WINAPI profile_save_float( const char *filename, const char *section, const char *key, float value ){
char buf[64];
sprintf( buf, "%f", value );
snprintf( buf, sizeof( buf ), "%f", value );
return save_var( filename, section, key, buf );
}

View file

@ -598,8 +598,9 @@ bool QE_LoadProject( const char *projectfile ){
int ver = IntForKey( g_qeglobals.d_project_entity, "version" );
if ( ver > PROJECT_VERSION ) {
char strMsg[1024];
sprintf( strMsg, "This is a version %d project file. This build only supports <=%d project files.\n"
"Please choose another project file or upgrade your version of Radiant.", ver, PROJECT_VERSION );
snprintf( strMsg, sizeof( strMsg ),
"This is a version %d project file. This build only supports <=%d project files.\n"
"Please choose another project file or upgrade your version of Radiant.", ver, PROJECT_VERSION );
gtk_MessageBox( g_pParentWnd->m_pWidget, strMsg, "Can't load project file", MB_ICONERROR | MB_OK );
// set the project file to nothing so we are sure we'll ask next time?
g_PrefsDlg.m_strLastProject = "";
@ -1358,7 +1359,7 @@ void Sys_UpdateStatusBar( void ){
char numbrushbuffer[100] = "";
sprintf( numbrushbuffer, "Brushes: %d Entities: %d", g_numbrushes, g_numentities );
snprintf( numbrushbuffer, sizeof( numbrushbuffer ), "Brushes: %d Entities: %d", g_numbrushes, g_numentities );
g_pParentWnd->SetStatusText( 2, numbrushbuffer );
//Sys_Status( numbrushbuffer, 2 );
}
@ -1397,7 +1398,7 @@ static void MRU_SetText( int index, const char *filename ){
char mnemonic[PATH_MAX * 2 + 4];
mnemonic[0] = '_';
sprintf( mnemonic + 1, "%d", index + 1 );
snprintf( mnemonic + 1, sizeof( mnemonic ) - 1, "%d", index + 1 );
mnemonic[2] = '-';
mnemonic[3] = ' ';
buffer_write_escaped_mnemonic( mnemonic + 4, filename );

View file

@ -755,7 +755,7 @@ void Select_ApplyMatrix( bool bSnap, bool bRotation, int nAxis, float fDeg ){ //
// update the origin key
char text[64];
sprintf( text, "%i %i %i",
snprintf( text, sizeof( text ), "%i %i %i",
(int)b->owner->origin[0], (int)b->owner->origin[1], (int)b->owner->origin[2] );
SetKeyValue( b->owner, "origin", text );

View file

@ -47,7 +47,7 @@ void Entity_Connect( entity_t *e1, entity_t *e2 ){
}
}
}
sprintf( newtarget, "t%i", maxtarget + 1 );
snprintf( newtarget, sizeof( newtarget ), "t%i", maxtarget + 1 );
#ifdef _DEBUG
Sys_Printf( "Connecting entities with new target/targetname: %s\n", newtarget );

View file

@ -738,7 +738,7 @@ void FillTextureList( GSList** pArray )
char shaderfile[PATH_MAX];
gboolean found = FALSE;
ExtractFileName( (char*)l_shaderfiles->data, shaderfile );
ExtractFileName( (char*)l_shaderfiles->data, shaderfile, sizeof( shaderfile ) );
StripExtension( shaderfile );
strlwr( shaderfile );
@ -966,7 +966,7 @@ void Texture_ShowDirectory(){
==============
*/
void Texture_ShowDirectory( int menunum ){
strcpy( texture_directory, texture_menunames[menunum - CMD_TEXTUREWAD] );
Q_strncpyz( texture_directory, texture_menunames[menunum - CMD_TEXTUREWAD], sizeof( texture_directory ) );
Texture_ShowDirectory();
}
@ -1046,7 +1046,7 @@ void Texture_ShowAll(){
QERApp_ActiveShaders_SetDisplayed( true );
g_bShowAllShaders = true;
// put some information in the texture window title?
sprintf( name, "Textures: in use" );
snprintf( name, sizeof( name ), "Textures: in use" );
gtk_window_set_title( GTK_WINDOW( g_qeglobals_gui.d_entity ), name );
Sys_UpdateWindows( W_TEXTURE );
}
@ -1101,7 +1101,7 @@ void WINAPI Texture_ShowInuse( void ){
// we are no longer showing everything
g_bShowAllShaders = false;
// put some information in the texture window title?
sprintf( name, "Textures: in use" );
snprintf( name, sizeof( name ), "Textures: in use" );
gtk_window_set_title( GTK_WINDOW( g_qeglobals_gui.d_entity ), name );

View file

@ -407,7 +407,7 @@ void CreateEntityFromName( const char* name, const vec3_t origin ){
if ( DoLightIntensityDlg( &intensity ) == IDOK ) {
g_PrefsDlg.m_iLastLightIntensity = intensity;
char buf[30];
sprintf( buf, "255 255 255 %d", intensity );
snprintf( buf, sizeof( buf ), "255 255 255 %d", intensity );
SetKeyValue( e, "_light", buf );
}
}
@ -424,7 +424,7 @@ void CreateEntityFromName( const char* name, const vec3_t origin ){
if ( DoLightIntensityDlg( &intensity ) == IDOK ) {
g_PrefsDlg.m_iLastLightIntensity = intensity;
char buf[12];
sprintf( buf, "%d", intensity );
snprintf( buf, sizeof( buf ), "%d", intensity );
SetKeyValue( e, "light", buf );
}
}
@ -2263,14 +2263,14 @@ void XYWnd::XY_DrawGrid(){
// This renders the numbers along varying X on top of the grid view (labels vertical grid lines).
for ( x = xb - ( (int) xb ) % stepx; x <= xe; x += stepx ) {
qglRasterPos2f( x + leftCushion, yPosLabelsTop );
sprintf( text, "%i", (int) x );
snprintf( text, sizeof( text ), "%i", (int) x );
gtk_glwidget_print_string( text );
}
// This renders the numbers along varying Y on the left of the grid view (labels horizontal grid lines).
for ( y = yb - ( (int) yb ) % stepy; y <= ye; y += stepy ) {
qglRasterPos2f( xPosLabelsLeft, y + bottomOffset );
sprintf( text, "%i", (int) y );
snprintf( text, sizeof( text ), "%i", (int) y );
gtk_glwidget_print_string( text );
}
@ -2432,7 +2432,7 @@ void XYWnd::XY_DrawBlockGrid(){
for ( y = yb ; y < ye ; y += g_qeglobals.blockSize )
{
qglRasterPos2f( x + ( g_qeglobals.blockSize / 2 ), y + ( g_qeglobals.blockSize / 2 ) );
sprintf( text, "%i,%i",(int)floor( x / g_qeglobals.blockSize ), (int)floor( y / g_qeglobals.blockSize ) );
snprintf( text, sizeof( text ), "%i,%i",(int)floor( x / g_qeglobals.blockSize ), (int)floor( y / g_qeglobals.blockSize ) );
gtk_glwidget_print_string( text );
}
}

View file

@ -254,7 +254,7 @@ void Z_DrawGrid( void ){
for ( zz = zb ; zz < ze ; zz += step )
{
qglRasterPos2f( -w + ( 1 / z.scale ), zz );
sprintf( text, "%i",(int)zz );
snprintf( text, sizeof( text ), "%i",(int)zz );
gtk_glwidget_print_string( text );
}
}

View file

@ -120,7 +120,7 @@ void ExpandWildcards( int *argc, char ***argv ){
return;
}
ExtractFilePath( path, filebase );
ExtractFilePath( path, filebase, sizeof( filebase ) );
do
{
@ -747,8 +747,9 @@ void StripExtension( char *path ){
*/
// FIXME: should include the slash, otherwise
// backing to an empty path will be wrong when appending a slash
void ExtractFilePath( const char *path, char *dest ){
void ExtractFilePath( const char *path, char *dest, size_t size ){
const char *src;
size_t length;
src = path + strlen( path ) - 1;
@ -758,13 +759,20 @@ void ExtractFilePath( const char *path, char *dest ){
while ( src != path && *( src - 1 ) != '\\' && *( src - 1 ) != '/' )
src--;
memcpy( dest, path, src - path );
dest[src - path] = 0;
length = src - path;
if( length + 1 > size )
{
length = size - 1;
}
memcpy( dest, path, length );
dest[length] = 0;
}
void ExtractFileBase( const char *path, char *dest ){
void ExtractFileBase( const char *path, char *dest, size_t size ){
const char *src;
if( size <= 0 )
return;
src = path + strlen( path ) - 1;
//
@ -775,12 +783,18 @@ void ExtractFileBase( const char *path, char *dest ){
while ( *src && *src != '.' )
{
if( size == 1 )
{
*dest = 0;
return;
}
*dest++ = *src++;
size--;
}
*dest = 0;
}
void ExtractFileExtension( const char *path, char *dest, size_t length ){
void ExtractFileExtension( const char *path, char *dest, size_t size ){
const char *src;
src = path + strlen( path ) - 1;
@ -795,7 +809,7 @@ void ExtractFileExtension( const char *path, char *dest, size_t length ){
return;
}
Q_strncpyz( dest, src, length );
Q_strncpyz( dest, src, size );
}

View file

@ -119,9 +119,9 @@ void DefaultPath( char *path, const char *basepath );
void StripFilename( char *path );
void StripExtension( char *path );
void ExtractFilePath( const char *path, char *dest );
void ExtractFileBase( const char *path, char *dest );
void ExtractFileExtension( const char *path, char *dest, size_t length );
void ExtractFilePath( const char *path, char *dest, size_t size );
void ExtractFileBase( const char *path, char *dest, size_t size );
void ExtractFileExtension( const char *path, char *dest, size_t size );
int ParseNum( const char *str );

View file

@ -72,7 +72,7 @@ xmlNodePtr xml_NodeForVec( vec3_t v ){
xmlNodePtr ret;
char buf[1024];
sprintf( buf, "%f %f %f", v[0], v[1], v[2] );
snprintf( buf, sizeof( buf ), "%f %f %f", v[0], v[1], v[2] );
ret = xmlNewNode( NULL, "point" );
xmlNodeSetContent( ret, buf );
return ret;
@ -157,7 +157,7 @@ void xml_Select( char *msg, int entitynum, int brushnum, qboolean bError ){
level[1] = 0;
xmlSetProp( node, "level", (char *)&level );
// a 'select' information
sprintf( buf, "%i %i", entitynum, brushnum );
snprintf( buf, sizeof( buf ), "%i %i", entitynum, brushnum );
select = xmlNewNode( NULL, "brush" );
xmlNodeSetContent( select, buf );
xmlAddChild( node, select );
@ -208,7 +208,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
level[1] = 0;
xmlSetProp( node, "level", (char *)&level );
// a 'winding' node
sprintf( buf, "%i ", numpoints );
snprintf( buf, sizeof( buf ), "%i ", numpoints );
for ( i = 0; i < numpoints; i++ )
{
snprintf( smlbuf, sizeof( smlbuf ), "(%g %g %g)", p[i][0], p[i][1], p[i][2] );
@ -246,7 +246,7 @@ void Broadcast_Setup( const char *dest ){
brdcst_socket = Net_Connect( &address, 0 );
if ( brdcst_socket ) {
// send in a header
sprintf( sMsg, "<?xml version=\"1.0\"?><q3map_feedback version=\"" Q3MAP_STREAM_VERSION "\">" );
snprintf( sMsg, sizeof( sMsg ), "<?xml version=\"1.0\"?><q3map_feedback version=\"" Q3MAP_STREAM_VERSION "\">" );
NMSG_Clear( &msg );
NMSG_WriteString( &msg, sMsg );
Net_Send( brdcst_socket, &msg );

View file

@ -151,50 +151,50 @@ static void LoadMaterialList( FILE *fp, long thisChunkLen, _3DSMaterial_t *pMat
if ( mat.texture[0] ) {
snprintf( buffer, sizeof( buffer ), "%s%s", curdir, mat.texture );
if ( strstr( buffer, gamedir + 1 ) ) {
strcpy( mat.texture, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1 );
Q_strncpyz( mat.texture, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1, sizeof( mat.texture ) );
}
else{
strcpy( mat.texture, buffer );
Q_strncpyz( mat.texture, buffer, sizeof( mat.texture ) );
}
}
if ( mat.specular[0] ) {
snprintf( buffer, sizeof( buffer ), "%s%s", curdir, mat.specular );
if ( strstr( buffer, gamedir + 1 ) ) {
strcpy( mat.specular, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1 );
Q_strncpyz( mat.specular, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1, sizeof( mat.specular ) );
}
else{
strcpy( mat.specular, buffer );
Q_strncpyz( mat.specular, buffer, sizeof( mat.specular ) );
}
}
if ( mat.bump[0] ) {
snprintf( buffer, sizeof( buffer ), "%s%s", curdir, mat.bump );
if ( strstr( buffer, gamedir + 1 ) ) {
strcpy( mat.bump, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1 );
Q_strncpyz( mat.bump, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1, sizeof( mat.bump ) );
}
else{
strcpy( mat.bump, buffer );
Q_strncpyz( mat.bump, buffer, sizeof( mat.bump ) );
}
}
if ( mat.reflection[0] ) {
snprintf( buffer, sizeof( buffer ), "%s%s", curdir, mat.reflection );
if ( strstr( buffer, gamedir + 1 ) ) {
strcpy( mat.reflection, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1 );
Q_strncpyz( mat.reflection, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1, sizeof( mat.reflection ) );
}
else{
strcpy( mat.reflection, buffer );
Q_strncpyz( mat.reflection, buffer, sizeof( mat.reflection ) );
}
}
if ( mat.opacity[0] ) {
snprintf( buffer, sizeof( buffer ), "%s%s", curdir, mat.opacity );
if ( strstr( buffer, gamedir + 1 ) ) {
strcpy( mat.opacity, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1 );
Q_strncpyz( mat.opacity, strstr( buffer, gamedir + 1 ) + strlen( gamedir ) - 1, sizeof( mat.opacity ) );
}
else{
strcpy( mat.opacity, buffer );
Q_strncpyz( mat.opacity, buffer, sizeof( mat.opacity ) );
}
}
@ -382,7 +382,7 @@ static void LoadNamedObject( FILE *fp, long thisChunkLen, _3DSNamedObject_t *pNO
}
}
strcpy( pNO->name, name );
Q_strncpyz( pNO->name, name, sizeof( pNO->name ) );
pNO->pTriObjects = malloc( sizeof( _3DSTriObject_t ) * numTriObjects );
memcpy( pNO->pTriObjects, triObj, sizeof( triObj[0] ) * numTriObjects );
pNO->numTriObjects = numTriObjects;

View file

@ -641,7 +641,7 @@ static void BuildBaseFrame( const char *filename, ObjectAnimationFrame_t *pOAF )
pOAF->surfaces[i]->numtriangles,
g_data.surfData[i].baseTriangles );
strcpy( g_data.surfData[i].header.name, pOAF->surfaces[i]->name );
Q_strncpyz( g_data.surfData[i].header.name, pOAF->surfaces[i]->name, sizeof( g_data.surfData[i].header.name ) );
g_data.surfData[i].header.numTriangles = pOAF->surfaces[i]->numtriangles;
g_data.surfData[i].header.numVerts = 0;
@ -662,7 +662,7 @@ static void BuildBaseFrame( const char *filename, ObjectAnimationFrame_t *pOAF )
strcpy( shaderName, pOAF->surfaces[i]->materialname );
*/
strcpy( g_data.surfData[i].shaders[g_data.surfData[i].header.numShaders].name, pOAF->surfaces[i]->materialname );
Q_strncpyz( g_data.surfData[i].shaders[g_data.surfData[i].header.numShaders].name, pOAF->surfaces[i]->materialname, sizeof( g_data.surfData[i].shaders[g_data.surfData[i].header.numShaders].name ) );
g_data.surfData[i].header.numShaders++;
}

View file

@ -911,7 +911,7 @@ void Cmd_Video( void ){
clock_t start, stop;
GetToken( qfalse );
strcpy( s_base, token );
Q_strncpyz( s_base, token, sizeof( s_base ) );
if ( g_release ) {
// sprintf (savename, "video/%s.cin", token);
// ReleaseFile (savename);
@ -919,7 +919,7 @@ void Cmd_Video( void ){
}
GetToken( qfalse );
strcpy( s_output_base, token );
Q_strncpyz( s_output_base, token, sizeof( s_output_base ) );
GetToken( qfalse );
digits = atoi( token );

View file

@ -147,7 +147,7 @@ static void SetCloneModelNumbers( void ){
}
/* add the model key */
sprintf( modelValue, "*%d", models );
snprintf( modelValue, sizeof( modelValue ), "*%d", models );
SetKeyValue( &entities[ i ], "model", modelValue );
/* increment model count */
@ -194,7 +194,7 @@ static void SetCloneModelNumbers( void ){
models = atoi( &value2[ 1 ] );
/* add the model key */
sprintf( modelValue, "*%d", models );
snprintf( modelValue, sizeof( modelValue ), "*%d", models );
SetKeyValue( &entities[ i ], "model", modelValue );
/* nuke the brushes/patches for this entity (fixme: leak!) */

View file

@ -550,7 +550,7 @@ void WriteIBSPFile( const char *filename ){
/* add marker lump */
time( &t );
sprintf( marker, "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
snprintf( marker, sizeof( marker ), "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
AddLump( file, (bspHeader_t*) header, 0, marker, strlen( marker ) + 1 );
/* add lumps */

View file

@ -305,7 +305,7 @@ void WriteRBSPFile( const char *filename ){
/* add marker lump */
time( &t );
sprintf( marker, "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
snprintf( marker, sizeof( marker ), "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
AddLump( file, (bspHeader_t*) header, 0, marker, strlen( marker ) + 1 );
/* add lumps */

View file

@ -56,7 +56,7 @@ static void ConvertSurface( FILE *f, bspModel_t *model, int modelNum, bspDrawSur
}
/* print object header for each dsurf */
sprintf( name, "mat%dmodel%dsurf%d", ds->shaderNum, modelNum, surfaceNum );
snprintf( name, sizeof( name ), "mat%dmodel%dsurf%d", ds->shaderNum, modelNum, surfaceNum );
fprintf( f, "*GEOMOBJECT\t{\r\n" );
fprintf( f, "\t*NODE_NAME\t\"%s\"\r\n", name );
fprintf( f, "\t*NODE_TM\t{\r\n" );
@ -301,13 +301,13 @@ int ConvertBSPToASE( char *bspName ){
Sys_Printf( "--- Convert BSP to ASE ---\n" );
/* create the ase filename from the bsp name */
strcpy( name, bspName );
Q_strncpyz( name, bspName, sizeof( name ) );
StripExtension( name );
strcat( name, ".ase" );
strncat( name, ".ase", sizeof( name ) );
Sys_Printf( "writing %s\n", name );
ExtractFileBase( bspName, base );
strcat( base, ".bsp" );
ExtractFileBase( bspName, base, sizeof( base ) );
strncat( base, ".bsp", sizeof( base ) );
/* open it */
f = fopen( name, "wb" );

View file

@ -384,13 +384,13 @@ int ConvertBSPToMap( char *bspName ){
Sys_Printf( "--- Convert BSP to MAP ---\n" );
/* create the bsp filename from the bsp name */
strcpy( name, bspName );
Q_strncpyz( name, bspName, sizeof( name ) );
StripExtension( name );
strcat( name, "_converted.map" );
strncat( name, "_converted.map", sizeof( name ) );
Sys_Printf( "writing %s\n", name );
ExtractFileBase( bspName, base );
strcat( base, ".bsp" );
ExtractFileBase( bspName, base, sizeof( base ) );
strncat( base, ".bsp", sizeof( base ) );
/* open it */
f = fopen( name, "wb" );

View file

@ -58,9 +58,9 @@ void ExportEntities( void ){
Sys_FPrintf( SYS_VRB, "--- ExportEntities ---\n" );
/* do some path mangling */
strcpy( filename, source );
Q_strncpyz( filename, source, sizeof( filename ) );
StripExtension( filename );
strcat( filename, ".ent" );
strncat( filename, ".ent", sizeof( filename ) );
/* sanity check */
if ( bspEntData == NULL || bspEntDataSize == 0 ) {
@ -96,7 +96,7 @@ int ExportEntitiesMain( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );

View file

@ -310,7 +310,7 @@ image_t *ImageFind( const char *filename ){
}
/* strip file extension off name */
strcpy( name, filename );
Q_strncpyz( name, filename, sizeof( name ) );
StripExtension( name );
/* search list */
@ -349,7 +349,7 @@ image_t *ImageLoad( const char *filename ){
}
/* strip file extension off name */
strcpy( name, filename );
Q_strncpyz( name, filename, sizeof( name ) );
StripExtension( name );
/* try to find existing image */
@ -380,7 +380,7 @@ image_t *ImageLoad( const char *filename ){
/* attempt to load tga */
StripExtension( name );
strcat( name, ".tga" );
strncat( name, ".tga", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
LoadTGABuffer( buffer, buffer + size, &image->pixels, &image->width, &image->height );
@ -389,7 +389,7 @@ image_t *ImageLoad( const char *filename ){
{
/* attempt to load png */
StripExtension( name );
strcat( name, ".png" );
strncat( name, ".png", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
LoadPNGBuffer( buffer, size, &image->pixels, &image->width, &image->height );
@ -398,7 +398,7 @@ image_t *ImageLoad( const char *filename ){
{
/* attempt to load jpg */
StripExtension( name );
strcat( name, ".jpg" );
strncat( name, ".jpg", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
if ( LoadJPGBuff( buffer, size, &image->pixels, &image->width, &image->height ) == -1 && image->pixels != NULL ) {
@ -409,7 +409,7 @@ image_t *ImageLoad( const char *filename ){
{
/* attempt to load dds */
StripExtension( name );
strcat( name, ".dds" );
strncat( name, ".dds", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
LoadDDSBuffer( buffer, size, &image->pixels, &image->width, &image->height );
@ -422,7 +422,7 @@ image_t *ImageLoad( const char *filename ){
Sys_Printf( "pf = %d\n", pf );
if ( image->width > 0 ) {
StripExtension( name );
strcat( name, "_converted.tga" );
strncat( name, "_converted.tga", sizeof( name ) );
WriteTGA( "C:\\games\\quake3\\baseq3\\textures\\rad\\dds_converted.tga", image->pixels, image->width, image->height );
}
}

View file

@ -2255,10 +2255,10 @@ int LightMain( int argc, char **argv ){
}
/* clean up map name */
strcpy( source, ExpandArg( argv[ i ] ) );
Q_strncpyz( source, ExpandArg( argv[ i ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
strcpy( mapSource, ExpandArg( argv[ i ] ) );
Q_strncpyz( mapSource, ExpandArg( argv[ i ] ), sizeof( mapSource ) );
StripExtension( mapSource );
DefaultExtension( mapSource, ".map", sizeof( mapSource ) );

View file

@ -909,10 +909,10 @@ void RadCreateDiffuseLights( void ){
FILE *file;
light_t *light;
strcpy( dumpName, source );
Q_strncpyz( dumpName, source, sizeof( dumpName ) );
StripExtension( dumpName );
sprintf( ext, "_bounce_%03d.map", iterations );
strcat( dumpName, ext );
snprintf( ext, sizeof( ext ), "_bounce_%03d.map", iterations );
strncat( dumpName, ext, sizeof( dumpName ) );
file = fopen( dumpName, "wb" );
Sys_Printf( "Writing %s...\n", dumpName );
if ( file ) {

View file

@ -1371,9 +1371,9 @@ void SetupTraceNodes( void ){
/* open the file */
strcpy( filename, source );
Q_strncpyz( filename, source, sizeof( filename ) );
StripExtension( filename );
strcat( filename, ".lin" );
strncat( filename, ".lin", sizeof( name ) );
Sys_Printf( "Opening light trace file %s...\n", filename );
file = fopen( filename, "w" );
if ( file == NULL ) {

View file

@ -122,7 +122,7 @@ void ExportLightmaps( void ){
Sys_FPrintf( SYS_VRB, "--- ExportLightmaps ---\n" );
/* do some path mangling */
strcpy( dirname, source );
Q_strncpyz( dirname, source, sizeof( dirname ) );
StripExtension( dirname );
/* sanity check */
@ -159,7 +159,7 @@ int ExportLightmapsMain( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
@ -194,7 +194,7 @@ int ImportLightmapsMain( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
@ -206,7 +206,7 @@ int ImportLightmapsMain( int argc, char **argv ){
Sys_FPrintf( SYS_VRB, "--- ImportLightmaps ---\n" );
/* do some path mangling */
strcpy( dirname, source );
Q_strncpyz( dirname, source, sizeof( dirname ) );
StripExtension( dirname );
/* sanity check */
@ -2333,7 +2333,7 @@ void StoreSurfaceLightmaps( void ){
Sys_Printf( "--- StoreSurfaceLightmaps ---\n" );
/* setup */
strcpy( dirname, source );
Q_strncpyz( dirname, source, sizeof( dirname ) );
StripExtension( dirname );
memset( rgbGenValues, 0, sizeof( rgbGenValues ) );
memset( alphaGenValues, 0, sizeof( alphaGenValues ) );
@ -3046,7 +3046,7 @@ void StoreSurfaceLightmaps( void ){
/* setup */
sprintf( styleStages, "\n\t// Q3Map2 custom lightstyle stage(s)\n" );
snprintf( styleStages, sizeof( styleStages ), "\n\t// Q3Map2 custom lightstyle stage(s)\n" );
dv = &bspDrawVerts[ ds->firstVert ];
/* depthFunc equal? */
@ -3071,7 +3071,7 @@ void StoreSurfaceLightmaps( void ){
/* lightmap name */
if ( lm->outLightmapNums[ lightmapNum ] == lm->outLightmapNums[ 0 ] ) {
strcpy( lightmapName, "$lightmap" );
Q_strncpyz( lightmapName, "$lightmap", sizeof( lightmapName ) );
}
else{
snprintf( lightmapName, sizeof( lightmapName ), "maps/%s/" EXTERNAL_LIGHTMAP, mapName, olm->extLightmapNum );
@ -3079,7 +3079,7 @@ void StoreSurfaceLightmaps( void ){
/* get rgbgen string */
if ( rgbGenValues[ style ] == NULL ) {
sprintf( key, "_style%drgbgen", style );
snprintf( key, sizeof( key ), "_style%drgbgen", style );
rgbGenValues[ style ] = (char*) ValueForKey( &entities[ 0 ], key );
if ( rgbGenValues[ style ][ 0 ] == '\0' ) {
rgbGenValues[ style ] = "wave noise 0.5 1 0 5.37";
@ -3095,7 +3095,7 @@ void StoreSurfaceLightmaps( void ){
/* get alphagen string */
if ( alphaGenValues[ style ] == NULL ) {
sprintf( key, "_style%dalphagen", style );
snprintf( key, sizeof( key ), "_style%dalphagen", style );
alphaGenValues[ style ] = (char*) ValueForKey( &entities[ 0 ], key );
}
if ( alphaGenValues[ style ][ 0 ] != '\0' ) {

View file

@ -132,7 +132,7 @@ int FixAAS( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
@ -152,9 +152,9 @@ int FixAAS( int argc, char **argv ){
while ( *ext )
{
/* mangle name */
strcpy( aas, source );
Q_strncpyz( aas, source, sizeof( aas ) );
StripExtension( aas );
strcat( aas, *ext );
strncat( aas, *ext, sizeof( aas ) );
Sys_Printf( "Trying %s\n", aas );
ext++;
@ -241,7 +241,7 @@ int AnalyzeBSP( int argc, char **argv ){
}
/* clean up map name */
strcpy( source, ExpandArg( argv[ i ] ) );
Q_strncpyz( source, ExpandArg( argv[ i ] ), sizeof( source ) );
Sys_Printf( "Loading %s\n", source );
/* load the file */
@ -365,7 +365,7 @@ int BSPInfo( int count, char **fileNames ){
Sys_Printf( "---------------------------------\n" );
/* mangle filename and get size */
strcpy( source, fileNames[ i ] );
Q_strncpyz( source, fileNames[ i ], sizeof( source ) );
ExtractFileExtension( source, ext, sizeof( ext ) );
if ( !Q_stricmp( ext, "map" ) ) {
StripExtension( source );
@ -427,7 +427,7 @@ int ScaleBSPMain( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
@ -447,7 +447,7 @@ int ScaleBSPMain( int argc, char **argv ){
GetVectorForKey( &entities[ i ], "origin", vec );
if ( ( vec[ 0 ] + vec[ 1 ] + vec[ 2 ] ) ) {
VectorScale( vec, scale, vec );
sprintf( str, "%f %f %f", vec[ 0 ], vec[ 1 ], vec[ 2 ] );
snprintf( str, sizeof( str ), "%f %f %f", vec[ 0 ], vec[ 1 ], vec[ 2 ] );
SetKeyValue( &entities[ i ], "origin", str );
}
@ -455,7 +455,7 @@ int ScaleBSPMain( int argc, char **argv ){
f = FloatForKey( &entities[ i ], "lip" );
if ( f ) {
f *= scale;
sprintf( str, "%f", f );
snprintf( str, sizeof( str ), "%f", f );
SetKeyValue( &entities[ i ], "lip", str );
}
}
@ -495,7 +495,7 @@ int ScaleBSPMain( int argc, char **argv ){
VectorCopy( gridSize, vec );
}
VectorScale( vec, scale, vec );
sprintf( str, "%f %f %f", vec[ 0 ], vec[ 1 ], vec[ 2 ] );
snprintf( str, sizeof( str ), "%f %f %f", vec[ 0 ], vec[ 1 ], vec[ 2 ] );
SetKeyValue( &entities[ 0 ], "gridsize", str );
/* write the bsp */
@ -555,7 +555,7 @@ int ConvertBSPMain( int argc, char **argv ){
}
/* clean up map name */
strcpy( source, ExpandArg( argv[ i ] ) );
Q_strncpyz( source, ExpandArg( argv[ i ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );

View file

@ -759,7 +759,7 @@ brush_t *FinishBrush( void ){
VectorAdd( buildBrush->mins, buildBrush->maxs, origin );
VectorScale( origin, 0.5, origin );
sprintf( string, "%i %i %i", (int) origin[ 0 ], (int) origin[ 1 ], (int) origin[ 2 ] );
snprintf( string, sizeof( string ), "%i %i %i", (int) origin[ 0 ], (int) origin[ 1 ], (int) origin[ 2 ] );
SetKeyValue( &entities[ numEntities - 1 ], "origin", string );
VectorCopy( origin, entities[ numEntities - 1 ].origin );
@ -1019,7 +1019,7 @@ static void ParseRawBrush( qboolean onlyLights ){
/* read shader name */
GetToken( qfalse );
strcpy( name, token );
Q_strncpyz( name, token, sizeof( name ) );
/* bp */
if ( g_bBrushPrimit == BPRIMIT_OLDBRUSHES ) {
@ -1489,8 +1489,8 @@ void LoadEntityIndexMap( entity_t *e ){
im->w = w;
im->h = h;
im->numLayers = numLayers;
strcpy( im->name, indexMapFilename );
strcpy( im->shader, shader );
Q_strncpyz( im->name, indexMapFilename, sizeof( im->name ) );
Q_strncpyz( im->shader, shader, sizeof( im->shader ) );
im->pixels = pixels;
/* get height offsets */
@ -1500,7 +1500,7 @@ void LoadEntityIndexMap( entity_t *e ){
}
if ( value[ 0 ] != '\0' ) {
/* value is a space-seperated set of numbers */
strcpy( offset, value );
Q_strncpyz( offset, value, sizeof( offset ) );
search = offset;
/* get each value */

View file

@ -312,13 +312,13 @@ void InsertModel( char *name, int frame, m4x4_t transform, remap_t *remap, shade
/* shader renaming for sof2 */
if ( renameModelShaders ) {
strcpy( shaderName, picoShaderName );
Q_strncpyz( shaderName, picoShaderName, sizeof( shaderName ) );
StripExtension( shaderName );
if ( spawnFlags & 1 ) {
strcat( shaderName, "_RMG_BSP" );
strncat( shaderName, "_RMG_BSP", sizeof( shaderName ) );
}
else{
strcat( shaderName, "_BSP" );
strncat( shaderName, "_BSP", sizeof( shaderName ) );
}
si = ShaderInfoForShader( shaderName );
}
@ -675,7 +675,7 @@ void AddTriangleModels( entity_t *e ){
remap2 = remap;
remap = safe_malloc( sizeof( *remap ) );
remap->next = remap2;
strcpy( remap->from, ep->value );
Q_strncpyz( remap->from, ep->value, sizeof( remap->from ) );
/* split the string */
split = strchr( remap->from, ';' );
@ -688,7 +688,7 @@ void AddTriangleModels( entity_t *e ){
/* store the split */
*split = '\0';
strcpy( remap->to, ( split + 1 ) );
Q_strncpyz( remap->to, ( split + 1 ), sizeof( remap->to ) );
/* note it */
//% Sys_FPrintf( SYS_VRB, "Remapping %s to %s\n", remap->from, remap->to );

View file

@ -236,7 +236,7 @@ void ParsePatch( qboolean onlyLights ){
/* get texture */
GetToken( qtrue );
strcpy( texture, token );
Q_strncpyz( texture, token, sizeof( texture ) );
Parse1DMatrix( 5, info );
m.width = info[0];

View file

@ -401,7 +401,7 @@ void InitPaths( int *argc, char **argv ){
for ( i = 0; i < *argc && numBasePaths == 0; i++ )
{
/* extract the arg */
strcpy( temp, argv[ i ] );
Q_strncpyz( temp, argv[ i ], sizeof( temp ) );
CleanPath( temp );
len = strlen( temp );
Sys_FPrintf( SYS_VRB, "Searching for \"%s\" in \"%s\" (%d)...\n", game->magic, temp, i );

View file

@ -297,14 +297,14 @@ void BeginMapShaderFile( const char *mapFile ){
}
/* copy map name */
strcpy( base, mapFile );
Q_strncpyz( base, mapFile, sizeof( base ) );
StripExtension( base );
/* extract map name */
len = strlen( base ) - 1;
while ( len > 0 && base[ len ] != '/' && base[ len ] != '\\' )
len--;
strcpy( mapName, &base[ len + 1 ] );
Q_strncpyz( mapName, &base[ len + 1 ], sizeof( mapName ) );
base[ len ] = '\0';
if ( len <= 0 ) {
return;
@ -525,10 +525,10 @@ shaderInfo_t *CustomShader( shaderInfo_t *si, char *find, char *replace ){
{
/* substitute 'find' with 'replace' */
loc = s - srcShaderText;
strcpy( shaderText, srcShaderText );
Q_strncpyz( shaderText, srcShaderText, sizeof( shaderText ) );
shaderText[ loc ] = '\0';
strcat( shaderText, replace );
strcat( shaderText, &srcShaderText[ loc + strlen( find ) ] );
strncat( shaderText, replace, sizeof( shaderText ) );
strncat( shaderText, &srcShaderText[ loc + strlen( find ) ], sizeof( shaderText ) );
}
/* make md5 hash of the shader text */
@ -551,7 +551,7 @@ shaderInfo_t *CustomShader( shaderInfo_t *si, char *find, char *replace ){
/* clone the existing shader and rename */
memcpy( csi, si, sizeof( shaderInfo_t ) );
strcpy( csi->shader, shader );
Q_strncpyz( csi->shader, shader, sizeof( csi->shader ) );
csi->custom = qtrue;
/* store new shader text */
@ -818,7 +818,7 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){
}
/* strip off extension */
strcpy( shader, shaderName );
Q_strncpyz( shader, shaderName, sizeof( shader ) );
StripExtension( shader );
/* search for it */
@ -839,7 +839,7 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){
/* allocate a default shader */
si = AllocShaderInfo();
strcpy( si->shader, shader );
Q_strncpyz( si->shader, shader, sizeof( si->shader ) );
LoadShaderImages( si );
FinishShader( si );
@ -875,15 +875,15 @@ qboolean GetTokenAppend( char *buffer, qboolean crossline ){
/* append? */
if ( oldScriptLine != scriptline ) {
strcat( buffer, "\n" );
strncat( buffer, "\n", sizeof( buffer ) );
for ( i = 0; i < tabDepth; i++ )
strcat( buffer, "\t" );
strncat( buffer, "\t", sizeof( buffer ) );
}
else{
strcat( buffer, " " );
strncat( buffer, " ", sizeof( buffer ) );
}
oldScriptLine = scriptline;
strcat( buffer, token );
strncat( buffer, token, sizeof( buffer ) );
/* post-tabstops */
if ( token[ 0 ] == '{' ) {
@ -941,7 +941,7 @@ static void ParseShaderFile( const char *filename ){
{
/* copy shader text to the shaderinfo */
if ( si != NULL && shaderText[ 0 ] != '\0' ) {
strcat( shaderText, "\n" );
strncat( shaderText, "\n", sizeof( shaderText ) );
si->shaderText = safe_malloc( strlen( shaderText ) + 1 );
strcpy( si->shaderText, shaderText );
//% if( VectorLength( si->vecs[ 0 ] ) )
@ -958,7 +958,7 @@ static void ParseShaderFile( const char *filename ){
/* shader name is initial token */
si = AllocShaderInfo();
strcpy( si->shader, token );
Q_strncpyz( si->shader, token, sizeof( si->shader ) );
/* ignore ":q3map" suffix */
suffix = strstr( si->shader, ":q3map" );
@ -1026,7 +1026,7 @@ static void ParseShaderFile( const char *filename ){
/* get an image */
GetTokenAppend( shaderText, qfalse );
if ( token[ 0 ] != '*' && token[ 0 ] != '$' ) {
strcpy( si->lightImagePath, token );
Q_strncpyz( si->lightImagePath, token, sizeof( si->lightImagePath ) );
DefaultExtension( si->lightImagePath, ".tga", sizeof( si->lightImagePath ) );
/* debug code */
@ -1316,13 +1316,13 @@ static void ParseShaderFile( const char *filename ){
/* subclass it */
if ( si2 != NULL ) {
/* preserve name */
strcpy( temp, si->shader );
Q_strncpyz( temp, si->shader, sizeof( temp ) );
/* copy shader */
memcpy( si, si2, sizeof( *si ) );
/* restore name and set to unfinished */
strcpy( si->shader, temp );
Q_strncpyz( si->shader, temp, sizeof( si->shader ) );
si->shaderWidth = 0;
si->shaderHeight = 0;
si->finished = qfalse;
@ -1342,7 +1342,7 @@ static void ParseShaderFile( const char *filename ){
/* get parameters */
GetTokenAppend( shaderText, qfalse );
strcpy( model->model, token );
Q_strncpyz( model->model, token, sizeof( model->model ) );
GetTokenAppend( shaderText, qfalse );
model->density = atof( token );
@ -1376,7 +1376,7 @@ static void ParseShaderFile( const char *filename ){
/* get parameters */
GetTokenAppend( shaderText, qfalse );
strcpy( foliage->model, token );
Q_strncpyz( foliage->model, token, sizeof( foliage->model ) );
GetTokenAppend( shaderText, qfalse );
foliage->scale = atof( token );
@ -1928,7 +1928,7 @@ static void ParseCustomInfoParms( void ){
}
custSurfaceParms[ numCustSurfaceParms ].name = safe_malloc( MAX_OS_PATH );
strcpy( custSurfaceParms[ numCustSurfaceParms ].name, token );
Q_strncpyz( custSurfaceParms[ numCustSurfaceParms ].name, token, MAX_OS_PATH );
GetToken( qfalse );
sscanf( token, "%x", &custSurfaceParms[ numCustSurfaceParms ].contentFlags );
numCustSurfaceParms++;
@ -1954,7 +1954,7 @@ static void ParseCustomInfoParms( void ){
}
custSurfaceParms[ numCustSurfaceParms ].name = safe_malloc( MAX_OS_PATH );
strcpy( custSurfaceParms[ numCustSurfaceParms ].name, token );
Q_strncpyz( custSurfaceParms[ numCustSurfaceParms ].name, token, MAX_OS_PATH );
GetToken( qfalse );
sscanf( token, "%x", &custSurfaceParms[ numCustSurfaceParms ].surfaceFlags );
numCustSurfaceParms++;
@ -2019,7 +2019,7 @@ void LoadShaderInfo( void ){
/* new shader file */
if ( j == numShaderFiles ) {
shaderFiles[ numShaderFiles ] = safe_malloc( MAX_OS_PATH );
strcpy( shaderFiles[ numShaderFiles ], token );
Q_strncpyz( shaderFiles[ numShaderFiles ], token, MAX_OS_PATH );
numShaderFiles++;
}
}

View file

@ -227,9 +227,9 @@ void WriteSurfaceExtraFile( const char *path ){
Sys_Printf( "--- WriteSurfaceExtraFile ---\n" );
/* open the file */
strcpy( srfPath, path );
Q_strncpyz( srfPath, path, sizeof( srfPath ) );
StripExtension( srfPath );
strcat( srfPath, ".srf" );
strncat( srfPath, ".srf", sizeof( srfPath ) );
Sys_Printf( "Writing %s\n", srfPath );
sf = fopen( srfPath, "w" );
if ( sf == NULL ) {
@ -334,9 +334,9 @@ void LoadSurfaceExtraFile( const char *path ){
}
/* load the file */
strcpy( srfPath, path );
Q_strncpyz( srfPath, path, sizeof( srfPath ) );
StripExtension( srfPath );
strcat( srfPath, ".srf" );
strncat( srfPath, ".srf", sizeof( srfPath ) );
Sys_Printf( "Loading %s\n", srfPath );
size = LoadFile( srfPath, (void**) &buffer );
if ( size <= 0 ) {

View file

@ -78,7 +78,7 @@ int EmitShader( const char *shader, int *contentFlags, int *surfaceFlags ){
Error( "MAX_MAP_SHADERS" );
}
numBSPShaders++;
strcpy( bspShaders[ i ].shader, shader );
Q_strncpyz( bspShaders[ i ].shader, shader, sizeof( bspShaders[ i ].shader ) );
bspShaders[ i ].surfaceFlags = si->surfaceFlags;
bspShaders[ i ].contentFlags = si->contentFlags;
@ -262,7 +262,7 @@ void SetModelNumbers( void ){
models = 1;
for ( i = 1 ; i < numEntities ; i++ ) {
if ( entities[i].brushes || entities[i].patches ) {
sprintf( value, "*%i", models );
snprintf( value, sizeof( value ), "*%i", models );
models++;
SetKeyValue( &entities[i], "model", value );
}
@ -341,18 +341,18 @@ void SetLightStyles( void ){
if ( numStyles == MAX_SWITCHED_LIGHTS ) {
Error( "MAX_SWITCHED_LIGHTS (%d) exceeded, reduce the number of lights with targetnames", MAX_SWITCHED_LIGHTS );
}
strcpy( lightTargets[ j ], t );
Q_strncpyz( lightTargets[ j ], t, sizeof( lightTargets[ j ] ) );
lightStyles[ j ] = style;
numStyles++;
}
/* set explicit style */
sprintf( value, "%d", 32 + j );
snprintf( value, sizeof( value ), "%d", 32 + j );
SetKeyValue( e, "style", value );
/* set old style */
if ( style != LS_NORMAL ) {
sprintf( value, "%d", style );
snprintf( value, sizeof( value ), "%d", style );
SetKeyValue( e, "switch_style", value );
}
}
@ -506,7 +506,7 @@ void EmitFogs( void ){
for ( i = 0; i < numMapFogs; i++ )
{
/* set shader */
strcpy( bspFogs[ i ].shader, mapFogs[ i ].si->shader );
Q_strncpyz( bspFogs[ i ].shader, mapFogs[ i ].si->shader, sizeof( bspFogs[ i ].shader ) );
/* global fog doesn't have an associated brush */
if ( mapFogs[ i ].brush == NULL ) {

View file

@ -74,7 +74,7 @@ static void SetCloneModelNumbers( void ){
}
/* add the model key */
sprintf( modelValue, "*%d", models );
snprintf( modelValue, sizeof( modelValue ), "*%d", models );
SetKeyValue( &entities[ i ], "model", modelValue );
/* increment model count */
@ -121,7 +121,7 @@ static void SetCloneModelNumbers( void ){
models = atoi( &value2[ 1 ] );
/* add the model key */
sprintf( modelValue, "*%d", models );
snprintf( modelValue, sizeof( modelValue ), "*%d", models );
SetKeyValue( &entities[ i ], "model", modelValue );
/* nuke the brushes/patches for this entity (fixme: leak!) */
@ -617,7 +617,7 @@ int BSPMain( int argc, char **argv ){
onlyents = qtrue;
}
else if ( !strcmp( argv[ i ], "-tempname" ) ) {
strcpy( tempSource, argv[ ++i ] );
Q_strncpyz( tempSource, argv[ ++i ], sizeof( tempSource ) );
}
else if ( !strcmp( argv[ i ], "-tmpout" ) ) {
strcpy( outbase, "/tmp" );

View file

@ -608,26 +608,26 @@ void UnparseEntities( void ){
}
/* add beginning brace */
strcat( end, "{\n" );
strncat( end, "{\n", sizeof( bspEntData ) + bspEntData - end );
end += 2;
/* walk epair list */
for ( ep = entities[ i ].epairs; ep != NULL; ep = ep->next )
{
/* copy and clean */
strcpy( key, ep->key );
Q_strncpyz( key, ep->key, sizeof( key ) );
StripTrailing( key );
strcpy( value, ep->value );
Q_strncpyz( value, ep->value, sizeof( value ) );
StripTrailing( value );
/* add to buffer */
snprintf( line, sizeof( line ), "\"%s\" \"%s\"\n", key, value );
strcat( end, line );
strncat( end, line, sizeof( bspEntData ) + bspEntData - end );
end += strlen( line );
}
/* add trailing brace */
strcat( end,"}\n" );
strncat( end, "}\n", sizeof( bspEntData ) + bspEntData - end );
end += 2;
/* check for overflow */

View file

@ -542,7 +542,7 @@ void WriteIBSPFile( const char *filename ){
/* add marker lump */
time( &t );
sprintf( marker, "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
snprintf( marker, sizeof( marker ), "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
AddLump( file, (bspHeader_t*) header, 0, marker, strlen( marker ) + 1 );
/* add lumps */

View file

@ -305,7 +305,7 @@ void WriteRBSPFile( const char *filename ){
/* add marker lump */
time( &t );
sprintf( marker, "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
snprintf( marker, sizeof( marker ), "I LOVE MY Q3MAP2 %s on %s)", Q3MAP_VERSION, asctime( localtime( &t ) ) );
AddLump( file, (bspHeader_t*) header, 0, marker, strlen( marker ) + 1 );
/* add lumps */

View file

@ -56,7 +56,7 @@ static void ConvertSurface( FILE *f, bspModel_t *model, int modelNum, bspDrawSur
}
/* print object header for each dsurf */
sprintf( name, "mat%dmodel%dsurf%d", ds->shaderNum, modelNum, surfaceNum );
snprintf( name, sizeof( name ), "mat%dmodel%dsurf%d", ds->shaderNum, modelNum, surfaceNum );
fprintf( f, "*GEOMOBJECT\t{\r\n" );
fprintf( f, "\t*NODE_NAME\t\"%s\"\r\n", name );
fprintf( f, "\t*NODE_TM\t{\r\n" );
@ -306,7 +306,7 @@ int ConvertBSPToASE( char *bspName ){
strncat( name, ".ase", sizeof( name ) );
Sys_Printf( "writing %s\n", name );
ExtractFileBase( bspName, base );
ExtractFileBase( bspName, base, sizeof( base ) );
strncat( base, ".bsp", sizeof( base ) );
/* open it */

View file

@ -384,13 +384,13 @@ int ConvertBSPToMap( char *bspName ){
Sys_Printf( "--- Convert BSP to MAP ---\n" );
/* create the bsp filename from the bsp name */
strcpy( name, bspName );
Q_strncpyz( name, bspName, sizeof( name ) );
StripExtension( name );
strcat( name, "_converted.map" );
strncat( name, "_converted.map", sizeof( name ) );
Sys_Printf( "writing %s\n", name );
ExtractFileBase( bspName, base );
strcat( base, ".bsp" );
ExtractFileBase( bspName, base, sizeof( base ) );
strncat( base, ".bsp", sizeof( base ) );
/* open it */
f = fopen( name, "wb" );

View file

@ -58,9 +58,9 @@ void ExportEntities( void ){
Sys_FPrintf( SYS_VRB, "--- ExportEntities ---\n" );
/* do some path mangling */
strcpy( filename, source );
Q_strncpyz( filename, source, sizeof( filename ) );
StripExtension( filename );
strcat( filename, ".ent" );
strncat( filename, ".ent", sizeof( filename ) );
/* sanity check */
if ( bspEntData == NULL || bspEntDataSize == 0 ) {
@ -96,7 +96,7 @@ int ExportEntitiesMain( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );

View file

@ -310,7 +310,7 @@ image_t *ImageFind( const char *filename ){
}
/* strip file extension off name */
strcpy( name, filename );
Q_strncpyz( name, filename, sizeof( name ) );
StripExtension( name );
/* search list */
@ -349,7 +349,7 @@ image_t *ImageLoad( const char *filename ){
}
/* strip file extension off name */
strcpy( name, filename );
Q_strncpyz( name, filename, sizeof( name ) );
StripExtension( name );
/* try to find existing image */
@ -380,7 +380,7 @@ image_t *ImageLoad( const char *filename ){
/* attempt to load tga */
StripExtension( name );
strcat( name, ".tga" );
strncat( name, ".tga", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
LoadTGABuffer( buffer, buffer + size, &image->pixels, &image->width, &image->height );
@ -389,7 +389,7 @@ image_t *ImageLoad( const char *filename ){
{
/* attempt to load png */
StripExtension( name );
strcat( name, ".png" );
strncat( name, ".png", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
LoadPNGBuffer( buffer, size, &image->pixels, &image->width, &image->height );
@ -398,7 +398,7 @@ image_t *ImageLoad( const char *filename ){
{
/* attempt to load jpg */
StripExtension( name );
strcat( name, ".jpg" );
strncat( name, ".jpg", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
if ( LoadJPGBuff( buffer, size, &image->pixels, &image->width, &image->height ) == -1 && image->pixels != NULL ) {
@ -409,7 +409,7 @@ image_t *ImageLoad( const char *filename ){
{
/* attempt to load dds */
StripExtension( name );
strcat( name, ".dds" );
strncat( name, ".dds", sizeof( name ) );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
if ( size > 0 ) {
LoadDDSBuffer( buffer, size, &image->pixels, &image->width, &image->height );
@ -422,7 +422,7 @@ image_t *ImageLoad( const char *filename ){
Sys_Printf( "pf = %d\n", pf );
if ( image->width > 0 ) {
StripExtension( name );
strcat( name, "_converted.tga" );
strncat( name, "_converted.tga", sizeof( name ) );
WriteTGA( "C:\\games\\quake3\\baseq3\\textures\\rad\\dds_converted.tga", image->pixels, image->width, image->height );
}
}

View file

@ -1675,7 +1675,7 @@ void SetupGrid( void ){
/* different? */
if ( !VectorCompare( gridSize, oldGridSize ) ) {
sprintf( temp, "%.0f %.0f %.0f", gridSize[ 0 ], gridSize[ 1 ], gridSize[ 2 ] );
snprintf( temp, sizeof( temp ), "%.0f %.0f %.0f", gridSize[ 0 ], gridSize[ 1 ], gridSize[ 2 ] );
SetKeyValue( &entities[ 0 ], "gridsize", (const char*) temp );
Sys_FPrintf( SYS_VRB, "Storing adjusted grid size\n" );
}
@ -2482,10 +2482,10 @@ int LightMain( int argc, char **argv ){
}
/* clean up map name */
strcpy( source, ExpandArg( argv[ i ] ) );
Q_strncpyz( source, ExpandArg( argv[ i ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
strcpy( mapSource, ExpandArg( argv[ i ] ) );
Q_strncpyz( mapSource, ExpandArg( argv[ i ] ), sizeof( mapSource ) );
StripExtension( mapSource );
DefaultExtension( mapSource, ".map", sizeof( mapSource ) );

View file

@ -909,10 +909,10 @@ void RadCreateDiffuseLights( void ){
FILE *file;
light_t *light;
strcpy( dumpName, source );
Q_strncpyz( dumpName, source, sizeof( dumpName ) );
StripExtension( dumpName );
sprintf( ext, "_bounce_%03d.map", iterations );
strcat( dumpName, ext );
snprintf( ext, sizeof( ext ), "_bounce_%03d.map", iterations );
strncat( dumpName, ext, sizeof( dumpName ) );
file = fopen( dumpName, "wb" );
Sys_Printf( "Writing %s...\n", dumpName );
if ( file ) {

View file

@ -1371,9 +1371,9 @@ void SetupTraceNodes( void ){
/* open the file */
strcpy( filename, source );
Q_strncpyz( filename, source, sizeof( filename ) );
StripExtension( filename );
strcat( filename, ".lin" );
strncat( filename, ".lin", sizeof( filename ) );
Sys_Printf( "Opening light trace file %s...\n", filename );
file = fopen( filename, "w" );
if ( file == NULL ) {

View file

@ -157,7 +157,7 @@ int ExportLightmapsMain( int argc, char **argv ){
}
/* do some path mangling */
strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
Q_strncpyz( source, ExpandArg( argv[ argc - 1 ] ), sizeof( source ) );
StripExtension( source );
DefaultExtension( source, ".bsp", sizeof( source ) );
@ -2328,7 +2328,7 @@ void StoreSurfaceLightmaps( void ){
Sys_Printf( "--- StoreSurfaceLightmaps ---\n" );
/* setup */
strcpy( dirname, source );
Q_strncpyz( dirname, source, sizeof( dirname ) );
StripExtension( dirname );
memset( rgbGenValues, 0, sizeof( rgbGenValues ) );
memset( alphaGenValues, 0, sizeof( alphaGenValues ) );
@ -2999,7 +2999,7 @@ void StoreSurfaceLightmaps( void ){
/* setup */
sprintf( styleStages, "\n\t// Q3Map2 custom lightstyle stage(s)\n" );
snprintf( styleStages, sizeof( styleStages ), "\n\t// Q3Map2 custom lightstyle stage(s)\n" );
dv = &bspDrawVerts[ ds->firstVert ];
/* depthFunc equal? */
@ -3032,7 +3032,7 @@ void StoreSurfaceLightmaps( void ){
/* get rgbgen string */
if ( rgbGenValues[ style ] == NULL ) {
sprintf( key, "_style%drgbgen", style );
snprintf( key, sizeof( key ), "_style%drgbgen", style );
rgbGenValues[ style ] = (char*) ValueForKey( &entities[ 0 ], key );
if ( rgbGenValues[ style ][ 0 ] == '\0' ) {
rgbGenValues[ style ] = "wave noise 0.5 1 0 5.37";
@ -3048,7 +3048,7 @@ void StoreSurfaceLightmaps( void ){
/* get alphagen string */
if ( alphaGenValues[ style ] == NULL ) {
sprintf( key, "_style%dalphagen", style );
snprintf( key, sizeof( key ), "_style%dalphagen", style );
alphaGenValues[ style ] = (char*) ValueForKey( &entities[ 0 ], key );
}
if ( alphaGenValues[ style ][ 0 ] != '\0' ) {

Some files were not shown because too many files have changed in this diff Show more