Ejemplo n.º 1
0
int ReadIni::readIniInteger( char const *IniFile, char const *Section, 
char const *Ident, int defint )
{
	char 	defstr[LINEMAXCHARS], sItem[LINEMAXCHARS], *ptr;

	sprintf( defstr, "%d", defint );
	ptr = readIniString( IniFile, Section, Ident, sItem, defstr );
	if ( ptr == NULL )
		return( defint );
	else
		return( atoi( sItem ) );
}
Ejemplo n.º 2
0
unsigned int ReadIni::readIniUInteger( char const *IniFile, 
char const *Section, char const *Ident, int defint )
{
	char 	defstr[LINEMAXCHARS], sItem[LINEMAXCHARS], *ptr;
	unsigned int	i;

	sprintf( defstr, "%d", defint );
	ptr = readIniString( IniFile, Section, Ident, sItem, defstr );
	if ( ptr == NULL )
		return( defint );
	else
		sscanf(sItem,"%u",&i);
	return( i );
}
Ejemplo n.º 3
0
void handleArchivedLogFiles( const char* PLUGIN_PATH )
{
    char* filename = (char*)malloc( MAX_PATH );
    const unsigned int pluginPathLength = strlen( PLUGIN_PATH );
    memcpy( filename, PLUGIN_PATH, pluginPathLength );
    memcpy( filename + pluginPathLength, "\\rfdynhud.ini", 14 );
    
    char* buffer = (char*)malloc( 16 );
    readIniString( filename, "GENERAL", "numArchivedLogFiles", "5", buffer, 16 );
    unsigned int numArchivedLogFiles = (unsigned int)max( 0, atoi( buffer ) );
    free( buffer );
    buffer = NULL;
    
    const unsigned int folderLength = findLastSeparator( LOG_FILENAME );
    memcpy( filename, LOG_FILENAME, folderLength + 1 );
    memcpy( filename + folderLength + 1, "rfdynhud_editor-*.log", 22 );
    
    char** files = (char**)malloc( 64 * sizeof( char* ) );
    unsigned int numFiles = 0;
    WIN32_FIND_DATA data;
    HANDLE hFile = FindFirstFile( filename, &data );
    if ( hFile != INVALID_HANDLE_VALUE )
    {
        do
        {
            if ( ( ( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) == 0 ) && ( data.cFileName[0] != '.' ) )
            {
                unsigned int len = strlen( data.cFileName );
                char* filename2 = (char*)malloc( len + 1 );
                memcpy( filename2, data.cFileName, len + 1 );
                files[numFiles++] = filename2;
            }
        }
        while ( FindNextFile( hFile, &data ) && ( numFiles < 64 ) );
    }
    
    unsigned int numFiles2 = numFiles;
    while ( numFiles2 > numArchivedLogFiles )
    {
        unsigned int smallestIndex = -1;
        for ( unsigned int i = 0; i < numFiles; i++ )
        {
            if ( files[i] != NULL )
            {
                smallestIndex = i;
                break;
            }
        }
        
        for ( unsigned int i = smallestIndex + 1; i < numFiles; i++ )
        {
            if ( ( files[i] != NULL ) && ( strcmp( files[i], files[smallestIndex] ) < 0 ) )
                smallestIndex = i;
        }
        
        memcpy( filename + folderLength + 1, files[smallestIndex], strlen( files[smallestIndex] ) + 1 );
        _unlink( filename );
        free( files[smallestIndex] );
        files[smallestIndex] = NULL;
        numFiles2--;
    }
    
    for ( unsigned int i = 0; i < numFiles; i++ )
    {
        if ( files[i] != NULL )
        {
            free( files[i] );
            files[i] = NULL;
        }
    }
    
    free( files );
    free( filename );
}